fix(browser): only fire browserFinished when the Custom Tab actually terminates#2561
Open
OS-ruimoreiramendes wants to merge 4 commits into
Open
fix(browser): only fire browserFinished when the Custom Tab actually terminates#2561OS-ruimoreiramendes wants to merge 4 commits into
OS-ruimoreiramendes wants to merge 4 commits into
Conversation
OS-ruimoreiramendes
marked this pull request as ready for review
July 3, 2026 15:23
OS-ruimoreiramendes
requested review from
ItsChaceD,
OS-pedrogustavobilro,
alexgerardojacinto,
andredestro,
jcesarmobile,
markemer and
theproducer
July 3, 2026 15:24
8 tasks
|
Released dev build of browser with dev version: 8.0.5-dev-2561-20260716T164713.0 |
OS-pedrogustavobilro
left a comment
Contributor
There was a problem hiding this comment.
A couple comments, nothing major. Haven't tested yet but overall looks good, noice!
|
|
||
| private boolean isCustomTabsOpen = false; | ||
| private ActivityResultLauncher<Intent> customTabLauncher; | ||
| private Browser implementation; |
Contributor
There was a problem hiding this comment.
Perhaps we should set implementation in onDestroy just to clear the reference?
Comment on lines
33
to
38
| protected void onNewIntent(Intent intent) { | ||
| super.onNewIntent(intent); | ||
| if (intent.hasExtra("close")) { | ||
| finish(); | ||
| } | ||
| } |
Contributor
There was a problem hiding this comment.
Unsure if we should add the notifyBrowserFinished here as well.
I think beforehand the intent wouldn't fire an event back to the plugin in this situation so maybe not relevant?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Refactor the Android browser plugin to use
ActivityResultLauncherfor detecting when the Custom Tab has actually terminated, instead of inferring closure from lifecycle events via the previousEventGroupcounter.The
EventGrouphelper is removed. Browser now exposessetCustomTabLauncherandBrowserControllerActivityregisters a launcher viaregisterForActivityResult, thebrowserFinishedevent is only fired when the launched Custom Tab activity ends.Fixes #2554.
Change Type
Rationale / Problems Fixed
When the user minimizes the Chrome Custom Tab to Picture-in-Picture (or backgrounds the app), the previous heuristic counted TAB_HIDDEN + unbindService and inferred the tab had closed firing
browserFinishedeven though the tab was still open. After that, subsequent minimize/maximize/close events wouldn't fire the event again.ActivityResultLauncherprovides a single, deterministic callback only when the Custom Tab activitytruly finishes, so
browserFinishednow reflects the actual closed state.Tests or Reproductions
Reproduced with the repo:
https://github.com/Prinzhorn/capacitor-android-browser-close-event
Manually tested on a physical Android device:
only on close
Platforms Affected