Bug 43133: Remove external actions from text selection context menus on Android
Merge Info
Related Issues
Backporting
Timeline
-
Immediate: patchset needed as soon as possible -
Next Minor Stable Release: patchset that needs to be verified in nightly before backport -
Eventually: patchset that needs to be verified in alpha before backport -
No Backport (preferred): patchset for the next major stable
(Optional) Justification
-
Emergency security update: patchset fixes CVEs, 0-days, etc -
Censorship event: patchset enables censorship circumvention -
Critical bug-fix: patchset fixes a bug in core-functionality -
Consistency: patchset which would make development easier if it were in both the alpha and release branches; developer tools, build system changes, etc -
Sponsor required: patchset required for sponsor -
Localization: typos and other localization changes that should be also in the release branch -
Other: please explain
Merging
-
Merge to tor-browser
-!fixups
totor-browser
-specific commits, new features, security backports -
Merge to base-browser
-!fixups
tobase-browser
-specific commits, new features to be shared withmullvad-browser
, and security backports-
NOTE: if your changeset includes patches to both
base-browser
andtor-browser
please clearly label in the change description which commits should be cherry-picked tobase-browser
after merging
-
NOTE: if your changeset includes patches to both
Issue Tracking
-
Link resolved issues with appropriate Release Prep issue for changelog generation
Review
Request Reviewer
-
Request review from an applications developer depending on modified system: -
NOTE: if the MR modifies multiple areas, please
/cc
all the relevant reviewers (since gitlab only allows 1 reviewer) - accessibility : henry
- android : clairehurst, dan
- build system : boklm
- extensions : ma1
- firefox internals (XUL/JS/XPCOM) : jwilde, ma1
- fonts : pierov
- frontend (implementation) : henry
- frontend (review) : donuts, richard
- localization : henry, pierov
- macOS : clairehurst, dan
- nightly builds : boklm
- rebases/release-prep : dan, ma1, pierov, richard
- security : jwilde, ma1
- signing : boklm, richard
- updater : pierov
- windows : jwilde, richard
- misc/other : pierov, richard
-
NOTE: if the MR modifies multiple areas, please
Change Description
BasicSelectionActionDelegate customizes text selection context menus for EngineView. We can disable external actions in the content area by changing its mExternalActionsEnabled setting.
For other areas, we can get and modify menus with onActionModeStarted inside HomeActivity. Here we can hide all external actions by comparing the ids of menu items with those of the default actions. To exclude the menus with custom ids that are created by BasicSelectionActionDelegate, we can check whether the menu contains any default ids before proceeding.
This will hide external actions in these areas: adding/editing passwords, bookmarks, search engines; find in page, searching for languages or saved passwords in settings, text selection on "About Tor Browser"
After that, what remains are the menus inside the urlbar and the ones while adding/editing Tor bridges. I don't know if there's a way to indirectly handle these cases but I added custom callbacks to handle them.
How Tested
Tested with Firefox Focus and Opera installed alongside Tor Browser. They add "Search in Focus" and "Search Privately" options to context menus without this patch.