[AUTO][FILECONTROL] - version 136.0.7103.60 (#2038)
[AUTO][FILECONTROL] - version 136.0.7103.60
This commit is contained in:
@@ -1 +1 @@
|
||||
135.0.7049.115
|
||||
136.0.7103.60
|
||||
|
||||
@@ -106,7 +106,6 @@
|
||||
#include "content/public/common/content_features.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/common/url_constants.h"
|
||||
#include "content/public/common/user_agent.h"
|
||||
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "net/android/network_library.h"
|
||||
@@ -118,6 +117,7 @@
|
||||
#include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom.h"
|
||||
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||
#include "services/network/network_service.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
#include "services/network/public/cpp/url_loader_factory_builder.h"
|
||||
#include "services/network/public/mojom/cookie_manager.mojom-forward.h"
|
||||
@@ -127,6 +127,7 @@
|
||||
#include "services/service_manager/public/cpp/interface_provider.h"
|
||||
#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
|
||||
#include "third_party/blink/public/common/loader/url_loader_throttle.h"
|
||||
#include "third_party/blink/public/common/navigation/preloading_headers.h"
|
||||
#include "third_party/blink/public/common/web_preferences/web_preferences.h"
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
#include "ui/base/resource/resource_bundle_android.h"
|
||||
@@ -143,6 +144,14 @@ using AttributionReportingOsRegistrar =
|
||||
content::ContentBrowserClient::AttributionReportingOsRegistrar;
|
||||
|
||||
namespace android_webview {
|
||||
|
||||
AwContentBrowserClient::AfterStartupTask::AfterStartupTask() = default;
|
||||
AwContentBrowserClient::AfterStartupTask::~AfterStartupTask() = default;
|
||||
AwContentBrowserClient::AfterStartupTask::AfterStartupTask(
|
||||
AfterStartupTask&& other) = default;
|
||||
AwContentBrowserClient::StartupInfo::StartupInfo() = default;
|
||||
AwContentBrowserClient::StartupInfo::~StartupInfo() = default;
|
||||
|
||||
namespace {
|
||||
#if DCHECK_IS_ON()
|
||||
// A boolean value to determine if the NetworkContext has been created yet. This
|
||||
@@ -221,12 +230,12 @@ std::string GetUserAgent() {
|
||||
|
||||
if (base::FeatureList::IsEnabled(
|
||||
features::kWebViewReduceUAAndroidVersionDeviceModel)) {
|
||||
return content::BuildUnifiedPlatformUAFromProductAndExtraOs(product,
|
||||
"; wv");
|
||||
return embedder_support::BuildUnifiedPlatformUAFromProductAndExtraOs(
|
||||
product, "; wv");
|
||||
}
|
||||
|
||||
return content::BuildUserAgentFromProductAndExtraOSInfo(
|
||||
product, "; wv", content::IncludeAndroidBuildNumber::Include);
|
||||
return embedder_support::BuildUserAgentFromProductAndExtraOSInfo(
|
||||
product, "; wv", embedder_support::IncludeAndroidBuildNumber::Include);
|
||||
}
|
||||
|
||||
// TODO(yirui): can use similar logic as in PrependToAcceptLanguagesIfNecessary
|
||||
@@ -323,6 +332,63 @@ AwContentBrowserClient::CreateBrowserMainParts(bool /* is_integration_test */) {
|
||||
return std::make_unique<AwBrowserMainParts>(this);
|
||||
}
|
||||
|
||||
bool IsStartupTaskExperimentEnabled() {
|
||||
auto* command_line = base::CommandLine::ForCurrentProcess();
|
||||
return AwBrowserMainParts::isWebViewStartupTasksExperimentEnabled() ||
|
||||
command_line->HasSwitch(switches::kWebViewUseStartupTasksLogic);
|
||||
}
|
||||
|
||||
void AwContentBrowserClient::PostAfterStartupTask(
|
||||
const base::Location& from_here,
|
||||
const scoped_refptr<base::SequencedTaskRunner>& task_runner,
|
||||
base::OnceClosure task) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
if (!IsStartupTaskExperimentEnabled()) {
|
||||
task_runner->PostTask(from_here, std::move(task));
|
||||
return;
|
||||
}
|
||||
|
||||
if (startup_info_.startup_complete) {
|
||||
task_runner->PostTask(from_here, std::move(task));
|
||||
return;
|
||||
}
|
||||
|
||||
AfterStartupTask task_info;
|
||||
task_info.from_here = from_here;
|
||||
task_info.task_runner = task_runner;
|
||||
task_info.task = std::move(task);
|
||||
startup_info_.after_startup_tasks.push_back(std::move(task_info));
|
||||
}
|
||||
|
||||
void AwContentBrowserClient::OnStartupComplete() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
DCHECK(!startup_info_.startup_complete);
|
||||
|
||||
startup_info_.startup_complete = true;
|
||||
// if the native ui task execution isn't enabled already, enable it.
|
||||
if (!startup_info_.enable_native_task_execution_callback.is_null()) {
|
||||
std::move(startup_info_.enable_native_task_execution_callback).Run();
|
||||
}
|
||||
|
||||
auto& tasks_queue = startup_info_.after_startup_tasks;
|
||||
for (AfterStartupTask& after_startup_task : tasks_queue) {
|
||||
after_startup_task.task_runner->PostTask(
|
||||
after_startup_task.from_here, std::move(after_startup_task.task));
|
||||
}
|
||||
tasks_queue.clear();
|
||||
}
|
||||
|
||||
void AwContentBrowserClient::OnUiTaskRunnerReady(
|
||||
base::OnceClosure enable_native_task_execution_callback) {
|
||||
if (!IsStartupTaskExperimentEnabled()) {
|
||||
std::move(enable_native_task_execution_callback).Run();
|
||||
return;
|
||||
}
|
||||
|
||||
startup_info_.enable_native_task_execution_callback =
|
||||
std::move(enable_native_task_execution_callback);
|
||||
}
|
||||
|
||||
std::unique_ptr<content::WebContentsViewDelegate>
|
||||
AwContentBrowserClient::GetWebContentsViewDelegate(
|
||||
content::WebContents* web_contents) {
|
||||
@@ -833,7 +899,8 @@ bool AwContentBrowserClient::ShouldOverrideUrlLoading(
|
||||
if (is_prerendering) {
|
||||
// We pass the `Sec-Purpose` header to tell the embedder that the navigation
|
||||
// is for prerendering, within the existing API surface.
|
||||
request_headers.SetHeader("Sec-Purpose", "prefetch;prerender");
|
||||
request_headers.SetHeader(blink::kSecPurposeHeaderName,
|
||||
blink::kSecPurposePrefetchPrerenderHeaderValue);
|
||||
}
|
||||
|
||||
return client_bridge->ShouldOverrideUrlLoading(
|
||||
@@ -841,6 +908,14 @@ bool AwContentBrowserClient::ShouldOverrideUrlLoading(
|
||||
request_headers, ignore_navigation);
|
||||
}
|
||||
|
||||
bool AwContentBrowserClient::SupportsAvoidUnnecessaryBeforeUnloadCheckSync() {
|
||||
// WebView allows the embedder to override navigation in such a way that
|
||||
// might trigger reentrancy if this returned true. See comments in
|
||||
// `ContentBrowserClient::SupportsAvoidUnnecessaryBeforeUnloadCheckSync()` for
|
||||
// more details.
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AwContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange(
|
||||
const content::RenderFrameHost& rfh) {
|
||||
if (!base::FeatureList::IsEnabled(features::kWebViewRenderDocument)) {
|
||||
@@ -1450,4 +1525,27 @@ bool AwContentBrowserClient::AllowNonActivatedCrossOriginPaintHolding() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AwContentBrowserClient::IsSharedStorageAllowed(
|
||||
content::BrowserContext* browser_context,
|
||||
content::RenderFrameHost* rfh,
|
||||
const url::Origin& top_frame_origin,
|
||||
const url::Origin& accessing_origin,
|
||||
std::string* out_debug_message,
|
||||
bool* out_block_is_site_setting_specific) {
|
||||
// TODO(https://crbug.com/401255068): We should have a more stringent check
|
||||
// here before launching beyond DEV.
|
||||
return base::FeatureList::IsEnabled(network::features::kSharedStorageAPI);
|
||||
}
|
||||
|
||||
bool AwContentBrowserClient::IsSharedStorageSelectURLAllowed(
|
||||
content::BrowserContext* browser_context,
|
||||
const url::Origin& top_frame_origin,
|
||||
const url::Origin& accessing_origin,
|
||||
std::string* out_debug_message,
|
||||
bool* out_block_is_site_setting_specific) {
|
||||
// TODO(https://crbug.com/401255068): We should have a more stringent check
|
||||
// here before launching beyond DEV.
|
||||
return base::FeatureList::IsEnabled(network::features::kSharedStorageAPI);
|
||||
}
|
||||
|
||||
} // namespace android_webview
|
||||
|
||||
@@ -32,12 +32,6 @@
|
||||
|
||||
namespace internal {
|
||||
|
||||
// Duplicated from content/browser/file_system_access/features.cc to allow
|
||||
// WebView-only override.
|
||||
BASE_FEATURE(kFileSystemAccessDirectoryIterationBlocklistCheck,
|
||||
"FileSystemAccessDirectoryIterationBlocklistCheck",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
AwFeatureOverrides::AwFeatureOverrides(base::FeatureList& feature_list)
|
||||
: feature_list_(feature_list) {}
|
||||
|
||||
@@ -96,8 +90,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
|
||||
}
|
||||
internal::AwFeatureOverrides aw_feature_overrides(*feature_list);
|
||||
|
||||
aw_feature_overrides.EnableFeature(::features::kWebViewFrameRateHints);
|
||||
|
||||
// Disable third-party storage partitioning on WebView.
|
||||
aw_feature_overrides.DisableFeature(
|
||||
net::features::kThirdPartyStoragePartitioning);
|
||||
@@ -201,6 +193,9 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
|
||||
// TODO(crbug.com/41441927): WebUSB is not yet supported on WebView.
|
||||
aw_feature_overrides.DisableFeature(::features::kWebUsb);
|
||||
|
||||
// Disable Web Serial API on WebView.
|
||||
aw_feature_overrides.DisableFeature(blink::features::kWebSerialAPI);
|
||||
|
||||
// Disable TFLite based language detection on webview until webview supports
|
||||
// ML model delivery via Optimization Guide component.
|
||||
// TODO(crbug.com/40819484): Enable the feature on Webview.
|
||||
@@ -311,15 +306,14 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
|
||||
// Sharing ANGLE's Vulkan queue is not supported on WebView.
|
||||
aw_feature_overrides.DisableFeature(::features::kVulkanFromANGLE);
|
||||
|
||||
// Temporarily turn off kFileSystemAccessDirectoryIterationBlocklistCheck for
|
||||
// a kill switch. https://crbug.com/393606977
|
||||
aw_feature_overrides.DisableFeature(
|
||||
internal::kFileSystemAccessDirectoryIterationBlocklistCheck);
|
||||
|
||||
// Viz has no internal differentiation for WebView. We will roll out these
|
||||
// combined features separately.
|
||||
aw_feature_overrides.DisableFeature(
|
||||
::features::kDrawImmediatelyWhenInteractive);
|
||||
aw_feature_overrides.DisableFeature(
|
||||
::features::kAckOnSurfaceActivationWhenInteractive);
|
||||
|
||||
// Partitioned :visited links history is not supported on WebView.
|
||||
aw_feature_overrides.DisableFeature(
|
||||
blink::features::kPartitionVisitedLinkDatabaseWithSelfLinks);
|
||||
}
|
||||
|
||||
@@ -629,11 +629,6 @@ by a child template that "extends" this file.
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode"
|
||||
android:exported="false">
|
||||
</activity>
|
||||
<activity android:name="org.chromium.chrome.browser.signin.SyncConsentActivity"
|
||||
android:theme="@style/Theme.Chromium.DialogWhenLarge"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode"
|
||||
android:exported="false">
|
||||
</activity>
|
||||
<activity android:name="org.chromium.chrome.browser.device_lock.DeviceLockActivity"
|
||||
android:theme="@style/Theme.Chromium.DialogWhenLarge"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode"
|
||||
|
||||
+1
-1
@@ -1524,7 +1524,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
CHECK_DEREF((profile_->IsGuestSession() ? profile_->GetOriginalProfile()
|
||||
: profile_.get())
|
||||
->GetPrefs()),
|
||||
search_engines::WipeSearchEngineChoiceReason::kProfileWipe);
|
||||
search_engines::SearchEngineChoiceWipeReason::kProfileWipe);
|
||||
search_engines::SearchEngineChoiceServiceFactory::GetForProfile(profile_)
|
||||
->ResetState();
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "base/types/expected.h"
|
||||
#include "base/types/expected_macros.h"
|
||||
#include "base/values.h"
|
||||
#include "build/android_buildflags.h"
|
||||
#include "build/branding_buildflags.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM
|
||||
@@ -91,6 +92,7 @@
|
||||
#include "chrome/browser/interstitials/enterprise_util.h"
|
||||
#include "chrome/browser/language_detection/language_detection_model_service_factory.h"
|
||||
#include "chrome/browser/lifetime/browser_shutdown.h"
|
||||
#include "chrome/browser/loader/keep_alive_request_tracker.h"
|
||||
#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
|
||||
#include "chrome/browser/media/audio_service_util.h"
|
||||
#include "chrome/browser/media/prefs/capture_device_ranking.h"
|
||||
@@ -199,9 +201,8 @@
|
||||
#include "chrome/browser/universal_web_contents_observers.h"
|
||||
#include "chrome/browser/usb/chrome_usb_delegate.h"
|
||||
#include "chrome/browser/vr/vr_tab_helper.h"
|
||||
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h"
|
||||
#include "chrome/browser/webapps/web_app_offline.h"
|
||||
#include "chrome/browser/webauthn/chrome_web_authentication_delegate.h"
|
||||
#include "chrome/browser/webauthn/chrome_web_authentication_delegate_base.h"
|
||||
#include "chrome/browser/webauthn/webauthn_pref_names.h"
|
||||
#include "chrome/common/buildflags.h"
|
||||
#include "chrome/common/channel_info.h"
|
||||
@@ -423,6 +424,7 @@
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
#include "ui/color/color_provider_key.h"
|
||||
#include "ui/gfx/color_utils.h"
|
||||
#include "ui/gfx/switches.h"
|
||||
#include "ui/native_theme/native_theme.h"
|
||||
#include "url/gurl.h"
|
||||
@@ -549,6 +551,8 @@
|
||||
#include "chrome/browser/preloading/preview/preview_navigation_throttle.h"
|
||||
#include "chrome/browser/ui/webui/ntp_microsoft_auth/ntp_microsoft_auth_response_capture_navigation_throttle.h"
|
||||
#include "chrome/browser/web_applications/isolated_web_apps/chrome_content_browser_client_isolated_web_apps_part.h"
|
||||
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.h"
|
||||
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h"
|
||||
#include "chrome/browser/web_applications/locks/app_lock.h"
|
||||
#include "chrome/browser/web_applications/proto/web_app_install_state.pb.h"
|
||||
#include "chrome/browser/web_applications/web_app_helpers.h"
|
||||
@@ -738,7 +742,6 @@
|
||||
|
||||
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||
#include "chrome/browser/enterprise/connectors/connectors_service.h"
|
||||
#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.h"
|
||||
#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service_factory.h"
|
||||
#include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
|
||||
#include "chrome/browser/safe_browsing/chrome_ping_manager_factory.h"
|
||||
@@ -747,6 +750,7 @@
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
#include "chrome/browser/safe_browsing/url_lookup_service_factory.h"
|
||||
#include "components/safe_browsing/content/browser/safe_browsing_navigation_throttle.h"
|
||||
#include "components/safe_browsing/core/browser/realtime/chrome_enterprise_url_lookup_service.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_OFFLINE_PAGES)
|
||||
@@ -778,6 +782,7 @@
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#include "chrome/browser/screen_ai/screen_ai_install_state.h"
|
||||
#include "chrome/browser/webauthn/chrome_web_authentication_delegate.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
|
||||
@@ -1649,6 +1654,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
registry->RegisterBooleanPref(prefs::kSharedWorkerBlobURLFixEnabled, true);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kServiceWorkerToControlSrcdocIframeEnabled, true);
|
||||
registry->RegisterBooleanPref(prefs::kReduceAcceptLanguageEnabled, true);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -2835,6 +2841,11 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
|
||||
blink::switches::kWebAudioBypassOutputBufferingOptOut);
|
||||
}
|
||||
|
||||
if (!prefs->GetBoolean(prefs::kReduceAcceptLanguageEnabled)) {
|
||||
command_line->AppendSwitch(
|
||||
blink::switches::kDisableReduceAcceptLanguage);
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
InstantService* instant_service =
|
||||
InstantServiceFactory::GetForProfile(profile);
|
||||
@@ -3766,6 +3777,11 @@ ChromeContentBrowserClient::GetSystemNetworkContext() {
|
||||
}
|
||||
|
||||
std::string ChromeContentBrowserClient::GetGeolocationApiKey() {
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
if (ash::features::IsCrosSeparateGeoApiKeyEnabled()) {
|
||||
return google_apis::GetCrosChromeGeoAPIKey();
|
||||
}
|
||||
#endif
|
||||
return google_apis::GetAPIKey();
|
||||
}
|
||||
|
||||
@@ -3813,6 +3829,22 @@ std::string ChromeContentBrowserClient::GetWebUIHostnameForCodeCacheMetrics(
|
||||
#endif
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::IsWebUIBundledCodeCachingEnabled(
|
||||
const GURL& webui_lock_url) const {
|
||||
// Enable bundled code caching only for top-chrome WebUI hosts.
|
||||
return base::FeatureList::IsEnabled(features::kWebUIBundledCodeCache) &&
|
||||
IsTopChromeWebUIURL(webui_lock_url);
|
||||
}
|
||||
|
||||
base::flat_map<GURL, int>
|
||||
ChromeContentBrowserClient::GetWebUIResourceUrlToCodeCacheMap() const {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
return webui::GetWebUIResourceUrlToCodeCacheMap();
|
||||
#else
|
||||
return ContentBrowserClient::GetWebUIResourceUrlToCodeCacheMap();
|
||||
#endif
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClient::AllowCertificateError(
|
||||
content::WebContents* web_contents,
|
||||
int cert_error,
|
||||
@@ -3955,9 +3987,6 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs,
|
||||
web_prefs->preferred_color_scheme;
|
||||
}
|
||||
#else
|
||||
// Update based on native theme scheme.
|
||||
web_prefs->preferred_color_scheme =
|
||||
ToBlinkPreferredColorScheme(native_theme->GetPreferredColorScheme());
|
||||
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
||||
@@ -3974,30 +4003,65 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs,
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
// TODO(crbug.com/359577226): merge the branches for WebUI and non-WebUI
|
||||
// contents after kContentUsesBrowserThemeColorMode is launched.
|
||||
if (content::HasWebUIScheme(url)) {
|
||||
// If color scheme is not forced, WebUI should track the color mode of the
|
||||
// ColorProvider associated with `web_contents`.
|
||||
// Incognito contents follow the device color mode.
|
||||
if (profile->IsIncognitoProfile() && !content::HasWebUIScheme(url)) {
|
||||
web_prefs->preferred_color_scheme =
|
||||
web_contents->GetColorMode() == ui::ColorProviderKey::ColorMode::kLight
|
||||
? blink::mojom::PreferredColorScheme::kLight
|
||||
: blink::mojom::PreferredColorScheme::kDark;
|
||||
} else if (base::FeatureList::IsEnabled(
|
||||
features::kContentUsesBrowserThemeColorMode) &&
|
||||
!profile->IsIncognitoProfile()) {
|
||||
// Track the browser theme's color mode in contents.
|
||||
// Incognito contents are not affected by the browser theme.
|
||||
ToBlinkPreferredColorScheme(native_theme->GetPreferredColorScheme());
|
||||
} else {
|
||||
// WebUI and regular pages follow the browser theme color mode, provided by
|
||||
// the color provider.
|
||||
web_prefs->preferred_color_scheme =
|
||||
web_contents->GetColorMode() == ui::ColorProviderKey::ColorMode::kLight
|
||||
? blink::mojom::PreferredColorScheme::kLight
|
||||
: blink::mojom::PreferredColorScheme::kDark;
|
||||
}
|
||||
|
||||
// Guest contents uses the same color scheme as the owner contents.
|
||||
content::WebContents* owner_contents =
|
||||
guest_view::GuestViewBase::GetTopLevelWebContents(web_contents);
|
||||
// If the top-level WebContents is the same as the guest, then
|
||||
// `web_contents` is *not* a guest.
|
||||
if (owner_contents != web_contents) {
|
||||
web_prefs->preferred_color_scheme =
|
||||
owner_contents->GetOrCreateWebPreferences().preferred_color_scheme;
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
return old_preferred_color_scheme != web_prefs->preferred_color_scheme;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
// Sets the `root_scrollbar_theme_color` web pref if the user has enabled a
|
||||
// custom colored frame for the UI.
|
||||
void UpdateRootScrollbarThemeColor(Profile* profile,
|
||||
const WebContents* web_contents,
|
||||
WebPreferences* web_prefs) {
|
||||
if (!base::FeatureList::IsEnabled(
|
||||
blink::features::kRootScrollbarFollowsBrowserTheme)) {
|
||||
return;
|
||||
}
|
||||
if (ThemeService* theme_service =
|
||||
ThemeServiceFactory::GetForProfile(profile)) {
|
||||
if (!theme_service->UsingDefaultTheme() ||
|
||||
theme_service->GetUserColor().has_value() ||
|
||||
theme_service->UsingDeviceTheme()) {
|
||||
color_utils::HSL hsl;
|
||||
color_utils::SkColorToHSL(
|
||||
web_contents->GetColorProvider().GetColor(kColorToolbar), &hsl);
|
||||
// Clamp the lightness of theme colors that are too light or dark and
|
||||
// have no contrast against the background. We don't use color_utils
|
||||
// contrast functions because they lose saturation.
|
||||
static constexpr double kTopLightnessThreshold = 0.8;
|
||||
static constexpr double kBottomLightnessThreshold = 0.3;
|
||||
hsl.l =
|
||||
std::clamp(hsl.l, kBottomLightnessThreshold, kTopLightnessThreshold);
|
||||
web_prefs->root_scrollbar_theme_color =
|
||||
color_utils::HSLToSkColor(hsl, SK_AlphaOPAQUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
|
||||
// Returns whether the user can be prompted to select a client certificate after
|
||||
// no certificate got auto-selected.
|
||||
bool CanPromptWithNonmatchingCertificates(const Profile* profile) {
|
||||
@@ -4144,7 +4208,10 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
|
||||
// result in always proceeding with no certificate for any request from an
|
||||
// extension service worker. That decision would be remembered across the
|
||||
// entire profile, potentially locking the user out of the origin.
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS) && !BUILDFLAG(IS_ANDROID)
|
||||
// Allow background requests on desktop android even if there are no
|
||||
// matching certificates.
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS) && \
|
||||
!(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID))
|
||||
if (matching_certificates.empty() && nonmatching_certificates.empty()) {
|
||||
extensions::ProcessMap* process_map =
|
||||
extensions::ProcessMap::Get(profile);
|
||||
@@ -4590,6 +4657,9 @@ void ChromeContentBrowserClient::OverrideWebPreferences(
|
||||
|
||||
UpdatePreferredColorScheme(web_prefs, main_frame_site.GetSiteURL(),
|
||||
web_contents, GetWebTheme());
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
UpdateRootScrollbarThemeColor(profile, web_contents, web_prefs);
|
||||
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
|
||||
web_prefs->translate_service_available = TranslateService::IsAvailable(prefs);
|
||||
|
||||
@@ -4611,23 +4681,15 @@ void ChromeContentBrowserClient::OverrideWebPreferences(
|
||||
// If the pref is not set, the default value (true) will be used:
|
||||
web_prefs->webxr_immersive_ar_allowed =
|
||||
prefs->GetBoolean(prefs::kWebXRImmersiveArEnabled);
|
||||
|
||||
// Only set `databases_enabled` if disabled, otherwise check blink::feature
|
||||
// settings.
|
||||
web_prefs->databases_enabled =
|
||||
!web_prefs->databases_enabled
|
||||
? false
|
||||
: base::FeatureList::IsEnabled(blink::features::kWebSQLAccess);
|
||||
#else
|
||||
// TODO(crbug.com/333756088): WebSQL is disabled everywhere except Android
|
||||
// WebView.
|
||||
web_prefs->databases_enabled = false;
|
||||
#endif
|
||||
|
||||
for (auto& parts : extra_parts_) {
|
||||
parts->OverrideWebPreferences(web_contents, main_frame_site, web_prefs);
|
||||
}
|
||||
|
||||
// TODO(crbug.com/395838064): Cleanup WebSQL WebPreference.
|
||||
web_prefs->databases_enabled = false;
|
||||
|
||||
web_prefs->prefers_default_scrollbar_styles =
|
||||
prefs->GetBoolean(prefs::kPrefersDefaultScrollbarStyles);
|
||||
}
|
||||
@@ -5616,6 +5678,12 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
handle),
|
||||
&throttles);
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
MaybeAddThrottle(
|
||||
web_app::IsolatedWebAppThrottle::MaybeCreateThrottleFor(handle),
|
||||
&throttles);
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
return throttles;
|
||||
}
|
||||
|
||||
@@ -6947,6 +7015,24 @@ bool ChromeContentBrowserClient::IsSecurityLevelAcceptableForWebAuthn(
|
||||
switches::kIgnoreCertificateErrors);
|
||||
}
|
||||
|
||||
content::WebAuthenticationDelegate*
|
||||
ChromeContentBrowserClient::GetWebAuthenticationDelegate() {
|
||||
if (!web_authentication_delegate_) {
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
// Currently, Android is using only the common methods; therefore, the base
|
||||
// class is instantiated here. If you need custom behavior, you need to
|
||||
// introduce a class for Android that would inherit behavior from the base
|
||||
// class.
|
||||
web_authentication_delegate_ =
|
||||
std::make_unique<ChromeWebAuthenticationDelegateBase>();
|
||||
#else
|
||||
web_authentication_delegate_ =
|
||||
std::make_unique<ChromeWebAuthenticationDelegate>();
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
return web_authentication_delegate_.get();
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
void ChromeContentBrowserClient::CreateDeviceInfoService(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
@@ -6977,15 +7063,6 @@ ChromeContentBrowserClient::GetDirectSocketsDelegate() {
|
||||
return direct_sockets_delegate_.get();
|
||||
}
|
||||
|
||||
content::WebAuthenticationDelegate*
|
||||
ChromeContentBrowserClient::GetWebAuthenticationDelegate() {
|
||||
if (!web_authentication_delegate_) {
|
||||
web_authentication_delegate_ =
|
||||
std::make_unique<ChromeWebAuthenticationDelegate>();
|
||||
}
|
||||
return web_authentication_delegate_.get();
|
||||
}
|
||||
|
||||
std::unique_ptr<content::AuthenticatorRequestClientDelegate>
|
||||
ChromeContentBrowserClient::GetWebAuthenticationRequestDelegate(
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
@@ -8511,6 +8588,20 @@ bool ChromeContentBrowserClient::IsBlobUrlPartitioningEnabled(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::ShouldReduceAcceptLanguage(
|
||||
content::BrowserContext* browser_context) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
const PrefService::Preference* pref =
|
||||
Profile::FromBrowserContext(browser_context)
|
||||
->GetPrefs()
|
||||
->FindPreference(prefs::kReduceAcceptLanguageEnabled);
|
||||
|
||||
if (pref && pref->IsManaged() && pref->GetValue()->is_bool()) {
|
||||
return pref->GetValue()->GetBool();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClient::SetIsMinimalMode(bool minimal) {
|
||||
is_minimal_mode_ = minimal;
|
||||
}
|
||||
@@ -8924,3 +9015,26 @@ ChromeContentBrowserClient::MaybeOverrideLocalURLCrossOriginEmbedderPolicy(
|
||||
return pdf_embedder->GetCrossOriginEmbedderPolicy();
|
||||
}
|
||||
#endif // BUILDFLAG(ENABLE_PDF)
|
||||
|
||||
bool ChromeContentBrowserClient::ShouldPrioritizeForBackForwardCache(
|
||||
content::BrowserContext* browser_context,
|
||||
const GURL& url) {
|
||||
if (!browser_context) {
|
||||
return false;
|
||||
}
|
||||
return TemplateURLServiceFactory::GetForProfile(
|
||||
Profile::FromBrowserContext(browser_context))
|
||||
->IsSearchResultsPageFromDefaultSearchProvider(url);
|
||||
}
|
||||
|
||||
std::unique_ptr<content::KeepAliveRequestTracker>
|
||||
ChromeContentBrowserClient::MaybeCreateKeepAliveRequestTracker(
|
||||
const network::ResourceRequest& request,
|
||||
std::optional<ukm::SourceId> ukm_source_id,
|
||||
bool is_attribution_reporting_eligible_request,
|
||||
content::KeepAliveRequestTracker::IsContextDetachedCallback
|
||||
is_context_detached_callback) {
|
||||
return ChromeKeepAliveRequestTracker::MaybeCreateKeepAliveRequestTracker(
|
||||
request, ukm_source_id, is_attribution_reporting_eligible_request,
|
||||
std::move(is_context_detached_callback));
|
||||
}
|
||||
|
||||
+68
-110
@@ -174,6 +174,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE =
|
||||
"AndroidDumpOnScrollWithoutResource";
|
||||
public static final String ANDROID_ELEGANT_TEXT_HEIGHT = "AndroidElegantTextHeight";
|
||||
public static final String ANDROID_KEYBOARD_A11Y = "AndroidKeyboardA11y";
|
||||
public static final String ANDROID_NO_VISIBLE_HINT_FOR_DIFFERENT_TLD =
|
||||
"AndroidNoVisibleHintForDifferentTLD";
|
||||
public static final String ANDROID_OPEN_PDF_INLINE_BACKPORT = "AndroidOpenPdfInlineBackport";
|
||||
@@ -191,6 +192,8 @@ public abstract class ChromeFeatureList {
|
||||
"AndroidTabDeclutterRescueKillswitch";
|
||||
public static final String ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH =
|
||||
"AndroidTabSkipSaveTabsTaskKillswitch";
|
||||
public static final String ANDROID_THEME_MODULE = "AndroidThemeModule";
|
||||
public static final String ANDROID_WINDOW_POPUP_LARGE_SCREEN = "AndroidWindowPopupLargeScreen";
|
||||
public static final String ANIMATED_IMAGE_DRAG_SHADOW = "AnimatedImageDragShadow";
|
||||
public static final String ANDROID_MINIMAL_UI_LARGE_SCREEN = "AndroidMinimalUiLargeScreen";
|
||||
public static final String APP_SPECIFIC_HISTORY = "AppSpecificHistory";
|
||||
@@ -203,7 +206,6 @@ public abstract class ChromeFeatureList {
|
||||
"AutofillEnableCardBenefitsForAmericanExpress";
|
||||
public static final String AUTOFILL_ENABLE_CARD_BENEFITS_FOR_BMO =
|
||||
"AutofillEnableCardBenefitsForBmo";
|
||||
public static final String AUTOFILL_ENABLE_CARD_PRODUCT_NAME = "AutofillEnableCardProductName";
|
||||
public static final String AUTOFILL_ENABLE_LOCAL_IBAN = "AutofillEnableLocalIban";
|
||||
public static final String AUTOFILL_ENABLE_SERVER_IBAN = "AutofillEnableServerIban";
|
||||
public static final String AUTOFILL_ENABLE_CVC_STORAGE = "AutofillEnableCvcStorageAndFilling";
|
||||
@@ -215,6 +217,8 @@ public abstract class ChromeFeatureList {
|
||||
"AutofillEnableRankingFormulaAddressProfiles";
|
||||
public static final String AUTOFILL_ENABLE_RANKING_FORMULA_CREDIT_CARDS =
|
||||
"AutofillEnableRankingFormulaCreditCards";
|
||||
public static final String AUTOFILL_ENABLE_SUPPORT_FOR_HOME_AND_WORK =
|
||||
"AutofillEnableSupportForHomeAndWork";
|
||||
public static final String AUTOFILL_ENABLE_SYNCING_OF_PIX_BANK_ACCOUNTS =
|
||||
"AutofillEnableSyncingOfPixBankAccounts";
|
||||
public static final String AUTOFILL_ENABLE_VERVE_CARD_SUPPORT =
|
||||
@@ -236,7 +240,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String BACK_FORWARD_CACHE = "BackForwardCache";
|
||||
public static final String BACK_FORWARD_TRANSITIONS = "BackForwardTransitions";
|
||||
public static final String BCIV_BOTTOM_CONTROLS = "AndroidBcivBottomControls";
|
||||
public static final String BCIV_ZERO_BROWSER_FRAMES = "AndroidBcivZeroBrowserFrames";
|
||||
public static final String BLOCK_INTENTS_WHILE_LOCKED = "BlockIntentsWhileLocked";
|
||||
public static final String BOARDING_PASS_DETECTOR = "BoardingPassDetector";
|
||||
public static final String BOOKMARK_PANE_ANDROID = "BookmarkPaneAndroid";
|
||||
@@ -245,6 +248,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final String BROWSER_CONTROLS_IN_VIZ = "AndroidBrowserControlsInViz";
|
||||
public static final String BROWSING_DATA_MODEL = "BrowsingDataModel";
|
||||
public static final String CACHE_ACTIVITY_TASKID = "CacheActivityTaskID";
|
||||
public static final String CACHE_IS_MULTI_INSTANCE_API_31_ENABLED =
|
||||
"CacheIsMultiInstanceApi31Enabled";
|
||||
public static final String CAPTIVE_PORTAL_CERTIFICATE_LIST = "CaptivePortalCertificateList";
|
||||
public static final String CCT_ADAPTIVE_BUTTON = "CCTAdaptiveButton";
|
||||
public static final String CCT_AUTH_TAB = "CCTAuthTab";
|
||||
@@ -253,7 +258,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String CCT_AUTH_TAB_ENABLE_HTTPS_REDIRECTS =
|
||||
"CCTAuthTabEnableHttpsRedirects";
|
||||
public static final String CCT_AUTO_TRANSLATE = "CCTAutoTranslate";
|
||||
public static final String CCT_BEFORE_UNLOAD = "CCTBeforeUnload";
|
||||
public static final String CCT_BLOCK_TOUCHES_DURING_ENTER_ANIMATION =
|
||||
"CCTBlockTouchesDuringEnterAnimation";
|
||||
public static final String CCT_CLIENT_DATA_HEADER = "CCTClientDataHeader";
|
||||
@@ -287,12 +291,15 @@ public abstract class ChromeFeatureList {
|
||||
public static final String CCT_RESIZABLE_FOR_THIRD_PARTIES = "CCTResizableForThirdParties";
|
||||
public static final String CCT_REVAMPED_BRANDING = "CCTRevampedBranding";
|
||||
public static final String CCT_TAB_MODAL_DIALOG = "CCTTabModalDialog";
|
||||
public static final String CCT_TOOLBAR_REFACTOR = "CCTToolbarRefactor";
|
||||
public static final String CHANGE_UNFOCUSED_PRIORITY = "ChangeUnfocusedPriority";
|
||||
public static final String CHROME_SURVEY_NEXT_ANDROID = "ChromeSurveyNextAndroid";
|
||||
public static final String CLANK_STARTUP_LATENCY_INJECTION = "ClankStartupLatencyInjection";
|
||||
public static final String CLANK_WHATS_NEW = "ClankWhatsNew";
|
||||
public static final String CLEAR_BROWSING_DATA_ANDROID_SURVEY =
|
||||
"ClearBrowsingDataAndroidSurvey";
|
||||
public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY =
|
||||
"ClearInstanceInfoWhenClosedIntentionally";
|
||||
public static final String COLLECT_ANDROID_FRAME_TIMELINE_METRICS =
|
||||
"CollectAndroidFrameTimelineMetrics";
|
||||
public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted";
|
||||
@@ -304,6 +311,7 @@ public abstract class ChromeFeatureList {
|
||||
"ContextualSearchDisableOnlineDetection";
|
||||
public static final String CONTEXTUAL_SEARCH_SUPPRESS_SHORT_VIEW =
|
||||
"ContextualSearchSuppressShortView";
|
||||
public static final String CONTEXT_MENU_EMPTY_SPACE = "ContextMenuEmptySpace";
|
||||
public static final String CONTEXT_MENU_SYS_UI_MATCHES_ACTIVITY =
|
||||
"ContextMenuSysUiMatchesActivity";
|
||||
public static final String CONTEXT_MENU_TRANSLATE_WITH_GOOGLE_LENS =
|
||||
@@ -315,11 +323,9 @@ public abstract class ChromeFeatureList {
|
||||
public static final String DARKEN_WEBSITES_CHECKBOX_IN_THEMES_SETTING =
|
||||
"DarkenWebsitesCheckboxInThemesSetting";
|
||||
public static final String DATA_SHARING = "DataSharing";
|
||||
public static final String COLLABORATION_FLOW_ANDROID = "CollaborationFlowAndroid";
|
||||
public static final String DATA_SHARING_JOIN_ONLY_FOR_TESTING = "DataSharingJoinOnly";
|
||||
public static final String DATA_SHARING_JOIN_ONLY = "DataSharingJoinOnly";
|
||||
public static final String DATA_SHARING_NON_PRODUCTION_ENVIRONMENT =
|
||||
"DataSharingNonProductionEnvironment";
|
||||
public static final String DEFAULT_BROWSER_PROMO_ANDROID = "DefaultBrowserPromoAndroid";
|
||||
public static final String DEFAULT_BROWSER_PROMO_ANDROID2 = "DefaultBrowserPromoAndroid2";
|
||||
public static final String DEVICE_AUTHENTICATOR_ANDROIDX = "DeviceAuthenticatorAndroidx";
|
||||
public static final String DETAILED_LANGUAGE_SETTINGS = "DetailedLanguageSettings";
|
||||
@@ -368,6 +374,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String FULLSCREEN_INSETS_API_MIGRATION_ON_AUTOMOTIVE =
|
||||
"FullscreenInsetsApiMigrationOnAutomotive";
|
||||
public static final String GROUP_NEW_TAB_WITH_PARENT = "GroupNewTabWithParent";
|
||||
public static final String GROUP_SUGGESTION_SERVICE = "GroupSuggestionService";
|
||||
public static final String LOCK_BACK_PRESS_HANDLER_AT_START = "LockBackPressHandlerAtStart";
|
||||
public static final String HASH_PREFIX_REAL_TIME_LOOKUPS =
|
||||
"SafeBrowsingHashPrefixRealTimeLookups";
|
||||
@@ -377,8 +384,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid";
|
||||
public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode";
|
||||
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
|
||||
public static final String INSTALL_MESSAGE_THROTTLE = "InstallMessageThrottle";
|
||||
public static final String IP_PROTECTION_V1 = "IpProtectionV1";
|
||||
public static final String IP_PROTECTION_UX = "IpProtectionUx";
|
||||
public static final String LEGACY_TAB_STATE_DEPRECATION = "LegacyTabStateDeprecation";
|
||||
public static final String LENS_ON_QUICK_ACTION_SEARCH_WIDGET = "LensOnQuickActionSearchWidget";
|
||||
@@ -386,8 +391,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String LOADING_PREDICTOR_LIMIT_PRECONNECT_SOCKET_COUNT =
|
||||
"LoadingPredictorLimitPreconnectSocketCount";
|
||||
public static final String LOGIN_DB_DEPRECATION_ANDROID = "LoginDbDeprecationAndroid";
|
||||
public static final String LOGO_POLISH = "LogoPolish";
|
||||
public static final String LOGO_POLISH_ANIMATION_KILL_SWITCH = "LogoPolishAnimationKillSwitch";
|
||||
public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI =
|
||||
"LookalikeUrlNavigationSuggestionsUI";
|
||||
public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid";
|
||||
@@ -402,6 +405,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation";
|
||||
public static final String NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND =
|
||||
"NavBarColorMatchesTabBackground";
|
||||
public static final String NAVIGATION_CAPTURE_REFACTOR = "NavigationCaptureRefactorAndroid";
|
||||
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
|
||||
public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 =
|
||||
"NewTabPageAndroidTriggerForPrerender2";
|
||||
@@ -441,7 +445,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String PRECONNECT_ON_TAB_CREATION = "PreconnectOnTabCreation";
|
||||
public static final String PRICE_ANNOTATIONS = "PriceAnnotations";
|
||||
public static final String PRICE_CHANGE_MODULE = "PriceChangeModule";
|
||||
public static final String PRICE_INSIGHTS = "PriceInsights";
|
||||
public static final String PRIVACY_SANDBOX_ACTIVITY_TYPE_STORAGE =
|
||||
"PrivacySandboxActivityTypeStorage";
|
||||
public static final String PRIVACY_SANDBOX_NOTICE_ACTION_DEBOUNCING_ANDROID =
|
||||
@@ -451,7 +454,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String PRIVACY_SANDBOX_ADS_NOTICE_CCT = "PrivacySandboxAdsNoticeCCT";
|
||||
public static final String PRIVACY_SANDBOX_EQUALIZED_PROMPT_BUTTONS =
|
||||
"PrivacySandboxEqualizedPromptButtons";
|
||||
public static final String PRIVACY_SANDBOX_FPS_UI = "PrivacySandboxFirstPartySetsUI";
|
||||
public static final String PRIVACY_SANDBOX_RELATED_WEBSITE_SETS_UI =
|
||||
"PrivacySandboxRelatedWebsiteSetsUi";
|
||||
public static final String PRIVACY_SANDBOX_SETTINGS_4 = "PrivacySandboxSettings4";
|
||||
@@ -469,6 +471,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String QUICK_DELETE_ANDROID_SURVEY = "QuickDeleteAndroidSurvey";
|
||||
public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts";
|
||||
public static final String READALOUD = "ReadAloud";
|
||||
public static final String READALOUD_AUDIO_OVERVIEWS = "ReadAloudAudioOverviews";
|
||||
public static final String READALOUD_BACKGROUND_PLAYBACK = "ReadAloudBackgroundPlayback";
|
||||
public static final String READALOUD_IN_OVERFLOW_MENU_IN_CCT = "ReadAloudInOverflowMenuInCCT";
|
||||
public static final String READALOUD_IN_MULTI_WINDOW = "ReadAloudInMultiWindow";
|
||||
@@ -477,11 +480,11 @@ public abstract class ChromeFeatureList {
|
||||
public static final String READALOUD_IPH_MENU_BUTTON_HIGHLIGHT_CCT =
|
||||
"ReadAloudIPHMenuButtonHighlightCCT";
|
||||
public static final String RECORD_SUPPRESSION_METRICS = "RecordSuppressionMetrics";
|
||||
public static final String REDIRECT_EXPLICIT_CTA_INTENTS_TO_EXISTING_ACTIVITY =
|
||||
"RedirectExplicitCTAIntentsToExistingActivity";
|
||||
public static final String REENGAGEMENT_NOTIFICATION = "ReengagementNotification";
|
||||
public static final String RELATED_SEARCHES_SWITCH = "RelatedSearchesSwitch";
|
||||
public static final String RELATED_SEARCHES_ALL_LANGUAGE = "RelatedSearchesAllLanguage";
|
||||
public static final String REMOVE_TAB_FOCUS_ON_SHOWING_AND_SELECT =
|
||||
"RemoveTabFocusOnShowingAndSelect";
|
||||
public static final String RENAME_JOURNEYS = "RenameJourneys";
|
||||
public static final String RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV =
|
||||
"RightEdgeGoesForwardGestureNav";
|
||||
@@ -515,7 +518,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String SEGMENTATION_PLATFORM_EPHEMERAL_CARD_RANKER =
|
||||
"SegmentationPlatformEphemeralCardRanker";
|
||||
|
||||
public static final String SEND_TAB_TO_SELF_V2 = "SendTabToSelfV2";
|
||||
public static final String SENSITIVE_CONTENT = "SensitiveContent";
|
||||
public static final String SENSITIVE_CONTENT_WHILE_SWITCHING_TABS =
|
||||
"SensitiveContentWhileSwitchingTabs";
|
||||
@@ -530,7 +532,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String START_SURFACE_RETURN_TIME = "StartSurfaceReturnTime";
|
||||
public static final String STOP_APP_INDEXING_REPORT = "StopAppIndexingReport";
|
||||
public static final String SUGGESTION_ANSWERS_COLOR_REVERSE = "SuggestionAnswersColorReverse";
|
||||
public static final String SUPPRESS_TOOLBAR_CAPTURES = "SuppressToolbarCaptures";
|
||||
public static final String SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END =
|
||||
"SuppressToolbarCapturesAtGestureEnd";
|
||||
public static final String ENABLE_BATCH_UPLOAD_FROM_SETTINGS = "EnableBatchUploadFromSettings";
|
||||
@@ -541,6 +542,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String TAB_GROUP_SYNC_ANDROID = "TabGroupSyncAndroid";
|
||||
public static final String TAB_GROUP_SYNC_AUTO_OPEN_KILL_SWITCH =
|
||||
"TabGroupSyncAutoOpenKillSwitch";
|
||||
public static final String TAB_GROUP_ENTRY_POINTS_ANDROID = "TabGroupEntryPointsAndroid";
|
||||
public static final String TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID =
|
||||
"TabGroupParityBottomSheetAndroid";
|
||||
public static final String TAB_RESUMPTION_MODULE_ANDROID = "TabResumptionModuleAndroid";
|
||||
@@ -556,13 +558,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String TAB_SWITCHER_COLOR_BLEND_ANIMATE = "TabSwitcherColorBlendAnimate";
|
||||
public static final String TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT =
|
||||
"TabSwitcherForeignFaviconSupport";
|
||||
public static final String TAB_SWITCHER_FULL_NEW_TAB_BUTTON = "TabSwitcherFullNewTabButton";
|
||||
public static final String TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_FINISHING =
|
||||
"TabWindowManagerIndexReassignmentActivityFinishing";
|
||||
public static final String TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_IN_SAME_TASK =
|
||||
"TabWindowManagerIndexReassignmentActivityInSameTask";
|
||||
public static final String TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_NOT_IN_APP_TASKS =
|
||||
"TabWindowManagerIndexReassignmentActivityNotInAppTasks";
|
||||
public static final String TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH =
|
||||
"TabWindowManagerReportIndicesMismatch";
|
||||
public static final String TASK_MANAGER_CLANK = "TaskManagerClank";
|
||||
@@ -595,7 +590,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
|
||||
"UseLibunwindstackNativeUnwinderAndroid";
|
||||
public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService";
|
||||
public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
|
||||
public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend";
|
||||
public static final String WEB_APK_INSTALL_FAILURE_NOTIFICATION =
|
||||
"WebApkInstallFailureNotification";
|
||||
@@ -607,6 +601,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
|
||||
public static final String POST_GET_MEMORY_PRESSURE_TO_BACKGROUND =
|
||||
BaseFeatures.POST_GET_MY_MEMORY_STATE_TO_BACKGROUND;
|
||||
public static final String ANDROID_WEB_APP_LAUNCH_HANDLER = "AndroidWebAppLaunchHandler";
|
||||
|
||||
/* Alphabetical: */
|
||||
public static final CachedFlag sAndroidAppIntegration =
|
||||
@@ -632,15 +627,23 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(ANDROID_TAB_DECLUTTER_DEDUPE_TAB_IDS_KILL_SWITCH, true);
|
||||
public static final CachedFlag sAndroidMinimalUiLargeScreen =
|
||||
newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false);
|
||||
public static final CachedFlag sAndroidThemeModule = newCachedFlag(ANDROID_THEME_MODULE, false);
|
||||
public static final CachedFlag sAndroidWindowPopupLargeScreen =
|
||||
newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false);
|
||||
public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true);
|
||||
public static final CachedFlag sAsyncNotificationManager =
|
||||
newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true);
|
||||
public static final CachedFlag sAsyncNotificationManagerForDownload =
|
||||
newCachedFlag(ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD, false);
|
||||
newCachedFlag(ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD, false, true);
|
||||
public static final CachedFlag sBlockIntentsWhileLocked =
|
||||
newCachedFlag(BLOCK_INTENTS_WHILE_LOCKED, false);
|
||||
public static final CachedFlag sBookmarkPaneAndroid =
|
||||
newCachedFlag(BOOKMARK_PANE_ANDROID, false);
|
||||
public static final CachedFlag sCacheIsMultiInstanceApi31Enabled =
|
||||
newCachedFlag(
|
||||
CACHE_IS_MULTI_INSTANCE_API_31_ENABLED,
|
||||
/* defaultValue= */ false,
|
||||
/* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sCctAdaptiveButton = newCachedFlag(CCT_ADAPTIVE_BUTTON, false);
|
||||
public static final CachedFlag sCctAuthTab = newCachedFlag(CCT_AUTH_TAB, true);
|
||||
public static final CachedFlag sCctAuthTabDisableAllExternalIntents =
|
||||
@@ -681,10 +684,11 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sCctOpenInBrowserButtonIfEnabledByEmbedder =
|
||||
newCachedFlag(CCT_OPEN_IN_BROWSER_BUTTON_IF_ENABLED_BY_EMBEDDER, true);
|
||||
public static final CachedFlag sCctRevampedBranding =
|
||||
newCachedFlag(CCT_REVAMPED_BRANDING, false);
|
||||
newCachedFlag(CCT_REVAMPED_BRANDING, true);
|
||||
public static final CachedFlag sCctNestedSecurityIcon =
|
||||
newCachedFlag(CCT_NESTED_SECURITY_ICON, false);
|
||||
newCachedFlag(CCT_NESTED_SECURITY_ICON, true);
|
||||
public static final CachedFlag sCctTabModalDialog = newCachedFlag(CCT_TAB_MODAL_DIALOG, true);
|
||||
public static final CachedFlag sCctToolbarRefactor = newCachedFlag(CCT_TOOLBAR_REFACTOR, false);
|
||||
public static final CachedFlag sClankStartupLatencyInjection =
|
||||
newCachedFlag(CLANK_STARTUP_LATENCY_INJECTION, false);
|
||||
public static final CachedFlag sCollectAndroidFrameTimelineMetrics =
|
||||
@@ -725,7 +729,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sEducationalTipModule =
|
||||
newCachedFlag(EDUCATIONAL_TIP_MODULE, false, true);
|
||||
public static final CachedFlag sEnableDiscountInfoApi =
|
||||
newCachedFlag(ENABLE_DISCOUNT_INFO_API, false);
|
||||
newCachedFlag(ENABLE_DISCOUNT_INFO_API, false, true);
|
||||
public static final CachedFlag sEnableXAxisActivityTransition =
|
||||
newCachedFlag(ENABLE_X_AXIS_ACTIVITY_TRANSITION, false);
|
||||
public static final CachedFlag sEsbAiStringUpdate =
|
||||
@@ -753,12 +757,9 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(
|
||||
LEGACY_TAB_STATE_DEPRECATION,
|
||||
/* defaultValue= */ false,
|
||||
/* defaultValueInTests= */ false);
|
||||
/* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sLockBackPressHandlerAtStart =
|
||||
newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true);
|
||||
public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, true);
|
||||
public static final CachedFlag sLogoPolishAnimationKillSwitch =
|
||||
newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true);
|
||||
public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true);
|
||||
public static final CachedFlag sMostVisitedTilesCustomization =
|
||||
newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false);
|
||||
@@ -775,14 +776,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sNotificationTrampoline =
|
||||
newCachedFlag(NOTIFICATION_TRAMPOLINE, false);
|
||||
public static final CachedFlag sPowerSavingModeBroadcastReceiverInBackground =
|
||||
newCachedFlag(
|
||||
POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND,
|
||||
/* defaultValue= */ false,
|
||||
/* defaultValueInTests= */ true);
|
||||
newCachedFlag(POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND, false);
|
||||
public static final CachedFlag sPriceChangeModule = newCachedFlag(PRICE_CHANGE_MODULE, true);
|
||||
public static final CachedFlag sPriceInsights =
|
||||
newCachedFlag(
|
||||
PRICE_INSIGHTS, /* defaultValue= */ false, /* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sOptimizationGuidePushNotifications =
|
||||
newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true);
|
||||
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
|
||||
@@ -790,8 +785,6 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
|
||||
public static final CachedFlag sPrefetchBrowserInitiatedTriggers =
|
||||
newCachedFlag(PREFETCH_BROWSER_INITIATED_TRIGGERS, true);
|
||||
public static final CachedFlag sRedirectExplicitCTAIntentsToExistingActivity =
|
||||
newCachedFlag(REDIRECT_EXPLICIT_CTA_INTENTS_TO_EXISTING_ACTIVITY, true);
|
||||
|
||||
public static final CachedFlag sRightEdgeGoesForwardGestureNav =
|
||||
newCachedFlag(RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV, false);
|
||||
@@ -820,11 +813,6 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false);
|
||||
public static final CachedFlag sTabGroupPaneAndroid =
|
||||
newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true);
|
||||
public static final CachedFlag sTabResumptionModuleAndroid =
|
||||
newCachedFlag(
|
||||
TAB_RESUMPTION_MODULE_ANDROID,
|
||||
/* defaultValue= */ false,
|
||||
/* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sTabStateFlatBuffer =
|
||||
newCachedFlag(
|
||||
TAB_STATE_FLAT_BUFFER,
|
||||
@@ -842,20 +830,12 @@ public abstract class ChromeFeatureList {
|
||||
/* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sTabStripGroupCollapse =
|
||||
newCachedFlag(TAB_STRIP_GROUP_COLLAPSE, /* defaultValue= */ true);
|
||||
public static final CachedFlag sTabWindowManagerIndexReassignmentActivityFinishing =
|
||||
newCachedFlag(TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_FINISHING, true);
|
||||
public static final CachedFlag sTabWindowManagerIndexReassignmentActivityInSameTask =
|
||||
newCachedFlag(TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_IN_SAME_TASK, true);
|
||||
public static final CachedFlag sTabWindowManagerIndexReassignmentActivityNotInAppTasks =
|
||||
newCachedFlag(TAB_WINDOW_MANAGER_INDEX_REASSIGNMENT_ACTIVITY_NOT_IN_APP_TASKS, true);
|
||||
public static final CachedFlag sTabWindowManagerReportIndicesMismatch =
|
||||
newCachedFlag(TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH, true);
|
||||
public static final CachedFlag sTestDefaultDisabled =
|
||||
newCachedFlag(TEST_DEFAULT_DISABLED, false);
|
||||
public static final CachedFlag sTestDefaultEnabled = newCachedFlag(TEST_DEFAULT_ENABLED, true);
|
||||
public static final CachedFlag sTraceBinderIpc =
|
||||
newCachedFlag(
|
||||
TRACE_BINDER_IPC, /* defaultValue= */ false, /* defaultValueInTests= */ true);
|
||||
public static final CachedFlag sTraceBinderIpc = newCachedFlag(TRACE_BINDER_IPC, false);
|
||||
public static final CachedFlag sUseChimeAndroidSdk =
|
||||
newCachedFlag(USE_CHIME_ANDROID_SDK, false);
|
||||
public static final CachedFlag sUseLibunwindstackNativeUnwinderAndroid =
|
||||
@@ -871,14 +851,17 @@ public abstract class ChromeFeatureList {
|
||||
sAndroidAppIntegrationWithFavicon,
|
||||
sAndroidAppIntegrationMultiDataSource,
|
||||
sAndroidTabSkipSaveTabsKillswitch,
|
||||
sAndroidThemeModule,
|
||||
sAndroidBottomToolbar,
|
||||
sAndroidElegantTextHeight,
|
||||
sAndroidTabDeclutterDedupeTabIdsKillSwitch,
|
||||
sAndroidWindowPopupLargeScreen,
|
||||
sAppSpecificHistory,
|
||||
sAsyncNotificationManager,
|
||||
sAndroidMinimalUiLargeScreen,
|
||||
sBlockIntentsWhileLocked,
|
||||
sBookmarkPaneAndroid,
|
||||
sCacheIsMultiInstanceApi31Enabled,
|
||||
sCctAdaptiveButton,
|
||||
sCctAuthTab,
|
||||
sCctAuthTabDisableAllExternalIntents,
|
||||
@@ -900,6 +883,7 @@ public abstract class ChromeFeatureList {
|
||||
sCctRevampedBranding,
|
||||
sCctNestedSecurityIcon,
|
||||
sCctTabModalDialog,
|
||||
sCctToolbarRefactor,
|
||||
sClankStartupLatencyInjection,
|
||||
sCollectAndroidFrameTimelineMetrics,
|
||||
sCommandLineOnNonRooted,
|
||||
@@ -923,8 +907,6 @@ public abstract class ChromeFeatureList {
|
||||
sHideTabletToolbarDownloadButton,
|
||||
sHistoryPaneAndroid,
|
||||
sLockBackPressHandlerAtStart,
|
||||
sLogoPolish,
|
||||
sLogoPolishAnimationKillSwitch,
|
||||
sNotificationTrampoline,
|
||||
sMagicStackAndroid,
|
||||
sMostVisitedTilesCustomization,
|
||||
@@ -936,12 +918,10 @@ public abstract class ChromeFeatureList {
|
||||
sNewTabPageCustomization,
|
||||
sPowerSavingModeBroadcastReceiverInBackground,
|
||||
sPriceChangeModule,
|
||||
sPriceInsights,
|
||||
sOptimizationGuidePushNotifications,
|
||||
sPaintPreviewDemo,
|
||||
sPostGetMyMemoryStateToBackground,
|
||||
sPrefetchBrowserInitiatedTriggers,
|
||||
sRedirectExplicitCTAIntentsToExistingActivity,
|
||||
sRightEdgeGoesForwardGestureNav,
|
||||
sSafetyHubMagicStack,
|
||||
sSafetyHubWeakAndReusedPasswords,
|
||||
@@ -954,14 +934,10 @@ public abstract class ChromeFeatureList {
|
||||
sStartSurfaceReturnTime,
|
||||
sTabClosureMethodRefactor,
|
||||
sTabGroupPaneAndroid,
|
||||
sTabResumptionModuleAndroid,
|
||||
sTabStateFlatBuffer,
|
||||
sTabStripGroupCollapse,
|
||||
sTabStripIncognitoMigration,
|
||||
sTabStripLayoutOptimization,
|
||||
sTabWindowManagerIndexReassignmentActivityFinishing,
|
||||
sTabWindowManagerIndexReassignmentActivityInSameTask,
|
||||
sTabWindowManagerIndexReassignmentActivityNotInAppTasks,
|
||||
sTabWindowManagerReportIndicesMismatch,
|
||||
sTraceBinderIpc,
|
||||
sUseChimeAndroidSdk,
|
||||
@@ -1005,8 +981,6 @@ public abstract class ChromeFeatureList {
|
||||
newMutableFlagWithSafeDefault(BOTTOM_BROWSER_CONTROLS_REFACTOR, true);
|
||||
public static final MutableFlagWithSafeDefault sBcivBottomControls =
|
||||
newMutableFlagWithSafeDefault(BCIV_BOTTOM_CONTROLS, false);
|
||||
public static final MutableFlagWithSafeDefault sBcivZeroBrowserFrames =
|
||||
newMutableFlagWithSafeDefault(BCIV_ZERO_BROWSER_FRAMES, false);
|
||||
public static final MutableFlagWithSafeDefault sBrowserControlsInViz =
|
||||
newMutableFlagWithSafeDefault(BROWSER_CONTROLS_IN_VIZ, true);
|
||||
public static final MutableFlagWithSafeDefault sBrowserControlsEarlyResize =
|
||||
@@ -1047,22 +1021,18 @@ public abstract class ChromeFeatureList {
|
||||
newMutableFlagWithSafeDefault(SAFETY_HUB_FOLLOWUP, true);
|
||||
public static final MutableFlagWithSafeDefault sShowNewTabAnimations =
|
||||
newMutableFlagWithSafeDefault(SHOW_NEW_TAB_ANIMATIONS, false);
|
||||
public static final MutableFlagWithSafeDefault sSuppressionToolbarCaptures =
|
||||
newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES, false);
|
||||
public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd =
|
||||
newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false);
|
||||
public static final MutableFlagWithSafeDefault sTabGroupEntryPointsAndroid =
|
||||
newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false);
|
||||
public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid =
|
||||
newMutableFlagWithSafeDefault(TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID, false);
|
||||
public static final MutableFlagWithSafeDefault sTabSwitcherColorBlendAnimate =
|
||||
newMutableFlagWithSafeDefault(TAB_SWITCHER_COLOR_BLEND_ANIMATE, true);
|
||||
public static final MutableFlagWithSafeDefault sTabSwitcherForeignFaviconSupport =
|
||||
newMutableFlagWithSafeDefault(TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT, false);
|
||||
public static final MutableFlagWithSafeDefault sTabSwitcherFullNewTabButton =
|
||||
newMutableFlagWithSafeDefault(TAB_SWITCHER_FULL_NEW_TAB_BUTTON, false);
|
||||
public static final MutableFlagWithSafeDefault sToolbarScrollAblation =
|
||||
newMutableFlagWithSafeDefault(TOOLBAR_SCROLL_ABLATION, false);
|
||||
public static final MutableFlagWithSafeDefault sVoiceSearchAudioCapturePolicy =
|
||||
newMutableFlagWithSafeDefault(VOICE_SEARCH_AUDIO_CAPTURE_POLICY, false);
|
||||
|
||||
// CachedFeatureParam instances.
|
||||
/* Alphabetical order by feature name, arbitrary order by param name: */
|
||||
@@ -1072,6 +1042,14 @@ public abstract class ChromeFeatureList {
|
||||
newBooleanCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "voice", false);
|
||||
public static final IntCachedFeatureParam sAndroidAppIntegrationV2ContentTtlHours =
|
||||
newIntCachedFeatureParam(ANDROID_APP_INTEGRATION_V2, "content_ttl_hours", 168);
|
||||
|
||||
public static final IntCachedFeatureParam
|
||||
sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours =
|
||||
newIntCachedFeatureParam(
|
||||
ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE,
|
||||
"history_content_ttl_hours",
|
||||
24);
|
||||
|
||||
public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconSkipDeviceCheck =
|
||||
newBooleanCachedFeatureParam(
|
||||
ANDROID_APP_INTEGRATION_WITH_FAVICON, "skip_device_check", false);
|
||||
@@ -1096,6 +1074,21 @@ public abstract class ChromeFeatureList {
|
||||
public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconSkipSchemaCheck =
|
||||
newBooleanCachedFeatureParam(
|
||||
ANDROID_APP_INTEGRATION_WITH_FAVICON, "skip_schema_check", false);
|
||||
|
||||
public static final BooleanCachedFeatureParam sAndroidAppIntegrationMultiDataSourceUseSchemaV1 =
|
||||
newBooleanCachedFeatureParam(
|
||||
ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE, "use_schema_v1", false);
|
||||
|
||||
public static final BooleanCachedFeatureParam
|
||||
sAndroidAppIntegrationMultiDataSourceSkipDeviceCheck =
|
||||
newBooleanCachedFeatureParam(
|
||||
ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE,
|
||||
"multi_data_source_skip_device_check",
|
||||
false);
|
||||
|
||||
public static final BooleanCachedFeatureParam sAndroidBottomToolbarDefaultToTop =
|
||||
newBooleanCachedFeatureParam(ANDROID_BOTTOM_TOOLBAR, "default_to_top", true);
|
||||
|
||||
public static final IntCachedFeatureParam sCctAuthTabEnableHttpsRedirectsVerificationTimeoutMs =
|
||||
newIntCachedFeatureParam(
|
||||
CCT_AUTH_TAB_ENABLE_HTTPS_REDIRECTS, "verification_timeout_ms", 10_000);
|
||||
@@ -1294,10 +1287,6 @@ public abstract class ChromeFeatureList {
|
||||
public static final BooleanCachedFeatureParam sEdgeToEdgeEverywhereIsDebugging =
|
||||
newBooleanCachedFeatureParam(EDGE_TO_EDGE_EVERYWHERE, "e2e_everywhere_debug", false);
|
||||
|
||||
public static final BooleanCachedFeatureParam sLogoPolishMediumSize =
|
||||
newBooleanCachedFeatureParam(LOGO_POLISH, "polish_logo_size_medium", true);
|
||||
public static final BooleanCachedFeatureParam sLogoPolishLargeSize =
|
||||
newBooleanCachedFeatureParam(LOGO_POLISH, "polish_logo_size_large", false);
|
||||
public static final BooleanCachedFeatureParam sMagicStackAndroidShowAllModules =
|
||||
newBooleanCachedFeatureParam(MAGIC_STACK_ANDROID, "show_all_modules", false);
|
||||
public static final BooleanCachedFeatureParam mMostVisitedTilesReselectLaxSchemeHost =
|
||||
@@ -1355,28 +1344,6 @@ public abstract class ChromeFeatureList {
|
||||
START_SURFACE_RETURN_TIME,
|
||||
"start_surface_return_time_on_tablet_seconds",
|
||||
14400); // 4 hours
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidShowDefaultReason =
|
||||
newBooleanCachedFeatureParam(
|
||||
TAB_RESUMPTION_MODULE_ANDROID, "show_default_reason", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidFetchHistoryBackend =
|
||||
newBooleanCachedFeatureParam(
|
||||
TAB_RESUMPTION_MODULE_ANDROID, "fetch_history_backend", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidDisableBlend =
|
||||
newBooleanCachedFeatureParam(TAB_RESUMPTION_MODULE_ANDROID, "disable_blend", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidUseDefaultAppFilter =
|
||||
newBooleanCachedFeatureParam(
|
||||
TAB_RESUMPTION_MODULE_ANDROID, "use_default_app_filter", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidShowSeeMore =
|
||||
newBooleanCachedFeatureParam(TAB_RESUMPTION_MODULE_ANDROID, "show_see_more", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidUseSalientImage =
|
||||
newBooleanCachedFeatureParam(TAB_RESUMPTION_MODULE_ANDROID, "use_salient_image", false);
|
||||
public static final IntCachedFeatureParam sTabResumptionModuleAndroidMaxTilesNumber =
|
||||
newIntCachedFeatureParam(TAB_RESUMPTION_MODULE_ANDROID, "max_tiles_number", 2);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidEnableV2 =
|
||||
newBooleanCachedFeatureParam(TAB_RESUMPTION_MODULE_ANDROID, "enable_v2", false);
|
||||
public static final BooleanCachedFeatureParam sTabResumptionModuleAndroidCombineTabs =
|
||||
newBooleanCachedFeatureParam(
|
||||
TAB_RESUMPTION_MODULE_ANDROID, "show_tabs_in_one_module", false);
|
||||
public static final BooleanCachedFeatureParam sTabStateFlatBufferMigrateStaleTabs =
|
||||
newBooleanCachedFeatureParam(TAB_STATE_FLAT_BUFFER, "migrate_stale_tabs", true);
|
||||
public static final IntCachedFeatureParam
|
||||
@@ -1397,13 +1364,17 @@ public abstract class ChromeFeatureList {
|
||||
public static final List<CachedFeatureParam<?>> sParamsCached =
|
||||
List.of(
|
||||
sAndroidAppIntegrationV2ContentTtlHours,
|
||||
sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours,
|
||||
sAndroidAppIntegrationWithFaviconSkipDeviceCheck,
|
||||
sAndroidAppIntegrationModuleForceCardShow,
|
||||
sAndroidAppIntegrationModuleShowThirdPartyCard,
|
||||
sAndroidAppIntegrationWithFaviconScheduleDelayTimeMs,
|
||||
sAndroidAppIntegrationWithFaviconSkipSchemaCheck,
|
||||
sAndroidAppIntegrationMultiDataSourceUseSchemaV1,
|
||||
sAndroidAppIntegrationMultiDataSourceSkipDeviceCheck,
|
||||
sAndroidAppIntegrationWithFaviconUseLargeFavicon,
|
||||
sAndroidAppIntegrationWithFaviconZeroStateFaviconNumber,
|
||||
sAndroidBottomToolbarDefaultToTop,
|
||||
sCctAdaptiveButtonEnableOpenInBrowser,
|
||||
sCctAdaptiveButtonEnableVoice,
|
||||
sCctAuthTabEnableHttpsRedirectsVerificationTimeoutMs,
|
||||
@@ -1434,8 +1405,6 @@ public abstract class ChromeFeatureList {
|
||||
sEdgeToEdgeEverywhereIsDebugging,
|
||||
sEdgeToEdgeEverywhereOemMinVersions,
|
||||
sEdgeToEdgeEverywhereOemList,
|
||||
sLogoPolishMediumSize,
|
||||
sLogoPolishLargeSize,
|
||||
sMagicStackAndroidShowAllModules,
|
||||
mMostVisitedTilesReselectLaxSchemeHost,
|
||||
mMostVisitedTilesReselectLaxRef,
|
||||
@@ -1455,15 +1424,6 @@ public abstract class ChromeFeatureList {
|
||||
sSearchinCctApplyReferrerId,
|
||||
sSearchinCctOmniboxAllowedPackageNames,
|
||||
sStartSurfaceReturnTimeTabletSecs,
|
||||
sTabResumptionModuleAndroidShowDefaultReason,
|
||||
sTabResumptionModuleAndroidFetchHistoryBackend,
|
||||
sTabResumptionModuleAndroidDisableBlend,
|
||||
sTabResumptionModuleAndroidUseDefaultAppFilter,
|
||||
sTabResumptionModuleAndroidShowSeeMore,
|
||||
sTabResumptionModuleAndroidUseSalientImage,
|
||||
sTabResumptionModuleAndroidMaxTilesNumber,
|
||||
sTabResumptionModuleAndroidEnableV2,
|
||||
sTabResumptionModuleAndroidCombineTabs,
|
||||
sTabStateFlatBufferMigrateStaleTabs,
|
||||
sTabWindowManagerReportIndicesMismatchTimeDiffThresholdMs,
|
||||
sUseChimeAndroidSdkAlwaysRegister,
|
||||
@@ -1471,8 +1431,6 @@ public abstract class ChromeFeatureList {
|
||||
|
||||
// Mutable*ParamWithSafeDefault instances.
|
||||
/* Alphabetical: */
|
||||
public static final MutableBooleanParamWithSafeDefault sShouldBlockCapturesForFullscreenParam =
|
||||
sSuppressionToolbarCaptures.newBooleanParam("block_for_fullscreen", false);
|
||||
public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterArchiveEnabled =
|
||||
sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", true);
|
||||
public static final MutableIntParamWithSafeDefault sAndroidTabDeclutterArchiveTimeDeltaHours =
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
|
||||
#include "ash/constants/ash_constants.h"
|
||||
#include "base/time/time.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "build/android_buildflags.h"
|
||||
#include "build/branding_buildflags.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromecast_buildflags.h"
|
||||
@@ -22,10 +22,7 @@
|
||||
#include "chrome/browser/accessibility/prefers_default_scrollbar_styles_prefs.h"
|
||||
#include "chrome/browser/browser_process_impl.h"
|
||||
#include "chrome/browser/chrome_content_browser_client.h"
|
||||
#include "chrome/browser/chromeos/enterprise/cloud_storage/pref_utils.h"
|
||||
#include "chrome/browser/chromeos/upload_office_to_cloud/upload_office_to_cloud.h"
|
||||
#include "chrome/browser/component_updater/component_updater_prefs.h"
|
||||
#include "chrome/browser/devtools/devtools_window.h"
|
||||
#include "chrome/browser/download/download_prefs.h"
|
||||
#include "chrome/browser/engagement/important_sites_util.h"
|
||||
#include "chrome/browser/enterprise/reporting/prefs.h"
|
||||
@@ -152,6 +149,7 @@
|
||||
#include "components/prefs/pref_registry.h"
|
||||
#include "components/prefs/pref_registry_simple.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "components/privacy_sandbox/privacy_sandbox_notice_storage.h"
|
||||
#include "components/privacy_sandbox/privacy_sandbox_prefs.h"
|
||||
#include "components/privacy_sandbox/tpcd_pref_names.h"
|
||||
#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
|
||||
@@ -175,6 +173,7 @@
|
||||
#include "components/subresource_filter/content/shared/browser/ruleset_service.h"
|
||||
#include "components/subresource_filter/core/common/constants.h"
|
||||
#include "components/supervised_user/core/browser/supervised_user_preferences.h"
|
||||
#include "components/supervised_user/core/common/pref_names.h"
|
||||
#include "components/sync/base/pref_names.h"
|
||||
#include "components/sync/service/glue/sync_transport_data_prefs.h"
|
||||
#include "components/sync/service/sync_prefs.h"
|
||||
@@ -256,6 +255,7 @@
|
||||
#include "chrome/browser/notifications/notification_channels_provider_android.h"
|
||||
#include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h"
|
||||
#include "chrome/browser/password_manager/android/password_manager_android_util.h"
|
||||
#include "chrome/browser/password_manager/android/password_manager_util_bridge.h"
|
||||
#include "chrome/browser/readaloud/android/prefs.h"
|
||||
#include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h"
|
||||
#include "components/cdm/browser/media_drm_storage_impl.h" // nogncheck crbug.com/1125897
|
||||
@@ -312,11 +312,16 @@
|
||||
#include "components/ntp_tiles/custom_links_manager_impl.h"
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
|
||||
#include "chrome/browser/devtools/devtools_window.h"
|
||||
#endif // !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
|
||||
|
||||
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
|
||||
#include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
#include "ash/constants/ash_constants.h"
|
||||
#include "ash/constants/ash_pref_names.h"
|
||||
#include "ash/public/cpp/ash_prefs.h"
|
||||
#include "chrome/browser/apps/app_discovery_service/almanac_fetcher.h"
|
||||
@@ -379,8 +384,8 @@
|
||||
#include "chrome/browser/ash/plugin_vm/plugin_vm_pref_names.h"
|
||||
#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
|
||||
#include "chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h"
|
||||
#include "chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h"
|
||||
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
|
||||
#include "chrome/browser/ash/policy/enrollment/enrollment_state_fetcher.h"
|
||||
#include "chrome/browser/ash/policy/external_data/handlers/device_wallpaper_image_external_data_handler.h"
|
||||
#include "chrome/browser/ash/policy/handlers/adb_sideloading_allowance_mode_policy_handler.h"
|
||||
#include "chrome/browser/ash/policy/handlers/minimum_version_policy_handler.h"
|
||||
@@ -403,10 +408,12 @@
|
||||
#include "chrome/browser/ash/system/input_device_settings.h"
|
||||
#include "chrome/browser/ash/system_web_apps/apps/help_app/help_app_notification_controller.h"
|
||||
#include "chrome/browser/ash/wallpaper_handlers/wallpaper_prefs.h"
|
||||
#include "chrome/browser/chromeos/enterprise/cloud_storage/pref_utils.h"
|
||||
#include "chrome/browser/chromeos/extensions/echo_private/echo_private_api_util.h"
|
||||
#include "chrome/browser/chromeos/extensions/login_screen/login/login_api_prefs.h"
|
||||
#include "chrome/browser/chromeos/policy/dlp/dlp_rules_manager_impl.h"
|
||||
#include "chrome/browser/chromeos/reporting/metric_reporting_prefs.h"
|
||||
#include "chrome/browser/chromeos/upload_office_to_cloud/upload_office_to_cloud.h"
|
||||
#include "chrome/browser/device_identity/chromeos/device_oauth2_token_store_chromeos.h"
|
||||
#include "chrome/browser/extensions/api/document_scan/profile_prefs_registry_util.h"
|
||||
#include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_registry_util.h"
|
||||
@@ -470,7 +477,6 @@
|
||||
#include "chrome/browser/os_crypt/app_bound_encryption_provider_win.h"
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#include "chrome/browser/win/conflicts/incompatible_applications_updater.h"
|
||||
#include "chrome/browser/win/conflicts/module_database.h"
|
||||
#include "chrome/browser/win/conflicts/third_party_conflicts_manager.h"
|
||||
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
@@ -526,7 +532,6 @@
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_GLIC)
|
||||
#include "chrome/browser/background/glic/glic_launcher_configuration.h"
|
||||
#include "chrome/browser/glic/glic_pref_names.h"
|
||||
#endif
|
||||
|
||||
@@ -540,50 +545,17 @@ namespace {
|
||||
// the bottom of the list, not here at the top.
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
// Deprecated 03/2024
|
||||
constexpr char kOsCryptAppBoundFixedData2PrefName[] =
|
||||
"os_crypt.app_bound_fixed_data2";
|
||||
// Deprecated 06/2024
|
||||
constexpr char kOsCryptAppBoundFixedData3PrefName[] =
|
||||
"os_crypt.app_bound_fixed_data3";
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
|
||||
// Deprecated 03/2024.
|
||||
constexpr char kPlusAddressLastFetchedTime[] = "plus_address.last_fetched_time";
|
||||
|
||||
// Deprecated 03/2024.
|
||||
constexpr char kPrivacySandboxApisEnabled[] = "privacy_sandbox.apis_enabled";
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2024
|
||||
constexpr char kOobeGuestAcceptedTos[] = "oobe.guest_accepted_tos";
|
||||
// Deprecated 04/2024
|
||||
constexpr char kLastUploadedEuiccStatusPrefLegacy[] =
|
||||
"esim.last_upload_euicc_status";
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Deprecated 03/2024.
|
||||
constexpr char kShowInternalAccessibilityTree[] =
|
||||
"accessibility.show_internal_accessibility_tree";
|
||||
|
||||
// Deprecated 03/2024.
|
||||
// A `kDefaultSearchProviderChoicePending` pref persists (migrated to a new
|
||||
// pref name to reset the data), so the variable name has been changed here.
|
||||
constexpr char kDefaultSearchProviderChoicePendingDeprecated[] =
|
||||
"default_search_provider.choice_pending";
|
||||
|
||||
// Deprecated 03/2024.
|
||||
constexpr char kTrackingProtectionSentimentSurveyGroup[] =
|
||||
"tracking_protection.tracking_protection_sentiment_survey_group";
|
||||
constexpr char kTrackingProtectionSentimentSurveyStartTime[] =
|
||||
"tracking_protection.tracking_protection_sentiment_survey_start_time";
|
||||
constexpr char kTrackingProtectionSentimentSurveyEndTime[] =
|
||||
"tracking_protection.tracking_protection_sentiment_survey_end_time";
|
||||
|
||||
// Deprecated 03/2024
|
||||
constexpr char kPreferencesMigratedToBasic[] =
|
||||
"browser.clear_data.preferences_migrated_to_basic";
|
||||
|
||||
// Deprecated 04/2024.
|
||||
inline constexpr char kOmniboxInstantKeywordUsed[] =
|
||||
"omnibox.instant_keyword_used";
|
||||
@@ -1076,6 +1048,10 @@ inline constexpr char kUserMicrophoneCaptionLanguageCode[] =
|
||||
"accessibility.captions.user_microphone_language_code";
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Deprecated 03/2025.
|
||||
inline constexpr char kPasswordChangeFlowNoticeAgreement[] =
|
||||
"password_manager.password_change_flow_notice_agreement";
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 02/2025.
|
||||
constexpr char kScannerFeedbackEnabled[] = "ash.scanner.feedback_enabled";
|
||||
@@ -1089,22 +1065,40 @@ inline constexpr char kRootSecretPrefName[] =
|
||||
"webauthn.authenticator_root_secret";
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2025.
|
||||
inline constexpr char kShouldAutoEnroll[] = "ShouldAutoEnroll";
|
||||
inline constexpr char kShouldRetrieveDeviceState[] =
|
||||
"ShouldRetrieveDeviceState";
|
||||
inline constexpr char kAutoEnrollmentPowerLimit[] = "AutoEnrollmentPowerLimit";
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2025.
|
||||
inline constexpr char kDeviceRestrictionScheduleHighestSeenTime[] =
|
||||
"device_restriction_schedule_highest_seen_time";
|
||||
constexpr char kSunfishEnabled[] = "ash.capture_mode.sunfish_enabled";
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Deprecated 03/2025.
|
||||
inline constexpr char kRecurrentSSLInterstitial[] =
|
||||
"profile.ssl_recurrent_interstitial";
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
inline char kPerformanceInterventionNotificationAcceptHistoryDeprecated[] =
|
||||
"performance_tuning.intervention_notification.accept_history";
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
// Register local state used only for migration (clearing or moving to a new
|
||||
// key).
|
||||
void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterStringPref(kOsCryptAppBoundFixedData2PrefName,
|
||||
std::string());
|
||||
// Deprecated 06/2024.
|
||||
registry->RegisterStringPref(kOsCryptAppBoundFixedData3PrefName,
|
||||
std::string());
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterBooleanPref(kOobeGuestAcceptedTos, false);
|
||||
|
||||
// Deprecated 05/2024.
|
||||
registry->RegisterTimePref(kDeviceRegisteredTime, base::Time());
|
||||
registry->RegisterDictionaryPref(kArcKioskDictionaryName);
|
||||
@@ -1186,6 +1180,25 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
|
||||
// Deprecated 02/2025.
|
||||
registry->RegisterStringPref(kRootSecretPrefName, std::string());
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2025.
|
||||
registry->RegisterBooleanPref(kShouldRetrieveDeviceState, false);
|
||||
registry->RegisterBooleanPref(kShouldAutoEnroll, false);
|
||||
registry->RegisterIntegerPref(kAutoEnrollmentPowerLimit, -1);
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2025.
|
||||
registry->RegisterTimePref(kDeviceRestrictionScheduleHighestSeenTime,
|
||||
base::Time());
|
||||
#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
// Deprecated 04/2025.
|
||||
registry->RegisterListPref(
|
||||
kPerformanceInterventionNotificationAcceptHistoryDeprecated);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Register prefs used only for migration (clearing or moving to a new key).
|
||||
@@ -1193,29 +1206,6 @@ void RegisterProfilePrefsForMigration(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
chrome_browser_net::secure_dns::RegisterProbesSettingBackupPref(registry);
|
||||
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterTimePref(kPlusAddressLastFetchedTime, base::Time());
|
||||
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, true);
|
||||
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterBooleanPref(kShowInternalAccessibilityTree, false);
|
||||
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterBooleanPref(kDefaultSearchProviderChoicePendingDeprecated,
|
||||
false);
|
||||
|
||||
// Deprecated 03/2024
|
||||
registry->RegisterIntegerPref(kTrackingProtectionSentimentSurveyGroup, 0);
|
||||
registry->RegisterTimePref(kTrackingProtectionSentimentSurveyStartTime,
|
||||
base::Time());
|
||||
registry->RegisterTimePref(kTrackingProtectionSentimentSurveyEndTime,
|
||||
base::Time());
|
||||
|
||||
// Deprecated 03/2024.
|
||||
registry->RegisterBooleanPref(kPreferencesMigratedToBasic, false);
|
||||
|
||||
// Deprecated 04/2024.
|
||||
registry->RegisterBooleanPref(kOmniboxInstantKeywordUsed, false);
|
||||
|
||||
@@ -1526,6 +1516,17 @@ void RegisterProfilePrefsForMigration(
|
||||
registry->RegisterBooleanPref(kHmrFeedbackAllowed, true);
|
||||
registry->RegisterDictionaryPref(kSharedStorage);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Deprecated 03/2025.
|
||||
registry->RegisterBooleanPref(kPasswordChangeFlowNoticeAgreement, false);
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Deprecated 03/2025.
|
||||
registry->RegisterBooleanPref(kSunfishEnabled, true);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Deprecated 03/2025
|
||||
registry->RegisterDictionaryPref(kRecurrentSSLInterstitial);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -1729,8 +1730,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
extensions::login_api::RegisterLocalStatePrefs(registry);
|
||||
::onc::RegisterPrefs(registry);
|
||||
policy::AdbSideloadingAllowanceModePolicyHandler::RegisterPrefs(registry);
|
||||
// TODO(b/265923216): Replace with EnrollmentStateFetcher::RegisterPrefs.
|
||||
policy::AutoEnrollmentClientImpl::RegisterPrefs(registry);
|
||||
policy::BrowserPolicyConnectorAsh::RegisterPrefs(registry);
|
||||
policy::CrdAdminSessionController::RegisterLocalStatePrefs(registry);
|
||||
policy::DeviceCloudPolicyManagerAsh::RegisterPrefs(registry);
|
||||
@@ -1739,6 +1738,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
policy::DeviceStatusCollector::RegisterPrefs(registry);
|
||||
policy::DeviceWallpaperImageExternalDataHandler::RegisterPrefs(registry);
|
||||
policy::EnrollmentRequisitionManager::RegisterPrefs(registry);
|
||||
policy::EnrollmentStateFetcher::RegisterPrefs(registry);
|
||||
policy::EuiccStatusUploader::RegisterLocalStatePrefs(registry);
|
||||
policy::MinimumVersionPolicyHandler::RegisterPrefs(registry);
|
||||
policy::TPMAutoUpdateModePolicyHandler::RegisterPrefs(registry);
|
||||
@@ -1779,7 +1779,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
os_crypt_async::AppBoundEncryptionProviderWin::RegisterLocalPrefs(registry);
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
IncompatibleApplicationsUpdater::RegisterLocalStatePrefs(registry);
|
||||
ModuleDatabase::RegisterLocalStatePrefs(registry);
|
||||
ThirdPartyConflictsManager::RegisterLocalStatePrefs(registry);
|
||||
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
@@ -1835,7 +1834,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kChromeDataRegionSetting, 0);
|
||||
|
||||
#if BUILDFLAG(ENABLE_GLIC)
|
||||
glic::GlicLauncherConfiguration::RegisterLocalStatePrefs(registry);
|
||||
glic::prefs::RegisterLocalStatePrefs(registry);
|
||||
#endif
|
||||
|
||||
registry->RegisterIntegerPref(prefs::kToastAlertLevel, 0);
|
||||
@@ -1860,7 +1859,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
chrome_labs_prefs::RegisterProfilePrefs(registry);
|
||||
ChromeLocationBarModelDelegate::RegisterProfilePrefs(registry);
|
||||
content_settings::CookieSettings::RegisterProfilePrefs(registry);
|
||||
StatefulSSLHostStateDelegate::RegisterProfilePrefs(registry);
|
||||
ChromeVersionService::RegisterProfilePrefs(registry);
|
||||
chrome_browser_net::NetErrorTabHelper::RegisterProfilePrefs(registry);
|
||||
chrome_prefs::RegisterProfilePrefs(registry);
|
||||
@@ -2019,7 +2017,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
ChromeAuthenticatorRequestDelegate::RegisterProfilePrefs(registry);
|
||||
commerce::CommerceUiTabHelper::RegisterProfilePrefs(registry);
|
||||
DeviceServiceImpl::RegisterProfilePrefs(registry);
|
||||
DevToolsWindow::RegisterProfilePrefs(registry);
|
||||
DriveService::RegisterProfilePrefs(registry);
|
||||
extensions::CommandService::RegisterProfilePrefs(registry);
|
||||
extensions::TabsCaptureVisibleTabFunction::RegisterProfilePrefs(registry);
|
||||
@@ -2056,6 +2053,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
UnifiedAutoplayConfig::RegisterProfilePrefs(registry);
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
|
||||
DevToolsWindow::RegisterProfilePrefs(registry);
|
||||
#endif // !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
extensions::DocumentScanRegisterProfilePrefs(registry);
|
||||
extensions::login_api::RegisterProfilePrefs(registry);
|
||||
@@ -2321,16 +2322,11 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) {
|
||||
// Please don't delete the preceding line. It is used by PRESUBMIT.py.
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
// Deprecated 03/2024.
|
||||
local_state->ClearPref(kOsCryptAppBoundFixedData2PrefName);
|
||||
// Deprecated 06/2024.
|
||||
local_state->ClearPref(kOsCryptAppBoundFixedData3PrefName);
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Added 03/2024.
|
||||
local_state->ClearPref(kOobeGuestAcceptedTos);
|
||||
|
||||
// Added 05/2024.
|
||||
local_state->ClearPref(kDeviceRegisteredTime);
|
||||
local_state->ClearPref(kArcKioskDictionaryName);
|
||||
@@ -2420,6 +2416,23 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) {
|
||||
local_state->ClearPref(kRootSecretPrefName);
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
// Added 03/2025.
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
local_state->ClearPref(kShouldRetrieveDeviceState);
|
||||
local_state->ClearPref(kShouldAutoEnroll);
|
||||
local_state->ClearPref(kAutoEnrollmentPowerLimit);
|
||||
#endif
|
||||
|
||||
// Added 03/2025.
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
local_state->ClearPref(kDeviceRestrictionScheduleHighestSeenTime);
|
||||
#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
local_state->ClearPref(
|
||||
kPerformanceInterventionNotificationAcceptHistoryDeprecated);
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
// Please don't delete the following line. It is used by PRESUBMIT.py.
|
||||
// END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS
|
||||
|
||||
@@ -2445,6 +2458,9 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
|
||||
// BEGIN_MIGRATE_OBSOLETE_PROFILE_PREFS
|
||||
// Please don't delete the preceding line. It is used by PRESUBMIT.py.
|
||||
|
||||
privacy_sandbox::PrivacySandboxNoticeStorage::UpdateNoticeSchemaV2(
|
||||
profile_prefs);
|
||||
|
||||
// Check MigrateDeprecatedAutofillPrefs() to see if this is safe to remove.
|
||||
autofill::prefs::MigrateDeprecatedAutofillPrefs(profile_prefs);
|
||||
|
||||
@@ -2466,32 +2482,15 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
|
||||
// and this call (to compute said pref) should be removed once
|
||||
// kUnifiedPasswordManagerLocalPasswordsAndroidWithMigration is launched and
|
||||
// enough clients have migrated. UsesSplitStoresAndUPMForLocal() should be
|
||||
// updated to check the GmsCoreVersion directly instead of the pref, or might
|
||||
// be removed entirely, depending how the outdated GmsCore case is handled.
|
||||
password_manager_android_util::SetUsesSplitStoresAndUPMForLocal(profile_prefs,
|
||||
profile_path);
|
||||
// updated to check the GmsCoreVersion directly instead of the pref, or
|
||||
// might be removed entirely, depending how the outdated GmsCore case is
|
||||
// handled.
|
||||
password_manager_android_util::SetUsesSplitStoresAndUPMForLocal(
|
||||
profile_prefs, profile_path,
|
||||
std::make_unique<
|
||||
password_manager_android_util::PasswordManagerUtilBridge>());
|
||||
#endif
|
||||
|
||||
// Added 03/2024.
|
||||
profile_prefs->ClearPref(kPlusAddressLastFetchedTime);
|
||||
|
||||
// Added 03/2024.
|
||||
profile_prefs->ClearPref(kPrivacySandboxApisEnabled);
|
||||
|
||||
// Added 03/2024.
|
||||
profile_prefs->ClearPref(kDefaultSearchProviderChoicePendingDeprecated);
|
||||
|
||||
// Added 03/2024.
|
||||
profile_prefs->ClearPref(kShowInternalAccessibilityTree);
|
||||
|
||||
// Added 03/2024.
|
||||
profile_prefs->ClearPref(kTrackingProtectionSentimentSurveyGroup);
|
||||
profile_prefs->ClearPref(kTrackingProtectionSentimentSurveyStartTime);
|
||||
profile_prefs->ClearPref(kTrackingProtectionSentimentSurveyEndTime);
|
||||
|
||||
// Added 03/2024
|
||||
profile_prefs->ClearPref(kPreferencesMigratedToBasic);
|
||||
|
||||
// Added 04/2024.
|
||||
profile_prefs->ClearPref(kOmniboxInstantKeywordUsed);
|
||||
|
||||
@@ -2567,10 +2566,10 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
|
||||
profile_prefs->ClearPref(kBirchUseSelfShare);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
|
||||
// Added 06/2024.
|
||||
syncer::SyncPrefs::MaybeMigrateAutofillToPerAccountPref(profile_prefs);
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
#endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
// Added 06/2024
|
||||
@@ -2790,6 +2789,22 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
|
||||
profile_prefs->ClearPref(kSharedStorage);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
// Added 03/2025.
|
||||
profile_prefs->ClearPref(kPasswordChangeFlowNoticeAgreement);
|
||||
|
||||
#if !BUILDFLAG(IS_CHROMEOS)
|
||||
// Added 03/2025.
|
||||
profile_prefs->ClearPref(prefs::kChildAccountStatusKnown);
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Added 03/2025.
|
||||
profile_prefs->ClearPref(kSunfishEnabled);
|
||||
#endif
|
||||
|
||||
// Added 03/2025.
|
||||
profile_prefs->ClearPref(kRecurrentSSLInterstitial);
|
||||
|
||||
// Please don't delete the following line. It is used by PRESUBMIT.py.
|
||||
// END_MIGRATE_OBSOLETE_PROFILE_PREFS
|
||||
|
||||
|
||||
@@ -121,6 +121,8 @@
|
||||
#include "components/download/content/factory/navigation_monitor_factory.h"
|
||||
#include "components/download/content/public/download_navigation_observer.h"
|
||||
#include "components/enterprise/buildflags/buildflags.h"
|
||||
#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h"
|
||||
#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
|
||||
#include "components/history/content/browser/web_contents_top_sites_observer.h"
|
||||
#include "components/history/core/browser/top_sites.h"
|
||||
#include "components/infobars/content/content_infobar_manager.h"
|
||||
@@ -220,6 +222,7 @@
|
||||
#include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/hats/hats_helper.h"
|
||||
#include "chrome/browser/ui/performance_controls/performance_controls_hats_service_factory.h"
|
||||
#include "chrome/browser/ui/shared_highlighting/shared_highlighting_promo.h"
|
||||
#endif
|
||||
|
||||
@@ -360,6 +363,13 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
|
||||
profile->IsIncognitoProfile());
|
||||
}
|
||||
|
||||
if (fingerprinting_protection_interventions::features::
|
||||
IsCanvasInterventionsEnabledForIncognitoState(
|
||||
profile->IsIncognitoProfile())) {
|
||||
fingerprinting_protection_interventions::InterventionsWebContentsHelper::
|
||||
CreateForWebContents(web_contents, profile->IsIncognitoProfile());
|
||||
}
|
||||
|
||||
// Only create the IpProtectionStatus if the User Bypass feature is enabled.
|
||||
if (net::features::kIpPrivacyEnableUserBypass.Get()) {
|
||||
ip_protection::IpProtectionStatus::CreateForWebContents(web_contents);
|
||||
@@ -697,17 +707,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
|
||||
features::kHappinessTrackingSurveysForDesktopDemo) ||
|
||||
base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurvey) ||
|
||||
base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurveyV2) ||
|
||||
base::FeatureList::IsEnabled(performance_manager::features::
|
||||
kPerformanceControlsPerformanceSurvey) ||
|
||||
base::FeatureList::IsEnabled(
|
||||
performance_manager::features::
|
||||
kPerformanceControlsBatteryPerformanceSurvey) ||
|
||||
base::FeatureList::IsEnabled(
|
||||
performance_manager::features::
|
||||
kPerformanceControlsMemorySaverOptOutSurvey) ||
|
||||
base::FeatureList::IsEnabled(
|
||||
performance_manager::features::
|
||||
kPerformanceControlsBatterySaverOptOutSurvey) ||
|
||||
PerformanceControlsHatsServiceFactory::IsAnySurveyFeatureEnabled() ||
|
||||
base::FeatureList::IsEnabled(
|
||||
page_info::kMerchantTrustEvaluationControlSurvey) ||
|
||||
base::FeatureList::IsEnabled(
|
||||
|
||||
@@ -128,9 +128,9 @@ namespace autofillPrivate {
|
||||
IMPROVED_PREDICTION,
|
||||
PASSPORT_NAME_TAG,
|
||||
PASSPORT_NUMBER,
|
||||
PASSPORT_ISSUING_COUNTRY_TAG,
|
||||
PASSPORT_EXPIRATION_DATE_TAG,
|
||||
PASSPORT_ISSUE_DATE_TAG,
|
||||
PASSPORT_ISSUING_COUNTRY,
|
||||
PASSPORT_EXPIRATION_DATE,
|
||||
PASSPORT_ISSUE_DATE,
|
||||
LOYALTY_MEMBERSHIP_PROGRAM,
|
||||
LOYALTY_MEMBERSHIP_PROVIDER,
|
||||
LOYALTY_MEMBERSHIP_ID,
|
||||
@@ -142,8 +142,10 @@ namespace autofillPrivate {
|
||||
DRIVERS_LICENSE_NAME_TAG,
|
||||
DRIVERS_LICENSE_REGION,
|
||||
DRIVERS_LICENSE_NUMBER,
|
||||
DRIVERS_LICENSE_EXPIRATION_DATE_TAG,
|
||||
DRIVERS_LICENSE_ISSUE_DATE_TAG,
|
||||
DRIVERS_LICENSE_EXPIRATION_DATE,
|
||||
DRIVERS_LICENSE_ISSUE_DATE,
|
||||
VEHICLE_YEAR,
|
||||
VEHICLE_PLATE_STATE,
|
||||
MAX_VALID_FIELD_TYPE
|
||||
};
|
||||
|
||||
@@ -157,6 +159,13 @@ namespace autofillPrivate {
|
||||
ACCOUNT
|
||||
};
|
||||
|
||||
// The type of data that can be stored for an attribute type.
|
||||
enum AttributeTypeDataType {
|
||||
COUNTRY,
|
||||
DATE,
|
||||
STRING
|
||||
};
|
||||
|
||||
// Metadata about an autofill entry (address or credit card) which is used to
|
||||
// render a summary list of all entries.
|
||||
dictionary AutofillMetadata {
|
||||
@@ -325,6 +334,8 @@ namespace autofillPrivate {
|
||||
long typeName;
|
||||
// The type name as a human readable string.
|
||||
DOMString typeNameAsString;
|
||||
// The type of data stored for this attribute type.
|
||||
AttributeTypeDataType dataType;
|
||||
};
|
||||
|
||||
// Contains the entity type name and other relevant information about the
|
||||
@@ -334,14 +345,27 @@ namespace autofillPrivate {
|
||||
long typeName;
|
||||
// The type name as a human readable string.
|
||||
DOMString typeNameAsString;
|
||||
// The i18n string representation of "Add <entity>". Used in the entity
|
||||
// adding settings UI. The string cannot be constructed dynamically,
|
||||
// because the entity string might need declension in some languages.
|
||||
DOMString addEntityString;
|
||||
// The i18n string representation of "Edit <entity>". Used in the entity
|
||||
// editing settings UI. The string cannot be constructed dynamically,
|
||||
// because the entity string might need declension in some languages.
|
||||
DOMString editEntityString;
|
||||
// The i18n string representation of "Add <entity type>". Used in the entity
|
||||
// instance adding settings UI. The string cannot be constructed
|
||||
// dynamically, because the "<entity type>" string might need declension in
|
||||
// some languages.
|
||||
DOMString addEntityTypeString;
|
||||
// The i18n string representation of "Edit <entity type>". Used in the
|
||||
// entity instance editing settings UI. The string cannot be constructed
|
||||
// dynamically, because the "<entity type>" string might need declension in
|
||||
// some languages.
|
||||
DOMString editEntityTypeString;
|
||||
};
|
||||
|
||||
// Contains date information: month, day and year.
|
||||
dictionary DateValue {
|
||||
// The year of the date valure, repesented as "YYYY". Example: "2016".
|
||||
DOMString year;
|
||||
// The month of the date value, without leading zeros. Example: "3" for
|
||||
// March, "10" for October.
|
||||
DOMString month;
|
||||
// The day of the date value, without leading zeros. Example: "3", "30".
|
||||
DOMString day;
|
||||
};
|
||||
|
||||
// An attribute instance is a typed string value with additional metadata.
|
||||
@@ -350,8 +374,9 @@ namespace autofillPrivate {
|
||||
// Contains the attribute type name and other relevant information about the
|
||||
// attribute type.
|
||||
AttributeType type;
|
||||
// The attribute value.
|
||||
DOMString value;
|
||||
// The attribute instance value. If the `AttributeTypeDataType` is a `DATE`,
|
||||
// then `value` is a `DateValue`. Otherwise, `value` is a `DOMString`.
|
||||
(DOMString or DateValue) value;
|
||||
};
|
||||
|
||||
// An entity instance entry which can be saved in the "Autofill with AI"
|
||||
@@ -361,7 +386,7 @@ namespace autofillPrivate {
|
||||
// entity type.
|
||||
EntityType type;
|
||||
// The attribute instances of this entity instance.
|
||||
AttributeInstance[] attributes;
|
||||
AttributeInstance[] attributeInstances;
|
||||
// The guid of the entity instance.
|
||||
DOMString guid;
|
||||
// The nickname of the entity instance.
|
||||
@@ -375,9 +400,9 @@ namespace autofillPrivate {
|
||||
// The guid of the entity instance.
|
||||
DOMString guid;
|
||||
// The enitity instance label.
|
||||
DOMString entityLabel;
|
||||
DOMString entityInstanceLabel;
|
||||
// The enitity instance sublabel.
|
||||
DOMString entitySubLabel;
|
||||
DOMString entityInstanceSubLabel;
|
||||
};
|
||||
|
||||
// A Pay Over Time Issuer entry which can be displayed in the autofill
|
||||
@@ -407,12 +432,13 @@ namespace autofillPrivate {
|
||||
callback IsValidIbanCallback = void(boolean isValid);
|
||||
callback GetCreditCardCallback = void(optional CreditCardEntry card);
|
||||
callback CheckForDeviceAuthCallback = void(boolean isDeviceAuthAvailable);
|
||||
callback isUserEligibleForAutofillImprovementsCallback = void(boolean eligible);
|
||||
callback LoadEntityInstancesCallback = void(EntityInstanceWithLabels[] entries);
|
||||
callback GetEntityInstanceByGuid = void(EntityInstance entity);
|
||||
callback GetAllEntityTypesCallback = void(EntityType[] entities);
|
||||
callback GetAllAttributeTypesForEntityCallback =
|
||||
void(AttributeType[] attributes);
|
||||
callback GetEntityInstanceByGuid = void(EntityInstance entityInstance);
|
||||
callback GetAllEntityTypesCallback = void(EntityType[] entityTypes);
|
||||
callback GetAllAttributeTypesForEntityTypeNameCallback =
|
||||
void(AttributeType[] attributeTypes);
|
||||
callback GetAutofillAiOptInStatusCallback = void(boolean optedIn);
|
||||
callback SetAutofillAiOptInStatusCallback = void(boolean success);
|
||||
callback GetPayOverTimeIssuerListCallback = void(PayOverTimeIssuerEntry[] entries);
|
||||
|
||||
interface Functions {
|
||||
@@ -432,11 +458,11 @@ namespace autofillPrivate {
|
||||
static void removeAddress(DOMString guid);
|
||||
|
||||
// Gets the list of all countries.
|
||||
// |forAccountAddressProfile|: whether the address profile opened in the
|
||||
// editor originates in the user's profile.
|
||||
// |forAccountStorage|: whether the address profile opened in the editor
|
||||
// originates in the user's profile.
|
||||
// |callback|: Callback which will be called with the countries.
|
||||
static void getCountryList(
|
||||
boolean forAccountAddressProfile,
|
||||
boolean forAccountStorage,
|
||||
GetCountryListCallback callback);
|
||||
|
||||
// Gets the address components for a given country code.
|
||||
@@ -483,9 +509,6 @@ namespace autofillPrivate {
|
||||
static void isValidIban(
|
||||
DOMString ibanValue, IsValidIbanCallback callback);
|
||||
|
||||
// Triggers local credit cards migration.
|
||||
static void migrateCreditCards();
|
||||
|
||||
// Logs that the server cards edit link was clicked.
|
||||
static void logServerCardLinkClicked();
|
||||
|
||||
@@ -533,13 +556,6 @@ namespace autofillPrivate {
|
||||
// `syncer::UserSelectableType::kAutofill` in `SyncUserSettings`.
|
||||
static void setAutofillSyncToggleEnabled(boolean enabled);
|
||||
|
||||
// Returns if the user is eligible for autofill improvements.
|
||||
static void isUserEligibleForAutofillImprovements(
|
||||
isUserEligibleForAutofillImprovementsCallback callback);
|
||||
|
||||
// Notifies autofill client about the prediction improvements pre changing.
|
||||
static void predictionImprovementsIphFeatureUsed();
|
||||
|
||||
// Adds a new entity instance if it doesn't exist yet. Otherwise, it updates
|
||||
// the entity instance.
|
||||
static void addOrUpdateEntityInstance(
|
||||
@@ -560,11 +576,21 @@ namespace autofillPrivate {
|
||||
// what entity instance to add.
|
||||
static void getAllEntityTypes(GetAllEntityTypesCallback callback);
|
||||
|
||||
// Returns a list of all possible attributes that can be set on an entity.
|
||||
// Used for adding/editing a new entity instance.
|
||||
static void getAllAttributeTypesForEntity(
|
||||
// Returns a list of all possible attribute types that can be set on an
|
||||
// entity instance with the respective entity type name. Used for
|
||||
// adding/editing a new entity instance.
|
||||
static void getAllAttributeTypesForEntityTypeName(
|
||||
long entityTypeName,
|
||||
GetAllAttributeTypesForEntityCallback callback);
|
||||
GetAllAttributeTypesForEntityTypeNameCallback callback);
|
||||
|
||||
// Gets the AutofillAI opt-in status for the current user.
|
||||
static void getAutofillAiOptInStatus(
|
||||
GetAutofillAiOptInStatusCallback callback);
|
||||
|
||||
// Sets the AutofillAI opt-in status for the current user.
|
||||
static void setAutofillAiOptInStatus(
|
||||
boolean optedIn,
|
||||
SetAutofillAiOptInStatusCallback callback);
|
||||
};
|
||||
|
||||
interface Events {
|
||||
@@ -580,5 +606,10 @@ namespace autofillPrivate {
|
||||
IbanEntry[] ibans,
|
||||
PayOverTimeIssuerEntry[] payOverTimeIssuers,
|
||||
optional AccountInfo accountInfo);
|
||||
|
||||
// Fired when the entity instances have changed (additions, updates,
|
||||
// removals).
|
||||
static void onEntityInstancesChanged(
|
||||
EntityInstanceWithLabels[] entityInstancesWithLabels);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -7,30 +7,6 @@
|
||||
// apps and extensions.
|
||||
[implemented_in = "chrome/browser/extensions/api/developer_private/developer_private_functions.h"]
|
||||
namespace developerPrivate {
|
||||
|
||||
// DEPRECATED: Prefer ExtensionType.
|
||||
enum ItemType {
|
||||
hosted_app,
|
||||
packaged_app,
|
||||
legacy_packaged_app,
|
||||
extension,
|
||||
theme
|
||||
};
|
||||
|
||||
// DEPRECATED: Prefer ExtensionView.
|
||||
dictionary ItemInspectView {
|
||||
// path to the inspect page.
|
||||
DOMString path;
|
||||
|
||||
// For lazy background pages, the value is -1.
|
||||
long render_process_id;
|
||||
// This actually refers to a render frame.
|
||||
long render_view_id;
|
||||
|
||||
boolean incognito;
|
||||
boolean generatedBackgroundPage;
|
||||
};
|
||||
|
||||
// DEPRECATED: Use OpenDevTools.
|
||||
dictionary InspectOptions {
|
||||
DOMString extension_id;
|
||||
@@ -39,10 +15,6 @@ namespace developerPrivate {
|
||||
boolean incognito;
|
||||
};
|
||||
|
||||
dictionary InstallWarning {
|
||||
DOMString message;
|
||||
};
|
||||
|
||||
enum ExtensionType {
|
||||
HOSTED_APP,
|
||||
PLATFORM_APP,
|
||||
@@ -302,43 +274,6 @@ namespace developerPrivate {
|
||||
boolean isMv2DeprecationNoticeDismissed;
|
||||
};
|
||||
|
||||
// DEPRECATED: Prefer ExtensionInfo.
|
||||
dictionary ItemInfo {
|
||||
DOMString id;
|
||||
DOMString name;
|
||||
DOMString version;
|
||||
DOMString description;
|
||||
boolean may_disable;
|
||||
boolean enabled;
|
||||
boolean isApp;
|
||||
ItemType type;
|
||||
boolean allow_activity;
|
||||
boolean allow_file_access;
|
||||
boolean wants_file_access;
|
||||
boolean incognito_enabled;
|
||||
boolean is_unpacked;
|
||||
boolean allow_reload;
|
||||
boolean terminated;
|
||||
boolean allow_incognito;
|
||||
DOMString icon_url;
|
||||
|
||||
// Path of an unpacked extension.
|
||||
DOMString? path;
|
||||
|
||||
// Options settings page for the item.
|
||||
DOMString? options_url;
|
||||
DOMString? app_launch_url;
|
||||
DOMString? homepage_url;
|
||||
DOMString? update_url;
|
||||
InstallWarning[] install_warnings;
|
||||
any[] manifest_errors;
|
||||
any[] runtime_errors;
|
||||
boolean offline_enabled;
|
||||
|
||||
// All views of the current extension.
|
||||
ItemInspectView[] views;
|
||||
};
|
||||
|
||||
dictionary GetExtensionsInfoOptions {
|
||||
boolean? includeDisabled;
|
||||
boolean? includeTerminated;
|
||||
@@ -655,12 +590,9 @@ namespace developerPrivate {
|
||||
};
|
||||
|
||||
callback VoidCallback = void ();
|
||||
callback BooleanCallback = void (boolean result);
|
||||
callback ExtensionInfosCallback = void (ExtensionInfo[] result);
|
||||
callback ExtensionInfoCallback = void (ExtensionInfo result);
|
||||
callback ItemsInfoCallback = void (ItemInfo[] result);
|
||||
callback ProfileInfoCallback = void (ProfileInfo info);
|
||||
callback GetProjectsInfoCallback = void (ProjectInfo[] result);
|
||||
callback PackCallback = void (PackDirectoryResponse response);
|
||||
callback StringCallback = void (DOMString string);
|
||||
callback RequestFileSourceCallback =
|
||||
@@ -671,6 +603,7 @@ namespace developerPrivate {
|
||||
callback UserAndExtensionSitesByEtldCallback = void (SiteGroup[] siteGroups);
|
||||
callback GetMatchingExtensionsForSiteCallback =
|
||||
void (MatchingExtensionInfo[] matchingExtensions);
|
||||
callback BoolCallback = void(boolean result);
|
||||
|
||||
interface Functions {
|
||||
// Runs auto update for extensions and apps immediately.
|
||||
@@ -766,9 +699,6 @@ namespace developerPrivate {
|
||||
optional long flags,
|
||||
optional PackCallback callback);
|
||||
|
||||
// Returns true if the profile is managed.
|
||||
static void isProfileManaged(BooleanCallback callback);
|
||||
|
||||
// Reads and returns the contents of a file related to an extension which
|
||||
// caused an error.
|
||||
static void requestFileSource(
|
||||
@@ -883,10 +813,11 @@ namespace developerPrivate {
|
||||
// Triggers the dismissal of the mv2 deprecation notice for `extensionId`.
|
||||
static void dismissMv2DeprecationNoticeForExtension(DOMString extensionId);
|
||||
|
||||
// Uploads an extension to the signed in user's account. If the extension is
|
||||
// not eligible for upload or if there is no signed in user, returns an
|
||||
// error.
|
||||
static void uploadExtensionToAccount(DOMString extensionId);
|
||||
// Uploads an extension to the signed in user's account and returns whether
|
||||
// the extension is actually uploaded in `callback`. If the extension is not
|
||||
// eligible for upload or if there is no signed in user, returns an error.
|
||||
static void uploadExtensionToAccount(DOMString extensionId,
|
||||
BoolCallback callback);
|
||||
|
||||
[nocompile, deprecated="Use openDevTools"]
|
||||
static void inspect(InspectOptions options,
|
||||
|
||||
@@ -438,4 +438,21 @@ namespace enterprise.reportingPrivate {
|
||||
DoneCallback callback);
|
||||
};
|
||||
|
||||
dictionary DataMaskingRule {
|
||||
// Corresponds to `MatchedUrlNavigationRule::DataMaskingAction::mask_type`.
|
||||
DOMString level;
|
||||
|
||||
// Corresponds to `MatchedUrlNavigationRule::DataMaskingAction::pattern`.
|
||||
DOMString regex_pattern;
|
||||
|
||||
// The URL being navigated to that triggered the rule.
|
||||
DOMString url;
|
||||
|
||||
TriggeredRuleInfo triggeredRuleInfo;
|
||||
};
|
||||
|
||||
interface Events {
|
||||
static void onDataMaskingRulesTriggered(DataMaskingRule[] rules);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -427,10 +427,12 @@ enum DefaultLocation {
|
||||
onedrive
|
||||
};
|
||||
|
||||
enum CloudProvider {
|
||||
// The value of the SkyVault LocalFilesMigrationDestination policy.
|
||||
enum MigrationDestination {
|
||||
not_specified,
|
||||
google_drive,
|
||||
onedrive
|
||||
onedrive,
|
||||
delete
|
||||
};
|
||||
|
||||
// These three fields together uniquely identify a task.
|
||||
@@ -871,7 +873,8 @@ dictionary Preferences {
|
||||
boolean driveFsBulkPinningEnabled;
|
||||
boolean localUserFilesAllowed;
|
||||
DefaultLocation defaultLocation;
|
||||
CloudProvider skyVaultMigrationDestination;
|
||||
MigrationDestination skyVaultMigrationDestination;
|
||||
DOMString? skyVaultMigrationStartTime;
|
||||
};
|
||||
|
||||
dictionary PreferencesChange {
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include "base/time/time.h"
|
||||
#include "base/values.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "chrome/common/buildflags.h"
|
||||
#include "chrome/common/channel_info.h"
|
||||
#include "chrome/common/chrome_content_client.h"
|
||||
@@ -369,7 +368,7 @@ void MaybeEnableWebShare() {
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_NACL) && BUILDFLAG(ENABLE_EXTENSIONS) && \
|
||||
BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
BUILDFLAG(IS_CHROMEOS)
|
||||
bool IsTerminalSystemWebAppNaClPage(GURL url) {
|
||||
GURL::Replacements replacements;
|
||||
replacements.ClearQuery();
|
||||
@@ -423,11 +422,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
|
||||
|
||||
const bool is_extension = IsStandaloneContentExtensionProcess();
|
||||
|
||||
thread->SetRendererProcessType(
|
||||
is_extension
|
||||
? blink::scheduler::WebRendererProcessType::kExtensionRenderer
|
||||
: blink::scheduler::WebRendererProcessType::kRenderer);
|
||||
|
||||
if (is_extension) {
|
||||
// The process name was set to "Renderer" in RendererMain(). Update it to
|
||||
// "Extension Renderer" to highlight that it's hosting an extension.
|
||||
@@ -484,12 +478,16 @@ void ChromeContentRendererClient::RenderThreadStarted() {
|
||||
thread->AddObserver(fingerprinting_protection_ruleset_dealer_.get());
|
||||
}
|
||||
|
||||
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||
phishing_model_setter_ =
|
||||
std::make_unique<safe_browsing::PhishingModelSetterImpl>();
|
||||
#endif
|
||||
|
||||
thread->AddObserver(chrome_observer_.get());
|
||||
thread->AddObserver(subresource_filter_ruleset_dealer_.get());
|
||||
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||
thread->AddObserver(phishing_model_setter_.get());
|
||||
#endif
|
||||
|
||||
blink::WebScriptController::RegisterExtension(
|
||||
extensions_v8::LoadTimesExtension::Get());
|
||||
@@ -1076,7 +1074,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
if (extension) {
|
||||
is_module_allowed =
|
||||
IsNativeNaClAllowed(app_url, is_nacl_unrestricted, extension);
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
// Allow Terminal System App to load the SSH extension NaCl
|
||||
// module.
|
||||
} else if (IsTerminalSystemWebAppNaClPage(app_url)) {
|
||||
@@ -1108,7 +1106,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
blink::mojom::ConsoleMessageLevel::kError, error_message));
|
||||
placeholder = create_blocked_plugin(
|
||||
IDR_BLOCKED_PLUGIN_HTML,
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
l10n_util::GetStringUTF16(IDS_NACL_PLUGIN_BLOCKED));
|
||||
#else
|
||||
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name));
|
||||
|
||||
@@ -1336,6 +1336,18 @@ policies:
|
||||
1335: GeminiSettings
|
||||
1336: GenAISmartGroupingSettings
|
||||
1337: GenAiChromeOsSmartActionsSettings
|
||||
1338: RelaunchSupersededReleaseAge
|
||||
1339: ClassManagementCaptionsEnabled
|
||||
1340: ClassManagementClassroomIntegrationEnabled
|
||||
1341: ClassManagementNetworkRestrictionEnabled
|
||||
1342: ClassManagementSendingContentEnabled
|
||||
1343: ClassManagementViewScreenEnabled
|
||||
1344: KioskChromeAppsForceAllowed
|
||||
1345: ReduceAcceptLanguageEnabled
|
||||
1346: GenAIInlineImageSettings
|
||||
1347: UserSecuritySignalsReporting
|
||||
1348: UserSecurityAuthenticatedReporting
|
||||
1349: HappyEyeballsV3Enabled
|
||||
|
||||
atomic_groups:
|
||||
1: Homepage
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ desc: |-
|
||||
the provider.
|
||||
|
||||
Support for this policy setting will end in <ph
|
||||
name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> 136.
|
||||
name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> 146.
|
||||
supported_on:
|
||||
- chrome.win:125-
|
||||
features:
|
||||
|
||||
+2
-2
@@ -14,8 +14,8 @@ items:
|
||||
- caption: Disable Android to Web App sharing.
|
||||
value: false
|
||||
owners:
|
||||
- tsergeant@chromium.org
|
||||
- chromeos-apps-foundation-team@google.com
|
||||
- ovn@google.com
|
||||
- cros-web-apps-team@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
supported_on:
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph> caption feature
|
||||
default: true
|
||||
desc: |-
|
||||
Setting the policy specifies if teachers can use caption feature.
|
||||
|
||||
If value is set to true or unset, selected teachers can caption their voice and send the transcription to students.
|
||||
|
||||
If set to false they cannot access the feature.
|
||||
example_value: true
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Allow teachers to send transcription to students.
|
||||
value: true
|
||||
- caption: Prevent teachers from sending transcription to students.
|
||||
value: false
|
||||
owners:
|
||||
- cros-edu-eng@google.com
|
||||
- aprilzhou@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
type: main
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph> Google Classroom integration feature
|
||||
default: true
|
||||
desc: |-
|
||||
Setting the policy specifies if teachers can connect to students using a Google Classroom class roster. See <ph name="GOOGLE_CLASSROOM_LINK">https://support.google.com/edu/classroom/answer/10495270</ph>.
|
||||
|
||||
If value set to true or unset, they can use Google Classroom class roster.
|
||||
|
||||
If set to false they cannot access the feature.
|
||||
example_value: true
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Allow teachers to use Google Classroom class roster.
|
||||
value: true
|
||||
- caption: Prevent teachers from using Google Classroom class roster.
|
||||
value: false
|
||||
owners:
|
||||
- cros-edu-eng@google.com
|
||||
- aprilzhou@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
type: main
|
||||
+4
-4
@@ -1,16 +1,16 @@
|
||||
caption: Configure Class management tools
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph>
|
||||
default: disabled
|
||||
desc: |-
|
||||
Setting the policy specifies whether users use class management tools for sending/receiving content, sending/receiving caption as students, teachers, or if class management tools is disabled for users.
|
||||
Setting the policy specifies whether users use <ph name="CLASS_TOOLS_NAME">Class Tools</ph> for sending/receiving content, sending/receiving caption as students, teachers, or if class management tools is disabled for users.
|
||||
example_value: disabled
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Users are not able to use any of the class management features or be added to a class management session.
|
||||
- caption: Users are not able to use any of the <ph name="CLASS_TOOLS_NAME">Class Tools</ph> or be added to a <ph name="CLASS_TOOLS_NAME">Class Tools</ph> session.
|
||||
name: disabled
|
||||
value: disabled
|
||||
- caption: Users will be able to join and be added to a class management session. Teachers will be able to send content to these users.
|
||||
- caption: Users will be able to join and be added to a <ph name="CLASS_TOOLS_NAME">Class Tools</ph> session. Teachers will be able to send content to these users.
|
||||
name: students
|
||||
value: students
|
||||
- caption: Users will be able to connect and deploy content to students. This includes sending web content and making live captions/translations of the teacher’s voice available to the students.
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph> network restriction
|
||||
default: false
|
||||
desc: |-
|
||||
Setting the policy specifies if selected users' devices must be on a managed network in order to be part of <ph name="CLASS_TOOLS_NAME">Class Tools</ph> class.
|
||||
|
||||
If value set to true they must be on a managed network.
|
||||
|
||||
If set to false or unset they can join without being on a managed network.
|
||||
example_value: True
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Require users' devices to be on a managed network in order to be part of <ph name="CLASS_TOOLS_NAME">Class Tools</ph> class
|
||||
value: true
|
||||
- caption: Do not require users' devices to be on a managed network in order to be part of <ph name="CLASS_TOOLS_NAME">Class Tools</ph> class
|
||||
value: false
|
||||
owners:
|
||||
- cros-edu-eng@google.com
|
||||
- aprilzhou@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
type: main
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph> sending content feature
|
||||
default: true
|
||||
desc: |-
|
||||
Setting the policy specifies if selected teachers can send and lock content on students' screens.
|
||||
|
||||
If set to true of unset they can send and lock content.
|
||||
|
||||
If set to false they cannot access the feature.
|
||||
example_value: true
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Allow teachers to send and lock content to students' screens
|
||||
value: true
|
||||
- caption: Prevent teachers from sending and locking content to students' screens
|
||||
value: false
|
||||
owners:
|
||||
- cros-edu-eng@google.com
|
||||
- aprilzhou@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
type: main
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
caption: Configure <ph name="CLASS_TOOLS_NAME">Class Tools</ph> view screen feature
|
||||
default: true
|
||||
desc: |-
|
||||
Setting the policy specifies if the selected teachers can remotely view students' screens.
|
||||
|
||||
If set to true or unset they can view students' screens.
|
||||
|
||||
If set to false they cannot access the feature.
|
||||
example_value: true
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Allow teachers to remotely view students' screens.
|
||||
value: true
|
||||
- caption: Prevent teachers from remotely viewing students' screens.
|
||||
value: false
|
||||
owners:
|
||||
- cros-edu-eng@google.com
|
||||
- aprilzhou@google.com
|
||||
schema:
|
||||
type: boolean
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
type: main
|
||||
+2
-3
@@ -2,7 +2,6 @@ caption: Cloud Reporting
|
||||
desc: |-
|
||||
Configure cloud reporting policies.
|
||||
|
||||
When the policy <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME">CloudReportingEnabled</ph> is left unset or set to disabled, these policies will be ignored.
|
||||
For managed devices, when the policy <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME">CloudReportingEnabled</ph> is left unset or set to disabled, these policies will be ignored at the browser level. On platforms other than <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph>, that policy is only supported on browser which enrolled with <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN">CloudManagementEnrollmentToken</ph> for <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.
|
||||
|
||||
These policies are only effective when the machine is enrolled with <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN">CloudManagementEnrollmentToken</ph> for <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.
|
||||
These policies are always effective for <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph>.
|
||||
For managed Profiles, when the policy <ph name="CLOUD_PROFILE_REPORTING_ENABLED_POLICY_NAME">CloudProfileReportingEnabled</ph> is left unset or set to disabled, these policies will be ignored at the Profile level.
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
caption: Enable cloud reporting of security signals in managed profiles
|
||||
default: false
|
||||
desc: |-
|
||||
This policy controls <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> usage of first party user authentication when reporting user security signals for a particular managed profile.
|
||||
|
||||
This policy is set to Enabled, first party authentication will be used when uploading security signals.
|
||||
|
||||
This policy is set to Disabled, or is left unset, first party authentication will not be used when uploading security signals.
|
||||
|
||||
User security signals reports are only uploaded when <ph name="USER_SECURITY_SIGNALS_REPORTING_POLICY_NAME">UserSecuritySignalsReporting</ph> is enabled.
|
||||
|
||||
This policy can only be set as cloud user policy.
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
cloud_only: true
|
||||
user_only: true
|
||||
future_on:
|
||||
- chrome.*
|
||||
owners:
|
||||
- seblalancette@chromium.org
|
||||
- cbe-device-trust-eng@google.com
|
||||
example_value: true
|
||||
items:
|
||||
- caption: Enable first-party authentication when reporting user security signals
|
||||
value: true
|
||||
- caption: Disable first-party authentication when reporting user security signals
|
||||
value: false
|
||||
schema:
|
||||
type: boolean
|
||||
tags:
|
||||
- admin-sharing
|
||||
- google-sharing
|
||||
type: main
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
caption: Enable cloud reporting of security signals in managed profiles
|
||||
default: false
|
||||
desc: |-
|
||||
This policy controls <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> cloud reporting of security signals for a particular managed profile.
|
||||
|
||||
When this policy is set to Enabled, it will report security signals about the device, browser and profile to the device management server.
|
||||
|
||||
When this policy is set to Disabled, or is left unset, it will not trigger the collecton and upload of security signals.
|
||||
|
||||
The report contains profile state and usage information, including but not limited to OS version, browser version, installed extensions and applied policies.
|
||||
|
||||
This policy can only be set as cloud user policy.
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
cloud_only: true
|
||||
user_only: true
|
||||
future_on:
|
||||
- chrome.*
|
||||
owners:
|
||||
- seblalancette@chromium.org
|
||||
- cbe-device-trust-eng@google.com
|
||||
example_value: true
|
||||
items:
|
||||
- caption: Enable user security signals cloud reporting
|
||||
value: true
|
||||
- caption: Disable user security signals cloud reporting
|
||||
value: false
|
||||
schema:
|
||||
type: boolean
|
||||
tags:
|
||||
- admin-sharing
|
||||
- google-sharing
|
||||
type: main
|
||||
+2
@@ -10,3 +10,5 @@ CloudReporting:
|
||||
- CloudReportingEnabled
|
||||
- CloudProfileReportingEnabled
|
||||
- CloudReportingUploadFrequency
|
||||
- UserSecuritySignalsReporting
|
||||
- UserSecurityAuthenticatedReporting
|
||||
|
||||
+1
@@ -9,6 +9,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
future_on:
|
||||
- android
|
||||
- fuchsia
|
||||
items:
|
||||
- caption: Do not allow any site to request access to serial ports via the Serial
|
||||
|
||||
+1
@@ -13,6 +13,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
future_on:
|
||||
- android
|
||||
- fuchsia
|
||||
owners:
|
||||
- reillyg@chromium.org
|
||||
|
||||
+1
@@ -23,6 +23,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
future_on:
|
||||
- android
|
||||
- fuchsia
|
||||
owners:
|
||||
- reillyg@chromium.org
|
||||
|
||||
+5
-4
@@ -2,13 +2,13 @@ caption: Allow the Serial API on these sites
|
||||
desc: |-
|
||||
Setting the policy lets you list the URL patterns that specify which sites can ask users to grant them access to a serial port.
|
||||
|
||||
Leaving the policy unset means <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> applies for all sites, if it's set. If not, users' personal settings apply.
|
||||
Leaving the policy unset means <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> applies for all sites, if it's set. If not, users' personal settings apply.
|
||||
|
||||
For URL patterns which do not match the policy <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME">SerialBlockedForUrls</ph> (if there is a match), <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> (if set), or the users' personal settings take precedence, in that order.
|
||||
For URL patterns which do not match the policy <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME">SerialBlockedForUrls</ph> (if there is a match), <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> (if set), or the users' personal settings take precedence, in that order.
|
||||
|
||||
URL patterns must not conflict with <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME">SerialBlockedForUrls</ph>. Neither policy takes precedence if a URL matches with both.
|
||||
If URL patterns conflict with <ph name="SERIAL_BLOCKED_FOR_URLS_POLICY_NAME">SerialBlockedForUrls</ph> they will be ignored.
|
||||
|
||||
For detailed information on valid <ph name="URL_LABEL">url</ph> patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE">*</ph> is not an accepted value for this policy.
|
||||
For detailed information on valid <ph name="URL_LABEL">url</ph> patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE">*</ph> is not an accepted value for this policy.
|
||||
example_value:
|
||||
- https://www.example.com
|
||||
- '[*.]example.edu'
|
||||
@@ -16,6 +16,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
future_on:
|
||||
- android
|
||||
- fuchsia
|
||||
owners:
|
||||
- reillyg@chromium.org
|
||||
|
||||
+5
-4
@@ -2,13 +2,13 @@ caption: Block the Serial API on these sites
|
||||
desc: |-
|
||||
Setting the policy lets you list the URL patterns that specify which sites can't ask users to grant them access to a serial port.
|
||||
|
||||
Leaving the policy unset means <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> applies for all sites, if it's set. If not, the user's personal setting applies.
|
||||
Leaving the policy unset means <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> applies for all sites, if it's set. If not, the user's personal setting applies.
|
||||
|
||||
For URL patterns which do not match the policy <ph name="SERIAL_ASK_FOR_URLS_POLICY_NAME">SerialAskForUrls</ph> (if there is a match), <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> (if set), or the users' personal settings take precedence, in that order.
|
||||
For URL patterns which do not match the policy <ph name="SERIAL_ASK_FOR_URLS_POLICY_NAME">SerialAskForUrls</ph> (if there is a match), <ph name="DEFAULT_SERIAL_GUARD_SETTING_POLICY_NAME">DefaultSerialGuardSetting</ph> (if set), or the users' personal settings take precedence, in that order.
|
||||
|
||||
URL patterns can't conflict with <ph name="SERIAL_ASK_FOR_URLS_POLICY_NAME">SerialAskForUrls</ph>. Neither policy takes precedence if a URL matches with both.
|
||||
If URL patterns conflict with <ph name="SERIAL_ASK_FOR_URLS_POLICY_NAME">SerialAskForUrls</ph> this policy will take precedence.
|
||||
|
||||
For detailed information on valid <ph name="URL_LABEL">url</ph> patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE">*</ph> is not an accepted value for this policy.
|
||||
For detailed information on valid <ph name="URL_LABEL">url</ph> patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE">*</ph> is not an accepted value for this policy.
|
||||
example_value:
|
||||
- https://www.example.com
|
||||
- '[*.]example.edu'
|
||||
@@ -16,6 +16,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
future_on:
|
||||
- android
|
||||
- fuchsia
|
||||
owners:
|
||||
- reillyg@chromium.org
|
||||
|
||||
-2
@@ -16,9 +16,7 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
owners:
|
||||
- rodmartin@google.com
|
||||
- chromeos-commercial-identity@google.com
|
||||
- file://components/policy/OWNERS
|
||||
schema:
|
||||
maximum: 365
|
||||
minimum: -1
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
caption: Settings for GenAI Inline Image feature
|
||||
|
||||
desc: |-
|
||||
This policy controls the settings of the Inline Image feature for <ph name="PRODUCT_OS_NAME">$1<ex>Google ChromeOS</ex></ph>.
|
||||
|
||||
0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below.
|
||||
|
||||
1 = Allow the feature to be used, but does not allow Google to improve models using users' content (including prompts, inputs, outputs, source materials, and written feedback). 1 is the default value for Enterprise users managed by <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME">Google Admin console</ph> and for Education accounts managed by <ph name="GOOGLE_WORKSPACE_PRODUCT_NAME">Google Workspace</ph>.
|
||||
|
||||
2 = Do not allow the feature.
|
||||
|
||||
If the policy is unset, its behavior is determined by the <ph name="GEN_AI_DEFAULT_SETTINGS_POLICY_NAME">GenAiDefaultSettings</ph> policy.
|
||||
|
||||
For more information on data handling for generative AI features, please see https://support.google.com/chrome/a?p=generative_ai_settings.
|
||||
default: 0
|
||||
example_value: 2
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
items:
|
||||
- caption: Allow Inline Image and improve AI models.
|
||||
name: Allowed
|
||||
value: 0
|
||||
- caption: Allow Inline Image without improving AI models.
|
||||
name: AllowedWithoutLogging
|
||||
value: 1
|
||||
- caption: Do not allow Inline Image.
|
||||
name: Disabled
|
||||
value: 2
|
||||
owners:
|
||||
- file://ash/lobster/OWNERS
|
||||
- curtismcmullan@chromium.org
|
||||
- hdchuong@chromium.org
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
- 2
|
||||
type: integer
|
||||
supported_on:
|
||||
- chrome_os:136-
|
||||
tags: []
|
||||
type: int-enum
|
||||
+2
-2
@@ -38,7 +38,7 @@ schema:
|
||||
- 1
|
||||
- 2
|
||||
type: integer
|
||||
future_on:
|
||||
- chrome_os
|
||||
supported_on:
|
||||
- chrome_os:136-
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
caption: Settings for Generative AI Smart Grouping feature
|
||||
caption: Settings for Suggested Groups
|
||||
desc: |-
|
||||
This policy controls the settings of the Generative AI Smart Grouping feature for <ph name="PRODUCT_OS_NAME">$1<ex>Google ChromeOS</ex></ph>.
|
||||
This policy controls whether groups based on similar content will be suggested for <ph name="PRODUCT_OS_NAME">$1<ex>Google ChromeOS</ex></ph>. Content can include browser tabs and apps. Groups will be suggested when users login. Suggested desks for a group will be available during a session.
|
||||
|
||||
0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below.
|
||||
|
||||
@@ -37,7 +37,7 @@ schema:
|
||||
- 1
|
||||
- 2
|
||||
type: integer
|
||||
future_on:
|
||||
- chrome_os
|
||||
supported_on:
|
||||
- chrome_os:136-
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@ schema:
|
||||
- 1
|
||||
- 2
|
||||
type: integer
|
||||
future_on:
|
||||
- chrome_os
|
||||
supported_on:
|
||||
- chrome_os:136-
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
caption: Settings for Tab Organizer
|
||||
|
||||
deprecated: true
|
||||
desc: |-
|
||||
Tab Organizer is an AI-based tool that automatically creates tab groups based on a user's open tabs. Suggestions are based on open tabs (but not page content).
|
||||
|
||||
@@ -39,7 +39,7 @@ schema:
|
||||
tags:
|
||||
- google-sharing
|
||||
supported_on:
|
||||
- chrome.*:121-
|
||||
- chrome_os:121-
|
||||
- chrome.*:121-136
|
||||
- chrome_os:121-136
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
owners:
|
||||
- giovax@chromium.org
|
||||
- file://apps/DEPRECATION_OWNERS
|
||||
caption: Force Allow Chrome Apps in Kiosk mode
|
||||
desc: |-
|
||||
Setting this policy to True allows Chrome Apps to continue to run in a Kiosk session, regardless of the default Chrome Apps enablement.
|
||||
|
||||
Leaving this policy unset or setting this policy to False will use the default behavior defined on the device.
|
||||
|
||||
Attempting to launch a disabled Chrome App will show the user a message explaining why the app was not lauched and suggesting to contact their IT department.
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
type: main
|
||||
schema:
|
||||
type: boolean
|
||||
items:
|
||||
- caption: Allow Chrome Apps to run in Kiosk sessions.
|
||||
value: true
|
||||
- caption: Use Default behavior.
|
||||
value: false
|
||||
default: false
|
||||
example_value: false
|
||||
future_on:
|
||||
- chrome_os
|
||||
tags: []
|
||||
+1
@@ -7,3 +7,4 @@ Kiosk:
|
||||
- DeviceLocalAccountAutoLoginBailoutEnabled
|
||||
- DeviceLocalAccountPromptForNetworkWhenOffline
|
||||
- KioskTroubleshootingToolsEnabled
|
||||
- KioskChromeAppsForceAllowed
|
||||
|
||||
+1
-2
@@ -15,8 +15,7 @@ items:
|
||||
- caption: Prevent captive portal authentication from ignoring proxy settings
|
||||
value: false
|
||||
owners:
|
||||
- ultrotter@google.com
|
||||
- rsorokin@google.com
|
||||
- file://components/policy/OWNERS
|
||||
schema:
|
||||
type: boolean
|
||||
supported_on:
|
||||
|
||||
-1
@@ -21,7 +21,6 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
owners:
|
||||
- rodmartin@google.com
|
||||
- seblalancette@chromium.org
|
||||
- cbe-device-trust-eng@google.com
|
||||
schema:
|
||||
|
||||
-1
@@ -19,7 +19,6 @@ features:
|
||||
dynamic_refresh: true
|
||||
owners:
|
||||
- lmasopust@google.com
|
||||
- rodmartin@google.com
|
||||
- cbe-device-trust-eng@google.com
|
||||
schema:
|
||||
items:
|
||||
|
||||
+9
-4
@@ -1,10 +1,15 @@
|
||||
caption: Specify weekly intervals when ChromeOS devices cannot be used
|
||||
caption: Specifies weekly intervals when ChromeOS devices cannot be used
|
||||
desc: |-
|
||||
This policy specifies a list of weekly intervals during which the <ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> device cannot be used. Any ongoing sessions will be closed and login will be blocked.
|
||||
Specifies weekly intervals when ChromeOS devices cannot be used.
|
||||
|
||||
Overlapping intervals are not supported.
|
||||
During restricted intervals, any ongoing sessions are closed and users cannot sign in.
|
||||
|
||||
<ph name="PRODUCT_OS_NAME">$2<ex>Google ChromeOS</ex></ph> devices will use the system timezone to apply these intervals.
|
||||
Considerations:
|
||||
|
||||
* Overlapping intervals are not supported.
|
||||
* The device restriction schedule uses the device's time zone.
|
||||
* To prevent users from editing their device time zone, use SystemTimezone.
|
||||
* To prevent users from editing their device time, use SystemFeaturesDisableList to disable Crosh, and URLBlocklist to block chrome://set-time.
|
||||
device_only: true
|
||||
example_value:
|
||||
- start:
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ default: 0
|
||||
desc: |-
|
||||
This policy controls the dynamic code settings for <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.
|
||||
|
||||
Disabling dynamic code improves the security of <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> by preventing potentially hostile dynamic code and third-party code from making changes to <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>'s behavior, but might cause compatibility issues with third-party software that must run inside the browser process.
|
||||
Disabling dynamic code improves the security of <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> by preventing potentially hostile dynamic code and third-party code from making changes to <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>'s behavior, but might cause compatibility issues with third-party software (e.g. certain printer drivers) that must run inside the browser process.
|
||||
|
||||
If the policy is set to 0 - Default or left unset then <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will use the default settings.
|
||||
|
||||
|
||||
+1
-1
@@ -31,10 +31,10 @@ schema:
|
||||
- 1
|
||||
type: integer
|
||||
future_on:
|
||||
- android
|
||||
- ios
|
||||
supported_on:
|
||||
- chrome.*:86-
|
||||
- chrome_os:86-
|
||||
- android:136-
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+4
-4
@@ -12,9 +12,9 @@ desc: |-
|
||||
|
||||
The <ph name="SEARCH_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">search_url</ph> field specifies the URL on which to search. Enter the web address for the search engine's results page, and use <ph name="SEARCH_TERM_MARKER">'{searchTerms}'</ph> in place of the query.
|
||||
|
||||
The <ph name="SUGGEST_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">suggest_url</ph> field specifies the URL that provides search suggestions. If <ph name="SUGGEST_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">suggest_url</ph> contains <ph name="SEARCH_TERM_MARKER">'{searchTerms}'</ph>, then Chrome will obtain search suggestions by a GET request to the URL replacing <ph name="SEARCH_TERM_MARKER">'{searchTerms}'</ph> with the user's search query. Otherwise, a POST request will be made, the the user's query will be passed in the POST params under key <ph name="SEARCH_SUGGEST_POST_PARAMS_QUERY_KEY">'query'</ph>.
|
||||
The <ph name="SUGGEST_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">suggest_url</ph> field specifies the URL that provides search suggestions. If <ph name="SUGGEST_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">suggest_url</ph> contains <ph name="SEARCH_TERM_MARKER">'{searchTerms}'</ph>, then Chrome will obtain search suggestions by a GET request to the URL replacing <ph name="SEARCH_TERM_MARKER">'{searchTerms}'</ph> with the user's search query. Otherwise, a POST request will be made and the user's query will be passed in the POST params under key <ph name="SEARCH_SUGGEST_POST_PARAMS_QUERY_KEY">'query'</ph>.
|
||||
|
||||
The <ph name="ICON_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">icon_url</ph> field specifies the URL to an image that will be used on the search suggestions. A default icon will be used when this field is not set. It's recommended to use a favicon (example <ph name="ICON_URL_EXAMPLE">https://www.google.com/favicon.ico</ph>).
|
||||
The <ph name="ICON_URL_SEARCH_AGGREGATOR_SETTINGS_FIELD">icon_url</ph> field specifies the URL to an image that will be used on the search suggestions. A default icon will be used when this field is not set. It's recommended to use a favicon (example <ph name="ICON_URL_EXAMPLE">https://www.google.com/favicon.ico</ph>). Supported image file formats: JPEG, PNG, and ICO.
|
||||
|
||||
The <ph name="REQUIRE_SHORTCUT_SEARCH_AGGREGATOR_SETTINGS_FIELD">require_shortcut</ph> field specifies whether the address bar <ph name="SHORTCUT_SEARCH_AGGREGATOR_SETTINGS_FIELD">shortcut</ph> is required to see search recommendations. If this field is not set, the address bar <ph name="SHORTCUT_SEARCH_AGGREGATOR_SETTINGS_FIELD">shortcut</ph> is not required.
|
||||
|
||||
@@ -25,8 +25,8 @@ desc: |-
|
||||
example_value:
|
||||
name: My Search Aggregator
|
||||
shortcut: work
|
||||
search_url: https://www.aggregator.com/search?q=site%3Awikipedia.com+{searchTerms}
|
||||
suggest_url: https://www.aggregator.com/suggest?q={searchTerms}
|
||||
search_url: https://www.aggregator.com/search?q={searchTerms}
|
||||
suggest_url: https://www.aggregator.com/suggest
|
||||
icon_url: https://www.google.com/favicon.ico
|
||||
require_shortcut: true
|
||||
features:
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ owners:
|
||||
- yusuyoutube@google.com
|
||||
- hujasonx@google.com
|
||||
- benwgold@google.com
|
||||
- wylieb@chromium.org
|
||||
- wylieb@google.com
|
||||
- fgorski@chromium.org
|
||||
- lens-chrome@google.com
|
||||
schema:
|
||||
|
||||
+1
-1
@@ -52,10 +52,10 @@ schema:
|
||||
type: object
|
||||
type: array
|
||||
future_on:
|
||||
- android
|
||||
- ios
|
||||
supported_on:
|
||||
- chrome.*:84-
|
||||
- chrome_os:84-
|
||||
- android:136-
|
||||
tags: []
|
||||
type: dict
|
||||
|
||||
+3
-1
@@ -2,11 +2,13 @@ owners:
|
||||
- hiramahmood@google.com
|
||||
- file://ios/chrome/browser/parcel_tracking/OWNERS
|
||||
caption: Allows users to track their packages on Chrome.
|
||||
deprecated: true
|
||||
desc: |-
|
||||
When the policy is not set or set to Enabled, users will be able to track their packages on <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> through the New Tab Page.
|
||||
When the policy is set to Disabled, users will not be able to track their packages on <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> through the New Tab Page.
|
||||
Deprecated: The Parcel Tracking feature is disabled since M132, and this policy has no effect since then.
|
||||
supported_on:
|
||||
- ios:120-
|
||||
- ios:120-131
|
||||
features:
|
||||
dynamic_refresh: false
|
||||
per_profile: false
|
||||
|
||||
+1
-1
@@ -37,6 +37,6 @@ schema:
|
||||
type: integer
|
||||
supported_on:
|
||||
- chrome.*:89-
|
||||
- chrome_os:105-
|
||||
- chrome_os:105-135
|
||||
tags: []
|
||||
type: int-enum
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ desc: |-
|
||||
|
||||
Setting this policy to <ph name="PROVISION_MANAGED_CLIENT_CERTIFICATE_FOR_BROWSER_DISABLED">Disabled</ph> (value 0), or leaving unset will prevent <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> from requesting the client certificate. If a browser's managed client certificate had already been provisioned, due to this policy being enabled before, it will not be deleted, but it won't be available for mTLS connections and won't be renewed when it expires.
|
||||
|
||||
future_on:
|
||||
- chrome.*
|
||||
supported_on:
|
||||
- chrome.*:136-
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
caption: Control <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph>
|
||||
|
||||
desc: |-
|
||||
The <ph name="AL_HEADER_NAME">Accept-Language</ph> HTTP request header and the JavaScript <ph name="JS_GETTER_NAME">navigator.languages</ph> getter are planned for reduction for privacy reasons.
|
||||
To facilitate testing and ensure compatibility, this policy allows you to enable or disable the <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph> feature.
|
||||
|
||||
If this policy is set to enabled or left unset, <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph> will be applied through field trials.
|
||||
If this policy is set to disabled, field trials will not be able to activate <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph>.
|
||||
|
||||
For more information about this feature, please visit: https://github.com/explainers-by-googlers/reduce-accept-language.
|
||||
|
||||
NOTE: Only newly-started renderer processes will reflect changes to this policy while the browser is running.
|
||||
|
||||
owners:
|
||||
- victortan@chromium.org
|
||||
- miketaylr@chromium.org
|
||||
- potassium-katabolism@google.com
|
||||
|
||||
supported_on:
|
||||
- chrome.*:136-
|
||||
- chrome_os:136-
|
||||
- android:136-
|
||||
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
|
||||
schema:
|
||||
type: boolean
|
||||
items:
|
||||
- caption: Enable <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph>
|
||||
value: true
|
||||
- caption: Disable <ph name="ALR_FEATURE_NAME">Accept-Language Reduction</ph>
|
||||
value: false
|
||||
|
||||
default: true
|
||||
|
||||
example_value: true
|
||||
|
||||
tags: []
|
||||
|
||||
type: main
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
caption: Notify users of superseded browser versions
|
||||
desc: |-
|
||||
Specifies the minimum release age beyond which relaunch notifications are more aggressive. The age is calculated from the time the currently-running version was last served to clients.
|
||||
|
||||
If a new version is pending, a browser relaunch or device restart is needed, and the current version has been superseded for more than the number of days specified by this setting, the <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME">RelaunchNotificationPeriod</ph> policy is overridden to 2 hours. If the <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME">RelaunchNotification</ph> policy is set to 1 ('Required'), users will be forced to relaunch or restart at the end of the period.
|
||||
|
||||
If not set, or if the release age cannot be determined, the <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME">RelaunchNotificationPeriod</ph> policy will be used for all updates.
|
||||
example_value: 7
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
future_on:
|
||||
- chrome.*
|
||||
- chrome_os
|
||||
label: Time period (days)
|
||||
owners:
|
||||
- nicolaso@chromium.org
|
||||
- cbe-eng@google.com
|
||||
schema:
|
||||
minimum: 7
|
||||
type: integer
|
||||
tags: []
|
||||
type: int
|
||||
-1
@@ -21,7 +21,6 @@ items:
|
||||
name: PrimaryAccountSignin
|
||||
value: primary_account_signin
|
||||
owners:
|
||||
- rodmartin@google.com
|
||||
- sinhak@chromium.org
|
||||
- chromeos-commercial-identity@google.com
|
||||
schema:
|
||||
|
||||
+8
@@ -92,6 +92,12 @@ items:
|
||||
- caption: Google Maps (supported since version 135)
|
||||
name: google_maps
|
||||
value: google_maps
|
||||
- caption: Calculator (supported since version 136)
|
||||
name: calculator
|
||||
value: calculator
|
||||
- caption: Text Editor (supported since version 136)
|
||||
name: text_editor
|
||||
value: text_editor
|
||||
owners:
|
||||
- file://components/policy/OWNERS
|
||||
- ayaelattar@chromium.org
|
||||
@@ -122,6 +128,8 @@ schema:
|
||||
- google_chat
|
||||
- youtube
|
||||
- google_maps
|
||||
- calculator
|
||||
- text_editor
|
||||
type: string
|
||||
type: array
|
||||
supported_on:
|
||||
|
||||
+4
-4
@@ -13,10 +13,10 @@ features:
|
||||
dynamic_refresh: true
|
||||
per_profile: true
|
||||
platform_only: true
|
||||
future_on:
|
||||
- chrome.*
|
||||
- chrome_os
|
||||
- android
|
||||
supported_on:
|
||||
- chrome.*:136-
|
||||
- chrome_os:136-
|
||||
- android:136-
|
||||
example_value:
|
||||
- https://remotedesktop.google.com
|
||||
- https://vdi.corp.example
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
caption: Use the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm
|
||||
desc: |-
|
||||
This feature enables the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm to make connection attempts. See https://datatracker.ietf.org/doc/draft-pauly-happy-happyeyeballs-v3 for details.
|
||||
|
||||
Setting the policy to Enabled means <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will use the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm for connection attempts.
|
||||
|
||||
Setting the policy to Disabled turns off the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm.
|
||||
|
||||
Not setting the policy, <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will turn on or off the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm based on chrome://flags/#happy-eyeballs-v3.
|
||||
|
||||
This policy supports dynamic refresh.
|
||||
|
||||
This policy is a temporary measure and will be removed in future versions of <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.
|
||||
owners:
|
||||
- bashi@chromium.org
|
||||
- file://net/OWNERS
|
||||
supported_on:
|
||||
- android:136-
|
||||
- chrome.*:136-
|
||||
- chrome_os:136-
|
||||
features:
|
||||
dynamic_refresh: true
|
||||
per_profile: false
|
||||
type: main
|
||||
schema:
|
||||
type: boolean
|
||||
items:
|
||||
- caption: Using the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm.
|
||||
value: true
|
||||
- caption: Do not use the <ph name="HAPPY_EYEBALLS_V3">Happy Eyeballs V3</ph> algorithm.
|
||||
value: false
|
||||
example_value: true
|
||||
tags: []
|
||||
+5
@@ -7,6 +7,7 @@ desc: |-
|
||||
If set to "google_drive", local files are moved to Google Drive and local folders are hidden.
|
||||
If set to "microsoft_onedrive", local files are moved to OneDrive and local folders are hidden.
|
||||
If set to "read-only" or left unset: local files remain in read-only mode.
|
||||
If set to "delete": existing local files are deleted.
|
||||
example_value: "read_only"
|
||||
features:
|
||||
can_be_recommended: false
|
||||
@@ -22,6 +23,9 @@ items:
|
||||
- caption: Keep local files in read-only mode
|
||||
name: "read_only"
|
||||
value: "read_only"
|
||||
- caption: Delete existing local files (supported since version 137)
|
||||
name: "delete"
|
||||
value: "delete"
|
||||
owners:
|
||||
- file://chrome/browser/ash/policy/skyvault/OWNERS
|
||||
schema:
|
||||
@@ -30,6 +34,7 @@ schema:
|
||||
- "google_drive"
|
||||
- "microsoft_onedrive"
|
||||
- "read_only"
|
||||
- "delete"
|
||||
supported_on:
|
||||
- chrome_os:132-
|
||||
tags: []
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
#include "cc/input/browser_controls_offset_tag_modifications.h"
|
||||
#include "components/attribution_reporting/features.h"
|
||||
#include "components/download/public/common/download_stats.h"
|
||||
#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h"
|
||||
#include "components/input/cursor_manager.h"
|
||||
#include "components/input/render_widget_host_input_event_router.h"
|
||||
#include "components/input/switches.h"
|
||||
@@ -84,6 +85,7 @@
|
||||
#include "content/browser/download/save_package.h"
|
||||
#include "content/browser/fenced_frame/fenced_frame.h"
|
||||
#include "content/browser/find_request_manager.h"
|
||||
#include "content/browser/fingerprinting_protection/canvas_noise_token_data.h"
|
||||
#include "content/browser/gpu/gpu_data_manager_impl.h"
|
||||
#include "content/browser/guest_page_holder_impl.h"
|
||||
#include "content/browser/host_zoom_map_impl.h"
|
||||
@@ -92,7 +94,6 @@
|
||||
#include "content/browser/permissions/permission_controller_impl.h"
|
||||
#include "content/browser/permissions/permission_util.h"
|
||||
#include "content/browser/preloading/prefetch/prefetch_service.h"
|
||||
#include "content/browser/preloading/preload_pipeline_info.h"
|
||||
#include "content/browser/preloading/preloading.h"
|
||||
#include "content/browser/preloading/prerender/prerender_final_status.h"
|
||||
#include "content/browser/preloading/prerender/prerender_host_registry.h"
|
||||
@@ -154,6 +155,7 @@
|
||||
#include "content/public/browser/javascript_dialog_manager.h"
|
||||
#include "content/public/browser/keyboard_event_processing_result.h"
|
||||
#include "content/public/browser/navigation_details.h"
|
||||
#include "content/public/browser/preload_pipeline_info.h"
|
||||
#include "content/public/browser/preview_cancel_reason.h"
|
||||
#include "content/public/browser/render_widget_host_iterator.h"
|
||||
#include "content/public/browser/render_widget_host_observer.h"
|
||||
@@ -179,6 +181,7 @@
|
||||
#include "services/device/public/mojom/wake_lock.mojom.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/request_destination.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
#include "services/network/public/cpp/web_sandbox_flags.h"
|
||||
#include "services/network/public/mojom/network_context.mojom.h"
|
||||
#include "third_party/abseil-cpp/absl/cleanup/cleanup.h"
|
||||
@@ -234,6 +237,7 @@
|
||||
#include "content/browser/web_contents/web_contents_view_android.h"
|
||||
#include "services/device/public/mojom/nfc.mojom.h"
|
||||
#include "services/service_manager/public/cpp/interface_provider.h"
|
||||
#include "ui/android/event_forwarder.h"
|
||||
#include "ui/android/view_android.h"
|
||||
#include "ui/base/device_form_factor.h"
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
@@ -386,8 +390,7 @@ bool AreValidRegisterProtocolHandlerArguments(
|
||||
return false;
|
||||
}
|
||||
|
||||
blink::URLSyntaxErrorCode code =
|
||||
blink::IsValidCustomHandlerURLSyntax(url, url.spec());
|
||||
blink::URLSyntaxErrorCode code = blink::IsValidCustomHandlerURLSyntax(url);
|
||||
if (code != blink::URLSyntaxErrorCode::kNoError) {
|
||||
return false;
|
||||
}
|
||||
@@ -907,6 +910,33 @@ WebContents* WebContentsImpl::GetOpenedPartitionedPopin() const {
|
||||
return opened_partitioned_popin_.get();
|
||||
}
|
||||
|
||||
GURL WebContentsImpl::GetPartitionedPopinEmbedderOrigin(
|
||||
base::PassKey<StorageAccessGrantPermissionContext>) const {
|
||||
return GetPartitionedPopinEmbedderOriginImpl();
|
||||
}
|
||||
|
||||
GURL WebContentsImpl::GetPartitionedPopinEmbedderOriginForTesting() const {
|
||||
return GetPartitionedPopinEmbedderOriginImpl();
|
||||
}
|
||||
|
||||
GURL WebContentsImpl::GetPartitionedPopinEmbedderOriginImpl() const {
|
||||
// This should only be checked for popins.
|
||||
CHECK(IsPartitionedPopin());
|
||||
|
||||
// If the opener is still around and has not navigated then we want to use the
|
||||
// embedder origin it would have used for its own iframe.
|
||||
if (partitioned_popin_opener_ &&
|
||||
partitioned_popin_opener_->GetMainFrame()->GetLastCommittedOrigin() ==
|
||||
partitioned_popin_opener_properties_->top_frame_origin) {
|
||||
return PermissionUtil::GetLastCommittedOriginAsURL(
|
||||
partitioned_popin_opener_->GetMainFrame());
|
||||
}
|
||||
// If we end up here there was a race condition between a permissions check
|
||||
// and this popin being closed or navigated, so we should fallback to using
|
||||
// the origin we partitioned by.
|
||||
return partitioned_popin_opener_properties_->top_frame_origin.GetURL();
|
||||
}
|
||||
|
||||
void WebContents::SetScreenOrientationDelegate(
|
||||
ScreenOrientationDelegate* delegate) {
|
||||
ScreenOrientationProvider::SetDelegate(delegate);
|
||||
@@ -1327,6 +1357,12 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context)
|
||||
if (input::IsTransferInputToVizSupported()) {
|
||||
SetupRenderInputRouterDelegateConnection();
|
||||
}
|
||||
|
||||
if (base::FeatureList::IsEnabled(
|
||||
fingerprinting_protection_interventions::features::kCanvasNoise)) {
|
||||
renderer_preferences_.canvas_noise_token =
|
||||
CanvasNoiseTokenData::GetToken(browser_context);
|
||||
}
|
||||
}
|
||||
|
||||
void WebContentsImpl::SetupRenderInputRouterDelegateConnection() {
|
||||
@@ -1567,7 +1603,7 @@ std::vector<WebContentsImpl*> WebContentsImpl::GetAllWebContents() {
|
||||
continue;
|
||||
}
|
||||
WebContents* web_contents = WebContents::FromRenderViewHost(rvh);
|
||||
if (!web_contents) {
|
||||
if (!web_contents || web_contents->IsBeingDestroyed()) {
|
||||
continue;
|
||||
}
|
||||
if (web_contents->GetPrimaryMainFrame()->GetRenderViewHost() != rvh) {
|
||||
@@ -1657,6 +1693,10 @@ NavigationControllerImpl& WebContentsImpl::GetController() {
|
||||
return primary_frame_tree_.controller();
|
||||
}
|
||||
|
||||
const NavigationControllerImpl& WebContentsImpl::GetController() const {
|
||||
return primary_frame_tree_.controller();
|
||||
}
|
||||
|
||||
BrowserContext* WebContentsImpl::GetBrowserContext() {
|
||||
return GetController().GetBrowserContext();
|
||||
}
|
||||
@@ -1675,9 +1715,9 @@ const GURL& WebContentsImpl::GetVisibleURL() {
|
||||
return entry ? entry->GetVirtualURL() : GURL::EmptyGURL();
|
||||
}
|
||||
|
||||
const GURL& WebContentsImpl::GetLastCommittedURL() {
|
||||
const GURL& WebContentsImpl::GetLastCommittedURL() const {
|
||||
// We may not have a navigation entry yet.
|
||||
NavigationEntry* entry = GetController().GetLastCommittedEntry();
|
||||
const NavigationEntry* entry = GetController().GetLastCommittedEntry();
|
||||
return entry ? entry->GetVirtualURL() : GURL::EmptyGURL();
|
||||
}
|
||||
|
||||
@@ -2306,6 +2346,11 @@ void WebContentsImpl::OnManifestUrlChanged(PageImpl& page) {
|
||||
}
|
||||
|
||||
WebUI* WebContentsImpl::GetWebUI() {
|
||||
// There is no frame host if the navigation fails.
|
||||
if (!primary_frame_tree_.root()->current_frame_host()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return primary_frame_tree_.root()->current_frame_host()->web_ui();
|
||||
}
|
||||
|
||||
@@ -2458,6 +2503,13 @@ void WebContentsImpl::SetDisplayCutoutSafeArea(gfx::Insets insets) {
|
||||
}
|
||||
}
|
||||
|
||||
void WebContentsImpl::SetContextMenuInsets(gfx::Rect safe_area) {
|
||||
OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::SetContextMenuInsets");
|
||||
if (auto* rwhv = GetRenderWidgetHostView()) {
|
||||
rwhv->NotifyContextMenuInsetsObservers(safe_area);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
const std::u16string& WebContentsImpl::GetTitle() {
|
||||
@@ -3409,8 +3461,6 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
|
||||
!command_line.HasSwitch(switches::kDisableRemoteFonts);
|
||||
prefs.local_storage_enabled =
|
||||
!command_line.HasSwitch(switches::kDisableLocalStorage);
|
||||
prefs.databases_enabled =
|
||||
!command_line.HasSwitch(switches::kDisableDatabases);
|
||||
|
||||
prefs.webgl1_enabled = !command_line.HasSwitch(switches::kDisable3DAPIs) &&
|
||||
!command_line.HasSwitch(switches::kDisableWebGL);
|
||||
@@ -3586,6 +3636,10 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
|
||||
if (command_line.HasSwitch(switches::kHideScrollbars)) {
|
||||
prefs.hide_scrollbars = true;
|
||||
}
|
||||
|
||||
prefs.payment_request_enabled =
|
||||
base::FeatureList::IsEnabled(features::kWebPayments);
|
||||
|
||||
GetContentClient()->browser()->OverrideWebPreferences(
|
||||
this, *main_frame->GetSiteInstance(), &prefs);
|
||||
return prefs;
|
||||
@@ -3602,6 +3656,7 @@ void WebContentsImpl::OnWebPreferencesChanged() {
|
||||
}
|
||||
updating_web_preferences_ = true;
|
||||
SetWebPreferences(ComputeWebPreferences(GetPrimaryMainFrame()));
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
const bool force_enable_zoom_changed =
|
||||
(force_enable_zoom_ != web_preferences_->force_enable_zoom);
|
||||
@@ -3623,6 +3678,12 @@ void WebContentsImpl::OnWebPreferencesChanged() {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Update inner WebContents.
|
||||
for (WebContents* inner : GetInnerWebContents()) {
|
||||
static_cast<WebContentsImpl*>(inner)->OnWebPreferencesChanged();
|
||||
}
|
||||
|
||||
updating_web_preferences_ = false;
|
||||
}
|
||||
|
||||
@@ -5244,7 +5305,7 @@ int64_t WebContentsImpl::AdjustWindowRect(gfx::Rect* bounds,
|
||||
return display_id;
|
||||
}
|
||||
|
||||
void WebContentsImpl::ShowCreatedWindow(
|
||||
WebContents* WebContentsImpl::ShowCreatedWindow(
|
||||
RenderFrameHostImpl* opener,
|
||||
int main_frame_widget_route_id,
|
||||
WindowOpenDisposition disposition,
|
||||
@@ -5256,7 +5317,7 @@ void WebContentsImpl::ShowCreatedWindow(
|
||||
|
||||
if (GuestPageHolderImpl::FromRenderFrameHost(*opener)) {
|
||||
// opened from a guest with MPArch, we don't need to do anything.
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// This method is the renderer requesting an existing top level window to
|
||||
@@ -5274,7 +5335,7 @@ void WebContentsImpl::ShowCreatedWindow(
|
||||
// renderer could be requesting to show a previously shown window (occurs when
|
||||
// mojom::CreateNewWindowStatus::kReuse is used). Ignore the request then.
|
||||
if (!owned_created || !owned_created->contents) {
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (active_file_chooser_) {
|
||||
@@ -5284,7 +5345,7 @@ void WebContentsImpl::ShowCreatedWindow(
|
||||
opener->AddMessageToConsole(
|
||||
blink::mojom::ConsoleMessageLevel::kWarning,
|
||||
"window.open blocked due to active file chooser.");
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
WebContentsImpl* created = owned_created->contents.get();
|
||||
@@ -5307,19 +5368,22 @@ void WebContentsImpl::ShowCreatedWindow(
|
||||
// retain fullscreen and open a window on another screen.
|
||||
ForSecurityDropFullscreen(display_id).RunAndReset();
|
||||
|
||||
// The delegate can be null in tests, so we must check for it :(.
|
||||
if (delegate) {
|
||||
// Mark the web contents as pending resume, then immediately do
|
||||
// the resume if the delegate wants it.
|
||||
created->is_resume_pending_ = true;
|
||||
if (delegate->ShouldResumeRequestsForCreatedWindow()) {
|
||||
created->ResumeLoadingCreatedWebContents();
|
||||
}
|
||||
|
||||
delegate->AddNewContents(this, std::move(owned_created->contents),
|
||||
std::move(owned_created->target_url), disposition,
|
||||
adjusted_features, user_gesture, nullptr);
|
||||
// The delegate can be null in tests.
|
||||
if (!delegate) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Mark the web contents as pending resume, then immediately do the resume if
|
||||
// the delegate wants it.
|
||||
created->is_resume_pending_ = true;
|
||||
if (delegate->ShouldResumeRequestsForCreatedWindow()) {
|
||||
created->ResumeLoadingCreatedWebContents();
|
||||
}
|
||||
|
||||
return delegate->AddNewContents(this, std::move(owned_created->contents),
|
||||
std::move(owned_created->target_url),
|
||||
disposition, adjusted_features, user_gesture,
|
||||
nullptr);
|
||||
}
|
||||
|
||||
void WebContentsImpl::ShowCreatedWidget(int process_id,
|
||||
@@ -7102,6 +7166,8 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) {
|
||||
// |max_loaded_frame_count_| is not necessarily 1 if the navigation was
|
||||
// served from BackForwardCache.
|
||||
max_loaded_frame_count_ = GetFrameTreeSize(&primary_frame_tree_);
|
||||
|
||||
BrowserAccessibilityStateImpl::GetInstance()->OnPageNavigationComplete();
|
||||
}
|
||||
|
||||
// TODO(crbug.com/40202416): MPArch GuestView: We might need to look up the
|
||||
@@ -7197,6 +7263,13 @@ WebContentsImpl::GetAutoPipReason() const {
|
||||
return GetContentClient()->browser()->GetAutoPipReason(*this);
|
||||
}
|
||||
|
||||
void WebContentsImpl::OnKeepAliveRequestCreated(
|
||||
const network::ResourceRequest& resource_request,
|
||||
RenderFrameHostImpl* initiator_rfh) {
|
||||
observers_.NotifyObservers(&WebContentsObserver::OnKeepAliveRequestCreated,
|
||||
resource_request, initiator_rfh);
|
||||
}
|
||||
|
||||
void WebContentsImpl::NotifyChangedNavigationState(
|
||||
InvalidateTypes changed_flags) {
|
||||
NotifyNavigationStateChanged(changed_flags);
|
||||
@@ -7683,6 +7756,10 @@ WebContentsImpl::GetOrCreateWebPreferences() {
|
||||
if (!web_preferences_) {
|
||||
OnWebPreferencesChanged();
|
||||
}
|
||||
|
||||
CHECK(web_preferences_)
|
||||
<< "WebPreferences is not created because GetOrCreateWebPreferences() "
|
||||
<< "is called before OnWebPreferencesChanged() returns.";
|
||||
return *web_preferences_.get();
|
||||
}
|
||||
|
||||
@@ -8823,6 +8900,11 @@ const blink::RendererPreferences& WebContentsImpl::GetRendererPrefs(
|
||||
*render_view_host->frame_tree()->GetMainFrame())) {
|
||||
return guest->GetRendererPrefs();
|
||||
}
|
||||
if (base::FeatureList::IsEnabled(
|
||||
fingerprinting_protection_interventions::features::kCanvasNoise)) {
|
||||
renderer_preferences_.canvas_noise_token =
|
||||
CanvasNoiseTokenData::GetToken(GetBrowserContext());
|
||||
}
|
||||
RenderViewHostImpl::GetPlatformSpecificPrefs(&renderer_preferences_);
|
||||
return renderer_preferences_;
|
||||
}
|
||||
@@ -11677,11 +11759,20 @@ WebContentsImpl::GetRenderInputRouterDelegateRemote() {
|
||||
return rir_delegate_remote_.get();
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
float WebContentsImpl::GetCurrentTouchSequenceYOffset() {
|
||||
ui::ViewAndroid* view_android = GetNativeView();
|
||||
return view_android->event_forwarder()->GetCurrentTouchSequenceYOffset();
|
||||
}
|
||||
#endif
|
||||
|
||||
std::unique_ptr<PrefetchHandle> WebContentsImpl::StartPrefetch(
|
||||
const GURL& prefetch_url,
|
||||
bool use_prefetch_proxy,
|
||||
const blink::mojom::Referrer& referrer,
|
||||
const std::optional<url::Origin>& referring_origin,
|
||||
std::optional<net::HttpNoVarySearchData> no_vary_search_hint,
|
||||
scoped_refptr<PreloadPipelineInfo> preload_pipeline_info,
|
||||
base::WeakPtr<PreloadingAttempt> attempt,
|
||||
std::optional<PreloadingHoldbackStatus> holdback_status_override) {
|
||||
if (!base::FeatureList::IsEnabled(
|
||||
@@ -11699,8 +11790,8 @@ std::unique_ptr<PrefetchHandle> WebContentsImpl::StartPrefetch(
|
||||
use_prefetch_proxy);
|
||||
auto container = std::make_unique<PrefetchContainer>(
|
||||
*this, prefetch_url, prefetch_type, referrer, referring_origin,
|
||||
/*no_vary_search_hint=*/std::nullopt, std::move(attempt),
|
||||
holdback_status_override);
|
||||
std::move(no_vary_search_hint), std::move(preload_pipeline_info),
|
||||
std::move(attempt), holdback_status_override);
|
||||
|
||||
return prefetch_service->AddPrefetchContainerWithHandle(std::move(container));
|
||||
}
|
||||
@@ -11715,6 +11806,7 @@ std::unique_ptr<PrerenderHandle> WebContentsImpl::StartPrerendering(
|
||||
bool should_warm_up_compositor,
|
||||
bool should_prepare_paint_tree,
|
||||
PreloadingHoldbackStatus holdback_status_override,
|
||||
scoped_refptr<PreloadPipelineInfo> preload_pipeline_info,
|
||||
PreloadingAttempt* preloading_attempt,
|
||||
base::RepeatingCallback<bool(const GURL&,
|
||||
const std::optional<UrlMatchType>&)>
|
||||
@@ -11723,14 +11815,14 @@ std::unique_ptr<PrerenderHandle> WebContentsImpl::StartPrerendering(
|
||||
prerender_navigation_handle_callback) {
|
||||
PrerenderAttributes attributes(
|
||||
prerendering_url, trigger_type, embedder_histogram_suffix,
|
||||
/*target_hint=*/std::nullopt, content::Referrer(),
|
||||
/*eagerness=*/std::nullopt, std::move(no_vary_search_hint),
|
||||
/*initiato_render_frame_host=*/nullptr, GetWeakPtr(), page_transition,
|
||||
/*speculation_rules_params=*/std::nullopt, content::Referrer(),
|
||||
no_vary_search_hint,
|
||||
/*initiator_render_frame_host=*/nullptr, GetWeakPtr(), page_transition,
|
||||
should_warm_up_compositor, should_prepare_paint_tree,
|
||||
std::move(url_match_predicate),
|
||||
std::move(prerender_navigation_handle_callback),
|
||||
base::MakeRefCounted<PreloadPipelineInfo>(
|
||||
/*planned_max_preloading_type=*/PreloadingType::kPrerender));
|
||||
base::WrapRefCounted(
|
||||
static_cast<PreloadPipelineInfoImpl*>(preload_pipeline_info.get())));
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
attributes.additional_headers = std::move(additional_headers);
|
||||
#else
|
||||
@@ -11746,7 +11838,7 @@ std::unique_ptr<PrerenderHandle> WebContentsImpl::StartPrerendering(
|
||||
if (frame_tree_node_id) {
|
||||
return std::make_unique<PrerenderHandleImpl>(
|
||||
GetPrerenderHostRegistry()->GetWeakPtr(), frame_tree_node_id,
|
||||
prerendering_url);
|
||||
prerendering_url, std::move(no_vary_search_hint));
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#include "ui/events/blink/blink_features.h"
|
||||
#include "ui/gfx/switches.h"
|
||||
#include "ui/gl/gl_switches.h"
|
||||
#include "ui/native_theme/native_theme_features.h"
|
||||
#include "ui/native_theme/features/native_theme_features.h"
|
||||
#include "ui/native_theme/native_theme_utils.h"
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
@@ -250,7 +250,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
{wf::EnableMediaEngagementBypassAutoplayPolicies,
|
||||
raw_ref(media::kMediaEngagementBypassAutoplayPolicies)},
|
||||
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
|
||||
{wf::EnablePaymentRequest, raw_ref(features::kWebPayments)},
|
||||
{wf::EnablePeriodicBackgroundSync,
|
||||
raw_ref(features::kPeriodicBackgroundSync)},
|
||||
{wf::EnablePushMessagingSubscriptionChange,
|
||||
@@ -346,12 +345,11 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||
#endif
|
||||
{"CompressionDictionaryTransport",
|
||||
raw_ref(network::features::kCompressionDictionaryTransport)},
|
||||
{"ClipboardChangeEvent", raw_ref(features::kClipboardChangeEvent)},
|
||||
{"CompressionDictionaryTransportBackend",
|
||||
raw_ref(network::features::kCompressionDictionaryTransportBackend)},
|
||||
{"CookieDeprecationFacilitatedTesting",
|
||||
raw_ref(features::kCookieDeprecationFacilitatedTesting)},
|
||||
{"Database", raw_ref(blink::features::kWebSQLAccess),
|
||||
kSetOnlyIfOverridden},
|
||||
{"DocumentPolicyIncludeJSCallStacksInCrashReports",
|
||||
raw_ref(blink::features::
|
||||
kDocumentPolicyIncludeJSCallStacksInCrashReports),
|
||||
@@ -450,7 +448,6 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
|
||||
{wrf::EnableAutomationControlled, switches::kEnableAutomation, true},
|
||||
{wrf::EnableAutomationControlled, switches::kHeadless, true},
|
||||
{wrf::EnableAutomationControlled, switches::kRemoteDebuggingPipe, true},
|
||||
{wrf::EnableDatabase, switches::kDisableDatabases, false},
|
||||
{wrf::EnableFileSystem, switches::kDisableFileSystem, false},
|
||||
{wrf::EnableNetInfoDownlinkMax,
|
||||
switches::kEnableNetworkInformationDownlinkMax, true},
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "content/public/browser/tracing_delegate.h"
|
||||
#include "content/public/browser/url_loader_request_interceptor.h"
|
||||
#include "content/public/browser/vpn_service_proxy.h"
|
||||
#include "content/public/browser/web_authentication_delegate.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/web_contents_view_delegate.h"
|
||||
#include "content/public/common/alternative_error_page_override_info.mojom.h"
|
||||
@@ -96,7 +97,6 @@
|
||||
#include "content/public/browser/tts_environment_android.h"
|
||||
#else
|
||||
#include "content/public/browser/authenticator_request_client_delegate.h"
|
||||
#include "content/public/browser/web_authentication_delegate.h"
|
||||
#include "third_party/blink/public/mojom/installedapp/related_application.mojom.h"
|
||||
#endif
|
||||
|
||||
@@ -125,6 +125,11 @@ bool ContentBrowserClient::IsBrowserStartupComplete() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void ContentBrowserClient::OnUiTaskRunnerReady(
|
||||
base::OnceClosure enable_native_ui_task_execution_callback) {
|
||||
std::move(enable_native_ui_task_execution_callback).Run();
|
||||
}
|
||||
|
||||
void ContentBrowserClient::SetBrowserStartupIsCompleteForTesting() {}
|
||||
|
||||
std::unique_ptr<WebContentsViewDelegate>
|
||||
@@ -720,6 +725,16 @@ std::string ContentBrowserClient::GetWebUIHostnameForCodeCacheMetrics(
|
||||
return std::string();
|
||||
}
|
||||
|
||||
bool ContentBrowserClient::IsWebUIBundledCodeCachingEnabled(
|
||||
const GURL& webui_lock_url) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
base::flat_map<GURL, int>
|
||||
ContentBrowserClient::GetWebUIResourceUrlToCodeCacheMap() const {
|
||||
return base::flat_map<GURL, int>();
|
||||
}
|
||||
|
||||
void ContentBrowserClient::AllowCertificateError(
|
||||
WebContents* web_contents,
|
||||
int cert_error,
|
||||
@@ -1202,6 +1217,10 @@ bool ContentBrowserClient::ShouldOverrideUrlLoading(
|
||||
}
|
||||
#endif
|
||||
|
||||
bool ContentBrowserClient::SupportsAvoidUnnecessaryBeforeUnloadCheckSync() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange(
|
||||
const RenderFrameHost& rfh) {
|
||||
return true;
|
||||
@@ -1278,13 +1297,13 @@ bool ContentBrowserClient::IsSecurityLevelAcceptableForWebAuthn(
|
||||
return true;
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
WebAuthenticationDelegate*
|
||||
ContentBrowserClient::GetWebAuthenticationDelegate() {
|
||||
static base::NoDestructor<WebAuthenticationDelegate> delegate;
|
||||
return delegate.get();
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
std::unique_ptr<AuthenticatorRequestClientDelegate>
|
||||
ContentBrowserClient::GetWebAuthenticationRequestDelegate(
|
||||
RenderFrameHost* render_frame_host) {
|
||||
@@ -1770,6 +1789,11 @@ bool ContentBrowserClient::IsBlobUrlPartitioningEnabled(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ContentBrowserClient::ShouldReduceAcceptLanguage(
|
||||
content::BrowserContext* browser_context) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ContentBrowserClient::UseOutermostMainFrameOrEmbedderForSubCaptureTargets()
|
||||
const {
|
||||
return false;
|
||||
@@ -1934,4 +1958,20 @@ bool ContentBrowserClient::ShouldEnableSubframeZoom() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ContentBrowserClient::ShouldPrioritizeForBackForwardCache(
|
||||
BrowserContext* browser_context,
|
||||
const GURL& url) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::unique_ptr<KeepAliveRequestTracker>
|
||||
ContentBrowserClient::MaybeCreateKeepAliveRequestTracker(
|
||||
const network::ResourceRequest& request,
|
||||
std::optional<ukm::SourceId> ukm_source_id,
|
||||
bool is_attribution_request,
|
||||
KeepAliveRequestTracker::IsContextDetachedCallback
|
||||
is_context_detached_callback) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace content
|
||||
|
||||
@@ -280,6 +280,21 @@ void SetFlags(IsolateHolder::ScriptMode mode,
|
||||
}
|
||||
}
|
||||
|
||||
// Sets feature flags that are default to enabled.
|
||||
//
|
||||
// This function must be called *before* SetFeatureFlags is called, so that
|
||||
// default-enabled flags may be overridden and disabled.
|
||||
//
|
||||
// Usually V8 is the source of truth for the default state of feature flags.
|
||||
// However, some features must be shipped from the blink side because they add
|
||||
// new globals, which requires updating web tests that cannot be skipped (to
|
||||
// safeguard against accidentally breaking the web).
|
||||
void SetDefaultEnabledFeatureFlags() {
|
||||
SetV8Flags("--js-float16array");
|
||||
SetV8Flags("--js-explicit-resource-management");
|
||||
SetV8Flags("--js-regexp-escape");
|
||||
}
|
||||
|
||||
// Sets feature controlled V8 flags.
|
||||
void SetFeatureFlags() {
|
||||
// Chromium features prefixed with "V8Flag_" are forwarded to V8 as V8 flags,
|
||||
@@ -374,6 +389,10 @@ void SetFeatureFlags() {
|
||||
SetV8FlagsFormatted("--memory-reducer-gc-count=%i",
|
||||
features::kV8MemoryReducerGCCount.Get());
|
||||
}
|
||||
if (base::FeatureList::IsEnabled(features::kV8PreconfigureOldGen)) {
|
||||
SetV8FlagsFormatted("--initial-old-space-size=%i",
|
||||
features::kV8PreconfigureOldGenSize.Get());
|
||||
}
|
||||
SetV8FlagsIfOverridden(features::kV8IncrementalMarkingStartUserVisible,
|
||||
"--incremental-marking-start-user-visible",
|
||||
"--no-incremental-marking-start-user-visible");
|
||||
@@ -498,25 +517,16 @@ void SetFeatureFlags() {
|
||||
"--no-use-original-message-for-stack-trace");
|
||||
|
||||
// JavaScript language features.
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptIteratorHelpers,
|
||||
"--harmony-iterator-helpers",
|
||||
"--no-harmony-iterator-helpers");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptPromiseWithResolvers,
|
||||
"--js-promise-withresolvers",
|
||||
"--no-js-promise-withresolvers");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptRegExpModifiers,
|
||||
"--js-regexp-modifiers", "--no-js-regexp-modifiers");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptImportAttributes,
|
||||
"--harmony-import-attributes",
|
||||
"--no-harmony-import-attributes");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptSetMethods,
|
||||
"--harmony-set-methods", "--no-harmony-set-methods");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptRegExpDuplicateNamedGroups,
|
||||
"--js-regexp-duplicate-named-groups",
|
||||
"--no-js-duplicate-named-groups");
|
||||
SetV8FlagsIfOverridden(features::kJavaScriptPromiseTry, "--js-promise-try",
|
||||
"--no-js-promise-try");
|
||||
SetV8Flags("--js-float16array");
|
||||
|
||||
// WebAssembly features.
|
||||
|
||||
@@ -525,14 +535,6 @@ void SetFeatureFlags() {
|
||||
SetV8FlagsIfOverridden(features::kWebAssemblyInliningCallIndirect,
|
||||
"--wasm-inlining-call-indirect",
|
||||
"--no-wasm-inlining-call-indirect");
|
||||
SetV8FlagsIfOverridden(features::kWebAssemblyMultipleMemories,
|
||||
"--experimental-wasm-multi-memory",
|
||||
"--no-experimental-wasm-multi-memory");
|
||||
SetV8FlagsIfOverridden(features::kWebAssemblyTurboshaft, "--turboshaft-wasm",
|
||||
"--no-turboshaft-wasm");
|
||||
SetV8FlagsIfOverridden(features::kWebAssemblyTurboshaftInstructionSelection,
|
||||
"--turboshaft-wasm-instruction-selection-staged",
|
||||
"--no-turboshaft-wasm-instruction-selection-staged");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -550,7 +552,7 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode,
|
||||
// instrumentation initialization, see https://crbug.com/v8/11043. --js-flags
|
||||
// and other mandatory flags in `SetFlags` must be ordered after feature flag
|
||||
// overrides.
|
||||
SetV8Flags("--js-explicit-resource-management");
|
||||
SetDefaultEnabledFeatureFlags();
|
||||
if (!disallow_v8_feature_flag_overrides) {
|
||||
SetFeatureFlags();
|
||||
}
|
||||
|
||||
@@ -13,22 +13,25 @@
|
||||
|
||||
namespace media {
|
||||
|
||||
// Video codecs.
|
||||
//
|
||||
// These values are persisted to logs. Entries should not be renumbered and
|
||||
// numeric values should never be reused.
|
||||
//
|
||||
// LINT.IfChange(VideoCodec)
|
||||
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media
|
||||
enum class VideoCodec {
|
||||
// These values are histogrammed over time; do not change their ordinal
|
||||
// values. When deleting a codec replace it with a dummy value; when adding a
|
||||
// codec, do so at the bottom (and update kMaxValue).
|
||||
kUnknown = 0,
|
||||
kH264,
|
||||
kVC1,
|
||||
kMPEG2,
|
||||
kMPEG4,
|
||||
kTheora,
|
||||
kVP8,
|
||||
kVP9,
|
||||
kHEVC,
|
||||
kDolbyVision,
|
||||
kAV1,
|
||||
kH264 = 1,
|
||||
kVC1 = 2,
|
||||
kMPEG2 = 3,
|
||||
kMPEG4 = 4,
|
||||
kTheora = 5,
|
||||
kVP8 = 6,
|
||||
kVP9 = 7,
|
||||
kHEVC = 8,
|
||||
kDolbyVision = 9,
|
||||
kAV1 = 10,
|
||||
// DO NOT ADD RANDOM VIDEO CODECS!
|
||||
//
|
||||
// The only acceptable time to add a new codec is if there is production code
|
||||
@@ -36,13 +39,15 @@ enum class VideoCodec {
|
||||
|
||||
kMaxValue = kAV1, // Must equal the last "real" codec above.
|
||||
};
|
||||
// LINT.ThenChange(//tools/metrics/histograms/enums.xml:VideoCodec)
|
||||
|
||||
// Video codec profiles. Keep in sync with mojo::VideoCodecProfile (see
|
||||
// media/mojo/mojom/media_types.mojom), gpu::VideoCodecProfile (see
|
||||
// gpu/config/gpu_info.h), and PP_VideoDecoder_Profile (translation is performed
|
||||
// in content/renderer/pepper/ppb_video_decoder_impl.cc).
|
||||
// NOTE: These values are histogrammed over time in UMA so the values must never
|
||||
// ever change (add new values to tools/metrics/histograms/histograms.xml)
|
||||
// Video codec profiles. Mirrored by gpu::VideoCodecProfile (see
|
||||
// gpu/config/gpu_info.h).
|
||||
//
|
||||
// These values are persisted to logs. Entries should not be renumbered and
|
||||
// numeric values should never be reused.
|
||||
//
|
||||
// LINT.IfChange(VideoCodecProfile)
|
||||
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media
|
||||
enum VideoCodecProfile {
|
||||
// Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
|
||||
@@ -120,6 +125,9 @@ enum VideoCodecProfile {
|
||||
VVCPROFILE_MAX = VVCPROFILE_MAIN16_444_STILL_PICTURE,
|
||||
VIDEO_CODEC_PROFILE_MAX = VVCPROFILE_MAIN16_444_STILL_PICTURE,
|
||||
};
|
||||
// clang-format off
|
||||
// LINT.ThenChange(//gpu/config/gpu_info.h:VideoCodecProfile, //tools/metrics/histograms/enums.xml:VideoCodecProfile)
|
||||
// clang-format on
|
||||
|
||||
using VideoCodecLevel = uint32_t;
|
||||
constexpr VideoCodecLevel kNoVideoCodecLevel = 0;
|
||||
|
||||
@@ -394,12 +394,8 @@ base::RepeatingCallback<bool(const url::Origin&)> BuildOriginFilter(
|
||||
// If |filter| is null, creates an always-true predicate.
|
||||
base::RepeatingCallback<bool(const GURL&)> BuildUrlFilter(
|
||||
mojom::ClearDataFilterPtr filter) {
|
||||
return filter ? base::BindRepeating(
|
||||
&DoesUrlMatchFilter, filter->type,
|
||||
std::set<url::Origin>(filter->origins.begin(),
|
||||
filter->origins.end()),
|
||||
std::set<std::string>(filter->domains.begin(),
|
||||
filter->domains.end()))
|
||||
return filter ? BindDoesUrlMatchFilter(filter->type, filter->origins,
|
||||
filter->domains)
|
||||
: base::NullCallback();
|
||||
}
|
||||
|
||||
@@ -1185,6 +1181,14 @@ void NetworkContext::SetBlockTrustTokens(bool block) {
|
||||
block_trust_tokens_ = block;
|
||||
}
|
||||
|
||||
void NetworkContext::SetTrackingProtectionContentSetting(
|
||||
const ContentSettingsForOneType& settings) {
|
||||
if (!ip_protection_core_) {
|
||||
return;
|
||||
}
|
||||
ip_protection_core_->SetTrackingProtectionContentSetting(settings);
|
||||
}
|
||||
|
||||
void NetworkContext::OnProxyLookupComplete(
|
||||
ProxyLookupRequest* proxy_lookup_request) {
|
||||
auto it = proxy_lookup_requests_.find(proxy_lookup_request);
|
||||
@@ -2030,7 +2034,8 @@ void NetworkContext::CreateHostResolver(
|
||||
private_internal_resolver =
|
||||
network_service_->host_resolver_factory()->CreateStandaloneResolver(
|
||||
url_request_context_->net_log(), std::move(options),
|
||||
"" /* host_mapping_rules */, false /* enable_caching */);
|
||||
/* host_mapping_rules */ "", /* enable_caching */ false,
|
||||
/* enable_stale */ false);
|
||||
private_internal_resolver->SetRequestContext(url_request_context_);
|
||||
internal_resolver = private_internal_resolver.get();
|
||||
}
|
||||
@@ -2652,7 +2657,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
|
||||
std::make_unique<ip_protection::IpProtectionCoreImplMojo>(
|
||||
std::move(params_->ip_protection_control), core_host_remote,
|
||||
mdl_manager, prt_registry, params_->enable_ip_protection,
|
||||
params_->ip_protection_incognito);
|
||||
params_->ip_protection_incognito,
|
||||
params_->ip_protection_data_directory);
|
||||
builder.set_proxy_delegate(
|
||||
std::make_unique<ip_protection::IpProtectionProxyDelegate>(
|
||||
ip_protection_core_impl.get()));
|
||||
@@ -2984,6 +2990,10 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
|
||||
}
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
builder.enable_stale_dns_resolver(params_->stale_dns_enabled);
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
if (on_url_request_context_builder_configured) {
|
||||
std::move(on_url_request_context_builder_configured).Run(&builder);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Vendored
+203
-75
@@ -4422,41 +4422,41 @@ enum WebFeature {
|
||||
kOBSOLETE_V8AI_TextModelInfo_Method = 5044,
|
||||
kEventTimingSimulatedClickWithNoKeyboardInteraction = 5045,
|
||||
kViewTransitionGroupNesting = 5046,
|
||||
kV8LanguageDetector_Detect_Method = 5047,
|
||||
kV8Translation_CanDetect_Method = 5048,
|
||||
kV8Translation_CreateDetector_Method = 5049,
|
||||
kV8AI_Summarizer_AttributeGetter = 5050,
|
||||
kV8AISummarizer_Summarize_Method = 5051,
|
||||
kV8AISummarizer_SummarizeStreaming_Method = 5052,
|
||||
kV8AISummarizer_Destroy_Method = 5053,
|
||||
kV8AISummarizerFactory_Capabilities_Method = 5054,
|
||||
kV8AISummarizerFactory_Create_Method = 5055,
|
||||
kOBSOLETE_V8LanguageDetector_Detect_Method = 5047,
|
||||
kOBSOLETE_V8Translation_CanDetect_Method = 5048,
|
||||
kOBSOLETE_V8Translation_CreateDetector_Method = 5049,
|
||||
kOBSOLETE_V8AI_Summarizer_AttributeGetter = 5050,
|
||||
kOBSOLETE_V8AISummarizer_Summarize_Method = 5051,
|
||||
kOBSOLETE_V8AISummarizer_SummarizeStreaming_Method = 5052,
|
||||
kOBSOLETE_V8AISummarizer_Destroy_Method = 5053,
|
||||
kOBSOLETE_V8AISummarizerFactory_Capabilities_Method = 5054,
|
||||
kOBSOLETE_V8AISummarizerFactory_Create_Method = 5055,
|
||||
kSharedStorageWriteFromBidderGenerateBid = 5056,
|
||||
kSharedStorageWriteFromBidderReportWin = 5057,
|
||||
kSharedStorageWriteFromSellerScoreAd = 5058,
|
||||
kSharedStorageWriteFromSellerReportResult = 5059,
|
||||
kOBSOLETE_CSSInsetAreaProperty = 5060,
|
||||
kStructuredCloneMethod = 5061,
|
||||
kV8AI_Writer_AttributeGetter = 5062,
|
||||
kV8AIWriterFactory_Create_Method = 5063,
|
||||
kV8AIWriter_Write_Method = 5064,
|
||||
kV8AIWriter_WriteStreaming_Method = 5065,
|
||||
kV8AIWriter_Destroy_Method = 5066,
|
||||
kV8AI_Rewriter_AttributeGetter = 5067,
|
||||
kV8AIRewriterFactory_Create_Method = 5068,
|
||||
kV8AIRewriter_Rewrite_Method = 5069,
|
||||
kV8AIRewriter_RewriteStreaming_Method = 5070,
|
||||
kV8AIRewriter_Destroy_Method = 5071,
|
||||
kOBSOLETE_V8AI_Writer_AttributeGetter = 5062,
|
||||
kOBSOLETE_V8AIWriterFactory_Create_Method = 5063,
|
||||
kOBSOLETE_V8AIWriter_Write_Method = 5064,
|
||||
kOBSOLETE_V8AIWriter_WriteStreaming_Method = 5065,
|
||||
kOBSOLETE_V8AIWriter_Destroy_Method = 5066,
|
||||
kOBSOLETE_V8AI_Rewriter_AttributeGetter = 5067,
|
||||
kOBSOLETE_V8AIRewriterFactory_Create_Method = 5068,
|
||||
kOBSOLETE_V8AIRewriter_Rewrite_Method = 5069,
|
||||
kOBSOLETE_V8AIRewriter_RewriteStreaming_Method = 5070,
|
||||
kOBSOLETE_V8AIRewriter_Destroy_Method = 5071,
|
||||
// The items above roughly this point are available in the M129 branch.
|
||||
|
||||
kFencedFrameCanLoadOpaqueURL = 5072,
|
||||
kV8Performance_Memory_AttributeGetter_NotLockedToSite = 5073,
|
||||
kPartitionedPopin_OpenAttempt = 5074,
|
||||
kPartitionedPopin_Opened = 5075,
|
||||
kV8AISummarizer_SharedContext_AttributeGetter = 5076,
|
||||
kV8AISummarizer_Type_AttributeGetter = 5077,
|
||||
kV8AISummarizer_Format_AttributeGetter = 5078,
|
||||
kV8AISummarizer_Length_AttributeGetter = 5079,
|
||||
kOBSOLETE_V8AISummarizer_SharedContext_AttributeGetter = 5076,
|
||||
kOBSOLETE_V8AISummarizer_Type_AttributeGetter = 5077,
|
||||
kOBSOLETE_V8AISummarizer_Format_AttributeGetter = 5078,
|
||||
kOBSOLETE_V8AISummarizer_Length_AttributeGetter = 5079,
|
||||
kOBSOLETE_V8AIAssistantCapabilities_Available_AttributeGetter = 5080,
|
||||
kOBSOLETE_V8AIAssistantCapabilities_DefaultTopK_AttributeGetter = 5081,
|
||||
kOBSOLETE_V8AIAssistantCapabilities_MaxTopK_AttributeGetter = 5082,
|
||||
@@ -4489,8 +4489,8 @@ enum WebFeature {
|
||||
kOBSOLETE_V8AIAssistant_CountPromptTokens_Method = 5107,
|
||||
kHTMLSearchElement = 5108,
|
||||
kHTMLUnsafeMethods = 5109,
|
||||
kV8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter = 5110,
|
||||
kMaxInterStageShaderComponentsRequiredLimit = 5111,
|
||||
kOBSOLETE_V8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter = 5110,
|
||||
kOBSOLETE_MaxInterStageShaderComponentsRequiredLimit = 5111,
|
||||
kShowPickerSelect = 5112,
|
||||
kAudioContextPlayoutStats = 5113,
|
||||
kThirdPartyCookieBlocked = 5114,
|
||||
@@ -4520,23 +4520,23 @@ enum WebFeature {
|
||||
kCssValueWritingModeVerticalLr = 5136,
|
||||
kCssValueWritingModeSidewaysRl = 5137,
|
||||
kCssValueWritingModeSidewaysLr = 5138,
|
||||
kV8AILanguageModel_TopK_AttributeGetter = 5139,
|
||||
kV8AILanguageModel_Temperature_AttributeGetter = 5140,
|
||||
kV8AILanguageModel_Clone_Method = 5141,
|
||||
kV8AILanguageModel_Destroy_Method = 5142,
|
||||
kV8AILanguageModel_Prompt_Method = 5143,
|
||||
kV8AILanguageModel_PromptStreaming_Method = 5144,
|
||||
kV8AILanguageModel_CountPromptTokens_Method = 5145,
|
||||
kV8AILanguageModelCapabilities_LanguageAvailable_Method = 5146,
|
||||
kV8AILanguageModelCapabilities_Available_AttributeGetter = 5147,
|
||||
kV8AILanguageModelCapabilities_DefaultTopK_AttributeGetter = 5148,
|
||||
kV8AILanguageModelCapabilities_MaxTopK_AttributeGetter = 5149,
|
||||
kV8AILanguageModelCapabilities_DefaultTemperature_AttributeGetter = 5150,
|
||||
kV8AILanguageModelFactory_Capabilities_Method = 5151,
|
||||
kV8AILanguageModelFactory_Create_Method = 5152,
|
||||
kV8AILanguageModel_MaxTokens_AttributeGetter = 5153,
|
||||
kV8AILanguageModel_TokensSoFar_AttributeGetter = 5154,
|
||||
kV8AILanguageModel_TokensLeft_AttributeGetter = 5155,
|
||||
kOBSOLETE_V8AILanguageModel_TopK_AttributeGetter = 5139,
|
||||
kOBSOLETE_V8AILanguageModel_Temperature_AttributeGetter = 5140,
|
||||
kOBSOLETE_V8AILanguageModel_Clone_Method = 5141,
|
||||
kOBSOLETE_V8AILanguageModel_Destroy_Method = 5142,
|
||||
kOBSOLETE_V8AILanguageModel_Prompt_Method = 5143,
|
||||
kOBSOLETE_V8AILanguageModel_PromptStreaming_Method = 5144,
|
||||
kOBSOLETE_V8AILanguageModel_CountPromptTokens_Method = 5145,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_LanguageAvailable_Method = 5146,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_Available_AttributeGetter = 5147,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_DefaultTopK_AttributeGetter = 5148,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_MaxTopK_AttributeGetter = 5149,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_DefaultTemperature_AttributeGetter = 5150,
|
||||
kOBSOLETE_V8AILanguageModelFactory_Capabilities_Method = 5151,
|
||||
kOBSOLETE_V8AILanguageModelFactory_Create_Method = 5152,
|
||||
kOBSOLETE_V8AILanguageModel_MaxTokens_AttributeGetter = 5153,
|
||||
kOBSOLETE_V8AILanguageModel_TokensSoFar_AttributeGetter = 5154,
|
||||
kOBSOLETE_V8AILanguageModel_TokensLeft_AttributeGetter = 5155,
|
||||
kSvgContextFillOrStroke = 5156,
|
||||
kARIAActionsAttribute = 5157,
|
||||
kOBSOLETE_ResolveToConfigValueCoercedToTrue = 5158,
|
||||
@@ -4625,40 +4625,40 @@ enum WebFeature {
|
||||
kCanvasTextDirectionSetInherit = 5239,
|
||||
kTopicsAPIImg = 5240,
|
||||
kMediaSessionEnterPictureInPicture = 5241,
|
||||
kV8AILanguageDetector_Detect_Method = 5242,
|
||||
kOBSOLETE_V8AILanguageDetector_Detect_Method = 5242,
|
||||
kCharsetAutoDetection = 5243,
|
||||
kCharsetAutoDetectionISO2022JP = 5244,
|
||||
kRequestOTRMainFrame = 5245,
|
||||
kMixedContentOnLocalhost = 5246,
|
||||
kMixedFrameEmbeddedByLocalhost = 5247,
|
||||
kV8AILanguageModelCapabilities_MaxTemperature_AttributeGetter = 5248,
|
||||
kOBSOLETE_V8AILanguageModelCapabilities_MaxTemperature_AttributeGetter = 5248,
|
||||
kAboutSrcdocToBeControlledByServiceWorker = 5249,
|
||||
kDisplayNoneComputedInContentVisibilityAutoLockedSubtree = 5250,
|
||||
kV8AITranslator_SourceLanguage_AttributeGetter = 5251,
|
||||
kV8AITranslator_TargetLanguage_AttributeGetter = 5252,
|
||||
kV8AITranslator_Destroy_Method = 5253,
|
||||
kV8AITranslator_Translate_Method = 5254,
|
||||
kV8AITranslator_TranslateStreaming_Method = 5255,
|
||||
kV8AITranslatorFactory_Create_Method = 5256,
|
||||
kV8AILanguageDetectorFactory_Create_Method = 5257,
|
||||
kV8AILanguageDetector_Destroy_Method = 5258,
|
||||
kOBSOLETE_V8AITranslator_SourceLanguage_AttributeGetter = 5251,
|
||||
kOBSOLETE_V8AITranslator_TargetLanguage_AttributeGetter = 5252,
|
||||
kOBSOLETE_V8AITranslator_Destroy_Method = 5253,
|
||||
kOBSOLETE_V8AITranslator_Translate_Method = 5254,
|
||||
kOBSOLETE_V8AITranslator_TranslateStreaming_Method = 5255,
|
||||
kOBSOLETE_V8AITranslatorFactory_Create_Method = 5256,
|
||||
kOBSOLETE_V8AILanguageDetectorFactory_Create_Method = 5257,
|
||||
kOBSOLETE_V8AILanguageDetector_Destroy_Method = 5258,
|
||||
kFetchLaterInvokeStatePending = 5259,
|
||||
kFetchLaterInvokeStateSent = 5260,
|
||||
kCSPWithUnsafeHashes = 5261,
|
||||
kV8AIRewriter_SharedContext_AttributeGetter = 5262,
|
||||
kV8AIRewriter_Tone_AttributeGetter = 5263,
|
||||
kV8AIRewriter_Format_AttributeGetter = 5264,
|
||||
kV8AIRewriter_Length_AttributeGetter = 5265,
|
||||
kV8AIRewriter_ExpectedInputLanguages_AttributeGetter = 5266,
|
||||
kV8AIRewriter_ExpectedContextLanguages_AttributeGetter = 5267,
|
||||
kV8AIRewriter_OutputLanguage_AttributeGetter = 5268,
|
||||
kV8AIWriter_SharedContext_AttributeGetter = 5269,
|
||||
kV8AIWriter_Tone_AttributeGetter = 5270,
|
||||
kV8AIWriter_Format_AttributeGetter = 5271,
|
||||
kV8AIWriter_Length_AttributeGetter = 5272,
|
||||
kV8AIWriter_ExpectedInputLanguages_AttributeGetter = 5273,
|
||||
kV8AIWriter_ExpectedContextLanguages_AttributeGetter = 5274,
|
||||
kV8AIWriter_OutputLanguage_AttributeGetter = 5275,
|
||||
kOBSOLETE_V8AIRewriter_SharedContext_AttributeGetter = 5262,
|
||||
kOBSOLETE_V8AIRewriter_Tone_AttributeGetter = 5263,
|
||||
kOBSOLETE_V8AIRewriter_Format_AttributeGetter = 5264,
|
||||
kOBSOLETE_V8AIRewriter_Length_AttributeGetter = 5265,
|
||||
kOBSOLETE_V8AIRewriter_ExpectedInputLanguages_AttributeGetter = 5266,
|
||||
kOBSOLETE_V8AIRewriter_ExpectedContextLanguages_AttributeGetter = 5267,
|
||||
kOBSOLETE_V8AIRewriter_OutputLanguage_AttributeGetter = 5268,
|
||||
kOBSOLETE_V8AIWriter_SharedContext_AttributeGetter = 5269,
|
||||
kOBSOLETE_V8AIWriter_Tone_AttributeGetter = 5270,
|
||||
kOBSOLETE_V8AIWriter_Format_AttributeGetter = 5271,
|
||||
kOBSOLETE_V8AIWriter_Length_AttributeGetter = 5272,
|
||||
kOBSOLETE_V8AIWriter_ExpectedInputLanguages_AttributeGetter = 5273,
|
||||
kOBSOLETE_V8AIWriter_ExpectedContextLanguages_AttributeGetter = 5274,
|
||||
kOBSOLETE_V8AIWriter_OutputLanguage_AttributeGetter = 5275,
|
||||
kGridAutoFlowColumnDense = 5276,
|
||||
kGridAutoFlowRowDense = 5277,
|
||||
kSchedulerPostTaskAbortBeforeRunning = 5278,
|
||||
@@ -4685,12 +4685,12 @@ enum WebFeature {
|
||||
kHTMLImageElementNaturalSizeDiffersForSvgImage = 5299,
|
||||
kWindowProxyIndexedGetter = 5300,
|
||||
kWindowProxyNamedGetter = 5301,
|
||||
kV8AILanguageModelFactory_Availability_Method = 5302,
|
||||
kV8AILanguageModelFactory_Params_Method = 5303,
|
||||
kV8AISummarizerFactory_Availability_Method = 5304,
|
||||
kV8AISummarizer_ExpectedInputLanguages_AttributeGetter = 5305,
|
||||
kV8AISummarizer_ExpectedContextLanguages_AttributeGetter = 5306,
|
||||
kV8AISummarizer_OutputLanguage_AttributeGetter = 5307,
|
||||
kOBSOLETE_V8AILanguageModelFactory_Availability_Method = 5302,
|
||||
kOBSOLETE_V8AILanguageModelFactory_Params_Method = 5303,
|
||||
kOBSOLETE_V8AISummarizerFactory_Availability_Method = 5304,
|
||||
kOBSOLETE_V8AISummarizer_ExpectedInputLanguages_AttributeGetter = 5305,
|
||||
kOBSOLETE_V8AISummarizer_ExpectedContextLanguages_AttributeGetter = 5306,
|
||||
kOBSOLETE_V8AISummarizer_OutputLanguage_AttributeGetter = 5307,
|
||||
kNestedScrollMarkers = 5308,
|
||||
kV8GeolocationCoordinates_Latitude_AttributeGetter = 5309,
|
||||
kV8GeolocationCoordinates_Longitude_AttributeGetter = 5310,
|
||||
@@ -4700,7 +4700,7 @@ enum WebFeature {
|
||||
kV8GeolocationCoordinates_Heading_AttributeGetter = 5314,
|
||||
kV8GeolocationCoordinates_Speed_AttributeGetter = 5315,
|
||||
kCSSEnvironmentVariable_SafeAreaMaxInsetBottom = 5316,
|
||||
kV8AILanguageModel_ExpectedInputLanguages_AttributeGetter = 5317,
|
||||
kOBSOLETE_V8AILanguageModel_ExpectedInputLanguages_AttributeGetter = 5317,
|
||||
kV8AnimationTrigger_Constructor= 5318,
|
||||
kPrivateNetworkAccessInsecureResourceNotKnownPrivate = 5319,
|
||||
kGeolocationGetCurrentPositionHighAccuracy = 5320,
|
||||
@@ -4708,18 +4708,146 @@ enum WebFeature {
|
||||
kColumnPseudoElement = 5322,
|
||||
kScrollButtonPseudoElement = 5323,
|
||||
kScrollMarkerPseudoElement = 5324,
|
||||
kV8AITranslatorFactory_Availability_Method = 5325,
|
||||
kOBSOLETE_V8AITranslatorFactory_Availability_Method = 5325,
|
||||
kGeolocationWouldSucceedWhenAdScriptInStack = 5326,
|
||||
kAdScriptInStackOnWatchGeoLocation = 5327,
|
||||
kDeviceBoundSessionRegistered = 5328,
|
||||
kV8AILanguageDetectorFactory_Availability_Method = 5329,
|
||||
kOBSOLETE_V8AILanguageDetectorFactory_Availability_Method = 5329,
|
||||
kCrossPartitionSameOriginBlobURLFetch = 5330,
|
||||
kWebAppManifestUpdate = 5331,
|
||||
kCSSEnvironmentVariable_PreferredTextScale = 5332,
|
||||
kButtonTypeAttrInvalidWithCommandOrCommandfor = 5333,
|
||||
kCSSVarFallbackCycle = 5334,
|
||||
kCSSAttrFallbackCycle = 5335,
|
||||
kCSSRainbowGradientPattern = 5336,
|
||||
kWebAppManifestStartUrl = 5337,
|
||||
kWebAppManifestDisplay = 5338,
|
||||
kWebAppManifestIcons = 5339,
|
||||
kWebAppManifestScreenshots = 5340,
|
||||
kWebAppManifestScope = 5341,
|
||||
kWebAppManifestLockScreen = 5342,
|
||||
kWebAppManifestNoteTaking = 5343,
|
||||
kWebAppManifestPermissionsPolicy = 5344,
|
||||
kWebAppManifestPrefer_Related_Applications = 5345,
|
||||
kWebAppManifestThemeColor = 5346,
|
||||
kWebAppManifestBackgroundColor = 5347,
|
||||
kWebAppManifestTranslations = 5348,
|
||||
kWebAppManifestTabStrip = 5349,
|
||||
kWebAppManifestVersion = 5350,
|
||||
kWebAppManifestRelated_Applications = 5351,
|
||||
kInstalledManifestApplied = 5352,
|
||||
kSRIHashAssertion = 5353,
|
||||
kSRIPublicKeyAssertion = 5354,
|
||||
kViewTransitionChangeRootElement = 5355,
|
||||
kCSPBlockedWorkerCreation = 5356,
|
||||
kV8Navigator_ClearOriginJoinedAdInterestGroups_Method = 5357,
|
||||
kWebAppManifestDisplayMinimalUI = 5358,
|
||||
kWebAppManifestDisplayBrowser = 5359,
|
||||
kWebAppManifestDisplayFullscreen = 5360,
|
||||
kWebAppManifestDisplayStandalone = 5361,
|
||||
kBlockingAttributeFullFrameRateToken = 5362,
|
||||
kCrossOriginOwnerInterestGroupSubframeCheckFailed = 5363,
|
||||
kPreferredAudioOutputDevices = 5364,
|
||||
kSharedStorageAPI_SelectURL_Method_CalledWithOneURL = 5365,
|
||||
kOBSOLETE_V8AIRewriter_MeasureInputUsage_Method = 5366,
|
||||
kOBSOLETE_V8AIRewriter_InputQuota_AttributeGetter = 5367,
|
||||
kOBSOLETE_V8AISummarizer_MeasureInputUsage_Method = 5368,
|
||||
kOBSOLETE_V8AISummarizer_InputQuota_AttributeGetter = 5369,
|
||||
kOBSOLETE_V8AIWriter_MeasureInputUsage_Method = 5370,
|
||||
kOBSOLETE_V8AIWriter_InputQuota_AttributeGetter = 5371,
|
||||
kSpeculationRulesTargetHintBlank = 5372,
|
||||
kInterestTarget = 5373,
|
||||
kTextAutoSizingDisabledOnFlexbox = 5374,
|
||||
kAriaLabeledByAlternativeSpelling = 5375,
|
||||
kCanvasTextNg = 5376,
|
||||
kDOMWindowOpenPopup = 5377,
|
||||
kFencedFrameDisableUntrustedNetwork = 5378,
|
||||
kFencedFrameNotifyEvent = 5379,
|
||||
kSharedStorageGetInFencedFrame = 5380,
|
||||
kOBSOLETE_Translator_MeasureInputUsage_Method = 5381,
|
||||
kOBSOLETE_Translator_InputQuota_AttributeGetter = 5382,
|
||||
kAriaNotify = 5383,
|
||||
kLanguageDetector_MeasureInputUsage = 5384,
|
||||
kLanguageDetector_InputQuota = 5385,
|
||||
kOBSOLETE_V8AILanguageModel_InputUsage_AttributeGetter = 5386,
|
||||
kOBSOLETE_V8AILanguageModel_InputQuota_AttributeGetter = 5387,
|
||||
kOBSOLETE_V8AILanguageModel_MeasureInputUsage_Method = 5388,
|
||||
kCredentialsGetImmediateMediationWithWebAuthnOnly = 5389,
|
||||
kCredentialsGetImmediateMediationWithWebAuthnAndPasswords = 5390,
|
||||
kNonNoneTouchActionWouldLoseEditableHandwritingRestoredByScroller = 5391,
|
||||
kTranslator_Create = 5392,
|
||||
kTranslator_Availability = 5393,
|
||||
kTranslator_SourceLanguage = 5394,
|
||||
kTranslator_TargetLanguage = 5395,
|
||||
kTranslator_Destroy = 5396,
|
||||
kTranslator_Translate = 5397,
|
||||
kTranslator_TranslateStreaming = 5398,
|
||||
kTranslator_MeasureInputUsage = 5399,
|
||||
kTranslator_InputQuota = 5400,
|
||||
kLanguageDetector_Create = 5401,
|
||||
kLanguageDetector_Availability = 5402,
|
||||
kLanguageDetector_Detect = 5403,
|
||||
kLanguageDetector_Destroy = 5404,
|
||||
kLanguageModel_Create = 5405,
|
||||
kLanguageModel_Availability = 5406,
|
||||
kLanguageModel_Prompt = 5407,
|
||||
kLanguageModel_PromptStreaming = 5408,
|
||||
kLanguageModel_Destroy = 5409,
|
||||
kLanguageModel_Clone = 5410,
|
||||
kLanguageModel_MeasureInputUsage = 5411,
|
||||
kLanguageModel_InputUsage = 5412,
|
||||
kLanguageModel_InputQuota = 5413,
|
||||
kLanguageModel_Params = 5414,
|
||||
kLanguageModel_Temperature = 5415,
|
||||
kLanguageModel_TopK = 5416,
|
||||
kWriter_Create = 5417,
|
||||
kWriter_Availability = 5418,
|
||||
kWriter_Write = 5419,
|
||||
kWriter_WriteStreaming = 5420,
|
||||
kWriter_Destroy = 5421,
|
||||
kWriter_MeasureInputUsage = 5422,
|
||||
kWriter_ExpectedContextLanguages = 5423,
|
||||
kWriter_ExpectedInputLanguages = 5424,
|
||||
kWriter_Format = 5425,
|
||||
kWriter_InputQuota = 5426,
|
||||
kWriter_Length = 5427,
|
||||
kWriter_OutputLanguage = 5428,
|
||||
kWriter_SharedContext = 5429,
|
||||
kWriter_Tone = 5430,
|
||||
kRewriter_Create = 5431,
|
||||
kRewriter_Availability = 5432,
|
||||
kRewriter_Rewrite = 5433,
|
||||
kRewriter_RewriteStreaming = 5434,
|
||||
kRewriter_Destroy = 5435,
|
||||
kRewriter_MeasureInputUsage = 5436,
|
||||
kRewriter_ExpectedContextLanguages = 5437,
|
||||
kRewriter_ExpectedInputLanguages = 5438,
|
||||
kRewriter_Format = 5439,
|
||||
kRewriter_InputQuota = 5440,
|
||||
kRewriter_Length = 5441,
|
||||
kRewriter_OutputLanguage = 5442,
|
||||
kRewriter_SharedContext = 5443,
|
||||
kRewriter_Tone = 5444,
|
||||
kSummarizer_Create = 5445,
|
||||
kSummarizer_Availability = 5446,
|
||||
kSummarizer_Summarize = 5447,
|
||||
kSummarizer_SummarizeStreaming = 5448,
|
||||
kSummarizer_Destroy = 5449,
|
||||
kSummarizer_MeasureInputUsage = 5450,
|
||||
kSummarizer_ExpectedContextLanguages = 5451,
|
||||
kSummarizer_ExpectedInputLanguages = 5452,
|
||||
kSummarizer_Format = 5453,
|
||||
kSummarizer_InputQuota = 5454,
|
||||
kSummarizer_Length = 5455,
|
||||
kSummarizer_OutputLanguage = 5456,
|
||||
kSummarizer_SharedContext = 5457,
|
||||
kSummarizer_Type = 5458,
|
||||
kCrossOriginSameSiteCookieAccessViaStorageAccessAPI = 5459,
|
||||
kV8GPUAdapter_IsFallbackAdapter_AttributeGetter = 5460,
|
||||
kLanguageDetector_ExpectedInputLanguages = 5461,
|
||||
kServiceWorkerPushEventListener = 5462,
|
||||
kServiceWorkerPushSubscriptionChangeEventListener = 5463,
|
||||
kSpeculationRulesTags = 5479,
|
||||
|
||||
// Add new features immediately above this line. Don't change assigned
|
||||
// numbers of any item, and don't reuse removed slots. Also don't add extra
|
||||
|
||||
Vendored
+9
@@ -9,6 +9,7 @@ import "third_party/blink/public/mojom/css/preferred_contrast.mojom";
|
||||
import "third_party/blink/public/mojom/v8_cache_options.mojom";
|
||||
import "url/mojom/url.mojom";
|
||||
import "mojo/public/mojom/base/string16.mojom";
|
||||
import "skia/public/mojom/skcolor.mojom";
|
||||
|
||||
enum PointerType {
|
||||
kPointerNone = 1, // 1 << 0
|
||||
@@ -423,6 +424,10 @@ struct WebPreferences {
|
||||
// Forced colors are disabled for sites in the `kPageColorsBlockList` pref.
|
||||
bool is_forced_colors_disabled;
|
||||
|
||||
// Holds the browser's theme color to be used to render root non-overlay
|
||||
// Fluent scrollbars. Stored from an SkColor as ARGB.
|
||||
skia.mojom.SkColor? root_scrollbar_theme_color;
|
||||
|
||||
// The preferred color scheme set by the user's browser settings. The variable
|
||||
// follows the browser's color mode setting unless a browser theme (custom or
|
||||
// not) is defined, in which case the color scheme is set to the default
|
||||
@@ -492,4 +497,8 @@ struct WebPreferences {
|
||||
// browser controls shown ratio. This value is used in web settings only
|
||||
// when feature DynamicSafeAreaInsets is enabled.
|
||||
bool dynamic_safe_area_insets_enabled = false;
|
||||
|
||||
// Whether PaymentRequest is enabled. Controlled by WebView settings on
|
||||
// WebView and by `kWebPayments` feature flag everywhere.
|
||||
bool payment_request_enabled = false;
|
||||
};
|
||||
|
||||
Vendored
+2
-2
@@ -2,7 +2,7 @@ enum AriaNotifyInterrupt { "none", "all", "pending" };
|
||||
enum AriaNotifyPriority { "normal", "high" };
|
||||
|
||||
dictionary AriaNotificationOptions {
|
||||
AriaNotifyInterrupt interrupt = "none";
|
||||
AriaNotifyPriority priority = "normal";
|
||||
DOMString notificationId = "";
|
||||
[RuntimeEnabled=AriaNotifyV2] AriaNotifyInterrupt interrupt = "none";
|
||||
[RuntimeEnabled=AriaNotifyV2] DOMString type = "";
|
||||
};
|
||||
+1
@@ -64,4 +64,5 @@ enum ReplaceState { "active", "removed", "persisted" };
|
||||
[Measure] attribute EventHandler onremove;
|
||||
[CallWith=ScriptState] readonly attribute Promise<Animation> finished;
|
||||
[CallWith=ScriptState] readonly attribute Promise<Animation> ready;
|
||||
[RuntimeEnabled=AnimationTrigger] attribute AnimationTrigger? trigger;
|
||||
};
|
||||
|
||||
+6
-6
@@ -11,10 +11,10 @@ enum AnimationTriggerType { "once", "repeat", "alternate", "state" };
|
||||
RuntimeEnabled=AnimationTrigger
|
||||
] interface AnimationTrigger {
|
||||
[CallWith=ExecutionContext, Measure, RaisesException] constructor(optional AnimationTriggerOptions options = {});
|
||||
attribute AnimationTimeline? timeline;
|
||||
attribute AnimationTriggerType type;
|
||||
[CallWith=ExecutionContext, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeStart;
|
||||
[CallWith=ExecutionContext, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeEnd;
|
||||
[CallWith=ExecutionContext, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) exitRangeStart;
|
||||
[CallWith=ExecutionContext, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) exitRangeEnd;
|
||||
readonly attribute AnimationTimeline? timeline;
|
||||
readonly attribute AnimationTriggerType type;
|
||||
[CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) rangeStart;
|
||||
[CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) rangeEnd;
|
||||
[CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) exitRangeStart;
|
||||
[CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) exitRangeEnd;
|
||||
};
|
||||
|
||||
+1
-2
@@ -5,8 +5,7 @@
|
||||
// https://drafts.csswg.org/cssom/#the-cssmarginrule-interface
|
||||
|
||||
[
|
||||
Exposed=Window,
|
||||
RuntimeEnabled=PageMarginBoxes
|
||||
Exposed=Window
|
||||
] interface CSSMarginRule : CSSRule {
|
||||
readonly attribute DOMString name;
|
||||
[SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
const unsigned short MEDIA_RULE = 4;
|
||||
const unsigned short FONT_FACE_RULE = 5;
|
||||
const unsigned short PAGE_RULE = 6;
|
||||
[RuntimeEnabled=PageMarginBoxes] const unsigned short MARGIN_RULE = 9;
|
||||
const unsigned short MARGIN_RULE = 9;
|
||||
const unsigned short NAMESPACE_RULE = 10;
|
||||
readonly attribute unsigned short type;
|
||||
attribute DOMString cssText;
|
||||
|
||||
+87
-100
@@ -23,103 +23,86 @@ using css_parsing_utils::ConsumeAnyValue;
|
||||
using css_parsing_utils::ConsumeIfDelimiter;
|
||||
using css_parsing_utils::ConsumeIfIdent;
|
||||
|
||||
namespace {
|
||||
|
||||
class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet {
|
||||
STACK_ALLOCATED();
|
||||
|
||||
public:
|
||||
MediaQueryFeatureSet() = default;
|
||||
|
||||
bool IsAllowed(const AtomicString& feature) const override {
|
||||
if (feature == media_feature_names::kInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kMinInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kMaxInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kMinBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kMaxBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kStuckMediaFeature ||
|
||||
feature == media_feature_names::kSnappedMediaFeature ||
|
||||
feature == media_feature_names::kScrollableMediaFeature ||
|
||||
CSSVariableParser::IsValidVariableName(feature)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool IsAllowedWithoutValue(
|
||||
const AtomicString& feature,
|
||||
const ExecutionContext* execution_context) const override {
|
||||
// Media features that are prefixed by min/max cannot be used without a
|
||||
// value.
|
||||
return feature == media_feature_names::kMonochromeMediaFeature ||
|
||||
feature == media_feature_names::kColorMediaFeature ||
|
||||
feature == media_feature_names::kColorIndexMediaFeature ||
|
||||
feature == media_feature_names::kGridMediaFeature ||
|
||||
feature == media_feature_names::kHeightMediaFeature ||
|
||||
feature == media_feature_names::kWidthMediaFeature ||
|
||||
feature == media_feature_names::kBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kDeviceHeightMediaFeature ||
|
||||
feature == media_feature_names::kDeviceWidthMediaFeature ||
|
||||
feature == media_feature_names::kOrientationMediaFeature ||
|
||||
feature == media_feature_names::kAspectRatioMediaFeature ||
|
||||
feature == media_feature_names::kDeviceAspectRatioMediaFeature ||
|
||||
feature == media_feature_names::kHoverMediaFeature ||
|
||||
feature == media_feature_names::kAnyHoverMediaFeature ||
|
||||
feature == media_feature_names::kTransform3dMediaFeature ||
|
||||
feature == media_feature_names::kPointerMediaFeature ||
|
||||
feature == media_feature_names::kAnyPointerMediaFeature ||
|
||||
feature == media_feature_names::kDevicePixelRatioMediaFeature ||
|
||||
feature == media_feature_names::kResolutionMediaFeature ||
|
||||
feature == media_feature_names::kDisplayModeMediaFeature ||
|
||||
feature == media_feature_names::kScanMediaFeature ||
|
||||
feature == media_feature_names::kColorGamutMediaFeature ||
|
||||
feature == media_feature_names::kPrefersColorSchemeMediaFeature ||
|
||||
feature == media_feature_names::kPrefersContrastMediaFeature ||
|
||||
feature == media_feature_names::kPrefersReducedMotionMediaFeature ||
|
||||
feature == media_feature_names::kOverflowInlineMediaFeature ||
|
||||
feature == media_feature_names::kOverflowBlockMediaFeature ||
|
||||
feature == media_feature_names::kUpdateMediaFeature ||
|
||||
(feature == media_feature_names::kPrefersReducedDataMediaFeature &&
|
||||
RuntimeEnabledFeatures::PrefersReducedDataEnabled()) ||
|
||||
feature ==
|
||||
media_feature_names::kPrefersReducedTransparencyMediaFeature ||
|
||||
(feature == media_feature_names::kForcedColorsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ForcedColorsEnabled()) ||
|
||||
(feature == media_feature_names::kNavigationControlsMediaFeature &&
|
||||
RuntimeEnabledFeatures::MediaQueryNavigationControlsEnabled()) ||
|
||||
(feature == media_feature_names::kOriginTrialTestMediaFeature &&
|
||||
RuntimeEnabledFeatures::OriginTrialsSampleAPIEnabled(
|
||||
execution_context)) ||
|
||||
(feature ==
|
||||
media_feature_names::kHorizontalViewportSegmentsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ViewportSegmentsEnabled(
|
||||
execution_context)) ||
|
||||
(feature ==
|
||||
media_feature_names::kVerticalViewportSegmentsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ViewportSegmentsEnabled(
|
||||
execution_context)) ||
|
||||
(feature == media_feature_names::kDevicePostureMediaFeature &&
|
||||
RuntimeEnabledFeatures::DevicePostureEnabled(execution_context)) ||
|
||||
(feature == media_feature_names::kInvertedColorsMediaFeature &&
|
||||
RuntimeEnabledFeatures::InvertedColorsEnabled()) ||
|
||||
CSSVariableParser::IsValidVariableName(feature) ||
|
||||
feature == media_feature_names::kScriptingMediaFeature ||
|
||||
(RuntimeEnabledFeatures::
|
||||
DesktopPWAsAdditionalWindowingControlsEnabled() &&
|
||||
feature == media_feature_names::kDisplayStateMediaFeature) ||
|
||||
(RuntimeEnabledFeatures::
|
||||
DesktopPWAsAdditionalWindowingControlsEnabled() &&
|
||||
feature == media_feature_names::kResizableMediaFeature);
|
||||
}
|
||||
|
||||
bool IsCaseSensitive(const AtomicString& feature) const override {
|
||||
bool MediaQueryParser::MediaQueryFeatureSet::IsAllowed(
|
||||
const AtomicString& feature) const {
|
||||
if (feature == media_feature_names::kInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kMinInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kMaxInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kMinBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kMaxBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kStuckMediaFeature ||
|
||||
feature == media_feature_names::kSnappedMediaFeature ||
|
||||
feature == media_feature_names::kScrollableMediaFeature ||
|
||||
CSSVariableParser::IsValidVariableName(feature)) {
|
||||
return false;
|
||||
}
|
||||
bool SupportsRange() const override { return true; }
|
||||
};
|
||||
|
||||
} // namespace
|
||||
return true;
|
||||
}
|
||||
bool MediaQueryParser::MediaQueryFeatureSet::IsAllowedWithoutValue(
|
||||
const AtomicString& feature,
|
||||
const ExecutionContext* execution_context) const {
|
||||
// Media features that are prefixed by min/max cannot be used without a
|
||||
// value.
|
||||
return feature == media_feature_names::kMonochromeMediaFeature ||
|
||||
feature == media_feature_names::kColorMediaFeature ||
|
||||
feature == media_feature_names::kColorIndexMediaFeature ||
|
||||
feature == media_feature_names::kGridMediaFeature ||
|
||||
feature == media_feature_names::kHeightMediaFeature ||
|
||||
feature == media_feature_names::kWidthMediaFeature ||
|
||||
feature == media_feature_names::kBlockSizeMediaFeature ||
|
||||
feature == media_feature_names::kInlineSizeMediaFeature ||
|
||||
feature == media_feature_names::kDeviceHeightMediaFeature ||
|
||||
feature == media_feature_names::kDeviceWidthMediaFeature ||
|
||||
feature == media_feature_names::kOrientationMediaFeature ||
|
||||
feature == media_feature_names::kAspectRatioMediaFeature ||
|
||||
feature == media_feature_names::kDeviceAspectRatioMediaFeature ||
|
||||
feature == media_feature_names::kHoverMediaFeature ||
|
||||
feature == media_feature_names::kAnyHoverMediaFeature ||
|
||||
feature == media_feature_names::kTransform3dMediaFeature ||
|
||||
feature == media_feature_names::kPointerMediaFeature ||
|
||||
feature == media_feature_names::kAnyPointerMediaFeature ||
|
||||
feature == media_feature_names::kDevicePixelRatioMediaFeature ||
|
||||
feature == media_feature_names::kResolutionMediaFeature ||
|
||||
feature == media_feature_names::kDisplayModeMediaFeature ||
|
||||
feature == media_feature_names::kScanMediaFeature ||
|
||||
feature == media_feature_names::kColorGamutMediaFeature ||
|
||||
feature == media_feature_names::kPrefersColorSchemeMediaFeature ||
|
||||
feature == media_feature_names::kPrefersContrastMediaFeature ||
|
||||
feature == media_feature_names::kPrefersReducedMotionMediaFeature ||
|
||||
feature == media_feature_names::kOverflowInlineMediaFeature ||
|
||||
feature == media_feature_names::kOverflowBlockMediaFeature ||
|
||||
feature == media_feature_names::kUpdateMediaFeature ||
|
||||
(feature == media_feature_names::kPrefersReducedDataMediaFeature &&
|
||||
RuntimeEnabledFeatures::PrefersReducedDataEnabled()) ||
|
||||
feature ==
|
||||
media_feature_names::kPrefersReducedTransparencyMediaFeature ||
|
||||
(feature == media_feature_names::kForcedColorsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ForcedColorsEnabled()) ||
|
||||
(feature == media_feature_names::kNavigationControlsMediaFeature &&
|
||||
RuntimeEnabledFeatures::MediaQueryNavigationControlsEnabled()) ||
|
||||
(feature == media_feature_names::kOriginTrialTestMediaFeature &&
|
||||
RuntimeEnabledFeatures::OriginTrialsSampleAPIEnabled(
|
||||
execution_context)) ||
|
||||
(feature ==
|
||||
media_feature_names::kHorizontalViewportSegmentsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ViewportSegmentsEnabled(execution_context)) ||
|
||||
(feature ==
|
||||
media_feature_names::kVerticalViewportSegmentsMediaFeature &&
|
||||
RuntimeEnabledFeatures::ViewportSegmentsEnabled(execution_context)) ||
|
||||
(feature == media_feature_names::kDevicePostureMediaFeature &&
|
||||
RuntimeEnabledFeatures::DevicePostureEnabled(execution_context)) ||
|
||||
(feature == media_feature_names::kInvertedColorsMediaFeature &&
|
||||
RuntimeEnabledFeatures::InvertedColorsEnabled()) ||
|
||||
CSSVariableParser::IsValidVariableName(feature) ||
|
||||
feature == media_feature_names::kScriptingMediaFeature ||
|
||||
(RuntimeEnabledFeatures::
|
||||
DesktopPWAsAdditionalWindowingControlsEnabled() &&
|
||||
feature == media_feature_names::kDisplayStateMediaFeature) ||
|
||||
(RuntimeEnabledFeatures::
|
||||
DesktopPWAsAdditionalWindowingControlsEnabled() &&
|
||||
feature == media_feature_names::kResizableMediaFeature);
|
||||
}
|
||||
|
||||
MediaQuerySet* MediaQueryParser::ParseMediaQuerySet(
|
||||
StringView query_string,
|
||||
@@ -329,7 +312,8 @@ const MediaQueryExpNode* MediaQueryParser::ConsumeFeature(
|
||||
|
||||
// NOTE: We do not check for stream.AtEnd() here, as an empty mf-value is
|
||||
// legal.
|
||||
auto exp = MediaQueryExp::Create(feature_name, stream, fake_context_);
|
||||
auto exp = MediaQueryExp::Create(feature_name, stream, fake_context_,
|
||||
feature_set.SupportsElementDependent());
|
||||
if (exp.IsValid() && stream.AtEnd()) {
|
||||
return MakeGarbageCollected<MediaQueryFeatureExpNode>(exp);
|
||||
}
|
||||
@@ -356,7 +340,8 @@ const MediaQueryExpNode* MediaQueryParser::ConsumeFeature(
|
||||
MediaQueryOperator op = ConsumeComparison(stream);
|
||||
if (op != MediaQueryOperator::kNone) {
|
||||
auto value =
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_);
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_,
|
||||
feature_set.SupportsElementDependent());
|
||||
if (value && stream.AtEnd()) {
|
||||
auto left = MediaQueryExpComparison();
|
||||
auto right = MediaQueryExpComparison(*value, op);
|
||||
@@ -407,7 +392,8 @@ const MediaQueryExpNode* MediaQueryParser::ConsumeFeature(
|
||||
|
||||
stream.Restore(start);
|
||||
auto value1 =
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_);
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_,
|
||||
feature_set.SupportsElementDependent());
|
||||
if (!value1) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -444,7 +430,8 @@ const MediaQueryExpNode* MediaQueryParser::ConsumeFeature(
|
||||
}
|
||||
|
||||
auto value2 =
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_);
|
||||
MediaQueryExpValue::Consume(feature_name, stream, fake_context_,
|
||||
feature_set.SupportsElementDependent());
|
||||
if (!value2) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -503,7 +490,7 @@ const MediaQueryExpNode* MediaQueryParser::ConsumeInParens(
|
||||
stream.ConsumeWhitespace();
|
||||
// ( <media-feature> )
|
||||
const MediaQueryExpNode* feature =
|
||||
ConsumeFeature(stream, MediaQueryFeatureSet());
|
||||
ConsumeFeature(stream, MediaQueryParser::MediaQueryFeatureSet());
|
||||
if (feature && guard.Release()) {
|
||||
stream.ConsumeWhitespace();
|
||||
return MediaQueryExpNode::Nested(feature);
|
||||
|
||||
@@ -125,6 +125,11 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
|
||||
[CallWith=Isolate, CEReactions, RaisesException] void write(TrustedHTML text);
|
||||
[CallWith=Isolate, CEReactions, RaisesException] void writeln(TrustedHTML text);
|
||||
|
||||
// TODO(330516530): Merge all write/writeln variants, once TrustedTypesHTML
|
||||
// is perma-enabled.
|
||||
[CallWith=Isolate, CEReactions, RaisesException, RuntimeEnabled=TrustedTypesHTML] undefined write(TrustedHTML text1, (TrustedHTML or DOMString)... text);
|
||||
[CallWith=Isolate, CEReactions, RaisesException, RuntimeEnabled=TrustedTypesHTML] undefined writeln(TrustedHTML text1, (TrustedHTML or DOMString)... text);
|
||||
|
||||
// user interaction
|
||||
readonly attribute Window? defaultView;
|
||||
[Affects=Nothing] boolean hasFocus();
|
||||
@@ -211,7 +216,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
|
||||
|
||||
// ARIA Notify API
|
||||
// https://github.com/WICG/aom/blob/gh-pages/notification-api.md
|
||||
[RuntimeEnabled=AriaNotify] void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
|
||||
[RuntimeEnabled=AriaNotify,MeasureAs=AriaNotify] void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
|
||||
|
||||
// The (experimental) DOM Parts API.
|
||||
[RuntimeEnabled=DOMPartsAPI] DocumentPartRoot getPartRoot();
|
||||
|
||||
@@ -160,7 +160,7 @@ dictionary SetHTMLUnsafeOptions {
|
||||
|
||||
// ARIA Notify API
|
||||
// https://github.com/WICG/aom/blob/gh-pages/notification-api.md
|
||||
[RuntimeEnabled=AriaNotify] void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
|
||||
[RuntimeEnabled=AriaNotify,MeasureAs=AriaNotify] void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
|
||||
|
||||
// Event handler attributes
|
||||
attribute EventHandler onbeforecopy;
|
||||
@@ -171,6 +171,10 @@ dictionary SetHTMLUnsafeOptions {
|
||||
// Element Timing
|
||||
[CEReactions, Reflect=elementtiming] attribute DOMString elementTiming;
|
||||
[RuntimeEnabled=ContainerTiming, CEReactions, Reflect=containertiming] attribute DOMString containerTiming;
|
||||
|
||||
// Heading Offset
|
||||
[CEReactions, RuntimeEnabled=HeadingOffset] attribute unsigned long headingOffset;
|
||||
[CEReactions, RuntimeEnabled=HeadingOffset] attribute boolean headingReset;
|
||||
};
|
||||
|
||||
Element includes ParentNode;
|
||||
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
// Copyright 2020 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Used as the argument to declarative Shadow DOM's getInnerHTML() function.
|
||||
// This version should be considered deprecated, as we work to standardize the
|
||||
// Element.getHTML() method instead.
|
||||
|
||||
dictionary GetInnerHTMLOptions {
|
||||
boolean includeShadowRoots = true;
|
||||
sequence<ShadowRoot> closedRoots;
|
||||
};
|
||||
+2
-2
@@ -66,7 +66,6 @@
|
||||
"canplay",
|
||||
"canplaythrough",
|
||||
"capturedmousechange",
|
||||
"capturedzoomlevelchange",
|
||||
"capturehandlechange",
|
||||
"change",
|
||||
"characterboundsupdate",
|
||||
@@ -91,7 +90,6 @@
|
||||
"contentvisibilityautostatechange",
|
||||
"contextlost",
|
||||
"contextmenu",
|
||||
"contextoverflow",
|
||||
"contextrestored",
|
||||
"controllerchange",
|
||||
"cookiechange",
|
||||
@@ -258,6 +256,7 @@
|
||||
"push",
|
||||
"pushsubscriptionchange",
|
||||
"quicstream",
|
||||
"quotaoverflow",
|
||||
"ratechange",
|
||||
"readeradd",
|
||||
"readerremove",
|
||||
@@ -382,5 +381,6 @@
|
||||
"writeend",
|
||||
"writestart",
|
||||
"zoom",
|
||||
"zoomlevelchange",
|
||||
],
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
[
|
||||
Exposed=Window
|
||||
] interface InputEvent : UIEvent {
|
||||
[RaisesException] constructor(DOMString type, optional InputEventInit eventInitDict = {});
|
||||
[RaisesException, CallWith=Isolate] constructor(DOMString type, optional InputEventInit eventInitDict = {});
|
||||
readonly attribute DOMString? data;
|
||||
readonly attribute boolean isComposing;
|
||||
|
||||
|
||||
+2
-2
@@ -30,6 +30,6 @@
|
||||
] interface ProgressEvent : Event {
|
||||
constructor(DOMString type, optional ProgressEventInit eventInitDict = {});
|
||||
readonly attribute boolean lengthComputable;
|
||||
readonly attribute unsigned long long loaded;
|
||||
readonly attribute unsigned long long total;
|
||||
readonly attribute double loaded;
|
||||
readonly attribute double total;
|
||||
};
|
||||
|
||||
+2
-2
@@ -6,6 +6,6 @@
|
||||
|
||||
dictionary ProgressEventInit : EventInit {
|
||||
boolean lengthComputable = false;
|
||||
unsigned long long loaded = 0;
|
||||
unsigned long long total = 0;
|
||||
double loaded = 0;
|
||||
double total = 0;
|
||||
};
|
||||
|
||||
+9
-12
@@ -40,6 +40,7 @@
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/observer_list.h"
|
||||
#include "base/task/common/task_annotator.h"
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
#include "cc/layers/picture_layer.h"
|
||||
@@ -47,6 +48,7 @@
|
||||
#include "media/base/media_switches.h"
|
||||
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
#include "third_party/blink/public/common/fingerprinting_protection/canvas_noise_token.h"
|
||||
#include "third_party/blink/public/common/history/session_history_constants.h"
|
||||
#include "third_party/blink/public/common/input/web_input_event.h"
|
||||
#include "third_party/blink/public/common/input/web_menu_source_type.h"
|
||||
@@ -1594,12 +1596,6 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
|
||||
settings->SetHyperlinkAuditingEnabled(prefs.hyperlink_auditing_enabled);
|
||||
settings->SetCookieEnabled(prefs.cookie_enabled);
|
||||
|
||||
// By default, allow Android WebView to enable WebSQL. Rollout for disabling
|
||||
// will happen via Finch.
|
||||
if (base::FeatureList::IsEnabled(blink::features::kWebSQLWebViewAccess)) {
|
||||
RuntimeEnabledFeatures::SetDatabaseEnabled(prefs.databases_enabled);
|
||||
}
|
||||
|
||||
// By default, allow_universal_access_from_file_urls is set to false and thus
|
||||
// we mitigate attacks from local HTML files by not granting file:// URLs
|
||||
// universal access. Only test shell will enable this.
|
||||
@@ -1842,6 +1838,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
|
||||
settings->SetPictureInPictureEnabled(prefs.picture_in_picture_enabled &&
|
||||
::features::UseSurfaceLayerForVideo());
|
||||
|
||||
settings->SetRootScrollbarThemeColor(prefs.root_scrollbar_theme_color);
|
||||
settings->SetLazyLoadEnabled(prefs.lazy_load_enabled);
|
||||
settings->SetInForcedColors(prefs.in_forced_colors);
|
||||
settings->SetIsForcedColorsDisabled(prefs.is_forced_colors_disabled);
|
||||
@@ -1902,6 +1899,9 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
|
||||
if (!prefs.strict_mime_type_check_for_worker_scripts_enabled) {
|
||||
RuntimeEnabledFeatures::SetStrictMimeTypesForWorkersEnabled(false);
|
||||
}
|
||||
|
||||
RuntimeEnabledFeatures::SetPaymentRequestEnabled(
|
||||
prefs.payment_request_enabled);
|
||||
}
|
||||
|
||||
void WebViewImpl::ThemeChanged() {
|
||||
@@ -3092,11 +3092,6 @@ void WebViewImpl::Show(const LocalFrameToken& opener_frame_token,
|
||||
opener_frame_token, NavigationPolicyToDisposition(policy),
|
||||
std::move(window_features), opened_by_user_gesture,
|
||||
WTF::BindOnce(&WebViewImpl::DidShowCreatedWindow, WTF::Unretained(this)));
|
||||
|
||||
if (auto* dev_tools_agent =
|
||||
MainFrameImpl()->DevToolsAgentImpl(/*create_if_necessary=*/false)) {
|
||||
dev_tools_agent->DidShowNewWindow();
|
||||
}
|
||||
}
|
||||
|
||||
void WebViewImpl::DidShowCreatedWindow() {
|
||||
@@ -3572,6 +3567,8 @@ void WebViewImpl::UpdateRendererPreferences(
|
||||
}
|
||||
#endif
|
||||
|
||||
CanvasNoiseToken::Set(renderer_preferences_.canvas_noise_token);
|
||||
|
||||
MaybePreloadSystemFonts(GetPage());
|
||||
}
|
||||
|
||||
@@ -3675,7 +3672,7 @@ void WebViewImpl::SetIsActive(bool active) {
|
||||
}
|
||||
|
||||
bool WebViewImpl::IsActive() const {
|
||||
return GetPage() ? GetPage()->GetFocusController().IsActive() : false;
|
||||
return GetPage() && GetPage()->GetFocusController().IsActive();
|
||||
}
|
||||
|
||||
void WebViewImpl::SetWindowFeatures(const WebWindowFeatures& features) {
|
||||
|
||||
@@ -1089,6 +1089,15 @@
|
||||
type: "bool",
|
||||
},
|
||||
|
||||
// Holds the browser's theme color to be used to render root non-overlay
|
||||
// Fluent scrollbars. Stored from an SkColor as ARGB.
|
||||
{
|
||||
name: "rootScrollbarThemeColor",
|
||||
initial: "std::nullopt",
|
||||
invalidate: ["Paint"],
|
||||
type: "std::optional<SkColor>",
|
||||
},
|
||||
|
||||
// The preferred color scheme set by the user's browser settings. The
|
||||
// variable follows the browser's color mode setting unless a browser theme
|
||||
// (custom or not) is defined, in which case the color scheme is set to the
|
||||
|
||||
+3
-3
@@ -28,7 +28,7 @@
|
||||
|
||||
// https://html.spec.whatwg.org/C/#dom-imagedata
|
||||
|
||||
typedef (Uint8ClampedArray or Uint16Array or Float32Array) ImageDataArray;
|
||||
typedef (Uint8ClampedArray or Float16Array or Float32Array) ImageDataArray;
|
||||
|
||||
[
|
||||
Exposed=(Window,Worker),
|
||||
@@ -37,12 +37,12 @@ typedef (Uint8ClampedArray or Uint16Array or Float32Array) ImageDataArray;
|
||||
[RaisesException] constructor(unsigned long sw, unsigned long sh);
|
||||
[RaisesException] constructor(unsigned long sw, unsigned long sh, ImageDataSettings settings);
|
||||
[RaisesException] constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
|
||||
[RaisesException] constructor(Uint16Array data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
|
||||
[RaisesException] constructor(Float16Array data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
|
||||
[RaisesException] constructor(Float32Array data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
|
||||
|
||||
readonly attribute unsigned long width;
|
||||
readonly attribute unsigned long height;
|
||||
readonly attribute PredefinedColorSpace colorSpace;
|
||||
[RuntimeEnabled=ImageDataPixelFormat] readonly attribute ImageDataStorageFormat storageFormat;
|
||||
[RuntimeEnabled=ImageDataPixelFormat] readonly attribute ImageDataPixelFormat pixelFormat;
|
||||
readonly attribute ImageDataArray data;
|
||||
};
|
||||
|
||||
Vendored
+5
-5
@@ -11,13 +11,13 @@ enum PredefinedColorSpace {
|
||||
"srgb-linear", // Enabled only in CanvasHDR
|
||||
};
|
||||
|
||||
enum ImageDataStorageFormat {
|
||||
"uint8", // default
|
||||
"uint16",
|
||||
"float32",
|
||||
enum ImageDataPixelFormat {
|
||||
"rgba-unorm8", // default
|
||||
"rgba-float16",
|
||||
"rgba-float32",
|
||||
};
|
||||
|
||||
dictionary ImageDataSettings {
|
||||
PredefinedColorSpace colorSpace;
|
||||
[RuntimeEnabled=ImageDataPixelFormat] ImageDataStorageFormat storageFormat = "uint8";
|
||||
[RuntimeEnabled=ImageDataPixelFormat] ImageDataPixelFormat pixelFormat = "rgba-unorm8";
|
||||
};
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
interface TextCluster {
|
||||
readonly attribute double x;
|
||||
readonly attribute double y;
|
||||
readonly attribute unsigned long begin;
|
||||
readonly attribute unsigned long start;
|
||||
readonly attribute unsigned long end;
|
||||
readonly attribute CanvasTextAlign align;
|
||||
readonly attribute CanvasTextBaseline baseline;
|
||||
|
||||
+3
-1
@@ -13,7 +13,9 @@ interface ElementInternals {
|
||||
// Attributes and operations for form-associated custom elements.
|
||||
[RaisesException] void setFormValue(ControlValue? value, optional ControlValue? state);
|
||||
|
||||
[RaisesException] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[RaisesException, ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
|
||||
[RaisesException] void setValidity(ValidityStateFlags flags, optional DOMString message, optional HTMLElement anchor);
|
||||
[RaisesException] readonly attribute boolean willValidate;
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// https://github.com/shivanigithub/fenced-frame/issues/14
|
||||
// https://wicg.github.io/fenced-frame/#fence-interface
|
||||
|
||||
typedef (FenceEvent or DOMString) ReportEventType;
|
||||
|
||||
@@ -11,6 +11,6 @@ interface Fence {
|
||||
[RaisesException] void reportEvent(ReportEventType event);
|
||||
[RaisesException] void setReportEventDataForAutomaticBeacons(FenceEvent event);
|
||||
[RaisesException] sequence<FencedFrameConfig> getNestedConfigs();
|
||||
[CallWith=ScriptState, RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess] Promise<undefined> disableUntrustedNetwork();
|
||||
[RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess] void notifyEvent(Event triggering_event);
|
||||
[CallWith=ScriptState, RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess, MeasureAs=FencedFrameDisableUntrustedNetwork] Promise<undefined> disableUntrustedNetwork();
|
||||
[RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess, MeasureAs=FencedFrameNotifyEvent] void notifyEvent(Event triggering_event);
|
||||
};
|
||||
|
||||
+3
-1
@@ -24,7 +24,9 @@
|
||||
HTMLConstructor
|
||||
] interface HTMLButtonElement : HTMLElement {
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions] attribute USVString formAction;
|
||||
[CEReactions] attribute DOMString formEnctype;
|
||||
[CEReactions] attribute DOMString formMethod;
|
||||
|
||||
Vendored
+3
-1
@@ -23,7 +23,9 @@
|
||||
HTMLConstructor
|
||||
] interface HTMLFieldSetElement : HTMLElement {
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, Reflect] attribute DOMString name;
|
||||
|
||||
readonly attribute DOMString type;
|
||||
|
||||
+3
-1
@@ -35,7 +35,9 @@ enum SelectionMode { "select", "start", "end", "preserve" };
|
||||
[ImplementedAs=checkedForBinding] attribute boolean checked;
|
||||
[CEReactions, Reflect] attribute DOMString dirName;
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
// The 'files' attribute is intentionally not readonly.
|
||||
// https://www.w3.org/Bugs/Public/show_bug.cgi?id=22682
|
||||
attribute FileList? files;
|
||||
|
||||
+3
-1
@@ -23,7 +23,9 @@
|
||||
Exposed=Window,
|
||||
HTMLConstructor
|
||||
] interface HTMLLabelElement : HTMLElement {
|
||||
readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, Reflect=for] attribute DOMString htmlFor;
|
||||
[ImplementedAs=controlForBinding] readonly attribute HTMLElement? control;
|
||||
};
|
||||
|
||||
+3
-1
@@ -23,7 +23,9 @@
|
||||
Exposed=Window,
|
||||
HTMLConstructor
|
||||
] interface HTMLLegendElement : HTMLElement {
|
||||
readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
|
||||
// obsolete members
|
||||
// https://html.spec.whatwg.org/C/#HTMLLegendElement-partial
|
||||
|
||||
+3
-1
@@ -32,7 +32,9 @@
|
||||
[HTMLConstructor] constructor();
|
||||
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions] attribute DOMString label;
|
||||
[CEReactions, Reflect=selected] attribute boolean defaultSelected;
|
||||
[ImplementedAs=selectedForBinding] attribute boolean selected;
|
||||
|
||||
+3
-1
@@ -29,7 +29,9 @@
|
||||
HTMLConstructor
|
||||
] interface HTMLOutputElement : HTMLElement {
|
||||
[PutForwards=value] readonly attribute DOMTokenList htmlFor;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, Reflect] attribute DOMString name;
|
||||
|
||||
readonly attribute DOMString type;
|
||||
|
||||
+3
-1
@@ -26,7 +26,9 @@
|
||||
] interface HTMLSelectElement : HTMLElement {
|
||||
[CEReactions, ImplementedAs=IDLExposedAutofillValue] attribute DOMString autocomplete;
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, Reflect] attribute boolean multiple;
|
||||
[CEReactions, Reflect] attribute DOMString name;
|
||||
[CEReactions, Reflect] attribute boolean required;
|
||||
|
||||
Vendored
+3
-1
@@ -28,7 +28,9 @@
|
||||
[CEReactions] attribute unsigned long cols;
|
||||
[CEReactions, Reflect] attribute DOMString dirName;
|
||||
[CEReactions, Reflect] attribute boolean disabled;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, RaisesException=Setter] attribute long maxLength;
|
||||
[CEReactions, RaisesException=Setter] attribute long minLength;
|
||||
[CEReactions, Reflect] attribute DOMString name;
|
||||
|
||||
+2
-2
@@ -30,9 +30,9 @@
|
||||
] interface HTMLDialogElement : HTMLElement {
|
||||
[CEReactions, Reflect] attribute boolean open;
|
||||
attribute DOMString returnValue;
|
||||
[CEReactions,RuntimeEnabled=HTMLDialogLightDismiss] attribute DOMString closedBy;
|
||||
[CEReactions] attribute DOMString closedBy;
|
||||
[CEReactions, Measure, RaisesException] void show();
|
||||
[CEReactions, Measure, RaisesException] void showModal();
|
||||
[CEReactions] void close(optional DOMString returnValue);
|
||||
[CEReactions,RaisesException,RuntimeEnabled=HTMLDialogLightDismiss] void requestClose(optional DOMString returnValue);
|
||||
[CEReactions,RaisesException] void requestClose(optional DOMString returnValue);
|
||||
};
|
||||
|
||||
+3
-1
@@ -31,7 +31,9 @@
|
||||
[CEReactions, Reflect] attribute DOMString type;
|
||||
[CEReactions, Reflect] attribute DOMString name;
|
||||
[CEReactions, Reflect] attribute DOMString useMap;
|
||||
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
|
||||
// Until ReferenceTarget is enabled, this will only ever return HTMLFormElement.
|
||||
// https://github.com/whatwg/html/pull/10995
|
||||
[ImplementedAs=formForBinding] readonly attribute HTMLElement? form;
|
||||
[CEReactions, Reflect] attribute DOMString width;
|
||||
[CEReactions, Reflect] attribute DOMString height;
|
||||
[CheckSecurity=ReturnValue] readonly attribute Document? contentDocument;
|
||||
|
||||
-2
@@ -22,7 +22,5 @@
|
||||
[RuntimeEnabled=NavigateEventSourceElement] readonly attribute Element? sourceElement;
|
||||
|
||||
[RaisesException] void intercept(optional NavigationInterceptOptions options = {});
|
||||
[RaisesException, RuntimeEnabled=NavigateEventCommitBehavior] void commit();
|
||||
[RaisesException, RuntimeEnabled=NavigateEventCommitBehavior] void redirect(USVString url);
|
||||
[RaisesException] void scroll();
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user