165 lines
7.7 KiB
Diff
165 lines
7.7 KiB
Diff
|
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/about_flags.cc | 5 +++++
|
||
|
chrome/browser/flag-metadata.json | 5 +++++
|
||
|
chrome/browser/flag_descriptions.cc | 4 ++++
|
||
|
chrome/browser/flag_descriptions.h | 3 +++
|
||
|
chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +-
|
||
|
content/child/runtime_features.cc | 2 ++
|
||
|
third_party/blink/common/features.cc | 5 +++++
|
||
|
third_party/blink/public/common/features.h | 1 +
|
||
|
third_party/blink/renderer/core/dom/document.cc | 5 +++++
|
||
|
.../blink/renderer/platform/runtime_enabled_features.json5 | 5 ++---
|
||
|
10 files changed, 33 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||
|
--- a/chrome/browser/about_flags.cc
|
||
|
+++ b/chrome/browser/about_flags.cc
|
||
|
@@ -7218,6 +7218,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||
|
flag_descriptions::kLegacyTechReportTopLevelUrlDescription, kOsAll,
|
||
|
FEATURE_VALUE_TYPE(features::kLegacyTechReportTopLevelUrl)},
|
||
|
|
||
|
+ {"enable-text-fragment-anchor",
|
||
|
+ flag_descriptions::kEnableTextFragmentAnchorName,
|
||
|
+ flag_descriptions::kEnableTextFragmentAnchorDescription, kOsAll,
|
||
|
+ FEATURE_VALUE_TYPE(blink::features::kTextFragmentAnchor)},
|
||
|
+
|
||
|
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||
|
{"enable-web-authentication-chromeos-authenticator",
|
||
|
flag_descriptions::kEnableWebAuthenticationChromeOSAuthenticatorName,
|
||
|
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||
|
--- a/chrome/browser/flag-metadata.json
|
||
|
+++ b/chrome/browser/flag-metadata.json
|
||
|
@@ -3250,6 +3250,11 @@
|
||
|
"owners": [ "robsc", "napper", "alanlxl" ],
|
||
|
"expiry_milestone": 130
|
||
|
},
|
||
|
+ {
|
||
|
+ "name": "enable-text-fragment-anchor",
|
||
|
+ "owners": [ "bokan", "input-dev" ],
|
||
|
+ "expiry_milestone": -1
|
||
|
+ },
|
||
|
{
|
||
|
"name": "enable-neural-stylus-palm-rejection",
|
||
|
"owners": [ "robsc", "napper", "adlr" ],
|
||
|
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||
|
--- a/chrome/browser/flag_descriptions.cc
|
||
|
+++ b/chrome/browser/flag_descriptions.cc
|
||
|
@@ -1501,6 +1501,10 @@ const char kDropInputEventsBeforeFirstPaintDescription[] =
|
||
|
"intentionally interact with elements on that page. By dropping the events "
|
||
|
"we prevent accidental interaction with a page the user has not seen yet.";
|
||
|
|
||
|
+const char kEnableTextFragmentAnchorName[] = "Enable Text Fragment Anchor.";
|
||
|
+const char kEnableTextFragmentAnchorDescription[] =
|
||
|
+ "Enables scrolling to text specified in URL's fragment.";
|
||
|
+
|
||
|
const char kEnableCssSelectorFragmentAnchorName[] =
|
||
|
"Enables CSS selector fragment anchors";
|
||
|
const char kEnableCssSelectorFragmentAnchorDescription[] =
|
||
|
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||
|
--- a/chrome/browser/flag_descriptions.h
|
||
|
+++ b/chrome/browser/flag_descriptions.h
|
||
|
@@ -843,6 +843,9 @@ extern const char kExperimentalRgbKeyboardPatternsDescription[];
|
||
|
|
||
|
extern const char kRetailCouponsName[];
|
||
|
extern const char kRetailCouponsDescription[];
|
||
|
+extern const char kEnableTextFragmentAnchorName[];
|
||
|
+extern const char kEnableTextFragmentAnchorDescription[];
|
||
|
+
|
||
|
|
||
|
extern const char kDropInputEventsBeforeFirstPaintName[];
|
||
|
extern const char kDropInputEventsBeforeFirstPaintDescription[];
|
||
|
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
|
||
|
@@ -366,7 +366,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
|
||
|
@@ -293,6 +293,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||
|
#endif
|
||
|
{wf::EnableTouchDragAndContextMenu,
|
||
|
raw_ref(features::kTouchDragAndContextMenu)},
|
||
|
+ {wf::EnableTextFragmentIdentifiers,
|
||
|
+ raw_ref(blink::features::kTextFragmentAnchor)},
|
||
|
{wf::EnableUserActivationSameOriginVisibility,
|
||
|
raw_ref(features::kUserActivationSameOriginVisibility)},
|
||
|
{wf::EnableVideoPlaybackQuality, raw_ref(features::kVideoPlaybackQuality)},
|
||
|
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||
|
--- a/third_party/blink/common/features.cc
|
||
|
+++ b/third_party/blink/common/features.cc
|
||
|
@@ -767,6 +767,11 @@ BASE_FEATURE(kFencedFramesM119Features,
|
||
|
"FencedFramesM119Features",
|
||
|
base::FEATURE_DISABLED_BY_DEFAULT);
|
||
|
|
||
|
+// Enable text snippets in URL fragments. https://crbug.com/919204.
|
||
|
+BASE_FEATURE(kTextFragmentAnchor,
|
||
|
+ "TextFragmentAnchor",
|
||
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||
|
+
|
||
|
// File handling icons. https://crbug.com/1218213
|
||
|
BASE_FEATURE(kFileHandlingIcons,
|
||
|
"FileHandlingIcons",
|
||
|
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
|
||
|
--- a/third_party/blink/public/common/features.h
|
||
|
+++ b/third_party/blink/public/common/features.h
|
||
|
@@ -351,6 +351,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDispatchBeforeUnloadOnFreeze);
|
||
|
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDisplayLocking);
|
||
|
|
||
|
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDropInputEventsBeforeFirstPaint);
|
||
|
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kTextFragmentAnchor);
|
||
|
|
||
|
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDroppedTouchSequenceIncludesTouchEnd);
|
||
|
|
||
|
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
|
||
|
@@ -4465,9 +4465,14 @@ void Document::SetURL(const KURL& url) {
|
||
|
TRACE_EVENT1("navigation", "Document::SetURL", "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
|
||
|
@@ -3736,10 +3736,9 @@
|
||
|
},
|
||
|
{
|
||
|
name: "TextFragmentIdentifiers",
|
||
|
- origin_trial_feature_name: "TextFragmentIdentifiers",
|
||
|
public: true,
|
||
|
- status: "stable",
|
||
|
- base_feature: "TextFragmentAnchor",
|
||
|
+ status: "test",
|
||
|
+ origin_trial_feature_name: "TextFragmentIdentifiers"
|
||
|
},
|
||
|
{
|
||
|
name: "TextFragmentTapOpensContextMenu",
|
||
|
--
|
||
|
2.25.1
|