commit 8569b7016d8fc521b797bff46480b3ebb99808f2 parent ab6f777ef0d8c9bb8ed0f269c4dece1082877bd0 Author: Jan-Niklas Jaeschke <jjaschke@mozilla.com> Date: Tue, 2 Dec 2025 16:35:34 +0000 Bug 2003534 - Text Fragments: Clean up prefs. r=Gijs,dom-core,webidl,smaug This patch removes the pref `dom.text_fragments.create_text_fragment.enabled`, which is not required anymore now that the feature has shipped. If a user wants to disable text fragments, this can be done using the pref `dom.text_fragments.enabled`, which now controls the feature in its entirety. Differential Revision: https://phabricator.services.mozilla.com/D274758 Diffstat:
11 files changed, 13 insertions(+), 50 deletions(-)
diff --git a/browser/actors/ContextMenuChild.sys.mjs b/browser/actors/ContextMenuChild.sys.mjs @@ -268,15 +268,6 @@ export class ContextMenuChild extends JSWindowActorChild { } case "ContextMenu:GetTextDirective": { - if ( - !Services.prefs.getBoolPref("dom.text_fragments.enabled", false) || - !Services.prefs.getBoolPref( - "dom.text_fragments.create_text_fragment.enabled", - false - ) - ) { - return null; - } const sel = this.contentWindow.getSelection(); const ranges = !sel.isCollapsed ? Array.from({ length: sel.rangeCount }, (_, i) => sel.getRangeAt(i)) diff --git a/browser/actors/ContextMenuParent.sys.mjs b/browser/actors/ContextMenuParent.sys.mjs @@ -17,6 +17,13 @@ XPCOMUtils.defineLazyServiceGetters(lazy, { BrowserHandler: ["@mozilla.org/browser/clh;1", Ci.nsIBrowserHandler], }); +XPCOMUtils.defineLazyPreferenceGetter( + lazy, + "TEXT_FRAGMENTS_ENABLED", + "dom.text_fragments.enabled", + false +); + export class ContextMenuParent extends JSWindowActorParent { receiveMessage(message) { let browser = this.manager.rootFrameLoader.ownerElement; @@ -128,7 +135,9 @@ export class ContextMenuParent extends JSWindowActorParent { } getTextDirective() { - return this.sendQuery("ContextMenu:GetTextDirective"); + return lazy.TEXT_FRAGMENTS_ENABLED + ? this.sendQuery("ContextMenu:GetTextDirective") + : null; } removeAllTextFragments() { diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs @@ -91,13 +91,6 @@ XPCOMUtils.defineLazyPreferenceGetter( false ); -XPCOMUtils.defineLazyPreferenceGetter( - lazy, - "TEXT_FRAGMENTS_SHOW_CONTEXT_MENU", - "dom.text_fragments.create_text_fragment.enabled", - false -); - const PASSWORD_FIELDNAME_HINTS = ["current-password", "new-password"]; const USERNAME_FIELDNAME_HINT = "username"; @@ -456,7 +449,6 @@ export class nsContextMenu { initTextFragmentItems() { const shouldShow = - lazy.TEXT_FRAGMENTS_SHOW_CONTEXT_MENU && lazy.TEXT_FRAGMENTS_ENABLED && lazy.STRIP_ON_SHARE_ENABLED && !( @@ -479,12 +471,7 @@ export class nsContextMenu { } async getTextDirective() { - if ( - !Services.prefs.getBoolPref( - "dom.text_fragments.create_text_fragment.enabled", - false - ) - ) { + if (!lazy.TEXT_FRAGMENTS_ENABLED) { return; } this.textFragmentURL = await this.actor.getTextDirective(); diff --git a/browser/base/content/test/contextMenu/browser_contextmenu.js b/browser/base/content/test/contextMenu/browser_contextmenu.js @@ -80,7 +80,6 @@ add_setup(async function () { set: [ ["test.wait300msAfterTabSwitch", true], ["browser.search.separatePrivateDefault.ui.enabled", true], - ["dom.text_fragments.create_text_fragment.enabled", true], ], }); }); diff --git a/browser/base/content/test/contextMenu/browser_copy_link_to_highlight.js b/browser/base/content/test/contextMenu/browser_copy_link_to_highlight.js @@ -10,7 +10,6 @@ add_setup(async function () { set: [ ["privacy.query_stripping.strip_list", "stripParam"], ["privacy.query_stripping.strip_on_share.enabled", true], - ["dom.text_fragments.create_text_fragment.enabled", true], ], }); diff --git a/browser/base/content/test/contextMenu/browser_copy_link_to_highlight_viewsource.js b/browser/base/content/test/contextMenu/browser_copy_link_to_highlight_viewsource.js @@ -7,13 +7,6 @@ const TEST_PAGE = "data:text/html,<p id='p'>lorem ipsum dolor sit amet</p>"; add_task(async function copyLinkHiddenInViewSource() { - await SpecialPowers.pushPrefEnv({ - set: [ - ["dom.text_fragments.enabled", true], - ["dom.text_fragments.create_text_fragment.enabled", true], - ], - }); - const tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_PAGE); const viewSrcURI = "view-source:" + TEST_PAGE; diff --git a/dom/base/FragmentDirective.cpp b/dom/base/FragmentDirective.cpp @@ -436,8 +436,7 @@ already_AddRefed<Promise> FragmentDirective::CreateTextDirectiveForRanges( if (!resultPromise) { return nullptr; } - if (!StaticPrefs::dom_text_fragments_create_text_fragment_enabled() || - !StaticPrefs::dom_text_fragments_enabled()) { + if (!StaticPrefs::dom_text_fragments_enabled()) { TEXT_FRAGMENT_LOG("Creating text fragments is disabled."); resultPromise->MaybeResolve(JS::NullHandleValue); return resultPromise.forget(); diff --git a/dom/base/test/test_text-fragments-create-text-directive-no-reveal.html b/dom/base/test/test_text-fragments-create-text-directive-no-reveal.html @@ -24,11 +24,6 @@ async function runTests() { try { - await SpecialPowers.pushPrefEnv({"set": [ - ["dom.text_fragments.enabled", true], - ["dom.text_fragments.create_text_fragment.enabled", true], - ]}); - // Creating a text fragment from a selection in details2 should not reveal // other elements (closed <details> or hidden=until-found elements). diff --git a/dom/base/test/test_text-fragments-create-text-directive.html b/dom/base/test/test_text-fragments-create-text-directive.html @@ -754,10 +754,6 @@ async function runTests() { try { - await SpecialPowers.pushPrefEnv({"set": [ - ["dom.text_fragments.enabled", true], - ["dom.text_fragments.create_text_fragment.enabled", true], - ]}); testRangeBoundariesAreEqual(); await basicTests(); await testEmptyRange(); diff --git a/dom/webidl/FragmentDirective.webidl b/dom/webidl/FragmentDirective.webidl @@ -14,6 +14,6 @@ interface FragmentDirective { [Pref="dom.text_fragments.enabled", ChromeOnly, Throws] undefined removeAllTextDirectives(); - [Pref="dom.text_fragments.create_text_fragment.enabled", ChromeOnly] + [Pref="dom.text_fragments.enabled", ChromeOnly] Promise<DOMString> createTextDirectiveForRanges(sequence<Range> ranges); }; diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml @@ -5062,11 +5062,6 @@ mirror: always rust: true -- name: dom.text_fragments.create_text_fragment.enabled - type: bool - value: true - mirror: always - - name: dom.text_fragments.create_text_fragment.timeout_seconds type: uint32_t value: 5