From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 22 Aug 2020 12:46:20 +0200 Subject: Disable text fragments by default Revert "[Text Fragment] Unflag fragment directive removal." Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +- content/child/runtime_features.cc | 2 ++ .../about_flags_cc/Disable-text-fragments-by-default.inc | 8 ++++++++ .../features_cc/Disable-text-fragments-by-default.inc | 4 ++++ .../features_h/Disable-text-fragments-by-default.inc | 1 + third_party/blink/renderer/core/dom/document.cc | 5 +++++ .../renderer/platform/runtime_enabled_features.json5 | 5 ++--- 7 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-text-fragments-by-default.inc create mode 100644 cromite_flags/third_party/blink/common/features_h/Disable-text-fragments-by-default.inc diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc @@ -385,7 +385,7 @@ void PrefsTabHelper::RegisterProfilePrefs( prefs::kEnableReferrers, !base::FeatureList::IsEnabled(features::kNoReferrers)); registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true); - registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, true); + registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false); #if BUILDFLAG(IS_ANDROID) registry->RegisterDoublePref(browser_ui::prefs::kWebKitFontScaleFactor, 1.0); registry->RegisterIntegerPref(prefs::kAccessibilityTextSizeContrastFactor, 0); diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc @@ -258,6 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnableTouchDragAndDrop, raw_ref(features::kTouchDragAndDrop)}, {wf::EnableTouchDragAndContextMenu, raw_ref(features::kTouchDragAndContextMenu)}, + {wf::EnableTextFragmentIdentifiers, + raw_ref(blink::features::kTextFragmentAnchor)}, {wf::EnableWebAuthenticationAmbient, raw_ref(device::kWebAuthnAmbientSignin)}, {wf::EnableWebAuthenticationImmediateGet, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc b/cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/about_flags_cc/Disable-text-fragments-by-default.inc @@ -0,0 +1,8 @@ +#ifdef FLAG_SECTION + + {"enable-text-fragment-anchor", + "Enable Text Fragment Anchor.", + "Enables scrolling to text specified in URL's fragment.", kOsAll, + FEATURE_VALUE_TYPE(blink::features::kTextFragmentAnchor)}, + +#endif diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-text-fragments-by-default.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-text-fragments-by-default.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/third_party/blink/common/features_cc/Disable-text-fragments-by-default.inc @@ -0,0 +1,4 @@ +// Enable text snippets in URL fragments. https://crbug.com/919204. +CROMITE_FEATURE(kTextFragmentAnchor, + "TextFragmentAnchor", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/cromite_flags/third_party/blink/common/features_h/Disable-text-fragments-by-default.inc b/cromite_flags/third_party/blink/common/features_h/Disable-text-fragments-by-default.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/third_party/blink/common/features_h/Disable-text-fragments-by-default.inc @@ -0,0 +1 @@ +BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kTextFragmentAnchor); diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc @@ -4972,9 +4972,14 @@ void Document::SetURL(const KURL& url) { TRACE_EVENT("blink", "Document::SetURL", perfetto::Flow::FromPointer(this), "url", new_url.GetString().Utf8()); + // If text fragment identifiers are enabled, we strip the fragment directive + // from the URL fragment. + // E.g. "#id:~:text=a" --> "#id" + if (RuntimeEnabledFeatures::TextFragmentIdentifiersEnabled(domWindow())) { // Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a" // --> "#id". See https://github.com/WICG/scroll-to-text-fragment. new_url = fragment_directive_->ConsumeFragmentDirective(new_url); + } url_ = new_url; UpdateBaseURL(); diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -5749,10 +5749,9 @@ }, { name: "TextFragmentIdentifiers", - origin_trial_feature_name: "TextFragmentIdentifiers", public: true, - status: "stable", - base_feature: "TextFragmentAnchor", + status: "test", + origin_trial_feature_name: "TextFragmentIdentifiers" }, { name: "TextFragmentTapOpensContextMenu", --