Commit 6695ffa6 authored by Hoch Hochkeppel's avatar Hoch Hochkeppel Committed by Commit Bot

WebShare: Add Feature Flag

Adding a new feature flag to allow enabling the WebShare functionality
on the platforms (OS and Chrome OS) where it is being actively
developed.

http://crbug.com/1035527

Change-Id: I5cd9274457c86c957360ff7e6a0b61f1c474e124
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2357091Reviewed-by: default avatarEric Willigers <ericwilligers@chromium.org>
Commit-Queue: Hoch Hochkeppel <mhochk@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#798717}
parent c1b7cebf
...@@ -3081,6 +3081,11 @@ const FeatureEntry kFeatureEntries[] = { ...@@ -3081,6 +3081,11 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kMacV2GPUSandboxDescription, kOsMac, flag_descriptions::kMacV2GPUSandboxDescription, kOsMac,
FEATURE_VALUE_TYPE(features::kMacV2GPUSandbox)}, FEATURE_VALUE_TYPE(features::kMacV2GPUSandbox)},
#endif // OS_MAC #endif // OS_MAC
#if defined(OS_CHROMEOS) || defined(OS_WIN)
{"web-share", flag_descriptions::kWebShareName,
flag_descriptions::kWebShareDescription, kOsWin | kOsCrOS,
FEATURE_VALUE_TYPE(features::kWebShare)},
#endif // OS_CHROMEOS || OS_WIN
#if BUILDFLAG(ENABLE_VR) #if BUILDFLAG(ENABLE_VR)
{"webxr-incubations", flag_descriptions::kWebXrIncubationsName, {"webxr-incubations", flag_descriptions::kWebXrIncubationsName,
flag_descriptions::kWebXrIncubationsDescription, kOsAll, flag_descriptions::kWebXrIncubationsDescription, kOsAll,
......
...@@ -4501,6 +4501,11 @@ ...@@ -4501,6 +4501,11 @@
"owners": [ "ayui", "goto" ], "owners": [ "ayui", "goto" ],
"expiry_milestone": 86 "expiry_milestone": 86
}, },
{
"name": "web-share",
"owners": [ "mhochk@microsoft.com", "ericwilligers@google.com" ],
"expiry_milestone": 89
},
{ {
"name": "webpage-default-zoom-from-dynamic-type", "name": "webpage-default-zoom-from-dynamic-type",
"owners": [ "rkgibson", "bling-flags" ], "owners": [ "rkgibson", "bling-flags" ],
......
...@@ -4459,6 +4459,13 @@ const char kUserDataSnapshotDescription[] = ...@@ -4459,6 +4459,13 @@ const char kUserDataSnapshotDescription[] =
"update and restoring them after a version rollback."; "update and restoring them after a version rollback.";
#endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
#if defined(OS_WIN) || defined(OS_CHROMEOS)
const char kWebShareName[] = "Web Share";
const char kWebShareDescription[] =
"Enables the Web Share (navigator.share) APIs on experimentally supported "
"platforms.";
#endif // defined(OS_WIN) || defined(OS_CHROMEOS)
// Feature flags -------------------------------------------------------------- // Feature flags --------------------------------------------------------------
#if defined(DCHECK_IS_CONFIGURABLE) #if defined(DCHECK_IS_CONFIGURABLE)
......
...@@ -2617,6 +2617,11 @@ extern const char kUserDataSnapshotName[]; ...@@ -2617,6 +2617,11 @@ extern const char kUserDataSnapshotName[];
extern const char kUserDataSnapshotDescription[]; extern const char kUserDataSnapshotDescription[];
#endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
#if defined(OS_WIN) || defined(OS_CHROMEOS)
extern const char kWebShareName[];
extern const char kWebShareDescription[];
#endif // defined(OS_WIN) || defined(OS_CHROMEOS)
// Feature flags -------------------------------------------------------------- // Feature flags --------------------------------------------------------------
#if defined(DCHECK_IS_CONFIGURABLE) #if defined(DCHECK_IS_CONFIGURABLE)
......
...@@ -812,6 +812,11 @@ const base::Feature kWebRtcRemoteEventLogGzipped{ ...@@ -812,6 +812,11 @@ const base::Feature kWebRtcRemoteEventLogGzipped{
"WebRtcRemoteEventLogGzipped", base::FEATURE_ENABLED_BY_DEFAULT}; "WebRtcRemoteEventLogGzipped", base::FEATURE_ENABLED_BY_DEFAULT};
#endif #endif
#if defined(OS_WIN) || defined(OS_CHROMEOS)
// Enables Web Share (navigator.share)
const base::Feature kWebShare{"WebShare", base::FEATURE_DISABLED_BY_DEFAULT};
#endif
// Enables setting time limit for Chrome and PWA's on child user device. // Enables setting time limit for Chrome and PWA's on child user device.
// Requires |kPerAppTimeLimits| to be enabled. // Requires |kPerAppTimeLimits| to be enabled.
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
......
...@@ -552,6 +552,10 @@ COMPONENT_EXPORT(CHROME_FEATURES) ...@@ -552,6 +552,10 @@ COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kWebRtcRemoteEventLogGzipped; extern const base::Feature kWebRtcRemoteEventLogGzipped;
#endif #endif
#if defined(OS_WIN) || defined(OS_CHROMEOS)
COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWebShare;
#endif
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
COMPONENT_EXPORT(CHROME_FEATURES) COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kWebTimeLimits; extern const base::Feature kWebTimeLimits;
......
...@@ -1490,11 +1490,14 @@ void ChromeContentRendererClient:: ...@@ -1490,11 +1490,14 @@ void ChromeContentRendererClient::
// embedder only. // embedder only.
blink::WebRuntimeFeatures::EnablePerformanceManagerInstrumentation(true); blink::WebRuntimeFeatures::EnablePerformanceManagerInstrumentation(true);
// Web Share is shipped on Android, experimental otherwise. It is enabled here, // Web Share is conditionally enabled here in chrome/, to avoid it being
// in chrome/, to avoid it being made available in other clients of content/ // made available in other clients of content/ that do not have a Web Share
// that do not have a Web Share Mojo implementation. // Mojo implementation (e.g. WebView). Web Share is shipped on Android.
#if defined(OS_ANDROID) #if defined(OS_CHROMEOS) || defined(OS_WIN)
blink::WebRuntimeFeatures::EnableWebShare(true); if (base::FeatureList::IsEnabled(features::kWebShare))
#endif
#if defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_ANDROID)
blink::WebRuntimeFeatures::EnableWebShare(true);
#endif #endif
if (base::FeatureList::IsEnabled(subresource_filter::kAdTagging)) if (base::FeatureList::IsEnabled(subresource_filter::kAdTagging))
......
...@@ -40207,6 +40207,7 @@ from previous Chrome versions. ...@@ -40207,6 +40207,7 @@ from previous Chrome versions.
<int value="-1938263248" label="enable-extension-info-dialog"/> <int value="-1938263248" label="enable-extension-info-dialog"/>
<int value="-1937077699" label="http-form-warning"/> <int value="-1937077699" label="http-form-warning"/>
<int value="-1936032607" label="enable-experimental-webassembly-features"/> <int value="-1936032607" label="enable-experimental-webassembly-features"/>
<int value="-1935055754" label="WebShare:enabled"/>
<int value="-1934661084" label="ForceUnifiedConsentBump:disabled"/> <int value="-1934661084" label="ForceUnifiedConsentBump:disabled"/>
<int value="-1933425042" label="OfflinePreviews:enabled"/> <int value="-1933425042" label="OfflinePreviews:enabled"/>
<int value="-1932609987" label="CSSBackdropFilter:disabled"/> <int value="-1932609987" label="CSSBackdropFilter:disabled"/>
...@@ -41788,6 +41789,7 @@ from previous Chrome versions. ...@@ -41788,6 +41789,7 @@ from previous Chrome versions.
<int value="-311148335" label="v8-pac-mojo-out-of-process"/> <int value="-311148335" label="v8-pac-mojo-out-of-process"/>
<int value="-310908854" label="new-wallpaper-picker"/> <int value="-310908854" label="new-wallpaper-picker"/>
<int value="-310615515" label="EnableSuggestedFiles:disabled"/> <int value="-310615515" label="EnableSuggestedFiles:disabled"/>
<int value="-308793293" label="WebShare:disabled"/>
<int value="-307260007" label="ExtensionsCheckup:disabled"/> <int value="-307260007" label="ExtensionsCheckup:disabled"/>
<int value="-306935714" label="lite-video-force-override-decision"/> <int value="-306935714" label="lite-video-force-override-decision"/>
<int value="-304951461" label="TextSuggestionsTouchBar:enabled"/> <int value="-304951461" label="TextSuggestionsTouchBar:enabled"/>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment