diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE index 0b77187f..631b42de 100644 --- a/tools/under-control/src/RELEASE +++ b/tools/under-control/src/RELEASE @@ -1 +1 @@ -135.0.7049.115 +136.0.7103.60 diff --git a/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc b/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc index 35a39815..ef792a91 100755 --- a/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc +++ b/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc @@ -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(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& 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 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 diff --git a/tools/under-control/src/android_webview/browser/aw_field_trials.cc b/tools/under-control/src/android_webview/browser/aw_field_trials.cc index 288de013..4854238c 100755 --- a/tools/under-control/src/android_webview/browser/aw_field_trials.cc +++ b/tools/under-control/src/android_webview/browser/aw_field_trials.cc @@ -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); } diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml index 5b5fe60a..364f021a 100755 --- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml +++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml @@ -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"> - - IsGuestSession() ? profile_->GetOriginalProfile() : profile_.get()) ->GetPrefs()), - search_engines::WipeSearchEngineChoiceReason::kProfileWipe); + search_engines::SearchEngineChoiceWipeReason::kProfileWipe); search_engines::SearchEngineChoiceServiceFactory::GetForProfile(profile_) ->ResetState(); } diff --git a/tools/under-control/src/chrome/browser/chrome_content_browser_client.cc b/tools/under-control/src/chrome/browser/chrome_content_browser_client.cc index 2e672ca4..a7d66215 100755 --- a/tools/under-control/src/chrome/browser/chrome_content_browser_client.cc +++ b/tools/under-control/src/chrome/browser/chrome_content_browser_client.cc @@ -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 +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(); +#else + web_authentication_delegate_ = + std::make_unique(); +#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(); - } - return web_authentication_delegate_.get(); -} - std::unique_ptr 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 +ChromeContentBrowserClient::MaybeCreateKeepAliveRequestTracker( + const network::ResourceRequest& request, + std::optional 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)); +} diff --git a/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 9bd9110e..86261d9f 100755 --- a/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -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> 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 = diff --git a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc index c95fca6d..77be6bf7 100755 --- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc +++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc @@ -9,9 +9,9 @@ #include #include -#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 diff --git a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc index 605c712f..5a09c835 100755 --- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc +++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc @@ -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( diff --git a/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl b/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl index e40fb534..1b33b224 100755 --- a/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl @@ -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 ". 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 ". 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 ". Used in the entity + // instance adding settings UI. The string cannot be constructed + // dynamically, because the "" string might need declension in + // some languages. + DOMString addEntityTypeString; + // The i18n string representation of "Edit ". Used in the + // entity instance editing settings UI. The string cannot be constructed + // dynamically, because the "" 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); }; }; diff --git a/tools/under-control/src/chrome/common/extensions/api/developer_private.idl b/tools/under-control/src/chrome/common/extensions/api/developer_private.idl index 9691063c..4e891277 100755 --- a/tools/under-control/src/chrome/common/extensions/api/developer_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/developer_private.idl @@ -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, diff --git a/tools/under-control/src/chrome/common/extensions/api/enterprise_reporting_private.idl b/tools/under-control/src/chrome/common/extensions/api/enterprise_reporting_private.idl index 2263b34b..2ea2c527 100755 --- a/tools/under-control/src/chrome/common/extensions/api/enterprise_reporting_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/enterprise_reporting_private.idl @@ -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); + }; + }; diff --git a/tools/under-control/src/chrome/common/extensions/api/file_manager_private.idl b/tools/under-control/src/chrome/common/extensions/api/file_manager_private.idl index 21396baf..34b46e5f 100755 --- a/tools/under-control/src/chrome/common/extensions/api/file_manager_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/file_manager_private.idl @@ -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 { diff --git a/tools/under-control/src/chrome/renderer/chrome_content_renderer_client.cc b/tools/under-control/src/chrome/renderer/chrome_content_renderer_client.cc index 71dcaea7..fb4a1b33 100755 --- a/tools/under-control/src/chrome/renderer/chrome_content_renderer_client.cc +++ b/tools/under-control/src/chrome/renderer/chrome_content_renderer_client.cc @@ -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(); +#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)); diff --git a/tools/under-control/src/components/policy/resources/templates/policies.yaml b/tools/under-control/src/components/policy/resources/templates/policies.yaml index 8188194b..3519956a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policies.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policies.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/UiAutomationProviderEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/UiAutomationProviderEnabled.yaml index e8e2cbbb..5d73efe2 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/UiAutomationProviderEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/UiAutomationProviderEnabled.yaml @@ -39,7 +39,7 @@ desc: |- the provider. Support for this policy setting will end in $1Google Chrome 136. + name="PRODUCT_NAME">$1Google Chrome 146. supported_on: - chrome.win:125- features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml index 950fb251..55c7f00a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml @@ -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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml new file mode 100755 index 00000000..9db00889 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml @@ -0,0 +1,26 @@ +caption: Configure Class Tools 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml new file mode 100755 index 00000000..94c3e5eb --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml @@ -0,0 +1,26 @@ +caption: Configure Class Tools Google Classroom integration feature +default: true +desc: |- + Setting the policy specifies if teachers can connect to students using a Google Classroom class roster. See https://support.google.com/edu/classroom/answer/10495270. + + 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml index 60e68d46..2cad72f8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml @@ -1,16 +1,16 @@ -caption: Configure Class management tools +caption: Configure Class Tools 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 Class Tools 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 Class Tools or be added to a Class Tools 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 Class Tools 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. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml new file mode 100755 index 00000000..f32590cd --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml @@ -0,0 +1,26 @@ +caption: Configure Class Tools 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 Class Tools 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 Class Tools class + value: true +- caption: Do not require users' devices to be on a managed network in order to be part of Class Tools class + value: false +owners: +- cros-edu-eng@google.com +- aprilzhou@google.com +schema: + type: boolean +future_on: +- chrome_os +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml new file mode 100755 index 00000000..13b6e59f --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml @@ -0,0 +1,26 @@ +caption: Configure Class Tools 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml new file mode 100755 index 00000000..ceacc2ba --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml @@ -0,0 +1,26 @@ +caption: Configure Class Tools 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/.group.details.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/.group.details.yaml index 3d633120..931ca3df 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/.group.details.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/.group.details.yaml @@ -2,7 +2,6 @@ caption: Cloud Reporting desc: |- Configure cloud reporting policies. - When the policy CloudReportingEnabled is left unset or set to disabled, these policies will be ignored. + For managed devices, when the policy CloudReportingEnabled is left unset or set to disabled, these policies will be ignored at the browser level. On platforms other than $2Google ChromeOS, that policy is only supported on browser which enrolled with CloudManagementEnrollmentToken for $1Google Chrome. - These policies are only effective when the machine is enrolled with CloudManagementEnrollmentToken for $1Google Chrome. - These policies are always effective for $2Google ChromeOS. + For managed Profiles, when the policy CloudProfileReportingEnabled is left unset or set to disabled, these policies will be ignored at the Profile level. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml new file mode 100755 index 00000000..6e00ddae --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml @@ -0,0 +1,34 @@ +caption: Enable cloud reporting of security signals in managed profiles +default: false +desc: |- + This policy controls $1Google Chrome 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 UserSecuritySignalsReporting 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 \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml new file mode 100755 index 00000000..720841e1 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml @@ -0,0 +1,34 @@ +caption: Enable cloud reporting of security signals in managed profiles +default: false +desc: |- + This policy controls $1Google Chrome 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 \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/policy_atomic_groups.yaml index 31e62798..e0c66eb7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/policy_atomic_groups.yaml @@ -10,3 +10,5 @@ CloudReporting: - CloudReportingEnabled - CloudProfileReportingEnabled - CloudReportingUploadFrequency + - UserSecuritySignalsReporting + - UserSecurityAuthenticatedReporting diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml index f54a2d16..b93199b0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml index 66bb2a97..2fb5ee0e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml @@ -13,6 +13,7 @@ features: dynamic_refresh: true per_profile: false future_on: +- android - fuchsia owners: - reillyg@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowUsbDevicesForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowUsbDevicesForUrls.yaml index 656fb71f..937b41c0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowUsbDevicesForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowUsbDevicesForUrls.yaml @@ -23,6 +23,7 @@ features: dynamic_refresh: true per_profile: false future_on: +- android - fuchsia owners: - reillyg@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml index bbbe2c2b..8b90dc36 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml @@ -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 DefaultSerialGuardSetting applies for all sites, if it's set. If not, users' personal settings apply. + Leaving the policy unset means DefaultSerialGuardSetting applies for all sites, if it's set. If not, users' personal settings apply. - For URL patterns which do not match the policy SerialBlockedForUrls (if there is a match), DefaultSerialGuardSetting (if set), or the users' personal settings take precedence, in that order. + For URL patterns which do not match the policy SerialBlockedForUrls (if there is a match), DefaultSerialGuardSetting (if set), or the users' personal settings take precedence, in that order. - URL patterns must not conflict with SerialBlockedForUrls. Neither policy takes precedence if a URL matches with both. + If URL patterns conflict with SerialBlockedForUrls they will be ignored. - For detailed information on valid url patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * is not an accepted value for this policy. + For detailed information on valid url patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml index d8d867d2..d5b6f3be 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml @@ -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 DefaultSerialGuardSetting applies for all sites, if it's set. If not, the user's personal setting applies. + Leaving the policy unset means DefaultSerialGuardSetting 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 SerialAskForUrls (if there is a match), DefaultSerialGuardSetting (if set), or the users' personal settings take precedence, in that order. + For URL patterns which do not match the policy SerialAskForUrls (if there is a match), DefaultSerialGuardSetting (if set), or the users' personal settings take precedence, in that order. - URL patterns can't conflict with SerialAskForUrls. Neither policy takes precedence if a URL matches with both. + If URL patterns conflict with SerialAskForUrls this policy will take precedence. - For detailed information on valid url patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * is not an accepted value for this policy. + For detailed information on valid url patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Gaia/GaiaOfflineSigninTimeLimitDays.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Gaia/GaiaOfflineSigninTimeLimitDays.yaml index c06ab071..1cc46739 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Gaia/GaiaOfflineSigninTimeLimitDays.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Gaia/GaiaOfflineSigninTimeLimitDays.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIInlineImageSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIInlineImageSettings.yaml new file mode 100755 index 00000000..8f59906c --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIInlineImageSettings.yaml @@ -0,0 +1,43 @@ +caption: Settings for GenAI Inline Image feature + +desc: |- + This policy controls the settings of the Inline Image feature for $1Google ChromeOS. + + 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 Google Admin console and for Education accounts managed by Google Workspace. + + 2 = Do not allow the feature. + + If the policy is unset, its behavior is determined by the GenAiDefaultSettings 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml index 4bd494d1..8f39202c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml @@ -38,7 +38,7 @@ schema: - 1 - 2 type: integer -future_on: -- chrome_os +supported_on: +- chrome_os:136- tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAISmartGroupingSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAISmartGroupingSettings.yaml index 96d6c7e2..93becd5c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAISmartGroupingSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAISmartGroupingSettings.yaml @@ -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 $1Google ChromeOS. + This policy controls whether groups based on similar content will be suggested for $1Google ChromeOS. 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml index e5faf8d9..8d1624d5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml @@ -35,7 +35,7 @@ schema: - 1 - 2 type: integer -future_on: -- chrome_os +supported_on: +- chrome_os:136- tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/TabOrganizerSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/TabOrganizerSettings.yaml index 7c6f1828..fc4f4626 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/TabOrganizerSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/TabOrganizerSettings.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskChromeAppsForceAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskChromeAppsForceAllowed.yaml new file mode 100755 index 00000000..0af346dd --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskChromeAppsForceAllowed.yaml @@ -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: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/policy_atomic_groups.yaml index d722a50b..96047683 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/policy_atomic_groups.yaml @@ -7,3 +7,4 @@ Kiosk: - DeviceLocalAccountAutoLoginBailoutEnabled - DeviceLocalAccountPromptForNetworkWhenOffline - KioskTroubleshootingToolsEnabled + - KioskChromeAppsForceAllowed diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml index 6fece968..1d06566d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml @@ -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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextAwareAccessSignalsAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextAwareAccessSignalsAllowlist.yaml index 80d689f5..b0ce8021 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextAwareAccessSignalsAllowlist.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextAwareAccessSignalsAllowlist.yaml @@ -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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenContextAwareAccessSignalsAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenContextAwareAccessSignalsAllowlist.yaml index 357834a6..59c9bf1e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenContextAwareAccessSignalsAllowlist.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenContextAwareAccessSignalsAllowlist.yaml @@ -19,7 +19,6 @@ features: dynamic_refresh: true owners: - lmasopust@google.com -- rodmartin@google.com - cbe-device-trust-eng@google.com schema: items: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRestrictionSchedule.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRestrictionSchedule.yaml index 1d0ea225..173433de 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRestrictionSchedule.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRestrictionSchedule.yaml @@ -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 $2Google ChromeOS 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. - $2Google ChromeOS 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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DynamicCodeSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DynamicCodeSettings.yaml index 67346cb7..19793754 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DynamicCodeSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DynamicCodeSettings.yaml @@ -3,7 +3,7 @@ default: 0 desc: |- This policy controls the dynamic code settings for $1Google Chrome. - Disabling dynamic code improves the security of $1Google Chrome by preventing potentially hostile dynamic code and third-party code from making changes to $1Google Chrome'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 $1Google Chrome by preventing potentially hostile dynamic code and third-party code from making changes to $1Google Chrome'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 $1Google Chrome will use the default settings. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseRealTimeUrlCheckMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseRealTimeUrlCheckMode.yaml index ee1551ac..82a77745 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseRealTimeUrlCheckMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseRealTimeUrlCheckMode.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml index e4c02d93..fae534ac 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml @@ -12,9 +12,9 @@ desc: |- The search_url field specifies the URL on which to search. Enter the web address for the search engine's results page, and use '{searchTerms}' in place of the query. - The suggest_url field specifies the URL that provides search suggestions. If suggest_url contains '{searchTerms}', then Chrome will obtain search suggestions by a GET request to the URL replacing '{searchTerms}' 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 'query'. + The suggest_url field specifies the URL that provides search suggestions. If suggest_url contains '{searchTerms}', then Chrome will obtain search suggestions by a GET request to the URL replacing '{searchTerms}' 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 'query'. - The icon_url 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 https://www.google.com/favicon.ico). + The icon_url 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 https://www.google.com/favicon.ico). Supported image file formats: JPEG, PNG, and ICO. The require_shortcut field specifies whether the address bar shortcut is required to see search recommendations. If this field is not set, the address bar shortcut 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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensCameraAssistedSearchEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensCameraAssistedSearchEnabled.yaml index 1d176710..95b937ac 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensCameraAssistedSearchEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensCameraAssistedSearchEnabled.yaml @@ -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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml index cb8ac513..ca4a234e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ParcelTrackingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ParcelTrackingEnabled.yaml index 015c6f4d..9f63d55c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ParcelTrackingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ParcelTrackingEnabled.yaml @@ -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 $1Google Chrome through the New Tab Page. When the policy is set to Disabled, users will not be able to track their packages on $1Google Chrome 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProfilePickerOnStartupAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProfilePickerOnStartupAvailability.yaml index ec320375..a9bfe545 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProfilePickerOnStartupAvailability.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProfilePickerOnStartupAvailability.yaml @@ -37,6 +37,6 @@ schema: type: integer supported_on: - chrome.*:89- -- chrome_os:105- +- chrome_os:105-135 tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionManagedClientCertificateForBrowser.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionManagedClientCertificateForBrowser.yaml index b376f194..63c9e9f1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionManagedClientCertificateForBrowser.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionManagedClientCertificateForBrowser.yaml @@ -8,8 +8,8 @@ desc: |- Setting this policy to Disabled (value 0), or leaving unset will prevent $1Google Chrome 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReduceAcceptLanguageEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReduceAcceptLanguageEnabled.yaml new file mode 100755 index 00000000..72d36e2d --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReduceAcceptLanguageEnabled.yaml @@ -0,0 +1,42 @@ +caption: Control Accept-Language Reduction + +desc: |- + The Accept-Language HTTP request header and the JavaScript navigator.languages getter are planned for reduction for privacy reasons. + To facilitate testing and ensure compatibility, this policy allows you to enable or disable the Accept-Language Reduction feature. + + If this policy is set to enabled or left unset, Accept-Language Reduction will be applied through field trials. + If this policy is set to disabled, field trials will not be able to activate Accept-Language Reduction. + + 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 Accept-Language Reduction + value: true +- caption: Disable Accept-Language Reduction + value: false + +default: true + +example_value: true + +tags: [] + +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml new file mode 100755 index 00000000..95b8cbd9 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml @@ -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 RelaunchNotificationPeriod policy is overridden to 2 hours. If the RelaunchNotification 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 RelaunchNotificationPeriod 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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountUsage.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountUsage.yaml index 48dcf511..20e9f8e0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountUsage.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountUsage.yaml @@ -21,7 +21,6 @@ items: name: PrimaryAccountSignin value: primary_account_signin owners: -- rodmartin@google.com - sinhak@chromium.org - chromeos-commercial-identity@google.com schema: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml index 98127217..696a62a9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml @@ -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: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebAuthenticationRemoteDesktopAllowedOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebAuthenticationRemoteDesktopAllowedOrigins.yaml index 9e2d0f6b..2c9c823e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebAuthenticationRemoteDesktopAllowedOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebAuthenticationRemoteDesktopAllowedOrigins.yaml @@ -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 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml new file mode 100755 index 00000000..0b2d545e --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml @@ -0,0 +1,33 @@ +caption: Use the Happy Eyeballs V3 algorithm +desc: |- + This feature enables the Happy Eyeballs V3 algorithm to make connection attempts. See https://datatracker.ietf.org/doc/draft-pauly-happy-happyeyeballs-v3 for details. + + Setting the policy to Enabled means $1Google Chrome will use the Happy Eyeballs V3 algorithm for connection attempts. + + Setting the policy to Disabled turns off the Happy Eyeballs V3 algorithm. + + Not setting the policy, $1Google Chrome will turn on or off the Happy Eyeballs V3 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 $1Google Chrome. +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 Happy Eyeballs V3 algorithm. + value: true +- caption: Do not use the Happy Eyeballs V3 algorithm. + value: false +example_value: true +tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SkyVault/LocalUserFilesMigrationDestination.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SkyVault/LocalUserFilesMigrationDestination.yaml index 98baaed6..31ba7f84 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SkyVault/LocalUserFilesMigrationDestination.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SkyVault/LocalUserFilesMigrationDestination.yaml @@ -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: [] diff --git a/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc b/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc index 97d4479d..2896b2b1 100755 --- a/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc +++ b/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc @@ -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) 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::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(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 WebContentsImpl::StartPrefetch( const GURL& prefetch_url, bool use_prefetch_proxy, const blink::mojom::Referrer& referrer, const std::optional& referring_origin, + std::optional no_vary_search_hint, + scoped_refptr preload_pipeline_info, base::WeakPtr attempt, std::optional holdback_status_override) { if (!base::FeatureList::IsEnabled( @@ -11699,8 +11790,8 @@ std::unique_ptr WebContentsImpl::StartPrefetch( use_prefetch_proxy); auto container = std::make_unique( *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 WebContentsImpl::StartPrerendering( bool should_warm_up_compositor, bool should_prepare_paint_tree, PreloadingHoldbackStatus holdback_status_override, + scoped_refptr preload_pipeline_info, PreloadingAttempt* preloading_attempt, base::RepeatingCallback&)> @@ -11723,14 +11815,14 @@ std::unique_ptr 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( - /*planned_max_preloading_type=*/PreloadingType::kPrerender)); + base::WrapRefCounted( + static_cast(preload_pipeline_info.get()))); #if BUILDFLAG(IS_ANDROID) attributes.additional_headers = std::move(additional_headers); #else @@ -11746,7 +11838,7 @@ std::unique_ptr WebContentsImpl::StartPrerendering( if (frame_tree_node_id) { return std::make_unique( GetPrerenderHostRegistry()->GetWeakPtr(), frame_tree_node_id, - prerendering_url); + prerendering_url, std::move(no_vary_search_hint)); } return nullptr; } diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc index ce9f2e0b..27d2f0de 100755 --- a/tools/under-control/src/content/child/runtime_features.cc +++ b/tools/under-control/src/content/child/runtime_features.cc @@ -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}, diff --git a/tools/under-control/src/content/public/browser/content_browser_client.cc b/tools/under-control/src/content/public/browser/content_browser_client.cc index 79490d0d..e2382e97 100755 --- a/tools/under-control/src/content/public/browser/content_browser_client.cc +++ b/tools/under-control/src/content/public/browser/content_browser_client.cc @@ -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 @@ -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 +ContentBrowserClient::GetWebUIResourceUrlToCodeCacheMap() const { + return base::flat_map(); +} + 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 delegate; return delegate.get(); } +#if !BUILDFLAG(IS_ANDROID) std::unique_ptr 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 +ContentBrowserClient::MaybeCreateKeepAliveRequestTracker( + const network::ResourceRequest& request, + std::optional ukm_source_id, + bool is_attribution_request, + KeepAliveRequestTracker::IsContextDetachedCallback + is_context_detached_callback) { + return nullptr; +} + } // namespace content diff --git a/tools/under-control/src/gin/v8_initializer.cc b/tools/under-control/src/gin/v8_initializer.cc index e7e3e446..69ab1ef4 100755 --- a/tools/under-control/src/gin/v8_initializer.cc +++ b/tools/under-control/src/gin/v8_initializer.cc @@ -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(); } diff --git a/tools/under-control/src/media/base/video_codecs.h b/tools/under-control/src/media/base/video_codecs.h index 8ca35120..058fc54d 100755 --- a/tools/under-control/src/media/base/video_codecs.h +++ b/tools/under-control/src/media/base/video_codecs.h @@ -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; diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc index 85e8de6a..8014bb16 100755 --- a/tools/under-control/src/services/network/network_context.cc +++ b/tools/under-control/src/services/network/network_context.cc @@ -394,12 +394,8 @@ base::RepeatingCallback BuildOriginFilter( // If |filter| is null, creates an always-true predicate. base::RepeatingCallback BuildUrlFilter( mojom::ClearDataFilterPtr filter) { - return filter ? base::BindRepeating( - &DoesUrlMatchFilter, filter->type, - std::set(filter->origins.begin(), - filter->origins.end()), - std::set(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( 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_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); } diff --git a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json index 9bf3d31b..3983efe6 100755 --- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json +++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json @@ -34,6 +34,27 @@ ] } ], + "AXBlockFlowIterator": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AccessibilityBlockFlowIterator" + ] + } + ] + } + ], "AXRandomizedStressTests": [ { "platforms": [ @@ -116,6 +137,21 @@ ] } ], + "AccessibilityManifestV3BrailleIme": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AccessibilityManifestV3BrailleIme" + ] + } + ] + } + ], "AccessibilityPageZoomV2": [ { "platforms": [ @@ -310,6 +346,25 @@ ] } ], + "AlwaysBlock3pcsIncognito": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AlwaysBlock3pcsIncognito" + ] + } + ] + } + ], "AndroidAnimateSuggestionsListAppearance": [ { "platforms": [ @@ -411,11 +466,8 @@ { "name": "Enabled_20240718", "enable_features": [ - "AndroidBcivZeroBrowserFrames", + "AndroidBcivBottomControls", "AndroidBrowserControlsInViz" - ], - "disable_features": [ - "AndroidBcivBottomControls" ] } ] @@ -470,26 +522,6 @@ ] } ], - "AndroidHubSearch": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "enable_bookmark_provider": "true", - "enable_history_provider": "true", - "enable_press_enter_to_search": "true" - }, - "enable_features": [ - "AndroidHubSearch" - ] - } - ] - } - ], "AndroidLowLatencyCanvas": [ { "platforms": [ @@ -607,6 +639,9 @@ }, "enable_features": [ "AndroidWarmUpSpareRendererWithTimeout" + ], + "disable_features": [ + "OverrideAndroidOmniboxSpareRendererDelay" ] } ] @@ -660,6 +695,21 @@ ] } ], + "AndroidTabDeclutterArchiveTabGroups": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidTabDeclutterArchiveTabGroups" + ] + } + ] + } + ], "AndroidTabDeclutterDuplicateUrls": [ { "platforms": [ @@ -690,6 +740,42 @@ ] } ], + "AnimatedDefaultBrowserPromoInFRE": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "EnabledWithActionButtons", + "params": { + "AnimatedDefaultBrowserPromoInFREExperimentType": "0" + }, + "enable_features": [ + "AnimatedDefaultBrowserPromoInFRE" + ] + }, + { + "name": "EnabledWithShowMeHow", + "params": { + "AnimatedDefaultBrowserPromoInFREExperimentType": "1" + }, + "enable_features": [ + "AnimatedDefaultBrowserPromoInFRE" + ] + }, + { + "name": "EnabledWithInstructions", + "params": { + "AnimatedDefaultBrowserPromoInFREExperimentType": "2" + }, + "enable_features": [ + "AnimatedDefaultBrowserPromoInFRE" + ] + } + ] + } + ], "AnimationForDesktopCapturePermissionChecker": [ { "platforms": [ @@ -720,7 +806,7 @@ ] } ], - "AppBoundDataReencrypt": [ + "AppBoundEncryptionKeyV3": [ { "platforms": [ "windows" @@ -729,7 +815,7 @@ { "name": "Enabled", "enable_features": [ - "AppBoundDataReencrypt" + "AppBoundEncryptionKeyV3" ] } ] @@ -775,37 +861,6 @@ ] } ], - "AppMallStudy": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled_20241010", - "enable_features": [ - "CrosMall", - "CrosMallSwa" - ] - }, - { - "name": "Enabled", - "enable_features": [ - "AppInstallServiceUri", - "CrosMall" - ] - }, - { - "name": "Enabled_20240619", - "enable_features": [ - "AppInstallServiceUri", - "CrosMall", - "CrosMallSwa" - ] - } - ] - } - ], "AppStreamingAccessibilityIntegration": [ { "platforms": [ @@ -1300,11 +1355,9 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnableWithDownload", "enable_features": [ - "AsyncNotificationManager" - ], - "disable_features": [ + "AsyncNotificationManager", "AsyncNotificationManagerForDownload" ] } @@ -1432,6 +1485,24 @@ ] } ], + "AutoPictureInPictureForVideoPlayback": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutoPictureInPictureForVideoPlayback" + ] + } + ] + } + ], "AutoSpeculationRules": [ { "platforms": [ @@ -1555,24 +1626,6 @@ ] } ], - "AutofillAiTeamfood": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillAi" - ] - } - ] - } - ], "AutofillAiTeamfoodV2": [ { "platforms": [ @@ -1585,6 +1638,9 @@ { "name": "Enabled", "enable_features": [ + "AutofillAiIgnoreGeoIp", + "AutofillAiVoteForFormatStringsFromMultipleFields", + "AutofillAiVoteForFormatStringsFromSingleFields", "AutofillAiWithDataSchema" ] } @@ -1674,24 +1730,6 @@ ] } ], - "AutofillDisableLocalCardMigration": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillDisableLocalCardMigration" - ] - } - ] - } - ], "AutofillDynamicallyLoadsFieldsForAddressInput": [ { "platforms": [ @@ -1754,22 +1792,28 @@ { "name": "Enabled", "enable_features": [ - "AutofillEnableCardBenefitsIph" + "AutofillEnableCardBenefitsIph", + "IPH_AutofillCreditCardBenefit" ] } ] } ], - "AutofillEnableDisablingSuggestionsOnJSFocus": [ + "AutofillEnableCardInfoRuntimeRetrieval": [ { "platforms": [ - "android" + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "AutofillAndroidDisableSuggestionsOnJSFocus" + "AutofillEnableCardInfoRuntimeRetrieval" ] } ] @@ -1960,21 +2004,6 @@ ] } ], - "AutofillEnablePaymentSettingsCardPromoAndScanCard": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnablePaymentSettingsCardPromoAndScanCard" - ] - } - ] - } - ], "AutofillEnableSupportForParsingWithSharedLabels": [ { "platforms": [ @@ -1996,50 +2025,6 @@ ] } ], - "AutofillFixValueSemantics": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillFixCurrentValueInImport", - "AutofillFixInitialValueOfSelect", - "AutofillFixValueSemantics" - ] - } - ] - } - ], - "AutofillGivePrecedenceToEmailOverUsername": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillGivePrecedenceToEmailOverUsername" - ] - } - ] - } - ], "AutofillGranularFillingAvailable": [ { "platforms": [ @@ -2265,46 +2250,6 @@ ] } ], - "AutofillIncludeMaxLengthInCrowdsourcing": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "ios", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillIncludeMaxLengthInCrowdsourcing" - ] - } - ] - } - ], - "AutofillIncludeSelectOptionsInCrowdsourcing": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "ios", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillIncludeSelectOptionsInCrowdsourcing" - ] - } - ] - } - ], "AutofillInferLabelFromDefaultSelectText": [ { "platforms": [ @@ -2937,29 +2882,6 @@ ] } ], - "BackForwardCacheForPageWithCacheControlNotStoredHeader": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20240129", - "params": { - "level": "restore-unless-cookie-change", - "ttl": "3m" - }, - "enable_features": [ - "CacheControlNoStoreEnterBackForwardCache" - ] - } - ] - } - ], "BackForwardCacheMediaSessionService": [ { "platforms": [ @@ -3121,6 +3043,26 @@ ] } ], + "BackForwardCachePrioritizedEntry": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250327", + "enable_features": [ + "BackForwardCachePrioritizedEntry" + ] + } + ] + } + ], "BackForwardTransitions": [ { "platforms": [ @@ -3128,67 +3070,23 @@ ], "experiments": [ { - "name": "NoIPH", - "params": { - "dump-without-crash-navigation-entry-screenshot-cache": "false", - "dump-without-crash-tab-on-back-gesture-handler": "false" - }, - "enable_features": [ - "BackForwardTransitions", - "CompressBitmapAtBackgroundPriority", - "MirrorBackForwardGesturesInRTL", - "NativePageTransitionHardwareCapture" - ], - "disable_features": [ - "IPH_RtlGestureNavigation" - ] - }, - { - "name": "RTLOnly", - "enable_features": [ - "MirrorBackForwardGesturesInRTL" - ], - "disable_features": [ - "BackForwardTransitions", - "CompressBitmapAtBackgroundPriority", - "IPH_RtlGestureNavigation", - "NativePageTransitionHardwareCapture" - ] - }, - { - "name": "IPHOnUnsuccessfulBackNav", + "name": "IPHWithFastEtc1Encoder", "params": { "availability": "any", "event_trigger": "name:rtl_gesture_iph_trigger;comparator:==0;window:365;storage:365", "event_used": "name:rtl_gesture_iph_show;comparator:==0;window:365;storage:365", + "max-cache-size": "16777216", + "percentage-of-ram-to-use": "0.5", "session_rate": "<1", "x_trigger": "", "x_unhandled_gesture_threshold": "2" }, "enable_features": [ "BackForwardTransitions", - "CompressBitmapAtBackgroundPriority", "IPH_RtlGestureNavigation", "MirrorBackForwardGesturesInRTL", - "NativePageTransitionHardwareCapture" - ] - }, - { - "name": "IPHOnFirstSuccessfulBackNav", - "params": { - "availability": "any", - "event_trigger": "name:rtl_gesture_iph_trigger;comparator:==0;window:365;storage:365", - "event_used": "name:rtl_gesture_iph_show;comparator:==0;window:365;storage:365", - "session_rate": "<1", - "x_trigger": "non-empty-stack", - "x_unhandled_gesture_threshold": "2" - }, - "enable_features": [ - "BackForwardTransitions", - "CompressBitmapAtBackgroundPriority", - "IPH_RtlGestureNavigation", - "MirrorBackForwardGesturesInRTL", - "NativePageTransitionHardwareCapture" + "NativePageTransitionHardwareCapture", + "UseNewEtc1Encoder" ] } ] @@ -3235,6 +3133,21 @@ ] } ], + "BackgroundNotPerceptibleBinding": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BackgroundNotPerceptibleBinding" + ] + } + ] + } + ], "BackgroundResourceFetch": [ { "platforms": [ @@ -3358,24 +3271,30 @@ "name": "Enabled", "enable_features": [ "BatterySaverModeAlignWakeUps", - "LowerHighResolutionTimerThreshold", - "TimerSlackMac" + "LowerHighResolutionTimerThreshold" ] } ] } ], - "BatteryStatusAndPowerSavingBroadcastReceiversInBackground": [ + "BeaconLeakageLogging": [ { "platforms": [ - "android" + "android", + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_v1", + "params": { + "category_param_name": "category", + "category_prefix": "acrcp_v1_" + }, "enable_features": [ - "BatteryStatusManagerBroadcastReceiverInBackground", - "PowerSavingModeBroadcastReceiverInBackground" + "BeaconLeakageLogging" ] } ] @@ -3481,6 +3400,21 @@ ] } ], + "BocaOnTaskMuteArcAudio": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BocaOnTaskMuteArcAudio" + ] + } + ] + } + ], "BookmarksUseBinaryTreeInTitledUrlIndex": [ { "platforms": [ @@ -3595,6 +3529,21 @@ ] } ], + "BrowserDynamicCodeDisabled": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BrowserDynamicCodeDisabled" + ] + } + ] + } + ], "BrowserSignalsReportingEnabled": [ { "platforms": [ @@ -3755,7 +3704,6 @@ "name": "Enabled", "enable_features": [ "EnablePreferencesAccountStorage", - "MoveThemePrefsToSpecifics", "SeparateLocalAndAccountSearchEngines", "SeparateLocalAndAccountThemes", "ThemesBatchUpload" @@ -3900,6 +3848,21 @@ ] } ], + "CacheIsMultiInstanceApi31Enabled": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CacheIsMultiInstanceApi31Enabled" + ] + } + ] + } + ], "CacheStorageTaskPriority": [ { "platforms": [ @@ -4036,6 +3999,26 @@ ] } ], + "CanvasTextNg": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CanvasTextNg" + ] + } + ] + } + ], "CastMirroringPlayoutDelayChromeOS": [ { "platforms": [ @@ -4054,6 +4037,24 @@ ] } ], + "CastStreamingMediaVideoEncoder": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CastStreamingMediaVideoEncoder" + ] + } + ] + } + ], "CastStreamingVp9": [ { "platforms": [ @@ -4261,21 +4262,6 @@ ] } ], - "CheckWebAppExistenceAsync": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CheckWebAppExistenceAsync" - ] - } - ] - } - ], "ChromeCartDomBasedHeuristics": [ { "platforms": [ @@ -4964,6 +4950,21 @@ ] } ], + "ChromeOSOobePersonalizedOnboardingHoldback": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Holdback", + "disable_features": [ + "OobePersonalizedOnboarding" + ] + } + ] + } + ], "ChromeOSPrintingIppUsb": [ { "platforms": [ @@ -5195,17 +5196,6 @@ "ios" ], "experiments": [ - { - "name": "Launch", - "enable_features": [ - "EnableLensOverlay", - "LensClearcutLoggerFastQosEnabled" - ], - "disable_features": [ - "LensOverlayEnableLocationBarEntrypoint", - "LensOverlayEnableLocationBarEntrypointOnSRP" - ] - }, { "name": "Enabled", "enable_features": [ @@ -5215,6 +5205,21 @@ "LensClearcutLoggerFastQosEnabled", "LensInkMultiSampleModeDisabled", "LensOverlayEnableLocationBarEntrypoint" + ], + "disable_features": [ + "LensGestureTextSelectionDisabled", + "LensOverlayEnableLocationBarEntrypointOnSRP" + ] + }, + { + "name": "LaunchM133", + "enable_features": [ + "EnableLensOverlay", + "LensClearcutLoggerFastQosEnabled" + ], + "disable_features": [ + "LensOverlayEnableLocationBarEntrypoint", + "LensOverlayEnableLocationBarEntrypointOnSRP" ] } ] @@ -5449,57 +5454,6 @@ ] } ], - "ClankTabResumpton": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "EnabledV2", - "params": { - "disable_blend": "true", - "enable_v2": "true", - "show_see_more": "true", - "show_tabs_in_one_module": "true", - "use_default_app_filter": "true", - "use_salient_image": "true" - }, - "enable_features": [ - "TabResumptionModuleAndroid" - ] - }, - { - "name": "Enabled", - "params": { - "max_tiles_number": "1", - "show_see_more": "true", - "show_tabs_in_one_module": "true", - "use_default_app_filter": "true", - "use_salient_image": "true" - }, - "enable_features": [ - "TabResumptionModuleAndroid" - ] - }, - { - "name": "EnabledML", - "params": { - "enable_v2": "true", - "fetch_history_backend": "true", - "fetch_local_tabs_backend": "true", - "show_see_more": "true", - "show_tabs_in_one_module": "true", - "use_default_app_filter": "true", - "use_salient_image": "true" - }, - "enable_features": [ - "TabResumptionModuleAndroid" - ] - } - ] - } - ], "ClearBrowsingDataAndroidSurvey": [ { "platforms": [ @@ -5596,23 +5550,6 @@ ] } ], - "ClientSideDetectionBrandAndIntentForScamDetection": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ClientSideDetectionBrandAndIntentForScamDetection" - ] - } - ] - } - ], "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection": [ { "platforms": [ @@ -5699,10 +5636,17 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnabledWithWarning", "enable_features": [ + "ClientSideDetectionBrandAndIntentForScamDetection", "ClientSideDetectionShowScamVerdictWarning" ] + }, + { + "name": "EnabledMetricsCollection", + "enable_features": [ + "ClientSideDetectionBrandAndIntentForScamDetection" + ] } ] } @@ -6039,6 +5983,35 @@ ] } ], + "CommitAvailableMemoryPressureThresholds": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "MediumThresholds", + "params": { + "CommitAvailableCriticalThresholdMB": "500", + "CommitAvailableModerateThresholdMB": "1000" + }, + "enable_features": [ + "CommitAvailableMemoryPressureThresholds" + ] + }, + { + "name": "HigherThresholds", + "params": { + "CommitAvailableCriticalThresholdMB": "1000", + "CommitAvailableModerateThresholdMB": "2000" + }, + "enable_features": [ + "CommitAvailableMemoryPressureThresholds" + ] + } + ] + } + ], "Compare": [ { "platforms": [ @@ -6241,6 +6214,24 @@ ] } ], + "CompositorLoadingAnimations": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CompositorLoadingAnimations" + ] + } + ] + } + ], "CompressionDictionaryPreload": [ { "platforms": [ @@ -6339,24 +6330,6 @@ ] } ], - "ContentUsesBrowserThemeColorMode": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ContentUsesBrowserThemeColorMode" - ] - } - ] - } - ], "ContextualSearchBox": [ { "platforms": [ @@ -6369,7 +6342,7 @@ { "name": "Enabled_InnerHtml", "params": { - "file-upload-limit-bytes": "200000000", + "auto-focus-searchbox": "false", "send-page-url-for-contextualization": "true", "show-contextual-searchbox-ghost-loader-loading-state": "true", "use-inner-html-as-context": "true", @@ -6551,8 +6524,12 @@ ], "min_os_version": "16151.0.0", "hardware_classes": [ + "brask", "brya", - "corsola" + "corsola", + "geralt", + "nissa", + "rex" ] } ] @@ -6833,43 +6810,6 @@ ] } ], - "CrOSLateBootPsiAdjustAvailable": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled_TopThreshold80", - "params": { - "PsiTopThreshold": "80.0" - }, - "enable_features": [ - "CrOSLateBootPsiAdjustAvailable" - ] - }, - { - "name": "Enabled_TopThreshold60", - "params": { - "PsiTopThreshold": "60.0" - }, - "enable_features": [ - "CrOSLateBootPsiAdjustAvailable" - ] - }, - { - "name": "Enabled_Full40", - "params": { - "PsiTopThreshold": "40.0", - "PsiUseFull": "true" - }, - "enable_features": [ - "CrOSLateBootPsiAdjustAvailable" - ] - } - ] - } - ], "CrOSLateBootResourcedVariableTimeMemorySignal": [ { "platforms": [ @@ -7078,21 +7018,6 @@ ] } ], - "CrOSLockMainProgramText": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CrOSLockMainProgramText" - ] - } - ] - } - ], "CrOSMglruNoKVMOpt": [ { "platforms": [ @@ -7183,6 +7108,21 @@ ] } ], + "CrosSeparateGeoApiKey": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CrosSeparateGeoApiKey" + ] + } + ] + } + ], "CrosSwitcher": [ { "platforms": [ @@ -7291,28 +7231,6 @@ ] } ], - "DIPSOnHTTPCache": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "AnyBounceTrigger", - "params": { - "triggering_action": "bounce" - }, - "enable_features": [ - "DIPS" - ] - } - ] - } - ], "DOMParserIncludeShadowRoots": [ { "platforms": [ @@ -7404,24 +7322,6 @@ ] } ], - "DataControlsScreenshotProtection": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableScreenshotProtection" - ] - } - ] - } - ], "DataMaskingReportingAPI": [ { "platforms": [ @@ -7643,6 +7543,24 @@ ] } ], + "DefaultProfileEnterpriseBadging": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnterpriseProfileBadgingForAvatar", + "EnterpriseProfileBadgingForMenu" + ] + } + ] + } + ], "DeferConciergeStartup": [ { "platforms": [ @@ -7751,7 +7669,7 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_135", "params": { "allowlist": "a.com,b.com,c.com,d.com,e.com,f.com,web-platform.test,www1.web-platform.test,127.0.0.1,example.test,www.google.com", "rollout_percent": "0" @@ -7772,8 +7690,8 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ + "name": "Disabled", + "disable_features": [ "DeprecatedExternalPickerFunction" ] } @@ -7944,6 +7862,24 @@ ] } ], + "DesktopNtpOneGoogleBarAsyncBarParts": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NtpOneGoogleBarAsyncBarParts" + ] + } + ] + } + ], "DesktopNtpTabResumption": [ { "platforms": [ @@ -8101,6 +8037,22 @@ ] } ], + "DeviceBoundSessionCredentials": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250312", + "enable_features": [ + "DeviceBoundSessions", + "PersistDeviceBoundSessions" + ] + } + ] + } + ], "DeviceIdValidation": [ { "platforms": [ @@ -8179,10 +8131,12 @@ ] } ], - "DirectCompositorThreadIpc": [ + "DirectCompositorThreadIpcMacLinuxChromeOS": [ { "platforms": [ - "linux" + "chromeos", + "linux", + "mac" ], "experiments": [ { @@ -8240,6 +8194,21 @@ ] } ], + "DisableCompositedProgressBar": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DisableCompositedProgressBar" + ] + } + ] + } + ], "DisableCompressParkableStrings": [ { "platforms": [ @@ -8505,6 +8474,21 @@ ] } ], + "DiscountsOnAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableDiscountInfoApi" + ] + } + ] + } + ], "DiskCacheBackendExperiment": [ { "platforms": [ @@ -8744,6 +8728,7 @@ "platforms": [ "android", "chromeos", + "ios", "linux", "mac", "windows" @@ -8779,6 +8764,22 @@ ] } ], + "EarlyEstablishGpuChannelAndroid": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "EarlyEstablishGpuChannel", + "enable_features": [ + "EarlyEstablishGpuChannel" + ] + } + ] + } + ], "EdgeToEdgeAndroid": [ { "platforms": [ @@ -8854,26 +8855,6 @@ ] } ], - "ElementGetInnerHTML": [ - { - "platforms": [ - "android", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Disabled", - "disable_features": [ - "ElementGetInnerHTML" - ] - } - ] - } - ], "En840AndFstDecoderParamsUpdate": [ { "platforms": [ @@ -8920,6 +8901,24 @@ ] } ], + "EnableAsyncUploadAfterVerdict": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableAsyncUploadAfterVerdict" + ] + } + ] + } + ], "EnableCertManagementUIV2": [ { "platforms": [ @@ -9223,22 +9222,6 @@ ] } ], - "EnablePixPayFlow": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableSyncingOfPixBankAccounts", - "EnablePixPayments" - ] - } - ] - } - ], "EnablePkcs12ToChapsDualWrite": [ { "platforms": [ @@ -9501,22 +9484,17 @@ ] } ], - "ExpandCompositedCullRect": [ + "ExpandCompositedCullRectMobile": [ { "platforms": [ "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "android_webview" ], "experiments": [ { - "name": "LargeChangedEnough", + "name": "LikelyLaunch", "params": { - "changed_enough": "1024" + "pixels": "2333" }, "enable_features": [ "ExpandCompositedCullRect" @@ -9545,6 +9523,27 @@ ] } ], + "ExportFrameTimingAfterFrameDoneExperiment": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ExportFrameTimingAfterFrameDone" + ] + } + ] + } + ], "ExtendedReportingRemovePrefDependency": [ { "platforms": [ @@ -9763,6 +9762,21 @@ ] } ], + "FastPairAdvertisingFormat2025": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FastPairAdvertisingFormat2025" + ] + } + ] + } + ], "FastPairHandshakeLongTermRefactor": [ { "platforms": [ @@ -9793,6 +9807,26 @@ ] } ], + "FastPathNoRaster": [ + { + "platforms": [ + "windows", + "mac", + "chromeos", + "linux", + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FastPathNoRaster" + ] + } + ] + } + ], "FasterSplitScreenSetup": [ { "platforms": [ @@ -9865,6 +9899,26 @@ ] } ], + "FedCmSegmentationPlatform": [ + { + "platforms": [ + "android", + "android_weblayer", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "SegmentationPlatform", + "enable_features": [ + "FedCmSegmentationPlatform" + ] + } + ] + } + ], "FeedLoadingPlaceholder": [ { "platforms": [ @@ -9898,6 +9952,8 @@ "FeedbackIncludeVariations": [ { "platforms": [ + "android", + "ios", "linux", "mac", "windows" @@ -10012,21 +10068,6 @@ ] } ], - "FetchGaiaHashOnSignIn": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FetchGaiaHashOnSignIn" - ] - } - ] - } - ], "FetchLaterAPI": [ { "platforms": [ @@ -10071,6 +10112,7 @@ "FingerprintingProtectionFilter": [ { "platforms": [ + "android", "chromeos", "linux", "mac", @@ -10096,33 +10138,6 @@ ] } ], - "FlattenCpuCgroups": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "EnabledWithFlattenCpuCgroups", - "params": { - "unified_cpu_cgroup": "false" - }, - "enable_features": [ - "FlattenCpuCgroups" - ] - }, - { - "name": "EnabledWithUnifiedCpuCgroup", - "params": { - "unified_cpu_cgroup": "true" - }, - "enable_features": [ - "FlattenCpuCgroups" - ] - } - ] - } - ], "FledgeBiddingAndAuctionNonceSupport": [ { "platforms": [ @@ -10142,6 +10157,25 @@ ] } ], + "FledgeModifyInterestGroupPolicyCheckOnOwner": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows", + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FledgeModifyInterestGroupPolicyCheckOnOwner" + ] + } + ] + } + ], "Floss": [ { "platforms": [ @@ -10549,6 +10583,54 @@ ] } ], + "GlicDogfood": [ + { + "platforms": [ + "mac", + "windows" + ], + "experiments": [ + { + "name": "GlicEnabled", + "params": { + "BackoffMultiplierBase": "2.0", + "MinPageCountBetweenNudges": "3", + "NudgeCapCount": "10", + "NudgeCapCountPerDomain": "3", + "NudgeCapTime": "8h", + "NudgeCapTimePerDomain": "8h" + }, + "enable_features": [ + "ContextualCueing", + "Glic" + ] + } + ] + } + ], + "GlicDogfoodSettings": [ + { + "platforms": [ + "mac", + "windows" + ], + "experiments": [ + { + "name": "GlicSettingsEnabled", + "params": { + "has_background": "false" + }, + "enable_features": [ + "GlicDevelopmentCookies", + "GlicFreURLConfig", + "GlicKeyboardShortcutNewBadge", + "GlicURLConfig", + "IPH_GlicPromo" + ] + } + ] + } + ], "GlobalVaapiLock": [ { "platforms": [ @@ -10839,6 +10921,30 @@ ] } ], + "GwpAsanIOS2025": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "EnabledLowerTotalPages", + "params": { + "AllocationSamplingMultiplier": "2000", + "AllocationSamplingRange": "20", + "MaxAllocations": "2048", + "MaxMetadata": "2048", + "ProcessSamplingProbability": "0.1", + "TotalPages": "6144" + }, + "enable_features": [ + "GwpAsanMalloc", + "GwpAsanPartitionAlloc" + ] + } + ] + } + ], "HTTP2": [ { "platforms": [ @@ -11377,21 +11483,16 @@ ] } ], - "HeapProfilerMobileSamplingRate": [ + "HeapProfilerExcludeChromeOSRenderers": [ { "platforms": [ - "android", - "ios" + "chromeos" ], "experiments": [ { "name": "Enabled", "params": { - "browser-sampling-rate-bytes": "10000000", - "gpu-sampling-rate-bytes": "5000000", - "network-sampling-rate-bytes": "10000000", - "renderer-sampling-rate-bytes": "10000000", - "utility-sampling-rate-bytes": "1000000" + "renderer-prob-pct": "0" }, "enable_features": [ "HeapProfilerReporting" @@ -11548,6 +11649,26 @@ ] } ], + "HstsTopLevelNavigationsOnly": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "HstsTopLevelNavigationsOnly" + ] + } + ] + } + ], "HttpCacheNoVarySearch": [ { "platforms": [ @@ -11562,7 +11683,14 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_NVS_Omnibox_Prefetch", + "enable_features": [ + "HttpCacheNoVarySearch", + "SearchPrefetchWithNoVarySearchDiskCache" + ] + }, + { + "name": "Enabled_NVS_HttpCache_Only", "enable_features": [ "HttpCacheNoVarySearch" ] @@ -11604,7 +11732,8 @@ "chromeos", "linux", "mac", - "windows" + "windows", + "android" ], "experiments": [ { @@ -11642,10 +11771,11 @@ ], "experiments": [ { - "name": "Enabled_WithThrottling_20250121", + "name": "Enabled_XhrPatch_20250320", "enable_features": [ "AutofillAcrossIframesIos", - "AutofillAcrossIframesIosThrottling" + "AutofillAcrossIframesIosThrottling", + "AutofillFixXhrForXframe" ], "disable_features": [ "AutofillAcrossIframesIosTriggerFormExtraction" @@ -11654,6 +11784,21 @@ ] } ], + "IOSAutofillCorrectUserEditedBitInParsedField": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillCorrectUserEditedBitInParsedField" + ] + } + ] + } + ], "IOSAutofillFixPostFillingPaymentSheet": [ { "platforms": [ @@ -11736,6 +11881,24 @@ ] } ], + "IOSBestFeaturesScreenInFirstRun": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_GeneralScreenAfterDBP", + "params": { + "BestFeaturesScreenInFirstRunParam": "1" + }, + "enable_features": [ + "BestFeaturesScreenInFirstRunExperience" + ] + } + ] + } + ], "IOSBrowserEditMenuMetrics": [ { "platforms": [ @@ -11751,6 +11914,52 @@ ] } ], + "IOSChromnientDenseText": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensVsintParamEnabled" + ] + } + ] + } + ], + "IOSChromnientEscapeHatch": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IPH_iOSLensOverlayEscapeHatchTip", + "LensOverlayEnableLVFEscapeHatch" + ] + } + ] + } + ], + "IOSCleanupHangingPasswordFormExtractionRequests": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IosCleanupHangingPasswordFormExtractionRequests" + ] + } + ] + } + ], "IOSCriteriaExperimentEnabled": [ { "platforms": [ @@ -12041,6 +12250,11 @@ "enable_features": [ "LensUnaryApisWithHttpTransportEnabled", "LensUnaryHttpTransportEnabled" + ], + "disable_features": [ + "LensBlockFetchObjectsInteractionRPCsOnSeparateHandshake", + "LensPrewarmHardStickinessInInputSelection", + "LensPrewarmHardStickinessInQueryFormulation" ] } ] @@ -12091,21 +12305,6 @@ ] } ], - "IOSInactiveTabsIPad": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "InactiveTabsIPadFeature" - ] - } - ] - } - ], "IOSIncognitoSoftLock": [ { "platforms": [ @@ -12136,36 +12335,6 @@ ] } ], - "IOSInterruptibleCoordinatorAlwaysDismissed": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "IOSInterruptibleCoordinatorAlwaysDismissed", - "enable_features": [ - "IOSInterruptibleCoordinatorAlwaysDismissed" - ] - } - ] - } - ], - "IOSInterruptibleCoordinatorStoppedSynchronously": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "IOSInterruptibleCoordinatorStoppedSynchronously", - "enable_features": [ - "IOSInterruptibleCoordinatorStoppedSynchronously" - ] - } - ] - } - ], "IOSKeepsRenderProcessAlive": [ { "platforms": [ @@ -12196,6 +12365,21 @@ ] } ], + "IOSManageAccountStorage": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_20250328", + "enable_features": [ + "IOSManageAccountStorage" + ] + } + ] + } + ], "IOSManualLogUploadsInTheFRE": [ { "platforms": [ @@ -12298,6 +12482,21 @@ ] } ], + "IOSPasskeysM2": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSPasskeysM2" + ] + } + ] + } + ], "IOSPasswordBottomSheetV2": [ { "platforms": [ @@ -12328,7 +12527,50 @@ ] } ], - "IOSReactivationNotifications": [ + "IOSProactiveTipsNotifications": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "LensFirst_7day", + "enable_features": [ + "IOSReactivationNotifications" + ] + }, + { + "name": "LensFirst_3Day", + "params": { + "reactivation_trigger_time": "72h" + }, + "enable_features": [ + "IOSReactivationNotifications" + ] + }, + { + "name": "ESBFirst_7Day", + "params": { + "reactivation_order": "8,7,1" + }, + "enable_features": [ + "IOSReactivationNotifications" + ] + }, + { + "name": "ESBFirst_3Day", + "params": { + "reactivation_order": "8,7,1", + "reactivation_trigger_time": "72h" + }, + "enable_features": [ + "IOSReactivationNotifications" + ] + } + ] + } + ], + "IOSReaderModeMetrics": [ { "platforms": [ "ios" @@ -12337,7 +12579,8 @@ { "name": "Enabled", "enable_features": [ - "IOSReactivationNotifications" + "EnableReaderModeDistiller", + "EnableReaderModeDistillerHeuristic" ] } ] @@ -12373,57 +12616,6 @@ ] } ], - "IOSSetUpListInFirstRun": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "SetUpListInFirstRunParam": "1" - }, - "enable_features": [ - "SetUpListInFirstRun" - ] - } - ] - } - ], - "IOSSetUpListShortenedDuration": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "SetUpListDurationParam": "3" - }, - "enable_features": [ - "SetUpListShortenedDuration" - ] - } - ] - } - ], - "IOSSetUpListWithoutSignInItem": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SetUpListWithoutSignInItem" - ] - } - ] - } - ], "IOSSharedHighlightingColorChange": [ { "platforms": [ @@ -12439,6 +12631,21 @@ ] } ], + "IOSSignInButtonWithoutAvatar": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SignInButtonNoAvatar" + ] + } + ] + } + ], "IOSSignInUff": [ { "platforms": [ @@ -12454,6 +12661,21 @@ ] } ], + "IOSSkipCookieCaching": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SkipCookieCaching" + ] + } + ] + } + ], "IOSStart4Hour": [ { "platforms": [ @@ -12562,9 +12784,9 @@ ], "experiments": [ { - "name": "BelowOmniboxWithButtons", + "name": "Enabled", "params": { - "tab-group-indicator-below-omnibox": "true", + "tab-group-indicator-below-omnibox": "false", "tab-group-indicator-buttons": "true", "tab-group-indicator-visible": "true" }, @@ -12590,24 +12812,34 @@ ] } ], - "IOSTabResumption2": [ + "IOSTabResumptionThumbnails": [ { "platforms": [ "ios" ], "experiments": [ { - "name": "Tab_Resumption_2_Random_Data_20241001", + "name": "Enabled", "params": { - "use_random_score": "true" + "tr-images-type": "thumbnails" }, "enable_features": [ - "PageContentAnnotations", - "SegmentationPlatformURLVisitResumptionRanker", - "TabResumption2" - ], - "disable_features": [ - "VisitedURLRankingHistoryVisibilityScoreFilter" + "TabResumptionImages" + ] + } + ] + } + ], + "IOSTailoredNonModalDBPromo": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TailoredNonModalDBPromo" ] } ] @@ -12706,21 +12938,22 @@ ], "experiments": [ { - "name": "enabled_proxy_a_ip_protection_phase_04_19_2024", + "name": "enabled_baseline_2025-03-19_Stable_Perf_External", "params": { + "IpPrivacyAuthTokenCacheBatchSize": "64", + "IpPrivacyAuthTokenCacheLowWaterMark": "16", "IpPrivacyBsaEnablePrivacyPass": "true", + "IpPrivacyCacheTokensByGeo": "true", + "IpPrivacyDebugExperimentArm": "6", "IpPrivacyDirectOnly": "false", - "IpPrivacyIncludeOAuthTokenInGetProxyConfig": "true", - "IpPrivacyTokenServer": "https://phosphor-pa.googleapis.com", - "IpPrivacyTokenServerGetInitialDataPath": "/v1/ipblinding/getInitialData", - "IpPrivacyTokenServerGetProxyConfigPath": "/v1/ipblinding/getProxyConfig", - "IpPrivacyTokenServerGetTokensPath": "/v1/ipblinding/auth", "IpPrivacyUseProxyChains": "true", - "MaskedDomainListExperimentalVersion": "rc0" + "IpPrivacyUseQuicProxies": "false", + "MaskedDomainListExperimentalVersion": "" }, "enable_features": [ "EnableIpPrivacyProxy", - "MaskedDomainList" + "MaskedDomainList", + "PartitionProxyChains" ] } ] @@ -12773,6 +13006,22 @@ ] } ], + "IdentityDiscAccountMenu2": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IdentityConfirmationSnackbar", + "IdentityDiscAccountMenu" + ] + } + ] + } + ], "IgnoreDiscardAttemptMarker": [ { "platforms": [ @@ -12906,24 +13155,6 @@ ] } ], - "InitImageDecodeLastUseTime": [ - { - "platforms": [ - "android", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "InitImageDecodeLastUseTime" - ] - } - ] - } - ], "InlineFullscreenPerfExperiment": [ { "platforms": [ @@ -12942,6 +13173,24 @@ ] } ], + "InputScenarioPriorityBoostDesktop": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "InputScenarioPriorityBoost" + ] + } + ] + } + ], "InsecureFormSubmissionInterstitial": [ { "platforms": [ @@ -12988,7 +13237,25 @@ ] } ], - "InvalidationsWithDirectMessagesPerPlatform": [ + "InvalidationWithDirectMessagesCbcm": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CbcmPolicyInvalidationWithDirectMessagesEnabled", + "CbcmRemoteCommandsInvalidationWithDirectMessagesEnabled" + ] + } + ] + } + ], + "InvalidationWithDirectMessagesChromeOs": [ { "platforms": [ "chromeos" @@ -13001,26 +13268,42 @@ "DeviceLocalAccountPolicyInvalidationWithDirectMessagesEnabled", "DevicePolicyInvalidationWithDirectMessagesEnabled", "DeviceRemoteCommandsInvalidationWithDirectMessagesEnabled", - "UserCertProvisioningInvalidationWithDirectMessagesEnabled", - "UserPolicyInvalidationWithDirectMessagesEnabled", - "UserRemoteCommandsInvalidationWithDirectMessagesEnabled" + "UserCertProvisioningInvalidationWithDirectMessagesEnabled" ] } ] - }, + } + ], + "InvalidationWithDirectMessagesUserPolicy": [ { "platforms": [ + "chromeos", "linux", "mac", "windows" ], "experiments": [ { - "name": "BrowserPolicyUserRemoteCommands", + "name": "Enabled", + "enable_features": [ + "UserPolicyInvalidationWithDirectMessagesEnabled" + ] + } + ] + } + ], + "InvalidationWithDirectMessagesUserRemoteCommands": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", "enable_features": [ - "CbcmPolicyInvalidationWithDirectMessagesEnabled", - "CbcmRemoteCommandsInvalidationWithDirectMessagesEnabled", - "UserPolicyInvalidationWithDirectMessagesEnabled", "UserRemoteCommandsInvalidationWithDirectMessagesEnabled" ] } @@ -13459,12 +13742,12 @@ "lcpp_adjust_image_load_priority_override_first_n_boost": "true", "lcpp_enable_image_load_priority_for_htmlimageelement": "false", "lcpp_enable_perf_improvements": "true", - "lcpp_histogram_sliding_window_size": "1000", "lcpp_image_load_priority": "medium", "lcpp_max_element_locator_length": "1024", "lcpp_max_histogram_buckets": "10", "lcpp_max_hosts_to_track": "100", - "lcpp_recorded_lcp_element_types": "image_only" + "lcpp_recorded_lcp_element_types": "image_only", + "lcpp_sliding_window_size": "1000" }, "enable_features": [ "LCPCriticalPathPredictor" @@ -13593,7 +13876,6 @@ { "platforms": [ "android", - "android_webview", "chromeos", "fuchsia", "linux", @@ -13610,6 +13892,21 @@ ] } ], + "LayoutNGShapeCacheWebview": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LayoutNGShapeCache" + ] + } + ] + } + ], "LazyBlinkTimezoneInit": [ { "platforms": [ @@ -13670,6 +13967,30 @@ ] } ], + "LegacyTabStateDeprecation": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_Delete_Migrated_Files_After_Restore_20250319", + "params": { + "delete_migrated_files_after_restore": "true" + }, + "enable_features": [ + "LegacyTabStateDeprecation" + ] + }, + { + "name": "Enabled_20250319", + "enable_features": [ + "LegacyTabStateDeprecation" + ] + } + ] + } + ], "LightweightUAFDetector": [ { "platforms": [ @@ -13851,6 +14172,40 @@ ] } ], + "LocalWebApprovalsIos": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LocalWebApprovals", + "SupervisedUserBlockInterstitialV3" + ] + } + ] + } + ], + "LocalWebApprovalsLinuxMacWindows": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LocalWebApprovals", + "SupervisedUserBlockInterstitialV3" + ] + } + ] + } + ], "LofnPermissiveUsbPassthrough": [ { "platforms": [ @@ -13902,6 +14257,43 @@ ] } ], + "LoginDbDeprecationAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "login-db-deprecation-export-delay-seconds": "5" + }, + "enable_features": [ + "LoginDbDeprecationAndroid" + ] + } + ] + } + ], + "LongAnimationFrameSourceCharPosition": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LongAnimationFrameSourceCharPosition" + ] + } + ] + } + ], "LowPriorityAsyncScriptExecution": [ { "platforms": [ @@ -14001,24 +14393,6 @@ ] } ], - "MacPlatformLocationProvider": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "LocationProviderManagerMode": "HybridPlatform" - }, - "enable_features": [ - "LocationProviderManager" - ] - } - ] - } - ], "MagicStackGradientView": [ { "platforms": [ @@ -14100,6 +14474,33 @@ ] } ], + "MaliciousApkDownloadCheck": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "//0": "This config is the intended feature to launch.", + "name": "Enabled", + "enable_features": [ + "MaliciousApkDownloadCheck" + ] + }, + { + "//0": "This config is an intermediate experimental state.", + "name": "EnabledTelemetryOnly", + "params": { + "sample_percentage": "1", + "telemetry_only": "true" + }, + "enable_features": [ + "MaliciousApkDownloadCheck" + ] + } + ] + } + ], "ManagedProfileRequiredInterstitial": [ { "platforms": [ @@ -14175,21 +14576,6 @@ ] } ], - "MediaFoundationAV1Encoding": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MediaFoundationAV1Encoding" - ] - } - ] - } - ], "MediaFoundationBatchRead": [ { "platforms": [ @@ -14256,16 +14642,11 @@ ] } ], - "MediaRecorderUseMediaVideoEncoder": [ + "MediaRecorderUseMediaVideoEncoderOnAndroid": [ { "platforms": [ "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" + "android_webview" ], "experiments": [ { @@ -14383,6 +14764,45 @@ ] } ], + "MemorySaverModeRenderTuning": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "available_memory_threshold_mb": "740" + }, + "enable_features": [ + "MemorySaverModeRenderTuning", + "OomIntervention" + ] + } + ] + }, + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "available_memory_threshold_mb": "740" + }, + "enable_features": [ + "MemorySaverModeRenderTuning" + ] + } + ] + } + ], "MerchantTrust": [ { "platforms": [ @@ -14611,22 +15031,6 @@ ] } ], - "MojoMessageAlwaysUseLatestVersion": [ - { - "platforms": [ - "android", - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MojoMessageAlwaysUseLatestVersion" - ] - } - ] - } - ], "MojoPredictiveAllocation": [ { "platforms": [ @@ -14646,21 +15050,6 @@ ] } ], - "MoveThemePrefsToSpecifics": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MoveThemePrefsToSpecifics" - ] - } - ] - } - ], "MsaaSettingsMac": [ { "platforms": [ @@ -15059,6 +15448,27 @@ ] } ], + "NoThrowForCSPBlockedWorker": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NoThrowForCSPBlockedWorker" + ] + } + ] + } + ], "NonAndroidUseFrameIntervalDecider": [ { "platforms": [ @@ -15410,6 +15820,21 @@ ] } ], + "OmniboxDefaultTypedNavigationsToHttps": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OmniboxDefaultTypedNavigationsToHttps" + ] + } + ] + } + ], "OmniboxDriveEligibility": [ { "platforms": [ @@ -15580,6 +16005,26 @@ ] } ], + "OmniboxOnDeviceBrainModel": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OmniboxOnDeviceTailModel" + ] + } + ] + } + ], "OmniboxOnDeviceHeadModelSelectionFix": [ { "platforms": [ @@ -15603,34 +16048,6 @@ ] } ], - "OmniboxOnDeviceTailSuggest": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OmniboxOnDeviceTailModel" - ] - }, - { - "name": "Enabled_Auto_Unload", - "params": { - "UnloadExecutorOnIdle ": "true" - }, - "enable_features": [ - "OmniboxOnDeviceTailModel" - ] - } - ] - } - ], "OmniboxPrerender": [ { "platforms": [ @@ -16410,7 +16827,6 @@ "PartitionAllocParameterTuning": [ { "platforms": [ - "android", "android_weblayer", "android_webview", "chromeos", @@ -16429,6 +16845,23 @@ ] } ], + "PartitionAllocParameterTuningAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_20250305", + "enable_features": [ + "BlinkUseLargeEmptySlotSpanRingForBufferRoot", + "PartitionAllocAdjustSizeWhenInForeground", + "PartitionAllocLargeEmptySlotSpanRing" + ] + } + ] + } + ], "PartitionAllocPermissiveMte": [ { "platforms": [ @@ -16554,25 +16987,6 @@ ] } ], - "PartitionVisitedLinkDatabaseWithSelfLinks": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "PartitionVisitedLinkDatabaseWithSelfLinks", - "enable_features": [ - "PartitionVisitedLinkDatabaseWithSelfLinks" - ] - } - ] - } - ], "PassHistogramSharedMemoryOnLaunch": [ { "platforms": [ @@ -16670,21 +17084,6 @@ ] } ], - "PasswordLeakToggleMove": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PasswordLeakToggleMove" - ] - } - ] - } - ], "PasswordManualFallbackAvailable": [ { "platforms": [ @@ -16703,21 +17102,6 @@ ] } ], - "PasswordlessGaiaForConsumers": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PasswordlessGaiaForConsumers" - ] - } - ] - } - ], "PasswordlessSetup": [ { "platforms": [ @@ -16770,24 +17154,6 @@ ] } ], - "PdfCr23": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PdfCr23" - ] - } - ] - } - ], "PdfInkSignatures": [ { "platforms": [ @@ -16929,6 +17295,8 @@ { "name": "Enabled", "enable_features": [ + "EarlyEstablishGpuChannel", + "EstablishGpuChannelAsync", "ExpandedPrefetchRange", "FledgeEnableWALForInterestGroupStorage", "MojoBindingsInlineSLS", @@ -16946,6 +17314,8 @@ { "name": "Enabled", "enable_features": [ + "EarlyEstablishGpuChannel", + "EstablishGpuChannelAsync", "FledgeEnableWALForInterestGroupStorage", "MojoBindingsInlineSLS", "NumberOfCoresWithCpuSecurityMitigation", @@ -16965,6 +17335,8 @@ { "name": "Enabled", "enable_features": [ + "EarlyEstablishGpuChannel", + "EstablishGpuChannelAsync", "FledgeEnableWALForInterestGroupStorage", "MojoBindingsInlineSLS", "ReduceCpuUtilization2", @@ -17047,18 +17419,52 @@ ] } ], - "PeripheralCustomization": [ + "PerformanceInterventionAlgorithm": [ { "platforms": [ - "chromeos" + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { - "name": "Enabled", + "name": "EnabledLessAggressive_20250326", + "params": { + "minimum_time_reshow": "1h", + "no_acceptance_back_off": "7d", + "scale_max_times_per_day": "3", + "scale_max_times_per_week": "21", + "window_size": "10" + }, "enable_features": [ - "PeripheralCustomization", - "SearchCustomizableShortcutsInLauncher", - "ShortcutCustomization" + "PerformanceInterventionNotificationImprovements" + ] + }, + { + "name": "EnabledMediumAggressive_20250326", + "params": { + "minimum_time_reshow": "1h", + "no_acceptance_back_off": "7d", + "scale_max_times_per_day": "10", + "scale_max_times_per_week": "70", + "window_size": "10" + }, + "enable_features": [ + "PerformanceInterventionNotificationImprovements" + ] + }, + { + "name": "EnabledMoreAggressive_20250326", + "params": { + "minimum_time_reshow": "1h", + "no_acceptance_back_off": "7d", + "scale_max_times_per_day": "24", + "scale_max_times_per_week": "168", + "window_size": "10" + }, + "enable_features": [ + "PerformanceInterventionNotificationImprovements" ] } ] @@ -17152,6 +17558,41 @@ ] } ], + "PinweaverPasswords": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CrOSLateBootPinweaverForPassword" + ] + } + ] + } + ], + "PlainTextPainter": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PlainTextPainter" + ] + } + ] + } + ], "PlusAddressAcceptedFirstTimeCreateSurvey": [ { "platforms": [ @@ -17385,7 +17826,6 @@ "name": "Enabled", "enable_features": [ "DedicatedWorkerAblationStudyEnabled", - "PlzDedicatedWorker", "ServiceWorkerClientIdAlignedWithSpec" ] } @@ -17418,7 +17858,15 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnabledeWithSummarizeSelected", + "enable_features": [ + "MahiPanelResizable", + "MahiSummarizeSelected", + "Pompano" + ] + }, + { + "name": "EnabledWithoutSummarizeSelected", "enable_features": [ "MahiPanelResizable", "Pompano" @@ -17520,6 +17968,38 @@ ] } ], + "PreconnectFromKeyedService": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "EnabledWithOTRtrue_20250319", + "params": { + "run_on_otr": "true" + }, + "enable_features": [ + "PreconnectFromKeyedService" + ] + }, + { + "name": "EnabledWithOTRfalse_20250319", + "params": { + "run_on_otr": "false" + }, + "enable_features": [ + "PreconnectFromKeyedService" + ] + } + ] + } + ], "PreconnectToSearchDesktop": [ { "platforms": [ @@ -17606,26 +18086,6 @@ ] } ], - "PrefetchNewWaitLoop": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20240909", - "enable_features": [ - "PrefetchNewWaitLoop" - ] - } - ] - } - ], "PrefetchProxyDesktop": [ { "platforms": [ @@ -17658,7 +18118,6 @@ { "name": "Enabled_20250129", "params": { - "PrefetchReusableUseNewWaitLoop": "true", "prefetch_reusable_body_size_limit": "4194304" }, "enable_features": [ @@ -17668,6 +18127,26 @@ ] } ], + "PrefetchServiceWorker": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrefetchServiceWorker" + ] + } + ] + } + ], "PrefetchServiceWorkerNoFetchHandlerFix": [ { "platforms": [ @@ -17865,21 +18344,6 @@ ] } ], - "PriceInsightsAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PriceInsights" - ] - } - ] - } - ], "PriceTrackingDesktopExpansionStudy": [ { "platforms": [ @@ -17942,29 +18406,6 @@ ] } ], - "PriceTrackingPromoIOS": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Tips_And_Price_Tracking_Enabled", - "params": { - "TipsEphemeralCardExperimentTrainParam": "lens_ephemeral_module_search_variation,save_passwords_ephemeral_module,enhanced_safe_browsing_ephemeral_module,address_bar_position_ephemeral_module", - "TipsEphemeralCardModuleMaxImpressionCount": "3", - "TipsLensShopExperimentType": "0", - "TipsSafeBrowsingExperimentType": "0" - }, - "enable_features": [ - "PriceTrackingPromo", - "SegmentationPlatformEphemeralCardRanker", - "SegmentationPlatformTipsEphemeralCard" - ] - } - ] - } - ], "PrintWithPostScriptType42Fonts": [ { "platforms": [ @@ -18029,21 +18470,6 @@ ] } ], - "PrivacyHubGeolocation": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CrosPrivacyHub" - ] - } - ] - } - ], "PrivacyIndicators": [ { "platforms": [ @@ -18203,10 +18629,9 @@ ] } ], - "PrivacySandboxEqualizedPromptButtons": [ + "PrivacySandboxAttestationsDefaultDeny": [ { "platforms": [ - "android", "chromeos", "chromeos_lacros", "linux", @@ -18215,9 +18640,9 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ - "PrivacySandboxEqualizedPromptButtons" + "name": "Disabled", + "disable_features": [ + "DefaultAllowPrivacySandboxAttestations" ] } ] @@ -18242,6 +18667,26 @@ ] } ], + "PrivacySandboxMigratePrefsToSchemaV2": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrivacySandboxMigratePrefsToSchemaV2" + ] + } + ] + } + ], "PrivacySandboxNoticeActionDebouncingAndroid": [ { "platforms": [ @@ -18297,6 +18742,25 @@ ] } ], + "PrivacySandboxRelatedWebsiteSetsUi": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrivacySandboxRelatedWebsiteSetsUi" + ] + } + ] + } + ], "PrivacySandboxSentimentSurvey": [ { "platforms": [ @@ -18494,21 +18958,6 @@ ] } ], - "ProjectorUseDVSPlaybackEndpoint": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ProjectorUseDVSPlaybackEndpoint" - ] - } - ] - } - ], "PropagateWebViewNetworkingSignals": [ { "platforms": [ @@ -18617,6 +19066,25 @@ ] } ], + "ProtectedAudienceClickiness": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AdAuctionEventRegistration" + ] + } + ] + } + ], "ProtectedAudienceDealsSupport": [ { "platforms": [ @@ -18753,7 +19221,7 @@ ] } ], - "ProtectedAudiencePrepareSellerContextsStudy": [ + "ProtectedAudienceSellerSignalsRequestsOneAtATime": [ { "platforms": [ "android", @@ -18766,13 +19234,13 @@ { "name": "Enabled", "enable_features": [ - "FledgePrepareSellerContextsInAdvance" + "FledgeSellerSignalsRequestsOneAtATime" ] } ] } ], - "ProtectedAudienceTrustedKVSupport": [ + "ProtectedAudienceSendDebugReportCooldownsToBandA": [ { "platforms": [ "android", @@ -18785,7 +19253,7 @@ { "name": "Enabled", "enable_features": [ - "FledgeTrustedSignalsKVv2Support" + "FledgeSendDebugReportCooldownsToBandA" ] } ] @@ -19111,22 +19579,6 @@ ] } ], - "RasterInducingScroll": [ - { - "platforms": [ - "linux", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RasterInducingScroll" - ] - } - ] - } - ], "RawDrawAndDrDc": [ { "platforms": [ @@ -19300,6 +19752,23 @@ ] } ], + "ReadAnythingReadAloudComponentUpdaterMigration": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WasmTtsComponentUpdaterEnabled" + ] + } + ] + } + ], "ReadAnythingReadAloudDesktop": [ { "platforms": [ @@ -19388,24 +19857,6 @@ ] } ], - "RecordFreezingEligibilityUKM": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RecordFreezingEligibilityUKM" - ] - } - ] - } - ], "RedWarningSurvey": [ { "platforms": [ @@ -19449,6 +19900,25 @@ ] } ], + "ReduceAcceptLanguageHTTP": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ReduceAcceptLanguageHTTP" + ] + } + ] + } + ], "ReduceCpuUtilization2": [ { "platforms": [ @@ -19713,21 +20183,6 @@ ] } ], - "RemoveSearchEngineChoiceAttribution": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RemoveSearchEngineChoiceAttribution" - ] - } - ] - } - ], "RenderArcNotificationsByChrome": [ { "platforms": [ @@ -19749,6 +20204,29 @@ ] } ], + "RenderBlockingFullFrameRate": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "throttle-frame-rate-on-initialization": "true" + }, + "enable_features": [ + "RenderBlockingFullFrameRate" + ] + } + ] + } + ], "RenderDocumentWithNavigationQueueing": [ { "platforms": [ @@ -19882,6 +20360,26 @@ ] } ], + "RendererSideContentDecoding": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RendererSideContentDecoding" + ] + } + ] + } + ], "ReportCertificateErrors": [ { "platforms": [ @@ -19993,21 +20491,6 @@ ] } ], - "RetainOmniboxOnFocus": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RetainOmniboxOnFocus" - ] - } - ] - } - ], "RetryGetVideoCaptureDeviceInfos": [ { "platforms": [ @@ -20060,6 +20543,22 @@ ] } ], + "RunBeforeUnloadClosureOnStackInvestigation": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RunBeforeUnloadClosureOnStackInvestigation" + ] + } + ] + } + ], "RustyPng": [ { "platforms": [ @@ -20081,21 +20580,6 @@ ] } ], - "SafeBrowsingAsyncRealTimeCheck": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SafeBrowsingAsyncRealTimeCheck" - ] - } - ] - } - ], "SafeBrowsingDailyPhishingReportsLimit": [ { "platforms": [ @@ -21530,22 +22014,6 @@ ] } ], - "ScreencastServerBasedUSMRNNTLocales": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "InternalServerSideSpeechRecognitionUSMModelFinch", - "ProjectorUseUSMForS3" - ] - } - ] - } - ], "ScrimForBrowserWindowModal": [ { "platforms": [ @@ -22370,6 +22838,24 @@ ] } ], + "ShopCardIOS": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_20250321", + "params": { + "ShopCardVariant": "arm_3" + }, + "enable_features": [ + "ShopCard" + ] + } + ] + } + ], "ShortCircuitUnfocusAnimation": [ { "platforms": [ @@ -22653,27 +23139,6 @@ ] } ], - "SiteInstanceGroupsForDataUrls": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SiteInstanceGroupsForDataUrls" - ] - } - ] - } - ], "SkiaGraphite": [ { "platforms": [ @@ -22694,6 +23159,21 @@ ] } ], + "SkipGrantAccessToDataPathIfAlreadySet": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SkipGrantAccessToDataPathIfAlreadySet" + ] + } + ] + } + ], "SkipIsolatedSplitPreload": [ { "platforms": [ @@ -22744,27 +23224,6 @@ ] } ], - "SkipUnnecessaryRemoteFrameGeometryPropagation": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SkipUnnecessaryRemoteFrameGeometryPropagation" - ] - } - ] - } - ], "SkyVaultGA": [ { "platforms": [ @@ -22956,25 +23415,6 @@ ] } ], - "SplitCacheByNavigationInitiatorSite": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "CrossSiteMainFrameNavigationBoolean_CANARY_DEV_20240916", - "enable_features": [ - "SplitCacheByCrossSiteMainFrameNavigationBoolean" - ] - } - ] - } - ], "SplitCacheByNetworkIsolationKey": [ { "platforms": [ @@ -23076,47 +23516,6 @@ ] } ], - "StaleStorageCleanup": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DeleteOrphanLocalStorageOnStartup", - "DeleteStaleLocalStorageOnStartup", - "EvictOrphanQuotaStorage", - "EvictStaleQuotaStorage" - ] - }, - { - "name": "Auto_Dogfood", - "enable_features": [ - "DeleteOrphanLocalStorageOnStartup", - "DeleteStaleLocalStorageOnStartup", - "EvictOrphanQuotaStorage", - "EvictStaleQuotaStorage" - ] - }, - { - "name": "Opt_In_Dogfood", - "enable_features": [ - "DeleteOrphanLocalStorageOnStartup", - "DeleteStaleLocalStorageOnStartup", - "EvictOrphanQuotaStorage", - "EvictStaleQuotaStorage" - ] - } - ] - } - ], "StandardizedBrowserZoom": [ { "platforms": [ @@ -23248,6 +23647,21 @@ ] } ], + "SupportMultipleServerRequestsForPixPayments": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SupportMultipleServerRequestsForPixPayments" + ] + } + ] + } + ], "SuppressesNetworkActivitiesOnSlowNetwork": [ { "platforms": [ @@ -23297,23 +23711,6 @@ ] } ], - "SyncMinimizeDeletionsDuringBookmarkBatchUpload": [ - { - "platforms": [ - "android", - "ios" - ], - "experiments": [ - { - "name": "Enabled_WithFastDeletions", - "enable_features": [ - "SyncFastDeletionsDuringBookmarkBatchUpload", - "SyncMinimizeDeletionsDuringBookmarkBatchUpload" - ] - } - ] - } - ], "SyncPointGraphValidation": [ { "platforms": [ @@ -23594,21 +23991,6 @@ ] } ], - "TabSwitcherFullNewTabButton": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabSwitcherFullNewTabButton" - ] - } - ] - } - ], "TabstripComboButton": [ { "platforms": [ @@ -23848,22 +24230,17 @@ ] } ], - "ThrottleMainFrameTo60Hz": [ + "ThrottleMainFrameTo60HzV2": [ { "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { - "name": "Enabled", + "name": "ThrottledUrgentInput_20250325", "enable_features": [ - "ThrottleMainFrameTo60Hz" + "ThrottleMainFrameTo60Hz", + "UrgentMainFrameForInput" ] } ] @@ -23962,21 +24339,6 @@ ] } ], - "TraceBinderIpc": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TraceBinderIpc" - ] - } - ] - } - ], "TraceSiteInstanceGetProcessCreation": [ { "platforms": [ @@ -24279,6 +24641,22 @@ ] } ], + "URLFilteringForAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnterpriseRealTimeUrlCheckOnAndroid", + "EnterpriseUrlFilteringEventReportingOnAndroid" + ] + } + ] + } + ], "USSMigrationEnabled": [ { "platforms": [ @@ -24328,7 +24706,7 @@ ] } ], - "UnoDesktopM0Followup": [ + "UnoDesktopM0FollowUpPart2": [ { "platforms": [ "linux", @@ -24339,10 +24717,9 @@ { "name": "Enabled", "enable_features": [ - "AutofillRemovePaymentsButterDropdown", - "ImprovedSettingsUIOnDesktop", - "ImprovedSigninUIOnDesktop", - "OutlineSilhouetteIcon" + "EnableImprovedGuestProfileMenu", + "EnablePendingModePasswordsPromo", + "EnableSnackbarInSettings" ] } ] @@ -24399,21 +24776,6 @@ ] } ], - "UseAccountListFromIdentityManager": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseAccountListFromIdentityManager" - ] - } - ] - } - ], "UseAdHocSigningForWebAppShims": [ { "platforms": [ @@ -24430,21 +24792,6 @@ ] } ], - "UseAvailableMemoryThresholds": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseAvailableMemoryThresholds" - ] - } - ] - } - ], "UseBoringSSLForRandBytes": [ { "platforms": [ @@ -24578,6 +24925,21 @@ ] } ], + "UseFirstCoalescedFrameAsFlingGenerationTimestamp": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseFirstCoalescedFrameAsFlingGenerationTimestamp" + ] + } + ] + } + ], "UseGMSCoreForBrandingInfo": [ { "platforms": [ @@ -24593,40 +24955,6 @@ ] } ], - "UseItemSnippetsAPI": [ - { - "platforms": [ - "linux", - "mac", - "windows", - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseItemSnippetsAPI" - ] - } - ] - }, - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "//0": "TODO(crbug.com/325314721): Enable the experiment", - "//1": "for chromeos once test migration for the new API", - "//2": "has been completed.", - "name": "Disabled", - "disable_features": [ - "UseItemSnippetsAPI" - ] - } - ] - } - ], "UseSCContentSharingPicker": [ { "platforms": [ @@ -24751,11 +25079,12 @@ ], "experiments": [ { - "name": "Time180", + "name": "Time180Sparkplug", "params": { "V8FlushCodeOldTime": "180" }, "enable_features": [ + "V8FlushBaselineCode", "V8FlushCodeBasedOnTime" ], "disable_features": [ @@ -24855,34 +25184,6 @@ ] } ], - "V8FlushBaselineCode": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "V8FlushBaselineCode" - ] - }, - { - "name": "Disabled", - "disable_features": [ - "V8FlushBaselineCode" - ] - } - ] - } - ], "V8GCSpeedUsesCounters": [ { "platforms": [ @@ -24982,26 +25283,6 @@ ] } ], - "V8MinorGcTaskWithLowerPriority": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "V8Flag_minor_gc_task_with_lower_priority" - ] - } - ] - } - ], "V8ParallelReclaimUnmodifiedWrappers": [ { "platforms": [ @@ -25509,29 +25790,6 @@ ] } ], - "WaitForLateScrollEvents": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "DispatchScrollEventsUntilDeadline", - "params": { - "mode": "DispatchScrollEventsUntilDeadline" - }, - "enable_features": [ - "WaitForLateScrollEvents" - ] - } - ] - } - ], "WebApkBackupAndRestore": [ { "platforms": [ @@ -25721,6 +25979,7 @@ { "platforms": [ "android", + "android_webview", "chromeos" ], "experiments": [ @@ -25888,13 +26147,7 @@ ], "experiments": [ { - "name": "Enabled:true,CandidateFactors:1.02|1.0|0.95,DelayBasedCandidate:true,HigherBwBiasFactor:0.0002,HigherLogBwBiasFactor:0.02,ObservationDurationLowerBound:250ms,InstantUpperBoundBwBalance:75kbps,BwRampupUpperBoundFactor:1000000.0,InstantUpperBoundTemporalWeightFactor:0.9,TemporalWeightFactor:0.9,MaxIncreaseFactor:1.3,NewtonStepSize:0.75,InherentLossUpperBoundBwBalance:75kbps,LossThresholdOfHighBandwidthPreference:0.15,_20220905" - }, - { - "name": "Enabled:true,CandidateFactors:1.02|1.0|0.95,DelayBasedCandidate:true,HigherBwBiasFactor:0.0002,HigherLogBwBiasFactor:0.02,ObservationDurationLowerBound:250ms,InstantUpperBoundBwBalance:75kbps,BwRampupUpperBoundFactor:1000000.0,InstantUpperBoundTemporalWeightFactor:0.9,TemporalWeightFactor:0.9,MaxIncreaseFactor:1.3,NewtonStepSize:0.75,InherentLossUpperBoundBwBalance:75kbps,LossThresholdOfHighBandwidthPreference:0.15,NotIncreaseIfInherentLossLessThanAverageLoss:true,_20220905" - }, - { - "name": "Enabled:true,CandidateFactors:1.02|1.0|0.95,DelayBasedCandidate:true,HigherBwBiasFactor:0.0002,HigherLogBwBiasFactor:0.02,ObservationDurationLowerBound:250ms,InstantUpperBoundBwBalance:75kbps,BwRampupUpperBoundFactor:1000000.0,InstantUpperBoundTemporalWeightFactor:0.9,TemporalWeightFactor:0.9,MaxIncreaseFactor:1.3,NewtonStepSize:0.75,InherentLossUpperBoundBwBalance:75kbps,LossThresholdOfHighBandwidthPreference:0.15,NotIncreaseIfInherentLossLessThanAverageLoss:true,TrendlineIntegrationEnabled:true,TrendlineObservationsWindowSize:2,_20220905" + "name": "Enabled:true,InstantUpperBoundBwBalance:100kbps,InherentLossUpperBoundBwBalance:100kbps,LossThresholdOfHighBandwidthPreference:0.2,UseByteLossRate:true,ObservationWindowSize:15,BwRampupUpperBoundFactor:1.5,BwRampupUpperBoundInHoldFactor:1.2,BwRampupUpperBoundHoldThreshold:1.3,BoundBestCandidate:true,UseInStartPhase:true,LowerBoundByAckedRateFactor:1.0,HoldDurationFactor:2.0,PaddingDuration:2000ms,PaceAtLossBasedEstimate:true" } ] } @@ -26256,6 +26509,60 @@ ] } ], + "WebUIBundledCodeCache": [ + { + "platforms": [ + "linux", + "windows" + ], + "experiments": [ + { + "name": "EnabledSyncFetch", + "params": { + "WebUIBundledCodeCacheGenerateResourceMap": "true" + }, + "enable_features": [ + "WebUIBundledCodeCache" + ], + "disable_features": [ + "WebUIBundledCodeCacheAsyncFetch" + ] + }, + { + "name": "EnabledAsyncFetch", + "params": { + "WebUIBundledCodeCacheGenerateResourceMap": "true" + }, + "enable_features": [ + "WebUIBundledCodeCache", + "WebUIBundledCodeCacheAsyncFetch" + ] + }, + { + "name": "EnvironmentControl", + "params": { + "WebUIBundledCodeCacheGenerateResourceMap": "false" + }, + "enable_features": [ + "WebUIBundledCodeCache" + ], + "disable_features": [ + "WebUIBundledCodeCacheAsyncFetch" + ] + }, + { + "name": "FeatureControl", + "params": { + "WebUIBundledCodeCacheGenerateResourceMap": "false" + }, + "disable_features": [ + "WebUIBundledCodeCache", + "WebUIBundledCodeCacheAsyncFetch" + ] + } + ] + } + ], "WebUIInProcessResourceLoading": [ { "platforms": [ @@ -26344,21 +26651,6 @@ ] } ], - "WebViewEnableADPFGpuMain": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebViewEnableADPFGpuMain" - ] - } - ] - } - ], "WebViewFileSystemAccessDirectoryIterationBlocklistCheckReenable": [ { "platforms": [ @@ -26404,21 +26696,6 @@ ] } ], - "WebViewPartitionedCookiesExcluded": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebViewPartitionedCookiesExcluded" - ] - } - ] - } - ], "WebViewPrefetchNativeLibrary": [ { "platforms": [ @@ -26452,6 +26729,21 @@ ] } ], + "WebViewSafeAreaIncludesSystemBars": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewSafeAreaIncludesSystemBars" + ] + } + ] + } + ], "WebViewSeparateResourceContext": [ { "platforms": [ @@ -26467,6 +26759,38 @@ ] } ], + "WebViewSharedStorageAPI": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FencedFrames", + "FencedFramesAPIChanges", + "SharedStorageAPI" + ] + } + ] + } + ], + "WebViewShortCircuitShouldInterceptRequest": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewShortCircuitShouldInterceptRequest" + ] + } + ] + } + ], "WebViewSurfaceControl": [ { "platforms": [ @@ -26700,6 +27024,25 @@ ] } ], + "WinPlatformLocationProvider": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "LocationProviderManagerMode": "PlatformOnly" + }, + "enable_features": [ + "LocationProviderManager", + "WinSystemLocationPermission" + ] + } + ] + } + ], "WinSboxCsrssLockdown": [ { "platforms": [ @@ -26731,21 +27074,6 @@ ] } ], - "WinSystemLocationPermission": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WinSystemLocationPermission" - ] - } - ] - } - ], "WindowsSystemTracing": [ { "platforms": [ diff --git a/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom index 6d4f98ce..3c5ab151 100755 --- a/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom +++ b/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom @@ -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 diff --git a/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom index f3f00b84..e7c3bc26 100755 --- a/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom +++ b/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/accessibility/aria_notification_options.idl b/tools/under-control/src/third_party/blink/renderer/core/accessibility/aria_notification_options.idl index 0e126eb4..9a97b7c0 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/accessibility/aria_notification_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/accessibility/aria_notification_options.idl @@ -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 = ""; }; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl index 03be82a3..194590e7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl @@ -64,4 +64,5 @@ enum ReplaceState { "active", "removed", "persisted" }; [Measure] attribute EventHandler onremove; [CallWith=ScriptState] readonly attribute Promise finished; [CallWith=ScriptState] readonly attribute Promise ready; + [RuntimeEnabled=AnimationTrigger] attribute AnimationTrigger? trigger; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl index 3a339bc5..c76b635a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_margin_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_margin_rule.idl index 7b0b139d..eb40b041 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/css_margin_rule.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_margin_rule.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_rule.idl index 194f50e0..e6d81c20 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/css_rule.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_rule.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc b/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc index 7f6810bd..bc49c4ba 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc @@ -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(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(); // ( ) const MediaQueryExpNode* feature = - ConsumeFeature(stream, MediaQueryFeatureSet()); + ConsumeFeature(stream, MediaQueryParser::MediaQueryFeatureSet()); if (feature && guard.Release()) { stream.ConsumeWhitespace(); return MediaQueryExpNode::Nested(feature); diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl index 5e745026..1196fcb7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl @@ -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(); diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl index 2316b4e0..0ed1a34f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/get_inner_html_options.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/get_inner_html_options.idl deleted file mode 100755 index e862c2af..00000000 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/get_inner_html_options.idl +++ /dev/null @@ -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 closedRoots; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 b/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 index aebd8167..a2187f49 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 +++ b/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 @@ -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", ], } diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl index 5440ecb4..09f05502 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/progress_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/progress_event.idl index 72491678..b2fafe6c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/progress_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/progress_event.idl @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/progress_event_init.idl b/tools/under-control/src/third_party/blink/renderer/core/events/progress_event_init.idl index 0c0a49b1..d1f97179 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/progress_event_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/progress_event_init.idl @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc b/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc index fd5c0566..1af1fa03 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -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) { diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 b/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 index 6566580e..f4cdee12 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 @@ -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", + }, + // 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 diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data.idl index 381f7439..57b26f32 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data.idl @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data_settings.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data_settings.idl index 6fe41cb7..268c8f9b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data_settings.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/image_data_settings.idl @@ -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"; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl index eeeff50b..e4fcd2fd 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl b/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl index 01b8c862..176b7621 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/fence.idl b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/fence.idl index b46c80bd..e33e2d95 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/fence.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/fence.idl @@ -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 getNestedConfigs(); - [CallWith=ScriptState, RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess] Promise disableUntrustedNetwork(); - [RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess] void notifyEvent(Event triggering_event); + [CallWith=ScriptState, RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess, MeasureAs=FencedFrameDisableUntrustedNetwork] Promise disableUntrustedNetwork(); + [RaisesException, RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess, MeasureAs=FencedFrameNotifyEvent] void notifyEvent(Event triggering_event); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl index ee383283..9f597967 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl index f9b20c2c..2f5c94c6 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl index 2913f10a..d8f1bd6c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl index e7ea73f3..30eca45a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl @@ -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; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl index 6b0a63b4..a1071e6f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl @@ -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 diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_option_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_option_element.idl index 30f91ece..512fa909 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_option_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_option_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl index 369394a6..9002e2a4 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl index 71e25667..67f33093 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl index 7dc62386..79fca97a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl index 12d650f2..597b8a54 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl @@ -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); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl index 8ea4dcfc..9dd7c806 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl @@ -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; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigate_event.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigate_event.idl index 4f454b27..45487bee 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigate_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigate_event.idl @@ -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(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_intercept_options.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_intercept_options.idl index 4e91e93b..f508669b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_intercept_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_intercept_options.idl @@ -4,12 +4,13 @@ // https://wicg.github.io/navigation-api/ callback NavigationInterceptHandler = Promise(); +callback NavigationInterceptPrecommitHandler = Promise(NavigationPrecommitController controller); dictionary NavigationInterceptOptions { NavigationInterceptHandler handler; + [RuntimeEnabled=NavigateEventCommitBehavior] NavigationInterceptPrecommitHandler precommitHandler; NavigationFocusReset focusReset; NavigationScrollBehavior scroll; - NavigationCommitBehavior commit; }; enum NavigationFocusReset { @@ -21,8 +22,3 @@ enum NavigationScrollBehavior { "after-transition", "manual" }; - -enum NavigationCommitBehavior { - "after-transition", - "immediate" -}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl new file mode 100755 index 00000000..0cc1b5ff --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl @@ -0,0 +1,12 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://wicg.github.io/navigation-api/ +[ + Exposed=Window, + RuntimeEnabled=NavigateEventCommitBehavior +] +interface NavigationPrecommitController { + [RaisesException] undefined redirect(USVString url); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl b/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl index 3792a5d3..54747e6b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl @@ -19,7 +19,7 @@ interface Sanitizer { // Modify a Sanitizer’s lists and fields: undefined allowElement(SanitizerElementWithAttributes element); undefined removeElement(SanitizerElement element); - undefined replaceWithChildrenElement(SanitizerElement element); + undefined replaceElementWithChildren(SanitizerElement element); undefined allowAttribute(SanitizerAttribute attribute); undefined removeAttribute(SanitizerAttribute attribute); undefined setComments(boolean allow); diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_geometry_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_geometry_element.idl index 02711605..02e51a18 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_geometry_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_geometry_element.idl @@ -34,9 +34,8 @@ interface SVGGeometryElement : SVGGraphicsElement { [SameObject] readonly attribute SVGAnimatedNumber pathLength; - // TODO(foolip): SVGPoint should be DOMPoint. - [HighEntropy, Measure] boolean isPointInFill(SVGPoint point); - [HighEntropy, Measure] boolean isPointInStroke(SVGPoint point); + [HighEntropy, Measure] boolean isPointInFill(optional DOMPointInit point = {}); + [HighEntropy, Measure] boolean isPointInStroke(optional DOMPointInit point = {}); [HighEntropy, Measure, RaisesException] float getTotalLength(); [HighEntropy, Measure, RaisesException] SVGPoint getPointAtLength(float distance); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl index a51524b7..49676f57 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl @@ -38,11 +38,10 @@ interface SVGTextContentElement : SVGGraphicsElement { long getNumberOfChars(); [HighEntropy, Measure] float getComputedTextLength(); [HighEntropy, Measure, RaisesException] float getSubStringLength(unsigned long charnum, unsigned long nchars); - // TODO(foolip): SVGPoint/SVGRect should be DOMPoint/DOMRect. [HighEntropy, Measure, RaisesException] SVGPoint getStartPositionOfChar(unsigned long charnum); [HighEntropy, Measure, RaisesException] SVGPoint getEndPositionOfChar(unsigned long charnum); [HighEntropy, Measure, RaisesException] SVGRect getExtentOfChar(unsigned long charnum); [RaisesException] float getRotationOfChar(unsigned long charnum); - [RaisesException] long getCharNumAtPosition(SVGPoint point); + [RaisesException] long getCharNumAtPosition(optional DOMPointInit point = {}); [RaisesException] void selectSubString(unsigned long charnum, unsigned long nchars); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl b/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl index 9633dea3..9252f262 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl @@ -326,6 +326,8 @@ interface Internals { void forceLoseCanvasContext(CanvasRenderingContext2D ctx); void forceLoseCanvasContext(OffscreenCanvasRenderingContext2D ctx); void disableCanvasAcceleration(HTMLCanvasElement canvas); + boolean isCanvasImageSourceAccelerated(HTMLCanvasElement imageSource); + boolean isCanvasImageSourceAccelerated(OffscreenCanvas imageSource); DictionaryTest dictionaryTest(); RecordTest recordTest(); diff --git a/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl b/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl index 56fb209b..3a95ef8e 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl @@ -13,4 +13,6 @@ interface WorkerInternals { [CallWith=ScriptState] void collectGarbage(); void forceLoseCanvasContext(OffscreenCanvasRenderingContext2D ctx); + boolean isCanvasImageSourceAccelerated(HTMLCanvasElement imageSource); + boolean isCanvasImageSourceAccelerated(OffscreenCanvas imageSource); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_container_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_container_timing.idl new file mode 100755 index 00000000..4e710ce5 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_container_timing.idl @@ -0,0 +1,16 @@ +// Copyright 2024 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +[ + Exposed=Window, + RuntimeEnabled=ContainerTiming +] interface PerformanceContainerTiming : PerformanceEntry { + readonly attribute DOMRectReadOnly intersectionRect; + readonly attribute double size; + readonly attribute DOMString identifier; + readonly attribute Element? lastPaintedElement; + readonly attribute DOMHighResTimeStamp firstRenderTime; + + [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/chromeos.idl b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/chromeos.idl index 24a15bf5..449bf998 100755 --- a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/chromeos.idl +++ b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/chromeos.idl @@ -5,9 +5,6 @@ [ TargetOfExposed=ChromeOSExtensions ] interface ChromeOS { - [RuntimeEnabled=BlinkExtensionDiagnostics,CallWith=ExecutionContext] - readonly attribute CrosDiagnostics diagnostics; - [RuntimeEnabled=BlinkExtensionChromeOSKiosk,CallWith=ExecutionContext] readonly attribute CrosKiosk kiosk; }; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_cpu_info.idl b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_cpu_info.idl deleted file mode 100755 index e0f8d90a..00000000 --- a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_cpu_info.idl +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Diagnostics information of the CPU, e.g. model name, utilization and -// temperature. -dictionary CrosCpuInfo { - // The architecture of the CPU, e.g. "x86", "x86_64", "ARM", "ARM_64". - // Returns "Unknown" if the architecture cannot be determined. - DOMString architectureName; - - // The model name of the CPU, e.g. "AMD Ryzen 7 7840U", "Intel Core i7-1370P". - DOMString modelName; - - // Information on each logical processor available to the system. - sequence logicalCpus; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_diagnostics.idl b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_diagnostics.idl deleted file mode 100755 index 5de36341..00000000 --- a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_diagnostics.idl +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// ChromeOS Diagnostics API. -// -// Prototype API used to retrieve diagnostics information from the system, e.g. -// CPU/memory usage statistics and OS information. -// -// Available to window LaCrOS main frames when enabled. -interface CrosDiagnostics { - // Retrieves diagnostics information of the CPU. - // - // Returns a promise containing diagnostics information - // of the CPU, e.g. model name, utilization and temperature. - [CallWith=ScriptState] Promise getCpuInfo(); - - // Retrieves diagnostics information on network interfaces. - // - // Returns a promise containing diagnostics information on each network interface - // attached to the system, e.g. network name and the associated IP address. - [CallWith=ScriptState] Promise> getNetworkInterfaces(); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_logical_cpu_info.idl b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_logical_cpu_info.idl deleted file mode 100755 index 7ae53b4b..00000000 --- a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_logical_cpu_info.idl +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2023 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Diagnostics information of a logical processor, e.g. core ID, current clock speed -// and max clock speed. -// -// Properties will be undefined if they can't be retrieved. -dictionary CrosLogicalCpuInfo { - // The core number this logical processor corresponds to. - unsigned long? coreId; - - // Idle time since last boot, in milliseconds. - // Supports values up to JavaScript's MAX_SAFE_INTEGER, which is 2^53 - 1. - unsigned long long? idleTimeMs; - - // The max processor clock speed in kHz. - unsigned long? maxClockSpeedKhz; - - // Current frequency the processor is running at. - unsigned long? scalingCurrentFrequencyKhz; - - // Maximum frequency the processor is allowed to run at, by policy. - unsigned long? scalingMaxFrequencyKhz; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_network_interface.idl b/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_network_interface.idl deleted file mode 100755 index 2ab4c3b8..00000000 --- a/tools/under-control/src/third_party/blink/renderer/extensions/chromeos/diagnostics/cros_network_interface.idl +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2023 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Diagnostics information of a network interface, e.g. network name and -// the associated IP address. -dictionary CrosNetworkInterface { - // The associated IPv4/6 address. - DOMString address; - - // The name of the network interface, e.g. "eth0", "wlan0". - DOMString name; - - // The prefix length of the network. - unsigned long prefixLength; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad_config.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad_config.idl index ae8566c3..e0717f24 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad_config.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad_config.idl @@ -56,6 +56,8 @@ dictionary AuctionAdConfig { sequence interestGroupBuyers; Promise auctionSignals; Promise sellerSignals; + [RuntimeEnabled=FledgeTrustedSignalsKVv2ContextualData] + Promise sellerTKVSignals; [RuntimeEnabled=FledgeDirectFromSellerSignalsWebBundles] Promise directFromSellerSignals; @@ -71,6 +73,8 @@ dictionary AuctionAdConfig { Promise?> perBuyerSignals; Promise?> perBuyerTimeouts; Promise?> perBuyerCumulativeTimeouts; + [RuntimeEnabled=FledgeTrustedSignalsKVv2ContextualData] + record perBuyerTKVSignals; unsigned long long reportingTimeout; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl index 600d2785..ea7ae8e8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl @@ -22,7 +22,7 @@ typedef (USVString or FencedFrameConfig) UrnOrConfig; [CallWith=ScriptState, Measure, RaisesException] Promise leaveAdInterestGroup(optional AuctionAdInterestGroupKey group); - [CallWith=ScriptState, RaisesException] + [CallWith=ScriptState, Measure, RaisesException] Promise clearOriginJoinedAdInterestGroups(USVString owner, optional sequence groupsToKeep); [CallWith=ScriptState, Measure, RaisesException] diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl index 88f77292..9bf191c0 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl @@ -4,42 +4,11 @@ // https://github.com/webmachinelearning/prompt-api +// TODO(crbug.com/381969447): remove this and use AIInterfaceProxy +// for LanguageModel instead. [ Exposed=(Window,Worker), SecureContext, RuntimeEnabled=BuiltInAIAPI ] -interface AI { - [ - Measure, - RuntimeEnabled=AIPromptAPI - ] - readonly attribute AILanguageModelFactory languageModel; - [ - Measure, - RuntimeEnabled=AISummarizationAPI - ] - readonly attribute AISummarizerFactory summarizer; - - [ - Measure, - RuntimeEnabled=AIWriterAPI - ] - readonly attribute AIWriterFactory writer; - - [ - Measure, - RuntimeEnabled=AIRewriterAPI - ] - readonly attribute AIRewriterFactory rewriter; - - [ - RuntimeEnabled=LanguageDetectionAPI - ] - readonly attribute AILanguageDetectorFactory languageDetector; - - [ - RuntimeEnabled=TranslationAPI - ] - readonly attribute AITranslatorFactory translator; -}; +interface AI {}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_capability_availability.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_capability_availability.idl deleted file mode 100755 index 0979c728..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_capability_availability.idl +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2025 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/webmachinelearning/prompt-api -// TODO(crbug.com/395509560): remove `AICapabilityAvailability`. -enum AICapabilityAvailability { "readily", "after-download", "no" }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl deleted file mode 100755 index 29b72798..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/webmachinelearning/prompt-api - -dictionary AILanguageModelCloneOptions { - AbortSignal signal; -}; - -dictionary AILanguageModelPromptOptions { - AbortSignal signal; -}; - -[ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI -] -interface AILanguageModel : EventTarget { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise prompt( - AILanguageModelPromptInput input, - optional AILanguageModelPromptOptions options = {} - ); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - ReadableStream promptStreaming( - AILanguageModelPromptInput input, - optional AILanguageModelPromptOptions options = {} - ); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise countPromptTokens( - DOMString input, - optional AILanguageModelPromptOptions options = {} - ); - - [Measure] - readonly attribute unsigned long long maxTokens; - [Measure] - readonly attribute unsigned long long tokensSoFar; - [Measure] - readonly attribute unsigned long long tokensLeft; - - [Measure] - readonly attribute unsigned long topK; - [Measure] - readonly attribute float temperature; - [Measure] - readonly attribute FrozenArray? expectedInputLanguages; - - attribute EventHandler oncontextoverflow; - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise clone(optional AILanguageModelCloneOptions options = {}); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - undefined destroy(); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl deleted file mode 100755 index a60a08f4..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_create_options.idl +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/webmachinelearning/prompt-api - -// The argument to the prompt() method and others like it -typedef (AILanguageModelPrompt or sequence) AILanguageModelPromptInput; - -// Prompt lines -typedef ( - DOMString // interpreted as { role: "user", type: "text", content: providedValue } - or AILanguageModelPromptDict // canonical form -) AILanguageModelPrompt; - -// Prompt content inside the lines -dictionary AILanguageModelPromptDict { - AILanguageModelPromptRole role = "user"; - AILanguageModelPromptType type = "text"; - required AILanguageModelPromptContent content; -}; - -enum AILanguageModelPromptRole { "system", "user", "assistant" }; - -enum AILanguageModelPromptType { "text", "image", "audio" }; - -typedef ( - ImageBitmapSource - or AudioBuffer - or HTMLAudioElement - or BufferSource - or DOMString -) AILanguageModelPromptContent; - -dictionary AILanguageModelCreateCoreOptions { - // Note: these two have custom out-of-range handling behavior, not in the IDL layer. - // They are unrestricted double so as to allow +Infinity without failing. - unrestricted double topK; - unrestricted double temperature; - - sequence expectedInputLanguages; - sequence expectedInputTypes; -}; - -dictionary AILanguageModelCreateOptions : AILanguageModelCreateCoreOptions { - AbortSignal signal; - AICreateMonitorCallback monitor; - DOMString systemPrompt; - sequence initialPrompts; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl deleted file mode 100755 index 3bfa545c..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/webmachinelearning/prompt-api - -// TODO(crbug.com/390459309): remove `AILanguageModelCapabilities`. -[ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI -] -interface AILanguageModelCapabilities { - [Measure] - readonly attribute AICapabilityAvailability available; - [Measure] - AICapabilityAvailability languageAvailable(DOMString languageTag); - - // Always null if available === "no" - [Measure] - readonly attribute unsigned long? defaultTopK; - [Measure] - readonly attribute unsigned long? maxTopK; - [Measure] - readonly attribute float? defaultTemperature; - [Measure] - readonly attribute float? maxTemperature; -}; - -[ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI -] -interface AILanguageModelFactory { - // TODO(crbug.com/390459309): remove `capabilities()`. - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise capabilities(); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create( - optional AILanguageModelCreateOptions options = {} - ); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise availability( - optional AILanguageModelCreateCoreOptions options = {} - ); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise params(); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl deleted file mode 100755 index df918c1b..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Rewriter API -// https://github.com/explainers-by-googlers/writing-assistance-apis - -dictionary AIRewriterRewriteOptions { - DOMString context; - AbortSignal signal; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AIRewriterAPI, - SecureContext -] -interface AIRewriter { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise rewrite( - DOMString input, - optional AIRewriterRewriteOptions options = {}); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - ReadableStream rewriteStreaming( - DOMString input, - optional AIRewriterRewriteOptions options = {}); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - void destroy(); - - [Measure] - readonly attribute DOMString sharedContext; - [Measure] - readonly attribute AIRewriterTone tone; - [Measure] - readonly attribute AIRewriterFormat format; - [Measure] - readonly attribute AIRewriterLength length; - [Measure] - readonly attribute FrozenArray? expectedInputLanguages; - [Measure] - readonly attribute FrozenArray? expectedContextLanguages; - [Measure] - readonly attribute DOMString? outputLanguage; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl deleted file mode 100755 index f892c76a..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Rewriter API -// https://github.com/explainers-by-googlers/writing-assistance-apis - -enum AIRewriterTone { "as-is", "more-formal", "more-casual" }; -enum AIRewriterFormat { "as-is", "plain-text", "markdown" }; -enum AIRewriterLength { "as-is", "shorter", "longer" }; - -dictionary AIRewriterCreateCoreOptions { - AIRewriterTone tone = "as-is"; - AIRewriterFormat format = "as-is"; - AIRewriterLength length = "as-is"; - - sequence expectedInputLanguages; - sequence expectedContextLanguages; - DOMString outputLanguage; -}; - -dictionary AIRewriterCreateOptions : AIRewriterCreateCoreOptions { - AbortSignal signal; - DOMString sharedContext; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AIRewriterAPI, - SecureContext -] -interface AIRewriterFactory { - [ - CallWith=ScriptState, - RaisesException - ] - Promise availability( - optional AIRewriterCreateCoreOptions options = {} - ); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create(optional AIRewriterCreateOptions options = {}); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl deleted file mode 100755 index 3936b9f2..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/WICG/writing-assistance-apis - -dictionary AISummarizerSummarizeOptions { - DOMString context; - AbortSignal signal; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AISummarizationAPI, - SecureContext -] -interface AISummarizer { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise summarize(DOMString input, optional AISummarizerSummarizeOptions options = {}); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - ReadableStream summarizeStreaming(DOMString input, optional AISummarizerSummarizeOptions options = {}); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - void destroy(); - - [Measure] - readonly attribute DOMString sharedContext; - [Measure] - readonly attribute AISummarizerType type; - [Measure] - readonly attribute AISummarizerFormat format; - [Measure] - readonly attribute AISummarizerLength length; - [Measure] - readonly attribute FrozenArray? expectedInputLanguages; - [Measure] - readonly attribute FrozenArray? expectedContextLanguages; - [Measure] - readonly attribute DOMString? outputLanguage; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl deleted file mode 100755 index 59090e33..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/WICG/writing-assistance-apis - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AISummarizationAPI, - SecureContext -] -interface AISummarizerCapabilities { - readonly attribute AICapabilityAvailability available; - - AICapabilityAvailability createOptionsAvailable(AISummarizerCreateCoreOptions options); - - AICapabilityAvailability languageAvailable(DOMString languageTag); -}; - -enum AISummarizerType { "tl;dr", "key-points", "teaser", "headline" }; -enum AISummarizerFormat { "plain-text", "markdown" }; -enum AISummarizerLength { "short", "medium", "long" }; - -dictionary AISummarizerCreateCoreOptions { - AISummarizerType type = "key-points"; - AISummarizerFormat format = "markdown"; - AISummarizerLength length = "short"; - - sequence expectedInputLanguages; - sequence expectedContextLanguages; - DOMString outputLanguage; -}; - -dictionary AISummarizerCreateOptions : AISummarizerCreateCoreOptions { - AbortSignal signal; - AICreateMonitorCallback monitor; - DOMString sharedContext; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AISummarizationAPI, - SecureContext -] -interface AISummarizerFactory { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create(optional AISummarizerCreateOptions options = {}); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise availability( - optional AISummarizerCreateCoreOptions options = {} - ); - - // TODO(crbug.com/390477782): Deprecate this method. - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise capabilities(); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl deleted file mode 100755 index 0c494c2e..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Writer API -// https://github.com/explainers-by-googlers/writing-assistance-apis - -dictionary AIWriterWriteOptions { - DOMString context; - AbortSignal signal; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AIWriterAPI, - SecureContext -] -interface AIWriter { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise write( - DOMString writingTask, - optional AIWriterWriteOptions options = {}); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - ReadableStream writeStreaming( - DOMString writingTask, - optional AIWriterWriteOptions options = {}); - - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - void destroy(); - - [Measure] - readonly attribute DOMString sharedContext; - [Measure] - readonly attribute AIWriterTone tone; - [Measure] - readonly attribute AIWriterFormat format; - [Measure] - readonly attribute AIWriterLength length; - [Measure] - readonly attribute FrozenArray? expectedInputLanguages; - [Measure] - readonly attribute FrozenArray? expectedContextLanguages; - [Measure] - readonly attribute DOMString? outputLanguage; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl deleted file mode 100755 index e3b650ff..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Writer API -// https://github.com/explainers-by-googlers/writing-assistance-apis - -enum AIWriterTone { "formal", "neutral", "casual" }; -enum AIWriterFormat { "plain-text", "markdown" }; -enum AIWriterLength { "short", "medium", "long" }; - -dictionary AIWriterCreateCoreOptions { - AIWriterTone tone = "neutral"; - AIWriterFormat format = "plain-text"; - AIWriterLength length = "medium"; - - sequence expectedInputLanguages; - sequence expectedContextLanguages; - DOMString outputLanguage; -}; - -dictionary AIWriterCreateOptions : AIWriterCreateCoreOptions { - AbortSignal signal; - DOMString sharedContext; -}; - -[ - Exposed=(Window,Worker), - RuntimeEnabled=AIWriterAPI, - SecureContext -] -interface AIWriterFactory { - [ - CallWith=ScriptState, - RaisesException - ] - Promise availability( - optional AIWriterCreateCoreOptions options = {} - ); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create(optional AIWriterCreateOptions options = {}); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl new file mode 100755 index 00000000..a85be3d5 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl @@ -0,0 +1,96 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/webmachinelearning/prompt-api + +dictionary LanguageModelCloneOptions { + AbortSignal signal; +}; + +dictionary LanguageModelPromptOptions { + AbortSignal signal; +}; + +[ + Exposed=(Window,Worker), + SecureContext, + RuntimeEnabled=AIPromptAPI +] +interface LanguageModel : EventTarget { + [ + MeasureAs=LanguageModel_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create( + optional LanguageModelCreateOptions options = {} + ); + [ + MeasureAs=LanguageModel_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability( + optional LanguageModelCreateCoreOptions options = {} + ); + [ + MeasureAs=LanguageModel_Params, + CallWith=ScriptState, + RaisesException + ] + static Promise params(); + [ + MeasureAs=LanguageModel_Prompt, + CallWith=ScriptState, + RaisesException + ] + Promise prompt( + LanguageModelPromptInput input, + optional LanguageModelPromptOptions options = {} + ); + [ + MeasureAs=LanguageModel_PromptStreaming, + CallWith=ScriptState, + RaisesException + ] + ReadableStream promptStreaming( + LanguageModelPromptInput input, + optional LanguageModelPromptOptions options = {} + ); + + [ + MeasureAs=LanguageModel_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + LanguageModelPromptInput input, + optional LanguageModelPromptOptions options = {} + ); + + [MeasureAs=LanguageModel_InputUsage] + readonly attribute double inputUsage; + [MeasureAs=LanguageModel_InputQuota] + readonly attribute unrestricted double inputQuota; + + [MeasureAs=LanguageModel_TopK] + readonly attribute unsigned long topK; + [MeasureAs=LanguageModel_Temperature] + readonly attribute float temperature; + + attribute EventHandler onquotaoverflow; + + [ + MeasureAs=LanguageModel_Clone, + CallWith=ScriptState, + RaisesException + ] + Promise clone(optional LanguageModelCloneOptions options = {}); + [ + MeasureAs=LanguageModel_Destroy, + CallWith=ScriptState, + RaisesException + ] + undefined destroy(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl new file mode 100755 index 00000000..ae82d5b7 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl @@ -0,0 +1,55 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/webmachinelearning/prompt-api + +// The argument to the prompt() method and others like it +typedef (LanguageModelPrompt or sequence) LanguageModelPromptInput; + +// Prompt lines +typedef ( + DOMString // interpreted as { role: "user", type: "text", content: providedValue } + or LanguageModelPromptDict // canonical form +) LanguageModelPrompt; + +// Prompt content inside the lines +dictionary LanguageModelPromptDict { + LanguageModelPromptRole role = "user"; + LanguageModelPromptType type = "text"; + required LanguageModelPromptContent content; +}; + +enum LanguageModelPromptRole { "system", "user", "assistant" }; + +enum LanguageModelPromptType { "text", "image", "audio" }; + +typedef ( + ImageBitmapSource + or AudioBuffer + or HTMLAudioElement + or BufferSource + or DOMString +) LanguageModelPromptContent; + +dictionary LanguageModelCreateCoreOptions { + // Note: these two have custom out-of-range handling behavior, not in the IDL layer. + // They are unrestricted double so as to allow +Infinity without failing. + unrestricted double topK; + unrestricted double temperature; + + // The expected input types and languages for the session. + sequence expectedInputs; +}; + +dictionary LanguageModelCreateOptions : LanguageModelCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; + DOMString systemPrompt; + sequence initialPrompts; +}; + +dictionary LanguageModelExpectedInput { + required LanguageModelPromptType type; + sequence languages; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl new file mode 100755 index 00000000..6e2be730 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl @@ -0,0 +1,38 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/webmachinelearning/prompt-api + +// The `LanguageModelFactory` is no longer needed from the web platform JS API, +// but we need to keep this IDL for the extension API. + +[ + Exposed=(Window,Worker), + SecureContext, + RuntimeEnabled=AIPromptAPI +] +interface LanguageModelFactory { + [ + MeasureAs=LanguageModel_Create, + CallWith=ScriptState, + RaisesException + ] + Promise create( + optional LanguageModelCreateOptions options = {} + ); + [ + MeasureAs=LanguageModel_Availability, + CallWith=ScriptState, + RaisesException + ] + Promise availability( + optional LanguageModelCreateCoreOptions options = {} + ); + [ + MeasureAs=LanguageModel_Params, + CallWith=ScriptState, + RaisesException + ] + Promise params(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_params.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl similarity index 93% rename from tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_params.idl rename to tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl index 0e3a9a3a..b9d988c1 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_params.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl @@ -9,7 +9,7 @@ SecureContext, RuntimeEnabled=AIPromptAPI ] -interface AILanguageModelParams { +interface LanguageModelParams { readonly attribute unsigned long defaultTopK; readonly attribute unsigned long maxTopK; readonly attribute float defaultTemperature; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl deleted file mode 100755 index cf000544..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl +++ /dev/null @@ -1,29 +0,0 @@ -dictionary LanguageDetectionResult { - DOMString? detectedLanguage; // null represents unknown language - double confidence; -}; - -[ - RuntimeEnabled=LanguageDetectionAPI, - Exposed=(Window, Worker), - SecureContext -] -interface AILanguageDetector { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise> detect(DOMString input, - optional AILanguageDetectorDetectOptions options = {}); - - [ - Measure, - CallWith=ScriptState - ] - undefined destroy(); -}; - -dictionary AILanguageDetectorDetectOptions { - AbortSignal signal; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl deleted file mode 100755 index a8f72ecf..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl +++ /dev/null @@ -1,14 +0,0 @@ -[ - RuntimeEnabled=LanguageDetectionAPI, - Exposed=(Window,Worker), - SecureContext -] -interface AILanguageDetectorCapabilities { - [ - CallWith=ScriptState, - RaisesException - ] - readonly attribute AICapabilityAvailability available; - - AICapabilityAvailability languageAvailable(DOMString languageTag); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl deleted file mode 100755 index 81fa0184..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl +++ /dev/null @@ -1,30 +0,0 @@ -[ - RuntimeEnabled=LanguageDetectionAPI, - Exposed=(Window, Worker), - SecureContext -] -interface AILanguageDetectorFactory { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise availability(); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create(optional AILanguageDetectorCreateOptions options = {}); - [ - CallWith=ScriptState, - RaisesException - ] - // TODO(crbug.com/392185835): Remove capabilities method. - Promise capabilities(); -}; - -dictionary AILanguageDetectorCreateOptions { - AbortSignal signal; - AICreateMonitorCallback monitor; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl deleted file mode 100755 index 0792fed6..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl +++ /dev/null @@ -1,35 +0,0 @@ -[ - RuntimeEnabled=TranslationAPI, - Exposed=(Window,Worker), - SecureContext -] -interface AITranslator { -[ - Measure, - CallWith=ScriptState, - RaisesException -] - Promise translate(DOMString input, optional AITranslatorTranslateOptions options = {}); - -[ - Measure, - CallWith=ScriptState, - RaisesException -] - ReadableStream translateStreaming(DOMString input, optional AITranslatorTranslateOptions options = {}); - - [Measure] - readonly attribute DOMString sourceLanguage; - [Measure] - readonly attribute DOMString targetLanguage; - -[ - Measure, - CallWith=ScriptState -] - undefined destroy(); -}; - -dictionary AITranslatorTranslateOptions { - AbortSignal signal; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl deleted file mode 100755 index a3f49d02..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl +++ /dev/null @@ -1,12 +0,0 @@ -[ - RuntimeEnabled=TranslationAPI, - Exposed=(Window,Worker), - SecureContext -] -interface AITranslatorCapabilities { - readonly attribute AICapabilityAvailability available; - - AICapabilityAvailability languagePairAvailable( - DOMString sourceLanguage, - DOMString targetLanguage); -}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl deleted file mode 100755 index 857f0dad..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl +++ /dev/null @@ -1,35 +0,0 @@ -[ - RuntimeEnabled=TranslationAPI, - Exposed=(Window,Worker), - SecureContext -] -interface AITranslatorFactory { - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise availability(AITranslatorCreateCoreOptions options); - [ - Measure, - CallWith=ScriptState, - RaisesException - ] - Promise create(AITranslatorCreateOptions options); - [ - CallWith=ScriptState, - RaisesException - ] - // TODO(crbug.com/392185835): Remove capabilities method. - Promise capabilities(); -}; - -dictionary AITranslatorCreateCoreOptions { - required DOMString sourceLanguage; - required DOMString targetLanguage; -}; - -dictionary AITranslatorCreateOptions : AITranslatorCreateCoreOptions { - AbortSignal signal; - AICreateMonitorCallback monitor; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl new file mode 100755 index 00000000..acff3258 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl @@ -0,0 +1,76 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Language Detector API +// https://github.com/webmachinelearning/translation-api + +dictionary LanguageDetectorCreateCoreOptions { + sequence expectedInputLanguages; +}; + +dictionary LanguageDetectorCreateOptions : LanguageDetectorCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; +}; + +dictionary LanguageDetectorDetectOptions { + AbortSignal signal; +}; + +dictionary LanguageDetectionResult { + DOMString? detectedLanguage; // null represents unknown language + double confidence; +}; + +[ + Exposed=(Window, Worker), + RuntimeEnabled=LanguageDetectionAPI, + SecureContext +] +interface LanguageDetector { + [ + MeasureAs=LanguageDetector_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability(); + + [ + MeasureAs=LanguageDetector_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create( + optional LanguageDetectorCreateOptions options = {} + ); + + [ + MeasureAs=LanguageDetector_Detect, + CallWith=ScriptState, + RaisesException + ] + Promise> detect(DOMString input, + optional LanguageDetectorDetectOptions options = {}); + + [ + MeasureAs=LanguageDetector_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + DOMString input, + optional LanguageDetectorDetectOptions options = {} + ); + + [ + MeasureAs=LanguageDetector_Destroy, + CallWith=ScriptState + ] + undefined destroy(); + + [MeasureAs=LanguageDetector_ExpectedInputLanguages] + readonly attribute FrozenArray? expectedInputLanguages; + [MeasureAs=LanguageDetector_InputQuota] + readonly attribute unrestricted double inputQuota; +}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl new file mode 100755 index 00000000..5734529c --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl @@ -0,0 +1,78 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Translator API +// https://github.com/webmachinelearning/translation-api + +dictionary TranslatorCreateCoreOptions { + required DOMString sourceLanguage; + required DOMString targetLanguage; +}; + +dictionary TranslatorCreateOptions : TranslatorCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; +}; + +dictionary TranslatorTranslateOptions { + AbortSignal signal; +}; + +[ + Exposed=(Window,Worker), + RuntimeEnabled=TranslationAPI, + SecureContext +] +interface Translator { + [ + MeasureAs=Translator_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability(TranslatorCreateCoreOptions options); + + [ + MeasureAs=Translator_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create(TranslatorCreateOptions options); + + [ + MeasureAs=Translator_Translate, + CallWith=ScriptState, + RaisesException + ] + Promise translate(DOMString input, optional TranslatorTranslateOptions options = {}); + + [ + MeasureAs=Translator_TranslateStreaming, + CallWith=ScriptState, + RaisesException + ] + ReadableStream translateStreaming(DOMString input, optional TranslatorTranslateOptions options = {}); + + [ + MeasureAs=Translator_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + DOMString input, + optional TranslatorTranslateOptions options = {} + ); + + [ + MeasureAs=Translator_Destroy, + CallWith=ScriptState + ] + undefined destroy(); + + [MeasureAs=Translator_InputQuota] + readonly attribute unrestricted double inputQuota; + [MeasureAs=Translator_SourceLanguage] + readonly attribute DOMString sourceLanguage; + [MeasureAs=Translator_TargetLanguage] + readonly attribute DOMString targetLanguage; +}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl new file mode 100755 index 00000000..86cf013f --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl @@ -0,0 +1,108 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Rewriter API +// https://github.com/explainers-by-googlers/writing-assistance-apis + +enum RewriterTone { "as-is", "more-formal", "more-casual" }; +enum RewriterFormat { "as-is", "plain-text", "markdown" }; +enum RewriterLength { "as-is", "shorter", "longer" }; + +dictionary RewriterCreateCoreOptions { + RewriterTone tone = "as-is"; + RewriterFormat format = "as-is"; + RewriterLength length = "as-is"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary RewriterCreateOptions : RewriterCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; + DOMString sharedContext; +}; + +dictionary RewriterRewriteOptions { + DOMString context; + AbortSignal signal; +}; + +[ + Exposed=(Window,Worker), + RuntimeEnabled=AIRewriterAPI, + SecureContext +] +interface Rewriter { + [ + MeasureAs=Rewriter_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability( + optional RewriterCreateCoreOptions options = {} + ); + + [ + MeasureAs=Rewriter_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create(optional RewriterCreateOptions options = {}); + + [ + MeasureAs=Rewriter_Rewrite, + CallWith=ScriptState, + RaisesException + ] + Promise rewrite( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + + [ + MeasureAs=Rewriter_RewriteStreaming, + CallWith=ScriptState, + RaisesException + ] + ReadableStream rewriteStreaming( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + + [ + MeasureAs=Rewriter_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + + [ + MeasureAs=Rewriter_Destroy, + CallWith=ScriptState, + RaisesException + ] + void destroy(); + + [MeasureAs=Rewriter_SharedContext] + readonly attribute DOMString sharedContext; + [MeasureAs=Rewriter_Tone] + readonly attribute RewriterTone tone; + [MeasureAs=Rewriter_Format] + readonly attribute RewriterFormat format; + [MeasureAs=Rewriter_Length] + readonly attribute RewriterLength length; + [MeasureAs=Rewriter_ExpectedInputLanguages] + readonly attribute FrozenArray? expectedInputLanguages; + [MeasureAs=Rewriter_ExpectedContextLanguages] + readonly attribute FrozenArray? expectedContextLanguages; + [MeasureAs=Rewriter_OutputLanguage] + readonly attribute DOMString? outputLanguage; + [MeasureAs=Rewriter_InputQuota] + readonly attribute unrestricted double inputQuota; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl new file mode 100755 index 00000000..a68a7e83 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl @@ -0,0 +1,107 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/WICG/writing-assistance-apis + +enum SummarizerType { "tl;dr", "key-points", "teaser", "headline" }; +enum SummarizerFormat { "plain-text", "markdown" }; +enum SummarizerLength { "short", "medium", "long" }; + +dictionary SummarizerCreateCoreOptions { + SummarizerType type = "key-points"; + SummarizerFormat format = "markdown"; + SummarizerLength length = "short"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary SummarizerCreateOptions : SummarizerCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; + DOMString sharedContext; +}; + +dictionary SummarizerSummarizeOptions { + DOMString context; + AbortSignal signal; +}; + +[ + Exposed=(Window,Worker), + RuntimeEnabled=AISummarizationAPI, + SecureContext +] +interface Summarizer { + [ + MeasureAs=Summarizer_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability( + optional SummarizerCreateCoreOptions options = {} + ); + + [ + MeasureAs=Summarizer_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create(optional SummarizerCreateOptions options = {}); + + [ + MeasureAs=Summarizer_Summarize, + CallWith=ScriptState, + RaisesException + ] + Promise summarize( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + + [ + MeasureAs=Summarizer_SummarizeStreaming, + CallWith=ScriptState, + RaisesException + ] + ReadableStream summarizeStreaming( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + + [ + MeasureAs=Summarizer_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + + [ + MeasureAs=Summarizer_Destroy, + CallWith=ScriptState, + RaisesException + ] + void destroy(); + + [MeasureAs=Summarizer_SharedContext] + readonly attribute DOMString sharedContext; + [MeasureAs=Summarizer_Type] + readonly attribute SummarizerType type; + [MeasureAs=Summarizer_Format] + readonly attribute SummarizerFormat format; + [MeasureAs=Summarizer_Length] + readonly attribute SummarizerLength length; + [MeasureAs=Summarizer_ExpectedInputLanguages] + readonly attribute FrozenArray? expectedInputLanguages; + [MeasureAs=Summarizer_ExpectedContextLanguages] + readonly attribute FrozenArray? expectedContextLanguages; + [MeasureAs=Summarizer_OutputLanguage] + readonly attribute DOMString? outputLanguage; + [MeasureAs=Summarizer_InputQuota] + readonly attribute unrestricted double inputQuota; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl new file mode 100755 index 00000000..357921e7 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl @@ -0,0 +1,107 @@ +// Copyright 2024 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Writer API +// https://github.com/explainers-by-googlers/writing-assistance-apis + +enum WriterTone { "formal", "neutral", "casual" }; +enum WriterFormat { "plain-text", "markdown" }; +enum WriterLength { "short", "medium", "long" }; + +dictionary WriterCreateCoreOptions { + WriterTone tone = "neutral"; + WriterFormat format = "plain-text"; + WriterLength length = "medium"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary WriterCreateOptions : WriterCreateCoreOptions { + AbortSignal signal; + AICreateMonitorCallback monitor; + DOMString sharedContext; +}; + +dictionary WriterWriteOptions { + DOMString context; + AbortSignal signal; +}; + +[ + Exposed=(Window,Worker), + RuntimeEnabled=AIWriterAPI, + SecureContext +] +interface Writer { + [ + MeasureAs=Writer_Availability, + CallWith=ScriptState, + RaisesException + ] + static Promise availability( + optional WriterCreateCoreOptions options = {} + ); + + [ + MeasureAs=Writer_Create, + CallWith=ScriptState, + RaisesException + ] + static Promise create(optional WriterCreateOptions options = {}); + + [ + MeasureAs=Writer_Write, + CallWith=ScriptState, + RaisesException + ] + Promise write( + DOMString writingTask, + optional WriterWriteOptions options = {}); + + [ + MeasureAs=Writer_WriteStreaming, + CallWith=ScriptState, + RaisesException + ] + ReadableStream writeStreaming( + DOMString writingTask, + optional WriterWriteOptions options = {} + ); + + [ + MeasureAs=Writer_MeasureInputUsage, + CallWith=ScriptState, + RaisesException + ] + Promise measureInputUsage( + DOMString writingTask, + optional WriterWriteOptions options = {} + ); + + [ + MeasureAs=Writer_Destroy, + CallWith=ScriptState, + RaisesException + ] + void destroy(); + + [MeasureAs=Writer_SharedContext] + readonly attribute DOMString sharedContext; + [MeasureAs=Writer_Tone] + readonly attribute WriterTone tone; + [MeasureAs=Writer_Format] + readonly attribute WriterFormat format; + [MeasureAs=Writer_Length] + readonly attribute WriterLength length; + [MeasureAs=Writer_ExpectedInputLanguages] + readonly attribute FrozenArray? expectedInputLanguages; + [MeasureAs=Writer_ExpectedContextLanguages] + readonly attribute FrozenArray? expectedContextLanguages; + [MeasureAs=Writer_OutputLanguage] + readonly attribute DOMString? outputLanguage; + [MeasureAs=Writer_InputQuota] + readonly attribute unrestricted double inputQuota; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_recording_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl similarity index 99% rename from tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_recording_context_2d.idl rename to tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl index 8e607115..fa7c035c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_recording_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl @@ -9,7 +9,7 @@ dictionary BeginLayerOptions { CanvasFilterInput? filter = null; }; -interface mixin CanvasRecordingContext2D { +interface mixin Canvas2DRecorderContext { // state [NoAllocDirectCall] void save(); // push state on state stack [NoAllocDirectCall, RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index aa5469dc..e27cc1b3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl @@ -64,4 +64,4 @@ interface CanvasRenderingContext2D { CanvasRenderingContext2D includes BaseRenderingContext2D; CanvasRenderingContext2D includes CanvasPath; CanvasRenderingContext2D includes Canvas2dGPUTransfer; -CanvasRenderingContext2D includes CanvasRecordingContext2D; +CanvasRenderingContext2D includes Canvas2DRecorderContext; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl index e156a7fb..24b4af8d 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl @@ -18,4 +18,4 @@ OffscreenCanvasRenderingContext2D includes BaseRenderingContext2D; OffscreenCanvasRenderingContext2D includes CanvasPath; OffscreenCanvasRenderingContext2D includes Canvas2dGPUTransfer; -OffscreenCanvasRenderingContext2D includes CanvasRecordingContext2D; +OffscreenCanvasRenderingContext2D includes Canvas2DRecorderContext; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl index 5ab30781..a6b8d2b7 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl @@ -33,7 +33,7 @@ dictionary AuthenticationExtensionsClientInputs { boolean credProps = false; // https://w3c.github.io/webauthn/#sctn-large-blob-extension - [RuntimeEnabled=WebAuthenticationLargeBlobExtension] AuthenticationExtensionsLargeBlobInputs largeBlob; + AuthenticationExtensionsLargeBlobInputs largeBlob; // https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension BufferSource credBlob; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl index eb2c2192..93385f46 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl @@ -28,7 +28,7 @@ dictionary AuthenticationExtensionsClientInputsJSON { boolean enforceCredentialProtectionPolicy = false; boolean minPinLength; boolean credProps = false; - [RuntimeEnabled=WebAuthenticationLargeBlobExtension] AuthenticationExtensionsLargeBlobInputsJSON largeBlob; + AuthenticationExtensionsLargeBlobInputsJSON largeBlob; Base64URLString credBlob; boolean getCredBlob; [RuntimeEnabled=SecurePaymentConfirmation] AuthenticationExtensionsPaymentInputs payment; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl index 7ceb5774..5fb79875 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl @@ -18,7 +18,7 @@ dictionary AuthenticationExtensionsClientOutputs { CredentialPropertiesOutput credProps; // https://w3c.github.io/webauthn/#sctn-large-blob-extension - [RuntimeEnabled=WebAuthenticationLargeBlobExtension] AuthenticationExtensionsLargeBlobOutputs largeBlob; + AuthenticationExtensionsLargeBlobOutputs largeBlob; // https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension boolean credBlob; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl index fbdea450..0c91acd2 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl @@ -14,7 +14,7 @@ dictionary AuthenticationExtensionsClientOutputsJSON { CredentialPropertiesOutput credProps; // https://w3c.github.io/webauthn/#sctn-large-blob-extension - [RuntimeEnabled=WebAuthenticationLargeBlobExtension] object largeBlob; + object largeBlob; // https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension boolean credBlob; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl index b2180a85..3d8d88be 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl @@ -13,5 +13,5 @@ readonly attribute USVString protocol; // https://wicg.github.io/digital-identities/#dom-digitalcredential-data - [SameObject] readonly attribute USVString data; + [SameObject] readonly attribute object data; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl index 63020b18..8a424dfa 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl @@ -9,4 +9,4 @@ ] interface PaintRenderingContext2D { }; PaintRenderingContext2D includes CanvasPath; -PaintRenderingContext2D includes CanvasRecordingContext2D; +PaintRenderingContext2D includes Canvas2DRecorderContext; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl index 54239e33..780a4418 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl @@ -36,38 +36,45 @@ interface CaptureController : EventTarget { MeasureAs = CapturedSurfaceControl, CallWith = ScriptState ] - Promise captureWheel(HTMLElement? element); - - [ - RuntimeEnabled = CapturedSurfaceControl, - MeasureAs = CapturedSurfaceControl, - CallWith = ScriptState - ] - Promise sendWheel(CapturedWheelAction action); - - [ - RuntimeEnabled = CapturedSurfaceControl, - MeasureAs = CapturedSurfaceControl - ] - static sequence getSupportedZoomLevels(); + Promise forwardWheel(HTMLElement? element); [ RuntimeEnabled = CapturedSurfaceControl, MeasureAs = CapturedSurfaceControl, RaisesException ] - long getZoomLevel(); + sequence getSupportedZoomLevels(); + + [ + RuntimeEnabled = CapturedSurfaceControl, + MeasureAs = CapturedSurfaceControl + ] + readonly attribute long? zoomLevel; [ RuntimeEnabled = CapturedSurfaceControl, MeasureAs = CapturedSurfaceControl, CallWith = ScriptState ] - Promise setZoomLevel(long zoomLevel); + Promise increaseZoomLevel(); + + [ + RuntimeEnabled = CapturedSurfaceControl, + MeasureAs = CapturedSurfaceControl, + CallWith = ScriptState + ] + Promise decreaseZoomLevel(); + + [ + RuntimeEnabled = CapturedSurfaceControl, + MeasureAs = CapturedSurfaceControl, + CallWith = ScriptState + ] + Promise resetZoomLevel(); [ RuntimeEnabled = CapturedSurfaceControl, MeasureAs = CapturedSurfaceControl ] - attribute EventHandler oncapturedzoomlevelchange; + attribute EventHandler onzoomlevelchange; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl index 69a4641b..b373c6d8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl @@ -11,7 +11,7 @@ ActiveScriptWrappable, SecureContext ] interface MediaDevices : EventTarget { - [RuntimeEnabled=OnDeviceChange] attribute EventHandler ondevicechange; + attribute EventHandler ondevicechange; [ CallWith = ScriptState, RaisesException, HighEntropy, MeasureAs = MediaDevicesEnumerateDevices ] Promise> @@ -50,6 +50,10 @@ ] void setCaptureHandleConfig(optional CaptureHandleConfig config = {}); - [ RuntimeEnabled = PreferredAudioOutputDevices, CallWith = ScriptState, RaisesException] - Promise setPreferredSinkId(DOMString sinkId); + [ + RuntimeEnabled = PreferredAudioOutputDevices, + CallWith = ScriptState, RaisesException, + MeasureAs = PreferredAudioOutputDevices + ] Promise + setPreferredSinkId(DOMString sinkId); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl index 61beeab7..eed883fe 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl @@ -39,8 +39,8 @@ sequence getVideoTracks(); sequence getTracks(); MediaStreamTrack? getTrackById(DOMString trackId); - [RaisesException] void addTrack(MediaStreamTrack track); - [RaisesException] void removeTrack(MediaStreamTrack track); + [CallWith=Isolate, RaisesException] void addTrack(MediaStreamTrack track); + [CallWith=Isolate, RaisesException] void removeTrack(MediaStreamTrack track); [CallWith=ScriptState] MediaStream clone(); [Measure] readonly attribute boolean active; attribute EventHandler onaddtrack; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl index 0ff22621..217d0d72 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl @@ -58,9 +58,5 @@ dictionary MediaTrackSettings { [RuntimeEnabled=GetDisplayMedia] boolean suppressLocalAudioPlayback; // Capture Surface Resolution API - [RuntimeEnabled=CapturedSurfaceResolution] double pixelRatio; - [RuntimeEnabled=CapturedSurfaceResolution] long physicalWidth; - [RuntimeEnabled=CapturedSurfaceResolution] long physicalHeight; - [RuntimeEnabled=CapturedSurfaceResolution] long logicalWidth; - [RuntimeEnabled=CapturedSurfaceResolution] long logicalHeight; + [RuntimeEnabled=CapturedSurfaceResolution] double screenPixelRatio; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl index 72d92876..e16984b9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl @@ -6,7 +6,7 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface ML { [ CallWith=ScriptState, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl index 5a0fa440..8433a5c3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl @@ -45,76 +45,71 @@ dictionary MLBatchNormalizationSupportLimits { }; dictionary MLConcatSupportLimits { - MLDataTypeLimits inputs; + MLTensorLimits inputs; MLDataTypeLimits output; }; dictionary MLConv2dSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits filter; - MLDataTypeLimits bias; - MLDataTypeLimits output; -}; - -dictionary MLCumulativeSumSupportLimits { - MLDataTypeLimits input; + MLTensorLimits input; + MLTensorLimits filter; + MLTensorLimits bias; MLDataTypeLimits output; }; dictionary MLGatherSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits indices; + MLTensorLimits input; + MLTensorLimits indices; MLDataTypeLimits output; }; dictionary MLGemmSupportLimits { - MLDataTypeLimits a; - MLDataTypeLimits b; - MLDataTypeLimits c; + MLTensorLimits a; + MLTensorLimits b; + MLTensorLimits c; MLDataTypeLimits output; }; dictionary MLGruSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits weight; - MLDataTypeLimits recurrentWeight; - MLDataTypeLimits bias; - MLDataTypeLimits recurrentBias; - MLDataTypeLimits initialHiddenState; + MLTensorLimits input; + MLTensorLimits weight; + MLTensorLimits recurrentWeight; + MLTensorLimits bias; + MLTensorLimits recurrentBias; + MLTensorLimits initialHiddenState; MLDataTypeLimits outputs; }; dictionary MLGruCellSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits weight; - MLDataTypeLimits recurrentWeight; - MLDataTypeLimits hiddenState; - MLDataTypeLimits bias; - MLDataTypeLimits recurrentBias; + MLTensorLimits input; + MLTensorLimits weight; + MLTensorLimits recurrentWeight; + MLTensorLimits hiddenState; + MLTensorLimits bias; + MLTensorLimits recurrentBias; MLDataTypeLimits output; }; dictionary MLLstmSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits weight; - MLDataTypeLimits recurrentWeight; - MLDataTypeLimits bias; - MLDataTypeLimits recurrentBias; - MLDataTypeLimits peepholeWeight; - MLDataTypeLimits initialHiddenState; - MLDataTypeLimits initialCellState; + MLTensorLimits input; + MLTensorLimits weight; + MLTensorLimits recurrentWeight; + MLTensorLimits bias; + MLTensorLimits recurrentBias; + MLTensorLimits peepholeWeight; + MLTensorLimits initialHiddenState; + MLTensorLimits initialCellState; MLDataTypeLimits outputs; }; dictionary MLLstmCellSupportLimits { - MLDataTypeLimits input; - MLDataTypeLimits weight; - MLDataTypeLimits recurrentWeight; - MLDataTypeLimits hiddenState; - MLDataTypeLimits cellState; - MLDataTypeLimits bias; - MLDataTypeLimits recurrentBias; - MLDataTypeLimits peepholeWeight; + MLTensorLimits input; + MLTensorLimits weight; + MLTensorLimits recurrentWeight; + MLTensorLimits hiddenState; + MLTensorLimits cellState; + MLTensorLimits bias; + MLTensorLimits recurrentBias; + MLTensorLimits peepholeWeight; MLDataTypeLimits outputs; }; @@ -285,7 +280,7 @@ typedef record MLNamedTensors; [ RuntimeEnabled=MachineLearningNeuralNetwork, SecureContext, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface MLContext { [ RuntimeEnabled=MachineLearningNeuralNetwork, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl index 34e487ff..f620c53a 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph.idl @@ -6,7 +6,7 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface MLGraph { void destroy(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl index 8832864d..509880c9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl @@ -224,7 +224,7 @@ dictionary MLTriangularOptions : MLOperatorOptions { [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface MLGraphBuilder { [ CallWith=ScriptState, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl index 9c14ca8c..4a30d776 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_operand.idl @@ -6,7 +6,7 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface MLOperand { readonly attribute MLOperandDataType dataType; readonly attribute FrozenArray shape; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl index 980aacf7..fd171bd5 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl @@ -6,7 +6,7 @@ [ RuntimeEnabled=MachineLearningNeuralNetwork, - Exposed=(Window, DedicatedWorker) + Exposed=(Window, Worker) ] interface MLTensor { readonly attribute MLOperandDataType dataType; readonly attribute FrozenArray shape; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl index 04dfa670..7e78a2da 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/worker_navigator_ml.idl @@ -5,7 +5,7 @@ // https://www.w3.org/TR/webnn/#api-ml [ - Exposed=DedicatedWorker, + Exposed=Worker, SecureContext, ImplementedAs=NavigatorML, RuntimeEnabled=MachineLearningNeuralNetwork diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instrument.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instrument.idl deleted file mode 100755 index 33ea6e90..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instrument.idl +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://w3c.github.io/payment-handler/#paymentinstrument-dictionary - -dictionary PaymentInstrument { - required DOMString name; - sequence icons; - DOMString method; - object capabilities; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instruments.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instruments.idl deleted file mode 100755 index 9bf309ee..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_instruments.idl +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://w3c.github.io/payment-handler/#paymentinstruments-interface - -[ - RuntimeEnabled=PaymentInstruments, - Exposed=(Window,Worker) -] interface PaymentInstruments { - [CallWith=ScriptState, RaisesException, ImplementedAs=deleteInstrument, Measure] Promise delete(DOMString instrumentKey); - [CallWith=ScriptState, RaisesException, Measure] Promise get(DOMString instrumentKey); - [CallWith=ScriptState, RaisesException, Measure] Promise> keys(); - [CallWith=ScriptState, RaisesException, Measure] Promise has(DOMString instrumentKey); - [CallWith=ScriptState, RaisesException, Measure] Promise set(DOMString instrumentKey, PaymentInstrument details); - [CallWith=ScriptState, RaisesException, Measure] Promise clear(); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_manager.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_manager.idl index 84df921a..63659c92 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_manager.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_manager.idl @@ -16,7 +16,6 @@ enum PaymentDelegation { RuntimeEnabled=PaymentApp, SecureContext ] interface PaymentManager { - [SameObject, DeprecateAs=PaymentInstruments, RuntimeEnabled=PaymentInstruments] readonly attribute PaymentInstruments instruments; [Measure] attribute DOMString userHint; // The implementation resolves with boolean, even though the spec says undefined. [CallWith=ScriptState, PromiseIDLTypeMismatch, RaisesException] Promise enableDelegations(sequence delegations); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl index b10eca09..faa33bd1 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl @@ -142,8 +142,8 @@ enum RTCPeerConnectionState { // Non-standard or removed from the spec: [Measure] sequence getLocalStreams(); [Measure] sequence getRemoteStreams(); - [Measure, CallWith=ScriptState, RaisesException] void addStream(MediaStream stream); - [Measure, RaisesException] void removeStream(MediaStream stream); + [Measure, CallWith=Isolate, RaisesException] void addStream(MediaStream stream); + [Measure, CallWith=Isolate, RaisesException] void removeStream(MediaStream stream); [Measure, RaisesException] RTCDTMFSender createDTMFSender(MediaStreamTrack track); attribute EventHandler onaddstream; attribute EventHandler onremovestream; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_synchronization_source.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_synchronization_source.idl index 82103cdf..5fa0c89f 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_synchronization_source.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_synchronization_source.idl @@ -4,5 +4,4 @@ // https://w3c.github.io/webrtc-pc/#dom-rtcrtpsynchronizationsource dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource { - // TODO(hbos): Implement voiceActivityFlag. https://crbug.com/893159 }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl index 29e9b1cd..1e4ca49a 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl @@ -42,6 +42,7 @@ enum PermissionName { "pointer-lock", "fullscreen", "web-app-installation", + "local-network-access", }; // The PermissionDescriptor dictionary is a base to describe permissions. Some diff --git a/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_request.idl b/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_request.idl index 0790b813..3ac811c8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_request.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_request.idl @@ -11,7 +11,7 @@ Exposed=Window ] interface PresentationRequest : EventTarget { [CallWith=ExecutionContext, RaisesException, MeasureAs=PresentationRequestConstructor] constructor(USVString url); - [CallWith=ExecutionContext, RaisesException, MeasureAs=PresentationRequestConstructor] constructor(sequence<(USVString or PresentationSource)> urls); + [CallWith=ExecutionContext, RaisesException, MeasureAs=PresentationRequestConstructor] constructor(sequence urls); [CallWith=ScriptState, RaisesException, MeasureAs=PresentationRequestStart] Promise start(); [CallWith=ScriptState, RaisesException, MeasureAs=PresentationRequestReconnect] Promise reconnect(DOMString id); [CallWith=ScriptState, RaisesException, MeasureAs=PresentationRequestGetAvailability] Promise getAvailability(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_source.idl b/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_source.idl deleted file mode 100755 index 4dfd825b..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/presentation/presentation_source.idl +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// For more information, see the explainer at -// https://github.com/webscreens/site-initiated-mirroring/blob/main/explainer.md - -// Indicates the preferred tradeoff between low latency and smooth streaming. -// The actual behavior is implementation specific. Only applies to mirroring -// sources. -// TODO(crbug.com/600726): Set RuntimeEnabled here if support is ever added for -// enums (currently it is a no-op). -enum CaptureLatency { - "default", - // Having a smooth stream is prioritized over having a low latency. - "high", - // Having a low latency is prioritized over having a smooth stream. - "low", -}; - -// Indicates where the audio playback should occur. Only applies to mirroring -// sources. -// TODO(crbug.com/600726): Set RuntimeEnabled here if support is ever added for -// enums (currently it is a no-op). -enum AudioPlaybackDestination { - "receiver", - "controller", -}; - -// TODO(crbug.com/600726): Set RuntimeEnabled here if support is ever added for -// enums (currently it is a no-op). -enum PresentationSourceType { - "url", - "mirroring", -}; - -dictionary PresentationSource { - required PresentationSourceType type; - - // Used if `type` is "url". - USVString? url; - - // Used if `type` is "mirroring". - CaptureLatency? latencyHint; - AudioPlaybackDestination? audioPlayback; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation.idl index d6e50948..618e36dc 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation.idl @@ -2,17 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// https://patcg-individual-drafts.github.io/private-aggregation-api/#exposed-interface [ - Exposed=(SharedStorageWorklet), - ContextEnabled=PrivateAggregationInSharedStorage + Exposed=(SharedStorageWorklet), + ContextEnabled=PrivateAggregationInSharedStorage ] interface PrivateAggregation { - [ - CallWith=ScriptState, - RaisesException - ] void contributeToHistogram(PrivateAggregationHistogramContribution contribution); - - [ - CallWith=ScriptState, - RaisesException - ] void enableDebugMode(optional PrivateAggregationDebugModeOptions options); + [CallWith=ScriptState, RaisesException] void contributeToHistogram(PrivateAggregationHistogramContribution contribution); + [CallWith=ScriptState, RaisesException, RuntimeEnabled=PrivateAggregationApiErrorReporting] void contributeToHistogramOnEvent( + DOMString event, PrivateAggregationHistogramContribution contribution); + [CallWith=ScriptState, RaisesException] void enableDebugMode(optional PrivateAggregationDebugModeOptions options); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_debug_mode_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_debug_mode_options.idl index 138d5e16..0899dad4 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_debug_mode_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_debug_mode_options.idl @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// In the spec, this dictionary is named `PADebugModeOptions`. +// https://patcg-individual-drafts.github.io/private-aggregation-api/#exposed-interface dictionary PrivateAggregationDebugModeOptions { - required bigint debugKey; + required bigint debugKey; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_histogram_contribution.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_histogram_contribution.idl index 07e52488..d4c8b62a 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_histogram_contribution.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/private_aggregation_histogram_contribution.idl @@ -2,8 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// In the spec, this dictionary is named `PAHistogramContribution`. +// https://patcg-individual-drafts.github.io/private-aggregation-api/#exposed-interface dictionary PrivateAggregationHistogramContribution { - required bigint bucket; - required long value; - bigint filteringId; + required bigint bucket; + required long value; + bigint filteringId; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_private_aggregation_config.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_private_aggregation_config.idl index 4fd52505..07709465 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_private_aggregation_config.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_private_aggregation_config.idl @@ -1,7 +1,13 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://wicg.github.io/shared-storage/#shared-storage-interface dictionary SharedStoragePrivateAggregationConfig { - USVString aggregationCoordinatorOrigin; - USVString contextId; - [EnforceRange] unsigned long long filteringIdMaxBytes; - [EnforceRange, RuntimeEnabled=PrivateAggregationApiMaxContributions] - unsigned long long maxContributions; + USVString aggregationCoordinatorOrigin; + USVString contextId; + [EnforceRange] unsigned long long filteringIdMaxBytes; + // TODO(crbug.com/376707230) Remove `RuntimeEnabled` attribute once feature + // has been launched for a few milestones. + [EnforceRange, RuntimeEnabled=PrivateAggregationApiMaxContributions] unsigned long long maxContributions; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl index a8ba4f78..df6d88b8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl @@ -38,6 +38,20 @@ enum SpeechRecognitionMode { "cloud-only", }; +enum AvailabilityStatus { + // On-device speech recognition is not supported. + "unavailable", + + // On-device speech recognition is supported but not installed or downloading. + "downloadable", + + // On-device speech recognition is supported and downloading. + "downloading", + + // On-device speech recognition is supported and installed. + "available", +}; + [ ActiveScriptWrappable, LegacyWindowAlias=webkitSpeechRecognition, @@ -68,7 +82,7 @@ enum SpeechRecognitionMode { CallWith=ScriptState, RaisesException, RuntimeEnabled=OnDeviceWebSpeechAvailable - ] static Promise availableOnDevice(DOMString lang); + ] static Promise availableOnDevice(DOMString lang); [ CallWith=ScriptState, RaisesException, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader_pixel_local_storage.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader_pixel_local_storage.idl index d8e0a1dc..1616c204 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader_pixel_local_storage.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader_pixel_local_storage.idl @@ -8,20 +8,19 @@ LegacyNoInterfaceObject ] interface WebGLShaderPixelLocalStorage { const unsigned long MAX_PIXEL_LOCAL_STORAGE_PLANES_WEBGL = 0x96E0; - const unsigned long MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_WEBGL = 0x96E1; - const unsigned long MAX_COMBINED_DRAW_BUFFERS_AND_PIXEL_LOCAL_STORAGE_PLANES_WEBGL = 0x96E2; - const unsigned long PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_WEBGL = 0x96E3; - const unsigned long LOAD_OP_ZERO_WEBGL = 0x96E4; - const unsigned long LOAD_OP_CLEAR_WEBGL = 0x96E5; - const unsigned long LOAD_OP_LOAD_WEBGL = 0x96E6; - const unsigned long STORE_OP_STORE_WEBGL = 0x96E7; - const unsigned long PIXEL_LOCAL_FORMAT_WEBGL = 0x96E8; - const unsigned long PIXEL_LOCAL_TEXTURE_NAME_WEBGL = 0x96E9; - const unsigned long PIXEL_LOCAL_TEXTURE_LEVEL_WEBGL = 0x96EA; - const unsigned long PIXEL_LOCAL_TEXTURE_LAYER_WEBGL = 0x96EB; - const unsigned long PIXEL_LOCAL_CLEAR_VALUE_FLOAT_WEBGL = 0x96EC; - const unsigned long PIXEL_LOCAL_CLEAR_VALUE_INT_WEBGL = 0x96ED; - const unsigned long PIXEL_LOCAL_CLEAR_VALUE_UNSIGNED_INT_WEBGL = 0x96EE; + const unsigned long MAX_COMBINED_DRAW_BUFFERS_AND_PIXEL_LOCAL_STORAGE_PLANES_WEBGL = 0x96E1; + const unsigned long PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_WEBGL = 0x96E2; + const unsigned long LOAD_OP_ZERO_WEBGL = 0x96E3; + const unsigned long LOAD_OP_CLEAR_WEBGL = 0x96E4; + const unsigned long LOAD_OP_LOAD_WEBGL = 0x96E5; + const unsigned long STORE_OP_STORE_WEBGL = 0x96E6; + const unsigned long PIXEL_LOCAL_FORMAT_WEBGL = 0x96E7; + const unsigned long PIXEL_LOCAL_TEXTURE_NAME_WEBGL = 0x96E8; + const unsigned long PIXEL_LOCAL_TEXTURE_LEVEL_WEBGL = 0x96E9; + const unsigned long PIXEL_LOCAL_TEXTURE_LAYER_WEBGL = 0x96EA; + const unsigned long PIXEL_LOCAL_CLEAR_VALUE_FLOAT_WEBGL = 0x96EB; + const unsigned long PIXEL_LOCAL_CLEAR_VALUE_INT_WEBGL = 0x96EC; + const unsigned long PIXEL_LOCAL_CLEAR_VALUE_UNSIGNED_INT_WEBGL = 0x96ED; boolean isCoherent(); undefined framebufferTexturePixelLocalStorageWEBGL(GLint plane, WebGLTexture? texture, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl index 7870c2ce..83abb428 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl @@ -11,9 +11,7 @@ [SameObject] readonly attribute GPUSupportedFeatures features; [SameObject] readonly attribute GPUSupportedLimits limits; [SameObject] readonly attribute GPUAdapterInfo info; - readonly attribute boolean isFallbackAdapter; - [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute boolean isCompatibilityMode; - [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute DOMString featureLevel; + [Measure] readonly attribute boolean isFallbackAdapter; [CallWith=ScriptState] Promise requestDevice(optional GPUDeviceDescriptor descriptor = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl index dbf84c33..68e019f5 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl @@ -15,6 +15,7 @@ // Note that WebGPUSubgroupsFeatures is implied by WebGPUExperimentalFeatures. [RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long subgroupMinSize; [RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long subgroupMaxSize; + [RuntimeEnabled=WebGPUAdapterInfoIsFallbackAdapter] readonly attribute boolean isFallbackAdapter; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString driver; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString backend; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString type; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.idl index 87667f2c..9ac855e9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.idl @@ -11,12 +11,16 @@ [RaisesException] GPURenderPassEncoder beginRenderPass(GPURenderPassDescriptor descriptor); [RaisesException] GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor = {}); - [NoAllocDirectCall] void copyBufferToBuffer( - GPUBuffer src, - GPUSize64 srcOffset, - GPUBuffer dst, - GPUSize64 dstOffset, - GPUSize64 size); + [NoAllocDirectCall, RaisesException] void copyBufferToBuffer( + GPUBuffer source, + GPUBuffer destination, + optional GPUSize64 size); + [NoAllocDirectCall, RaisesException] void copyBufferToBuffer( + GPUBuffer source, + GPUSize64 sourceOffset, + GPUBuffer destination, + GPUSize64 destinationOffset, + optional GPUSize64 size); [RaisesException] void copyBufferToTexture( GPUTexelCopyBufferInfo source, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl index 92160940..02d3861c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl @@ -20,6 +20,7 @@ enum GPUFeatureName { "clip-distances", "dual-source-blending", "subgroups", + "core-features-and-limits", // Non-standard (not currently in the spec). "chromium-experimental-timestamp-query-inside-passes", diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl index 5a80e81f..dc1c6f49 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl @@ -30,7 +30,6 @@ readonly attribute unsigned long long maxBufferSize; readonly attribute unsigned long maxVertexAttributes; readonly attribute unsigned long maxVertexBufferArrayStride; - [RuntimeEnabled=DeprecateMaxInterStageShaderComponents, DeprecateAs=V8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter, Measure] readonly attribute unsigned long maxInterStageShaderComponents; readonly attribute unsigned long maxInterStageShaderVariables; readonly attribute unsigned long maxColorAttachments; readonly attribute unsigned long maxColorAttachmentBytesPerSample; diff --git a/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 2f46a741..e4715ebd 100755 --- a/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -310,6 +310,10 @@ status: "test", base_feature: "none", }, + { + name: "AIPageContentPaidContentAnnotation", + status: "stable" + }, { name: "AIPromptAPI", public: true, @@ -320,6 +324,7 @@ name: "AIPromptAPIForExtension", public: true, origin_trial_feature_name: "AIPromptAPIForExtension", + origin_trial_allows_third_party: true, status: "test", base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -344,6 +349,7 @@ public: true, status: "test", origin_trial_feature_name: "AISummarizationAPI", + origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, @@ -361,6 +367,10 @@ name: "AllowCopyingEmptyLastTableCell", status: "stable", }, + { + name: "AllowPreloadingWithCSPMetaTag", + status: "experimental", + }, { name: "AllowSameSiteNoneCookiesInSandbox", base_feature: "none", @@ -433,16 +443,22 @@ }, { name: "AriaNotify", - status: "test", + status: {"Android": "experimental", "Win": "experimental", "Mac": "experimental", "Linux": "experimental"}, + implied_by: ["AriaNotifyV2"], }, { name: "AriaNotifyV2", - status: "test", + status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, { name: "AriaRowColIndexText", status: "stable", }, + { + // When enabled, perform async IPCs from CookieJar::SetCookie to the + // network service. + name: "AsyncSetCookie", + }, // This flag specifically guards live Range (and by extension, selection) // preservation for atomic move (`moveBefore()`). This is not part of the // launching proposal, per discussion in @@ -460,7 +476,7 @@ }, { name: "AudioContextInterruptedState", - status: "test", + status: "stable", }, { name: "AudioContextOnError", @@ -580,12 +596,6 @@ depends_on: ["BlinkExtensionChromeOS"], browser_process_read_write_access: true, }, - { - name: "BlinkExtensionDiagnostics", - depends_on: ["BlinkExtensionChromeOS"], - browser_process_read_write_access: true, - base_feature: "none", - }, { name: "BlinkExtensionWebView", public: true, @@ -612,12 +622,6 @@ public: true, status: "experimental", }, - { - // Full support for box-decoration-break, including block fragmentation, - // not just -webkit-box-decoration-break with inlines at line breaks. - name: "BoxDecorationBreak", - status: "stable", - }, { name: "BrowserVerifiedUserActivationKeyboard", base_feature: "none", @@ -655,6 +659,11 @@ name: "ButtonNoAlignItems", status: "stable", }, + { + // Enables bypassing CSP checks when we consume a preload. + // https://crbug.com/348442535 + name: "BypassCSPForPreloads", + }, { // Bypasses the enforcement of the Page Embedded Permission Control // security checks. This flag is disabled by default and should only be @@ -699,13 +708,6 @@ origin_trial_allows_third_party: true, status: "test", }, - { - // This is a kill switch for shaping directly in TextMetrics when - // ctx.measureText() is called. Disabled after speedometer regression: - // https://crbug.com/362784008. - name: "Canvas2dTextMetricsShaping", - status: "experimental", - }, { name: "CanvasFloatingPoint", status: "experimental", @@ -720,9 +722,20 @@ status: "experimental", }, { - // https://crbug.com/377325952 + // No status because this blink runtime feature doesn't work by itself. + // It's controlled by the corresponding Chromium feature, + // fingerprinting_protection_interventions::features::kCanvasNoise through + // modified_runtime_features and setting its status in the browser + // process. name: "CanvasInterventions", browser_process_read_write_access: true, + base_feature: "none", + }, + { + // This allows testing the canvas noise interventions in tests (which in + // most cases don't have a CPU). In practice the interventions are only + // enabled for GPU-rendered canvases. + name: "CanvasInterventionsOnCpuForTesting", }, { // https://github.com/Igalia/explainers/blob/main/canvas-formatted-text/html-in-canvas.md @@ -732,11 +745,13 @@ { // https://chromestatus.com/feature/5066778773028864 name: "CanvasTextLang", - status: "experimental", + status: "stable", }, { // crbug.com/389726691. name: "CanvasTextNg", + origin_trial_feature_name: "CanvasTextNg", + status: "experimental", }, { // Kill switch for https://crbug.com/330506337. @@ -763,12 +778,11 @@ }, { name: "CapturedSurfaceControl", - origin_trial_feature_name: "CapturedSurfaceControl", - status: {"Android": "", "default": "experimental"}, + status: {"Android": "", "default": "stable"} }, { name: "CapturedSurfaceResolution", - status: { "Win": "experimental", "default": ""}, + status: { "Win": "stable", "Mac": "stable", "default": ""}, }, { name: "CaptureHandle", @@ -798,7 +812,7 @@ // the common ancestor of pointerdown and pointerup targets. { name: "ClickToCapturedPointer", - status: "experimental", + status: "stable", }, { // Allows top-level sites to restrict collection of high-entropy UA client @@ -807,6 +821,13 @@ name: "ClientHintUAHighEntropyValuesPermissionPolicy", status: "test", }, + { + // Enables clipboardchange event API for listening for changes to the + // system clipboard + // https://chromestatus.com/feature/5085102657503232 + name: "ClipboardChangeEvent", + base_feature: "none", + }, { // Enables the API for getting a unique token of the system clipboard's // current state. @@ -1018,12 +1039,6 @@ name: "CSSAnchorSizeInsetsMargins", status: "stable", }, - { - // Support for syntax in @property - // https://drafts.css-houdini.org/css-properties-values-api-1/#syntax-strings - name: "CSSAtPropertyStringSyntax", - status: "stable", - }, { // Whether values are allowed as counter style name: "CSSAtRuleCounterStyleImageSymbols", @@ -1033,6 +1048,12 @@ name: "CSSAtRuleCounterStyleSpeakAsDescriptor", status: "test", }, + { + // Replaces `string` type in CSS attr() function syntax with `raw-string`. + // https://github.com/w3c/csswg-drafts/issues/11645#issuecomment-2701601350 + name: "CSSAttrRawString", + status: "stable", + }, { // https://chromestatus.com/feature/5125388091260928 name: "CSSBackgroundClipUnprefix", @@ -1092,7 +1113,7 @@ }, { name: "CSSDynamicRangeLimit", - status: "experimental", + status: "stable", }, { // Include custom properties in CSSComputedStyleDeclaration::item/length. @@ -1178,6 +1199,7 @@ { name: "CSSMasonryLayout", status: "test", + public: true, }, // https://drafts.csswg.org/css-values-5/#progress // media-progress() @@ -1277,7 +1299,7 @@ { // crbug.com/359616070 name: "CSSRelativeColorLateResolveAlways", - status: "experimental", + status: "stable", }, { // crbug.com/365818844 @@ -1424,6 +1446,12 @@ // [1] https://drafts.csswg.org/css-scoping-1/#shadow-names name: "CSSTreeScopedTimelines", }, + { + // The var() fallback does not validate against the type + // of the custom property being referenced. + name: "CSSTypeAgnosticVarFallback", + status: "stable", + }, // Support for `user-select:contain`. { name: "CSSUserSelectContain", @@ -1461,19 +1489,15 @@ depends_on: ["CustomizableSelect"], }, { + // https://chromestatus.com/feature/5134293578285056 name: "Database", - public: true, - status: "experimental", - base_feature: "none", - origin_trial_feature_name: "WebSQL", - origin_trial_allows_third_party: true, - origin_trial_type: "deprecation", }, { - // Remove this feature when the removal of the WebGPU limit - // maxInterStageShaderComponents has been stable long enough. - // See https://crbug.com/364338810 - name: "DeprecateMaxInterStageShaderComponents", + // Fix HandleMouseFocus selection for delegated focus text control. + // See https://crbug.com/400317114 + // This feature was shipped in M136, so this flag can be removed in M138. + name: "DelegatesFocusTextControlFix", + status: "stable", }, // This allows pages to opt out of the unload deprecation. Enabling this // allows unload event handers to be used in the frame regardless of any @@ -1583,11 +1607,6 @@ status: "test", depends_on: ["DirectSockets"], }, - { - // Disables anti-aliasing for the Ahem font. Anti-aliasing this font breaks a - // significant amount of WPT test expectations. - name: "DisableAhemAntialias", - }, { name: "DisableDifferentOriginSubframeDialogSuppression", base_feature: "none", @@ -1609,10 +1628,6 @@ origin_trial_allows_third_party: true, base_feature: "none", }, - { - name: "DisableSelectAllForEmptyText", - status: "stable", - }, // This feature will represent the extension of a deprecation trial that // allows first parties to temporarily use unpartitioned storage in embeds // loaded on their site. It replaces an old DT named @@ -1737,7 +1752,6 @@ // IncludeJSCallStacksInCrashReports. https://chromestatus.com/feature/4731248572628992 { name: "DocumentPolicyIncludeJSCallStacksInCrashReports", - origin_trial_feature_name: "DocumentPolicyIncludeJSCallStacksInCrashReports", status: "experimental", base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -1772,10 +1786,6 @@ { name: "DOMPartsAPIMinimal", }, - { - name: "DragImageNoNodeId", - status: "stable", - }, // Dynamically change the safe area insets based on the bottom browser // controls visibility. { @@ -1929,6 +1939,7 @@ { name: "FedCmMultipleIdentityProviders", depends_on: ["FedCm"], + status: "stable", base_feature: "none", public: true, origin_trial_feature_name: "FedCmMultipleIdentityProviders", @@ -2001,6 +2012,11 @@ name: "FetchUploadStreaming", status: "stable", }, + { + // Killswitch M136. + name: "FewerSubsequences", + status: "stable", + }, { // Also enabled when blink::features::kFileHandlingAPI is overridden // on the command line (or via chrome://flags). @@ -2075,10 +2091,6 @@ name: "FindFirstMisspellingEndWhenNonEditable", status: "stable", }, - { - name: "FindTextInReadonlyTextInput", - status: "experimental", - }, { name: "Fledge", status: "stable", @@ -2156,9 +2168,14 @@ status: "test", }, { - name: "FledgeTrustedSignalsKVv2Support", + name: "FledgeTrustedSignalsKVv2ContextualData", + depends_on: ["FledgeTrustedSignalsKVv2Support"], status: "test", }, + { + name: "FledgeTrustedSignalsKVv2Support", + status: "stable", + }, { name: "FluentOverlayScrollbars", // The associated base feature is defined in @@ -2189,10 +2206,6 @@ name: "FontationsFontBackend", status: "stable", }, - { - name: "FontationsForSelectedFormats", - status: "stable", - }, { name: "FontFamilyPostscriptMatchingCTMigration", }, @@ -2213,14 +2226,6 @@ name: "FontSystemFallbackNotoCjk", status: "stable", }, - { - name: "FontVariantEmoji", - status: "stable", - }, - { - name: "FontVariationSequences", - status: "stable", - }, { // TODO(crbug.com/1231644): This flag is being kept (even though the // feature has shipped) until there are settings to allow users to @@ -2319,10 +2324,22 @@ "default": "experimental", }, }, + { + name: "HarfBuzzBufferPool", + status: "stable", + }, { name: "HasUAVisualTransition", status: "stable", }, + // TODO(crbug.com/333628468): Enables the `headingoffset` and + // `headingreset` attributes, which allow for alternate styles of building + // structured headings. This is being actively prototyped, starting ~M136. + // For more see https://github.com/whatwg/html/issues/5033 + { + name: "HeadingOffset", + status: "experimental", + }, { name: "HighlightInheritance", status: "stable", @@ -2363,11 +2380,11 @@ name: "HTMLCommandAttributes", status: "stable", }, + // Adds support for the 'request-close' command. { - // TODO(crbug.com/376516550): Enables dialog light dismiss functionality. - // This feature shipped in M134, so this flag can be removed in M136. - name: "HTMLDialogLightDismiss", - status: "stable", + name: "HTMLCommandRequestClose", + depends_on: ["HTMLCommandAttributes"], + status: "experimental", }, // The `` should follow the specification, layout is not forced // when the `type` attribute is set to `image`. @@ -2397,6 +2414,7 @@ name: "HTMLInterestTargetAttribute", status: "experimental", origin_trial_feature_name: "HTMLInterestTargetAttribute", + origin_trial_allows_third_party: true, }, { // A flag, just for local testing to make the @@ -2566,16 +2584,6 @@ name: "IsSecurePaymentConfirmationAvailableAPI", status: "experimental", }, - { - name: "JavaScriptCompileHintsMagicAlwaysRuntime", - status: "experimental", - origin_trial_feature_name: "JavaScriptCompileHintsMagicAlways", - }, - { - name: "JavaScriptCompileHintsMagicRuntime", - status: "experimental", - origin_trial_feature_name: "JavaScriptCompileHintsMagic", - }, { name: "KeyboardAccessibleTooltip", status: "experimental", @@ -2613,23 +2621,17 @@ name: "LanguageDetectionAPI", status: "experimental", origin_trial_feature_name: "LanguageDetectionAPI", + origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, { - name: "LayoutDisableWebkitBoxQuirks", + name: "LayoutFlexNewRowAlgorithm", status: "stable", }, - { - name: "LayoutFlexNewRowAlgorithmV3", - status: "test", - }, { name: "LayoutIgnoreMarginsForSticky", }, - { - name: "LayoutImageForceAspectRatioOfOneOnError", - }, { name: "LayoutImageRevalidationCheckForSvgImages", }, @@ -2637,6 +2639,10 @@ name: "LayoutJustifySelfForBlocks", status: "stable", }, + { + name: "LayoutMinSizeIndefinite", + status: "stable", + }, { name: "LayoutNGShapeCache", status: "test", @@ -2646,6 +2652,10 @@ name: "LayoutStretch", status: "experimental", }, + { + name: "LayoutWebkitBoxTreeFix", + status: "stable", + }, { name: "LazyInitializeMediaControls", base_feature: "none", @@ -2672,11 +2682,6 @@ status: "experimental", base_feature: "none", }, - { - // crbug.com/365814218 - name: "LineBoxBelowLeadingFloats", - status: "stable", - }, { name: "ListItemWithCounterSetNotSetExplicitValue", status: "stable", @@ -2804,7 +2809,7 @@ // This uses media::VideoEncoder implementation in MediaRecorder API // instead of using MediaRecorder own video encoder implementation. name: "MediaRecorderUseMediaVideoEncoder", - status: {"Android": "", "default": "stable"}, + status: "stable", }, { name: "MediaSession", @@ -2886,14 +2891,6 @@ base_feature: "none", is_protected_feature: true, }, - { - // Fix HandleMouseFocus and FrameSelection to use FlatTree parent so - // correct fallback element receives focus. - // See https://crbug.com/41420461 - // This feature was shipped in M133, so this flag can be removed in M135. - name: "MouseFocusFlatTreeParent", - status: "stable", - }, // Move the selection to the last position in the list item. See // https://crbug.com/331841851 { @@ -2904,6 +2901,10 @@ name: "MoveToParagraphStartOrEndSkipsNonEditable", status: "stable", }, + { + name: "MulticolColumnWrapping", + status: "experimental", + }, { name: "MultipleImportMaps", status: "stable", @@ -2983,6 +2984,15 @@ name: "NodeInUAShadowRootUnderAnonymousBlockFlow", status: "stable", }, + { + // This turns off all font antialiasing for tests unless it is + // explicitly required and enabled using the + // "--enable-font-antialiasing" flag like in the case of + // "virtual/text-antialias/" virtual test suite. + // crbug.com/339041663 + name: "NoFontAntialiasing", + status: "test", + }, { name: "NoIdleEncodingForWebTests", status: "test", @@ -3054,10 +3064,6 @@ name: "OmitBlurEventOnElementRemoval", status: "test" }, - { - name: "OnDeviceChange", - status: "stable" - }, { name: "OnDeviceWebSpeechAvailable", status: "experimental", @@ -3065,7 +3071,8 @@ { // This flag makes the