diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE index f987e22f..a8c0de41 100644 --- a/tools/under-control/src/RELEASE +++ b/tools/under-control/src/RELEASE @@ -1 +1 @@ -125.0.6422.147 +126.0.6478.40 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 96a11918..c21b1394 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 @@ -266,7 +266,7 @@ AwContentBrowserClient::~AwContentBrowserClient() {} void AwContentBrowserClient::OnNetworkServiceCreated( network::mojom::NetworkService* network_service) { - // TODO(https://crbug.com/1085233): If CertVerifierServiceFactory is moved to + // TODO(crbug.com/40693524): If CertVerifierServiceFactory is moved to // a separate process, this will likely need to be set somewhere else instead // of here. content::GetCertVerifierServiceFactory()->SetUseChromeRootStore( @@ -429,7 +429,7 @@ AwContentBrowserClient::GetGeneratedCodeCacheSettings( // cache for the code cache entry to be used. There are two code caches that // both use this value, so we pass 10MB to keep the total disk usage to // roughly 2x what it was before the code cache was implemented. - // TODO(crbug/893318): webview should have smarter cache sizing logic. + // TODO(crbug.com/41419561): webview should have smarter cache sizing logic. AwBrowserContext* browser_context = static_cast(context); return content::GeneratedCodeCacheSettings( true, 10 * 1024 * 1024, browser_context->GetHttpCachePath()); @@ -678,7 +678,7 @@ AwContentBrowserClient::CreateURLLoaderThrottles( }, base::Unretained(this)), wc_getter, frame_tree_node_id, navigation_id, - // TODO(crbug.com/1033760): rt_lookup_service is + // TODO(crbug.com/40663467): rt_lookup_service is // used to perform real time URL check, which is gated by UKM opted-in. // Since AW currently doesn't support UKM, this feature is not enabled. /* rt_lookup_service */ nullptr, @@ -738,7 +738,7 @@ AwContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( }, base::Unretained(this)), wc_getter, frame_tree_node_id, /*navigation_id=*/std::nullopt, - // TODO(crbug.com/1033760): rt_lookup_service is + // TODO(crbug.com/40663467): rt_lookup_service is // used to perform real time URL check, which is gated by UKM opted-in. // Since AW currently doesn't support UKM, this feature is not enabled. /* rt_lookup_service */ nullptr, @@ -950,7 +950,7 @@ void AwContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories( } bool AwContentBrowserClient::ShouldAllowNoLongerUsedProcessToExit() { - // TODO(crbug.com/1268454): Add Android WebView support for allowing a + // TODO(crbug.com/40803531): Add Android WebView support for allowing a // renderer process to exit when only non-live RenderFrameHosts remain, // without consulting the app's OnRenderProcessGone crash handlers. return false; @@ -969,7 +969,7 @@ bool AwContentBrowserClient::ShouldEnableStrictSiteIsolation() { } size_t AwContentBrowserClient::GetMaxRendererProcessCountOverride() { - // TODO(crbug.com/806404): These options can currently can only be turned by + // TODO(crbug.com/40560171): These options can currently can only be turned by // by manually overriding command line switches because // `ShouldDisableSiteIsolation` returns true. Should coordinate if/when // enabling this in production. diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml index 632b6fcf..f9192285 100755 --- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml +++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml @@ -70,7 +70,7 @@ by a child template that "extends" this file. - + @@ -170,7 +170,7 @@ by a child template that "extends" this file. Official builds (stable, beta, dev, canary) handle this differently, this setting is for locally deployed ToT builds only. - TODO(https://crbug.com/1122210): remove if this is replaced by an + TODO(crbug.com/40715928): remove if this is replaced by an alternate mechanism. --> @@ -363,7 +363,7 @@ by a child template that "extends" this file. - + @@ -394,7 +394,7 @@ by a child template that "extends" this file. - + @@ -566,11 +566,11 @@ by a child template that "extends" this file. @@ -651,18 +651,6 @@ by a child template that "extends" this file. android:label="@string/edit_bookmark" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"> - - - - diff --git a/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index d73dbe00..9059ada8 100755 --- a/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc @@ -16,6 +16,7 @@ #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/functional/callback_helpers.h" +#include "base/location.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/metrics/user_metrics.h" @@ -126,7 +127,7 @@ #include "components/search_engines/template_url_service.h" #include "components/sync/service/sync_service.h" #include "components/sync/service/sync_user_settings.h" -#include "components/tpcd/metadata/manager.h" +#include "components/tpcd/metadata/browser/manager.h" #include "components/web_cache/browser/web_cache_manager.h" #include "components/webrtc_logging/browser/log_cleanup.h" #include "components/webrtc_logging/browser/text_log_list.h" @@ -154,17 +155,22 @@ #include "chrome/browser/android/customtabs/chrome_origin_verifier.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/webapps/webapp_registry.h" -#include "chrome/browser/feed/feed_service_factory.h" #include "chrome/browser/offline_pages/offline_page_model_factory.h" #include "chrome/browser/profiles/profile_android.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" +#include "chrome/browser/ui/android/tab_model/tab_model_list.h" #include "components/cdm/browser/media_drm_storage_impl.h" // nogncheck crbug.com/1125897 -#include "components/feed/core/v2/public/feed_service.h" -#include "components/feed/feed_feature_list.h" #include "components/installedapp/android/jni_headers/PackageHash_jni.h" #include "components/offline_pages/core/offline_page_feature.h" #include "components/offline_pages/core/offline_page_model.h" #endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(ENABLE_FEED_V2) +#include "chrome/browser/feed/feed_service_factory.h" +#include "components/feed/core/v2/public/feed_service.h" // nogncheck +#include "components/feed/feed_feature_list.h" +#endif // BUILDFLAG(ENABLE_FEED_V2) + #if !BUILDFLAG(IS_ANDROID) #include "chrome/browser/web_applications/web_app.h" #include "chrome/browser/web_applications/web_app_command_scheduler.h" @@ -194,10 +200,6 @@ #include "device/fido/cros/credential_store.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) -#if BUILDFLAG(IS_MAC) -#include "device/fido/mac/credential_store.h" -#endif // BUILDFLAG(IS_MAC) - #if BUILDFLAG(IS_WIN) #include "chrome/browser/media/cdm_document_service_impl.h" #endif // BUILDFLAG(IS_WIN) @@ -662,8 +664,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ->OnCookiesDeleted(); } - if (filter_builder->GetMode() == - BrowsingDataFilterBuilder::Mode::kPreserve) { + if (filter_builder->MatchesMostOriginsAndDomains()) { auto* privacy_sandbox_settings = PrivacySandboxSettingsFactory::GetForProfile(profile_); if (privacy_sandbox_settings) { @@ -779,7 +780,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (bookmark_model && bookmark_model->loaded()) { if (delete_begin_.is_null() && (delete_end_.is_null() || delete_end_.is_max())) { - bookmark_model->RemoveAllUserBookmarks(); + bookmark_model->RemoveAllUserBookmarks(FROM_HERE); } else { // Bookmark deletion is only implemented to remove all data after a // profile deletion. A full implementation would need to traverse the @@ -807,7 +808,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ReadingListModelFactory::GetForBrowserContext(profile_); if (reading_list_model) { if (delete_begin_.is_null() && delete_end_.is_max()) { - reading_list_model->DeleteAllEntries(); + reading_list_model->DeleteAllEntries(FROM_HERE); } else { NOTIMPLEMENTED(); } @@ -850,6 +851,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ContentSettingsType::APP_BANNER, base::Time(), base::Time::Max(), website_settings_filter); + host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( + ContentSettingsType::REVOKED_UNUSED_SITE_PERMISSIONS, delete_begin_, + delete_end_, website_settings_filter); + #if !BUILDFLAG(IS_ANDROID) host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( ContentSettingsType::INTENT_PICKER_DISPLAY, delete_begin_, delete_end_, @@ -863,10 +868,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ContentSettingsType::NOTIFICATION_PERMISSION_REVIEW, delete_begin_, delete_end_, website_settings_filter); - host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( - ContentSettingsType::REVOKED_UNUSED_SITE_PERMISSIONS, delete_begin_, - delete_end_, website_settings_filter); - host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( ContentSettingsType::REVOKED_ABUSIVE_NOTIFICATION_PERMISSIONS, delete_begin_, delete_end_, website_settings_filter); @@ -920,7 +921,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // TODO:(crbug.com/1167715) - Test that associated compromised credentials // are removed. password_store->RemoveLoginsByURLAndTime( - filter, delete_begin_, delete_end_, + FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kPasswords)); } @@ -987,7 +988,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( constants::DATA_TYPE_ACCOUNT_PASSWORDS); #endif account_store->RemoveLoginsByURLAndTime( - filter, delete_begin_, delete_end_, + FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kAccountPasswords), std::move(sync_completion)); } @@ -1036,7 +1037,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( web_data_service->RemoveAutofillDataModifiedBetween(delete_begin_, delete_end_); // Clear out the Autofill StrikeDatabase in its entirety. - // TODO(crbug.com/884817): Respect |delete_begin_| and |delete_end_| and + // TODO(crbug.com/40594007): Respect |delete_begin_| and |delete_end_| and // only clear out entries whose last strikes were created in that // timeframe. autofill::StrikeDatabase* strike_database = @@ -1060,12 +1061,12 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // DATA_TYPE_CACHE if (remove_mask & content::BrowsingDataRemover::DATA_TYPE_CACHE) { // Tell the renderers associated with |profile_| to clear their cache. - // TODO(crbug.com/668114): Renderer cache is a platform concept, and should - // live in BrowsingDataRemoverImpl. However, WebCacheManager itself is - // a component with dependency on content/browser. Untangle these + // TODO(crbug.com/40495069): Renderer cache is a platform concept, and + // should live in BrowsingDataRemoverImpl. However, WebCacheManager itself + // is a component with dependency on content/browser. Untangle these // dependencies or reimplement the relevant part of WebCacheManager // in content/browser. - // TODO(crbug.com/1022757): add a test for this. + // TODO(crbug.com/40657761): add a test for this. for (content::RenderProcessHost::iterator iter = content::RenderProcessHost::AllHostsIterator(); !iter.IsAtEnd(); iter.Advance()) { @@ -1119,7 +1120,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } #endif - // TODO(crbug.com/829321): Remove null-check. + // TODO(crbug.com/41380998): Remove null-check. auto* webrtc_event_log_manager = WebRtcEventLogManager::GetInstance(); if (webrtc_event_log_manager) { webrtc_event_log_manager->ClearCacheForBrowserContext( @@ -1316,14 +1317,15 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ////////////////////////////////////////////////////////////////////////////// // Remove external protocol data. - if (remove_mask & constants::DATA_TYPE_EXTERNAL_PROTOCOL_DATA) + if (remove_mask & constants::DATA_TYPE_EXTERNAL_PROTOCOL_DATA && + filter_builder->GetMode() == BrowsingDataFilterBuilder::Mode::kPreserve) { ExternalProtocolHandler::ClearData(profile_); + } #if BUILDFLAG(ENABLE_DOWNGRADE_PROCESSING) ////////////////////////////////////////////////////////////////////////////// // Remove data for this profile contained in any snapshots. - if (remove_mask && - filter_builder->GetMode() == BrowsingDataFilterBuilder::Mode::kPreserve) { + if (remove_mask && filter_builder->MatchesMostOriginsAndDomains()) { base::ThreadPool::PostTaskAndReply( FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()}, base::BindOnce(&downgrade::RemoveDataForProfile, delete_begin_, @@ -1393,6 +1395,24 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } } #endif // !BUILDFLAG(IS_ANDROID) + + ////////////////////////////////////////////////////////////////////////////// + // DATA_TYPE_TABS + if (remove_mask & constants::DATA_TYPE_TABS) { +#if BUILDFLAG(IS_ANDROID) + base::RecordAction(UserMetricsAction("ClearBrowsingData_Tabs")); + + for (TabModel* tab_model : TabModelList::models()) { + if (tab_model->GetProfile() != profile_ || tab_model->IsOffTheRecord()) { + continue; + } + + tab_model->CloseTabsNavigatedInTimeWindow(delete_begin, delete_end); + } +#else // BUILDFLAG(IS_ANDROID) + NOTIMPLEMENTED(); +#endif // BUILDFLAG(IS_ANDROID) + } } void ChromeBrowsingDataRemoverDelegate::OnTaskStarted( @@ -1621,11 +1641,7 @@ void ChromeBrowsingDataRemoverDelegate::OnClearPlatformKeys( std::unique_ptr ChromeBrowsingDataRemoverDelegate::MakeCredentialStore() { return -#if BUILDFLAG(IS_MAC) - std::make_unique( - ChromeWebAuthenticationDelegate::TouchIdAuthenticatorConfigForProfile( - profile_)); -#elif BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_CHROMEOS_ASH) std::make_unique< device::fido::cros::PlatformAuthenticatorCredentialStore>(); #else diff --git a/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc b/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc index f5a1dd77..51a4b165 100755 --- a/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc +++ b/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc @@ -23,6 +23,7 @@ #include "chrome/browser/media/media_engagement_score_details.mojom.h" #include "chrome/browser/model_execution/model_manager_impl.h" #include "chrome/browser/navigation_predictor/navigation_predictor.h" +#include "chrome/browser/on_device_translation/translation_manager_impl.h" #include "chrome/browser/optimization_guide/optimization_guide_internals_ui.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" #include "chrome/browser/predictors/lcp_critical_path_predictor/lcp_critical_path_predictor_host.h" @@ -103,9 +104,11 @@ #include "services/image_annotation/public/mojom/image_annotation.mojom.h" #include "services/screen_ai/buildflags/buildflags.h" #include "third_party/blink/public/common/features.h" +#include "third_party/blink/public/common/features_generated.h" #include "third_party/blink/public/mojom/credentialmanagement/credential_manager.mojom.h" #include "third_party/blink/public/mojom/lcp_critical_path_predictor/lcp_critical_path_predictor.mojom.h" #include "third_party/blink/public/mojom/loader/navigation_predictor.mojom.h" +#include "third_party/blink/public/mojom/on_device_translation/translation_manager.mojom.h" #include "third_party/blink/public/mojom/payments/payment_credential.mojom.h" #include "third_party/blink/public/mojom/payments/payment_request.mojom.h" #include "third_party/blink/public/mojom/prerender/prerender.mojom.h" @@ -134,8 +137,7 @@ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h" #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_FUCHSIA) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) #include "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h" #include "ui/webui/resources/cr_components/app_management/app_management.mojom.h" #endif @@ -175,14 +177,14 @@ #if !defined(OFFICIAL_BUILD) #include "chrome/browser/ui/webui/new_tab_page/foo/foo.mojom.h" // nogncheck crbug.com/1125897 #endif +#include "chrome/browser/ui/lens/lens_untrusted_ui.h" +#include "chrome/browser/ui/lens/search_bubble_ui.h" #include "chrome/browser/ui/side_panel/customize_chrome/customize_chrome_utils.h" #include "chrome/browser/ui/webui/commerce/product_specifications_ui.h" #include "chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h" #include "chrome/browser/ui/webui/hats/hats_ui.h" #include "chrome/browser/ui/webui/history/history_ui.h" #include "chrome/browser/ui/webui/internals/user_education/user_education_internals.mojom.h" -#include "chrome/browser/ui/webui/lens/lens_untrusted_ui.h" -#include "chrome/browser/ui/webui/lens/search_bubble_ui.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h" #include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h" @@ -359,6 +361,7 @@ #include "chrome/browser/ui/webui/ash/set_time_ui.h" #include "chrome/browser/ui/webui/ash/settings/os_settings_ui.h" #include "chrome/browser/ui/webui/ash/settings/pages/apps/mojom/app_notification_handler.mojom.h" +#include "chrome/browser/ui/webui/ash/settings/pages/apps/mojom/app_parental_controls_handler.mojom.h" #include "chrome/browser/ui/webui/ash/settings/pages/device/display_settings/display_settings_provider.mojom.h" #include "chrome/browser/ui/webui/ash/settings/pages/device/input_device_settings/input_device_settings_provider.mojom.h" #include "chrome/browser/ui/webui/ash/settings/pages/files/mojom/google_drive_handler.mojom.h" @@ -382,6 +385,7 @@ #include "chromeos/ash/services/cellular_setup/public/mojom/esim_manager.mojom.h" #include "chromeos/ash/services/connectivity/public/mojom/passpoint.mojom.h" #include "chromeos/ash/services/hotspot_config/public/mojom/cros_hotspot_config.mojom.h" +#include "chromeos/ash/services/ime/public/mojom/input_method_user_data.mojom.h" #include "chromeos/ash/services/multidevice_setup/multidevice_setup_service.h" #include "chromeos/ash/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/ash/services/nearby/public/mojom/nearby_share_settings.mojom.h" // nogncheck crbug.com/1125897 @@ -1084,6 +1088,11 @@ void PopulateChromeFrameBinders( map->Add( base::BindRepeating(&printing::CreateWebPrintingServiceForFrame)); #endif + + if (base::FeatureList::IsEnabled(blink::features::kEnableTranslationAPI)) { + map->Add( + base::BindRepeating(&TranslationManagerImpl::Create)); + } } void PopulateChromeWebUIFrameBinders( @@ -1139,8 +1148,7 @@ void PopulateChromeWebUIFrameBinders( policy::DlpInternalsUI>(map); #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_FUCHSIA) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) RegisterWebUIControllerInterfaceBinder< app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); #endif @@ -1163,6 +1171,9 @@ void PopulateChromeWebUIFrameBinders( if (lens::features::IsLensOverlayEnabled()) { RegisterWebUIControllerInterfaceBinder(map); + } + + if (lens::features::IsLensOverlaySearchBubbleEnabled()) { RegisterWebUIControllerInterfaceBinder< lens::mojom::SearchBubblePageHandlerFactory, lens::SearchBubbleUI>(map); } @@ -1185,6 +1196,7 @@ void PopulateChromeWebUIFrameBinders( ash::EmojiUI, ash::RemoteMaintenanceCurtainUI, ash::app_install::AppInstallDialogUI, ash::printing::print_preview::PrintPreviewCrosUI, + ash::extended_updates::ExtendedUpdatesUI, #endif NewTabPageUI, OmniboxPopupUI, BookmarksSidePanelUI, CustomizeChromeUI, InternalsUI, ReadingListUI, TabSearchUI, WebuiGalleryUI, @@ -1270,7 +1282,7 @@ void PopulateChromeWebUIFrameBinders( map); #endif // !defined(OFFICIAL_BUILD) - if (IsCartModuleEnabled() && customize_chrome::IsSidePanelEnabled()) { + if (IsCartModuleEnabled()) { RegisterWebUIControllerInterfaceBinder( map); @@ -1340,7 +1352,7 @@ void PopulateChromeWebUIFrameBinders( RegisterWebUIControllerInterfaceBinder< shopping_service::mojom::ShoppingServiceHandlerFactory, BookmarksSidePanelUI, commerce::ProductSpecificationsUI, - ShoppingInsightsSidePanelUI>(map); + ShoppingInsightsSidePanelUI, HistoryUI>(map); if (base::FeatureList::IsEnabled( performance_manager::features::kPerformanceControlsSidePanel)) { @@ -1349,19 +1361,23 @@ void PopulateChromeWebUIFrameBinders( PerformanceSidePanelUI>(map); } - if (customize_chrome::IsSidePanelEnabled()) { - RegisterWebUIControllerInterfaceBinder< - side_panel::mojom::CustomizeChromePageHandlerFactory, - CustomizeChromeUI>(map); + RegisterWebUIControllerInterfaceBinder< + side_panel::mojom::CustomizeChromePageHandlerFactory, CustomizeChromeUI>( + map); - if (base::FeatureList::IsEnabled( - ntp_features::kCustomizeChromeWallpaperSearch) && - base::FeatureList::IsEnabled( - optimization_guide::features::kOptimizationGuideModelExecution)) { - RegisterWebUIControllerInterfaceBinder< - side_panel::customize_chrome::mojom::WallpaperSearchHandlerFactory, - CustomizeChromeUI>(map); - } + if (base::FeatureList::IsEnabled( + ntp_features::kCustomizeChromeWallpaperSearch) && + base::FeatureList::IsEnabled( + optimization_guide::features::kOptimizationGuideModelExecution)) { + RegisterWebUIControllerInterfaceBinder< + side_panel::customize_chrome::mojom::WallpaperSearchHandlerFactory, + CustomizeChromeUI>(map); + } + + if (features::IsToolbarPinningEnabled()) { + RegisterWebUIControllerInterfaceBinder< + side_panel::customize_chrome::mojom::CustomizeToolbarHandlerFactory, + CustomizeChromeUI>(map); } if (user_notes::IsUserNotesEnabled()) { @@ -1432,6 +1448,10 @@ void PopulateChromeWebUIFrameBinders( ash::settings::app_permission::mojom::AppPermissionsHandler, ash::settings::OSSettingsUI>(map); + RegisterWebUIControllerInterfaceBinder< + ash::settings::app_parental_controls::mojom::AppParentalControlsHandler, + ash::settings::OSSettingsUI>(map); + RegisterWebUIControllerInterfaceBinder< ash::settings::mojom::InputDeviceSettingsProvider, ash::settings::OSSettingsUI>(map); @@ -1676,6 +1696,13 @@ void PopulateChromeWebUIFrameBinders( ash::settings::OSSettingsUI>(map); } + if (base::FeatureList::IsEnabled( + ash::features::kSystemJapanesePhysicalTyping)) { + RegisterWebUIControllerInterfaceBinder< + ash::ime::mojom::InputMethodUserDataService, + ash::settings::OSSettingsUI>(map); + } + RegisterWebUIControllerInterfaceBinder(map); 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 b07f8f58..7acca810 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 @@ -36,7 +36,6 @@ #include "base/stl_util.h" #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" -#include "base/strings/string_piece.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" @@ -64,6 +63,7 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" #include "chrome/browser/data_saver/data_saver.h" +#include "chrome/browser/data_sharing/data_sharing_navigation_throttle.h" #include "chrome/browser/defaults.h" #include "chrome/browser/device_api/device_service_impl.h" #include "chrome/browser/device_api/managed_configuration_service.h" @@ -71,7 +71,6 @@ #include "chrome/browser/download/chrome_download_manager_delegate.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/browser/enterprise/browser_management/management_service_factory.h" -#include "chrome/browser/enterprise/connectors/connectors_service.h" #include "chrome/browser/enterprise/reporting/legacy_tech/legacy_tech_service.h" #include "chrome/browser/enterprise/reporting/prefs.h" #include "chrome/browser/enterprise/util/managed_browser_utils.h" @@ -165,6 +164,8 @@ #include "chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.h" #include "chrome/browser/supervised_user/supervised_user_navigation_throttle.h" #include "chrome/browser/task_manager/sampling/task_manager_impl.h" +#include "chrome/browser/themes/theme_service.h" +#include "chrome/browser/themes/theme_service_factory.h" #include "chrome/browser/tracing/chrome_tracing_delegate.h" #include "chrome/browser/translate/translate_service.h" #include "chrome/browser/ui/blocked_content/blocked_window_params.h" @@ -173,6 +174,7 @@ #include "chrome/browser/ui/browser_navigator.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/chrome_select_file_policy.h" +#include "chrome/browser/ui/lens/lens_overlay_side_panel_navigation_throttle.h" #include "chrome/browser/ui/login/http_auth_coordinator.h" #include "chrome/browser/ui/login/login_navigation_throttle.h" #include "chrome/browser/ui/passwords/password_manager_navigation_throttle.h" @@ -367,7 +369,6 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/mojom/sandbox.mojom.h" #include "sandbox/policy/switches.h" -#include "services/device/public/cpp/geolocation/geolocation_system_permission_manager.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/is_potentially_trustworthy.h" @@ -465,7 +466,7 @@ #include "components/user_manager/user_manager.h" #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h" #include "storage/browser/file_system/external_mount_points.h" -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) #include "chrome/browser/chrome_browser_main_linux.h" @@ -504,8 +505,6 @@ #endif // BUILDFLAG(DFMIFY_DEV_UI) #elif BUILDFLAG(IS_POSIX) #include "chrome/browser/chrome_browser_main_posix.h" -#elif BUILDFLAG(IS_FUCHSIA) -#include "chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h" #endif #if !BUILDFLAG(IS_ANDROID) @@ -569,13 +568,15 @@ #include "chrome/browser/webauthn/chrome_authenticator_request_delegate.h" #include "chrome/grit/chrome_unscaled_resources.h" // nogncheck crbug.com/1125897 #include "components/commerce/core/commerce_feature_list.h" +#include "components/lens/lens_features.h" #include "components/media_effects/media_effects_manager_binder.h" #include "components/password_manager/content/common/web_ui_constants.h" #include "components/password_manager/core/common/password_manager_features.h" +#include "chrome/browser/enterprise/connectors/connectors_service.h" #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" #endif // !BUILDFLAG(IS_ANDROID) -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) @@ -614,7 +615,6 @@ #if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES) #include "chrome/browser/ui/lens/lens_side_panel_navigation_helper.h" -#include "components/lens/lens_features.h" #endif #if BUILDFLAG(IS_LINUX) @@ -755,8 +755,13 @@ #if BUILDFLAG(ENTERPRISE_DATA_CONTROLS) #include "chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.h" +#include "chrome/browser/enterprise/data_protection/paste_allowed_request.h" #endif // BUILDFLAG(ENTERPRISE_DATA_CONTROLS) +#if BUILDFLAG(OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED) +#include "services/device/public/cpp/geolocation/geolocation_system_permission_manager.h" +#endif // BUILDFLAG(OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED) + using blink::mojom::EffectiveConnectionType; using blink::web_pref::WebPreferences; using content::BrowserThread; @@ -1019,9 +1024,9 @@ bool URLHasExtensionPermission(extensions::ProcessMap* process_map, // Returns true if |extension_id| is allowed to run as an Isolated Context, // giving it access to additional APIs. -bool IsExtensionIdAllowedToUseIsolatedContext(base::StringPiece extension_id) { +bool IsExtensionIdAllowedToUseIsolatedContext(std::string_view extension_id) { static constexpr auto kAllowedIsolatedContextExtensionIds = - base::MakeFixedFlatSet({ + base::MakeFixedFlatSet({ "algkcnfjnajfhgimadimbjhmpaeohhln", // Secure Shell Extension (dev) "iodihamcpbpeioajjeobimgagajmlibd", // Secure Shell Extension // (stable) @@ -1644,9 +1649,6 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { #elif BUILDFLAG(IS_POSIX) main_parts = std::make_unique( is_integration_test, &startup_data_); -#elif BUILDFLAG(IS_FUCHSIA) - main_parts = std::make_unique( - is_integration_test, &startup_data_); #else #error "Unimplemented platform" #endif @@ -1670,7 +1672,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { #if BUILDFLAG(IS_CHROMEOS_LACROS) main_parts->AddParts( std::make_unique()); -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) main_parts->AddParts( @@ -2012,7 +2014,7 @@ bool ChromeContentBrowserClient::DoesWebUIUrlRequireProcessLock( } bool ChromeContentBrowserClient::ShouldTreatURLSchemeAsFirstPartyWhenTopLevel( - base::StringPiece scheme, + std::string_view scheme, bool is_embedded_origin_secure) { // This is needed to bypass the normal SameSite rules for any chrome:// page // embedding a secure origin, regardless of the registrable domains of any @@ -2030,12 +2032,12 @@ bool ChromeContentBrowserClient::ShouldTreatURLSchemeAsFirstPartyWhenTopLevel( bool ChromeContentBrowserClient:: ShouldIgnoreSameSiteCookieRestrictionsWhenTopLevel( - base::StringPiece scheme, + std::string_view scheme, bool is_embedded_origin_secure) { return is_embedded_origin_secure && scheme == content::kChromeUIScheme; } -// TODO(crbug.com/1087559): This is based on SubframeTask::GetTitle() +// TODO(crbug.com/40694933): This is based on SubframeTask::GetTitle() // implementation. Find a general solution to avoid code duplication. std::string ChromeContentBrowserClient::GetSiteDisplayNameForCdmProcess( content::BrowserContext* browser_context, @@ -2184,11 +2186,11 @@ bool ChromeContentBrowserClient::ShouldStayInParentProcessForNTP( // TODO(alexmos): Consider further tightening this exception to just the // third-party remote NTP in the parent, rather than any NTP. // - // TODO(crbug.com/566091): place those iframes into OOPIFs and remove this + // TODO(crbug.com/40447789): place those iframes into OOPIFs and remove this // exception. Relaxing site isolation like this is a bad idea and should be // avoided. // - // TODO(crbug.com/624410): clean up the logic for detecting NTP. + // TODO(crbug.com/41261582): clean up the logic for detecting NTP. return url.SchemeIs(chrome::kChromeSearchScheme) && url.host() == chrome::kChromeSearchMostVisitedHost && search::IsNTPURL(parent_site_url); @@ -2670,7 +2672,8 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( } // Enable SharedArrayBuffer on desktop if allowed by Enterprise Policy. - // TODO(crbug.com/1144104) Remove when migration to COOP+COEP is complete. + // TODO(crbug.com/40155376) Remove when migration to COOP+COEP is + // complete. if (prefs->GetBoolean( prefs::kSharedArrayBufferUnrestrictedAccessAllowed)) { command_line->AppendSwitch( @@ -2875,10 +2878,12 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( if (process_type != switches::kZygoteProcess) { // The switch value depends on the "HeapProfilerCentralControl" feature, and // the zygote starts before the FeatureList is available. - heap_profiling::HeapProfilerController:: - AppendCommandLineSwitchForChildProcess( - command_line, chrome::GetChannel(), - GetProfileParamsProcess(*command_line)); + if (const auto* heap_profiler_controller = + heap_profiling::HeapProfilerController::GetInstance()) { + heap_profiler_controller->AppendCommandLineSwitchForChildProcess( + command_line, GetProfileParamsProcess(*command_line), + child_process_id); + } } #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) @@ -3180,7 +3185,7 @@ ChromeContentBrowserClient::AllowWebBluetooth( content::BrowserContext* browser_context, const url::Origin& requesting_origin, const url::Origin& embedding_origin) { - // TODO(crbug.com/598890): Don't disable if + // TODO(crbug.com/40462828): Don't disable if // base::CommandLine::ForCurrentProcess()-> // HasSwitch(switches::kEnableWebBluetooth) is true. if (base::GetFieldTrialParamValue( @@ -3395,13 +3400,15 @@ bool ChromeContentBrowserClient::IsSharedStorageAllowed( content::RenderFrameHost* rfh, const url::Origin& top_frame_origin, const url::Origin& accessing_origin, - std::string* out_debug_message) { + std::string* out_debug_message, + bool* out_block_is_site_setting_specific) { Profile* profile = Profile::FromBrowserContext(browser_context); auto* privacy_sandbox_settings = PrivacySandboxSettingsFactory::GetForProfile(profile); DCHECK(privacy_sandbox_settings); bool allowed = privacy_sandbox_settings->IsSharedStorageAllowed( - top_frame_origin, accessing_origin, out_debug_message, rfh); + top_frame_origin, accessing_origin, out_debug_message, rfh, + out_block_is_site_setting_specific); if (rfh) { content_settings::PageSpecificContentSettings::BrowsingDataAccessed( rfh, blink::StorageKey::CreateFirstParty(accessing_origin), @@ -3414,26 +3421,29 @@ bool ChromeContentBrowserClient::IsSharedStorageSelectURLAllowed( content::BrowserContext* browser_context, const url::Origin& top_frame_origin, const url::Origin& accessing_origin, - std::string* out_debug_message) { + std::string* out_debug_message, + bool* out_block_is_site_setting_specific) { Profile* profile = Profile::FromBrowserContext(browser_context); auto* privacy_sandbox_settings = PrivacySandboxSettingsFactory::GetForProfile(profile); DCHECK(privacy_sandbox_settings); return privacy_sandbox_settings->IsSharedStorageSelectURLAllowed( - top_frame_origin, accessing_origin, out_debug_message); + top_frame_origin, accessing_origin, out_debug_message, + out_block_is_site_setting_specific); } bool ChromeContentBrowserClient::IsPrivateAggregationAllowed( content::BrowserContext* browser_context, const url::Origin& top_frame_origin, - const url::Origin& reporting_origin) { + const url::Origin& reporting_origin, + bool* out_block_is_site_setting_specific) { Profile* profile = Profile::FromBrowserContext(browser_context); auto* privacy_sandbox_settings = PrivacySandboxSettingsFactory::GetForProfile(profile); DCHECK(privacy_sandbox_settings); return privacy_sandbox_settings->IsPrivateAggregationAllowed( - top_frame_origin, reporting_origin); + top_frame_origin, reporting_origin, out_block_is_site_setting_specific); } bool ChromeContentBrowserClient::IsPrivateAggregationDebugModeAllowed( @@ -3537,7 +3547,7 @@ std::string ChromeContentBrowserClient::GetGeolocationApiKey() { return google_apis::GetAPIKey(); } -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED) device::GeolocationSystemPermissionManager* ChromeContentBrowserClient::GetGeolocationSystemPermissionManager() { return device::GeolocationSystemPermissionManager::GetInstance(); @@ -3693,7 +3703,7 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs, delegate->IsNightModeEnabled() ? blink::mojom::PreferredColorScheme::kDark : blink::mojom::PreferredColorScheme::kLight; - web_prefs->browser_preferred_color_scheme = + web_prefs->preferred_root_scrollbar_color_scheme = web_prefs->preferred_color_scheme; } #else @@ -3701,10 +3711,22 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs, web_prefs->preferred_color_scheme = ToBlinkPreferredColorScheme(native_theme->GetPreferredColorScheme()); + bool using_different_colored_frame = false; + if (Profile* profile = + Profile::FromBrowserContext(web_contents->GetBrowserContext())) { + if (ThemeService* theme_service = + ThemeServiceFactory::GetForProfile(profile)) { + using_different_colored_frame = !theme_service->UsingDefaultTheme() || + theme_service->GetUserColor().has_value(); + } + } + // Update based on the ColorProvider associated with `web_contents`. Depends - // on the browser color mode settings. - web_prefs->browser_preferred_color_scheme = - web_contents->GetColorMode() == ui::ColorProviderKey::ColorMode::kLight + // on the browser color mode settings and whether the user profile has set a + // custom coloring for the browser ui. + web_prefs->preferred_root_scrollbar_color_scheme = + web_contents->GetColorMode() == ui::ColorProviderKey::ColorMode::kLight || + using_different_colored_frame ? blink::mojom::PreferredColorScheme::kLight : blink::mojom::PreferredColorScheme::kDark; #endif // BUILDFLAG(IS_ANDROID) @@ -4321,7 +4343,6 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs( // If the pref is not set, the default value (true) will be used: web_prefs->webxr_immersive_ar_allowed = prefs->GetBoolean(prefs::kWebXRImmersiveArEnabled); -#endif // Only set `databases_enabled` if disabled, otherwise check blink::feature // settings. @@ -4329,14 +4350,10 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs( !web_prefs->databases_enabled ? false : base::FeatureList::IsEnabled(blink::features::kWebSQLAccess); - -#if BUILDFLAG(IS_FUCHSIA) - // Disable WebSQL support since it is being removed from the web platform - // and does not work. See crbug.com/1317431. +#else + // TODO(crbug.com/333756088): WebSQL is disabled everywhere except Android + // WebView. web_prefs->databases_enabled = false; - - // TODO(crbug.com/1311019): Implement WebAuthn integration and remove. - web_prefs->disable_webauthn = true; #endif for (auto& parts : extra_parts_) { @@ -4582,6 +4599,7 @@ void ChromeContentBrowserClient::GetAdditionalAllowedSchemesForFileSystem( additional_allowed_schemes->push_back(content::kChromeDevToolsScheme); additional_allowed_schemes->push_back(content::kChromeUIScheme); additional_allowed_schemes->push_back(content::kChromeUIUntrustedScheme); + additional_allowed_schemes->push_back(chrome::kIsolatedAppScheme); for (auto& extra_part : extra_parts_) { extra_part->GetAdditionalAllowedSchemesForFileSystem( additional_allowed_schemes); @@ -4721,7 +4739,7 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForZygote( // inexpensive, an the features which control Mojo behavior aren't relevant // for this operation. // - // TODO(https://crbug.com/1299283): This will need to be changed before + // TODO(crbug.com/40058840): This will need to be changed before // MojoIpcz experimentation can happen on Lacros, as it results in // inconsistent MojoIpcz feature status across Mojo initializations. mojo::core::Init(); @@ -5310,6 +5328,18 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( MaybeAddThrottle(ReadAnythingSidePanelNavigationThrottle::CreateFor(handle), &throttles); } + + if (lens::features::IsLensOverlayEnabled()) { + if (profile) { + if (ThemeService* theme_service = + ThemeServiceFactory::GetForProfile(profile)) { + MaybeAddThrottle( + lens::LensOverlaySidePanelNavigationThrottle::MaybeCreateFor( + handle, theme_service), + &throttles); + } + } + } #endif #if BUILDFLAG(ENABLE_OFFLINE_PAGES) @@ -5373,6 +5403,11 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( MaybeAddThrottle(MaybeCreateVisitedLinkNavigationThrottleFor(handle), &throttles); + MaybeAddThrottle( + data_sharing::DataSharingNavigationThrottle::MaybeCreateThrottleFor( + handle), + &throttles); + return throttles; } @@ -5638,8 +5673,6 @@ ChromeContentBrowserClient::MaybeCreateSafeBrowsingURLLoaderThrottle( profile->IsOffTheRecord(), profile->GetPrefs(), safe_browsing::hash_realtime_utils::GetCountryCode( g_browser_process->variations_service()), - safe_browsing::hash_realtime_utils::GetLatestCountryCode( - g_browser_process->variations_service()), /*log_usage_histograms=*/true); safe_browsing::AsyncCheckTracker* async_check_tracker = GetAsyncCheckTracker(wc_getter, is_enterprise_lookup_enabled, @@ -5901,8 +5934,8 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory( if (content::IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled( browser_context) && !browser_context->ShutdownStarted()) { - return web_app::IsolatedWebAppURLLoaderFactory::Create(frame_tree_node_id, - browser_context); + return web_app::IsolatedWebAppURLLoaderFactory::CreateForFrame( + browser_context, /*app_origin=*/std::nullopt, frame_tree_node_id); } return {}; @@ -5925,10 +5958,9 @@ void ChromeContentBrowserClient:: if (content::IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled( browser_context) && !browser_context->ShutdownStarted()) { - factories->emplace( - chrome::kIsolatedAppScheme, - web_app::IsolatedWebAppURLLoaderFactory::CreateForServiceWorker( - browser_context)); + factories->emplace(chrome::kIsolatedAppScheme, + web_app::IsolatedWebAppURLLoaderFactory::Create( + browser_context, /*app_origin=*/std::nullopt)); } #endif // !BUILDFLAG(IS_ANDROID) @@ -5954,10 +5986,9 @@ void ChromeContentBrowserClient:: if (content::IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled( browser_context) && !browser_context->ShutdownStarted()) { - factories->emplace( - chrome::kIsolatedAppScheme, - web_app::IsolatedWebAppURLLoaderFactory::CreateForServiceWorker( - browser_context)); + factories->emplace(chrome::kIsolatedAppScheme, + web_app::IsolatedWebAppURLLoaderFactory::Create( + browser_context, /*app_origin=*/std::nullopt)); } #endif // !BUILDFLAG(IS_ANDROID) @@ -6202,23 +6233,25 @@ void ChromeContentBrowserClient:: #if !BUILDFLAG(IS_ANDROID) { - content::BrowserContext* browser_context = - content::RenderProcessHost::FromID(render_process_id) - ->GetBrowserContext(); + auto* rph = content::RenderProcessHost::FromID(render_process_id); + content::BrowserContext* browser_context = rph->GetBrowserContext(); DCHECK(browser_context); + bool is_initiator_iwa = + request_initiator_origin.has_value() && + request_initiator_origin->scheme() == chrome::kIsolatedAppScheme; if (content::IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled( browser_context) && - !browser_context->ShutdownStarted()) { + !browser_context->ShutdownStarted() && is_initiator_iwa) { if (frame_host != nullptr) { factories->emplace( chrome::kIsolatedAppScheme, - web_app::IsolatedWebAppURLLoaderFactory::Create( - frame_host->GetFrameTreeNodeId(), browser_context)); + web_app::IsolatedWebAppURLLoaderFactory::CreateForFrame( + browser_context, request_initiator_origin, + frame_host->GetFrameTreeNodeId())); } else { - factories->emplace( - chrome::kIsolatedAppScheme, - web_app::IsolatedWebAppURLLoaderFactory::CreateForServiceWorker( - browser_context)); + factories->emplace(chrome::kIsolatedAppScheme, + web_app::IsolatedWebAppURLLoaderFactory::Create( + browser_context, request_initiator_origin)); } } } @@ -6249,7 +6282,7 @@ void ChromeContentBrowserClient:: // For service worker contexts, we only allow file access. The remainder of // this code is used to allow extensions to access chrome:-scheme // resources, which we are moving away from. - // TODO(crbug.com/1280411) Factories should not be created for unloaded + // TODO(crbug.com/40811448) Factories should not be created for unloaded // extensions. if (extension) { InitializeFileURLLoaderFactoryForExtension( @@ -6301,7 +6334,7 @@ void ChromeContentBrowserClient::WillCreateURLLoaderFactory( signin::ProxyingURLLoaderFactory::MaybeProxyRequest( frame, type == URLLoaderFactoryType::kNavigation, request_initiator, - factory_builder); + isolation_info, factory_builder); #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) if (disable_secure_dns) { @@ -6395,7 +6428,7 @@ void ChromeContentBrowserClient::CreateWebSocket( mojo::PendingRemote handshake_client) { #if BUILDFLAG(ENABLE_EXTENSIONS) - // TODO(crbug.com/1243518): Request w/o a frame also should be proxied. + // TODO(crbug.com/40195467): Request w/o a frame also should be proxied. if (!frame) { return; } @@ -6487,7 +6520,7 @@ void ChromeContentBrowserClient::MaybeInterceptWebTransport( WillCreateWebTransportCallback callback) { #if BUILDFLAG(ENABLE_EXTENSIONS) DCHECK_CURRENTLY_ON(BrowserThread::UI); - // TODO(1243518): Add a unit test which calls + // TODO(crbug.com/40195467): Add a unit test which calls // ChromeContentBrowserClient::WillCreateWebTransport() with invalid process // id and routing id. auto* render_process_host = content::RenderProcessHost::FromID(process_id); @@ -6873,8 +6906,8 @@ bool ChromeContentBrowserClient::HandleExternalProtocol( sandbox_flags, has_user_gesture, initiating_origin, std::move(weak_initiator_document), out_factory); #else - // TODO(crbug.com/1394838): Figure out why this was initially made async, and, - // if possible, unify with the sync path above. + // TODO(crbug.com/40248796): Figure out why this was initially made async, + // and, if possible, unify with the sync path above. content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&LaunchURL, weak_factory_.GetWeakPtr(), url, @@ -6949,7 +6982,7 @@ bool ChromeContentBrowserClient::HandleWebUI( #endif #if BUILDFLAG(IS_WIN) - // TODO(crbug.com/1003960): Remove when issue is resolved. + // TODO(crbug.com/40647483): Remove when issue is resolved. if (url->SchemeIs(content::kChromeUIScheme) && url->host() == chrome::kChromeUIWelcomeWin10Host) { *url = @@ -7017,7 +7050,7 @@ bool ChromeContentBrowserClient::HandleWebUIReverse( GURL* url, content::BrowserContext* browser_context) { #if BUILDFLAG(IS_WIN) - // TODO(crbug.com/1003960): Remove when issue is resolved. + // TODO(crbug.com/40647483): Remove when issue is resolved. // No need to actually reverse-rewrite the URL, but return true to update the // displayed URL when rewriting chrome://welcome-win10 to chrome://welcome. if (url->SchemeIs(content::kChromeUIScheme) && @@ -7027,7 +7060,7 @@ bool ChromeContentBrowserClient::HandleWebUIReverse( #endif // BUILDFLAG(IS_WIN) #if !BUILDFLAG(IS_ANDROID) - // TODO(crbug.com/1420597): Remove this after feature is launched. + // TODO(crbug.com/40258836): Remove this after feature is launched. // No need to actually reverse-rewrite the URL, but return true to update the // displayed URL when rewriting chrome://settings/passwords to // chrome://password-manager. @@ -7350,15 +7383,8 @@ void ChromeContentBrowserClient::AugmentNavigationDownloadPolicy( throttle_manager->IsRenderFrameHostTaggedAsAd(frame_host)) { download_policy->SetAllowed(blink::NavigationDownloadType::kAdFrame); if (!user_gesture) { - if (base::FeatureList::IsEnabled( - blink::features:: - kBlockingDownloadsInAdFrameWithoutUserActivation)) { - download_policy->SetDisallowed( - blink::NavigationDownloadType::kAdFrameNoGesture); - } else { - download_policy->SetAllowed( - blink::NavigationDownloadType::kAdFrameNoGesture); - } + download_policy->SetDisallowed( + blink::NavigationDownloadType::kAdFrameNoGesture); } } } @@ -7546,7 +7572,7 @@ void ChromeContentBrowserClient::IsClipboardPasteAllowedByPolicy( ClipboardPasteData clipboard_paste_data, IsClipboardPasteAllowedCallback callback) { #if BUILDFLAG(ENTERPRISE_DATA_CONTROLS) - enterprise_data_protection::PasteIfAllowedByPolicy( + enterprise_data_protection::PasteAllowedRequest::StartPasteAllowedRequest( source, destination, metadata, std::move(clipboard_paste_data), std::move(callback)); #else @@ -7617,6 +7643,20 @@ bool ChromeContentBrowserClient:: #endif } +void ChromeContentBrowserClient:: + GrantAdditionalRequestPrivilegesToWorkerProcess(int child_id, + const GURL& script_url) { +#if !BUILDFLAG(IS_ANDROID) + // IWA Service Workers need to be explicitly granted access to their origin + // because isolated-app: isn't a web-safe scheme that can be accessed by + // default. + if (script_url.SchemeIs(chrome::kIsolatedAppScheme)) { + ChildProcessSecurityPolicy::GetInstance()->GrantRequestOrigin( + child_id, url::Origin::Create(script_url)); + } +#endif // !BUILDFLAG(IS_ANDROID) +} + content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( content::BrowserContext* browser_context, @@ -7800,13 +7840,14 @@ void RunDigitalIdentityCallback( void ChromeContentBrowserClient::ShowDigitalIdentityInterstitialIfNeeded( content::WebContents& web_contents, const url::Origin& origin, + bool is_only_requesting_age, DigitalIdentityInterstitialCallback callback) { auto bridge = std::make_unique(); auto* bridge_ptr = bridge.get(); // Callback takes ownership of |bridge|. bridge_ptr->ShowInterstitialIfNeeded( - web_contents, origin, + web_contents, origin, is_only_requesting_age, base::BindOnce(&RunDigitalIdentityCallback, std::move(bridge), std::move(callback))); } @@ -8005,6 +8046,15 @@ void ChromeContentBrowserClient::OnSharedStorageWorkletHostCreated( } } +void ChromeContentBrowserClient::OnSharedStorageSelectURLCalled( + content::RenderFrameHost* main_rfh) { + if (auto* observer = + page_load_metrics::MetricsWebContentsObserver::FromWebContents( + WebContents::FromRenderFrameHost(main_rfh))) { + observer->OnSharedStorageSelectURLCalled(main_rfh); + } +} + bool ChromeContentBrowserClient::ShouldSendOutermostOriginToRenderer( const url::Origin& outermost_origin) { #if BUILDFLAG(ENABLE_EXTENSIONS) 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 93468395..21f6c6f5 100755 --- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc +++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc @@ -28,7 +28,6 @@ #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/connectors/connectors_prefs.h" #include "chrome/browser/enterprise/reporting/prefs.h" #include "chrome/browser/enterprise/util/managed_browser_utils.h" #include "chrome/browser/external_protocol/external_protocol_handler.h" @@ -116,6 +115,7 @@ #include "components/embedder_support/origin_trials/origin_trial_prefs.h" #include "components/enterprise/browser/identifiers/identifiers_prefs.h" #include "components/enterprise/buildflags/buildflags.h" +#include "components/enterprise/connectors/connectors_prefs.h" #include "components/fingerprinting_protection_filter/browser/fingerprinting_protection_filter_constants.h" #include "components/flags_ui/pref_service_flags_storage.h" #include "components/history_clusters/core/history_clusters_prefs.h" @@ -159,6 +159,7 @@ #include "components/proxy_config/pref_proxy_config_tracker_impl.h" #include "components/safe_browsing/content/common/file_type_policies_prefs.h" #include "components/safe_browsing/core/common/safe_browsing_prefs.h" +#include "components/saved_tab_groups/pref_names.h" #include "components/search_engines/template_url_prepopulate_data.h" #include "components/security_interstitials/content/insecure_form_blocking_page.h" #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h" @@ -166,6 +167,7 @@ #include "components/segmentation_platform/public/segmentation_platform_service.h" #include "components/sessions/core/session_id_generator.h" #include "components/signin/public/base/signin_pref_names.h" +#include "components/signin/public/base/signin_prefs.h" #include "components/signin/public/identity_manager/identity_manager.h" #include "components/site_engagement/content/site_engagement_service.h" #include "components/subresource_filter/content/shared/browser/ruleset_service.h" @@ -177,7 +179,7 @@ #include "components/sync_device_info/device_info_prefs.h" #include "components/sync_preferences/pref_service_syncable.h" #include "components/sync_sessions/session_sync_prefs.h" -#include "components/tpcd/metadata/prefs.h" +#include "components/tpcd/metadata/browser/prefs.h" #include "components/tracing/common/pref_names.h" #include "components/translate/core/browser/translate_prefs.h" #include "components/update_client/update_client.h" @@ -282,11 +284,11 @@ #include "chrome/browser/new_tab_page/promos/promo_service.h" #include "chrome/browser/policy/developer_tools_policy_handler.h" #include "chrome/browser/search/background/ntp_custom_background_service.h" -#include "chrome/browser/search_engine_choice/search_engine_choice_client_side_trial.h" #include "chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h" #include "chrome/browser/serial/serial_policy_allowed_ports.h" #include "chrome/browser/signin/signin_promo.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" +#include "chrome/browser/ui/lens/lens_overlay_permission_utils.h" #include "chrome/browser/ui/safety_hub/safety_hub_prefs.h" #include "chrome/browser/ui/startup/startup_browser_creator.h" #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_utils.h" @@ -319,6 +321,7 @@ #include "chrome/browser/extensions/api/document_scan/document_scan_api_handler.h" #include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.h" #include "chrome/browser/memory/oom_kills_monitor.h" +#include "chrome/browser/policy/annotations/blocklist_handler.h" #include "chrome/browser/policy/networking/policy_cert_service.h" #include "chrome/browser/policy/system_features_disable_list_policy_handler.h" #include "chrome/browser/ui/webui/certificates_handler.h" @@ -393,10 +396,9 @@ #include "chrome/browser/ash/login/signin/signin_error_notifier.h" #include "chrome/browser/ash/login/signin/token_handle_fetcher.h" #include "chrome/browser/ash/login/startup_utils.h" -#include "chrome/browser/ash/login/users/avatar/user_image_manager.h" +#include "chrome/browser/ash/login/users/avatar/user_image_manager_impl.h" #include "chrome/browser/ash/login/users/avatar/user_image_prefs.h" #include "chrome/browser/ash/login/users/avatar/user_image_sync_observer.h" -#include "chrome/browser/ash/login/users/chrome_user_manager_impl.h" #include "chrome/browser/ash/net/ash_proxy_monitor.h" #include "chrome/browser/ash/net/network_throttling_observer.h" #include "chrome/browser/ash/plugin_vm/plugin_vm_pref_names.h" @@ -419,7 +421,7 @@ #include "chrome/browser/ash/power/power_metrics_reporter.h" #include "chrome/browser/ash/preferences.h" #include "chrome/browser/ash/printing/cups_printers_manager.h" -#include "chrome/browser/ash/printing/enterprise_printers_provider.h" +#include "chrome/browser/ash/printing/enterprise/enterprise_printers_provider.h" #include "chrome/browser/ash/release_notes/release_notes_storage.h" #include "chrome/browser/ash/scanning/chrome_scanning_app_delegate.h" #include "chrome/browser/ash/scheduler_configuration_manager.h" @@ -457,8 +459,8 @@ #include "components/account_manager_core/chromeos/account_manager.h" #include "components/onc/onc_pref_names.h" #include "components/quirks/quirks_manager.h" +#include "components/user_manager/user_manager_base.h" #include "extensions/browser/api/lock_screen_data/lock_screen_item_storage.h" - #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_MAC) @@ -491,7 +493,7 @@ #include "components/device_signals/core/browser/pref_names.h" // nogncheck due to crbug.com/1125897 #endif -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) @@ -520,7 +522,7 @@ #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/device_identity/device_oauth2_token_store_desktop.h" -#include "chrome/browser/ui/startup/default_browser_prompt.h" +#include "chrome/browser/ui/startup/default_browser_prompt/default_browser_prompt.h" #endif #if defined(TOOLKIT_VIEWS) @@ -1009,6 +1011,12 @@ constexpr char kPrivacySandboxApisEnabled[] = "privacy_sandbox.apis_enabled"; constexpr char kOobeGuestAcceptedTos[] = "oobe.guest_accepted_tos"; #endif // BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_CHROMEOS_ASH) +// Deprecated 04/2024 +constexpr char kLastUploadedEuiccStatusPrefLegacy[] = + "esim.last_upload_euicc_status"; +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + // Deprecated 03/2024. constexpr char kShowInternalAccessibilityTree[] = "accessibility.show_internal_accessibility_tree"; @@ -1035,9 +1043,50 @@ constexpr char kPreferencesMigratedToBasic[] = inline constexpr char kOmniboxInstantKeywordUsed[] = "omnibox.instant_keyword_used"; +// Deprecated 04/2024. +inline constexpr char kWebAppPreinstalledAppWindowExperiment[] = + "web_apps.preinstalled_app_window_experiment"; + // Deprecated 04/2024. inline constexpr char kDIPSTimerLastUpdate[] = "dips_timer_last_update"; +#if BUILDFLAG(IS_CHROMEOS_ASH) +// Deprecated 04/2024 +constexpr char kMetricsUserInheritOwnerConsent[] = + "metrics.user_inherit_owner_consent"; +constexpr char kGlanceablesEnabled[] = "ash.glanceables_enabled"; + +// Deprecated 05/2024. +// A preference to keep track of the device registered time. +constexpr char kDeviceRegisteredTime[] = "DeviceRegisteredTime"; +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + +#if !BUILDFLAG(IS_ANDROID) +// Deprecated 05/2024 +inline constexpr char kSearchEnginesStudyGroup[] = + "search_engines.client_side_study_group"; +#endif + +#if !BUILDFLAG(IS_ANDROID) +// Deprecated 05/2024 +// Pref name for the whether whats new refresh page has been shown +// successfully. +inline constexpr char kHasShownRefreshWhatsNew[] = + "browser.has_shown_refresh_2023_whats_new"; +#endif + +#if BUILDFLAG(IS_CHROMEOS_ASH) +// Deprecated 05/2024 +// A boolean pref which determines if you can pause mouse keys with a +// keyboard shortcut. +inline constexpr char kAccessibilityMouseKeysShortcutToPauseEnabled[] = + "settings.a11y.mouse_keys.ctrl_to_pause_enabled"; +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + +// Deprecated 05/2024. +inline constexpr char kSyncCachedTrustedVaultAutoUpgradeDebugInfo[] = + "sync.cached_trusted_vault_auto_upgrade_debug_info"; + // Register local state used only for migration (clearing or moving to a new // key). void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { @@ -1156,7 +1205,25 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { #if BUILDFLAG(IS_CHROMEOS_ASH) // Deprecated 03/2024. registry->RegisterBooleanPref(kOobeGuestAcceptedTos, false); + + // Deprecated 05/2024. + registry->RegisterTimePref(kDeviceRegisteredTime, base::Time()); #endif // BUILDFLAG(IS_CHROMEOS_ASH) + +// Deprecated 04/2024. +#if BUILDFLAG(IS_CHROMEOS_ASH) + registry->RegisterDictionaryPref(kLastUploadedEuiccStatusPrefLegacy); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + +#if !BUILDFLAG(IS_ANDROID) + // Deprecated 05/2024. + registry->RegisterStringPref(kSearchEnginesStudyGroup, std::string()); +#endif + +#if !BUILDFLAG(IS_ANDROID) + // Deprecated 05/2024. + registry->RegisterBooleanPref(kHasShownRefreshWhatsNew, false); +#endif } // Register prefs used only for migration (clearing or moving to a new key). @@ -1475,8 +1542,24 @@ void RegisterProfilePrefsForMigration( // Deprecated 04/2024. registry->RegisterBooleanPref(kOmniboxInstantKeywordUsed, false); + // Deprecated 04/2024. + registry->RegisterDictionaryPref(kWebAppPreinstalledAppWindowExperiment); + // Deprecated 04/2024. registry->RegisterTimePref(kDIPSTimerLastUpdate, base::Time()); + +#if BUILDFLAG(IS_CHROMEOS_ASH) + // Deprecated 04/2024. + registry->RegisterBooleanPref(kMetricsUserInheritOwnerConsent, true); + registry->RegisterBooleanPref(kGlanceablesEnabled, true); + + // Deprecated 05/2024. + registry->RegisterBooleanPref(kAccessibilityMouseKeysShortcutToPauseEnabled, + true); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + + // Deprecated 05/2024. + registry->RegisterStringPref(kSyncCachedTrustedVaultAutoUpgradeDebugInfo, ""); } void ClearSyncRequestedPrefAndMaybeMigrate(PrefService* profile_prefs) { @@ -1608,7 +1691,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) { metrics::TabStatsTracker::RegisterPrefs(registry); performance_manager::user_tuning::prefs::RegisterLocalStatePrefs(registry); RegisterBrowserPrefs(registry); - SearchEngineChoiceClientSideTrial::RegisterLocalStatePrefs(registry); speech::SodaInstaller::RegisterLocalStatePrefs(registry); StartupBrowserCreator::RegisterLocalStatePrefs(registry); task_manager::TaskManagerInterface::RegisterPrefs(registry); @@ -1630,7 +1712,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { ash::CellularESimProfileHandlerImpl::RegisterLocalStatePrefs(registry); ash::ManagedCellularPrefHandler::RegisterLocalStatePrefs(registry); ash::ChromeSessionManager::RegisterPrefs(registry); - ash::ChromeUserManagerImpl::RegisterPrefs(registry); + user_manager::UserManagerBase::RegisterPrefs(registry); crosapi::browser_util::RegisterLocalStatePrefs(registry); ash::CupsPrintersManager::RegisterLocalStatePrefs(registry); ash::BrowserDataMigratorImpl::RegisterLocalStatePrefs(registry); @@ -1676,7 +1758,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { ash::StatsReportingController::RegisterLocalStatePrefs(registry); ash::system::AutomaticRebootManager::RegisterPrefs(registry); ash::TimeZoneResolver::RegisterPrefs(registry); - ash::UserImageManager::RegisterPrefs(registry); + ash::UserImageManagerImpl::RegisterPrefs(registry); ash::UserSessionManager::RegisterPrefs(registry); ash::WebKioskAppManager::RegisterPrefs(registry); component_updater::MetadataTable::RegisterPrefs(registry); @@ -1749,8 +1831,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) { downgrade::RegisterPrefs(registry); #endif -#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) RegisterDefaultBrowserPromptPrefs(registry); +#endif + +#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) DeviceOAuth2TokenStoreDesktop::RegisterPrefs(registry); #endif @@ -1771,6 +1856,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kOopPrintDriversAllowedByPolicy, true); #endif +#if BUILDFLAG(ENABLE_PDF) + registry->RegisterBooleanPref(prefs::kPdfViewerOutOfProcessIframeEnabled, + true); +#endif // BUILDFLAG(ENABLE_PDF) + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true); #endif @@ -1798,6 +1888,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ChromeContentBrowserClient::RegisterProfilePrefs(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); @@ -1865,6 +1956,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry); SessionStartupPref::RegisterProfilePrefs(registry); SharingSyncPreference::RegisterProfilePrefs(registry); + SigninPrefs::RegisterProfilePrefs(registry); site_engagement::SiteEngagementService::RegisterProfilePrefs(registry); supervised_user::RegisterProfilePrefs(registry); sync_sessions::SessionSyncPrefs::RegisterProfilePrefs(registry); @@ -1872,6 +1964,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, syncer::SyncPrefs::RegisterProfilePrefs(registry); syncer::SyncTransportDataPrefs::RegisterProfilePrefs(registry); TemplateURLPrepopulateData::RegisterProfilePrefs(registry); + tab_groups::prefs::RegisterProfilePrefs(registry); tpcd::experiment::RegisterProfilePrefs(registry); translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); @@ -1960,6 +2053,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, first_run::RegisterProfilePrefs(registry); gcm::RegisterProfilePrefs(registry); HatsServiceDesktop::RegisterProfilePrefs(registry); + lens::prefs::RegisterProfilePrefs(registry); NtpCustomBackgroundService::RegisterProfilePrefs(registry); media_router::RegisterAccessCodeProfilePrefs(registry); media_router::RegisterProfilePrefs(registry); @@ -1999,6 +2093,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, certificate_manager::CertificatesHandler::RegisterProfilePrefs(registry); chromeos::cloud_storage::RegisterProfilePrefs(registry); chromeos::cloud_upload::RegisterProfilePrefs(registry); + policy::NetworkAnnotationBlocklistHandler::RegisterPrefs(registry); policy::PolicyCertService::RegisterProfilePrefs(registry); quickoffice::RegisterProfilePrefs(registry); registry->RegisterBooleanPref(prefs::kDeskAPIThirdPartyAccessEnabled, false); @@ -2042,7 +2137,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ash::bluetooth_config::BluetoothPowerControllerImpl::RegisterProfilePrefs( registry); ash::HatsBluetoothRevampTriggerImpl::RegisterProfilePrefs(registry); - ash::ChromeUserManagerImpl::RegisterProfilePrefs(registry); + user_manager::UserManagerBase::RegisterProfilePrefs(registry); ash::ClientAppMetadataProviderService::RegisterProfilePrefs(registry); ash::CupsPrintersManager::RegisterProfilePrefs(registry); ash::device_sync::RegisterProfilePrefs(registry); @@ -2156,6 +2251,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterStringPref( webauthn::pref_names::kLastUsedPairingFromSyncPublicKey, ""); + registry->RegisterIntegerPref( + webauthn::pref_names::kEnclaveFailedPINAttemptsCount, 0); + side_panel_prefs::RegisterProfilePrefs(registry); #endif @@ -2201,11 +2299,23 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(ENABLE_COMPOSE) registry->RegisterBooleanPref(prefs::kPrefHasCompletedComposeFRE, false); registry->RegisterBooleanPref(prefs::kEnableProactiveNudge, true); + registry->RegisterDictionaryPref(prefs::kProactiveNudgeDisabledSitesWithTime); #endif -#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) +#if !BUILDFLAG(IS_ANDROID) registry->RegisterIntegerPref(prefs::kChromeDataRegionSetting, 0); #endif + + registry->RegisterBooleanPref(prefs::kTabGroupsDeletionSkipDialogOnDelete, + false); + registry->RegisterBooleanPref(prefs::kTabGroupsDeletionSkipDialogOnUngroup, + false); + registry->RegisterBooleanPref(prefs::kTabGroupsDeletionSkipDialogOnRemoveTab, + false); + registry->RegisterBooleanPref(prefs::kTabGroupsDeletionSkipDialogOnCloseTab, + false); + + registry->RegisterIntegerPref(prefs::kLensOverlayStartCount, 0); } void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -2362,8 +2472,26 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) { #if BUILDFLAG(IS_CHROMEOS_ASH) // Added 03/2024. local_state->ClearPref(kOobeGuestAcceptedTos); + + // Added 05/2024. + local_state->ClearPref(kDeviceRegisteredTime); #endif // BUILDFLAG(IS_CHROMEOS_ASH) +// Added 04/2024 . +#if BUILDFLAG(IS_CHROMEOS_ASH) + local_state->ClearPref(kLastUploadedEuiccStatusPrefLegacy); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + +#if !BUILDFLAG(IS_ANDROID) + // Added 05/2024. + local_state->ClearPref(kSearchEnginesStudyGroup); +#endif + +#if !BUILDFLAG(IS_ANDROID) + // Added 05/2024. + local_state->ClearPref(kHasShownRefreshWhatsNew); +#endif + // Please don't delete the following line. It is used by PRESUBMIT.py. // END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS @@ -2393,7 +2521,7 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, autofill::prefs::MigrateDeprecatedAutofillPrefs(profile_prefs); // Added 3/2020. - // TODO(crbug.com/1062698): Remove this once the privacy settings redesign + // TODO(crbug.com/40122991): Remove this once the privacy settings redesign // is fully launched. chrome_browser_net::secure_dns::MigrateProbesSettingToOrFromBackup( profile_prefs); @@ -2415,7 +2543,7 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, // TODO(326079444): After experiment is over, update the deprecated date and // allow this to be cleaned up. -#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) MigrateDefaultBrowserLastDeclinedPref(profile_prefs); #endif @@ -2620,7 +2748,7 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, #if BUILDFLAG(IS_ANDROID) // Added 11/2023, but DO NOT REMOVE after the usual year! - // TODO(crbug.com/1445497): The pref kPasswordsUseUPMLocalAndSeparateStores + // TODO(crbug.com/40268177): The pref kPasswordsUseUPMLocalAndSeparateStores // and this call (to compute said pref) should be removed once // kUnifiedPasswordManagerLocalPasswordsAndroidWithMigration is launched and // enough clients have migrated. UsesSplitStoresAndUPMForLocal() should be @@ -2782,9 +2910,24 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, // Added 04/2024. profile_prefs->ClearPref(kOmniboxInstantKeywordUsed); + // Added 04/2024. + profile_prefs->ClearPref(kWebAppPreinstalledAppWindowExperiment); + // Added 04/2024. profile_prefs->ClearPref(kDIPSTimerLastUpdate); +#if BUILDFLAG(IS_CHROMEOS_ASH) + // Added 04/2024. + profile_prefs->ClearPref(kMetricsUserInheritOwnerConsent); + profile_prefs->ClearPref(kGlanceablesEnabled); + + // Added 05/2024. + profile_prefs->ClearPref(kAccessibilityMouseKeysShortcutToPauseEnabled); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + + // Added 05/2024. + profile_prefs->ClearPref(kSyncCachedTrustedVaultAutoUpgradeDebugInfo); + // 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 bfb35a47..796441c1 100755 --- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc +++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc @@ -58,6 +58,7 @@ #include "chrome/browser/predictors/loading_predictor_tab_helper.h" #include "chrome/browser/preloading/prefetch/no_state_prefetch/no_state_prefetch_manager_factory.h" #include "chrome/browser/preloading/prefetch/no_state_prefetch/no_state_prefetch_tab_helper.h" +#include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_key.h" #include "chrome/browser/resource_coordinator/tab_helper.h" @@ -130,6 +131,8 @@ #include "components/download/content/factory/navigation_monitor_factory.h" #include "components/download/content/public/download_navigation_observer.h" #include "components/feed/buildflags.h" +#include "components/fingerprinting_protection_filter/browser/fingerprinting_protection_filter_features.h" +#include "components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.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" @@ -221,6 +224,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/boot_times_recorder_tab_helper.h" +#include "chrome/browser/ash/growth/campaigns_manager_session_tab_helper.h" #include "chrome/browser/ui/ash/google_one_offer_iph_tab_helper.h" #endif @@ -233,10 +237,11 @@ #include "chrome/browser/chromeos/cros_apps/cros_apps_tab_helper.h" #include "chrome/browser/chromeos/mahi/mahi_tab_helper.h" #include "chrome/browser/chromeos/policy/dlp/dlp_content_tab_helper.h" +#include "chrome/browser/chromeos/printing/print_preview/printing_init_cros.h" #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) #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" @@ -307,6 +312,9 @@ const char kTabContentsAttachedTabHelpersUserDataKey[] = } // namespace // static +// WARNING: Do not use this class for desktop chrome. Use TabFeatures instead. +// See +// https://chromium.googlesource.com/chromium/src/+/main/docs/chrome_browser_design_principles.md void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // If already adopted, nothing to be done. base::SupportsUserData::Data* adoption_tag = @@ -396,6 +404,13 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { FileSystemAccessPermissionRequestManager::CreateForWebContents(web_contents); FileSystemAccessTabHelper::CreateForWebContents(web_contents); FindBarState::ConfigureWebContents(web_contents); + if (base::FeatureList::IsEnabled(fingerprinting_protection_filter::features:: + kEnableFingerprintingProtectionFilter)) { + fingerprinting_protection_filter:: + FingerprintingProtectionWebContentsHelper::CreateForWebContents( + web_contents, profile->GetPrefs(), + TrackingProtectionSettingsFactory::GetForProfile(profile)); + } download::DownloadNavigationObserver::CreateForWebContents( web_contents, download::NavigationMonitorFactory::GetForKey(profile->GetProfileKey())); @@ -534,11 +549,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { v8_compile_hints::V8CompileHintsTabHelper::MaybeCreateForWebContents( web_contents); vr::VrTabHelper::CreateForWebContents(web_contents); - if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission) || - base::FeatureList::IsEnabled( - features::kFileSystemAccessPersistentPermissions)) { - OneTimePermissionsTrackerHelper::CreateForWebContents(web_contents); - } + OneTimePermissionsTrackerHelper::CreateForWebContents(web_contents); // NO! Do not just add your tab helper here. This is a large alphabetized // block; please insert your tab helper above in alphabetical order. @@ -660,6 +671,10 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { #if BUILDFLAG(IS_CHROMEOS_ASH) GoogleOneOfferIphTabHelper::CreateForWebContents(web_contents); + // Do not create for Incognito mode. + if (!profile->IsOffTheRecord()) { + CampaignsManagerSessionTabHelper::CreateForWebContents(web_contents); + } ash::BootTimesRecorderTabHelper::MaybeCreateForWebContents(web_contents); #endif @@ -678,7 +693,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { webapps::PreRedirectionURLObserver::CreateForWebContents(web_contents); #endif -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) @@ -731,9 +746,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { #endif #if !BUILDFLAG(IS_ANDROID) - if (customize_chrome::IsSidePanelEnabled()) { - CustomizeChromeTabHelper::CreateForWebContents(web_contents); - } + CustomizeChromeTabHelper::CreateForWebContents(web_contents); #endif // --- Section 3: Feature tab helpers behind BUILDFLAGs --- @@ -781,7 +794,15 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { PluginObserver::CreateForWebContents(web_contents); #endif -#if BUILDFLAG(ENABLE_PRINTING) +// Only enable ChromeOS print preview if `kPrintPreviewCrosPrimary` is enabled +// and is a ChromeOS build. Otherwise instantiate browser print preview. +#if BUILDFLAG(ENABLE_PRINTING) && BUILDFLAG(IS_CHROMEOS) + if (base::FeatureList::IsEnabled(::features::kPrintPreviewCrosPrimary)) { + chromeos::printing::InitializePrintingForWebContents(web_contents); + } else { + printing::InitializePrintingForWebContents(web_contents); + } +#elif BUILDFLAG(ENABLE_PRINTING) printing::InitializePrintingForWebContents(web_contents); #endif 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 c5e44c94..62d3dcd6 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 @@ -13,12 +13,12 @@ namespace autofillPrivate { // Controls whether the Autofill Sync toggle should be available (duplicated // from the Sync Settings page) on the Autofill Settings page. - // TODO(crbug.com/1502843): Remove when toggle becomes available on the Sync + // TODO(crbug.com/40943238): Remove when toggle becomes available on the Sync // page for non-syncing users. boolean isAutofillSyncToggleAvailable; // Represents the UserSelectableType::kAutofill state (enabled or not). - // TODO(crbug.com/1502843): Remove when toggle becomes available on the Sync + // TODO(crbug.com/40943238): Remove when toggle becomes available on the Sync // page for non-syncing users. boolean isAutofillSyncToggleEnabled; }; diff --git a/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl b/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl index fe2c75b0..76be1b07 100755 --- a/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl @@ -67,7 +67,8 @@ namespace autotestPrivate { Terminated, UninstalledByUser, Removed, - UninstalledByMigration + UninstalledByMigration, + DisabledByLocalSettings }; // A mapping of arc::mojom::WakefulnessMode @@ -314,7 +315,7 @@ namespace autotestPrivate { // Specifies the mode Lacros is currently running. // For a full list of supported mode, see LacrosMode enum definition. // DEPRECATED: please use isEnabled. - // TODO(crbug.com/1494005): Remove this field after tests are fixed. + // TODO(crbug.com/40286020): Remove this field after tests are fixed. LacrosMode mode; // True iff Lacros is enabled for the current user session's primary user. boolean isEnabled; @@ -866,6 +867,10 @@ namespace autotestPrivate { // Get login status. static void loginStatus(LoginStatusCallback callback); + // Waits for the post login animation to be complete and then triggers the + // callback. + static void waitForLoginAnimationEnd(VoidCallback callback); + // Locks the screen. static void lockScreen(); @@ -1104,7 +1109,7 @@ namespace autotestPrivate { // |callback|: Called when the operation has completed. static void installBorealis(VoidCallback callback); - // Register a component with CrOSComponentManager. + // Register a component with ComponentManagerAsh. // |name|: The name of the component. // |path|: Path to the component. static void registerComponent(DOMString name, DOMString path); 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 3e049bbf..bdd4092a 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 @@ -96,6 +96,15 @@ namespace developerPrivate { CHROME }; + enum SafetyCheckWarningReason { + UNPUBLISHED, + POLICY, + MALWARE, + OFFSTORE, + UNWANTED, + NO_PRIVACY_PRACTICE + }; + dictionary AccessModifier { boolean isEnabled; boolean isActive; @@ -257,6 +266,7 @@ namespace developerPrivate { DOMString? path; Permissions permissions; DOMString? prettifiedPath; + DOMString? recommendationsUrl; RuntimeError[] runtimeErrors; DOMString[] runtimeWarnings; ExtensionState state; @@ -267,9 +277,12 @@ namespace developerPrivate { ExtensionView[] views; DOMString webStoreUrl; boolean showSafeBrowsingAllowlistWarning; + SafetyCheckWarningReason? safetyCheckWarningReason; boolean showAccessRequestsInToolbar; boolean acknowledgeSafetyCheckWarning; boolean? pinnedToToolbar; + boolean isAffectedByMV2Deprecation; + boolean didAcknowledgeMV2DeprecationWarning; }; dictionary ProfileInfo { @@ -278,6 +291,7 @@ namespace developerPrivate { boolean isDeveloperModeControlledByPolicy; boolean isIncognitoAvailable; boolean isChildAccount; + boolean isMv2DeprecationWarningDismissed; }; // DEPRECATED: Prefer ExtensionInfo. @@ -329,12 +343,15 @@ namespace developerPrivate { boolean? errorCollection; HostAccess? hostAccess; boolean? showAccessRequestsInToolbar; + SafetyCheckWarningReason? acknowledgeSafetyCheckWarningReason; boolean? acknowledgeSafetyCheckWarning; + boolean? acknowledgeMv2DeprecationWarning; boolean? pinnedToToolbar; }; dictionary ProfileConfigurationUpdate { boolean? inDeveloperMode; + boolean? isMv2DeprecationWarningDismissed; }; dictionary ExtensionCommandUpdate { @@ -411,7 +428,7 @@ namespace developerPrivate { // The site set that `site` belongs to. SiteSet siteSet; // The number of extensions with access to `site`. - // TODO(crbug.com/1331137): A tricky edge case is when one extension + // TODO(crbug.com/40227416): A tricky edge case is when one extension // specifies something like *.foo.com and another specifies foo.com. // Patterns which match all subdomains should be represented differently. long numExtensions; diff --git a/tools/under-control/src/chrome/common/extensions/api/enterprise_kiosk_input.idl b/tools/under-control/src/chrome/common/extensions/api/enterprise_kiosk_input.idl index de3ec93d..356628e0 100755 --- a/tools/under-control/src/chrome/common/extensions/api/enterprise_kiosk_input.idl +++ b/tools/under-control/src/chrome/common/extensions/api/enterprise_kiosk_input.idl @@ -6,7 +6,7 @@ // settings for Kiosk sessions. // Note: This API is only available to extensions installed by enterprise // policy in ChromeOS Kiosk sessions. -[platforms = ("chromeos"), +[platforms = ("chromeos", "lacros"), implemented_in = "chrome/browser/extensions/api/enterprise_kiosk_input/enterprise_kiosk_input_api.h"] namespace enterprise.kioskInput { dictionary SetCurrentInputMethodOptions { diff --git a/tools/under-control/src/chrome/common/extensions/api/odfs_config_private.idl b/tools/under-control/src/chrome/common/extensions/api/odfs_config_private.idl index 8f25ac59..166ab9ff 100755 --- a/tools/under-control/src/chrome/common/extensions/api/odfs_config_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/odfs_config_private.idl @@ -26,8 +26,7 @@ namespace odfsConfigPrivate { callback GetAccountRestrictionsCallback = void( AccountRestrictionsInfo restrictions); callback ShowAutomatedMountErrorCallback = void(); - callback IsCloudFileSystemEnabled = void( - boolean isCloudFileSystemEnabled); + callback BoolCallback = void(boolean result); interface Functions { // Returns the OneDrive mount mode from the admin policy. @@ -46,7 +45,11 @@ namespace odfsConfigPrivate { // Returns whether the FileSystemProviderCloudFileSystem feature flag is // enabled. - static void isCloudFileSystemEnabled(IsCloudFileSystemEnabled callback); + static void isCloudFileSystemEnabled(BoolCallback callback); + + // Returns whether the FileSystemProviderContentCache feature flag is + // enabled. + static void isContentCacheEnabled(BoolCallback callback); }; interface Events { diff --git a/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl b/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl index 3ee760ad..37392ad3 100755 --- a/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl @@ -261,6 +261,11 @@ namespace passwordsPrivate { // Additional information in case a credential is compromised. CompromisedInfo? compromisedInfo; + + // The timestamp of when this credential was created, or undefined if not a + // passkey. Specified in milliseconds since the UNIX epoch. Intended to be + // passed to the JavaScript Date() constructor. + double? creationTime; }; // Group representing affiliated PasswordUiEntries. @@ -357,6 +362,9 @@ namespace passwordsPrivate { callback CredentialsWithReusedPasswordCallback = void(PasswordUiEntryList[] entries); callback PasswordManagerPinAvailableCallback = void(boolean available); + callback PasswordManagerPinChangedCallback = void(boolean success); + callback DisconnectCloudAuthenticatorCallback = void(boolean success); + callback IsConnectedToCloudAuthenticatorCallback = void(boolean connected); interface Functions { // Function that logs that the Passwords page was accessed from the Chrome @@ -552,11 +560,21 @@ namespace passwordsPrivate { static void showExportedFileInShell(DOMString file_path); // Shows a dialog for changing the Password Manager PIN. - static void changePasswordManagerPin(); + static void changePasswordManagerPin( + optional PasswordManagerPinChangedCallback callback); // Checks whether changing Password Manager PIN is possible. static void isPasswordManagerPinAvailable( PasswordManagerPinAvailableCallback callback); + + // Disconnects the Chrome client from the cloud authenticator. + static void disconnectCloudAuthenticator( + DisconnectCloudAuthenticatorCallback callback); + + // Checks whether the Chrome client is registered with/connected to + // the cloud authenticator. + static void isConnectedToCloudAuthenticator( + IsConnectedToCloudAuthenticatorCallback callback); }; interface Events { diff --git a/tools/under-control/src/chrome/common/extensions/api/scripting.idl b/tools/under-control/src/chrome/common/extensions/api/scripting.idl index 59a161cf..f029ede3 100755 --- a/tools/under-control/src/chrome/common/extensions/api/scripting.idl +++ b/tools/under-control/src/chrome/common/extensions/api/scripting.idl @@ -187,7 +187,7 @@ namespace scripting { // and modify as a JS object. One instance exists per frame and is shared // between all content scripts for a given extension. This object is // initialized when the frame is created, before document_start. - // TODO(crbug.com/1054624): Enable this once implementation is complete. + // TODO(crbug.com/40119604): Enable this once implementation is complete. [nodoc, nocompile] static long globalParams(); }; diff --git a/tools/under-control/src/chrome/common/extensions/api/smart_card_provider_private.idl b/tools/under-control/src/chrome/common/extensions/api/smart_card_provider_private.idl index 344c444a..eb0b13ae 100755 --- a/tools/under-control/src/chrome/common/extensions/api/smart_card_provider_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/smart_card_provider_private.idl @@ -10,7 +10,7 @@ // [2] https://en.wikipedia.org/wiki/PC/SC // [3] https://github.com/WICG/web-smart-card/blob/main/README.md#web-idl // -// TODO(crbug.com/1386175): Add API for the remaining SCard* functions. +// TODO(crbug.com/40247152): Add API for the remaining SCard* functions. [platforms=("chromeos", "lacros"), implemented_in="chrome/browser/chromeos/extensions/smart_card_provider_private/smart_card_provider_private_api.h"] namespace smartCardProviderPrivate { 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 620f0eba..60bc3751 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 @@ -560,14 +560,13 @@ void ChromeContentRendererClient::RenderThreadStarted() { // This doesn't work in single-process mode. if (!base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kSingleProcess)) { - using HeapProfilerController = heap_profiling::HeapProfilerController; + const auto* heap_profiler_controller = + heap_profiling::HeapProfilerController::GetInstance(); // The HeapProfilerController should have been created in // ChromeMainDelegate::PostEarlyInitialization. - DCHECK_NE(HeapProfilerController::GetProfilingEnabled(), - HeapProfilerController::ProfilingEnabled::kNoController); + CHECK(heap_profiler_controller); if (ThreadProfiler::ShouldCollectProfilesForChildProcess() || - HeapProfilerController::GetProfilingEnabled() == - HeapProfilerController::ProfilingEnabled::kEnabled) { + heap_profiler_controller->IsEnabled()) { ThreadProfiler::SetMainThreadTaskRunner( base::SingleThreadTaskRunner::GetCurrentDefault()); mojo::PendingRemote collector; @@ -1218,7 +1217,7 @@ GURL ChromeContentRendererClient::GetNaClContentHandlerURL( void ChromeContentRendererClient::GetInterface( const std::string& interface_name, mojo::ScopedMessagePipeHandle interface_pipe) { - // TODO(crbug.com/977637): Get rid of the use of this implementation of + // TODO(crbug.com/40633267): Get rid of the use of this implementation of // |service_manager::LocalInterfaceProvider|. This was done only to avoid // churning spellcheck code while eliminting the "chrome" and // "chrome_renderer" services. Spellcheck is (and should remain) the only @@ -1827,7 +1826,7 @@ void ChromeContentRendererClient::AppendContentSecurityPolicy( #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_PDF) // Don't apply default CSP to PDF renderers. - // TODO(crbug.com/1252096): Lock down the CSP once style and script are no + // TODO(crbug.com/40792950): Lock down the CSP once style and script are no // longer injected inline by `pdf::PluginResponseWriter`. That class may be a // better place to define such CSP, or we may continue doing so here. if (pdf::IsPdfRenderer()) 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 f1a5a2e1..d08ad3ae 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 @@ -24,6 +24,7 @@ #include "base/feature_list.h" #include "base/files/file_path.h" #include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/lazy_instance.h" #include "base/location.h" #include "base/logging.h" @@ -52,6 +53,7 @@ #include "components/download/public/common/download_stats.h" #include "components/url_formatter/url_formatter.h" #include "components/viz/common/features.h" +#include "components/viz/host/host_frame_sink_manager.h" #include "content/browser/accessibility/browser_accessibility.h" #include "content/browser/accessibility/browser_accessibility_state_impl.h" #include "content/browser/attribution_reporting/attribution_host.h" @@ -63,6 +65,7 @@ #include "content/browser/browser_plugin/browser_plugin_guest.h" #include "content/browser/child_process_security_policy_impl.h" #include "content/browser/closewatcher/close_listener_manager.h" +#include "content/browser/compositor/surface_utils.h" #include "content/browser/device_posture/device_posture_provider_impl.h" #include "content/browser/devtools/protocol/page_handler.h" #include "content/browser/devtools/render_frame_devtools_agent_host.h" @@ -98,6 +101,7 @@ #include "content/browser/renderer_host/render_process_host_impl.h" #include "content/browser/renderer_host/render_view_host_delegate_view.h" #include "content/browser/renderer_host/render_view_host_impl.h" +#include "content/browser/renderer_host/render_widget_host_factory.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/renderer_host/render_widget_host_input_event_router.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" @@ -134,9 +138,6 @@ #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/notification_details.h" -#include "content/public/browser/notification_service.h" -#include "content/public/browser/notification_types.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" @@ -162,6 +163,7 @@ #include "services/device/public/mojom/wake_lock.mojom.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" #include "third_party/blink/public/common/custom_handlers/protocol_handler_utils.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/resource_type_util.h" @@ -190,6 +192,7 @@ #include "ui/color/color_provider_key.h" #include "ui/color/color_provider_manager.h" #include "ui/color/color_provider_utils.h" +#include "ui/compositor/compositor.h" #include "ui/display/screen.h" #include "ui/display/types/display_constants.h" #include "ui/events/base_event_utils.h" @@ -230,7 +233,7 @@ #include "ui/wm/core/window_util.h" #endif -#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN) +#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && PA_BUILDFLAG(USE_STARSCAN) #include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h" #include "content/browser/starscan_load_observer.h" #endif @@ -261,11 +264,6 @@ enum class PrimaryPointerType { // The window which we dobounce load info updates in. constexpr auto kUpdateLoadStatesInterval = base::Milliseconds(250); -// Kill switch for `BackNavigationLikely`. -BASE_FEATURE(kBackNavigationPredictionMetrics, - "BackNavigationPredictionMetrics", - base::FEATURE_ENABLED_BY_DEFAULT); - // Kill switch for crash immediately on dangling BrowserContext. BASE_FEATURE(kCrashOnDanglingBrowserContext, "CrashOnDanglingBrowserContext", @@ -511,7 +509,7 @@ bool IsWindowManagementGranted(RenderFrameHost* host) { // of the display where the window will be placed. The bounds may not extend // outside a single screen's work area, and the `host` requires permission to // specify bounds on a screen other than its current screen. -// TODO(crbug.com/897300): These adjustments are inaccurate for window.open(), +// TODO(crbug.com/40092782): These adjustments are inaccurate for window.open(), // which specifies the inner content size, and for window.moveTo, resizeTo, etc. // calls on newly created windows, which may pass empty sizes or positions to // indicate uninitialized placement information in the renderer. Constraints @@ -618,6 +616,19 @@ size_t GetFrameTreeSize(FrameTree* frame_tree) { return tree_size; } +using RenderWidgetHostAtPointCallback = + base::OnceCallback, + std::optional)>; + +void RunCallback(RenderWidgetHostAtPointCallback callback, + base::WeakPtr view, + std::optional point) { + auto* target = static_cast(view.get()); + if (!callback.is_null()) { + std::move(callback).Run(target ? target->GetWeakPtr() : nullptr, point); + } +} + } // namespace // This is a small helper class created while a JavaScript dialog is showing @@ -1193,6 +1204,8 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context) preferred_contrast_ = native_theme->GetPreferredContrast(); prefers_reduced_transparency_ = native_theme->GetPrefersReducedTransparency(); inverted_colors_ = native_theme->GetInvertedColors(); + renderer_preferences_.caret_blink_interval = + native_theme->GetCaretBlinkInterval(); screen_change_monitor_ = std::make_unique(base::BindRepeating( @@ -1202,13 +1215,14 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context) SharedStorageBudgetCharger::CreateForWebContents(this); } -#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN) - // TODO(1231679): Remove or move to another place after finishing the PCScan - // experiment. +#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && PA_BUILDFLAG(USE_STARSCAN) + // TODO(crbug.com/40190798): Remove or move to another place after finishing + // the PCScan experiment. if (partition_alloc::internal::PCScan::IsInitialized()) { star_scan_load_observer_ = std::make_unique(this); } -#endif // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN) +#endif // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && + // PA_BUILDFLAG(USE_STARSCAN) } WebContentsImpl::~WebContentsImpl() { @@ -1487,7 +1501,7 @@ std::string WebContentsImpl::GetTitleForMediaControls() { // Returns the NavigationController for the primary FrameTree, i.e. the one // whose URL is shown in the omnibox. With MPArch we can have multiple // FrameTrees in one WebContents and each has its own NavigationController. -// TODO(https://crbug.com/1170273): Make sure callers are aware of this. +// TODO(crbug.com/40165692): Make sure callers are aware of this. NavigationControllerImpl& WebContentsImpl::GetController() { return primary_frame_tree_.controller(); } @@ -1829,7 +1843,7 @@ void WebContentsImpl::OnScreensChange(bool is_multi_screen_changed) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnScreensChange", "is_multi_screen_changed", is_multi_screen_changed); // Allow fullscreen requests shortly after user-generated screens changes. - // TODO(crbug.com/1169291): Mac should not activate this on local process + // TODO(crbug.com/40165350): Mac should not activate this on local process // display::Screen signals, but via RenderWidgetHostViewMac screen updates. if (base::FeatureList::IsEnabled( blink::features::kWindowPlacementFullscreenOnScreensChange)) { @@ -1838,7 +1852,7 @@ void WebContentsImpl::OnScreensChange(bool is_multi_screen_changed) { // Mac display info may originate from a remote process hosting the NSWindow; // this local process display::Screen signal should not trigger updates. - // TODO(crbug.com/1169291): Unify screen info plumbing, caching, etc. + // TODO(crbug.com/40165350): Unify screen info plumbing, caching, etc. #if !BUILDFLAG(IS_MAC) // This updates Screen attributes and fires Screen.change events as needed, // propagating to all widgets through the VisualProperties update waterfall. @@ -1903,7 +1917,7 @@ void WebContentsImpl::SetAccessibilityMode(ui::AXMode mode) { "mode", mode.ToString(), "previous_mode", accessibility_mode_.ToString()); - if (accessibility_fatal_error_) { + if (unrecoverable_accessibility_error_) { DUMP_WILL_BE_CHECK(accessibility_mode_.is_mode_off()); return; } @@ -2269,7 +2283,7 @@ bool WebContentsImpl::IsLoading() { } double WebContentsImpl::GetLoadProgress() { - // TODO(crbug.com/1199682): Make this MPArch friendly considering primary + // TODO(crbug.com/40177943): Make this MPArch friendly considering primary // frame tree and its descendants. return primary_frame_tree_.GetLoadProgress(); } @@ -2884,11 +2898,11 @@ void WebContentsImpl::AttachInnerWebContents( render_frame_host_impl); // Create a proxy in top-level RenderFrameHostManager, pointing to the - // SiteInstance of the outer WebContents. The proxy will be used to send + // SiteInstanceGroup of the outer WebContents. The proxy will be used to send // postMessage to the inner WebContents. auto* proxy = inner_main_frame->browsing_context_state()->CreateOuterDelegateProxy( - render_frame_host_impl->GetSiteInstance(), + render_frame_host_impl->GetSiteInstance()->group(), inner_main_frame->frame_tree_node(), blink::RemoteFrameToken()); if (remote_frame && remote_frame_host_receiver) { proxy->BindRemoteFrameInterfaces(std::move(remote_frame), @@ -2999,7 +3013,7 @@ void WebContentsImpl::RecursivelyRegisterRenderWidgetHostViews() { // rather than registering the view directly; the view caches the // TextInputManager. // - // TODO(crbug.com/1292036): This probably could be made more symmetrical + // TODO(crbug.com/40212969): This probably could be made more symmetrical // with unregistration. Getting rid of lazy registration might also allow // eliminating some special cases in TextInputManager. auto* text_input_manager_for_view = view->GetTextInputManager(); @@ -3157,7 +3171,7 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { prefs.viewport_enabled = command_line.HasSwitch(switches::kEnableViewport); #if BUILDFLAG(IS_ANDROID) - // TODO(crbug.com/1469720): GetPrimaryDisplay() won't be correct for + // TODO(crbug.com/40925473): GetPrimaryDisplay() won't be correct for // externally connected displays. Get the display where Chrome is opened // instead. display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); @@ -3207,9 +3221,6 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { prefs.strict_powerful_feature_restrictions = command_line.HasSwitch( switches::kEnableStrictPowerfulFeatureRestrictions); - prefs.fake_no_alloc_direct_call_for_testing_enabled = - command_line.HasSwitch(switches::kEnableFakeNoAllocDirectCallForTesting); - const std::string blockable_mixed_content_group = base::FieldTrialList::FindFullName("BlockableMixedContent"); prefs.strictly_block_blockable_mixed_content = @@ -3454,6 +3465,22 @@ void WebContentsImpl::OnSharedDictionaryAccessed( observers_.NotifyObservers(func, rfh, details); } +void WebContentsImpl::NotifyStorageAccessed( + RenderFrameHostImpl* rfh, + blink::mojom::StorageTypeAccessed storage_type, + bool blocked) { + OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::NotifyStorageAccessed", + "render_frame_host", rfh); + observers_.NotifyObservers(&WebContentsObserver::NotifyStorageAccessed, rfh, + storage_type, blocked); +} + +void WebContentsImpl::OnVibrate(RenderFrameHostImpl* rfh) { + OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnVibrate", + "render_frame_host", rfh); + observers_.NotifyObservers(&WebContentsObserver::VibrationRequested); +} + std::optional WebContentsImpl::GetPermissionsPolicyForIsolatedWebApp( RenderFrameHostImpl* source) { @@ -3677,12 +3704,13 @@ void WebContentsImpl::AddRenderWidgetHostDestructionObserver( TRACE_DISABLED_BY_DEFAULT("content.verbose"), "WebContentsImpl::AddRenderWidgetHostDestructionObserver"); - if (!base::Contains(render_widget_host_destruction_observers_, - render_widget_host)) { - render_widget_host_destruction_observers_[render_widget_host] = - std::make_unique( - this, render_widget_host); - } + DCHECK(!base::Contains(render_widget_host_destruction_observers_, + render_widget_host)); + + render_widget_host_destruction_observers_.insert( + {render_widget_host, + std::make_unique( + this, render_widget_host)}); } void WebContentsImpl::RemoveRenderWidgetHostDestructionObserver( @@ -3886,12 +3914,33 @@ RenderWidgetHostInputEventRouter* WebContentsImpl::GetInputEventRouter() { if (!rwh_input_event_router_.get()) { rwh_input_event_router_ = - std::make_unique(); + std::make_unique( + GetHostFrameSinkManager()); } } return rwh_input_event_router_.get(); } +void WebContentsImpl::GetRenderWidgetHostAtPointAsynchronously( + RenderWidgetHostViewBase* root_view, + const gfx::PointF& point, + base::OnceCallback, + std::optional)> callback) { + GetInputEventRouter()->GetRenderWidgetHostAtPointAsynchronously( + root_view, point, base::BindOnce(&RunCallback, std::move(callback))); +} + +std::vector +WebContentsImpl::GetRenderWidgetHostViewsForTests() { + auto input_hosts = + GetInputEventRouter()->GetRenderWidgetHostViewInputsForTests(); + std::vector hosts; + for (auto host : input_hosts) { + hosts.push_back(static_cast(host)); + } + return hosts; +} + RenderWidgetHostImpl* WebContentsImpl::GetFocusedRenderWidgetHost( RenderWidgetHostImpl* receiving_widget) { // Events for widgets other than the main frame (e.g., popup menus) should be @@ -3928,8 +3977,7 @@ RenderWidgetHostImpl* WebContentsImpl::GetRenderWidgetHostWithPageFocus() { } bool WebContentsImpl::CanEnterFullscreenMode( - RenderFrameHostImpl* requesting_frame, - const blink::mojom::FullscreenOptions& options) { + RenderFrameHostImpl* requesting_frame) { // It's possible that this WebContents was spawned while blocking UI was on // the screen, or that it was downstream from a WebContents when UI was // blocked. Therefore, disqualify it from fullscreen if it or any upstream @@ -3938,14 +3986,14 @@ bool WebContentsImpl::CanEnterFullscreenMode( [](auto* opener) { return opener->fullscreen_blocker_count_ == 0; }) && - delegate_->CanEnterFullscreenModeForTab(requesting_frame, options); + delegate_->CanEnterFullscreenModeForTab(requesting_frame); } void WebContentsImpl::EnterFullscreenMode( RenderFrameHostImpl* requesting_frame, const blink::mojom::FullscreenOptions& options) { OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); - DCHECK(CanEnterFullscreenMode(requesting_frame, options)); + DCHECK(CanEnterFullscreenMode(requesting_frame)); DCHECK(requesting_frame->IsActive()); DCHECK(ContainsOrIsFocusedWebContents()); if (base::FeatureList::IsEnabled( @@ -4587,7 +4635,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( // Check whether there is an available prerendered page for this navigation if // this is not for guest. If it exists, take WebContents pre-created for // hosting the prerendered page instead of creating new WebContents. - // TODO(crbug.com/1350676): Instead of filtering out the guest case here, + // TODO(crbug.com/40234240): Instead of filtering out the guest case here, // check it and drop prerender requests before starting prerendering. std::unique_ptr new_contents; if (base::FeatureList::IsEnabled(blink::features::kPrerender2InNewTab) && @@ -4756,9 +4804,8 @@ RenderWidgetHostImpl* WebContentsImpl::CreateNewPopupWidget( return nullptr; } - RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::CreateSelfOwned( - &primary_frame_tree_, this, site_instance_group, route_id, IsHidden(), - std::make_unique()); + RenderWidgetHostImpl* widget_host = RenderWidgetHostFactory::CreateSelfOwned( + &primary_frame_tree_, this, site_instance_group, route_id, IsHidden()); widget_host->BindWidgetInterfaces(std::move(blink_widget_host), std::move(blink_widget)); @@ -4772,8 +4819,9 @@ RenderWidgetHostImpl* WebContentsImpl::CreateNewPopupWidget( widget_view->SetWidgetType(WidgetType::kPopup); // Save the created widget associated with the route so we can show it later. - pending_widgets_[GlobalRoutingID(site_instance_group->process()->GetID(), - route_id)] = widget_host; + pending_widgets_.insert( + {GlobalRoutingID(site_instance_group->process()->GetID(), route_id), + widget_host}); AddRenderWidgetHostDestructionObserver(widget_host); return widget_host; @@ -4853,7 +4901,7 @@ void WebContentsImpl::ShowCreatedWindow( // the window.open() feature string did not specify a value. This code does // not distinguish between an unspecified value and 0. // Assume that if any single value is non-zero, all values should be used. - // TODO(crbug.com/897300): Utilize window_features.has_x and others. + // TODO(crbug.com/40092782): Utilize window_features.has_x and others. blink::mojom::WindowFeatures adjusted_features = window_features; int64_t display_id = AdjustWindowRect(&adjusted_features.bounds, opener); @@ -5119,7 +5167,7 @@ void WebContentsImpl::AXTreeIDForMainFrameHasChanged() { } void WebContentsImpl::AccessibilityEventReceived( - const AXEventNotificationDetails& details) { + const ui::AXUpdatesAndEvents& details) { OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::AccessibilityEventReceived"); observers_.NotifyObservers(&WebContentsObserver::AccessibilityEventReceived, @@ -5127,7 +5175,7 @@ void WebContentsImpl::AccessibilityEventReceived( } void WebContentsImpl::AccessibilityLocationChangesReceived( - const std::vector& details) { + const std::vector& details) { OPTIONAL_TRACE_EVENT0( "content", "WebContentsImpl::AccessibilityLocationChangesReceived"); observers_.NotifyObservers( @@ -5170,7 +5218,7 @@ std::string WebContentsImpl::DumpAccessibilityTree( // Developer mode: crash immediately on any accessibility fatal error. // This only runs during integration tests, or if a developer is // using an inspection tool, e.g. chrome://accessibility. - BrowserAccessibilityManager::AlwaysFailFast(); + ui::AXTreeManager::AlwaysFailFast(); DCHECK(base::Contains(AXInspectFactory::SupportedApis(), api_type)); std::unique_ptr formatter = AXInspectFactory::CreateFormatter(api_type); @@ -5219,9 +5267,9 @@ void WebContentsImpl::RecordAccessibilityEvents( } } -void WebContentsImpl::AccessibilityFatalError() { +void WebContentsImpl::UnrecoverableAccessibilityError() { SetAccessibilityMode(ui::AXMode::kNone); - accessibility_fatal_error_ = true; + unrecoverable_accessibility_error_ = true; } device::mojom::GeolocationContext* WebContentsImpl::GetGeolocationContext() { @@ -6427,12 +6475,12 @@ void WebContentsImpl::ReadyToCommitNavigation( // possible to avoid race conditions with pages attempting to access // WebGL early on. // - // TODO(crbug.com/617904): currently navigations initiated by the browser + // TODO(crbug.com/41257523): currently navigations initiated by the browser // (reload button, reload menu option, pressing return in the Omnibox) // return false from HasUserGesture(). If or when that is addressed, // remove the check for IsRendererInitiated() below. // - // TODO(crbug.com/832180): HasUserGesture comes from the renderer + // TODO(crbug.com/40571460): HasUserGesture comes from the renderer // process and isn't validated. Until it is, don't trust it. if (!navigation_handle->IsRendererInitiated()) { GpuDataManagerImpl::GetInstance()->UnblockDomainFrom3DAPIs( @@ -6494,7 +6542,7 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) { } } - // TODO(crbug.com/1223113) : Move this tracking to PageImpl. + // TODO(crbug.com/40774464) : Move this tracking to PageImpl. if (navigation_handle->IsInPrimaryMainFrame() && !navigation_handle->IsSameDocument()) { was_ever_audible_ = false; @@ -6545,7 +6593,7 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) { // bfcached renderers). Same for prerendering. // TODO(rakina): Maybe handle the back-forward cache case in // ReadyToCommitNavigation instead? - // TODO(https://crbug.com/1194880): Maybe sync RendererPreferences as well? + // TODO(crbug.com/40758687): Maybe sync RendererPreferences as well? if (value_changed_due_to_override || NavigationRequest::From(navigation_handle)->IsPageActivation()) { SetWebPreferences(*web_preferences_.get()); @@ -6767,7 +6815,7 @@ void WebContentsImpl::DidNavigateAnyFramePostCommit( // RenderFrameHostManager::UnloadOldFrame in // content/browser/renderer_host/render_frame_host_manager.cc // - // TODO(crbug.com/1299379): Note that fenced frames cannot open modal dialogs + // TODO(crbug.com/40215909): Note that fenced frames cannot open modal dialogs // so this only affects dialogs outside the fenced frame tree. If this is ever // changed then the navigation should be deferred till the dialog from within // the fenced frame is open. @@ -6779,7 +6827,7 @@ void WebContentsImpl::DidNavigateAnyFramePostCommit( // If this is a user-initiated navigation, start allowing JavaScript dialogs // again. // - // TODO(https://crbug.com/1399296): Consider using the actual value of + // TODO(crbug.com/40249773): Consider using the actual value of // "whether a navigation started with user activation or not" instead of // has_user_gesture, which might get filtered out when navigating from // proxies. If so, we can remove tracking of @@ -7172,7 +7220,7 @@ void WebContentsImpl::OnDidFinishLoad(RenderFrameHostImpl* render_frame_host, } bool WebContentsImpl::IsAllowedToGoToEntryAtOffset(int32_t offset) { - // TODO(https://crbug.com/1170277): This should probably be renamed to + // TODO(crbug.com/40165695): This should probably be renamed to // WebContentsDelegate::IsAllowedToGoToEntryAtOffset or // ShouldGoToEntryAtOffset return !delegate_ || delegate_->OnGoToEntryOffset(offset); @@ -7196,9 +7244,9 @@ void WebContentsImpl::EnumerateDirectory( OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::EnumerateDirectory", "render_frame_host", render_frame_host, "directory_path", directory_path); - base::ScopedClosureRunner cancel_chooser(base::BindOnce( - &FileChooserImpl::FileSelectListenerImpl::FileSelectionCanceled, - listener)); + absl::Cleanup cancel_chooser = [&listener] { + listener->FileSelectionCanceled(); + }; if (visibility_ == Visibility::HIDDEN) { // Do not allow background tab to open file chooser. return; @@ -7216,7 +7264,7 @@ void WebContentsImpl::EnumerateDirectory( if (delegate_) { active_file_chooser_ = std::move(file_chooser); delegate_->EnumerateDirectory(this, std::move(listener), directory_path); - std::ignore = cancel_chooser.Release(); + std::move(cancel_chooser).Cancel(); } } @@ -7687,7 +7735,7 @@ void WebContentsImpl::OnDidBlockNavigation( blink::mojom::NavigationBlockedReason reason) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnDidBlockNavigation", "details", [&](perfetto::TracedValue context) { - // TODO(crbug.com/1183371): Replace this with passing + // TODO(crbug.com/40751990): Replace this with passing // more parameters to TRACE_EVENT directly when // available. auto dict = std::move(context).WriteDictionary(); @@ -7982,9 +8030,9 @@ void WebContentsImpl::RunFileChooser( OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RunFileChooser", "render_frame_host", render_frame_host); - base::ScopedClosureRunner cancel_chooser(base::BindOnce( - &FileChooserImpl::FileSelectListenerImpl::FileSelectionCanceled, - listener)); + absl::Cleanup cancel_chooser = [&listener] { + listener->FileSelectionCanceled(); + }; if (visibility_ == Visibility::HIDDEN) { // Do not allow background tab to open file chooser. return; @@ -8002,7 +8050,7 @@ void WebContentsImpl::RunFileChooser( if (delegate_) { active_file_chooser_ = std::move(file_chooser); delegate_->RunFileChooser(render_frame_host, std::move(listener), params); - std::ignore = cancel_chooser.Release(); + std::move(cancel_chooser).Cancel(); } } @@ -8310,7 +8358,8 @@ void WebContentsImpl::SetWindowRect(const gfx::Rect& new_bounds) { // Members of |new_bounds| may be 0 to indicate uninitialized values for newly // opened windows, even if the |GetContainerBounds()| inner rect is correct. - // TODO(crbug.com/897300): Plumb values as specified; fallback on outer rect. + // TODO(crbug.com/40092782): Plumb values as specified; fallback on outer + // rect. auto bounds = new_bounds; if (bounds.IsEmpty()) { bounds.set_size(GetContainerBounds().size()); @@ -8448,9 +8497,9 @@ void WebContentsImpl::DidStopLoading() { // loading. Notify the spare renderer manager about the page loading // completion. This is a no-op if a spare rendere already exists. // - // TODO(crbug.com/1517067): replace the implicit treatment of TimeDelta::Max() - // with an enum and optional TimeDelta if we decide to launch deferred spare - // renderer. + // TODO(crbug.com/41490050): replace the implicit treatment of + // TimeDelta::Max() with an enum and optional TimeDelta if we decide to launch + // deferred spare renderer. bool immediately_warmup_spare_renderer = GetContentClient()->browser()->GetSpareRendererDelayForSiteURL( GetURL()) == base::TimeDelta::Max(); @@ -8770,11 +8819,12 @@ void WebContentsImpl::EnsureOpenerProxiesExist( // process but we intentionally do not expose the embedder's opener chain // to it. source_web_contents->GetRenderManager()->CreateRenderFrameProxy( - GetSiteInstance(), + GetSiteInstance()->group(), source_web_contents->GetPrimaryMainFrame()->browsing_context_state()); } else { source_rfh->frame_tree_node()->render_manager()->CreateOpenerProxies( - GetSiteInstance(), nullptr, source_rfh->browsing_context_state()); + GetSiteInstance()->group(), nullptr, + source_rfh->browsing_context_state()); } } } @@ -8811,6 +8861,16 @@ void WebContentsImpl::SetFocusedFrameTree(FrameTree* frame_tree_to_focus) { *frame_tree_to_focus->root() ->current_frame_host() ->GetOutermostMainFrameOrEmbedder()); + if (frame_tree_to_focus->GetFocusedFrame() && + frame_tree_to_focus->GetFocusedFrame() + ->current_frame_host() + ->inner_tree_main_frame_tree_node_id() != + FrameTreeNode::kFrameTreeNodeInvalidId) { + // If an inner frame tree, in `frame_tree_to_focus`, had focus, the + // placeholder RenderFrameHost needs to be unset as the focused frame in + // `frame_tree_to_focus`. + frame_tree_to_focus->SetFocusedFrame(frame_tree_to_focus->root(), nullptr); + } frame_tree_to_focus->FocusOuterFrameTrees(); frame_tree_to_focus->root() @@ -9143,7 +9203,7 @@ void WebContentsImpl::NotifySwappedFromRenderManager( // Only fire RenderViewHostChanged if it is related to our FrameTree, as // observers can not deal with events coming from non-primary FrameTree. - // TODO(https://crbug.com/1168562): Update observers to deal with the events, + // TODO(crbug.com/40165060): Update observers to deal with the events, // and fire events for all frame trees. if (new_frame->IsInPrimaryMainFrame()) { // The |new_frame| and its various compadres are already swapped into place @@ -9195,7 +9255,7 @@ void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( // Only fire RenderViewHostChanged if it is // related to our FrameTree, as observers cannot deal with events coming // from non-primary FrameTree. - // TODO(https://crbug.com/1168562): Update observers to deal with the events, + // TODO(crbug.com/40165060): Update observers to deal with the events, // and fire events for all frame trees. if (!new_frame->IsInPrimaryMainFrame()) { return; @@ -9247,7 +9307,7 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( const auto proxy_routing_id = proxy_host ? proxy_host->GetRoutingID() : MSG_ROUTING_NONE; - // TODO(https://crbug.com/1171646): Given MPArch, should we pass + // TODO(crbug.com/40166243): Given MPArch, should we pass // opened_by_another_window_ for non primary FrameTrees? if (!rvh_impl->CreateRenderView(opener_frame_token, proxy_routing_id, opened_by_another_window_)) { @@ -9476,7 +9536,7 @@ gfx::Size WebContentsImpl::GetSize() { ui::ViewAndroid* view_android = GetNativeView(); return view_android->bounds().size(); #elif BUILDFLAG(IS_IOS) - // TODO(crbug.com/1411704): Implement me. + // TODO(crbug.com/40254930): Implement me. NOTREACHED(); return gfx::Size(); #endif @@ -10195,28 +10255,6 @@ void WebContentsImpl::DidChangeScreenOrientation() { last_screen_orientation_change_time_ = ui::EventTimeForNow(); } -// TODO(crbug.com/328100331): This method should be renamed since it doesn't -// actually show a popup menu. -bool WebContentsImpl::ShowPopupMenu(RenderFrameHostImpl* render_frame_host, - const gfx::Rect& bounds) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::ShowPopupMenu", - "render_frame_host", render_frame_host); - - if (visibility_ != Visibility::VISIBLE) { - // Don't create popups for hidden tabs. http://crbug.com/1521345 - // Returning true here makes RenderFrameHostImpl::ShowPopupMenu abort - // before showing a popup. - return true; - } - - DCHECK(render_frame_host->IsActive()); - if (show_popup_menu_callback_) { - std::move(show_popup_menu_callback_).Run(bounds); - return true; - } - return false; -} - void WebContentsImpl::UpdateWebContentsVisibility(Visibility visibility) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::UpdateWebContentsVisibility", @@ -10309,7 +10347,7 @@ WebContentsImpl::ParseDownloadHeaders(const std::string& headers) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::ParseDownloadHeaders", "headers", headers); download::DownloadUrlParameters::RequestHeadersType request_headers; - for (const std::string_view& key_value : base::SplitStringPiece( + for (std::string_view key_value : base::SplitStringPiece( headers, "\r\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { std::vector pair = base::SplitString( key_value, ":", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); @@ -10369,6 +10407,8 @@ void WebContentsImpl::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) { bool prefers_reduced_transparency = observed_theme->GetPrefersReducedTransparency(); bool inverted_colors = observed_theme->GetInvertedColors(); + base::TimeDelta caret_blink_interval = + observed_theme->GetCaretBlinkInterval(); bool preferences_changed = false; if (using_dark_colors_ != using_dark_colors) { @@ -10399,6 +10439,14 @@ void WebContentsImpl::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) { if (preferences_changed) { NotifyPreferencesChanged(); } + + // Only caret blink interval from NativeTheme impacts + // blink::RendererPreferences, which are not synced in + // NotifyPreferencesChanged(). Sync these if the interval has changed. + if (renderer_preferences_.caret_blink_interval != caret_blink_interval) { + renderer_preferences_.caret_blink_interval = caret_blink_interval; + SyncRendererPrefs(); + } } void WebContentsImpl::OnCaptionStyleUpdated() { @@ -10570,7 +10618,7 @@ void WebContentsImpl::RenderFrameHostStateChanged( "WebContentsImpl::RenderFrameHostStateChanged", "render_frame_host", render_frame_host, "states", [&](perfetto::TracedValue context) { - // TODO(crbug.com/1183371): Replace this with passing + // TODO(crbug.com/40751990): Replace this with passing // more parameters to TRACE_EVENT directly when // available. auto dict = std::move(context).WriteDictionary(); @@ -10699,6 +10747,26 @@ VisibleTimeRequestTrigger& WebContentsImpl::GetVisibleTimeRequestTrigger() { return visible_time_request_trigger_; } +gfx::mojom::DelegatedInkPointRenderer* WebContentsImpl::GetDelegatedInkRenderer( + ui::Compositor* compositor) { + if (!delegated_ink_point_renderer_.is_bound()) { + // The remote can't be bound if the compositor is null, so bail if + // that is the case so we don't crash by trying to use an unbound + // remote. + if (!compositor) { + return nullptr; + } + + TRACE_EVENT_INSTANT0("delegated_ink_trails", + "Binding mojo interface for delegated ink points.", + TRACE_EVENT_SCOPE_THREAD); + compositor->SetDelegatedInkPointRenderer( + delegated_ink_point_renderer_.BindNewPipeAndPassReceiver()); + delegated_ink_point_renderer_.reset_on_disconnect(); + } + return delegated_ink_point_renderer_.get(); +} + std::unique_ptr WebContentsImpl::StartPrerendering( const GURL& prerendering_url, PreloadingTriggerType trigger_type, @@ -10732,12 +10800,13 @@ std::unique_ptr WebContentsImpl::StartPrerendering( return nullptr; } +void WebContentsImpl::CancelAllPrerendering() { + GetPrerenderHostRegistry()->CancelAllHosts( + PrerenderFinalStatus::kAllPrerenderingCanceled); +} + void WebContentsImpl::BackNavigationLikely(PreloadingPredictor predictor, WindowOpenDisposition disposition) { - if (!base::FeatureList::IsEnabled(kBackNavigationPredictionMetrics)) { - return; - } - CHECK(!IsBeingDestroyed()); // See the comment of `last_back_navigation_hint_time_` for why this cooldown diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc index 3161cd58..4fe7bf2a 100755 --- a/tools/under-control/src/content/child/runtime_features.cc +++ b/tools/under-control/src/content/child/runtime_features.cc @@ -156,7 +156,7 @@ void SetRuntimeFeatureFromChromiumFeature(const base::Feature& chromium_feature, using FeatureList = base::FeatureList; const bool feature_enabled = FeatureList::IsEnabled(chromium_feature); const bool is_overridden = - FeatureList::GetInstance()->IsFeatureOverridden(chromium_feature.name); + FeatureList::GetStateIfOverridden(chromium_feature).has_value(); switch (option) { case kSetOnlyIfOverridden: if (is_overridden) { @@ -194,8 +194,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kUseAXPositionForDocumentMarkers)}, {wf::EnableAOMAriaRelationshipProperties, raw_ref(features::kEnableAriaElementReflection)}, - {wf::EnableAutoplayIgnoresWebAudio, - raw_ref(media::kAutoplayIgnoreWebAudio)}, {wf::EnableBackgroundFetch, raw_ref(features::kBackgroundFetch)}, {wf::EnableBoundaryEventDispatchTracksNodeRemoval, raw_ref(blink::features::kBoundaryEventDispatchTracksNodeRemoval)}, @@ -205,8 +203,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kBrowserVerifiedUserActivationMouse)}, {wf::EnableCompositeBGColorAnimation, raw_ref(features::kCompositeBGColorAnimation)}, - {wf::EnableConsolidatedMovementXY, - raw_ref(features::kConsolidatedMovementXY)}, {wf::EnableCooperativeScheduling, raw_ref(features::kCooperativeScheduling)}, {wf::EnableDigitalGoods, raw_ref(features::kDigitalGoodsApi), @@ -230,22 +226,21 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, {wf::EnableSharedStorageAPI, - raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {wf::EnableSharedStorageAPIM118, raw_ref(blink::features::kSharedStorageAPIM118), kDefault}, {wf::EnableSharedStorageAPIM125, raw_ref(blink::features::kSharedStorageAPIM125), kDefault}, {wf::EnableFedCmMultipleIdentityProviders, - raw_ref(features::kFedCmMultipleIdentityProviders), kDefault}, + raw_ref(features::kFedCmMultipleIdentityProviders), + kSetOnlyIfOverridden}, {wf::EnableFedCmSelectiveDisclosure, raw_ref(features::kFedCmSelectiveDisclosure), kDefault}, {wf::EnableFencedFrames, raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, {wf::EnableFencedFrames, - raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {wf::EnableForcedColors, raw_ref(features::kForcedColors)}, {wf::EnableFractionalScrollOffsets, raw_ref(features::kFractionalScrollOffsets)}, @@ -296,8 +291,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kTouchDragAndContextMenu)}, {wf::EnableUserActivationSameOriginVisibility, raw_ref(features::kUserActivationSameOriginVisibility)}, - {wf::EnableVideoPlaybackQuality, - raw_ref(features::kVideoPlaybackQuality)}, {wf::EnableWebBluetooth, raw_ref(features::kWebBluetooth), kSetOnlyIfOverridden}, {wf::EnableWebBluetoothGetDevices, @@ -348,8 +341,9 @@ void SetRuntimeFeaturesFromChromiumFeatures() { *mapping.chromium_feature, mapping.option, mapping.feature_enabler); } - // TODO(crbug/832393): Cleanup the inconsistency between custom WRF enabler - // function and using feature string name with EnableFeatureFromString. + // TODO(crbug.com/40571563): Cleanup the inconsistency between custom WRF + // enabler function and using feature string name with + // EnableFeatureFromString. const RuntimeFeatureToChromiumFeatureMap runtimeFeatureNameToChromiumFeatureMapping[] = { {"AllowContentInitiatedDataUrlNavigations", @@ -359,14 +353,12 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, {"AllowURNsInIframes", - raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {"AttributionReporting", raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, {"AttributionReporting", - raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {"AttributionReportingCrossAppWeb", raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, @@ -388,7 +380,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { kSetOnlyIfOverridden}, {"DocumentPolicyIncludeJSCallStacksInCrashReports", raw_ref(blink::features:: - kDocumentPolicyIncludeJSCallStacksInCrashReports)}, + kDocumentPolicyIncludeJSCallStacksInCrashReports), + kSetOnlyIfOverridden}, {"FencedFramesLocalUnpartitionedDataAccess", raw_ref(blink::features::kFencedFramesLocalUnpartitionedDataAccess)}, {"Fledge", raw_ref(blink::features::kFledge), kSetOnlyIfOverridden}, @@ -409,14 +402,12 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {"SerialPortConnected", raw_ref(features::kSerialPortConnected)}, {"TopicsAPI", raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, - {"TopicsAPI", raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + {"TopicsAPI", raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {"TopicsDocumentAPI", raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, {"TopicsDocumentAPI", - raw_ref(features::kPrivacySandboxAdsAPIsM1Override), - kSetOnlyIfOverridden}, + raw_ref(features::kPrivacySandboxAdsAPIsM1Override)}, {"TouchTextEditingRedesign", raw_ref(features::kTouchTextEditingRedesign)}, {"TrustedTypesFromLiteral", @@ -427,8 +418,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kMediaStreamTrackTransfer)}, {"PrivateNetworkAccessPermissionPrompt", raw_ref(network::features::kPrivateNetworkAccessPermissionPrompt), - kSetOnlyIfOverridden}, - {"PermissionElement", raw_ref(features::kPermissionElement)}}; + kSetOnlyIfOverridden}}; for (const auto& mapping : runtimeFeatureNameToChromiumFeatureMapping) { SetRuntimeFeatureFromChromiumFeature( *mapping.chromium_feature, mapping.option, [&mapping](bool enabled) { @@ -732,6 +722,16 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFledgeDeprecatedRenderURLReplacements(false); } } + + // PermissionElement cannot be enabled without the support of the + // browser process. + if (!base::FeatureList::IsEnabled(blink::features::kPermissionElement)) { + LOG_IF(WARNING, WebRuntimeFeatures::IsPermissionElementEnabled()) + << "PermissionElement cannot be enabled in this configuration. Use --" + << switches::kEnableFeatures << "=" + << blink::features::kPermissionElement.name << " instead."; + WebRuntimeFeatures::EnablePermissionElement(false); + } } } // namespace 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 d2975a6c..62fed61b 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 @@ -9,11 +9,13 @@ #include #include "base/check.h" +#include "base/command_line.h" #include "base/feature_list.h" #include "base/files/file_path.h" #include "base/functional/callback_helpers.h" #include "base/no_destructor.h" #include "base/notreached.h" +#include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool/thread_pool_instance.h" #include "base/values.h" @@ -583,7 +585,8 @@ bool ContentBrowserClient::IsSharedStorageAllowed( content::RenderFrameHost* rfh, const url::Origin& top_frame_origin, const url::Origin& accessing_origin, - std::string* out_debug_message) { + std::string* out_debug_message, + bool* out_block_is_site_setting_specific) { return false; } @@ -591,14 +594,16 @@ bool ContentBrowserClient::IsSharedStorageSelectURLAllowed( content::BrowserContext* browser_context, const url::Origin& top_frame_origin, const url::Origin& accessing_origin, - std::string* out_debug_message) { + std::string* out_debug_message, + bool* out_block_is_site_setting_specific) { return false; } bool ContentBrowserClient::IsPrivateAggregationAllowed( content::BrowserContext* browser_context, const url::Origin& top_frame_origin, - const url::Origin& reporting_origin) { + const url::Origin& reporting_origin, + bool* out_block_is_site_setting_specific) { return true; } @@ -943,6 +948,11 @@ std::wstring ContentBrowserClient::GetAppContainerSidForSandboxType( L"924012148-129201922"); } +std::string ContentBrowserClient::GetAppContainerId() { + return base::WideToUTF8( + base::CommandLine::ForCurrentProcess()->GetProgram().value()); +} + bool ContentBrowserClient::IsRendererAppContainerDisabled() { return false; } @@ -959,7 +969,7 @@ bool ContentBrowserClient::IsRendererCodeIntegrityEnabled() { } bool ContentBrowserClient::ShouldEnableAudioProcessHighPriority() { - // TODO(crbug.com/1374069): Delete this method when the + // TODO(crbug.com/40242320): Delete this method when the // kAudioProcessHighPriorityEnabled enterprise policy is deprecated. return false; } @@ -1462,6 +1472,10 @@ bool ContentBrowserClient::ShouldServiceWorkerInheritPolicyContainerFromCreator( return url.SchemeIsLocal(); } +void ContentBrowserClient::GrantAdditionalRequestPrivilegesToWorkerProcess( + int child_id, + const GURL& script_url) {} + ContentBrowserClient::PrivateNetworkRequestPolicyOverride ContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( BrowserContext* browser_context, @@ -1511,6 +1525,7 @@ ContentBrowserClient::CreateIdentityRequestDialogController( void ContentBrowserClient::ShowDigitalIdentityInterstitialIfNeeded( WebContents& web_contents, const url::Origin& origin, + bool is_only_requesting_age, DigitalIdentityInterstitialCallback callback) { std::move(callback).Run( DigitalIdentityProvider::RequestStatusForMetrics::kErrorOther); diff --git a/tools/under-control/src/extensions/common/api/app_runtime.idl b/tools/under-control/src/extensions/common/api/app_runtime.idl index 33ad7b9e..8e7138ec 100755 --- a/tools/under-control/src/extensions/common/api/app_runtime.idl +++ b/tools/under-control/src/extensions/common/api/app_runtime.idl @@ -46,7 +46,8 @@ namespace app.runtime { context_menu, arc, intent_url, - app_home_page + app_home_page, + focus_mode }; // An app can be launched with a specific action in mind, for example, to diff --git a/tools/under-control/src/extensions/common/api/automation.idl b/tools/under-control/src/extensions/common/api/automation.idl index 1e59e0a5..f6bbaf2c 100755 --- a/tools/under-control/src/extensions/common/api/automation.idl +++ b/tools/under-control/src/extensions/common/api/automation.idl @@ -79,7 +79,7 @@ mediaStoppedPlaying, menuEnd, menuItemSelected, - menuListValueChanged, + menuListValueChangedDeprecated, menuPopupEnd, menuPopupStart, menuStart, @@ -174,7 +174,7 @@ desktop, details, dialog, - directory, + directoryDeprecated, disclosureTriangle, disclosureTriangleGrouped, // -------------------------------------------------------------- @@ -326,6 +326,7 @@ search, searchBox, section, + sectionWithoutName, slider, spinButton, splitter, diff --git a/tools/under-control/src/extensions/common/api/bluetooth.idl b/tools/under-control/src/extensions/common/api/bluetooth.idl index e6f7bb87..0000d129 100755 --- a/tools/under-control/src/extensions/common/api/bluetooth.idl +++ b/tools/under-control/src/extensions/common/api/bluetooth.idl @@ -105,7 +105,7 @@ namespace bluetooth { // Type of filter to apply to the device list. Default is all. FilterType? filterType; - // Maximum number of bluetoth devices to return. Default is 0 (no limit) + // Maximum number of bluetooth devices to return. Default is 0 (no limit) // if unspecified. long? limit; }; diff --git a/tools/under-control/src/extensions/common/api/cec_private.idl b/tools/under-control/src/extensions/common/api/cec_private.idl index c4079629..0a570a99 100755 --- a/tools/under-control/src/extensions/common/api/cec_private.idl +++ b/tools/under-control/src/extensions/common/api/cec_private.idl @@ -3,7 +3,7 @@ // found in the LICENSE file. // Private API for HDMI CEC functionality. -[platforms=("chromeos")] +[platforms=("chromeos", "lacros")] namespace cecPrivate { enum DisplayCecPowerState { diff --git a/tools/under-control/src/extensions/common/api/content_scripts.idl b/tools/under-control/src/extensions/common/api/content_scripts.idl index 5265af46..a20b3322 100755 --- a/tools/under-control/src/extensions/common/api/content_scripts.idl +++ b/tools/under-control/src/extensions/common/api/content_scripts.idl @@ -57,7 +57,7 @@ namespace contentScripts { extensionTypes.RunAt? run_at; // The JavaScript "world" to run the script in. Defaults to // ISOLATED. Only available in Manifest V3 extensions. - [nodoc] extensionTypes.ExecutionWorld? world; + extensionTypes.ExecutionWorld? world; }; dictionary ManifestKeys { diff --git a/tools/under-control/src/extensions/common/api/declarative_net_request.idl b/tools/under-control/src/extensions/common/api/declarative_net_request.idl index 0b65d246..30f4e8f2 100755 --- a/tools/under-control/src/extensions/common/api/declarative_net_request.idl +++ b/tools/under-control/src/extensions/common/api/declarative_net_request.idl @@ -170,7 +170,7 @@ namespace declarativeNetRequest { DOMString? regexSubstitution; }; - // TODO(crbug.com/1141166): Add documentation once feature is complete. + // TODO(crbug.com/40727004): Add documentation once feature is complete. [nodoc] dictionary HeaderInfo { // The name of the header. This condition matches on the name // only if both `values` and `excludedValues` are not specified. @@ -355,14 +355,14 @@ namespace declarativeNetRequest { // Rule matches if the request matches any response header condition in this // list (if specified). - // TODO(crbug.com/1141166): Add documentation once feature is complete. + // TODO(crbug.com/40727004): Add documentation once feature is complete. [nodoc] HeaderInfo[]? responseHeaders; // Rule does not match if the request matches any response header // condition in this list (if specified). If both `excludedResponseHeaders` // and `responseHeaders` are specified, then the `excludedResponseHeaders` // property takes precedence. - // TODO(crbug.com/1141166): Add documentation once feature is complete. + // TODO(crbug.com/40727004): Add documentation once feature is complete. [nodoc] HeaderInfo[]? excludedResponseHeaders; }; diff --git a/tools/under-control/src/extensions/common/api/file_handlers.idl b/tools/under-control/src/extensions/common/api/file_handlers.idl index 71c13905..32708700 100755 --- a/tools/under-control/src/extensions/common/api/file_handlers.idl +++ b/tools/under-control/src/extensions/common/api/file_handlers.idl @@ -9,7 +9,7 @@ // Icon specification similar to an ImageResource. dictionary Icon { - // TODO(crbug.com/1362192) Add `DOMString? label;` for accessibility. + // TODO(crbug.com/40238266) Add `DOMString? label;` for accessibility. // URL from which a user agent can fetch image data. DOMString src; diff --git a/tools/under-control/src/extensions/common/api/offscreen.idl b/tools/under-control/src/extensions/common/api/offscreen.idl index 6fe35fd9..1a4d399e 100755 --- a/tools/under-control/src/extensions/common/api/offscreen.idl +++ b/tools/under-control/src/extensions/common/api/offscreen.idl @@ -77,7 +77,7 @@ namespace offscreen { static void closeDocument(VoidCallback callback); // Determines whether the extension has an active document. - // TODO(https://crbug.com/1339382): This probably isn't something we want to + // TODO(crbug.com/40849649): This probably isn't something we want to // ship in its current form (hence the nodoc). Instead of this, we should // integrate offscreen documents into a service worker-compatible getViews() // alternative. But this is pretty useful in testing environments. diff --git a/tools/under-control/src/extensions/common/api/user_scripts.idl b/tools/under-control/src/extensions/common/api/user_scripts.idl index 36738afa..47d03d3c 100755 --- a/tools/under-control/src/extensions/common/api/user_scripts.idl +++ b/tools/under-control/src/extensions/common/api/user_scripts.idl @@ -110,6 +110,10 @@ namespace userScripts { callback ConfigureWorldCallback = void(); + callback GetAllWorldConfigurationsCallback = void(WorldProperties[] worlds); + + callback ResetWorldConfigurationCallback = void(); + interface Functions { // Registers one or more user scripts for this extension. // |scripts|: Contains a list of user scripts to be registered. @@ -155,5 +159,22 @@ namespace userScripts { static void configureWorld( WorldProperties properties, optional ConfigureWorldCallback callback); + + // Retrieves all registered world configurations. + // |callback|: Called with the registered world configurations. + // TODO(https://crbug.com/331680187): Remove nodoc. + [nodoc] static void getWorldConfigurations( + GetAllWorldConfigurationsCallback callback); + + // Resets the configuration for a user script world. Any scripts that inject + // into the world with the specified ID will use the default world + // configuration. + // |worldId|: The ID of the user script world to reset. If omitted, resets + // the default world's configuration. + // |callback|: Called when the configuration is reset. + // TODO(https://crbug.com/331680187): Remove nodoc. + [nodoc] static void resetWorldConfiguration( + optional DOMString worldId, + ResetWorldConfigurationCallback callback); }; }; diff --git a/tools/under-control/src/gin/v8_initializer.cc b/tools/under-control/src/gin/v8_initializer.cc index 024d5386..f407288f 100755 --- a/tools/under-control/src/gin/v8_initializer.cc +++ b/tools/under-control/src/gin/v8_initializer.cc @@ -20,6 +20,7 @@ #include "base/bits.h" #include "base/check.h" #include "base/check_op.h" +#include "base/containers/span.h" #include "base/debug/alias.h" #include "base/debug/crash_logging.h" #include "base/feature_list.h" @@ -64,7 +65,12 @@ std::optional g_snapshot_file_type; #endif bool GenerateEntropy(unsigned char* buffer, size_t amount) { - base::RandBytes(buffer, amount); + base::RandBytes( + // SAFETY: This depends on callers providing a valid pointer/size pair. + // + // TODO(crbug.com/338574383): The signature is fixed as it's a callback + // from v8, but maybe v8 can use a span. + UNSAFE_BUFFERS(base::span(buffer, amount))); return true; } @@ -283,6 +289,12 @@ void SetFlags(IsolateHolder::ScriptMode mode, SetV8FlagsFormatted("--memory-reducer-gc-count=%i", features::kV8MemoryReducerGCCount.Get()); } + SetV8FlagsIfOverridden(features::kV8IdleGcOnContextDisposal, + "--idle-gc-on-context-disposal", + "--no-idle-gc-on-context-disposal"); + SetV8FlagsIfOverridden(features::kV8GCOptimizeSweepForMutator, + "--cppheap-optimize-sweep-for-mutator", + "--no-cppheap-optimize-sweep-for-mutator"); SetV8FlagsIfOverridden(features::kV8MinorMS, "--minor-ms", "--no-minor-ms"); SetV8FlagsIfOverridden(features::kV8Sparkplug, "--sparkplug", "--no-sparkplug"); @@ -386,14 +398,6 @@ void SetFlags(IsolateHolder::ScriptMode mode, "--no-intel-jcc-erratum-mitigation"); // JavaScript language features. - if (base::FeatureList::IsEnabled(features::kJavaScriptRabGsab)) { - SetV8Flags("--harmony-rab-gsab"); - } else { - SetV8Flags("--no-harmony-rab-gsab"); - } - SetV8FlagsIfOverridden(features::kJavaScriptArrayBufferTransfer, - "--harmony-rab-gsab-transfer", - "--no-harmony-rab-gsab-transfer"); SetV8FlagsIfOverridden(features::kJavaScriptIteratorHelpers, "--harmony-iterator-helpers", "--no-harmony-iterator-helpers"); @@ -437,6 +441,8 @@ void SetFlags(IsolateHolder::ScriptMode mode, SetV8FlagsIfOverridden(features::kWebAssemblyInlining, "--experimental-wasm-inlining", "--no-experimental-wasm-inlining"); + SetV8FlagsIfOverridden(features::kWebAssemblyLiftoffCodeFlushing, + "--flush-liftoff-code", "--no-flush-liftoff-code"); SetV8FlagsIfOverridden(features::kWebAssemblyGenericWrapper, "--wasm-to-js-generic-wrapper", "--no-wasm-to-js-generic-wrapper"); @@ -579,7 +585,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out, // static void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) { if (g_mapped_snapshot) { - // TODO(crbug.com/802962): Confirm not loading different type of snapshot + // TODO(crbug.com/40558459): Confirm not loading different type of snapshot // files in a process. return; } diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc index 5fb60171..aa94a653 100755 --- a/tools/under-control/src/services/network/network_context.cc +++ b/tools/under-control/src/services/network/network_context.cc @@ -607,7 +607,7 @@ NetworkContext::NetworkContext( app_status_listeners_.push_back( std::make_unique()); #endif // BUILDFLAG(IS_ANDROID) - // TODO(crbug.com/1413922): Set `file_operations_factory` to support + // TODO(crbug.com/40255884): Set `file_operations_factory` to support // sandboxed network service on Android. shared_dictionary_manager_ = SharedDictionaryManager::CreateOnDisk( params_->file_paths->shared_dictionary_directory->path().Append( @@ -860,7 +860,7 @@ void NetworkContext::CreateURLLoaderFactory( void NetworkContext::CreateURLLoaderFactoryForCertNetFetcher( mojo::PendingReceiver factory_receiver) { - // TODO(crbug.com/1087790): investigate changing these params. + // TODO(crbug.com/40695068): investigate changing these params. auto url_loader_factory_params = mojom::URLLoaderFactoryParams::New(); url_loader_factory_params->is_trusted = true; url_loader_factory_params->process_id = mojom::kBrowserProcessId; @@ -1569,7 +1569,7 @@ int NetworkContext::CheckCTRequirementsForSignedExchange( // For old certificates (issued before 2018-05-01), // CheckCTRequirements() may return CT_NOT_REQUIRED, so we check the // compliance status here. - // TODO(https://crbug.com/851778): Remove this condition once we require + // TODO(crbug.com/40580363): Remove this condition once we require // signing certificates to have CanSignHttpExchanges extension, because // such certificates should be naturally after 2018-05-01. if (cert_verify_result.policy_compliance == @@ -1794,7 +1794,7 @@ void NetworkContext::CreateHostResolver( // with the specified configuration overrides. Because we are using a non- // standard resolver, disable the cache. // - // TODO(crbug.com/846423): Consider allowing per-resolve overrides, so the + // TODO(crbug.com/40577881): Consider allowing per-resolve overrides, so the // same net::HostResolver with the same scheduler and cache can be used with // different overrides. But since this is only used for special cases for // now, much easier to create entirely separate net::HostResolver instances. @@ -2224,7 +2224,7 @@ void NetworkContext::LookupProxyAuthCredentials( url_request_context_->http_transaction_factory() ->GetSession() ->http_auth_cache(); - // TODO(https://crbug.com/1103768): Mapping proxy addresses to URLs is a + // TODO(crbug.com/40704785): Mapping proxy addresses to URLs is a // lossy conversion, shouldn't do this. const char* scheme = proxy_server.is_secure_http_like() ? "https://" : "http://"; @@ -2259,6 +2259,16 @@ size_t NetworkContext::NumOpenWebTransports() const { return base::ranges::count(web_transports_, false, &WebTransport::torn_down); } +bool NetworkContext::AllURLLoaderFactoriesAreBoundToNetworkForTesting( + net::handles::NetworkHandle target_network) const { + for (const auto& factory : url_loader_factories_) { + if (factory->GetBoundNetworkForTesting() != target_network) { + return false; + } + } + return true; +} + void NetworkContext::OnHttpAuthDynamicParamsChanged( const mojom::HttpAuthDynamicParams* http_auth_dynamic_network_service_params) { @@ -2328,7 +2338,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( DCHECK(params_->cert_verifier_params); // base::Unretained() is safe below because |this| will own // |cert_verifier|. - // TODO(https://crbug.com/1085233): this cert verifier should deal with + // TODO(crbug.com/40693524): this cert verifier should deal with // disconnections if the CertVerifierService is run outside of the browser // process. cert_verifier = std::make_unique( @@ -2347,7 +2357,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier))); #if BUILDFLAG(IS_CHROMEOS) - // TODO(https://crbug.com/1477317): The TrustAnchorUsed callback should + // TODO(crbug.com/40928765): The TrustAnchorUsed callback should // work on all platforms. (Also consider whether this wrapper is the best // way to handle this or if it should be refactored.) cert_verifier_with_trust_anchors_ = @@ -2709,8 +2719,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( #if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS) if (params_->device_bound_sessions_enabled) { - builder.set_device_bound_session_service( - net::DeviceBoundSessionService::Create()); + builder.set_has_device_bound_session_service(true); } #endif @@ -3078,9 +3087,7 @@ void NetworkContext::RevokeNetworkForNonces( network_revocation_nonces_.insert(nonce); const std::set& exemptions = network_revocation_exemptions_[nonce]; for (const auto& factory : url_loader_factories_) { - for (const auto& loader : factory->url_loaders()) { - loader->CancelRequestIfNonceMatchesAndUrlNotExempted(nonce, exemptions); - } + factory->CancelRequestsIfNonceMatchesAndUrlNotExempted(nonce, exemptions); } #if BUILDFLAG(ENABLE_WEBSOCKETS) if (websocket_factory_) { @@ -3088,7 +3095,10 @@ void NetworkContext::RevokeNetworkForNonces( } #endif // BUILDFLAG(ENABLE_WEBSOCKETS) } - std::move(callback).Run(); + + if (callback) { + std::move(callback).Run(); + } } void NetworkContext::ExemptUrlFromNetworkRevocationForNonce( 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 3e41a670..87d00091 100755 --- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json +++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json @@ -260,6 +260,27 @@ ] } ], + "AllowTrustedVaultAutoUpgradeSyntheticFieldTrial": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TrustedVaultAutoUpgradeSyntheticFieldTrial" + ] + } + ] + } + ], "AllowUndamagedNonrootRenderPassToSkip": [ { "platforms": [ @@ -321,7 +342,7 @@ ], "experiments": [ { - "name": "Enabled_LooseSimilarityCheckWithCancellingSession", + "name": "Enabled_LooseSimilarityCheckWithCancellingSession_20240419", "enable_features": [ "AndroidAutofillCancelSessionOnNavigation", "AndroidAutofillPrefillRequestsForLoginForms", @@ -331,21 +352,6 @@ ] } ], - "AndroidAutofillSupportVisibilityChanges": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidAutofillSupportVisibilityChanges" - ] - } - ] - } - ], "AndroidBackPressRefactor": [ { "platforms": [ @@ -388,6 +394,22 @@ ] } ], + "AndroidDesktopWindowing": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DragDropTabTearing", + "TabStripLayoutOptimization" + ] + } + ] + } + ], "AndroidHatsNext": [ { "platforms": [ @@ -409,24 +431,6 @@ ] } ], - "AndroidHub": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "floating_action_button": "false" - }, - "enable_features": [ - "AndroidHub" - ] - } - ] - } - ], "AndroidLowLatencyCanvas": [ { "platforms": [ @@ -515,21 +519,6 @@ ] } ], - "AndroidNoVisibleHintForDifferentTLD": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidNoVisibleHintForDifferentTLD" - ] - } - ] - } - ], "AndroidOmniboxUxRevampPhase3": [ { "platforms": [ @@ -734,6 +723,21 @@ ] } ], + "AppSpecificHistory": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AppSpecificHistory" + ] + } + ] + } + ], "AppStreamingAccessibilityIntegration": [ { "platforms": [ @@ -749,6 +753,52 @@ ] } ], + "AppsCollectionsFeature": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Counterfactual", + "params": { + "is-counterfactual": "true" + }, + "enable_features": [ + "AppsCollections" + ] + }, + { + "name": "Enabled", + "params": { + "is-counterfactual": "false" + }, + "enable_features": [ + "AppsCollections" + ] + } + ] + } + ], + "ArcBlockIoScheduler": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "data_block_io_scheduler": "true" + }, + "enable_features": [ + "ArcBlockIoScheduler" + ], + "min_os_version": "15880.0.0" + } + ] + } + ], "ArcIgnoreHoverEventAnr": [ { "platforms": [ @@ -922,6 +972,22 @@ ] } ], + "ArcVmS2Idle": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ArcS2Idle" + ], + "min_os_version": "15880.0.0" + } + ] + } + ], "ArcVmmSwap": [ { "platforms": [ @@ -1297,6 +1363,27 @@ ] } ], + "AutofillAssociateForms": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAssociateForms" + ] + } + ] + } + ], "AutofillContentEditableChangeEvents": [ { "platforms": [ @@ -1341,6 +1428,27 @@ ] } ], + "AutofillEnableAccountStorageForIneligibleCountries": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableAccountStorageForIneligibleCountries" + ] + } + ] + } + ], "AutofillEnableAndroidNKeyForFidoAuthentication": [ { "platforms": [ @@ -1371,6 +1479,9 @@ "experiments": [ { "name": "Enabled", + "params": { + "cache_size": "1000" + }, "enable_features": [ "AutofillEnableCacheForRegexMatching" ] @@ -1648,6 +1759,57 @@ ] } ], + "AutofillEnableVirtualCards": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableVirtualCards" + ] + } + ] + } + ], + "AutofillEnableXHRSubmissionDetectionIOS": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableXHRSubmissionDetectionIOS" + ] + } + ] + } + ], + "AutofillFixCachingOnJavaScriptChanges": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillFixCachingOnJavaScriptChanges" + ] + } + ] + } + ], "AutofillGranularFillingAndManualFallbackForUnclassifiedFieldsAvailable": [ { "platforms": [ @@ -1687,8 +1849,7 @@ "name": "Enabled_With_Cards_and_VCN_20230324", "enable_features": [ "AutofillKeyboardAccessory", - "AutofillManualFallbackAndroid", - "RecoverFromNeverSaveAndroid" + "AutofillManualFallbackAndroid" ] } ] @@ -1780,51 +1941,6 @@ ] } ], - "AutofillParsingPatternProvider": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "prediction_source": "default" - }, - "enable_features": [ - "AutofillParsingPatternProvider" - ] - } - ] - } - ], - "AutofillPopupImprovedTimingChecksV2": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "mac", - "windows", - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillPopupImprovedTimingChecksV2" - ] - } - ] - } - ], "AutofillPreFilledFieldsCorrectly": [ { "platforms": [ @@ -1888,6 +2004,28 @@ ] } ], + "AutofillSuggestionNStrikeModel": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "strike-limit": "5" + }, + "enable_features": [ + "AutofillSuggestionNStrikeModel" + ] + } + ] + } + ], "AutofillSurveys": [ { "platforms": [ @@ -1943,6 +2081,25 @@ ] } ], + "AutofillTestFormWithTestAddresses": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillTestFormWithTestAddresses" + ] + } + ] + } + ], "AutofillTextAreaChangeEvents": [ { "platforms": [ @@ -1965,13 +2122,13 @@ ] } ], - "AutofillTrackProfileTokenQuality": [ + "AutofillUnifyAndFixFormTracking": [ { "platforms": [ "android", + "android_webview", "chromeos", "chromeos_lacros", - "ios", "linux", "mac", "windows" @@ -1980,7 +2137,7 @@ { "name": "Enabled", "enable_features": [ - "AutofillTrackProfileTokenQuality" + "AutofillUnifyAndFixFormTracking" ] } ] @@ -2030,7 +2187,7 @@ ] } ], - "AutofillUseI18nAddressModel": [ + "AutofillUseI18nAddressModelV2": [ { "platforms": [ "android", @@ -2155,6 +2312,28 @@ ] } ], + "AvoidEntryCreationForNoStore": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AvoidEntryCreationForNoStore" + ] + } + ] + } + ], "AvoidLoadingPredictorPrefetchDuringBrowserStartup": [ { "platforms": [ @@ -2606,26 +2785,6 @@ ] } ], - "BlockMidiByDefault": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BlockMidiByDefault" - ] - } - ] - } - ], "BluetoothQualityReport": [ { "platforms": [ @@ -2659,31 +2818,6 @@ ] } ], - "BoostResourceLoadingTaskPriorities": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_AllTypes", - "enable_features": [ - "BoostFontLoadingTaskPriority", - "BoostImageSetLoadingTaskPriority", - "BoostNonRenderBlockingStyleLoadingTaskPriority", - "BoostRenderBlockingStyleLoadingTaskPriority", - "BoostVideoLoadingTaskPriority" - ] - } - ] - } - ], "BorealisProvision": [ { "platforms": [ @@ -2899,6 +3033,7 @@ "ButterOnDesktopFollowup": [ { "platforms": [ + "chromeos_lacros", "linux", "mac", "windows" @@ -2944,6 +3079,10 @@ "experiments": [ { "name": "Enabled", + "params": { + "page_insights_alt_privacy_notice_url": "https://support.google.com/chrome?p=page_insights", + "page_insights_send_context_metadata": "true" + }, "enable_features": [ "CCTPageInsightsHub" ] @@ -3040,6 +3179,24 @@ ] } ], + "CameraMicPreview": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CameraMicPreview", + "GetUserMediaDeferredDeviceSettingsSelection" + ] + } + ] + } + ], "Canvas2DAutoFlushParams": [ { "platforms": [ @@ -3205,20 +3362,20 @@ ] } ], - "CastFallbackCRLRevocation": [ + "CastMirroringPlayoutDelayChromeOS": [ { "platforms": [ "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" + "chromeos_lacros" ], "experiments": [ { - "name": "EnableCastFallbackCRLRevocation", + "name": "Enabled", + "params": { + "cast_mirroring_playout_delay_ms": "200" + }, "enable_features": [ - "CastFallbackCRLRevocation" + "CastMirroringPlayoutDelay" ] } ] @@ -3345,6 +3502,25 @@ ] } ], + "CbdTimeframeRequired": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CbdTimeframeRequired" + ] + } + ] + } + ], "CctClientDataHeader": [ { "platforms": [ @@ -3364,40 +3540,6 @@ ] } ], - "CdmStorageDatabaseMigrationTrial": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CdmStorageDatabase" - ] - } - ] - } - ], - "CellularCarrierLock": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CellularCarrierLock" - ] - } - ] - } - ], "CheckHTMLParserBudgetLessOften": [ { "platforms": [ @@ -3457,25 +3599,6 @@ ] } ], - "ChromeDesktopFishfood": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_Fishfood", - "enable_features": [ - "LensOverlay" - ] - } - ] - } - ], "ChromeHomeFrequency": [ { "platforms": [ @@ -3847,8 +3970,8 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ + "name": "Disabled", + "disable_features": [ "OobeQuickStart" ] } @@ -3996,26 +4119,6 @@ ] } ], - "ChromeWallpaperSearchLaunch": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CustomizeChromeWallpaperSearch", - "CustomizeChromeWallpaperSearchInspirationCard" - ] - } - ] - } - ], "ChromeWideEchoCancellation": [ { "platforms": [ @@ -4037,6 +4140,29 @@ ] } ], + "Chromnient": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "endpoint-url": "https://lensfrontend-pa.googleapis.com/v1/crupload", + "use-oauth-for-requests": "true" + }, + "enable_features": [ + "LensOverlay" + ] + } + ] + } + ], "ClankFeedSyntheticCapabilities": [ { "platforms": [ @@ -4094,10 +4220,33 @@ "experiments": [ { "name": "Enabled", + "params": { + "show_tabs_in_one_module": "true" + }, "enable_features": [ "MagicStackAndroid", "PriceChangeModule", - "SegmentationPlatformAndroidHomeModuleRanker", + "SegmentationPlatformAndroidHomeModuleRanker" + ] + } + ] + } + ], + "ClankTabResumpton": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "max_tiles_number": "1", + "show_see_more": "true", + "use_default_app_filter": "true", + "use_salient_image": "true" + }, + "enable_features": [ "TabResumptionModuleAndroid" ] } @@ -4245,6 +4394,25 @@ ] } ], + "ClientSideDetectionSamplePing": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ClientSideDetectionSamplePing" + ] + } + ] + } + ], "ClipboardDeemphasisAndroid": [ { "platforms": [ @@ -4567,30 +4735,6 @@ ] } ], - "CompositeBGColorAnimationExp4": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CompositeBGColorAnimation", - "NativePaintUsesCompositorPriority" - ] - } - ] - } - ], "CompressionDictionaryTransport": [ { "platforms": [ @@ -4693,6 +4837,29 @@ ] } ], + "ContinueEventTimingRecordingWhenBufferIsFull": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows", + "android_webview", + "android_weblayer" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ContinueEventTimingRecordingWhenBufferIsFull" + ] + } + ] + } + ], "CookieAccessDetailsNotificationDeDuping": [ { "platforms": [ @@ -5091,6 +5258,51 @@ ] } ], + "CrOSLateBootAudioOffloadCrasDSPToSOF": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled_20240421", + "enable_features": [ + "CrOSLateBootAudioOffloadCrasDSPToSOF" + ] + } + ] + } + ], + "CrOSLateBootAudioStyleTransferStudy": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CrOSLateBootAudioStyleTransfer" + ] + } + ] + } + ], + "CrOSLateBootDynamicEPP": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CrOSLateBootDynamicEPP" + ] + } + ] + } + ], "CrOSLateBootEEVDF": [ { "platforms": [ @@ -5141,6 +5353,88 @@ ] } ], + "CrOSLateBootLowMemorySignaling": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "EnabledEarlyDiscard", + "enable_features": [ + "CrOSLateBootDiscardStaleAtModeratePressure" + ] + }, + { + "name": "EnabledEarlyDiscardConservativeGradient", + "params": { + "MaxLastVisibleDurationSeconds": "7200", + "MinLastVisibleDurationSeconds": "3600" + }, + "enable_features": [ + "CrOSLateBootDiscardStaleAtModeratePressure" + ] + }, + { + "name": "EnabledEarlyDiscardAggressiveGradient", + "params": { + "MaxLastVisibleDurationSeconds": "3600", + "MinLastVisibleDurationSeconds": "300" + }, + "enable_features": [ + "CrOSLateBootDiscardStaleAtModeratePressure" + ] + }, + { + "name": "EnabledAvailableAdjustmentPsi", + "enable_features": [ + "CrOSLateBootPsiAdjustAvailable" + ] + }, + { + "name": "EnabledAvailableAdjustmentPsiFull", + "params": { + "PsiTopThreshold": "20.0", + "PsiUseFull": "true" + }, + "enable_features": [ + "CrOSLateBootPsiAdjustAvailable" + ] + }, + { + "name": "EnabledAvailableAdjustmentPsiWithEarlyDiscard", + "enable_features": [ + "CrOSLateBootDiscardStaleAtModeratePressure", + "CrOSLateBootPsiAdjustAvailable" + ] + }, + { + "name": "EnabledPSIMemoryPolicy", + "enable_features": [ + "CrOSLateBootPSIMemoryPolicy" + ] + }, + { + "name": "EnabledPSIMemoryPolicyConservativeGradient", + "params": { + "BackgroundPsiSomeMillis": "200", + "ForegroundPsiFullMillis": "100", + "UnresponsivePsiFullMillis": "700" + }, + "enable_features": [ + "CrOSLateBootPSIMemoryPolicy" + ] + }, + { + "name": "EnabledPSIMemoryPolicyWithEarlyDiscard", + "enable_features": [ + "CrOSLateBootDiscardStaleAtModeratePressure", + "CrOSLateBootPSIMemoryPolicy" + ] + } + ] + } + ], "CrOSLateBootMediaDynamicCgroup": [ { "platforms": [ @@ -5219,68 +5513,19 @@ ] } ], - "CrOSLateBootSwapZramRecompression": [ + "CrOSLateBootSwapZramTuning": [ { "platforms": [ "chromeos" ], "experiments": [ { - "name": "Enabled", + "name": "EnabledGroupA", "params": { - "backoff_time_sec": "300", - "idle_max_time_sec": "3600", - "idle_min_time_sec": "1800", - "periodic_time_sec": "600", - "recomp_algorithm": "zstd", - "recompression_huge": "true", - "recompression_huge_idle": "true", - "recompression_idle": "true", - "threshold_mib": "1024" + "multiplier": "1.5" }, "enable_features": [ - "CrOSLateBootSwapZramRecompression" - ] - } - ] - } - ], - "CrOSLateBootSwapZramWriteback": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "EnabledGroup_20240401", - "params": { - "backoff_time_sec": "600", - "idle_max_time_sec": "90000", - "idle_min_time_sec": "72000", - "max_pages": "76800", - "min_pages": "1280", - "periodic_time_sec": "3600", - "writeback_huge": "true", - "writeback_huge_idle": "true", - "writeback_idle": "true" - }, - "enable_features": [ - "CrOSLateBootSwapZramWriteback" - ] - } - ] - } - ], - "CrOSLateBootVmMemoryManagementService": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CrOSLateBootVmMemoryManagementService" + "CrOSLateBootSwapZramDisksize" ] } ] @@ -5332,21 +5577,6 @@ ] } ], - "CreateNewTabInitializeRenderer": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_Nonstable_20230609", - "enable_features": [ - "CreateNewTabInitializeRenderer" - ] - } - ] - } - ], "CreateNotificationsAcceptedClientSafeBrowsingReports": [ { "platforms": [ @@ -5368,6 +5598,21 @@ ] } ], + "CreateSpareRendererOnBrowserContextCreation": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CreateSpareRendererOnBrowserContextCreation" + ] + } + ] + } + ], "CreateWarningShownClientSafeBrowsingReports": [ { "platforms": [ @@ -5426,21 +5671,6 @@ ] } ], - "CrosDeviceActiveClientChurnObservationNewDeviceMetadata": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DeviceActiveClientChurnObservationNewDeviceMetadata" - ] - } - ] - } - ], "CrosLazyLoginWebUI": [ { "platforms": [ @@ -5676,21 +5906,6 @@ ] } ], - "DefaultBrowserPromoAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DefaultBrowserPromoAndroid" - ] - } - ] - } - ], "DefaultBrowserPromptRefreshLaunch": [ { "platforms": [ @@ -5782,28 +5997,6 @@ ] } ], - "DeferredOverlayRelease": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DeferredOverlayRelease" - ] - } - ] - } - ], "DeferredSparerRendererForTopChromeWebUI": [ { "platforms": [ @@ -6331,7 +6524,8 @@ "aida_api_key": "someRandomAPIKey", "aida_endpoint": "https://www.example.com/aida", "aida_model_id": "aida_model_id", - "aida_scope": "https://www.example.com/auth/" + "aida_scope": "https://www.example.com/auth/", + "opt_in": "false" }, "enable_features": [ "DevToolsConsoleInsightsDogfood" @@ -6689,6 +6883,29 @@ ] } ], + "DontAlwaysPushPictureLayerImpls": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DontAlwaysPushPictureLayerImpls" + ] + } + ] + } + ], "DownloadLater": [ { "platforms": [ @@ -6768,6 +6985,27 @@ ] } ], + "EagerPrefetchBlockUntilHeadDifferentTimeoutsRetrospective": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "block_until_head_timeout_eager_prefetch": "500" + }, + "enable_features": [ + "PrefetchUseContentRefactor" + ] + } + ] + } + ], "EdgeToEdgeAndroid": [ { "platforms": [ @@ -7203,6 +7441,21 @@ ] } ], + "EnableTcpPortRandomization": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableTcpPortRandomization" + ] + } + ] + } + ], "EnableWatchdogReportOnlyModeOnGpuInit": [ { "platforms": [ @@ -7431,8 +7684,7 @@ "name": "Enabled", "enable_features": [ "ComposeSettingsVisibility", - "TabOrganizationSettingsVisibility", - "WallpaperSearchSettingsVisibility" + "TabOrganizationSettingsVisibility" ] } ] @@ -7507,7 +7759,25 @@ ] } ], - "ExtensionTelemetryTabsApiSignalCaptureVisibleTab": [ + "ExtensionParentalControlsOnLinuxMacWindows": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableExtensionsPermissionsForSupervisedUsersOnDesktop", + "EnableSupervisedUserSkipParentApprovalToInstallExtensions" + ] + } + ] + } + ], + "ExtensionSafetyHubAdditionalTriggers": [ { "platforms": [ "chromeos", @@ -7520,7 +7790,46 @@ { "name": "Enabled", "enable_features": [ - "SafeBrowsingExtensionTelemetryTabsApiSignalCaptureVisibleTab" + "SafetyHubExtensionsOffStoreTrigger", + "SafetyHubExtensionsUwSTrigger" + ] + } + ] + } + ], + "ExtensionSafetyHubNoPrivacyPracticesTrigger": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafetyHubExtensionsNoPrivacyPracticesTrigger" + ] + } + ] + } + ], + "ExtensionTelemetryDeclarativeNetRequestActionSignal": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafeBrowsingExtensionTelemetryDeclarativeNetRequestActionSignal" ] } ] @@ -7604,7 +7913,7 @@ { "name": "Enabled", "params": { - "FledgeBiddingAndAuctionKeyConfig": "{\"https://publickeyservice.gcp.privacysandboxservices.com\": \"https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys\", \"https://publickeyservice.pa.gcp.privacysandboxservices.com\": \"https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys\"}", + "FledgeBiddingAndAuctionKeyConfig": "{\"https://publickeyservice.gcp.privacysandboxservices.com\": \"https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys\", \"https://publickeyservice.pa.gcp.privacysandboxservices.com\": \"https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys\", \"https://publickeyservice.pa.aws.privacysandboxservices.com\": \"https://publickeyservice.pa.aws.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys\"}", "FledgeBiddingAndAuctionKeyURL": "https://publickeyservice.pa.gcp.privacysandboxservices.com/.well-known/protected-auction/v1/public-keys" }, "enable_features": [ @@ -7614,6 +7923,21 @@ ] } ], + "FastPairHandshakeLongTermRefactor": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FastPairHandshakeLongTermRefactor" + ] + } + ] + } + ], "FastPairPWACompanion": [ { "platforms": [ @@ -7843,7 +8167,7 @@ { "name": "Enabled", "enable_features": [ - "FencedFramesCrossOriginEventReporting" + "FencedFramesCrossOriginEventReportingUnlabeledTraffic" ] } ] @@ -7893,60 +8217,6 @@ ] } ], - "FenderLcpInfluencerScriptsPriority": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "VeryHighPriorityForScriptAndLcpImage_20240215", - "params": { - "lcpscriptobserver_adjust_image_load_priority": "true", - "lcpscriptobserver_image_load_priority": "very_high", - "lcpscriptobserver_script_load_priority": "very_high", - "lcpscriptobserver_script_max_url_count_per_origin": "5", - "lcpscriptobserver_script_max_url_length": "1024" - }, - "enable_features": [ - "LCPScriptObserver" - ] - } - ] - } - ], - "FenderScriptScheduling": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "HighPriority_20230818", - "params": { - "lcpp_dry_run": "false", - "lcpp_enable_perf_improvements": "true", - "lcpp_image_load_priority": "high", - "lcpp_max_element_locator_length": "1024", - "lcpp_max_hosts_to_track": "100" - }, - "enable_features": [ - "LCPCriticalPathPredictor" - ] - } - ] - } - ], "FetchGaiaHashOnSignIn": [ { "platforms": [ @@ -7986,6 +8256,27 @@ ] } ], + "FillScrollingContentsLayer": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FillScrollingContentsLayer" + ] + } + ] + } + ], "FindRegistrationImprovements": [ { "platforms": [ @@ -8030,35 +8321,6 @@ ] } ], - "FixInputQueueingBug": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "queue_all_gesture_scrolls", - "enable_features": [ - "FixGestureScrollQueuingBug", - "QueueBlockingGestureScrolls" - ] - }, - { - "name": "fix_input_queueing_bug", - "enable_features": [ - "FixGestureScrollQueuingBug" - ] - } - ] - } - ], "Floss": [ { "platforms": [ @@ -8130,25 +8392,6 @@ ] } ], - "ForceSigninFlowInProfilePicker": [ - { - "platforms": [ - "mac", - "windows", - "linux", - "chromeos", - "chromeos_lacros" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ForceSigninFlowInProfilePicker" - ] - } - ] - } - ], "ForestFeature": [ { "platforms": [ @@ -8206,50 +8449,6 @@ ] } ], - "FormControlsVerticalWritingModeSupport": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FormControlsVerticalWritingModeSupport" - ] - } - ] - } - ], - "FormControlsVerticalWritingModeTextSupport": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FormControlsVerticalWritingModeTextSupport" - ] - } - ] - } - ], "FrameRoutingCache": [ { "platforms": [ @@ -8272,29 +8471,6 @@ ] } ], - "GCMAvoidConnectionWhenNetworkUnavailable": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "fuchsia", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "GCMAvoidConnectionWhenNetworkUnavailable", - "GCMDoNotIncreaseBackoffDelayOnNetworkChange" - ] - } - ] - } - ], "GMSCoreEmoji": [ { "platforms": [ @@ -8370,6 +8546,21 @@ ] } ], + "GcmNativeBackgroundTask": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GcmNativeBackgroundTask" + ] + } + ] + } + ], "GenGpuDiskCacheKeyPrefixInGpuService": [ { "platforms": [ @@ -8436,6 +8627,25 @@ ] } ], + "GetTheMostOutOfChrome": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GetTheMostOutOfChrome" + ] + } + ] + } + ], "GifRecording": [ { "platforms": [ @@ -8699,6 +8909,51 @@ ] } ], + "GwpAsanAndroidLargerBrowserReservation": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "TripleBrowserReservation", + "params": { + "BrowserMaxAllocations": "210", + "BrowserMaxMetadata": "765", + "BrowserTotalPages": "1536" + }, + "enable_features": [ + "GwpAsanMalloc", + "GwpAsanPartitionAlloc" + ] + } + ] + } + ], + "GwpAsanLargerBrowserReservation": [ + { + "platforms": [ + "chromeos", + "linux", + "mac" + ], + "experiments": [ + { + "name": "TripleBrowserReservation", + "params": { + "BrowserMaxAllocations": "210", + "BrowserMaxMetadata": "765", + "BrowserTotalPages": "6144" + }, + "enable_features": [ + "GwpAsanMalloc", + "GwpAsanPartitionAlloc" + ] + } + ] + } + ], "GwpAsanLinux": [ { "platforms": [ @@ -8776,6 +9031,26 @@ ] } ], + "HangoutsExtensionV3": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "HangoutsExtensionV3" + ] + } + ] + } + ], "HappinessTrackingBorealisGames": [ { "platforms": [ @@ -9313,10 +9588,11 @@ ] } ], - "HideIncognitoMediaMetadata": [ + "HistoryEmbeddings": [ { "platforms": [ "chromeos", + "chromeos_lacros", "linux", "mac", "windows" @@ -9325,7 +9601,7 @@ { "name": "Enabled", "enable_features": [ - "HideIncognitoMediaMetadata" + "HistoryEmbeddings" ] } ] @@ -9521,39 +9797,6 @@ ] } ], - "IOSDefaultBrowserEligibilitySlidingWindow": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "sliding-window-days": "180" - }, - "enable_features": [ - "DefaultBrowserEligibilitySlidingWindow" - ] - } - ] - } - ], - "IOSDefaultBrowserVideoInSettings": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DefaultBrowserVideoInSettings" - ] - } - ] - } - ], "IOSDiscoverFeedSportCard": [ { "platforms": [ @@ -9576,10 +9819,12 @@ ], "experiments": [ { - "name": "Enabled_FFR_20240409", + "name": "Enabled_FFR_20240419", "params": { "IOSDockingPromoExperimentType": "1", + "IOSDockingPromoNewUserInactiveThreshold": "24h", "IOSDockingPromoNewUserInactiveThresholdHours": "24", + "IOSDockingPromoOldUserInactiveThreshold": "72h", "IOSDockingPromoOldUserInactiveThresholdHours": "72" }, "enable_features": [ @@ -9587,7 +9832,7 @@ ] }, { - "name": "Enabled_FRE_20240409", + "name": "Enabled_FRE_20240419", "params": { "IOSDockingPromoExperimentType": "2" }, @@ -9596,10 +9841,12 @@ ] }, { - "name": "Enabled_Beta_FFR_20240409", + "name": "Enabled_Beta_FFR_20240419", "params": { "IOSDockingPromoExperimentType": "1", + "IOSDockingPromoNewUserInactiveThreshold": "12h", "IOSDockingPromoNewUserInactiveThresholdHours": "12", + "IOSDockingPromoOldUserInactiveThreshold": "24h", "IOSDockingPromoOldUserInactiveThresholdHours": "24" }, "enable_features": [ @@ -9607,7 +9854,7 @@ ] }, { - "name": "Enabled_Beta_FRE_20240409", + "name": "Enabled_Beta_FRE_20240419", "params": { "IOSDockingPromoExperimentType": "2" }, @@ -9616,10 +9863,12 @@ ] }, { - "name": "Enabled_Canary_Dev_FFR_20240409", + "name": "Enabled_Canary_Dev_FFR_20240419", "params": { "IOSDockingPromoExperimentType": "1", + "IOSDockingPromoNewUserInactiveThreshold": "6h", "IOSDockingPromoNewUserInactiveThresholdHours": "6", + "IOSDockingPromoOldUserInactiveThreshold": "12h", "IOSDockingPromoOldUserInactiveThresholdHours": "12" }, "enable_features": [ @@ -9627,7 +9876,7 @@ ] }, { - "name": "Enabled_Canary_Dev_FRE_20240409", + "name": "Enabled_Canary_Dev_FRE_20240419", "params": { "IOSDockingPromoExperimentType": "2" }, @@ -9668,21 +9917,6 @@ ] } ], - "IOSEnableViewportIntents": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableViewportIntents" - ] - } - ] - } - ], "IOSFastApplicationWillTerminate": [ { "platforms": [ @@ -9795,29 +10029,6 @@ ] } ], - "IOSIPHForSafariSwitcher": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "History", - "params": { - "availability": "any", - "event_1": "name:history_on_overflow_menu_trigger;comparator:<2;window:365;storage:365", - "event_trigger": "name:history_on_overflow_menu_trigger;comparator:<1;window:7;storage:7", - "event_used": "name:history_on_overflow_menu_used;comparator:<1;window:3650;storage:3650", - "session_rate": "<1" - }, - "enable_features": [ - "IPHForSafariSwitcher", - "IPH_iOSHistoryOnOverflowMenuFeature" - ] - } - ] - } - ], "IOSKeepsRenderProcessAlive": [ { "platforms": [ @@ -9870,10 +10081,29 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_20240419", "enable_features": [ "EnableMeasurementsExperience" ] + }, + { + "name": "MeasurementsOnly_20240419", + "enable_features": [ + "EnableMeasurementsExperience" + ] + }, + { + "name": "ViewportOnly_20240419", + "enable_features": [ + "EnableViewportIntents" + ] + }, + { + "name": "MeasurementsAndViewport_20240419", + "enable_features": [ + "EnableMeasurementsExperience", + "EnableViewportIntents" + ] } ] } @@ -9896,21 +10126,6 @@ ] } ], - "IOSOfflinePageRefactoring": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseLoadSimulatedRequestForErrorPageNavigation" - ] - } - ] - } - ], "IOSOverflowMenuCustomization": [ { "platforms": [ @@ -9956,7 +10171,7 @@ ] } ], - "IOSSaveToPhotos": [ + "IOSSaveUsernameInUff": [ { "platforms": [ "ios" @@ -9965,7 +10180,7 @@ { "name": "Enabled", "enable_features": [ - "IOSSaveToPhotos" + "IosSaveUsernameInUff" ] } ] @@ -10001,6 +10216,21 @@ ] } ], + "IOSStickyAutofillAndPasswordInfobars": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillStickyInfobarIos" + ] + } + ] + } + ], "IOSTFLiteLanguageDetection": [ { "platforms": [ @@ -10047,6 +10277,21 @@ ] } ], + "IOSTabGroupSync": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TabGroupSync" + ] + } + ] + } + ], "IOSTabResumption": [ { "platforms": [ @@ -10152,16 +10397,17 @@ ], "experiments": [ { - "name": "enabled_proxy_a_ip_protection_phase_02_16_2024", + "name": "enabled_proxy_a_ip_protection_phase_04_19_2024", "params": { - "IpPrivacyAuthTokenCacheBatchSize": "1", - "IpPrivacyAuthTokenCacheLowWaterMark": "1", - "IpPrivacyDirectOnly": "true", + "IpPrivacyBsaEnablePrivacyPass": "true", + "IpPrivacyDirectOnly": "false", + "IpPrivacyIncludeOAuthTokenInGetProxyConfig": "true", "IpPrivacyTokenServer": "https://phosphor-pa.googleapis.com", - "IpPrivacyTokenServerGetInitialDataPath": "/v1/ipblinding/darklaunch/getInitialData", + "IpPrivacyTokenServerGetInitialDataPath": "/v1/ipblinding/getInitialData", "IpPrivacyTokenServerGetProxyConfigPath": "/v1/ipblinding/getProxyConfig", - "IpPrivacyTokenServerGetTokensPath": "/v1/ipblinding/darklaunch/auth", - "MaskedDomainListExperimentalVersion": "3c" + "IpPrivacyTokenServerGetTokensPath": "/v1/ipblinding/auth", + "IpPrivacyUseProxyChains": "true", + "MaskedDomainListExperimentalVersion": "rc0" }, "enable_features": [ "EnableIpPrivacyProxy", @@ -10218,48 +10464,6 @@ ] } ], - "ImageServiceObserveSyncDownloadStatus": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ImageServiceObserveSyncDownloadStatus" - ], - "disable_features": [ - "SyncPollImmediatelyOnEveryStartup2" - ] - } - ] - } - ], - "ImprovedDownloadPageWarnings": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ImprovedDownloadPageWarnings" - ] - } - ] - } - ], "ImprovedSemanticsActivityIndicators": [ { "platforms": [ @@ -10279,28 +10483,6 @@ ] } ], - "IncognitoNtpRevamp": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "fuchsia", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "IncognitoNtpRevamp" - ] - } - ] - } - ], "IncognitoReauthenticationForAndroid": [ { "platforms": [ @@ -10316,6 +10498,21 @@ ] } ], + "IncognitoScreenshot": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IncognitoScreenshot" + ] + } + ] + } + ], "IncreaseCoookieAccesCacheSize": [ { "platforms": [ @@ -10755,6 +10952,54 @@ ] } ], + "KioskHeartbeatsViaERP": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "KioskHeartbeatsViaERP" + ] + } + ] + } + ], + "LCPPDeferUnusedPreload": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "EnableWithPostTask_20240426", + "params": { + "load_timing": "post_task" + }, + "enable_features": [ + "LCPPDeferUnusedPreload" + ] + }, + { + "name": "EnableWithLCPTimingPredictor_20240426", + "params": { + "load_timing": "lcp_timing_predictor" + }, + "enable_features": [ + "LCPPDeferUnusedPreload" + ] + } + ] + } + ], "LCPPFontURLPredictor": [ { "platforms": [ @@ -10769,7 +11014,7 @@ { "name": "Enabled", "params": { - "lcpp_font_prefetch_threshold": "1.0", + "lcpp_font_prefetch_threshold": "1.1", "lcpp_font_url_frequency_threshold": "0.1", "lcpp_max_font_url_count_per_origin": "5", "lcpp_max_font_url_length": "1024", @@ -10783,7 +11028,7 @@ "name": "WithPrefetch", "params": { "lcpp_enable_font_prefetch": "true", - "lcpp_font_prefetch_threshold": "1.0", + "lcpp_font_prefetch_threshold": "1.1", "lcpp_font_url_frequency_threshold": "0.1", "lcpp_max_font_url_count_per_origin": "5", "lcpp_max_font_url_length": "1024", @@ -10796,6 +11041,38 @@ ] } ], + "LCPPImageLoadingPriority": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "MediumPriority_20240418", + "params": { + "lcpp_adjust_image_load_priority": "true", + "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" + }, + "enable_features": [ + "LCPCriticalPathPredictor" + ] + } + ] + } + ], "LCPPLazyLoadImagePreload": [ { "platforms": [ @@ -10833,7 +11110,33 @@ { "name": "Enabled", "params": { - "lcpp_multiple_key_max_path_length": "15" + "lcpp_max_hosts_to_track": "100", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "default" + }, + "enable_features": [ + "LCPPMultipleKey" + ] + }, + { + "name": "WithMaxHost1000", + "params": { + "lcpp_max_hosts_to_track": "1000", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "default" + }, + "enable_features": [ + "LCPPMultipleKey" + ] + }, + { + "name": "EnabledKeyStat", + "params": { + "lcpp_max_hosts_to_track": "100", + "lcpp_multiple_key_histogram_sliding_window_size": "1000", + "lcpp_multiple_key_max_histogram_buckets": "10", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "lcpp_key_stat" }, "enable_features": [ "LCPPMultipleKey" @@ -10877,21 +11180,6 @@ ] } ], - "LanguagePacksBasePack": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "HandwritingLibraryDlc" - ] - } - ] - } - ], "LargeFakeboxWithColorIconsIOS": [ { "platforms": [ @@ -10949,6 +11237,21 @@ ] } ], + "LazyBindJsInjection": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LazyBindJsInjection" + ] + } + ] + } + ], "LeakSkiaEventTracerAtExit": [ { "platforms": [ @@ -11019,6 +11322,21 @@ ] } ], + "LinkCrossDeviceDogFoodFeedback": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LinkCrossDeviceDogFoodFeedback" + ] + } + ] + } + ], "LinkPreview": [ { "platforms": [ @@ -11189,12 +11507,14 @@ ], "experiments": [ { - "name": "PreviousBest_20240305", + "name": "PreviousBest_20240501", "params": { "delay_async_exec_opt_out_auto_fetch_priority_hint": "false", "delay_async_exec_opt_out_high_fetch_priority_hint": "false", "delay_async_exec_opt_out_low_fetch_priority_hint": "false", "low_pri_async_exec_cross_site_only": "true", + "low_pri_async_exec_exclude_document_write": "false", + "low_pri_async_exec_exclude_non_parser_inserted": "false", "low_pri_async_exec_feature_limit": "3s", "low_pri_async_exec_lower_task_priority": "best_effort", "low_pri_async_exec_main_frame_only": "true", @@ -11305,7 +11625,7 @@ ] } ], - "MagicStackRemoveGradientView": [ + "MagicStackGradientView": [ { "platforms": [ "ios" @@ -11635,6 +11955,46 @@ ] } ], + "MemoryPurgeInBackground": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "ShortDelay", + "params": { + "memory_purge_background_max_delay": "45s", + "memory_purge_background_min_delay": "30s" + }, + "enable_features": [ + "MemoryPurgeInBackground" + ] + }, + { + "name": "LongDelay", + "params": { + "memory_purge_background_max_delay": "11m", + "memory_purge_background_min_delay": "10m" + }, + "enable_features": [ + "MemoryPurgeInBackground" + ] + }, + { + "name": "Disabled", + "disable_features": [ + "MemoryPurgeInBackground" + ] + } + ] + } + ], "MessagePumpEpoll": [ { "platforms": [ @@ -11726,7 +12086,7 @@ { "name": "Enabled", "enable_features": [ - "MetricsUMATracingCalculationReduction" + "MetricsTracingCalculationReduction" ] } ] @@ -11787,21 +12147,6 @@ ] } ], - "MigrateSyncingUserToSignedIn": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MigrateSyncingUserToSignedIn" - ] - } - ] - } - ], "MinorModeRestrictionsForHistorySyncOptInAndroidStudy": [ { "platforms": [ @@ -11844,12 +12189,16 @@ ], "experiments": [ { - "name": "LowDeadline", + "name": "Deadline2000_WithoutSystem_WithPrefetch_20240430_M124+", "params": { - "MinorModeRestrictionsFetchDeadlineMs": "1000" + "MinorModeRestrictionsFetchDeadlineMs": "2000" }, "enable_features": [ - "MinorModeRestrictionsForHistorySyncOptIn" + "MinorModeRestrictionsForHistorySyncOptIn", + "PrefetchSystemCapabilitiesOnFirstRun" + ], + "disable_features": [ + "UseSystemCapabilitiesForMinorModeRestrictions" ] } ] @@ -11961,21 +12310,6 @@ ] } ], - "MojoIpczMac": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled_1", - "enable_features": [ - "MojoIpcz" - ] - } - ] - } - ], "MojoLargerDataPipeAllocationSize": [ { "platforms": [ @@ -12003,7 +12337,7 @@ { "platforms": [ "android", - "ios", + "android_webview", "linux", "mac", "windows" @@ -12113,6 +12447,21 @@ ] } ], + "NavBarColorMatchesTabBackground": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NavBarColorMatchesTabBackground" + ] + } + ] + } + ], "NavigationPredictorIntersectionObserver": [ { "platforms": [ @@ -12120,8 +12469,10 @@ ], "experiments": [ { - "name": "Enabled_20240328", + "name": "Enabled_20240503", "params": { + "intersection_observer_delay": "500ms", + "max_intersection_observations": "345", "random_anchor_sampling_period": "1" }, "enable_features": [ @@ -12373,28 +12724,6 @@ ] } ], - "NonStandardAppearanceValuesLowUsage": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Disabled", - "disable_features": [ - "NonStandardAppearanceValuesLowUsage" - ] - } - ] - } - ], "NormalMaxItemsInCacheForSoftware": [ { "platforms": [ @@ -12565,41 +12894,6 @@ ] } ], - "NtpRealboxCr23": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_Icons_Layout_HoverFill", - "enable_features": [ - "NtpRealboxCr23ExpandedStateIcons", - "NtpRealboxCr23ExpandedStateLayout", - "NtpRealboxCr23HoverFillShape" - ] - }, - { - "name": "Enabled_Icons_Layout", - "enable_features": [ - "NtpRealboxCr23ExpandedStateIcons", - "NtpRealboxCr23ExpandedStateLayout" - ] - }, - { - "name": "Enabled_Icons", - "enable_features": [ - "NtpRealboxCr23ExpandedStateIcons" - ] - } - ] - } - ], "NtpTabResumption": [ { "platforms": [ @@ -12654,6 +12948,21 @@ ] } ], + "OmniboxAsyncViewInflation": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OmniboxAsyncViewInflation" + ] + } + ] + } + ], "OmniboxBundledExperimentV1": [ { "platforms": [ @@ -12758,7 +13067,7 @@ "name": "EnabledCarouselAboveTrends", "params": { "QueryTilesShowAboveTrends": "true", - "QueryTilesShowAsCarousel": "true", + "QueryTilesShowAsCarousel": "false", "experiment_tag": "{maxLevels: 1, rankTiles: true}" }, "enable_features": [ @@ -12808,21 +13117,6 @@ ] } ], - "OmniboxMatchToolbarAndStatusBarColor": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OmniboxMatchToolbarAndStatusBarColor" - ] - } - ] - } - ], "OmniboxOnClobberFocusTypeOnContent": [ { "platforms": [ @@ -13052,21 +13346,6 @@ ] } ], - "OmniboxTypedSuggestionGrouping": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OmniboxGroupingFrameworkForNonZPS" - ] - } - ] - } - ], "OmniboxZeroSuggestPrefetchingAndroid": [ { "platforms": [ @@ -13161,12 +13440,6 @@ { "name": "EnabledWithNormalLanguage", "params": { - "probability": "1", - "probability_vector": "1.0,1.0,1.0", - "prompt_disposition_reason_filter": "DefaultFallback", - "request_type_filter": "Geolocation,VideoCapture,AudioCapture", - "survey_display_time": "OnPromptResolved", - "trigger_id": "WZp2sfiwg0ugnJ3q1cK0VHG6m12V,zrDfttnJe0ugnJ3q1cK0QcoodXoN,WokA6U5FP0ugnJ3q1cK0VYJQ93c4", "use_stronger_prompt_language": "false" }, "enable_features": [ @@ -13177,12 +13450,6 @@ { "name": "EnabledWithStrongLanguage", "params": { - "probability": "1", - "probability_vector": "1.0,1.0,1.0", - "prompt_disposition_reason_filter": "DefaultFallback", - "request_type_filter": "Geolocation,VideoCapture,AudioCapture", - "survey_display_time": "OnPromptResolved", - "trigger_id": "Xrna7ZFaz0ugnJ3q1cK0Nn4Zgupz,z1o2b2qU70ugnJ3q1cK0XcJwgRg4,1E7SQhG9X0ugnJ3q1cK0YHQnpSTL", "use_stronger_prompt_language": "true" }, "enable_features": [ @@ -13211,6 +13478,41 @@ "ActiveContentSettingExpiry", "OneTimePermission" ] + }, + { + "name": "EnabledWithAllowOnEveryVisitAsFirstButton", + "params": { + "show_allow_always_as_first_button": "true", + "use_stronger_prompt_language": "true" + }, + "enable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission" + ] + }, + { + "name": "EnabledWithAllowWhileVisitingAsFirstButton", + "params": { + "show_allow_always_as_first_button": "true", + "use_stronger_prompt_language": "true", + "use_while_visiting_language": "true" + }, + "enable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission" + ] + }, + { + "name": "EnabledWithAllowWhileVisitingAsSecondButton", + "params": { + "show_allow_always_as_first_button": "false", + "use_stronger_prompt_language": "true", + "use_while_visiting_language": "true" + }, + "enable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission" + ] } ] } @@ -13224,13 +13526,13 @@ { "name": "EnabledWithNormalLanguage", "params": { - "experimental_custom_invitation_arm_trigger_id": "tZMcjst2x0tK1KeaPYj0VbPmvceJ,bpnHbhSrK0tK1KeaPYj0RBC9zv7H,ZDjpUDFx20tK1KeaPYj0WbM2hHXy", + "experimental_custom_invitation_arm_trigger_id": "eaHr88umj0tK1KeaPYj0YkhJEi1Y,8U6CRfLYU0tK1KeaPYj0RbTHRpNZ,qrWTeaJaK0tK1KeaPYj0XjFWabba", "probability": "1", "probability_vector": "0.5,1.0,1.0", "prompt_disposition_reason_filter": "DefaultFallback", "request_type_filter": "Geolocation,VideoCapture,AudioCapture", "survey_display_time": "OnPromptResolved", - "trigger_id": "xTNFzsgeH0tK1KeaPYj0VueEfPNg,rMwYPzTTj0tK1KeaPYj0XB5xXsRF,5XkVTH91f0tK1KeaPYj0SJhtw5pX", + "trigger_id": "hCatPbt6B0tK1KeaPYj0WXqMjcvX,89BwvKxbJ0tK1KeaPYj0NtK7Ybn8,3fTPt7XMF0tK1KeaPYj0TXd8QN47", "use_stronger_prompt_language": "false" }, "enable_features": [ @@ -13240,7 +13542,7 @@ ] }, { - "name": "HatsControl_20240208", + "name": "HatsControl", "params": { "experimental_custom_invitation_arm_trigger_id": "Db6NddebR0tK1KeaPYj0UzKHA4zC,sRE9DYcBN0tK1KeaPYj0PtzgM3xw,t6mgdAXqK0tK1KeaPYj0VHRxVpBT", "probability": "1", @@ -13259,7 +13561,7 @@ ] }, { - "name": "EnabledWithStrongLanguage_20240208", + "name": "EnabledWithStrongLanguage", "params": { "experimental_custom_invitation_arm_trigger_id": "eaHr88umj0tK1KeaPYj0YkhJEi1Y,8U6CRfLYU0tK1KeaPYj0RbTHRpNZ,qrWTeaJaK0tK1KeaPYj0XjFWabba", "probability": "1", @@ -13275,6 +13577,53 @@ "OneTimePermission", "PermissionsPromptSurvey" ] + }, + { + "name": "Control", + "disable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission", + "PermissionsPromptSurvey" + ] + }, + { + "name": "EnabledWithAllowOnEveryVisitAsFirstButton", + "params": { + "experimental_custom_invitation_arm_trigger_id": "nDDiJNFrQ0tK1KeaPYj0R9NRSBEm,NBn5wUuPR0tK1KeaPYj0XpG6yifA,LvQ3ywBFy0tK1KeaPYj0X474g3gp", + "probability": "1", + "probability_vector": "0.5,1.0,1.0", + "prompt_disposition_reason_filter": "DefaultFallback", + "request_type_filter": "Geolocation,VideoCapture,AudioCapture", + "show_allow_always_as_first_button": "true", + "survey_display_time": "OnPromptResolved", + "trigger_id": "987xHCa770tK1KeaPYj0UE9kej8g,iTZrdKPCv0tK1KeaPYj0YTA7ooTP,Z5Gbxz1BA0tK1KeaPYj0ToLe1txW", + "use_stronger_prompt_language": "true" + }, + "enable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission", + "PermissionsPromptSurvey" + ] + }, + { + "name": "EnabledWithAllowWhileVisitingAsFirstButton", + "params": { + "experimental_custom_invitation_arm_trigger_id": "7maHuvQzn0tK1KeaPYj0Q9rdJDda,KzHiqHzxP0tK1KeaPYj0XSzYX5y2,DXfHq8LEH0tK1KeaPYj0PMxrXHu1", + "probability": "1", + "probability_vector": "0.5,1.0,1.0", + "prompt_disposition_reason_filter": "DefaultFallback", + "request_type_filter": "Geolocation,VideoCapture,AudioCapture", + "show_allow_always_as_first_button": "true", + "survey_display_time": "OnPromptResolved", + "trigger_id": "bCKnj4pzu0tK1KeaPYj0UG86EvNX,anf8vbQh20tK1KeaPYj0QSBJzzY9,p9ppMFjWE0tK1KeaPYj0RB2a6d8D", + "use_stronger_prompt_language": "true", + "use_while_visiting_language": "true" + }, + "enable_features": [ + "ActiveContentSettingExpiry", + "OneTimePermission", + "PermissionsPromptSurvey" + ] } ] } @@ -13321,6 +13670,26 @@ ] } ], + "OptimizeStaticAnimationProperties": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "StaticAnimationOptimization" + ] + } + ] + } + ], "OptionalToolbarButton": [ { "platforms": [ @@ -13328,17 +13697,12 @@ ], "experiments": [ { - "name": "Segmentation_Auto_Finale_20220418", - "params": { - "default_segment": "new-tab", - "disable_ui": "false", - "ignore_segmentation_results": "false", - "min_version_adaptive": "3", - "segment_selection_ttl_days": "56", - "show_ui_only_after_ready": "true" - }, + "name": "Segmentation_5_Button_ML_Model_Aggressive_20240409", "enable_features": [ - "AdaptiveButtonInTopToolbarCustomizationV2" + "AdaptiveButtonInTopToolbarAddToBookmarks", + "AdaptiveButtonInTopToolbarCustomizationV2", + "AdaptiveButtonInTopToolbarTranslate", + "SegmentationPlatformAdaptiveToolbarV2Feature" ] } ] @@ -13426,27 +13790,6 @@ ] } ], - "PMProcessPriorityPolicy": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PMProcessPriorityPolicy" - ] - } - ] - } - ], "PageAllocatorRetryOnCommitFailure": [ { "platforms": [ @@ -13545,6 +13888,27 @@ ] } ], + "PaintHoldingOOPIF": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PaintHoldingForIframes" + ] + } + ] + } + ], "ParkableImages": [ { "platforms": [ @@ -13568,6 +13932,27 @@ ] } ], + "ParkableStringExperiments": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20240415", + "enable_features": [ + "LessAggressiveParkableString", + "UseZstdForParkableStrings" + ] + } + ] + } + ], "PartitionAllocAdvancedMemorySafetyChecks": [ { "platforms": [ @@ -13584,7 +13969,7 @@ { "name": "Enabled", "params": { - "PartitionAllocSchedulerLoopQuarantineCapacity": "1048576" + "PartitionAllocSchedulerLoopQuarantineBranchCapacity": "262144" }, "enable_features": [ "PartitionAllocSchedulerLoopQuarantine", @@ -13910,94 +14295,6 @@ "windows" ], "experiments": [ - { - "name": "EnabledWithTrustedAdvice", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "Vm6DB1ki50ugnJ3q1cK0SpkrheAJ", - "password_generation_variation": "trusted_advice", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithSafetyFirst", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "sD7hmDAoo0ugnJ3q1cK0VQ2Y8p6e", - "password_generation_variation": "safety_first", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithTrySomethingNew", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "6QssdASS10ugnJ3q1cK0RUK4HnYU", - "password_generation_variation": "try_something_new", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithConvenience", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "W23VEAHCT0ugnJ3q1cK0SaPHa9J4", - "password_generation_variation": "convenience", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithCrossDevice", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "fRjzkFjzZ0ugnJ3q1cK0RWYBnkGK", - "password_generation_variation": "cross_device", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithChunkPassword", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "gnz68PSiB0ugnJ3q1cK0Y7PcR8ix", - "password_generation_variation": "chunk_password", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithNudgePassword", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "B8yvCYL9f0ugnJ3q1cK0NXtJvPAJ", - "password_generation_variation": "nudge_password", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, - { - "name": "EnabledWithEditPassword", - "params": { - "PasswordGenerationExperimentSurveyTriggedId": "4yPTnSKPN0ugnJ3q1cK0YJ18dkNR", - "password_generation_variation": "edit_password", - "probability": "0.25" - }, - "enable_features": [ - "PasswordGenerationExperiment" - ] - }, { "name": "EnabledWithStrongLabel", "params": { @@ -14009,6 +14306,118 @@ "PasswordStrongLabel" ] }, + { + "name": "EnabledWithTrustedAdvice", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "Vm6DB1ki50ugnJ3q1cK0SpkrheAJ", + "password_generation_variation": "trusted_advice", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithSafetyFirst", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "sD7hmDAoo0ugnJ3q1cK0VQ2Y8p6e", + "password_generation_variation": "safety_first", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithTrySomethingNew", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "6QssdASS10ugnJ3q1cK0RUK4HnYU", + "password_generation_variation": "try_something_new", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithConvenience", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "W23VEAHCT0ugnJ3q1cK0SaPHa9J4", + "password_generation_variation": "convenience", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithCrossDevice", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "fRjzkFjzZ0ugnJ3q1cK0RWYBnkGK", + "password_generation_variation": "cross_device", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithChunkPassword", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "gnz68PSiB0ugnJ3q1cK0Y7PcR8ix", + "password_generation_variation": "chunk_password", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithNudgePassword", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "B8yvCYL9f0ugnJ3q1cK0NXtJvPAJ", + "password_generation_variation": "nudge_password", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, + { + "name": "EnabledWithEditPassword", + "params": { + "PasswordGenerationExperimentSurveyTriggedId": "4yPTnSKPN0ugnJ3q1cK0YJ18dkNR", + "password_generation_variation": "edit_password", + "probability": "0.25" + }, + "enable_features": [ + "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" + ] + }, { "name": "Baseline", "params": { @@ -14017,6 +14426,9 @@ }, "enable_features": [ "PasswordGenerationExperiment" + ], + "disable_features": [ + "PasswordStrongLabel" ] } ] @@ -14040,27 +14452,6 @@ ] } ], - "PasswordSharing": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SendPasswords" - ] - } - ] - } - ], "PasswordSharingBackendAndroid": [ { "platforms": [ @@ -14098,6 +14489,27 @@ ] } ], + "PasswordSharingSendingUI": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IPH_PasswordSharingFeature", + "SendPasswords" + ] + } + ] + } + ], "PasswordSuggestionBottomSheetV2": [ { "platforms": [ @@ -14306,6 +14718,25 @@ ] } ], + "PickerUI": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ModifierSplit", + "ModifierSplitDogfood", + "Picker", + "PickerDogfood" + ] + } + ] + } + ], "PlusAddressFallbackFromContextMenu": [ { "platforms": [ @@ -14327,6 +14758,26 @@ ] } ], + "PlusAddressRefreshDesktopModal": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PlusAddressRefresh", + "PlusAddressRefreshUiInDesktopModal" + ] + } + ] + } + ], "PlusAddressesExperiment": [ { "platforms": [ @@ -14342,7 +14793,7 @@ { "name": "Enabled", "enable_features": [ - "AutofillEnableEmailHeuristicOnlyAddressForms" + "PlusAddressesEnabled" ] } ] @@ -14415,9 +14866,32 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_20240502", "enable_features": [ - "OnPreFreezeTrimMemory" + "OnPreFreezeMemoryTrim" + ] + } + ] + } + ], + "PreInitializePageAndFrameForSVGImage": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "max_pre_initialize_count": "3" + }, + "enable_features": [ + "PreInitializePageAndFrameForSVGImage" ] } ] @@ -14543,23 +15017,6 @@ ] } ], - "PrefetchRedirects": [ - { - "platforms": [ - "android_webview", - "chromeos", - "chromeos_lacros" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrefetchRedirects" - ] - } - ] - } - ], "PrefetchReusable": [ { "platforms": [ @@ -14581,55 +15038,6 @@ ] } ], - "PreinstalledWebAppWindowExperiment": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros" - ], - "experiments": [ - { - "name": "EnabledWithWindow_v1", - "params": { - "user_group": "window" - }, - "enable_features": [ - "PreinstalledWebAppWindowExperiment" - ] - }, - { - "name": "Disabled_v1", - "disable_features": [ - "PreinstalledWebAppWindowExperiment" - ] - }, - { - "name": "Enabled_v1", - "enable_features": [ - "PreinstalledWebAppWindowExperiment" - ] - }, - { - "name": "EnabledWithControl_v1", - "params": { - "user_group": "control" - }, - "enable_features": [ - "PreinstalledWebAppWindowExperiment" - ] - }, - { - "name": "EnabledWithTab_v1", - "params": { - "user_group": "tab" - }, - "enable_features": [ - "PreinstalledWebAppWindowExperiment" - ] - } - ] - } - ], "PreloadCookies": [ { "platforms": [ @@ -14663,10 +15071,44 @@ ], "experiments": [ { - "name": "Enable", + "name": "preload-on-make-contents", + "params": { + "preload-mode": "preload-on-make-contents" + }, "enable_features": [ "PreloadTopChromeWebUI" ] + }, + { + "name": "preload-on-warmup", + "params": { + "preload-mode": "preload-on-warmup" + }, + "enable_features": [ + "PreloadTopChromeWebUI" + ] + } + ] + } + ], + "PreloadingHeuristicsMLModel": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20240501_NoEnact", + "params": { + "enact_candidates": "false" + }, + "enable_features": [ + "PreloadingHeuristicsMLModel" + ] } ] } @@ -15083,26 +15525,6 @@ ] } ], - "PrivacySandboxEnrollment": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "PrivacySandboxAttestationsUserBlockingPriority", - "enable_features": [ - "PrivacySandboxAttestationsUserBlockingPriority" - ] - } - ] - } - ], "PrivacySandboxHatsForDesktopM1": [ { "platforms": [ @@ -15254,6 +15676,27 @@ ] } ], + "PrivateAggregationApiFilteringIds": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrivateAggregationApiFilteringIds" + ] + } + ] + } + ], "PrivateStateTokens": [ { "platforms": [ @@ -15467,21 +15910,16 @@ ] } ], - "ProtectedAudienceBandAKeyPrefetchStudy": [ + "ProtectEncryptionKey": [ { "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "FledgePrefetchBandAKeys" + "ProtectEncryptionKey" ] } ] @@ -15521,6 +15959,26 @@ ] } ], + "ProtectedAudienceScoreAdRenderSize": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RenderSizeInScoreAdBrowserSignals" + ] + } + ] + } + ], "ProtectedAudienceStoreBandAKeysInDatabaseStudy": [ { "platforms": [ @@ -15605,27 +16063,6 @@ ] } ], - "ProtectedAudiencesInterestGroupCacheStudy": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FledgeDelayPostAuctionInterestGroupUpdate", - "FledgeUseInterestGroupCache" - ] - } - ] - } - ], "ProtectedAudiencesKAnonymityEnforcementStudy": [ { "platforms": [ @@ -15667,6 +16104,46 @@ ] } ], + "ProtectedAudiencesPermitCrossOriginTrustedSignals": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FledgePermitCrossOriginTrustedSignals" + ] + } + ] + } + ], + "ProtectedAudiencesRealTimeReporting": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FledgeRealTimeReporting" + ] + } + ] + } + ], "ProtectedAudiencesReportingTimeout": [ { "platforms": [ @@ -15688,28 +16165,7 @@ ] } ], - "ProtectedAudiencesSampleDebugReportsStudy": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FledgeSampleDebugReports" - ] - } - ] - } - ], - "ProtectedAudiencesSplitTrustedSignalsFetchingURL": [ + "ProtectedAudiencesUpdateIfOlderThanMs": [ { "platforms": [ "android", @@ -15723,7 +16179,7 @@ { "name": "Enabled", "enable_features": [ - "FledgeSplitTrustedSignalsFetchingURL" + "InterestGroupUpdateIfOlderThan" ] } ] @@ -15974,6 +16430,25 @@ ] } ], + "ReadAnythingDocsIntegrationRollout": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "ReadAnythingDocsIntegration" + ] + } + ] + } + ], "ReadAnythingIPHRollout": [ { "platforms": [ @@ -16157,6 +16632,48 @@ ] } ], + "ReduceAcceptLanguage": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ReduceAcceptLanguage" + ] + } + ] + } + ], + "ReduceCpuUtilization2": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ReduceCpuUtilization2" + ] + } + ] + } + ], "ReduceIPAddressChangeNotification": [ { "platforms": [ @@ -16228,6 +16745,25 @@ ] } ], + "RelatedSearchesViaZPSPrefetchingDesktop": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_RelatedSearchesIntegration", + "enable_features": [ + "ExtractRelatedSearchesFromPrefetchedZPSResponse" + ] + } + ] + } + ], "RemotePageMetadataAndroid": [ { "platforms": [ @@ -16298,6 +16834,21 @@ ] } ], + "RemoveDetectPortalFromChrome": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RemoveDetectPortalFromChrome" + ] + } + ] + } + ], "RemoveFontLinkFallbacks": [ { "platforms": [ @@ -16477,26 +17028,6 @@ ] } ], - "ResourceAttributionValidation": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20240304", - "enable_features": [ - "ResourceAttributionValidation" - ] - } - ] - } - ], "RestartToGainAccessToKeychain": [ { "platforms": [ @@ -16512,6 +17043,22 @@ ] } ], + "RestoreSignedInAccountAndSettingsFromBackupAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledWithMetrics_20240507", + "enable_features": [ + "RestoreSignedInAccountAndSettingsFromBackup", + "UpdateMetricsServicesStateInRestore" + ] + } + ] + } + ], "RetryGetVideoCaptureDeviceInfos": [ { "platforms": [ @@ -16542,6 +17089,25 @@ ] } ], + "RichInlineAutocompleteIOS": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "RichAutocompletionAutocompleteShortcutTextMinChar": "3", + "RichAutocompletionParam": "TextField" + }, + "enable_features": [ + "OmniboxRichAutocompletion" + ] + } + ] + } + ], "RunPerformanceManagerOnMainThreadSync": [ { "platforms": [ @@ -16555,8 +17121,9 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnabledBoth", "enable_features": [ + "PMProcessPriorityPolicy", "RunPerformanceManagerOnMainThreadSync" ] } @@ -16605,7 +17172,6 @@ { "platforms": [ "android", - "android_webview", "chromeos", "chromeos_lacros", "linux", @@ -16622,6 +17188,24 @@ ] } ], + "SafeBrowsingDeepScanningPromptRemoval": [ + { + "platforms": [ + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafeBrowsingDeepScanningPromptRemoval" + ] + } + ] + } + ], "SafeBrowsingDelayedWarnings": [ { "platforms": [ @@ -16637,6 +17221,25 @@ ] } ], + "SafeBrowsingDownloadReportWithoutUserDecision": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DownloadReportWithoutUserDecision" + ] + } + ] + } + ], "SafeBrowsingEncryptedArchivesMetadata": [ { "platforms": [ @@ -16659,14 +17262,11 @@ "SafeBrowsingHashPrefixRealTimeLookups": [ { "platforms": [ - "ios" + "android" ], "experiments": [ { "name": "Enabled", - "params": { - "SafeBrowsingHashPrefixRealTimeLookupsRelayUrl": "https://google-ohttp-relay-safebrowsing.fastly-edge.com/" - }, "enable_features": [ "SafeBrowsingHashPrefixRealTimeLookups" ] @@ -16675,12 +17275,13 @@ }, { "platforms": [ - "android" + "android_webview" ], "experiments": [ { "name": "Enabled", "enable_features": [ + "SafeBrowsingAsyncRealTimeCheck", "SafeBrowsingHashPrefixRealTimeLookups" ] } @@ -16823,6 +17424,26 @@ ] } ], + "SafetyHubAbusiveNotificationRevocation": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SafetyHubAbusiveNotificationRevocation" + ] + } + ] + } + ], "ScalableIphStudy": [ { "platforms": [ @@ -17878,6 +18499,21 @@ ] } ], + "SeaPenTextInput": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SeaPenTextInput" + ] + } + ] + } + ], "SearchEnginePromoDialogRewrite": [ { "platforms": [ @@ -17920,6 +18556,9 @@ "experiments": [ { "name": "Enabled", + "params": { + "omnibox_allowed_package_names": "org.chromium.customtabsclient" + }, "enable_features": [ "SearchInCCT" ] @@ -18405,6 +19044,26 @@ ] } ], + "ShowWebauthnSuggestionsOnAutofocus": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ShowWebauthnSuggestionsOnAutofocus" + ] + } + ] + } + ], "SidePanelCompanionDesktopM116Plus": [ { "platforms": [ @@ -18585,7 +19244,8 @@ "SkiaGraphite": [ { "platforms": [ - "mac" + "mac", + "windows" ], "experiments": [ { @@ -18634,44 +19294,6 @@ ] } ], - "SmallerInterestArea": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Smaller_0500", - "params": { - "size_in_pixels": "500" - }, - "enable_features": [ - "SmallerInterestArea" - ] - } - ] - } - ], - "SmallerTabStripTitleLimit": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20240122", - "enable_features": [ - "SmallerTabStripTitleLimit" - ] - } - ] - } - ], "SmartZoom": [ { "platforms": [ @@ -18702,6 +19324,22 @@ ] } ], + "SnapGroup": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SnapGroup" + ] + } + ] + } + ], "SnapshotInSwift": [ { "platforms": [ @@ -18892,6 +19530,27 @@ ] } ], + "StreamlineRendererInit": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "StreamlineRendererInit" + ] + } + ] + } + ], "StructuredMetricsExternalMetrics": [ { "platforms": [ @@ -18951,6 +19610,22 @@ ] } ], + "SupervisedUserSkipParentApprovalToInstallExtensionsChromeOS": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableSupervisedUserSkipParentApprovalToInstallExtensions" + ] + } + ] + } + ], "SuppressToolbarCaptures": [ { "platforms": [ @@ -18969,26 +19644,6 @@ ] } ], - "SuspiciousSiteDetectionRTLookups": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SuspiciousSiteDetectionRTLookups" - ] - } - ] - } - ], "SyncIncreaseNudgeDelayForSingleClient": [ { "platforms": [ @@ -19112,24 +19767,6 @@ ] } ], - "TabAndLinkDragDropAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabAndLinkDragDropAndroid" - ], - "disable_features": [ - "TabDragDropAndroid" - ] - } - ] - } - ], "TabAudioMuting": [ { "platforms": [ @@ -19173,6 +19810,22 @@ ] } ], + "TabGroupSyncAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TabGroupPaneAndroid", + "TabGroupSyncAndroid" + ] + } + ] + } + ], "TabGroupsCollapseFreezing": [ { "platforms": [ @@ -19192,6 +19845,26 @@ ] } ], + "TabGroupsSaveUIUpdate": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TabGroupsSaveUIUpdate" + ] + } + ] + } + ], "TabHoverCardImages": [ { "platforms": [ @@ -19241,21 +19914,6 @@ ] } ], - "TabSateFlatBuffer": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20240408", - "enable_features": [ - "TabStateFlatBuffer" - ] - } - ] - } - ], "TabSearchFuzzySearchStudy": [ { "platforms": [ @@ -19320,21 +19978,6 @@ ] } ], - "TabStripLayoutOptimization": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabStripLayoutOptimization" - ] - } - ] - } - ], "TabStripStartupRefactoring": [ { "platforms": [ @@ -19462,6 +20105,28 @@ ] } ], + "ThirdPartyScriptDetection": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ThirdPartyScriptDetection" + ] + } + ] + } + ], "ThreadCacheMinCachedMemoryForPurging": [ { "platforms": [ @@ -19731,6 +20396,22 @@ ] } ], + "TouchpadFastClickStudy": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableFastTouchpadClick" + ] + } + ] + } + ], "TrackingProtection3pcd": [ { "platforms": [ @@ -19951,6 +20632,25 @@ ] } ], + "TurnOffStreamingMediaCachingAlways": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TurnOffStreamingMediaCachingAlways" + ] + } + ] + } + ], "UIEnableSharedImageCacheForGpu": [ { "platforms": [ @@ -20051,7 +20751,6 @@ "name": "Enabled", "enable_features": [ "ClearLoginDatabaseForUPMUsers", - "UnifiedPasswordManagerLocalPasswordsAndroidNoMigration", "UnifiedPasswordManagerLocalPasswordsAndroidWithMigration", "UnifiedPasswordManagerSyncOnlyInGMSCore" ] @@ -20109,7 +20808,7 @@ ] } ], - "UnoDesktopM0": [ + "UnoDesktopM0Full": [ { "platforms": [ "linux", @@ -20120,25 +20819,8 @@ { "name": "Enabled", "enable_features": [ - "UnoDesktop" - ] - } - ] - } - ], - "UnoPhase2FollowUp": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableBatchUploadFromBookmarksManager", - "EnableReviewAccountSettingsPromo", - "HistoryOptInForRestoreShortyAndReSignin", - "LinkAccountSettingsToPrivacyFooter" + "ExplicitBrowserSigninUIOnDesktop", + "SyncEnableContactInfoDataTypeInTransportMode" ] } ] @@ -20293,6 +20975,21 @@ ] } ], + "UseFusedLocationProvider": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseFusedLocationProvider" + ] + } + ] + } + ], "UseGMSCoreForBrandingInfo": [ { "platforms": [ @@ -20448,6 +21145,7 @@ { "platforms": [ "android", + "android_webview", "chromeos", "ios", "linux", @@ -20526,25 +21224,6 @@ ] } ], - "UseZstdForParkableStrings": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseZstdForParkableStrings" - ] - } - ] - } - ], "UserBypassUI": [ { "platforms": [ @@ -20954,6 +21633,50 @@ ] } ], + "V8GCOptimizeSweepForMutator": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "V8GCOptimizeSweepForMutator" + ] + } + ] + } + ], + "V8IdleGcOnContextDisposal": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "V8IdleGcOnContextDisposal" + ] + } + ] + } + ], "V8IntelJCCErratumMitigation": [ { "platforms": [ @@ -21293,6 +22016,34 @@ ] } ], + "V8WasmCodeFlushing": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebAssemblyLiftoffCodeFlushing" + ] + }, + { + "name": "Control", + "disable_features": [ + "WebAssemblyLiftoffCodeFlushing" + ] + } + ] + } + ], "V8WasmInlining": [ { "platforms": [ @@ -21650,6 +22401,27 @@ ] } ], + "ViewTransitionOnNavigation": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ViewTransitionOnNavigation" + ] + } + ] + } + ], "VirtualKeyboardNewHeader": [ { "platforms": [ @@ -21813,6 +22585,24 @@ ] } ], + "WaitForAccountCapabilitiesInSigninIntercept": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "WaitForCapabilitiesWithPreconnect_20240503", + "enable_features": [ + "CustomWebSignInInterceptForSupervisedUsers", + "PreconnectAccountCapabilitiesPostSignin" + ] + } + ] + } + ], "WaitUntilAccessTokenAvailableForClassifyUrl": [ { "platforms": [ @@ -21945,7 +22735,7 @@ { "name": "Enabled", "params": { - "min_gms_core_version_no_dots": "241000000" + "min_gms_core_version_no_dots": "241900000" }, "enable_features": [ "WebAuthenticationAndroidCredMan" @@ -22121,6 +22911,21 @@ ] } ], + "WebRTC-Aec3BufferingMaxAllowedExcessRenderBlocksOverride": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "1" + } + ] + } + ], "WebRTC-Aec3DelayEstimateSmoothingDelayFoundOverride": [ { "platforms": [ @@ -22334,6 +23139,24 @@ ] } ], + "WebRTC-LibvpxVp9Encoder-SvcFrameDropConfig": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled,layer_drop_mode:1,max_consec_drop:2,_20240416" + } + ] + } + ], "WebRTC-PaddingMode-RecentLargePacket": [ { "platforms": [ @@ -22589,28 +23412,6 @@ ] } ], - "WebRtcSendPacketBatch": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebRtcSendPacketBatch" - ] - } - ] - } - ], "WebRtcThreadsUseResourceEfficientType": [ { "platforms": [ @@ -22818,6 +23619,21 @@ ] } ], + "WebViewPreloadClasses": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewPreloadClasses" + ] + } + ] + } + ], "WebViewRecordAppDataDirectorySize": [ { "platforms": [ @@ -22886,7 +23702,7 @@ ], "experiments": [ { - "name": "Enabled_20240221", + "name": "Enabled_20240424", "enable_features": [ "ConvertTrackpadEventsToMouse", "MouseAndTrackpadDropdownMenu" @@ -22895,6 +23711,21 @@ ] } ], + "WebViewUseInitialNetworkStateAtStartup": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewUseInitialNetworkStateAtStartup" + ] + } + ] + } + ], "WebViewUseMetricsUploadServiceOnlySdkRuntime": [ { "platforms": [ @@ -22970,6 +23801,21 @@ ] } ], + "WinSboxNoFakeGdiInit": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WinSboxNoFakeGdiInit" + ] + } + ] + } + ], "WinSboxZeroAppShim": [ { "platforms": [ @@ -23014,5 +23860,20 @@ } ] } + ], + "iOSCPEPerformanceImprovements": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CredentialProviderPerformanceImprovements" + ] + } + ] + } ] } 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 b8f0f948..6a3f2a28 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 @@ -1,5 +1,4 @@ // Copyright 2016 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -3787,10 +3786,10 @@ enum WebFeature { kDisableThirdPartyStoragePartitioning = 4444, kServiceWorkerFetchHandlerAddedAfterInitialization = 4445, kObsoleteCreateImageBitmapImageOrientationNone = 4446, - kWindowManagementPermissionDescriptorUsed = 4447, - kWindowPlacementPermissionDescriptorUsed = 4448, - kWindowManagementPermissionPolicyParsed = 4449, - kWindowPlacementPermissionPolicyParsed = 4450, + kOBSOLETE_kWindowManagementPermissionDescriptorUsed = 4447, + kOBSOLETE_kWindowPlacementPermissionDescriptorUsed = 4448, + kOBSOLETE_kWindowManagementPermissionPolicyParsed = 4449, + kOBSOLETE_kWindowPlacementPermissionPolicyParsed = 4450, kContentDispositionInSvgUse = 4451, kSameDocumentCrossOriginInitiator = 4452, kServiceWorkerFetchHandlerModifiedAfterInitialization = 4453, @@ -3821,7 +3820,6 @@ enum WebFeature { kGetDisplayMediaWithPreferCurrentTabTrue = 4476, kFencedFrameConfigAttribute = 4477, kURLSearchParams_Has_Delete_MultipleArguments = 4478, - kPaymentHandlerMinimalHeaderUX = 4479, // The items above roughly this point are available in the M112 branch. kPopoverTypeHint = 4480, @@ -3874,7 +3872,7 @@ enum WebFeature { // The items above roughly this point are available in the M113 branch. kAttributeValueContainsLtOrGt = 4527, - kV8ImportAssertionDeprecatedSyntax = 4528, + kOBSOLETE_V8ImportAssertionDeprecatedSyntax = 4528, kImageCaptureBackgroundBlur = 4529, kPrivateNetworkAccessPreflightError = 4530, kPrivateNetworkAccessPreflightSuccess = 4531, @@ -4327,6 +4325,46 @@ enum WebFeature { kIdentityDigitalCredentialsSuccess = 4942, kV8DeviceProperties_UniqueId_AttributeGetter = 4943, + kSharedStorageAPI_SelectURLOverallPageloadBudgetInsufficient = 4944, + + kV8LanguageTranslator_Translate_Method = 4945, + kV8Translation_CanTranslate_Method = 4946, + kV8Translation_CreateTranslator_Method = 4947, + + kIdentityDigitalCredentialsDeepLink = 4948, + + kV8WebView_GetExperimentalMediaIntegrityTokenProvider_Method = 4949, + kV8MediaIntegrityTokenProvider_RequestToken_Method = 4950, + kCanvas2DLayersFilters = 4951, + kCanvas2DLayersCSSFilters = 4952, + kCanvas2DLayersFilterObjects = 4953, + + // https://drafts.csswg.org/css-scroll-snap-2/#scroll-start-target + kCSSScrollStartTarget = 4954, + + kFedCmContinueOnResponse = 4955, + kFedCmMultipleIdentityProviders = 4956, + + kFedCmWithStorageAccessAPI = 4957, + kCSSSelectorUserValid = 4958, + kCSSSelectorUserInvalid = 4959, + + kCrossShadowAtomicMove = 4960, + + kPrefersReducedMotionMediaFeature = 4961, + kPrefersReducedTransparencyMediaFeature = 4962, + kPrefersReducedDataMediaFeature = 4963, + kScriptingMediaFeature = 4964, + kInvertedColorsMediaFeature = 4965, + kCSSLightDark = 4966, + kPrivateAggregationApiFilteringIds = 4967, + kHTMLInputInSelect = 4968, + kCanvas2DMesh = 4969, + kCaretPositionFromPoint = 4970, + kDocumentPolicyIncludeJSCallStacksInCrashReports = 4971, + kMaximumHTMLParserDOMTreeDepthHit = 4972, + + // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots. // Also, run update_use_counter_feature_enum.py in 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 0471df98..2dc2c857 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 @@ -211,7 +211,6 @@ struct WebPreferences { bool initialize_at_minimum_page_scale; bool smart_insert_delete_enabled; bool spatial_navigation_enabled; - bool fake_no_alloc_direct_call_for_testing_enabled; V8CacheOptions v8_cache_options; bool record_whole_document; @@ -419,10 +418,12 @@ struct WebPreferences { // when to apply system color overrides to author specified styles. bool in_forced_colors; - // The preferred color scheme set by the user's browser settings. The scheme - // is used to evaluate the used color scheme. Currently, only used for the - // scrollbars' used color scheme. - PreferredColorScheme browser_preferred_color_scheme; + // 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 + // value. This value is used to evaluate the used color scheme in non overlay + // root scrollbars. + PreferredColorScheme preferred_root_scrollbar_color_scheme; // The preferred color scheme for the web content. The scheme is used to // evaluate the prefers-color-scheme media query and resolve UA color scheme diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_page_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_page_rule.idl index ae818739..3849156a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/css_page_rule.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_page_rule.idl @@ -20,14 +20,9 @@ // https://drafts.csswg.org/cssom/#the-csspagerule-interface -// TODO(foolip): CSSPageRule should inherit from CSSGroupingRule. -// crbug.com/496381. To internally implement this as grouping rule, -// margin at-rules should be implemented crbug.com/320370, since the -// spec https://drafts.csswg.org/css-page/#at-page-rule allows only -// margin at-rules inside @page. [ Exposed=Window -] interface CSSPageRule : CSSRule { +] interface CSSPageRule : CSSGroupingRule { [SetterCallWith=ExecutionContext] attribute DOMString selectorText; [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_scope_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_scope_rule.idl index a4881559..24b1a296 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/css_scope_rule.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_scope_rule.idl @@ -3,8 +3,7 @@ // found in the LICENSE file. [ - Exposed=Window, - RuntimeEnabled=CSSScope + Exposed=Window ] interface CSSScopeRule : CSSGroupingRule { readonly attribute CSSOMString? start; readonly attribute CSSOMString? end; 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 b2c30a33..c49fcc35 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 @@ -76,8 +76,9 @@ class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet { feature == media_feature_names::kPrefersColorSchemeMediaFeature || feature == media_feature_names::kPrefersContrastMediaFeature || feature == media_feature_names::kPrefersReducedMotionMediaFeature || - (feature == media_feature_names::kUpdateMediaFeature && - RuntimeEnabledFeatures::CSSUpdateMediaFeatureEnabled()) || + feature == media_feature_names::kOverflowInlineMediaFeature || + feature == media_feature_names::kOverflowBlockMediaFeature || + feature == media_feature_names::kUpdateMediaFeature || (feature == media_feature_names::kPrefersReducedDataMediaFeature && RuntimeEnabledFeatures::PrefersReducedDataEnabled()) || feature == @@ -99,10 +100,6 @@ class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet { execution_context)) || (feature == media_feature_names::kDevicePostureMediaFeature && RuntimeEnabledFeatures::DevicePostureEnabled(execution_context)) || - (feature == media_feature_names::kOverflowInlineMediaFeature && - RuntimeEnabledFeatures::CSSOverflowMediaFeaturesEnabled()) || - (feature == media_feature_names::kOverflowBlockMediaFeature && - RuntimeEnabledFeatures::CSSOverflowMediaFeaturesEnabled()) || (feature == media_feature_names::kInvertedColorsMediaFeature && RuntimeEnabledFeatures::InvertedColorsEnabled()) || CSSVariableParser::IsValidVariableName(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 3a9df5a9..35739803 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 @@ -184,12 +184,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [MeasureAs=DocumentCaretRangeFromPoint] Range caretRangeFromPoint(optional long x = 0, optional long y = 0); // https://www.w3.org/TR/cssom-view/#dom-document-caretpositionfrompoint - [NewObject, RuntimeEnabled=CaretPositionFromPoint] CaretPosition? caretPositionFromPoint(float x, float y); - - // Storage Access API - [CallWith=ScriptState, NewObject, MeasureAs=StorageAccessAPI_HasStorageAccess_Method] Promise hasStorageAccess(); - [CallWith=ScriptState, NewObject, MeasureAs=StorageAccessAPI_requestStorageAccess_Method] Promise requestStorageAccess(); - [CallWith=ScriptState, NewObject, MeasureAs=StorageAccessAPI_requestStorageAccessFor_Method] Promise requestStorageAccessFor(USVString requestedOrigin); + [NewObject, MeasureAs=CaretPositionFromPoint, RuntimeEnabled=CaretPositionFromPoint] CaretPosition? caretPositionFromPoint(float x, float y, ShadowRoot... shadowRoots); // Text fragment directive API // https://wicg.github.io/scroll-to-text-fragment/#feature-detectability diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl index bbc45d26..11745195 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl @@ -58,6 +58,7 @@ interface mixin GlobalEventHandlers { attribute EventHandler onemptied; attribute EventHandler onended; attribute OnErrorEventHandler onerror; + [RuntimeEnabled=FencedFramesLocalUnpartitionedDataAccess] attribute EventHandler onfencedtreeclick; attribute EventHandler onfocus; attribute EventHandler onformdata; attribute EventHandler oninput; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl index 598d29f9..14bd2d42 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl @@ -13,7 +13,20 @@ callback Mapper = any (any element, unsigned long long index); // Differs from Mapper only in return type, since this callback is exclusively // used to visit each element in a sequence, not transform it. callback Visitor = undefined (any element, unsigned long long index); -callback Predicate = boolean (any value); +// This matches the predicate in the ECMAScript Iterator helpers proposal, i.e., +// including the `index` parameter. +callback Predicate = boolean (any value, unsigned long long index); + +callback ObservableInspectorAbortHandler = undefined (any value); + +dictionary ObservableInspector { + ObserverCallback next; + ObserverCallback error; + ObserverCompleteCallback complete; + + VoidFunction subscribe; + ObservableInspectorAbortHandler abort; +}; dictionary Observer { ObserverCallback next; @@ -26,6 +39,7 @@ dictionary SubscribeOptions { }; typedef (ObserverCallback or Observer) ObserverUnion; +typedef (ObserverCallback or ObservableInspector) ObservableInspectorUnion; [Exposed=(Window,Worker), RuntimeEnabled=ObservableAPI] interface Observable { @@ -47,6 +61,7 @@ interface Observable { [CallWith=ScriptState] Observable drop(unsigned long long number_to_drop); [CallWith=ScriptState, RaisesException] Observable flatMap(Mapper mapper); [CallWith=ScriptState, RaisesException] Observable switchMap(Mapper mapper); + [CallWith=ScriptState] Observable inspect(optional ObservableInspectorUnion inspect_observer = {}); // Promise-returning operators. // See https://wicg.github.io/observable/#promise-returning-operators. @@ -54,5 +69,8 @@ interface Observable { [CallWith=ScriptState] Promise forEach(Visitor callback, optional SubscribeOptions options = {}); [CallWith=ScriptState] Promise first(optional SubscribeOptions options = {}); [CallWith=ScriptState] Promise last(optional SubscribeOptions options = {}); + [CallWith=ScriptState] Promise some(Predicate predicate, optional SubscribeOptions options = {}); + [CallWith=ScriptState] Promise every(Predicate predicate, optional SubscribeOptions options = {}); + [CallWith=ScriptState] Promise find(Predicate predicate, optional SubscribeOptions options = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root.idl index b78f12f1..5b4271ca 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root.idl @@ -50,7 +50,7 @@ interface ShadowRoot : DocumentFragment { // The serializable attribute controls whether the shadow root will be // serialized by getHTML({serializableShadowRoots:true}). - [RuntimeEnabled=ElementGetHTML] attribute boolean serializable; + [RuntimeEnabled=ElementGetHTML] readonly attribute boolean serializable; // The clonable attribute controls whether the shadow root will be // cloned by DOM cloning operations. diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event.idl index 88d9a916..970a6abb 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event.idl @@ -20,7 +20,7 @@ [MeasureAs=PointerEventAttributeCount] readonly attribute long twist; [MeasureAs=PointerEventAttributeCount] readonly attribute DOMString pointerType; [MeasureAs=PointerEventAttributeCount] readonly attribute boolean isPrimary; - [MeasureAs=PointerEventAttributeCount, RuntimeEnabled=PointerEventDeviceId] readonly attribute DeviceProperties deviceProperties; + [MeasureAs=PointerEventAttributeCount, RuntimeEnabled=PointerEventDeviceId] readonly attribute DeviceProperties? deviceProperties; // https://w3c.github.io/pointerevents/extension.html#extensions-to-the-pointerevent-interface [Measure] sequence getCoalescedEvents(); diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event_init.idl b/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event_init.idl index 46dba9ba..1821e4eb 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/pointer_event_init.idl @@ -17,7 +17,7 @@ dictionary PointerEventInit : MouseEventInit { long twist = 0; DOMString pointerType = ""; boolean isPrimary = false; - DeviceProperties deviceProperties; + DeviceProperties? deviceProperties = null; // https://w3c.github.io/pointerevents/extension.html#extensions-to-the-pointerevent-interface sequence coalescedEvents = []; 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 d0d5030c..173ca5a5 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 @@ -614,7 +614,7 @@ WebViewImpl::WebViewImpl( SetVisibilityState(visibility, /*is_initial_state=*/true); page_->SetIsPrerendering(is_prerendering); - // TODO(crbug.com/1498140): Remove the in_inside_portal parameter. + // TODO(crbug.com/40287334): Remove the is_inside_portal parameter. if (fenced_frame_mode && features::IsFencedFramesEnabled()) { page_->SetIsMainFrameFencedFrameRoot(); @@ -1642,9 +1642,6 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, settings->SetSelectionIncludesAltImageText(true); - RuntimeEnabledFeatures::SetFakeNoAllocDirectCallForTestingEnabled( - prefs.fake_no_alloc_direct_call_for_testing_enabled); - settings->SetV8CacheOptions(prefs.v8_cache_options); settings->SetImageAnimationPolicy(prefs.animation_policy); @@ -1792,8 +1789,8 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, settings->SetLazyLoadEnabled(prefs.lazy_load_enabled); settings->SetInForcedColors(prefs.in_forced_colors); - settings->SetBrowserPreferredColorScheme( - prefs.browser_preferred_color_scheme); + settings->SetPreferredRootScrollbarColorScheme( + prefs.preferred_root_scrollbar_color_scheme); settings->SetPreferredColorScheme(prefs.preferred_color_scheme); settings->SetPreferredContrast(prefs.preferred_contrast); @@ -2577,8 +2574,12 @@ void WebViewImpl::SetPageLifecycleStateInternal( if (RuntimeEnabledFeatures::PageRevealEventEnabled()) { if (restoring_from_bfcache) { - if (auto* main_frame = DynamicTo(GetPage()->MainFrame())) { - main_frame->GetDocument()->EnqueuePageRevealEvent(); + for (Frame* frame = GetPage()->MainFrame(); frame; + frame = frame->Tree().TraverseNext()) { + if (auto* local_frame = DynamicTo(frame)) { + CHECK(local_frame->GetDocument()); + local_frame->GetDocument()->EnqueuePageRevealEvent(); + } } } } diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/screen.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/screen.idl index 8e91242d..4102bd43 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/screen.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/screen.idl @@ -44,10 +44,10 @@ [HighEntropy=Direct, Measure] readonly attribute long availTop; // Fired when the window’s screen or that screen's attributes change. - // https://w3c.github.io/window-placement/ + // https://w3c.github.io/window-management/ [SecureContext, HighEntropy, MeasureAs=WindowScreenChange] attribute EventHandler onchange; // Whether the device’s visual output extends over multiple screens. - // https://w3c.github.io/window-placement/ + // https://w3c.github.io/window-management/ [SecureContext, HighEntropy=Direct, MeasureAs=WindowScreenIsExtended] readonly attribute boolean isExtended; }; 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 99b02354..09a94ff7 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 @@ -1092,11 +1092,13 @@ type: "bool", }, - // Preferred color scheme from the browser settings passed to the renderer - // for evaluating the used color scheme. Currently, only used for the - // scrollbars' used color scheme. + // 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 value. This value is used to evaluate the used color scheme in + // non overlay root scrollbars. { - name: "browserPreferredColorScheme", + name: "preferredRootScrollbarColorScheme", initial: "mojom::blink::PreferredColorScheme::kLight", invalidate: ["ColorScheme"], type: "mojom::blink::PreferredColorScheme", diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl index 4e342b9b..27a29d25 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl @@ -184,7 +184,7 @@ [RuntimeEnabled=AccessibilityObjectModel, CallWith=ScriptState] Promise getComputedAccessibleNode(Element element); // https://dom.spec.whatwg.org/#interface-window-extensions - [Replaceable, GetterCallWith=ScriptState, MeasureAs=WindowEvent, NotEnumerable] readonly attribute any event; + [Replaceable, GetterCallWith=ScriptState, MeasureAs=WindowEvent] readonly attribute any event; // Non-standard APIs [MeasureAs=WindowClientInformation, Replaceable] readonly attribute Navigator clientInformation; diff --git a/tools/under-control/src/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl b/tools/under-control/src/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl index b3acfa4f..c9d6373d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl @@ -14,6 +14,6 @@ dictionary FullscreenOptions { FullscreenNavigationUI navigationUI = "auto"; // Specifies a screen for element fullscreen requests. - // https://w3c.github.io/window-placement/ + // https://w3c.github.io/window-management/ Screen screen; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl index 59c79ab3..a931f4a2 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl @@ -13,5 +13,4 @@ interface HTMLFencedFrameElement : HTMLElement { // Feature Policy [CEReactions, Reflect, RuntimeEnabled=FencedFramesAPIChanges] attribute DOMString allow; [PutForwards=value] readonly attribute DOMTokenList sandbox; - attribute EventHandler onfencedtreeclick; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/input/device_properties_init.idl b/tools/under-control/src/third_party/blink/renderer/core/input/device_properties_init.idl index 148ca73e..504d6bf4 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/input/device_properties_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/input/device_properties_init.idl @@ -5,5 +5,5 @@ // https://w3c.github.io/pointerevents/#pointerevent-interface dictionary DevicePropertiesInit { - long uniqueId = -1; + long uniqueId = 0; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc b/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc index ae85c028..000506a0 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc @@ -412,6 +412,17 @@ bool OriginTrialContext::InstallFeatures( ScriptState* script_state) { bool added_binding_features = false; for (mojom::blink::OriginTrialFeature enabled_feature : features) { + // TODO(https://crbug.com/40243430): add support for workers/non-frames that + // are enabling origin trials to send their information to the browser too. + if (context_->IsWindow() && feature_to_tokens_.Contains(enabled_feature)) { + // Note that, as we support third-party origin trials, the tokens must be + // sent anytime there is an update. We cannot depend on sending once as + // not all tokens activate the feature for the same scope. + context_->GetRuntimeFeatureStateOverrideContext() + ->ApplyOriginTrialOverride( + enabled_feature, feature_to_tokens_.find(enabled_feature)->value); + } + if (installed_features_.Contains(enabled_feature)) continue; @@ -422,14 +433,6 @@ bool OriginTrialContext::InstallFeatures( InstallPropertiesPerFeature(script_state, enabled_feature); added_binding_features = true; - - // TODO(https://crbug.com/1410817): add support for workers/non-frames that - // are enabling origin trials to send their information to the browser too. - if (context_->IsWindow() && feature_to_tokens_.Contains(enabled_feature)) { - context_->GetRuntimeFeatureStateOverrideContext() - ->ApplyOriginTrialOverride( - enabled_feature, feature_to_tokens_.find(enabled_feature)->value); - } } return added_binding_features; @@ -561,6 +564,10 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) { base::FeatureList::IsEnabled(features::kDevicePosture); } + if (trial_name == "PermissionElement") { + return base::FeatureList::IsEnabled(blink::features::kPermissionElement); + } + return true; } @@ -683,7 +690,7 @@ bool OriginTrialContext::EnableTrialFromToken( TrialTokenResult token_result = trial_token_validator_->ValidateTokenAndTrialWithOriginInfo( - token_string.AsStringPiece(), + token_string.AsStringView(), TrialTokenValidator::OriginInfo(origin_info.origin->ToUrlOrigin(), origin_info.is_secure), script_url_origins, base::Time::Now()); diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl index 43d6ac54..affe0f0d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl @@ -18,11 +18,11 @@ enum ReadableStreamType { "bytes" }; readonly attribute boolean locked; // TODO(yhirano): function length is different from what's specced. Fix it. - [RaisesException, CallWith=ScriptState] Promise cancel(optional any reason); + [RaisesException, CallWith=ScriptState] Promise cancel(optional any reason); [RaisesException, CallWith=ScriptState, MeasureAs=ReadableStreamGetReader] ReadableStreamReader getReader(optional ReadableStreamGetReaderOptions options); [RaisesException, CallWith=ScriptState, MeasureAs=ReadableStreamPipeThrough] ReadableStream pipeThrough( ReadableWritablePair transform, optional StreamPipeOptions options); - [RaisesException, CallWith=ScriptState, MeasureAs=ReadableStreamPipeTo] Promise pipeTo( + [RaisesException, CallWith=ScriptState, MeasureAs=ReadableStreamPipeTo] Promise pipeTo( WritableStream destination, optional StreamPipeOptions options); [RaisesException, CallWith=ScriptState] sequence tee(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_read_result.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_read_result.idl deleted file mode 100755 index ace145d3..00000000 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_read_result.idl +++ /dev/null @@ -1,10 +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. - -// https://streams.spec.whatwg.org/#dictdef-readablestreambyobreadresult - -dictionary ReadableStreamBYOBReadResult { - ArrayBufferView value; - boolean done; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_reader.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_reader.idl index ad69e50a..79071905 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_reader.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_reader.idl @@ -8,7 +8,7 @@ ] interface ReadableStreamBYOBReader { [CallWith=ScriptState, RaisesException] constructor(ReadableStream stream); - [CallWith=ScriptState, RaisesException] Promise read(ArrayBufferView view); + [CallWith=ScriptState, RaisesException] Promise read(ArrayBufferView view); [CallWith=ScriptState, RaisesException] void releaseLock(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_generic_reader.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_generic_reader.idl index 28acef0a..bde6f558 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_generic_reader.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_generic_reader.idl @@ -6,6 +6,6 @@ [ Exposed=(Window,Worker,Worklet) ] interface mixin ReadableStreamGenericReader { - [CallWith=ScriptState] readonly attribute Promise closed; - [CallWith=ScriptState, RaisesException] Promise cancel(optional any reason); + [CallWith=ScriptState] readonly attribute Promise closed; + [CallWith=ScriptState, RaisesException] Promise cancel(optional any reason); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream.idl index fcf09e34..70338f11 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream.idl @@ -8,8 +8,8 @@ ] interface WritableStream { [CallWith=ScriptState, RaisesException, MeasureAs=WritableStreamConstructor] constructor(optional any underlyingSink, optional any strategy); readonly attribute boolean locked; - [RaisesException, CallWith=ScriptState] Promise abort( + [RaisesException, CallWith=ScriptState] Promise abort( optional any reason); - [RaisesException, CallWith=ScriptState] Promise close(); + [RaisesException, CallWith=ScriptState] Promise close(); [RaisesException, CallWith=ScriptState] WritableStreamDefaultWriter getWriter(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl index 7ec10111..6515199d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl @@ -9,17 +9,17 @@ Exposed=(Window,Worker,Worklet) ] interface WritableStreamDefaultWriter { [CallWith=ScriptState, RaisesException] constructor(WritableStream stream); - [CallWith=ScriptState] readonly attribute Promise + [CallWith=ScriptState] readonly attribute Promise closed; [RaisesException, CallWith=ScriptState] readonly attribute any desiredSize; - [CallWith=ScriptState] readonly attribute Promise + [CallWith=ScriptState] readonly attribute Promise ready; - [CallWith=ScriptState, RaisesException] Promise abort( + [CallWith=ScriptState, RaisesException] Promise abort( optional any reason); - [CallWith=ScriptState, RaisesException] Promise close(); + [CallWith=ScriptState, RaisesException] Promise close(); [CallWith=ScriptState] void releaseLock(); - [CallWith=ScriptState, RaisesException] Promise write( + [CallWith=ScriptState, RaisesException] Promise write( optional any chunk); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_a_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_a_element.idl index cdc459e6..f8041a95 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_a_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_a_element.idl @@ -31,3 +31,4 @@ interface SVGAElement : SVGGraphicsElement { }; SVGAElement includes SVGURIReference; +SVGAElement includes InterestInvokerElement; 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 80a85d92..6fe8a237 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 @@ -344,6 +344,7 @@ interface Internals { void setVisualViewportOffset(long x, long y); boolean isUseCounted(Document document, unsigned long feature); + boolean isWebDXFeatureUseCounted(Document document, unsigned long feature); boolean isCSSPropertyUseCounted(Document document, DOMString propertyName); boolean isAnimatedCSSPropertyUseCounted(Document document, DOMString propertyName); void clearUseCounter(Document document, unsigned long feature); @@ -448,6 +449,10 @@ interface Internals { void setBackForwardCacheRestorationBufferSize(long maxSize); + void setEventTimingBufferSize(long maxSize); + + void stopResponsivenessMetricsUkmSampling(); + sequence getCreatorScripts(HTMLImageElement img); // Wait until predicted LCP is painted. Never called if prediction is diff --git a/tools/under-control/src/third_party/blink/renderer/core/url/url.idl b/tools/under-control/src/third_party/blink/renderer/core/url/url.idl index b5e0eec3..48450b5e 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/url/url.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/url/url.idl @@ -33,6 +33,7 @@ ] interface URL { [RaisesException] constructor(USVString url, optional USVString base); + [RuntimeEnabled=URLParse] static URL? parse(USVString url, optional USVString base); static boolean canParse(USVString url, optional USVString base); [RaisesException=Setter] stringifier attribute USVString href; diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl index fb2794f3..d0abad49 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl @@ -32,7 +32,7 @@ // SharedWorkers also support the `sameSiteCookies` option outlined in: // https://privacycg.github.io/saa-non-cookie-storage/shared-workers.html dictionary SharedWorkerOptions : WorkerOptions { - [RuntimeEnabled=StorageAccessAPIBeyondCookies] SharedWorkerSameSiteCookies sameSiteCookies; + SharedWorkerSameSiteCookies sameSiteCookies; }; enum SharedWorkerSameSiteCookies { "all", "none" }; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/webview/media_integrity/media_integrity_token_provider.idl b/tools/under-control/src/third_party/blink/renderer/extensions/webview/media_integrity/media_integrity_token_provider.idl index ae04fe5c..9f98faca 100755 --- a/tools/under-control/src/third_party/blink/renderer/extensions/webview/media_integrity/media_integrity_token_provider.idl +++ b/tools/under-control/src/third_party/blink/renderer/extensions/webview/media_integrity/media_integrity_token_provider.idl @@ -15,5 +15,6 @@ // device, which includes the pased-in contentBinding as a defense against // replay attacks. // Throws MediaIntegrityError. - [CallWith=ScriptState, HighEntropy, RaisesException] Promise requestToken(optional DOMString? contentBinding = null); + [CallWith=ScriptState, HighEntropy, RaisesException, Measure] + Promise requestToken(optional DOMString? contentBinding = null); }; diff --git a/tools/under-control/src/third_party/blink/renderer/extensions/webview/web_view.idl b/tools/under-control/src/third_party/blink/renderer/extensions/webview/web_view.idl index 59cf9651..3a137af5 100755 --- a/tools/under-control/src/third_party/blink/renderer/extensions/webview/web_view.idl +++ b/tools/under-control/src/third_party/blink/renderer/extensions/webview/web_view.idl @@ -20,5 +20,14 @@ dictionary GetMediaIntegrityTokenProviderParams { // time to resolve (> 1s). // // The promise may reject as a MediaIntegrityError. - [NewObject, CallWith=ScriptState, HighEntropy, RaisesException, RuntimeEnabled=BlinkExtensionWebViewMediaIntegrity, SecureContext] Promise getExperimentalMediaIntegrityTokenProvider(GetMediaIntegrityTokenProviderParams params); + [ NewObject, + CallWith=ScriptState, + HighEntropy, + RaisesException, + RuntimeEnabled=BlinkExtensionWebViewMediaIntegrity, + SecureContext, + Measure + ] + Promise + getExperimentalMediaIntegrityTokenProvider(GetMediaIntegrityTokenProviderParams params); }; 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 7c3d26ff..aa22c78c 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 @@ -30,6 +30,10 @@ dictionary AuctionReportBuyerDebugModeConfig { bigint? debugKey; }; +dictionary AuctionRealTimeReportingConfig { + required DOMString type; +}; + dictionary AuctionAdConfig { required USVString seller; @@ -97,6 +101,11 @@ dictionary AuctionAdConfig { ProtectedAudiencePrivateAggregationConfig privateAggregationConfig; + [RuntimeEnabled=FledgeRealTimeReporting] + AuctionRealTimeReportingConfig sellerRealTimeReportingConfig; + [RuntimeEnabled=FledgeRealTimeReporting] + record perBuyerRealTimeReportingConfig; + sequence componentAuctions; AbortSignal? signal; 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 60cfac0a..ee02d822 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 @@ -137,13 +137,13 @@ interface CanvasRenderingContext2D { [RaisesException] void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh); // triangle mesh API - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); - [RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, - Mesh2DUVBuffer uv_buffer, - Mesh2DIndexBuffer index_buffer, - CanvasImageSource image); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, + Mesh2DUVBuffer uv_buffer, + Mesh2DIndexBuffer index_buffer, + CanvasImageSource image); // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_web_gpu_access_option.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_web_gpu_access_option.idl index 90fa044b..6bff3cdd 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_web_gpu_access_option.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_web_gpu_access_option.idl @@ -9,4 +9,11 @@ dictionary CanvasWebGPUAccessOption { // This label will be assigned to the GPUTexture returned by beginWebGPUAccess. DOMString? label; + + // This controls the GPUTextureUsage flags of the GPUTexture returned by + // beginWebGPUAccess. (The returned texture might actually have additional + // texture usage flags beyond the requested flags.) + // The default value will return a canvas texture that is usable as a render + // attachment, and bindable as a 2D texture. + GPUTextureUsageFlags usage = 0x14; // TEXTURE_BINDING | RENDER_ATTACHMENT }; 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 5025e6bc..aeb999ea 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 @@ -84,13 +84,13 @@ [RaisesException] void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh); // triangle mesh API - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); - [RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, - Mesh2DUVBuffer uv_buffer, - Mesh2DIndexBuffer index_buffer, - CanvasImageSource image); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, + Mesh2DUVBuffer uv_buffer, + Mesh2DIndexBuffer index_buffer, + CanvasImageSource image); // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl index cbdf1765..2a64a06a 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl @@ -20,6 +20,9 @@ dictionary IdentityCredentialDisconnectOptions : IdentityProviderConfig { [RuntimeEnabled=FedCmAutoSelectedFlag] readonly attribute boolean isAutoSelected; + // The config URL of the selected identity provider. + [RuntimeEnabled=FedCmMultipleIdentityProviders] readonly attribute USVString configURL; + // https://github.com/fedidcg/FedCM/pull/515 [RuntimeEnabled=FedCmDisconnect, CallWith=ScriptState, RaisesException, MeasureAs=FedCmDisconnect] static Promise disconnect(optional IdentityCredentialDisconnectOptions options = {}); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl index 4238277e..7a7fe840 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl @@ -18,48 +18,6 @@ dictionary IdentityProviderRequestOptions : IdentityProviderConfig { USVString nonce; DOMString loginHint; [RuntimeEnabled=FedCmDomainHint] DOMString domainHint; - [RuntimeEnabled=FedCmAuthz] sequence scope; - [RuntimeEnabled=FedCmAuthz] sequence responseType; + [RuntimeEnabled=FedCmAuthz] sequence fields; [RuntimeEnabled=FedCmAuthz] record params; }; - -// extends the IdentityProviderConfig with DigitalCredential-specific attributes -partial dictionary IdentityProviderConfig { - [RuntimeEnabled=WebIdentityDigitalCredentials] DigitalCredentialProvider holder; -}; - -dictionary DigitalCredentialProvider { - // A query selector that is used by wallets to filter credentials for - // selection. - DigitalCredentialSelector selector; - - // An opaque map of parameters sent to wallets upon selection. - record params; -}; - -dictionary DigitalCredentialSelector { - // A list of desired formats for the credential. - sequence format; - - // The top-level type of document (e.g. a passport, driver's license, etc). - DOMString doctype; - - // The amount of time the verifier intends to retain the credential. - // Omitting `retention` implies that the identity information will not be stored. - // How long the verifier intends to retent the credential. - DigitalCredentialStorageDuration retention; - - // The requested fields. - sequence<(DigitalCredentialFieldRequirement or DOMString)> fields; -}; - -dictionary DigitalCredentialFieldRequirement { - required DOMString name; - DOMString equals; -}; - -dictionary DigitalCredentialStorageDuration { - // Exactly one of the following must be provided. - boolean forever; - long days; -}; 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 99ba9d7a..73f5cec2 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 @@ -74,13 +74,13 @@ [RaisesException] void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh); // triangle mesh API - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); - [RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); - [RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, - Mesh2DUVBuffer uv_buffer, - Mesh2DIndexBuffer index_buffer, - CanvasImageSource image); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DVertexBuffer createMesh2DVertexBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DUVBuffer createMesh2DUVBuffer(Float32Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, RaisesException] Mesh2DIndexBuffer createMesh2DIndexBuffer(Uint16Array buffer); + [MeasureAs=Canvas2DMesh, RuntimeEnabled=Canvas2dMesh, HighEntropy, RaisesException] void drawMesh(Mesh2DVertexBuffer vertex_buffer, + Mesh2DUVBuffer uv_buffer, + Mesh2DIndexBuffer index_buffer, + CanvasImageSource image); // FIXME: factor out to CanvasDrawingStyles // line caps/joins attribute unrestricted double lineWidth; // (default 1) diff --git a/tools/under-control/src/third_party/blink/renderer/modules/device_posture/testing/internals_device_posture.idl b/tools/under-control/src/third_party/blink/renderer/modules/device_posture/testing/internals_device_posture.idl new file mode 100755 index 00000000..b48083b9 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/device_posture/testing/internals_device_posture.idl @@ -0,0 +1,10 @@ +// 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. + +[ + ImplementedAs=InternalsDevicePosture +] partial interface Internals { + [CallWith=ScriptState] Promise setDevicePostureOverride(DevicePostureType posture); + [CallWith=ScriptState] Promise clearDevicePostureOverride(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/encoding/text_decoder.idl b/tools/under-control/src/third_party/blink/renderer/modules/encoding/text_decoder.idl index 84e0291a..f986eeb3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/encoding/text_decoder.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/encoding/text_decoder.idl @@ -37,5 +37,6 @@ readonly attribute DOMString encoding; readonly attribute boolean fatal; readonly attribute boolean ignoreBOM; - [RaisesException, MeasureAs=TextDecoderDecode] DOMString decode(optional BufferSource input, optional TextDecodeOptions options = {}); + // TODO(40102463): investigate support of SharedArrayBuffers. + [RaisesException, MeasureAs=TextDecoderDecode] DOMString decode(optional [PassAsSpan] BufferSource input, optional TextDecodeOptions options = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/file_system_access/file_system_change_record.idl b/tools/under-control/src/third_party/blink/renderer/modules/file_system_access/file_system_change_record.idl index 5a6e7020..038fdc3d 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/file_system_access/file_system_change_record.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/file_system_access/file_system_change_record.idl @@ -10,7 +10,7 @@ enum FileSystemChangeType { "errored", "modified", "moved", - "unsupported", + "unknown", }; [ diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl b/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl index f2916d2b..3d48bf73 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl @@ -33,4 +33,5 @@ readonly attribute double? altitudeAccuracy; readonly attribute double? heading; readonly attribute double? speed; + [CallWith=ScriptState] object toJSON(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl b/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl index e6daf9b9..9a07d712 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl @@ -31,4 +31,5 @@ ] interface GeolocationPosition { readonly attribute GeolocationCoordinates coords; readonly attribute EpochTimeStamp timestamp; + [CallWith=ScriptState] object toJSON(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.idl index 765cf268..2f3cfdb9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.idl @@ -29,8 +29,7 @@ */ [ - ImplementedAs=HTMLVideoElementMediaSource, - RuntimeEnabled=VideoPlaybackQuality + ImplementedAs=HTMLVideoElementMediaSource ] partial interface HTMLVideoElement { [Measure] VideoPlaybackQuality getVideoPlaybackQuality(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/video_playback_quality.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/video_playback_quality.idl index f93c17aa..7405cc98 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/video_playback_quality.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/video_playback_quality.idl @@ -28,8 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ [ - Exposed=Window, - RuntimeEnabled=VideoPlaybackQuality + Exposed=Window ] interface VideoPlaybackQuality { readonly attribute DOMHighResTimeStamp creationTime; readonly attribute unsigned long totalVideoFrames; 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 ec22159c..2580e8aa 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 @@ -31,7 +31,7 @@ [ RuntimeEnabled = GetAllScreensMedia, CallWith = ScriptState, RaisesException, - MeasureAs = GetAllScreensMedia + MeasureAs = GetAllScreensMedia, InjectionMitigated ] Promise> getAllScreensMedia(); 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 d2c0e96b..cac50a9b 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 @@ -19,6 +19,8 @@ dictionary MLComputeResult { MLNamedArrayBufferViews outputs; }; +typedef record MLNamedBuffers; + [ RuntimeEnabled=MachineLearningCommon, SecureContext, @@ -68,4 +70,12 @@ dictionary MLComputeResult { RaisesException ] Promise readBuffer( MLBuffer srcBuffer); + + // TODO(crbug.com/1273291): enable partial buffer dispatches. + [ + RuntimeEnabled=MachineLearningNeuralNetwork, + CallWith=ScriptState, + RaisesException + ] void dispatch( + MLGraph graph, MLNamedBuffers inputs, MLNamedBuffers outputs); }; 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 887e039c..5352f1a0 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 @@ -189,10 +189,6 @@ dictionary MLResample2dOptions { sequence<[EnforceRange] unsigned long> axes; }; -dictionary MLSoftplusOptions { - float steepness = 1.0; -}; - dictionary MLTransposeOptions { sequence<[EnforceRange] unsigned long> permutation; }; @@ -268,6 +264,9 @@ dictionary MLTriangularOptions { [RaisesException] MLOperand gather(MLOperand input, MLOperand indices, optional MLGatherOptions options = {}); + [RaisesException] MLOperand gelu(MLOperand input); + [RaisesException] MLActivation gelu(); + [RaisesException] MLOperand gemm(MLOperand a, MLOperand b, optional MLGemmOptions options = {}); [RaisesException] sequence gru(MLOperand input, MLOperand weight, MLOperand recurrentWeight, @@ -339,8 +338,8 @@ dictionary MLTriangularOptions { [RaisesException] MLOperand softmax(MLOperand input); [RaisesException] MLActivation softmax(); - [RaisesException] MLOperand softplus(MLOperand input, optional MLSoftplusOptions options = {}); - [RaisesException] MLActivation softplus(optional MLSoftplusOptions options = {}); + [RaisesException] MLOperand softplus(MLOperand input); + [RaisesException] MLActivation softplus(); [RaisesException] MLOperand softsign(MLOperand input); [RaisesException] MLActivation softsign(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/model_execution/model_manager.idl b/tools/under-control/src/third_party/blink/renderer/modules/model_execution/model_manager.idl index 7f77c308..17e9e138 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/model_execution/model_manager.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/model_execution/model_manager.idl @@ -2,16 +2,35 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -enum GenericModelAvailability { "readily", "after-download", "no" }; +enum GenericModelAvailability { + "readily", + "after-download", + "no" +}; [ RuntimeEnabled=ModelExecutionAPI, Exposed=Window ] interface ModelManager { - [Measure, CallWith=ScriptState, RaisesException] Promise canCreateGenericSession(); - [Measure, CallWith=ScriptState, RaisesException] Promise createGenericSession( + [ + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise canCreateGenericSession(); + [ + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise createGenericSession( optional ModelGenericSessionOptions options = {} ); - [Measure, CallWith=ScriptState, RaisesException] Promise defaultGenericSessionOptions(); + [ + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise defaultGenericSessionOptions(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/model_execution/window_model.idl b/tools/under-control/src/third_party/blink/renderer/modules/model_execution/window_model.idl index 8ee68dd8..ddf89671 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/model_execution/window_model.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/model_execution/window_model.idl @@ -7,5 +7,5 @@ ImplementedAs=WindowModel, RuntimeEnabled=ModelExecutionAPI ] partial interface Window { - readonly attribute ModelManager model; + [Replaceable] readonly attribute ModelManager model; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_translator.idl b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_translator.idl new file mode 100755 index 00000000..f4472676 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_translator.idl @@ -0,0 +1,16 @@ +// 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. + +[ + RuntimeEnabled=TranslationAPI, + Exposed=(Window,Worker) +] +interface LanguageTranslator { + [ + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise translate(DOMString input); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation.idl b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation.idl new file mode 100755 index 00000000..9330c439 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation.idl @@ -0,0 +1,34 @@ +// 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. + +enum TranslationAvailability { + "readily", + "after-download", + "no" +}; + +[ + RuntimeEnabled=TranslationAPI, + Exposed=(Window,Worker) +] +interface Translation { + [ + RuntimeEnabled=TranslationAPI, + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise canTranslate( + TranslationLanguageOptions options + ); + [ + RuntimeEnabled=TranslationAPI, + Measure, + CallWith=ScriptState, + RaisesException + ] + Promise createTranslator( + TranslationLanguageOptions options + ); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation_language_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation_language_options.idl new file mode 100755 index 00000000..9a17d9a5 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/translation_language_options.idl @@ -0,0 +1,8 @@ +// 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. + +dictionary TranslationLanguageOptions { + required DOMString sourceLanguage; + required DOMString targetLanguage; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/window_or_worker_global_scope_translation.idl b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/window_or_worker_global_scope_translation.idl new file mode 100755 index 00000000..0677963a --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/window_or_worker_global_scope_translation.idl @@ -0,0 +1,11 @@ +// 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. + +[ + ImplementedAs=DOMTranslation, + RuntimeEnabled=TranslationAPI, + Exposed=(Window,Worker) +] partial interface mixin WindowOrWorkerGlobalScope { + [Replaceable] readonly attribute Translation translation; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/can_make_payment_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/can_make_payment_event.idl index 2889da62..c100bee2 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/can_make_payment_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/can_make_payment_event.idl @@ -9,10 +9,6 @@ Exposed=ServiceWorker ] interface CanMakePaymentEvent : ExtendableEvent { constructor(DOMString type, CanMakePaymentEventInit eventInitDict); - [DeprecateAs=IdentityInCanMakePaymentEvent, RuntimeEnabled=AddIdentityInCanMakePaymentEvent] readonly attribute USVString topOrigin; - [DeprecateAs=IdentityInCanMakePaymentEvent, RuntimeEnabled=AddIdentityInCanMakePaymentEvent] readonly attribute USVString paymentRequestOrigin; - [DeprecateAs=IdentityInCanMakePaymentEvent, RuntimeEnabled=AddIdentityInCanMakePaymentEvent] readonly attribute FrozenArray methodData; - [DeprecateAs=IdentityInCanMakePaymentEvent, RuntimeEnabled=AddIdentityInCanMakePaymentEvent] readonly attribute FrozenArray modifiers; [CallWith=ScriptState, RaisesException] void respondWith(Promise canMakePaymentResponse); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event.idl deleted file mode 100755 index 52e14f9a..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event.idl +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2019 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-request/#merchantvalidationevent-interface -// https://crbug.com/867904 -[ - RuntimeEnabled=PaymentRequestMerchantValidationEvent, - SecureContext, - Exposed=Window -] interface MerchantValidationEvent : Event { - [CallWith=ScriptState, RaisesException] constructor(DOMString type, optional MerchantValidationEventInit eventInitDict = {}); - readonly attribute DOMString methodName; - readonly attribute USVString validationURL; - [CallWith=ScriptState,RaisesException] void complete(Promise merchantSessionPromise); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event_init.idl deleted file mode 100755 index 116cf314..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/merchant_validation_event_init.idl +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2019 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-request/#merchantvalidationeventinit-dictionary -// https://crbug.com/867904 -dictionary MerchantValidationEventInit : EventInit { - DOMString methodName = ""; - USVString validationURL = ""; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl index 0b5fbc8f..d6d7d789 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl @@ -17,4 +17,17 @@ dictionary SecurePaymentConfirmationRequest { // Whether or not to show an opt-out flow in the SPC UX. [RuntimeEnabled=SecurePaymentConfirmationOptOut, MeasureAs=SecurePaymentConfirmationOptOut] boolean showOptOut; + + // Experimental support for showing network and issuer icons in addition to + // the payment instrument. These members are purely experimental; if we + // were to launch this we should find a non-card specific way to encode + // this information in the SecurePaymentConfirmationRequest, or better + // encapsulate it into a single sub-dictionary. + [RuntimeEnabled=SecurePaymentConfirmationNetworkAndIssuerIcons] NetworkOrIssuerInformation networkInfo; + [RuntimeEnabled=SecurePaymentConfirmationNetworkAndIssuerIcons] NetworkOrIssuerInformation issuerInfo; +}; + +dictionary NetworkOrIssuerInformation { + required USVString name; + required USVString icon; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl index 32a7119c..0961a0f4 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl @@ -9,7 +9,7 @@ Exposed=(Window, DedicatedWorker) ] interface RTCEncodedAudioFrame { [RuntimeEnabled=RTCEncodedFrameSetMetadata, Measure, RaisesException] - constructor (RTCEncodedAudioFrame originalFrame, optional RTCEncodedAudioFrameMetadata newMetadata); + constructor (RTCEncodedAudioFrame originalFrame, optional RTCEncodedAudioFrameOptions options = {}); readonly attribute unsigned long timestamp; // RTP timestamp. attribute ArrayBuffer data; RTCEncodedAudioFrameMetadata getMetadata(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_options.idl new file mode 100755 index 00000000..d7d879bd --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_options.idl @@ -0,0 +1,9 @@ +// 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. + +// https://www.w3.org/TR/webrtc-encoded-transform/#RTCEncodedAudioFrame-interface + +dictionary RTCEncodedAudioFrameOptions { + RTCEncodedAudioFrameMetadata metadata; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl index f8225c59..eff06ec7 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl @@ -15,7 +15,7 @@ enum RTCEncodedVideoFrameType { Exposed=(Window, DedicatedWorker) ] interface RTCEncodedVideoFrame { [RuntimeEnabled=RTCEncodedFrameSetMetadata, Measure, RaisesException] - constructor (RTCEncodedVideoFrame originalFrame, optional RTCEncodedVideoFrameMetadata newMetadata); + constructor (RTCEncodedVideoFrame originalFrame, optional RTCEncodedVideoFrameOptions options = {}); readonly attribute RTCEncodedVideoFrameType type; readonly attribute unsigned long timestamp; // RTP timestamp. attribute ArrayBuffer data; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_options.idl new file mode 100755 index 00000000..32b5f87b --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_options.idl @@ -0,0 +1,9 @@ +// 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. + +// https://www.w3.org/TR/webrtc-encoded-transform/#RTCEncodedVideoFrame-interface + +dictionary RTCEncodedVideoFrameOptions { + RTCEncodedVideoFrameMetadata metadata; +}; 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 d64d04bd..a3d16bdb 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 @@ -35,12 +35,12 @@ enum PermissionName { "system-wake-lock", "storage-access", "window-management", - // Alias for 'window-management' (crbug.com/1328581). - "window-placement", "local-fonts", "top-level-storage-access", "captured-surface-control", "speaker-selection", + "keyboard-lock", + "pointer-lock", }; // The PermissionDescriptor dictionary is a base to describe permissions. Some diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl index 3093d739..8b9ba368 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl @@ -42,6 +42,7 @@ dictionary WebPrintJobTemplateAttributes { unsigned long copies; WebPrintingMediaCollectionRequested mediaCol; + DOMString mediaSource; WebPrintingMultipleDocumentHandling multipleDocumentHandling; WebPrintingOrientationRequested orientationRequested; WebPrintingResolution printerResolution; @@ -59,6 +60,9 @@ dictionary WebPrinterAttributes { WebPrintingMediaCollection mediaColDefault; sequence mediaColDatabase; + DOMString mediaSourceDefault; + sequence mediaSourceSupported; + WebPrintingMimeMediaType documentFormatDefault; sequence documentFormatSupported; 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 a7563042..535f231c 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 @@ -5,4 +5,5 @@ dictionary PrivateAggregationHistogramContribution { required bigint bucket; required long value; + [RuntimeEnabled=PrivateAggregationApiFilteringIds] 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 0d2a9121..cd362e0a 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,4 +1,6 @@ dictionary SharedStoragePrivateAggregationConfig { USVString aggregationCoordinatorOrigin; USVString contextId; + [EnforceRange, RuntimeEnabled=PrivateAggregationApiFilteringIds] + unsigned long long filteringIdMaxBytes; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/document_storage_access.idl b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/document_storage_access.idl index 09a6b712..8bca3eb3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/document_storage_access.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/document_storage_access.idl @@ -2,10 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -[ - ImplementedAs=DocumentStorageAccess, - RuntimeEnabled=StorageAccessAPIBeyondCookies -] partial interface Document { +[ImplementedAs=DocumentStorageAccess] +partial interface Document { + [ + CallWith=ScriptState, + NewObject, + MeasureAs=StorageAccessAPI_HasStorageAccess_Method + ] Promise hasStorageAccess(); + [ + CallWith=ScriptState, + NewObject, + MeasureAs=StorageAccessAPI_requestStorageAccess_Method + ] Promise requestStorageAccess(); [ CallWith=ScriptState, NewObject, @@ -16,4 +24,9 @@ NewObject, MeasureAs=StorageAccessAPI_hasUnpartitionedCookieAccess ] Promise hasUnpartitionedCookieAccess(); + [ + CallWith=ScriptState, + NewObject, + MeasureAs=StorageAccessAPI_requestStorageAccessFor_Method + ] Promise requestStorageAccessFor(USVString requestedOrigin); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl index 33fa7684..876c99dc 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -[RuntimeEnabled=StorageAccessAPIBeyondCookies] interface StorageAccessHandle { [LogActivity=GetterOnly, RaisesException=Getter] readonly attribute Storage sessionStorage; [LogActivity=GetterOnly, RaisesException=Getter] readonly attribute Storage localStorage; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webcodecs/opus_encoder_config.idl b/tools/under-control/src/third_party/blink/renderer/modules/webcodecs/opus_encoder_config.idl index b6191689..949229c1 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webcodecs/opus_encoder_config.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webcodecs/opus_encoder_config.idl @@ -9,10 +9,24 @@ enum OpusBitstreamFormat { "ogg", }; +enum OpusSignal { + "auto", + "music", + "voice", +}; + +enum OpusApplication { + "voip", + "audio", + "lowdelay", +}; + // NOTE: Keep this structure in sync with CopyOpusConfig() defined in // audio_encoder.cc. dictionary OpusEncoderConfig { OpusBitstreamFormat format = "opus"; + OpusSignal signal = "auto"; + OpusApplication application = "audio"; [EnforceRange] unsigned long long frameDuration = 20000; [EnforceRange] unsigned long complexity; [EnforceRange] unsigned long packetlossperc = 0; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_buffer.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_buffer.idl index c39487be..77a2db01 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_buffer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_buffer.idl @@ -27,5 +27,5 @@ [ Exposed=(Window,Worker) -] interface WebGLBuffer { +] interface WebGLBuffer : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_framebuffer.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_framebuffer.idl index 86dd517c..a41b86ad 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_framebuffer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_framebuffer.idl @@ -27,5 +27,5 @@ [ Exposed=(Window,Worker) -] interface WebGLFramebuffer { +] interface WebGLFramebuffer : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_object.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_object.idl new file mode 100755 index 00000000..a0e14117 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_object.idl @@ -0,0 +1,10 @@ +// 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. + +// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.3 + +[ + Exposed=(Window,Worker) +] interface WebGLObject { +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_program.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_program.idl index 99a37bff..ab586cd4 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_program.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_program.idl @@ -27,5 +27,5 @@ [ Exposed=(Window,Worker) -] interface WebGLProgram { +] interface WebGLProgram : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_query.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_query.idl index dc5eaaaa..9d11d010 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_query.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_query.idl @@ -6,5 +6,5 @@ [ Exposed=(Window,Worker) -] interface WebGLQuery { +] interface WebGLQuery : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_renderbuffer.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_renderbuffer.idl index 62d53827..0000b4cc 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_renderbuffer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_renderbuffer.idl @@ -27,5 +27,5 @@ [ Exposed=(Window,Worker) -] interface WebGLRenderbuffer { +] interface WebGLRenderbuffer : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sampler.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sampler.idl index f632e33a..9b628cb4 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sampler.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sampler.idl @@ -6,5 +6,5 @@ [ Exposed=(Window,Worker) -] interface WebGLSampler { +] interface WebGLSampler : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader.idl index 394eafc2..a57f8dcc 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_shader.idl @@ -27,5 +27,5 @@ [ Exposed=(Window,Worker) -] interface WebGLShader { +] interface WebGLShader : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sync.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sync.idl index b48518a1..6c46a7a6 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sync.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_sync.idl @@ -6,5 +6,5 @@ [ Exposed=(Window,Worker) -] interface WebGLSync { +] interface WebGLSync : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_texture.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_texture.idl index e3ea3a08..8c3758b3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_texture.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_texture.idl @@ -27,7 +27,7 @@ [ Exposed=(Window,Worker) -] interface WebGLTexture { +] interface WebGLTexture : WebGLObject { [RuntimeEnabled=ExtraWebGLVideoTextureMetadata] readonly attribute unsigned long lastUploadedVideoWidth; [RuntimeEnabled=ExtraWebGLVideoTextureMetadata] readonly attribute unsigned long lastUploadedVideoHeight; [RuntimeEnabled=ExtraWebGLVideoTextureMetadata] readonly attribute double lastUploadedVideoTimestamp; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_timer_query_ext.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_timer_query_ext.idl index 7a16a41f..ccd0f409 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_timer_query_ext.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_timer_query_ext.idl @@ -6,5 +6,5 @@ [ LegacyNoInterfaceObject -] interface WebGLTimerQueryEXT { +] interface WebGLTimerQueryEXT : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_transform_feedback.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_transform_feedback.idl index ea546fde..d1a6e5b7 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_transform_feedback.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_transform_feedback.idl @@ -6,5 +6,5 @@ [ Exposed=(Window,Worker) -] interface WebGLTransformFeedback { +] interface WebGLTransformFeedback : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object.idl index 08c1250f..9f87a15c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object.idl @@ -6,5 +6,5 @@ [ Exposed=(Window,Worker) -] interface WebGLVertexArrayObject { +] interface WebGLVertexArrayObject : WebGLObject { }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_oes.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_oes.idl index e1d6730c..cd6f0bd9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_oes.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_oes.idl @@ -27,5 +27,5 @@ [ LegacyNoInterfaceObject -] interface WebGLVertexArrayObjectOES { +] interface WebGLVertexArrayObjectOES : WebGLObject { };