[tor-commits] [Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] Bug 1908344 - Improve prompts showing a=dmeehan - BP, tor-browser#43005

ma1 (@ma1) git at gitlab.torproject.org
Mon Aug 5 22:35:35 UTC 2024



ma1 pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser


Commits:
74a9682b by Arturo Mejia at 2024-08-06T00:32:39+02:00
Bug 1908344 - Improve prompts showing  a=dmeehan - BP, tor-browser#43005

Original Revision: https://phabricator.services.mozilla.com/D216996

Differential Revision: https://phabricator.services.mozilla.com/D217718

- - - - -


1 changed file:

- mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt


Changes:

=====================================
mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt
=====================================
@@ -544,58 +544,71 @@ class PromptFeature private constructor(
      *
      * @param session The session which requested the dialog.
      */
-    @Suppress("NestedBlockDepth")
     @VisibleForTesting(otherwise = PRIVATE)
     internal fun onPromptRequested(session: SessionState) {
         // Some requests are handle with intents
         session.content.promptRequests.lastOrNull()?.let { promptRequest ->
-            store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.let {
-                promptRequest.executeIfWindowedPrompt { exitFullscreenUsecase(it.id) }
+            if (session.content.permissionRequestsList.isNotEmpty()) {
+                onCancel(session.id, promptRequest.uid)
+            } else {
+                processPromptRequest(promptRequest, session)
             }
+        }
+    }
 
-            when (promptRequest) {
-                is File -> {
-                    emitPromptDisplayedFact(promptName = "FilePrompt")
-                    filePicker.handleFileRequest(promptRequest)
-                }
+    @Suppress("NestedBlockDepth")
+    private fun processPromptRequest(
+        promptRequest: PromptRequest,
+        session: SessionState,
+    ) {
+        store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.let {
+            promptRequest.executeIfWindowedPrompt { exitFullscreenUsecase(it.id) }
+        }
 
-                is Share -> handleShareRequest(promptRequest, session)
-                is SelectCreditCard -> {
-                    emitSuccessfulCreditCardAutofillFormDetectedFact()
-                    if (isCreditCardAutofillEnabled() && promptRequest.creditCards.isNotEmpty()) {
-                        creditCardPicker?.handleSelectCreditCardRequest(promptRequest)
-                    }
+        when (promptRequest) {
+            is File -> {
+                emitPromptDisplayedFact(promptName = "FilePrompt")
+                filePicker.handleFileRequest(promptRequest)
+            }
+
+            is Share -> handleShareRequest(promptRequest, session)
+            is SelectCreditCard -> {
+                emitSuccessfulCreditCardAutofillFormDetectedFact()
+                if (isCreditCardAutofillEnabled() && promptRequest.creditCards.isNotEmpty()) {
+                    creditCardPicker?.handleSelectCreditCardRequest(promptRequest)
                 }
+            }
 
-                is SelectLoginPrompt -> {
-                    if (!isLoginAutofillEnabled()) {
-                        return
-                    }
-                    if (promptRequest.generatedPassword != null && isSuggestStrongPasswordEnabled) {
-                        val currentUrl =
-                            store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.content?.url
-                        if (currentUrl != null) {
-                            strongPasswordPromptViewListener?.handleSuggestStrongPasswordRequest(
-                                promptRequest,
-                                currentUrl,
-                                onSaveLoginWithStrongPassword,
-                            )
-                        }
-                    } else {
-                        loginPicker?.handleSelectLoginRequest(promptRequest)
-                    }
-                    emitPromptDisplayedFact(promptName = "SelectLoginPrompt")
+            is SelectLoginPrompt -> {
+                if (!isLoginAutofillEnabled()) {
+                    return
                 }
 
-                is SelectAddress -> {
-                    emitSuccessfulAddressAutofillFormDetectedFact()
-                    if (isAddressAutofillEnabled() && promptRequest.addresses.isNotEmpty()) {
-                        addressPicker?.handleSelectAddressRequest(promptRequest)
+                if (promptRequest.generatedPassword != null && isSuggestStrongPasswordEnabled) {
+                    val currentUrl =
+                        store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.content?.url
+                    if (currentUrl != null) {
+                        strongPasswordPromptViewListener?.handleSuggestStrongPasswordRequest(
+                            promptRequest,
+                            currentUrl,
+                            onSaveLoginWithStrongPassword,
+                        )
                     }
+                    strongPasswordPromptViewListener?.handleSuggestStrongPasswordRequest()
+                } else {
+                    loginPicker?.handleSelectLoginRequest(promptRequest)
                 }
+                emitPromptDisplayedFact(promptName = "SelectLoginPrompt")
+            }
 
-                else -> handleDialogsRequest(promptRequest, session)
+            is SelectAddress -> {
+                emitSuccessfulAddressAutofillFormDetectedFact()
+                if (isAddressAutofillEnabled() && promptRequest.addresses.isNotEmpty()) {
+                    addressPicker?.handleSelectAddressRequest(promptRequest)
+                }
             }
+
+            else -> handleDialogsRequest(promptRequest, session)
         }
     }
 



View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/74a9682bbae1dc7c94e461e7616f1eed729e0c3c

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/74a9682bbae1dc7c94e461e7616f1eed729e0c3c
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20240805/6ef55faf/attachment-0001.htm>


More information about the tor-commits mailing list