diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE
index ccf64b13..01e87a5b 100644
--- a/tools/under-control/src/RELEASE
+++ b/tools/under-control/src/RELEASE
@@ -1 +1 @@
-132.0.6834.163
+133.0.6943.60
diff --git a/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc b/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc
index 88eb4fc1..f9e3e0e5 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
@@ -22,7 +22,6 @@
#include "android_webview/browser/aw_contents_io_thread_client.h"
#include "android_webview/browser/aw_cookie_access_policy.h"
#include "android_webview/browser/aw_devtools_manager_delegate.h"
-#include "android_webview/browser/aw_enterprise_helper.h"
#include "android_webview/browser/aw_feature_list_creator.h"
#include "android_webview/browser/aw_http_auth_handler.h"
#include "android_webview/browser/aw_settings.h"
@@ -112,7 +111,6 @@
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "net/android/network_library.h"
#include "net/cookies/site_for_cookies.h"
-#include "net/dns/public/secure_dns_mode.h"
#include "net/http/http_util.h"
#include "net/net_buildflags.h"
#include "net/ssl/ssl_cert_request_info.h"
@@ -286,29 +284,6 @@ void AwContentBrowserClient::OnNetworkServiceCreated(
network_service->SetUpHttpAuth(network::mojom::HttpAuthStaticParams::New());
network_service->ConfigureHttpAuthPrefs(
AwBrowserProcess::GetInstance()->CreateHttpAuthDynamicParams());
-
- if (base::FeatureList::IsEnabled(features::kWebViewAsyncDns)) {
- enterprise::GetEnterpriseState(
- base::BindOnce([](enterprise::EnterpriseState state) {
- switch (state) {
- case enterprise::EnterpriseState::kUnknown:
- // If we cannot be certain about the enterprise state, we should
- // not enable the AsyncDNS resolver, but fall back on the system
- // resolver.
- case enterprise::EnterpriseState::kEnterpriseOwned:
- // On enterprise owned devices, we should use the system resolver
- // to make sure that we respect any network settings implemented
- // by the device owner.
- return;
- case enterprise::EnterpriseState::kNotOwned:
- content::GetNetworkService()->ConfigureStubHostResolver(
- /*insecure_dns_client_enabled=*/true,
- net::SecureDnsMode::kAutomatic, net::DnsOverHttpsConfig(),
- /*additional_dns_types_enabled=*/true);
- break;
- }
- }));
- }
}
void AwContentBrowserClient::ConfigureNetworkContextParams(
@@ -364,7 +339,7 @@ void AwContentBrowserClient::RenderProcessWillLaunch(
// per-view access checks, and access is granted by default (see
// AwSettings.mAllowContentUrlAccess).
content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme(
- host->GetID(), url::kContentScheme);
+ host->GetDeprecatedID(), url::kContentScheme);
}
bool AwContentBrowserClient::IsExplicitNavigation(
@@ -724,7 +699,8 @@ AwContentBrowserClient::CreateURLLoaderThrottles(
/* hash_realtime_service */ nullptr,
/* hash_realtime_selection */
hash_real_time_selection,
- /* async_check_tracker */ async_check_tracker));
+ /* async_check_tracker */ async_check_tracker,
+ /*referring_app_info=*/std::nullopt));
if (request.destination == network::mojom::RequestDestination::kDocument) {
const bool is_load_url =
@@ -772,7 +748,7 @@ AwContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive(
/* hash_realtime_service */ nullptr,
/* hash_realtime_selection */
hash_real_time_selection,
- /* async_check_tracker */ nullptr));
+ /* async_check_tracker */ nullptr, /*referring_app_info=*/std::nullopt));
return result;
}
@@ -896,6 +872,7 @@ AwContentBrowserClient::CreateLoginDelegate(
const GURL& url,
scoped_refptr response_headers,
bool first_auth_attempt,
+ content::GuestPageHolder* guest,
LoginAuthRequiredCallback auth_required_callback) {
return std::make_unique(auth_info, web_contents,
first_auth_attempt,
diff --git a/tools/under-control/src/android_webview/browser/aw_field_trials.cc b/tools/under-control/src/android_webview/browser/aw_field_trials.cc
index 4ab726d3..1ca5b374 100755
--- a/tools/under-control/src/android_webview/browser/aw_field_trials.cc
+++ b/tools/under-control/src/android_webview/browser/aw_field_trials.cc
@@ -9,9 +9,6 @@
#include "base/allocator/partition_alloc_features.h"
#include "base/base_paths_android.h"
#include "base/check.h"
-#include "base/feature_list.h"
-#include "base/memory/raw_ref.h"
-#include "base/metrics/field_trial.h"
#include "base/metrics/field_trial_params.h"
#include "base/metrics/persistent_histogram_allocator.h"
#include "base/path_service.h"
@@ -32,66 +29,47 @@
#include "ui/android/ui_android_features.h"
#include "ui/gl/gl_features.h"
-namespace {
+namespace internal {
-class AwFeatureOverrides {
- public:
- explicit AwFeatureOverrides(base::FeatureList& feature_list)
- : feature_list_(feature_list) {}
+AwFeatureOverrides::AwFeatureOverrides(base::FeatureList& feature_list)
+ : feature_list_(feature_list) {}
- AwFeatureOverrides(const AwFeatureOverrides& other) = delete;
- AwFeatureOverrides& operator=(const AwFeatureOverrides& other) = delete;
-
- ~AwFeatureOverrides() {
- for (const auto& field_trial_override : field_trial_overrides_) {
- feature_list_->RegisterFieldTrialOverride(
- field_trial_override.feature->name,
- field_trial_override.override_state,
- field_trial_override.field_trial);
- }
- feature_list_->RegisterExtraFeatureOverrides(std::move(overrides_));
+AwFeatureOverrides::~AwFeatureOverrides() {
+ // TODO(crbug.com/379864779): This doesn't play well with potential server-
+ // side overrides.
+ for (const auto& field_trial_override : field_trial_overrides_) {
+ feature_list_->RegisterFieldTrialOverride(
+ field_trial_override.feature->name, field_trial_override.override_state,
+ field_trial_override.field_trial);
}
+ feature_list_->RegisterExtraFeatureOverrides(
+ std::move(overrides_), /*replace_use_default_overrides=*/true);
+}
- // Enable a feature with WebView-specific override.
- void EnableFeature(const base::Feature& feature) {
- overrides_.emplace_back(
- std::cref(feature),
- base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE);
- }
+void AwFeatureOverrides::EnableFeature(const base::Feature& feature) {
+ overrides_.emplace_back(
+ std::cref(feature),
+ base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE);
+}
- // Disable a feature with WebView-specific override.
- void DisableFeature(const base::Feature& feature) {
- overrides_.emplace_back(
- std::cref(feature),
- base::FeatureList::OverrideState::OVERRIDE_DISABLE_FEATURE);
- }
+void AwFeatureOverrides::DisableFeature(const base::Feature& feature) {
+ overrides_.emplace_back(
+ std::cref(feature),
+ base::FeatureList::OverrideState::OVERRIDE_DISABLE_FEATURE);
+}
- // Enable or disable a feature with a field trial. This can be used for
- // setting feature parameters.
- void OverrideFeatureWithFieldTrial(
- const base::Feature& feature,
- base::FeatureList::OverrideState override_state,
- base::FieldTrial* field_trial) {
- field_trial_overrides_.emplace_back(FieldTrialOverride{
- .feature = raw_ref(feature),
- .override_state = override_state,
- .field_trial = field_trial,
- });
- }
+void AwFeatureOverrides::OverrideFeatureWithFieldTrial(
+ const base::Feature& feature,
+ base::FeatureList::OverrideState override_state,
+ base::FieldTrial* field_trial) {
+ field_trial_overrides_.emplace_back(FieldTrialOverride{
+ .feature = raw_ref(feature),
+ .override_state = override_state,
+ .field_trial = field_trial,
+ });
+}
- private:
- struct FieldTrialOverride {
- raw_ref feature;
- base::FeatureList::OverrideState override_state;
- raw_ptr field_trial;
- };
-
- base::raw_ref feature_list_;
- std::vector overrides_;
- std::vector field_trial_overrides_;
-};
-
-} // namespace
+} // namespace internal
void AwFieldTrials::OnVariationsSetupComplete() {
// Persistent histograms must be enabled ASAP, but depends on Features.
@@ -109,7 +87,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
if (!feature_list) {
return;
}
- AwFeatureOverrides aw_feature_overrides(*feature_list);
+ internal::AwFeatureOverrides aw_feature_overrides(*feature_list);
// Disable third-party storage partitioning on WebView.
aw_feature_overrides.DisableFeature(
@@ -143,7 +121,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
// Disable Shared Storage on WebView.
aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPI);
- aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPIM125);
// Disable scrollbar-color on WebView.
aw_feature_overrides.DisableFeature(blink::features::kScrollbarColor);
@@ -247,6 +224,13 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
aw_feature_overrides.DisableFeature(
blink::features::kIncrementLocalSurfaceIdForMainframeSameDocNavigation);
+ // Disabling this feature for WebView, since it can switch focus when scrolled
+ // in cases with multiple views which can trigger HTML focus changes that
+ // aren't intended. See crbug.com/378779896, crbug.com/373672168 for more
+ // details.
+ aw_feature_overrides.DisableFeature(
+ ::features::kFocusRenderWidgetHostViewAndroidOnActionDown);
+
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kDebugBsa)) {
// Feature parameters can only be set via a field trial.
const char kTrialName[] = "StudyDebugBsa";
@@ -289,10 +273,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
// WebView.
aw_feature_overrides.DisableFeature(::features::kDIPS);
- // TODO(crbug.com/41492947): See crrev.com/c/5744034 for details, but I was
- // unable to add this feature to fieldtrial_testing_config and pass all tests.
- aw_feature_overrides.EnableFeature(blink::features::kElementGetInnerHTML);
-
// These features have shown performance improvements in WebView but not some
// other platforms.
aw_feature_overrides.EnableFeature(features::kEnsureExistingRendererAlive);
@@ -309,4 +289,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) {
// WebView.
aw_feature_overrides.DisableFeature(
base::features::kPartitionAllocMemoryTagging);
+
+ // Disable Topics on WebView.
+ aw_feature_overrides.DisableFeature(blink::features::kBrowsingTopics);
}
diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml
index 9bb1c957..7151c54a 100755
--- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml
+++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml
@@ -948,7 +948,13 @@ by a child template that "extends" this file.
android:excludeFromRecents="true"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode"
- android:hardwareAccelerated="false" />
+ android:hardwareAccelerated="false">
+
+
+
+
+
+
+ android:theme="@style/Theme.Chromium.Activity"
+ android:launchMode="singleInstance">
+
+
+
{% block base_application_definitions %}
{% endblock %}
{% block extra_application_definitions_for_test %}
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 7961ea05..1068106e 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
@@ -42,9 +42,6 @@
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/crash_upload_list/crash_upload_list.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
-#include "chrome/browser/dips/chrome_dips_delegate.h"
-#include "chrome/browser/dips/dips_service_impl.h"
-#include "chrome/browser/dips/dips_utils.h"
#include "chrome/browser/domain_reliability/service_factory.h"
#include "chrome/browser/downgrade/user_data_downgrade.h"
#include "chrome/browser/download/download_prefs.h"
@@ -91,9 +88,9 @@
#include "chrome/browser/webdata_services/web_data_service_factory.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/url_constants.h"
-#include "components/autofill/core/browser/address_data_manager.h"
-#include "components/autofill/core/browser/payments_data_manager.h"
-#include "components/autofill/core/browser/personal_data_manager.h"
+#include "components/autofill/core/browser/data_manager/addresses/address_data_manager.h"
+#include "components/autofill/core/browser/data_manager/payments/payments_data_manager.h"
+#include "components/autofill/core/browser/data_manager/personal_data_manager.h"
#include "components/autofill/core/browser/strike_databases/strike_database.h"
#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
#include "components/autofill/core/common/autofill_features.h"
@@ -152,7 +149,6 @@
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/browsing_data_filter_builder.h"
-#include "content/public/browser/dips_delegate.h"
#include "content/public/browser/host_zoom_map.h"
#include "content/public/browser/origin_trials_controller_delegate.h"
#include "content/public/browser/prefetch_service_delegate.h"
@@ -200,10 +196,13 @@
#include "content/public/browser/storage_partition_config.h"
#endif // !BUILDFLAG(IS_ANDROID)
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/extensions/activity_log/activity_log.h"
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "extensions/browser/extension_prefs.h"
#include "extensions/common/constants.h"
+#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+#include "chrome/browser/extensions/activity_log/activity_log.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -256,7 +255,7 @@ bool DoesOriginMatchEmbedderMask(uint64_t origin_type_mask,
<< "|origin_type_mask| can only contain origin types defined in "
<< "the embedder.";
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
// Packaged apps and extensions match iff EXTENSION.
if ((origin.scheme() == extensions::kExtensionScheme) &&
(origin_type_mask & constants::ORIGIN_TYPE_EXTENSION)) {
@@ -281,8 +280,7 @@ ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
webapp_registry_(std::make_unique())
#endif
,
- credential_store_(MakeCredentialStore()),
- dips_delegate_(ChromeDipsDelegate::Create()) {
+ credential_store_(MakeCredentialStore()) {
domain_reliability_clearer_ = base::BindRepeating(
[](BrowserContext* browser_context,
content::BrowsingDataFilterBuilder* filter_builder,
@@ -356,10 +354,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
BrowsingDataFilterBuilder* filter_builder,
uint64_t origin_type_mask,
base::OnceCallback callback) {
- DCHECK(((remove_mask &
- ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS &
- ~constants::FILTERABLE_DATA_TYPES) == 0) ||
- filter_builder->MatchesAllOriginsAndDomains());
+ CHECK(((remove_mask &
+ ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS &
+ ~constants::FILTERABLE_DATA_TYPES) == 0) ||
+ filter_builder->MatchesAllOriginsAndDomains());
#if !BUILDFLAG(IS_ANDROID)
DCHECK(!should_clear_sync_account_settings_);
#endif
@@ -392,7 +390,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
base::RecordAction(
UserMetricsAction("ClearBrowsingData_MaskContainsProtectedWeb"));
}
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
if (origin_type_mask & constants::ORIGIN_TYPE_EXTENSION) {
base::RecordAction(
UserMetricsAction("ClearBrowsingData_MaskContainsExtension"));
@@ -403,7 +401,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
static_assert(
constants::ALL_ORIGIN_TYPES ==
(content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
constants::ORIGIN_TYPE_EXTENSION |
#endif
content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB),
@@ -906,33 +904,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
->RemoveEmbargoAndResetCounts(filter);
}
- // Different types of DIPS events are cleared for DATA_TYPE_HISTORY and
- // DATA_TYPE_COOKIES.
- DIPSEventRemovalType dips_mask = DIPSEventRemovalType::kNone;
- if ((remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) &&
- !filter_builder->PartitionedCookiesOnly()) {
- // If there's no delegate, delete everything whenever the user is deleting
- // cookies.
- dips_mask |= dips_delegate_ ? DIPSEventRemovalType::kStorage
- : DIPSEventRemovalType::kAll;
- }
- // If there's a delegate, ask it whether to delete DIPS history.
- if (dips_delegate_ &&
- dips_delegate_->ShouldDeleteInteractionRecords(remove_mask)) {
- dips_mask |= DIPSEventRemovalType::kHistory;
- }
-
- if (dips_mask != DIPSEventRemovalType::kNone) {
- if (DIPSServiceImpl* dips_service = DIPSServiceImpl::Get(profile_)) {
- dips_service->RemoveEvents(delete_begin_, delete_end_,
- filter_builder->BuildNetworkServiceFilter(),
- dips_mask);
- }
- }
-
//////////////////////////////////////////////////////////////////////////////
// Password manager
if (remove_mask & constants::DATA_TYPE_PASSWORDS) {
+ CHECK(nullable_filter.is_null());
base::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
auto password_store = ProfilePasswordStoreFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS);
@@ -942,9 +917,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
// login token is persisted and can be used after cookie deletion.
// TODO:(crbug.com/1167715) - Test that associated compromised credentials
// are removed.
- password_store->RemoveLoginsByURLAndTime(
- FROM_HERE, filter, delete_begin_, delete_end_,
- CreateTaskCompletionClosure(TracingDataType::kPasswords));
+ password_store->RemoveLoginsCreatedBetween(
+ FROM_HERE, delete_begin_, delete_end_,
+ CreateTaskCompletionCallback(
+ TracingDataType::kPasswords,
+ /* data_type_mask= */ constants::DATA_TYPE_PASSWORDS));
}
profile_->GetDefaultStoragePartition()
@@ -999,6 +976,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
}
if (remove_mask & constants::DATA_TYPE_ACCOUNT_PASSWORDS) {
+ CHECK(nullable_filter.is_null());
auto account_store = AccountPasswordStoreFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS);
@@ -1015,9 +993,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CreateTaskCompletionCallback(TracingDataType::kAccountPasswordsSynced,
constants::DATA_TYPE_ACCOUNT_PASSWORDS);
#endif
- account_store->RemoveLoginsByURLAndTime(
- FROM_HERE, filter, delete_begin_, delete_end_,
- CreateTaskCompletionClosure(TracingDataType::kAccountPasswords),
+ account_store->RemoveLoginsCreatedBetween(
+ FROM_HERE, delete_begin_, delete_end_,
+ CreateTaskCompletionCallback(TracingDataType::kAccountPasswords,
+ constants::DATA_TYPE_ACCOUNT_PASSWORDS),
std::move(sync_completion));
}
@@ -1117,7 +1096,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (render_process_host->GetBrowserContext() == profile_ &&
render_process_host->IsInitializedAndNotDead()) {
web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess(
- render_process_host->GetID());
+ render_process_host->GetDeprecatedID());
}
}
}
@@ -1588,10 +1567,9 @@ void ChromeBrowsingDataRemoverDelegate::OnTaskComplete(
should_clear_sync_account_settings_ = false;
signin::IdentityManager* identity_manager =
IdentityManagerFactory::GetForProfile(profile_);
- base::flat_set gaia_ids =
- signin::GetAllGaiaIdsForKeyedPreferences(
- identity_manager,
- signin::AccountsInCookieJarInfo() /* empty_cookies */);
+ base::flat_set gaia_ids = signin::GetAllGaiaIdsForKeyedPreferences(
+ identity_manager,
+ signin::AccountsInCookieJarInfo() /* empty_cookies */);
if (syncer::SyncService* sync_service =
SyncServiceFactory::GetForProfile(profile_);
sync_service) {
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 bb23f913..04ea6244 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
@@ -19,6 +19,7 @@
#include "chrome/browser/buildflags.h"
#include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
#include "chrome/browser/history_clusters/history_clusters_service_factory.h"
+#include "chrome/browser/history_embeddings/history_embeddings_utils.h"
#include "chrome/browser/media/media_engagement_score_details.mojom.h"
#include "chrome/browser/navigation_predictor/navigation_predictor.h"
#include "chrome/browser/optimization_guide/optimization_guide_internals_ui.h"
@@ -37,9 +38,9 @@
#include "chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom.h"
#include "chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h"
#include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h"
+#include "chrome/browser/ui/webui/chrome_urls/chrome_urls_ui.h"
#include "chrome/browser/ui/webui/data_sharing_internals/data_sharing_internals_ui.h"
#include "chrome/browser/ui/webui/engagement/site_engagement_ui.h"
-#include "chrome/browser/ui/webui/internals/internals_ui.h"
#include "chrome/browser/ui/webui/location_internals/location_internals.mojom.h"
#include "chrome/browser/ui/webui/location_internals/location_internals_ui.h"
#include "chrome/browser/ui/webui/media/media_engagement_ui.h"
@@ -70,7 +71,6 @@
#include "components/history_clusters/core/features.h"
#include "components/history_clusters/core/history_clusters_service.h"
#include "components/history_clusters/history_clusters_internals/webui/history_clusters_internals_ui.h"
-#include "components/history_embeddings/history_embeddings_features.h"
#include "components/language_detection/content/common/language_detection.mojom.h"
#include "components/lens/lens_features.h"
#include "components/live_caption/caption_util.h"
@@ -150,8 +150,8 @@
#include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h"
#else
#include "chrome/browser/badging/badge_manager.h"
-#include "chrome/browser/cart/chrome_cart.mojom.h"
#include "chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion.mojom.h"
+#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom.h"
#include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar.mojom.h"
#include "chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar.mojom.h"
#include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption.mojom.h"
@@ -171,15 +171,12 @@
#endif
#include "chrome/browser/ui/lens/lens_overlay_untrusted_ui.h"
#include "chrome/browser/ui/lens/lens_side_panel_untrusted_ui.h"
-#include "chrome/browser/ui/lens/search_bubble_ui.h"
#include "chrome/browser/ui/views/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/data_sharing/data_sharing.mojom.h"
#include "chrome/browser/ui/webui/data_sharing/data_sharing_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/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"
@@ -200,6 +197,8 @@
#include "chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h"
#include "chrome/browser/ui/webui/tab_search/tab_search.mojom.h"
#include "chrome/browser/ui/webui/tab_search/tab_search_ui.h"
+#include "chrome/browser/ui/webui/user_education_internals/user_education_internals.mojom.h"
+#include "chrome/browser/ui/webui/user_education_internals/user_education_internals_ui.h"
#include "chrome/browser/ui/webui/webui_gallery/webui_gallery_ui.h"
#include "chrome/browser/web_applications/web_install_service_impl.h"
#include "chrome/common/webui_url_constants.h"
@@ -307,6 +306,8 @@
#include "ash/webui/recorder_app_ui/recorder_app_ui.h"
#include "ash/webui/sanitize_ui/mojom/sanitize_ui.mojom.h"
#include "ash/webui/sanitize_ui/sanitize_ui.h"
+#include "ash/webui/scanner_feedback_ui/mojom/scanner_feedback_ui.mojom.h"
+#include "ash/webui/scanner_feedback_ui/scanner_feedback_untrusted_ui.h"
#include "ash/webui/scanning/mojom/scanning.mojom.h"
#include "ash/webui/scanning/scanning_ui.h"
#include "ash/webui/shimless_rma/shimless_rma.h"
@@ -488,10 +489,10 @@
#include "components/signin/public/base/signin_switches.h"
#endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
-#include "chrome/browser/on_device_translation/translation_manager_impl.h"
-#include "third_party/blink/public/mojom/on_device_translation/translation_manager.mojom.h"
-#endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
+#if BUILDFLAG(ENABLE_GLIC)
+#include "chrome/browser/glic/glic_enabling.h"
+#include "chrome/browser/ui/webui/glic/glic_ui.h"
+#endif
namespace chrome::internal {
@@ -788,8 +789,17 @@ void PopulateChromeFrameBinders(
map->Add(
base::BindRepeating(&translate::BindContentTranslateDriver));
- map->Add(
- base::BindRepeating(&translate::BindContentLanguageDetectionDriver));
+
+ if (!base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
+ // When the feature is enabled, the driver is bound by
+ // browser_interface_binders.cc to make it available to JS execution
+ // contexts. When the feature is disabled, we bind it here for Chrome's
+ // page-translation feature.
+ //
+ // TODO(https://crbug.com/354069716): Remove this when the flag is removed.
+ map->Add(
+ base::BindRepeating(&translate::BindContentLanguageDetectionDriver));
+ }
map->Add(
base::BindRepeating(&ChromePasswordManagerClient::BindCredentialManager));
@@ -902,13 +912,6 @@ void PopulateChromeFrameBinders(
base::BindRepeating(&printing::CreateWebPrintingServiceForFrame));
#endif
-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
- if (base::FeatureList::IsEnabled(blink::features::kEnableTranslationAPI)) {
- map->Add(base::BindRepeating(
- &on_device_translation::TranslationManagerImpl::Create));
- }
-#endif
-
#if BUILDFLAG(IS_ANDROID)
if (base::FeatureList::IsEnabled(blink::features::kPaymentLinkDetection)) {
map->Add(
@@ -956,10 +959,23 @@ void PopulateChromeWebUIFrameBinders(
commerce::mojom::CommerceInternalsHandlerFactory,
commerce::CommerceInternalsUI>(map);
+ if (base::FeatureList::IsEnabled(features::kInternalOnlyUisPref)) {
+ RegisterWebUIControllerInterfaceBinder<
+ chrome_urls::mojom::PageHandlerFactory, chrome_urls::ChromeUrlsUI>(map);
+ }
+
RegisterWebUIControllerInterfaceBinder<
data_sharing_internals::mojom::PageHandlerFactory,
DataSharingInternalsUI>(map);
+#if BUILDFLAG(ENABLE_GLIC)
+ if (GlicEnabling::IsEnabledForProfile(Profile::FromBrowserContext(
+ render_frame_host->GetProcess()->GetBrowserContext()))) {
+ RegisterWebUIControllerInterfaceBinder(map);
+ }
+#endif
+
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
BUILDFLAG(IS_CHROMEOS_ASH)
RegisterWebUIControllerInterfaceBinder<
@@ -1001,12 +1017,6 @@ void PopulateChromeWebUIFrameBinders(
lens::LensOverlayUntrustedUI>(map);
}
- if (lens::features::IsLensOverlayEnabled() &&
- lens::features::IsLensOverlaySearchBubbleEnabled()) {
- RegisterWebUIControllerInterfaceBinder<
- lens::mojom::SearchBubblePageHandlerFactory, lens::SearchBubbleUI>(map);
- }
-
RegisterWebUIControllerInterfaceBinder<
color_change_listener::mojom::PageHandler,
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
@@ -1029,7 +1039,7 @@ void PopulateChromeWebUIFrameBinders(
policy::local_user_files::LocalFilesMigrationUI,
#endif
NewTabPageUI, OmniboxPopupUI, BookmarksSidePanelUI, CustomizeChromeUI,
- InternalsUI, ReadingListUI, TabSearchUI, WebuiGalleryUI,
+ UserEducationInternalsUI, ReadingListUI, TabSearchUI, WebuiGalleryUI,
HistoryClustersSidePanelUI, ShoppingInsightsSidePanelUI,
media_router::AccessCodeCastUI, commerce::ProductSpecificationsUI>(map);
@@ -1049,7 +1059,7 @@ void PopulateChromeWebUIFrameBinders(
HistoryUI,
HistoryClustersSidePanelUI>(map);
}
- if (history_embeddings::IsHistoryEmbeddingsEnabled()) {
+ if (history_embeddings::IsHistoryEmbeddingsFeatureEnabled()) {
if (history_clusters_service &&
history_clusters_service->is_journeys_feature_flag_enabled()) {
RegisterWebUIControllerInterfaceBinder<
@@ -1104,7 +1114,7 @@ void PopulateChromeWebUIFrameBinders(
#endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
RegisterWebUIControllerInterfaceBinder<
- help_bubble::mojom::HelpBubbleHandlerFactory, InternalsUI,
+ help_bubble::mojom::HelpBubbleHandlerFactory, UserEducationInternalsUI,
settings::SettingsUI, ReadingListUI, NewTabPageUI, CustomizeChromeUI,
PasswordManagerUI, HistoryUI, lens::LensOverlayUntrustedUI,
lens::LensSidePanelUntrustedUI
@@ -1141,12 +1151,17 @@ void PopulateChromeWebUIFrameBinders(
ntp::calendar::mojom::OutlookCalendarPageHandler, NewTabPageUI>(map);
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- if (ash::features::IsBluetoothDisconnectWarningEnabled()) {
+ if (base::FeatureList::IsEnabled(
+ ntp_features::kNtpMicrosoftAuthenticationModule)) {
RegisterWebUIControllerInterfaceBinder<
- ash::mojom::HidPreservingBluetoothStateController,
- ash::settings::OSSettingsUI>(map);
+ ntp::authentication::mojom::MicrosoftAuthPageHandler, NewTabPageUI>(
+ map);
}
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ RegisterWebUIControllerInterfaceBinder<
+ ash::mojom::HidPreservingBluetoothStateController,
+ ash::settings::OSSettingsUI>(map);
#endif // defined(IS_CHROMEOS_ASH)
RegisterWebUIControllerInterfaceBinder<
@@ -1165,6 +1180,14 @@ void PopulateChromeWebUIFrameBinders(
ProductSpecificationsHandlerFactory,
commerce::ProductSpecificationsUI, HistoryUI>(map);
+ RegisterWebUIControllerInterfaceBinder<
+ commerce::price_tracking::mojom::PriceTrackingHandlerFactory,
+ ShoppingInsightsSidePanelUI, BookmarksSidePanelUI>(map);
+
+ RegisterWebUIControllerInterfaceBinder<
+ commerce::price_insights::mojom::PriceInsightsHandlerFactory,
+ ShoppingInsightsSidePanelUI>(map);
+
RegisterWebUIControllerInterfaceBinder<
side_panel::mojom::CustomizeChromePageHandlerFactory, CustomizeChromeUI>(
map);
@@ -1196,7 +1219,7 @@ void PopulateChromeWebUIFrameBinders(
RegisterWebUIControllerInterfaceBinder<
::mojom::user_education_internals::UserEducationInternalsPageHandler,
- InternalsUI>(map);
+ UserEducationInternalsUI>(map);
RegisterWebUIControllerInterfaceBinder<
::mojom::app_service_internals::AppServiceInternalsPageHandler,
@@ -1256,11 +1279,8 @@ void PopulateChromeWebUIFrameBinders(
ash::settings::mojom::DisplaySettingsProvider,
ash::settings::OSSettingsUI>(map);
- if (::features::IsShortcutCustomizationEnabled()) {
- RegisterWebUIControllerInterfaceBinder<
- ash::common::mojom::AcceleratorFetcher, ash::settings::OSSettingsUI>(
- map);
- }
+ RegisterWebUIControllerInterfaceBinder(map);
RegisterWebUIControllerInterfaceBinder<
ash::common::mojom::ShortcutInputProvider, ash::settings::OSSettingsUI,
@@ -1617,20 +1637,18 @@ void PopulateChromeWebUIFrameBinders(
// NearbyShareDialogUI will not be created for non-primary profiles, and 2)
// rely on the BindInterface implementation of OSSettingsUI to ensure that no
// Nearby Share receivers are bound.
- if (base::FeatureList::IsEnabled(features::kNearbySharing)) {
- RegisterWebUIControllerInterfaceBinder<
- nearby_share::mojom::NearbyShareSettings, ash::settings::OSSettingsUI,
- nearby_share::NearbyShareDialogUI>(map);
- RegisterWebUIControllerInterfaceBinder(
- map);
- RegisterWebUIControllerInterfaceBinder<
- nearby_share::mojom::DiscoveryManager,
- nearby_share::NearbyShareDialogUI>(map);
- RegisterWebUIControllerInterfaceBinder(map);
- }
+ RegisterWebUIControllerInterfaceBinder<
+ nearby_share::mojom::NearbyShareSettings, ash::settings::OSSettingsUI,
+ nearby_share::NearbyShareDialogUI>(map);
+ RegisterWebUIControllerInterfaceBinder(
+ map);
+ RegisterWebUIControllerInterfaceBinder(
+ map);
+ RegisterWebUIControllerInterfaceBinder(map);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
@@ -1778,6 +1796,10 @@ void PopulateChromeWebUIFrameInterfaceBrokers(
registry.ForWebUI()
.Add();
+
+ registry.ForWebUI()
+ .Add()
+ .Add();
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OFFICIAL_BUILD)
@@ -1807,17 +1829,8 @@ void PopulateChromeWebUIFrameInterfaceBrokers(
.Add()
.Add();
}
- if (lens::features::IsLensOverlaySearchBubbleEnabled()) {
- registry.ForWebUI()
- .Add()
- .Add()
- .Add();
- }
registry.ForWebUI()
.Add();
- if (base::FeatureList::IsEnabled(features::kHaTSWebUI)) {
- registry.ForWebUI().Add();
- }
if (base::FeatureList::IsEnabled(
data_sharing::features::kDataSharingFeature)) {
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 25b5c325..a1a8e77a 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
@@ -30,8 +30,8 @@
#include "base/memory/scoped_refptr.h"
#include "base/metrics/field_trial_params.h"
#include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
+#include "base/notreached.h"
#include "base/path_service.h"
#include "base/ranges/algorithm.h"
#include "base/stl_util.h"
@@ -46,10 +46,9 @@
#include "base/values.h"
#include "build/branding_buildflags.h"
#include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
#include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM
#include "chrome/browser/after_startup_task_utils.h"
-#include "chrome/browser/ai/ai_manager_keyed_service_factory.h"
+#include "chrome/browser/ai/ai_manager.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/bluetooth/chrome_bluetooth_delegate.h"
#include "chrome/browser/bluetooth/chrome_bluetooth_delegate_impl_client.h"
@@ -88,6 +87,7 @@
#include "chrome/browser/hid/chrome_hid_delegate.h"
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/interstitials/enterprise_util.h"
+#include "chrome/browser/language_detection/language_detection_model_service_factory.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
#include "chrome/browser/media/audio_service_util.h"
@@ -173,6 +173,7 @@
#include "chrome/browser/supervised_user/supervised_user_navigation_throttle.h"
#include "chrome/browser/tab_group_sync/tab_group_sync_utils.h"
#include "chrome/browser/task_manager/sampling/task_manager_impl.h"
+#include "chrome/browser/task_manager/task_manager_interface.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/tracing/chrome_tracing_delegate.h"
@@ -194,6 +195,7 @@
#include "chrome/browser/ui/web_applications/navigation_capturing_redirection_throttle.h"
#include "chrome/browser/ui/webid/identity_dialog_controller.h"
#include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
+#include "chrome/browser/ui/webui/internal_debug_pages_disabled/internal_debug_pages_disabled_ui.h"
#include "chrome/browser/ui/webui/log_web_ui_url.h"
#include "chrome/browser/ui/webui/top_chrome/webui_url_utils.h"
#include "chrome/browser/universal_web_contents_observers.h"
@@ -201,6 +203,7 @@
#include "chrome/browser/vr/vr_tab_helper.h"
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h"
#include "chrome/browser/webapps/web_app_offline.h"
+#include "chrome/browser/webauthn/chrome_web_authentication_delegate.h"
#include "chrome/browser/webauthn/webauthn_pref_names.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/channel_info.h"
@@ -236,6 +239,7 @@
#include "components/content_settings/core/browser/private_network_settings.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
+#include "components/content_settings/core/common/cookie_settings_base.h"
#include "components/custom_handlers/protocol_handler_registry.h"
#include "components/custom_handlers/protocol_handler_throttle.h"
#include "components/dom_distiller/core/dom_distiller_switches.h"
@@ -260,6 +264,8 @@
#include "components/keep_alive_registry/keep_alive_types.h"
#include "components/keep_alive_registry/scoped_keep_alive.h"
#include "components/language/core/browser/pref_names.h"
+#include "components/language_detection/content/browser/content_language_detection_driver.h"
+#include "components/language_detection/content/common/language_detection.mojom.h"
#include "components/lens/buildflags.h"
#include "components/live_caption/caption_util.h"
#include "components/media_device_salt/media_device_salt_service.h"
@@ -280,7 +286,6 @@
#include "components/payments/content/payment_handler_navigation_throttle.h"
#include "components/payments/content/payment_request_display_manager.h"
#include "components/pdf/common/pdf_util.h"
-#include "components/performance_manager/embedder/performance_manager_registry.h"
#include "components/permissions/permission_context_base.h"
#include "components/policy/content/policy_blocklist_navigation_throttle.h"
#include "components/policy/content/policy_blocklist_service.h"
@@ -302,6 +307,7 @@
#include "components/safe_browsing/core/browser/hashprefix_realtime/hash_realtime_service.h"
#include "components/safe_browsing/core/browser/realtime/policy_engine.h"
#include "components/safe_browsing/core/browser/realtime/url_lookup_service.h"
+#include "components/safe_browsing/core/browser/referring_app_info.h"
#include "components/safe_browsing/core/browser/url_checker_delegate.h"
#include "components/safe_browsing/core/common/features.h"
#include "components/safe_browsing/core/common/hashprefix_realtime/hash_realtime_utils.h"
@@ -337,6 +343,7 @@
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/client_certificate_delegate.h"
#include "content/public/browser/digital_identity_provider.h"
+#include "content/public/browser/dips_delegate.h"
#include "content/public/browser/file_url_loader.h"
#include "content/public/browser/isolated_web_apps_policy.h"
#include "content/public/browser/legacy_tech_cookie_issue_details.h"
@@ -377,6 +384,7 @@
#include "mojo/public/cpp/bindings/remote.h"
#include "net/base/data_url.h"
#include "net/base/features.h"
+#include "net/cookies/cookie_setting_override.h"
#include "net/cookies/site_for_cookies.h"
#include "net/ssl/client_cert_store.h"
#include "net/ssl/ssl_cert_request_info.h"
@@ -399,7 +407,7 @@
#include "services/network/public/mojom/network_service.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "services/network/public/mojom/web_transport.mojom.h"
-#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h"
+#include "services/video_effects/public/cpp/buildflags.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/loader/url_loader_throttle.h"
#include "third_party/blink/public/common/navigation/navigation_policy.h"
@@ -433,8 +441,10 @@
#include "chrome/browser/chrome_browser_main_win.h"
#include "chrome/browser/lifetime/application_lifetime_desktop.h"
#include "chrome/browser/performance_manager/public/dll_pre_read_policy_win.h"
+#include "chrome/browser/tracing/windows_system_tracing_client_win.h"
#include "chrome/install_static/install_util.h"
#include "chrome/services/util_win/public/mojom/util_win.mojom.h"
+#include "content/public/browser/tracing_service.h"
#include "sandbox/win/src/sandbox_policy.h"
#include "ui/accessibility/accessibility_features.h"
#elif BUILDFLAG(IS_MAC)
@@ -446,7 +456,7 @@
#include "sandbox/mac/sandbox_compiler.h"
#include "sandbox/policy/mac/params.h"
#include "sandbox/policy/mac/sandbox_mac.h"
-#elif BUILDFLAG(IS_CHROMEOS_ASH)
+#elif BUILDFLAG(IS_CHROMEOS)
#include "ash/constants/ash_features.h"
#include "ash/constants/ash_pref_names.h"
#include "ash/constants/ash_switches.h"
@@ -494,9 +504,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/40118868): Revisit the macro expression once build flag switch
-// of lacros-chrome is complete.
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#elif BUILDFLAG(IS_LINUX)
#include "chrome/browser/chrome_browser_main_linux.h"
#include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
#elif BUILDFLAG(IS_ANDROID)
@@ -512,9 +520,9 @@
#include "chrome/browser/android/tab_web_contents_delegate_android.h"
#include "chrome/browser/chrome_browser_main_android.h"
#include "chrome/browser/digital_credentials/digital_identity_provider_android.h"
-#include "chrome/browser/download/android/available_offline_content_provider.h"
#include "chrome/browser/download/android/intercept_oma_download_navigation_throttle.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
+#include "chrome/browser/safe_browsing/android/safe_browsing_referring_app_bridge_android.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
#include "chrome/common/chrome_descriptors.h"
#include "components/browser_ui/accessibility/android/font_size_prefs_android.h"
@@ -573,17 +581,14 @@
#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/direct_sockets/chrome_direct_sockets_delegate.h"
-#include "chrome/browser/enterprise/connectors/connectors_service.h"
#include "chrome/browser/headless/chrome_browser_main_extra_parts_headless.h"
#include "chrome/browser/media/unified_autoplay_config.h"
-#include "chrome/browser/media_effects/media_effects_manager_binder.h"
#include "chrome/browser/metrics/usage_scenario/chrome_responsiveness_calculator_delegate.h"
#include "chrome/browser/new_tab_page/new_tab_page_util.h"
-#include "chrome/browser/page_info/about_this_site_side_panel_throttle.h"
+#include "chrome/browser/page_info/web_view_side_panel_throttle.h"
#include "chrome/browser/search/instant_service.h"
#include "chrome/browser/search/instant_service_factory.h"
#include "chrome/browser/serial/chrome_serial_delegate.h"
-#include "chrome/browser/task_manager/task_manager_interface.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -611,10 +616,7 @@
#include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom.h"
#endif // !BUILDFLAG(IS_ANDROID)
-// 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))
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
#include "chrome/browser/browser_switcher/browser_switcher_navigation_throttle.h"
#endif
@@ -638,19 +640,15 @@
#endif
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
- BUILDFLAG(IS_CHROMEOS_ASH)
+ BUILDFLAG(IS_CHROMEOS)
#include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h"
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ||
- // BUILDFLAG(IS_CHROMEOS_ASH)
+ // BUILDFLAG(IS_CHROMEOS)
#if defined(TOOLKIT_VIEWS)
#include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h"
#endif
-#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
-#include "chrome/browser/ui/views/lens/lens_side_panel_navigation_helper.h"
-#endif
-
#if BUILDFLAG(IS_LINUX)
#include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
#elif BUILDFLAG(IS_OZONE)
@@ -725,25 +723,34 @@
#include "chrome/browser/media/cast_remoting_connector.h"
#endif
+#if BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+#include "chrome/browser/media_effects/media_effects_manager_binder.h"
+#include "media/capture/mojom/video_effects_manager.mojom-forward.h"
+#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h"
+#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+
#if BUILDFLAG(ENABLE_REQUEST_HEADER_INTEGRITY)
#include "chrome/browser/request_header_integrity/request_header_integrity_url_loader_throttle.h" // nogncheck crbug.com/1125897
#endif
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
+#include "chrome/browser/enterprise/connectors/connectors_service.h"
+#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.h"
+#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service_factory.h"
#include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
#endif
-#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL)
-#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.h" // nogncheck crbug.com/1125897
-#include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service_factory.h" // nogncheck crbug.com/1125897
-#endif
-
#if BUILDFLAG(ENABLE_OFFLINE_PAGES)
#include "chrome/browser/offline_pages/offline_page_navigation_throttle.h"
#include "chrome/browser/offline_pages/offline_page_tab_helper.h"
#include "chrome/browser/offline_pages/offline_page_url_loader_request_interceptor.h"
#endif
+#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
+#include "chrome/browser/on_device_translation/translation_manager_impl.h"
+#include "third_party/blink/public/mojom/on_device_translation/translation_manager.mojom.h"
+#endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
+
#if BUILDFLAG(FULL_SAFE_BROWSING)
#include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h"
#endif
@@ -752,21 +759,6 @@
#include "chrome/browser/vr/chrome_xr_integration_client.h"
#endif
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
-#include "chrome/browser/chrome_browser_main_parts_lacros.h"
-#include "chrome/browser/lacros/chrome_browser_main_extra_parts_lacros.h"
-#include "chrome/browser/speech/tts_lacros.h"
-#include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_lacros.h"
-#include "chrome/common/chrome_descriptors.h"
-#include "chromeos/crosapi/mojom/kerberos_in_browser.mojom.h"
-#include "chromeos/lacros/lacros_service.h"
-#include "chromeos/startup/browser_init_params.h"
-#include "chromeos/startup/startup.h" // nogncheck
-#include "chromeos/startup/startup_switches.h" // nogncheck
-#include "mojo/core/embedder/embedder.h"
-#include "ui/base/ui_base_switches.h"
-#endif
-
#if BUILDFLAG(USE_MINIKIN_HYPHENATION) && !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/component_updater/hyphenation_component_installer.h"
#endif
@@ -792,10 +784,13 @@
#endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
#if BUILDFLAG(ENTERPRISE_DATA_CONTROLS) && !BUILDFLAG(IS_ANDROID)
-#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) && !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENTERPRISE_DATA_CONTROLS)
+#include "chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.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)
@@ -841,6 +836,8 @@ using web_apps::ChromeContentBrowserClientIsolatedWebAppsPart;
namespace {
+const char kAIManagerUserDataKey[] = "ai_manager";
+
BASE_FEATURE(kSkipPagehideInCommitForDSENavigation,
"SkipPagehideInCommitForDSENavigation",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -849,6 +846,14 @@ BASE_FEATURE(kDisableJavascriptOptimizerByDefault,
"DisableJavascriptOptimizerByDefault",
base::FEATURE_DISABLED_BY_DEFAULT);
+#if BUILDFLAG(IS_WIN)
+// A Feature to selectively enable connecting to the Windows system tracing
+// service when the tracing service is started.
+BASE_FEATURE(kWindowsSystemTracing,
+ "WindowsSystemTracing",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+#endif // BUILDFLAG(IS_WIN)
+
// A small ChromeBrowserMainExtraParts that invokes a callback when threads are
// ready. Used to initialize ChromeContentBrowserClient data that needs the UI
// thread.
@@ -1236,7 +1241,7 @@ void LaunchURL(
url_state == policy::URLBlocklist::URLBlocklistState::URL_IN_ALLOWLIST;
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// Never skip security checks for the intent:// scheme because
// `ExternalProtocolHandler::LaunchUrlWithoutSecurityCheck` does not handle
// intent:// URLs correctly (or any URLs that should be opened in ARC).
@@ -1324,13 +1329,6 @@ void MaybeAddCondition(
}
#endif
-void MaybeAddThrottles(
- std::vector> additional,
- std::vector>* combined) {
- combined->insert(combined->end(), std::make_move_iterator(additional.begin()),
- std::make_move_iterator(additional.end()));
-}
-
// Returns whether |web_contents| is within a hosted app.
bool IsInHostedApp(WebContents* web_contents) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -1357,7 +1355,6 @@ bool IsErrorPageAutoReloadEnabled() {
void NotifyMultiCaptureStarted(const std::string& label,
content::WebContents* web_contents,
const webapps::AppId* app_id) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
if (app_id &&
video_capture::mojom::MultiCaptureServiceClient::Version_ >=
video_capture::mojom::MultiCaptureServiceClient::MethodMinVersions::
@@ -1373,39 +1370,10 @@ void NotifyMultiCaptureStarted(const std::string& label,
content::GetMultiCaptureService().NotifyMultiCaptureStarted(
label, url::Origin::Create(web_contents->GetLastCommittedURL()));
}
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
- chromeos::LacrosService& service =
- CHECK_DEREF(chromeos::LacrosService::Get());
- crosapi::mojom::MultiCaptureService& multi_capture_service = CHECK_DEREF(
- service.GetRemote().get());
- if (app_id &&
- service.GetInterfaceVersion() >=
- (int)crosapi::mojom::MultiCaptureService::MethodMinVersions::
- kMultiCaptureStartedFromAppMinVersion) {
- multi_capture_service.MultiCaptureStartedFromApp(
- label, *app_id,
- web_app::WebAppProvider::GetForWebContents(web_contents)
- ->registrar_unsafe()
- .GetAppShortName(*app_id));
- } else {
- // TODO(b/319317165): Remove this case once the pivot to web apps is
- // complete.
- multi_capture_service.MultiCaptureStarted(
- label, web_contents->GetLastCommittedURL().host());
- }
-#endif
}
void NotifyMultiCaptureStopped(const std::string& label) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
content::GetMultiCaptureService().NotifyMultiCaptureStopped(label);
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
- crosapi::mojom::MultiCaptureService& multi_capture_service =
- CHECK_DEREF(chromeos::LacrosService::Get()
- ->GetRemote()
- .get());
- multi_capture_service.MultiCaptureStopped(label);
-#endif
}
bool IsSubAppsPermissionGrantedByAdmins(content::WebContents* contents) {
@@ -1507,6 +1475,15 @@ net::handles::NetworkHandle GetBoundNetworkFromRenderFrameHost(
return web_contents->GetTargetNetwork();
}
+ProfileSelections GetHumanProfileSelections() {
+ return ProfileSelections::Builder()
+ .WithRegular(ProfileSelection::kOwnInstance)
+ .WithGuest(ProfileSelection::kOffTheRecordOnly)
+ .WithSystem(ProfileSelection::kNone)
+ .WithAshInternals(ProfileSelection::kNone)
+ .Build();
+}
+
} // namespace
// static
@@ -1772,13 +1749,10 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) {
#elif BUILDFLAG(IS_MAC)
main_parts = std::make_unique(is_integration_test,
&startup_data_);
-#elif BUILDFLAG(IS_CHROMEOS_ASH)
+#elif BUILDFLAG(IS_CHROMEOS)
main_parts = std::make_unique(
is_integration_test, &startup_data_);
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
- main_parts = std::make_unique(
- is_integration_test, &startup_data_);
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#elif BUILDFLAG(IS_LINUX)
main_parts = std::make_unique(
is_integration_test, &startup_data_);
#elif BUILDFLAG(IS_ANDROID)
@@ -1807,12 +1781,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) {
// Construct additional browser parts. Stages are called in the order in
// which they are added.
#if defined(TOOLKIT_VIEWS)
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- main_parts->AddParts(
- std::make_unique());
-// 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)
+#if BUILDFLAG(IS_LINUX)
main_parts->AddParts(
std::make_unique());
#else
@@ -1824,15 +1793,11 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) {
main_parts->AddParts(std::make_unique());
#endif
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// TODO(jamescook): Combine with `ChromeBrowserMainPartsAsh`.
main_parts->AddParts(std::make_unique());
#endif
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- main_parts->AddParts(std::make_unique());
-#endif
-
#if BUILDFLAG(IS_LINUX)
main_parts->AddParts(std::make_unique());
#elif BUILDFLAG(IS_OZONE)
@@ -1980,8 +1945,9 @@ void ChromeContentBrowserClient::RenderProcessWillLaunch(
#if BUILDFLAG(ENABLE_NACL)
if (IsNaclAllowed() && !profile->IsSystemProfile()) {
- host->AddFilter(new nacl::NaClHostMessageFilter(
- host->GetID(), profile->IsOffTheRecord(), profile->GetPath()));
+ host->AddFilter(new nacl::NaClHostMessageFilter(host->GetDeprecatedID(),
+ profile->IsOffTheRecord(),
+ profile->GetPath()));
}
#endif
@@ -2255,11 +2221,6 @@ void ChromeContentBrowserClient::OverrideURLLoaderFactoryParams(
const url::Origin& origin,
bool is_for_isolated_world,
network::mojom::URLLoaderFactoryParams* factory_params) {
-#if BUILDFLAG(IS_ANDROID)
- // Loading state text isn't used on Android, only in desktop UI.
- factory_params->provide_loading_state_updates = false;
-#endif
-
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
if (ChromeContentBrowserClientExtensionsPart::AreExtensionsDisabledForProfile(
browser_context)) {
@@ -2303,12 +2264,9 @@ ChromeContentBrowserClient::DetermineAddressSpaceFromURL(const GURL& url) {
return network::mojom::IPAddressSpace::kUnknown;
}
-bool ChromeContentBrowserClient::LogWebUICreated(const GURL& web_ui_url) {
- return webui::LogWebUICreated(web_ui_url);
-}
-
-bool ChromeContentBrowserClient::LogWebUIShown(const GURL& web_ui_url) {
- return webui::LogWebUIShown(web_ui_url);
+void ChromeContentBrowserClient::LogWebUIUsage(
+ std::variant webui_variant) {
+ webui::LogWebUIUsage(webui_variant);
}
bool ChromeContentBrowserClient::IsWebUIAllowedToMakeNetworkRequests(
@@ -2421,7 +2379,7 @@ bool ChromeContentBrowserClient::IsSuitableHost(
InstantServiceFactory::GetForProfile(profile);
if (instant_service) {
bool is_instant_process =
- instant_service->IsInstantProcess(process_host->GetID());
+ instant_service->IsInstantProcess(process_host->GetDeprecatedID());
bool should_be_in_instant_process =
search::ShouldAssignURLToInstantRenderer(site_url, profile);
if (is_instant_process || should_be_in_instant_process)
@@ -2478,8 +2436,15 @@ ChromeContentBrowserClient::GetPermissionsPolicyForIsolatedWebApp(
Profile::FromBrowserContext(web_contents->GetBrowserContext());
auto& registrar =
web_app::WebAppProvider::GetForWebApps(profile)->registrar_unsafe();
+ // TODO(crbug.com/379916273): Evaluate call sites of FindBestAppWithUrlInScope
+ // for correctness.
std::vector app_ids_for_origin =
- registrar.FindAppsInScope(app_origin.GetURL());
+ registrar.FindAllAppsNestedInUrl(
+ app_origin.GetURL(),
+ {
+ web_app::proto::InstallState::INSTALLED_WITH_OS_INTEGRATION,
+ web_app::proto::InstallState::INSTALLED_WITHOUT_OS_INTEGRATION,
+ });
if (app_ids_for_origin.empty()) {
return blink::ParsedPermissionsPolicy();
}
@@ -2765,16 +2730,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
const base::CommandLine& browser_command_line =
*base::CommandLine::ForCurrentProcess();
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- // Pass startup parameter FDs to child processes in Lacros.
- if (process_type != switches::kZygoteProcess) {
- constexpr int kStartupDataFD =
- kCrosStartupDataDescriptor + base::GlobalDescriptors::kBaseDescriptor;
- command_line->AppendSwitchASCII(chromeos::switches::kCrosStartupDataFD,
- base::NumberToString(kStartupDataFD));
- }
-#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
-
static const char* const kCommonSwitchNames[] = {
embedder_support::kUserAgent,
switches::kUserDataDir, // Make logs go to the right file.
@@ -2788,7 +2743,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->CopySwitchesFrom(browser_command_line,
kDinosaurEasterEggSwitches);
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// On Chrome OS need to pass primary user homedir (in multi-profiles session).
base::FilePath homedir;
base::PathService::Get(base::DIR_HOME, &homedir);
@@ -2804,7 +2759,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
}
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
const std::string& login_profile =
browser_command_line.GetSwitchValueASCII(ash::switches::kLoginProfile);
if (!login_profile.empty()) {
@@ -2873,7 +2828,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
InstantService* instant_service =
InstantServiceFactory::GetForProfile(profile);
if (instant_service &&
- instant_service->IsInstantProcess(process->GetID())) {
+ instant_service->IsInstantProcess(process->GetDeprecatedID())) {
command_line->AppendSwitch(switches::kInstantProcess);
}
@@ -2970,7 +2925,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
static const char* const kSwitchNames[] = {
autofill::switches::kIgnoreAutocompleteOffForAutofill,
autofill::switches::kShowAutofillSignatures,
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
switches::kShortMergeSessionTimeoutForTest, // For tests only.
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -3043,11 +2998,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->CopySwitchesFrom(browser_command_line, kSwitchNames);
#endif
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- // Ensure zygote loads the resource bundle for the right locale.
- static const char* const kMoreSwitchNames[] = {switches::kLang};
- command_line->CopySwitchesFrom(browser_command_line, kMoreSwitchNames);
-#endif
#if BUILDFLAG(IS_CHROMEOS)
// This is called before feature flags are parsed, so pass them in their raw
// form.
@@ -3063,7 +3013,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitch(switches::kDisableBreakpad);
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (ChromeCrashReporterClient::ShouldPassCrashLoopBefore(process_type)) {
static const char* const kSwitchNames[] = {
crash_reporter::switches::kCrashLoopBefore,
@@ -3099,7 +3049,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
}
}
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
// Opt into a hardened stack canary mitigation if it hasn't already been
// force-disabled.
if (!browser_command_line.HasSwitch(switches::kChangeStackGuardOnFork)) {
@@ -3728,18 +3678,6 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
content::WebContents* web_contents,
const GURL& url,
const blink::StorageKey& storage_key) {
- return dips_move::IsFullCookieAccessAllowed(browser_context, web_contents,
- url, storage_key);
-}
-
-// TODO: crbug.com/369813097 - Move this implementation into
-// ChromeContentBrowserClient::IsFullCookieAccessAllowed() after DIPS migrates
-// to //content.
-namespace dips_move {
-bool IsFullCookieAccessAllowed(content::BrowserContext* browser_context,
- content::WebContents* web_contents,
- const GURL& url,
- const blink::StorageKey& storage_key) {
Profile* profile = Profile::FromBrowserContext(browser_context);
scoped_refptr cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
@@ -3751,7 +3689,6 @@ bool IsFullCookieAccessAllowed(content::BrowserContext* browser_context,
url::Origin::Create(storage_key.top_level_site().GetURL()),
cookie_settings->SettingOverridesForStorage());
}
-} // namespace dips_move
void ChromeContentBrowserClient::GrantCookieAccessDueToHeuristic(
content::BrowserContext* browser_context,
@@ -3759,19 +3696,6 @@ void ChromeContentBrowserClient::GrantCookieAccessDueToHeuristic(
const net::SchemefulSite& accessing_site,
base::TimeDelta ttl,
bool ignore_schemes) {
- dips_move::GrantCookieAccessDueToHeuristic(
- browser_context, top_frame_site, accessing_site, ttl, ignore_schemes);
-}
-
-// TODO: crbug.com/369813097 - Move this implementation into
-// ChromeContentBrowserClient::GrantCookieAccessDueToHeuristic() after DIPS
-// migrates to //content.
-namespace dips_move {
-void GrantCookieAccessDueToHeuristic(content::BrowserContext* browser_context,
- const net::SchemefulSite& top_frame_site,
- const net::SchemefulSite& accessing_site,
- base::TimeDelta ttl,
- bool ignore_schemes) {
scoped_refptr cookie_settings =
CookieSettingsFactory::GetForProfile(
Profile::FromBrowserContext(browser_context));
@@ -3783,7 +3707,6 @@ void GrantCookieAccessDueToHeuristic(content::BrowserContext* browser_context,
accessing_site.GetURL(), top_frame_site.GetURL(), ttl,
/*use_schemeless_patterns=*/ignore_schemes);
}
-} // namespace dips_move
#if BUILDFLAG(IS_CHROMEOS)
void ChromeContentBrowserClient::OnTrustAnchorUsed(
@@ -4026,8 +3949,10 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs,
Profile::FromBrowserContext(web_contents->GetBrowserContext())) {
if (ThemeService* theme_service =
ThemeServiceFactory::GetForProfile(profile)) {
- using_different_colored_frame = !theme_service->UsingDefaultTheme() ||
- theme_service->GetUserColor().has_value();
+ using_different_colored_frame =
+ !theme_service->UsingDefaultTheme() ||
+ theme_service->GetUserColor().has_value() ||
+ theme_service->UsingDeviceTheme();
}
}
@@ -4067,7 +3992,7 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs,
// Returns whether the user can be prompted to select a client certificate after
// no certificate got auto-selected.
bool CanPromptWithNonmatchingCertificates(const Profile* profile) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (ash::ProfileHelper::IsSigninProfile(profile) ||
ash::ProfileHelper::IsLockScreenProfile(profile)) {
// On non-regular profiles (e.g. sign-in profile or lock-screen profile),
@@ -4116,7 +4041,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
}
Profile* profile = Profile::FromBrowserContext(browser_context);
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// On the sign-in or lock screen profile, only allow client certs in the
// context of the sign-in frame.
// Note that this is explicitly not happening for the lock screen app profile
@@ -4156,7 +4081,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
}
VLOG(1) << "Client cert requested in " << profile_name << " profile.";
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
GURL requesting_url =
enterprise_util::GetRequestingUrl(cert_request_info->host_and_port);
@@ -4289,7 +4214,7 @@ bool ChromeContentBrowserClient::CanCreateWindow(
auto* process_map = extensions::ProcessMap::Get(profile);
auto* registry = extensions::ExtensionRegistry::Get(profile);
if (!URLHasExtensionPermission(process_map, registry, opener_url,
- opener->GetProcess()->GetID(),
+ opener->GetProcess()->GetDeprecatedID(),
APIPermissionID::kBackground)) {
return false;
}
@@ -4311,7 +4236,7 @@ bool ChromeContentBrowserClient::CanCreateWindow(
#if BUILDFLAG(ENABLE_GUEST_VIEW)
if (extensions::WebViewRendererState::GetInstance()->IsGuest(
- opener->GetProcess()->GetID())) {
+ opener->GetProcess()->GetDeprecatedID())) {
return true;
}
#endif
@@ -4351,7 +4276,7 @@ ChromeContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return new speech::ChromeSpeechRecognitionManagerDelegate();
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
content::TtsControllerDelegate*
ChromeContentBrowserClient::GetTtsControllerDelegate() {
return TtsControllerDelegateImpl::GetInstance();
@@ -4376,10 +4301,8 @@ content::TtsPlatform* ChromeContentBrowserClient::GetTtsPlatform() {
content::TtsController::GetInstance()->SetTtsEngineDelegate(
TtsExtensionEngine::GetInstance());
#endif
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
return TtsPlatformImplChromeOs::GetInstance();
-#elif BUILDFLAG(IS_CHROMEOS_LACROS)
- return TtsPlatformImplLacros::GetInstance();
#else
return nullptr;
#endif
@@ -4462,14 +4385,14 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs(
web_prefs->text_size_contrast_factor =
prefs->GetInteger(prefs::kAccessibilityTextSizeContrastFactor);
web_prefs->force_enable_zoom =
- prefs->GetBoolean(browser_ui::prefs::kWebKitForceEnableZoom);
+ prefs->GetBoolean(prefs::kAccessibilityForceEnableZoom);
web_prefs->font_weight_adjustment =
prefs->GetInteger(prefs::kAccessibilityFontWeightAdjustment);
#endif
web_prefs->force_dark_mode_enabled =
prefs->GetBoolean(prefs::kWebKitForceDarkModeEnabled);
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
web_prefs->always_show_focus =
prefs->GetBoolean(ash::prefs::kAccessibilityFocusHighlightEnabled);
#else
@@ -4576,13 +4499,13 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs(
web_prefs->web_app_scope = registrar.GetAppScope(app_id);
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
auto* system_app = browser->app_controller()->system_app();
if (system_app) {
web_prefs->allow_scripts_to_close_windows =
system_app->ShouldAllowScriptsToCloseWindows();
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
}
}
#endif
@@ -4946,7 +4869,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSystemBackends(
const base::FilePath& storage_partition_path,
std::vector>*
additional_backends) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
storage::ExternalMountPoints* external_mount_points =
browser_context->GetMountPoints();
DCHECK(external_mount_points);
@@ -5012,62 +4935,9 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
}
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS)
-
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- // Map startup parameter files to child processes in Lacros.
- // The FD numbers are passed via command line switches in
- // |AppendExtraCommandLineSwitches|.
- //
- // NOTE: the Zygote process requires special handling.
- // Serializing startup data early in the initialization
- // process requires temporarily initializing Mojo. That's handled in the
- // |LaunchZygoteHelper| function in |content_main_runner_impl.cc|. Here, we
- // deal with all other type of processes.
- std::string process_type =
- command_line.GetSwitchValueASCII(switches::kProcessType);
- if (process_type != switches::kZygoteProcess) {
- base::ScopedFD cros_startup_fd =
- chromeos::BrowserInitParams::CreateStartupData();
- if (cros_startup_fd.is_valid()) {
- constexpr int kStartupDataFD =
- kCrosStartupDataDescriptor + base::GlobalDescriptors::kBaseDescriptor;
- mappings->Transfer(kStartupDataFD, std::move(cros_startup_fd));
- }
- }
-#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
}
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
-void ChromeContentBrowserClient::GetAdditionalMappedFilesForZygote(
- base::CommandLine* command_line,
- PosixFileDescriptorInfo* mappings) {
- // Create the file descriptor for Cros startup data and pass it.
- // This FD will be used to obtain BrowserInitParams in Zygote process.
- // Note that this requires Mojo, but Mojo cannot be fully initialized this
- // due to dependencies on base::FeatureList. So we also temporarily initialize
- // Mojo and then shut it down immediately after preparing the FD. This is
- // inexpensive, an the features which control Mojo behavior aren't relevant
- // for this operation.
- //
- // 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();
- base::ScopedFD cros_startup_fd =
- chromeos::BrowserInitParams::CreateStartupData();
- mojo::core::ShutDown();
-
- if (cros_startup_fd.is_valid()) {
- constexpr int kStartupDataFD =
- kCrosStartupDataDescriptor + base::GlobalDescriptors::kBaseDescriptor;
- command_line->AppendSwitchASCII(chromeos::switches::kCrosStartupDataFD,
- base::NumberToString(kStartupDataFD));
- mappings->Transfer(kStartupDataFD, std::move(cros_startup_fd));
- }
-}
-#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
-
#if BUILDFLAG(IS_WIN)
std::wstring ChromeContentBrowserClient::GetAppContainerSidForSandboxType(
sandbox::mojom::Sandbox sandbox_type,
@@ -5103,8 +4973,7 @@ std::wstring ChromeContentBrowserClient::GetAppContainerSidForSandboxType(
case sandbox::mojom::Sandbox::kMediaFoundationCdm:
case sandbox::mojom::Sandbox::kWindowsSystemProxyResolver:
// Should never reach here.
- CHECK(0);
- return std::wstring();
+ NOTREACHED();
}
}
@@ -5265,10 +5134,10 @@ bool ChromeContentBrowserClient::ShouldEnableAudioProcessHighPriority() {
return IsAudioProcessHighPriorityEnabled();
}
-bool ChromeContentBrowserClient::ShouldUseSkiaFontManager(
+bool ChromeContentBrowserClient::ShouldUseFontDataManager(
const GURL& site_url) {
return IsTopChromeWebUIURL(site_url) &&
- base::FeatureList::IsEnabled(features::kSkiaFontService);
+ base::FeatureList::IsEnabled(features::kFontDataService);
}
#endif // BUILDFLAG(IS_WIN)
@@ -5400,7 +5269,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
&throttles);
#endif
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// Check if we need to add merge session throttle. This throttle will postpone
// loading of main frames.
if (handle->IsInMainFrame()) {
@@ -5413,9 +5282,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
throttles.push_back(ash::MergeSessionNavigationThrottle::Create(handle));
}
}
-#endif
-#if BUILDFLAG(IS_CHROMEOS)
auto disabled_app_throttle =
apps::ChromeOsDisabledAppsThrottle::MaybeCreate(handle);
if (disabled_app_throttle) {
@@ -5465,6 +5332,12 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
}
#endif
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
+ MaybeAddThrottle(
+ extensions::WebViewGuest::MaybeCreateNavigationThrottle(handle),
+ &throttles);
+#endif
+
MaybeAddThrottle(
SupervisedUserGoogleAuthNavigationThrottle::MaybeCreate(handle),
&throttles);
@@ -5553,12 +5426,12 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
- BUILDFLAG(IS_CHROMEOS_ASH)
+ BUILDFLAG(IS_CHROMEOS)
MaybeAddThrottle(enterprise_connectors::DeviceTrustNavigationThrottle::
MaybeCreateThrottleFor(handle),
&throttles);
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ||
- // BUILDFLAG(IS_CHROMEOS_ASH)
+ // BUILDFLAG(IS_CHROMEOS)
#if !BUILDFLAG(IS_ANDROID)
MaybeAddThrottle(DevToolsWindow::MaybeCreateNavigationThrottle(handle),
@@ -5598,7 +5471,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
&throttles);
#endif
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
MaybeAddThrottle(
chromeos::KioskSettingsNavigationThrottle::MaybeCreateThrottleFor(handle),
&throttles);
@@ -5614,14 +5487,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
MaybeAddThrottle(MaybeCreateAuthSessionThrottleFor(handle), &throttles);
#endif
- auto* performance_manager_registry =
- performance_manager::PerformanceManagerRegistry::GetInstance();
- if (performance_manager_registry) {
- MaybeAddThrottles(
- performance_manager_registry->CreateThrottlesForNavigation(handle),
- &throttles);
- }
-
if (profile && profile->GetPrefs()) {
MaybeAddThrottle(
security_interstitials::InsecureFormNavigationThrottle::
@@ -5647,14 +5512,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
handle),
&throttles);
-#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
- if (lens::features::IsLensSidePanelEnabled()) {
- MaybeAddThrottle(
- lens::LensSidePanelNavigationHelper::MaybeCreateThrottleFor(handle),
- &throttles);
- }
-#endif
-
#if !BUILDFLAG(IS_ANDROID)
MaybeAddThrottle(ReadAnythingSidePanelNavigationThrottle::CreateFor(handle),
&throttles);
@@ -5690,7 +5547,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
MaybeAddThrottle(MaybeCreateNavigationAblationThrottle(handle), &throttles);
#if !BUILDFLAG(IS_ANDROID)
- MaybeAddThrottle(MaybeCreateAboutThisSiteThrottleFor(handle), &throttles);
+ MaybeAddThrottle(MaybeCreateWebViewSidePanelThrottleFor(handle), &throttles);
#endif
auto* privacy_sandbox_settings =
@@ -5770,9 +5627,8 @@ ChromeContentBrowserClient::CreateScreenEnumerator() const {
bool ChromeContentBrowserClient::EnforceSystemAudioEchoCancellation() {
// TODO(b/270042522): This is a short term solution to enforce the system
- // audio cancellation and will be removed before Lacros is released. The
- // short term solution will not work on Lacros.
-#if BUILDFLAG(IS_CHROMEOS_ASH) && BUILDFLAG(USE_CRAS)
+ // audio cancellation.
+#if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CRAS)
bool system_aec_enabled = false;
ash::CrosSettings::Get()->GetBoolean(ash::kDeviceSystemAecEnabled,
&system_aec_enabled);
@@ -5967,64 +5823,92 @@ ChromeContentBrowserClient::MaybeCreateSafeBrowsingURLLoaderThrottle(
content::FrameTreeNodeId frame_tree_node_id,
std::optional navigation_id,
Profile* profile) {
- bool matches_enterprise_allowlist = safe_browsing::IsURLAllowlistedByPolicy(
- request.url, *profile->GetPrefs());
- if (!matches_enterprise_allowlist) {
-#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL)
- auto* connectors_service =
- enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
- browser_context);
- bool has_valid_dm_token =
- connectors_service &&
- connectors_service->GetDMTokenForRealTimeUrlCheck().has_value();
- bool is_enterprise_lookup_enabled =
- safe_browsing::RealTimePolicyEngine::CanPerformEnterpriseFullURLLookup(
- profile->GetPrefs(), has_valid_dm_token, profile->IsOffTheRecord(),
- profile->IsGuestSession());
-#else
- bool is_enterprise_lookup_enabled = false;
-#endif
- bool is_consumer_lookup_enabled =
- safe_browsing::RealTimePolicyEngine::CanPerformFullURLLookup(
- profile->GetPrefs(), profile->IsOffTheRecord(),
- g_browser_process->variations_service());
-
- // |url_lookup_service| is used when real time url check is enabled.
- safe_browsing::RealTimeUrlLookupServiceBase* url_lookup_service =
- GetUrlLookupService(browser_context, is_enterprise_lookup_enabled,
- is_consumer_lookup_enabled);
- safe_browsing::HashRealTimeService* hash_realtime_service =
- safe_browsing_service_
- ? safe_browsing_service_->GetHashRealTimeService(profile)
- : nullptr;
- safe_browsing::hash_realtime_utils::HashRealTimeSelection
- hash_realtime_selection =
- safe_browsing::hash_realtime_utils::DetermineHashRealTimeSelection(
- profile->IsOffTheRecord(), profile->GetPrefs(),
- safe_browsing::hash_realtime_utils::GetCountryCode(
- g_browser_process->variations_service()),
- /*log_usage_histograms=*/true,
- /*are_background_lookups_allowed=*/true);
- safe_browsing::AsyncCheckTracker* async_check_tracker =
- GetAsyncCheckTracker(wc_getter, is_enterprise_lookup_enabled,
- is_consumer_lookup_enabled,
- hash_realtime_selection, frame_tree_node_id);
-
- return safe_browsing::BrowserURLLoaderThrottle::Create(
- base::BindRepeating(
- &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate,
- base::Unretained(this),
- safe_browsing::IsSafeBrowsingEnabled(*profile->GetPrefs()),
- // Should check for enterprise when safe browsing is disabled.
- /*should_check_on_sb_disabled=*/is_enterprise_lookup_enabled,
- safe_browsing::GetURLAllowlistByPolicy(profile->GetPrefs())),
- wc_getter, frame_tree_node_id, navigation_id,
- url_lookup_service ? url_lookup_service->GetWeakPtr() : nullptr,
- hash_realtime_service ? hash_realtime_service->GetWeakPtr() : nullptr,
- hash_realtime_selection,
- async_check_tracker ? async_check_tracker->GetWeakPtr() : nullptr);
+ if (safe_browsing::IsURLAllowlistedByPolicy(request.url,
+ *profile->GetPrefs())) {
+ // Don't run checks if it matches the enterprise allowlist.
+ return nullptr;
}
- return nullptr;
+ auto* connectors_service =
+ enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
+ browser_context);
+ bool has_valid_dm_token = false;
+ if (connectors_service) {
+ base::expected
+ dm_token = connectors_service->GetDMTokenForRealTimeUrlCheck();
+ has_valid_dm_token = dm_token.has_value();
+ if (dm_token.has_value()) {
+ base::UmaHistogramBoolean(
+ "SafeBrowsing.RT.EnterpriseRealTimePolicyEnabled.HasDmToken", true);
+ } else if (dm_token.error() ==
+ enterprise_connectors::ConnectorsServiceBase::
+ NoDMTokenForRealTimeUrlCheckReason::kNoDmToken) {
+ base::UmaHistogramBoolean(
+ "SafeBrowsing.RT.EnterpriseRealTimePolicyEnabled.HasDmToken", false);
+ }
+ }
+ bool is_enterprise_lookup_enabled =
+ safe_browsing::RealTimePolicyEngine::CanPerformEnterpriseFullURLLookup(
+ profile->GetPrefs(), has_valid_dm_token, profile->IsOffTheRecord(),
+ profile->IsGuestSession());
+#if BUILDFLAG(IS_ANDROID)
+ is_enterprise_lookup_enabled =
+ is_enterprise_lookup_enabled &&
+ base::FeatureList::IsEnabled(
+ safe_browsing::kEnterpriseRealTimeUrlCheckOnAndroid);
+#endif
+ bool is_consumer_lookup_enabled =
+ safe_browsing::RealTimePolicyEngine::CanPerformFullURLLookup(
+ profile->GetPrefs(), profile->IsOffTheRecord(),
+ g_browser_process->variations_service());
+
+ // |url_lookup_service| is used when real time url check is enabled.
+ safe_browsing::RealTimeUrlLookupServiceBase* url_lookup_service =
+ GetUrlLookupService(browser_context, is_enterprise_lookup_enabled,
+ is_consumer_lookup_enabled);
+ safe_browsing::HashRealTimeService* hash_realtime_service =
+ safe_browsing_service_
+ ? safe_browsing_service_->GetHashRealTimeService(profile)
+ : nullptr;
+ safe_browsing::hash_realtime_utils::HashRealTimeSelection
+ hash_realtime_selection =
+ safe_browsing::hash_realtime_utils::DetermineHashRealTimeSelection(
+ profile->IsOffTheRecord(), profile->GetPrefs(),
+ safe_browsing::hash_realtime_utils::GetCountryCode(
+ g_browser_process->variations_service()),
+ /*log_usage_histograms=*/true,
+ /*are_background_lookups_allowed=*/true);
+ safe_browsing::AsyncCheckTracker* async_check_tracker = GetAsyncCheckTracker(
+ wc_getter, is_enterprise_lookup_enabled, is_consumer_lookup_enabled,
+ hash_realtime_selection, frame_tree_node_id);
+
+ std::optional referring_app_info =
+ std::nullopt;
+#if BUILDFLAG(IS_ANDROID)
+ if (base::FeatureList::IsEnabled(
+ safe_browsing::kAddReferringAppInfoToProtegoPings)) {
+ WebContents* web_contents = wc_getter.Run();
+ if (web_contents) {
+ referring_app_info =
+ std::make_optional(
+ safe_browsing::GetReferringAppInfo(web_contents));
+ }
+ }
+#endif
+ return safe_browsing::BrowserURLLoaderThrottle::Create(
+ base::BindRepeating(
+ &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate,
+ base::Unretained(this),
+ safe_browsing::IsSafeBrowsingEnabled(*profile->GetPrefs()),
+ // Should check for enterprise when safe browsing is disabled.
+ /*should_check_on_sb_disabled=*/is_enterprise_lookup_enabled,
+ safe_browsing::GetURLAllowlistByPolicy(profile->GetPrefs())),
+ wc_getter, frame_tree_node_id, navigation_id,
+ url_lookup_service ? url_lookup_service->GetWeakPtr() : nullptr,
+ hash_realtime_service ? hash_realtime_service->GetWeakPtr() : nullptr,
+ hash_realtime_selection,
+ async_check_tracker ? async_check_tracker->GetWeakPtr() : nullptr,
+ std::move(referring_app_info));
}
#endif
@@ -6239,7 +6123,7 @@ mojo::PendingRemote
ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory(
const std::string& scheme,
content::FrameTreeNodeId frame_tree_node_id) {
-#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) || BUILDFLAG(IS_CHROMEOS_ASH) || \
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) || BUILDFLAG(IS_CHROMEOS) || \
!BUILDFLAG(IS_ANDROID)
content::WebContents* web_contents =
content::WebContents::FromFrameTreeNodeId(frame_tree_node_id);
@@ -6254,7 +6138,6 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory(
is_guest =
!!extensions::WebViewGuest::FromFrameTreeNodeId(frame_tree_node_id);
#endif
-
return extensions::CreateExtensionNavigationURLLoaderFactory(
browser_context, is_guest);
}
@@ -6269,12 +6152,12 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory(
if (AreKeyedServicesDisabledForProfileByDefault(profile))
return {};
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (scheme == content::kExternalFileScheme) {
return ash::ExternalFileURLLoaderFactory::Create(
profile, content::ChildProcessHost::kInvalidUniqueID);
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
#if !BUILDFLAG(IS_ANDROID)
if (scheme == chrome::kIsolatedAppScheme) {
if (content::IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled(
@@ -6287,7 +6170,7 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory(
return {};
}
#endif // !BUILDFLAG(IS_ANDROID)
-#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) || BUILDFLAG(IS_CHROMEOS_ASH) ||
+#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) || BUILDFLAG(IS_CHROMEOS) ||
// !BUILDFLAG(IS_ANDROID)
return {};
@@ -6437,7 +6320,7 @@ bool IsSystemFeatureURLDisabled(const GURL& url) {
return IsSystemFeatureDisabled(policy::SystemFeature::kBrowserSettings);
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (url.DomainIs(chrome::kChromeUIUntrustedCroshHost)) {
return IsSystemFeatureDisabled(policy::SystemFeature::kCrosh);
}
@@ -6519,11 +6402,10 @@ void AddChromeSchemeFactories(
// InstantService might be null for some irregular profiles, e.g. the System
// Profile.
if (instant_service && instant_service->IsInstantProcess(render_process_id)) {
- factories->emplace(
- chrome::kChromeSearchScheme,
- content::CreateWebUIURLLoaderFactory(
- frame_host, chrome::kChromeSearchScheme,
- /*allowed_webui_hosts=*/base::flat_set()));
+ factories->emplace(chrome::kChromeSearchScheme,
+ content::CreateWebUIURLLoaderFactory(
+ frame_host, chrome::kChromeSearchScheme,
+ /*allowed_hosts=*/base::flat_set()));
}
extensions::ExtensionWebContentsObserver* web_observer =
@@ -6572,15 +6454,15 @@ void ChromeContentBrowserClient::
int render_frame_id,
const std::optional& request_initiator_origin,
NonNetworkURLLoaderFactoryMap* factories) {
-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_EXTENSIONS) || \
+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_EXTENSIONS) || \
!BUILDFLAG(IS_ANDROID)
content::RenderFrameHost* frame_host =
RenderFrameHost::FromID(render_process_id, render_frame_id);
WebContents* web_contents = WebContents::FromRenderFrameHost(frame_host);
-#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_EXTENSIONS) || \
+#endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_EXTENSIONS) || \
// !BUILDFLAG(IS_ANDROID)
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (web_contents) {
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
@@ -6588,7 +6470,7 @@ void ChromeContentBrowserClient::
content::kExternalFileScheme,
ash::ExternalFileURLLoaderFactory::Create(profile, render_process_id));
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
#if !BUILDFLAG(IS_ANDROID)
{
@@ -6895,12 +6777,10 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
SystemNetworkContextManager::GetInstance()->OnNetworkServiceCreated(
network_service);
-#if !BUILDFLAG(IS_ANDROID)
if (task_manager::TaskManagerImpl::IsCreated() &&
task_manager::TaskManagerImpl::GetInstance()->is_running()) {
network_service->EnableDataUseUpdates(true);
}
-#endif
}
void ChromeContentBrowserClient::ConfigureNetworkContextParams(
@@ -7113,6 +6993,7 @@ ChromeContentBrowserClient::CreateLoginDelegate(
const GURL& url,
scoped_refptr response_headers,
bool first_auth_attempt,
+ content::GuestPageHolder* guest,
LoginAuthRequiredCallback auth_required_callback) {
#if BUILDFLAG(IS_CHROMEOS)
// Negotiate challenge is handled via GSSAPI library, which can not receive
@@ -7123,19 +7004,10 @@ ChromeContentBrowserClient::CreateLoginDelegate(
if (base::FeatureList::IsEnabled(net::features::kKerberosInBrowserRedirect) &&
auth_info.scheme ==
net::HttpAuth::SchemeToString(net::HttpAuth::AUTH_SCHEME_NEGOTIATE)) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
ash::KerberosInBrowserDialog::Show();
-#else
- // Requests to show Kerberos ui via crosapi mojo call.
- chromeos::LacrosService::Get()
- ->GetRemote()
- ->ShowKerberosInBrowserDialog();
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
return nullptr;
}
-#endif // BUILDFLAG(IS_CHROMEOS)
-#if BUILDFLAG(IS_CHROMEOS_ASH)
auto* system_proxy_manager = ash::SystemProxyManager::Get();
// For Managed Guest Session and Kiosk devices, the credentials configured
// via the policy SystemProxySettings may be used for proxy authentication.
@@ -7150,17 +7022,15 @@ ChromeContentBrowserClient::CreateLoginDelegate(
return ash::HttpAuthDialog::Create(auth_info, web_contents, url,
std::move(auth_required_callback));
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
if (!http_auth_coordinator_) {
http_auth_coordinator_ = CreateHttpAuthCoordinator();
}
- // Once Lacros ships this logic will no longer need to be included in
- // ash-chrome.
return http_auth_coordinator_->CreateLoginDelegate(
web_contents, browser_context, auth_info, request_id,
is_request_for_primary_main_frame_navigation, is_request_for_navigation,
- url, response_headers, std::move(auth_required_callback));
+ url, response_headers, guest, std::move(auth_required_callback));
}
bool ChromeContentBrowserClient::HandleExternalProtocol(
@@ -7255,46 +7125,21 @@ bool ChromeContentBrowserClient::HandleWebUI(
#endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
#if !BUILDFLAG(IS_ANDROID)
- Profile* profile = Profile::FromBrowserContext(browser_context);
- auto* tracking_protection_settings =
- TrackingProtectionSettingsFactory::GetForProfile(profile);
- if (base::FeatureList::IsEnabled(
- privacy_sandbox::kTrackingProtection3pcdUx) &&
- tracking_protection_settings &&
- tracking_protection_settings->IsTrackingProtection3pcdEnabled()) {
- // Redirect from cookies to trackingProtection in experiment.
- if (url->SchemeIs(content::kChromeUIScheme) &&
- url->host() == chrome::kChromeUISettingsHost &&
- url->path() == chrome::kCookiesSubPagePath) {
- GURL::Replacements replacements;
- replacements.SetPathStr(chrome::kTrackingProtectionSubPagePath);
- *url = url->ReplaceComponents(replacements);
- UMA_HISTOGRAM_BOOLEAN("Settings.TrackingProtection.Redirect", true);
- } else if (url->path() == chrome::kTrackingProtectionSubPagePath) {
- UMA_HISTOGRAM_BOOLEAN("Settings.TrackingProtection.Redirect", false);
- }
- } else {
- // Redirect from trackingProtection to cookies outside experiment.
- if (url->SchemeIs(content::kChromeUIScheme) &&
- url->host() == chrome::kChromeUISettingsHost &&
- url->path() == chrome::kTrackingProtectionSubPagePath) {
- GURL::Replacements replacements;
- replacements.SetPathStr(chrome::kCookiesSubPagePath);
- *url = url->ReplaceComponents(replacements);
- }
+ // Redirect from deprecated trackingProtection subpage to cookies.
+ if (url->SchemeIs(content::kChromeUIScheme) &&
+ url->host() == chrome::kChromeUISettingsHost &&
+ url->path() == chrome::kTrackingProtectionSubPagePath) {
+ GURL::Replacements replacements;
+ replacements.SetPathStr(chrome::kCookiesSubPagePath);
+ *url = url->ReplaceComponents(replacements);
+ base::UmaHistogramBoolean("Settings.Cookies.TrackingProtectionRedirect",
+ true);
+ } else if (url->path() == chrome::kCookiesSubPagePath) {
+ base::UmaHistogramBoolean("Settings.Cookies.TrackingProtectionRedirect",
+ false);
}
#endif
-#if BUILDFLAG(IS_WIN)
- // TODO(crbug.com/40647483): Remove when issue is resolved.
- if (url->SchemeIs(content::kChromeUIScheme) &&
- url->host() == chrome::kChromeUIWelcomeWin10Host) {
- *url =
- ReplaceURLHostAndPath(*url, chrome::kChromeUIWelcomeHost, url->path());
- return true;
- }
-#endif // BUILDFLAG(IS_WIN)
-
if (!ChromeWebUIControllerFactory::GetInstance()->UseWebUIForURL(
browser_context, *url) &&
!content::WebUIConfigMap::GetInstance().GetConfig(browser_context,
@@ -7302,7 +7147,7 @@ bool ChromeContentBrowserClient::HandleWebUI(
return false;
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
// Special case : in ChromeOS in Guest mode bookmarks and history are
// disabled for security reasons. New tab page explains the reasons, so
// we redirect user to new tab page.
@@ -7314,9 +7159,7 @@ bool ChromeContentBrowserClient::HandleWebUI(
*url = GURL(chrome::kChromeUINewTabURL);
}
}
-#endif
-#if BUILDFLAG(IS_CHROMEOS)
if (IsSystemFeatureURLDisabled(*url)) {
*url = GURL(chrome::kChromeUIAppDisabledURL);
return true;
@@ -7353,16 +7196,6 @@ bool ChromeContentBrowserClient::ShowPaymentHandlerWindow(
bool ChromeContentBrowserClient::HandleWebUIReverse(
GURL* url,
content::BrowserContext* browser_context) {
-#if BUILDFLAG(IS_WIN)
- // 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) &&
- url->host() == chrome::kChromeUIWelcomeHost) {
- return true;
- }
-#endif // BUILDFLAG(IS_WIN)
-
#if BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
// No need to actually reverse-rewrite the URL, but return true to update the
// displayed URL when rewriting chrome://settings/certificates to
@@ -7431,16 +7264,11 @@ ChromeContentBrowserClient::GetUrlLookupService(
if (!safe_browsing_service_) {
return nullptr;
}
-
Profile* profile = Profile::FromBrowserContext(browser_context);
-
-#if BUILDFLAG(SAFE_BROWSING_DB_LOCAL)
if (is_enterprise_lookup_enabled) {
return safe_browsing::ChromeEnterpriseRealTimeUrlLookupServiceFactory::
GetForProfile(profile);
}
-#endif
-
if (is_consumer_lookup_enabled) {
return safe_browsing::RealTimeUrlLookupServiceFactory::GetForProfile(
profile);
@@ -7524,10 +7352,8 @@ void ChromeContentBrowserClient::OnNetworkServiceDataUseUpdate(
int32_t network_traffic_annotation_id_hash,
int64_t recv_bytes,
int64_t sent_bytes) {
-#if !BUILDFLAG(IS_ANDROID)
task_manager::TaskManagerInterface::UpdateAccumulatedStatsNetworkForRoute(
render_frame_host_id, recv_bytes, sent_bytes);
-#endif
}
base::FilePath
@@ -7852,10 +7678,10 @@ bool ChromeContentBrowserClient::IsClipboardPasteAllowed(
render_frame_host->GetMainFrame()->GetLastCommittedOrigin().GetURL();
auto* registry = extensions::ExtensionRegistry::Get(profile);
if (url.SchemeIs(extensions::kExtensionScheme)) {
- return URLHasExtensionPermission(extensions::ProcessMap::Get(profile),
- registry, url,
- render_frame_host->GetProcess()->GetID(),
- APIPermissionID::kClipboardRead);
+ return URLHasExtensionPermission(
+ extensions::ProcessMap::Get(profile), registry, url,
+ render_frame_host->GetProcess()->GetDeprecatedID(),
+ APIPermissionID::kClipboardRead);
}
// or (4) origination from a process that at least might be running a
@@ -7889,6 +7715,13 @@ void ChromeContentBrowserClient::IsClipboardPasteAllowedByPolicy(
enterprise_data_protection::PasteAllowedRequest::StartPasteAllowedRequest(
source, destination, metadata, std::move(clipboard_paste_data),
std::move(callback));
+#elif BUILDFLAG(IS_ANDROID)
+ // PasteAllowedRequest::StartPasteAllowedRequest triggers logic for policies
+ // that aren't supported on Clank. Thus, PasteIfAllowedByPolicy is instead
+ // called directly.
+ enterprise_data_protection::PasteIfAllowedByPolicy(
+ source, destination, metadata, std::move(clipboard_paste_data),
+ std::move(callback));
#else
std::move(callback).Run(std::move(clipboard_paste_data));
#endif // BUILDFLAG(ENTERPRISE_DATA_CONTROLS)
@@ -7899,8 +7732,7 @@ void ChromeContentBrowserClient::IsClipboardCopyAllowedByPolicy(
const content::ClipboardMetadata& metadata,
const ClipboardPasteData& data,
IsClipboardCopyAllowedCallback callback) {
-// TODO(b/352728209): Add Android-specific hook for Data Controls.
-#if BUILDFLAG(ENTERPRISE_DATA_CONTROLS) && !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENTERPRISE_DATA_CONTROLS)
enterprise_data_protection::IsClipboardCopyAllowedByPolicy(
source, metadata, data, std::move(callback));
#else
@@ -7933,14 +7765,6 @@ ChromeContentBrowserClient::GetXrIntegrationClient() {
}
#endif // BUILDFLAG(ENABLE_VR)
-void ChromeContentBrowserClient::BindBrowserControlInterface(
- mojo::ScopedMessagePipeHandle pipe) {
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
- chromeos::LacrosService::Get()->BindReceiver(
- chrome::GetVersionString(chrome::WithExtendedStable(true)));
-#endif
-}
-
bool ChromeContentBrowserClient::
ShouldInheritCrossOriginEmbedderPolicyImplicitly(const GURL& url) {
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
@@ -8369,7 +8193,7 @@ ChromeContentBrowserClient::GetAlternativeErrorPageOverrideInfo(
}
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
using PortalState = chromeos::network_config::mojom::PortalState;
auto portal_state = ash::network_health::NetworkHealthManager::GetInstance()
->helper()
@@ -8476,6 +8300,29 @@ bool ChromeContentBrowserClient::IsThirdPartyStoragePartitioningAllowed(
CONTENT_SETTING_ALLOW;
}
+bool ChromeContentBrowserClient::
+ IsUnpartitionedStorageAccessAllowedByUserPreference(
+ content::BrowserContext* browser_context,
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies,
+ const url::Origin& top_frame_origin) {
+ content_settings::CookieSettings* cookie_settings =
+ CookieSettingsFactory::GetForProfile(
+ Profile::FromBrowserContext(browser_context))
+ .get();
+
+ if (!cookie_settings) {
+ // If there are no cookies settings then nothing is limiting storage access.
+ return true;
+ }
+
+ // Cookie settings overrides are not relevant for this check.
+ net::CookieSettingOverrides empty_overrides;
+
+ return cookie_settings->IsFullCookieAccessAllowed(
+ url, site_for_cookies, top_frame_origin, empty_overrides);
+}
+
bool ChromeContentBrowserClient::AreDeprecatedAutomaticBeaconCredentialsAllowed(
content::BrowserContext* browser_context,
const GURL& destination_url,
@@ -8616,7 +8463,7 @@ bool ChromeContentBrowserClient::
#endif
}
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_VIDEO_EFFECTS)
void ChromeContentBrowserClient::BindVideoEffectsManager(
const std::string& device_id,
content::BrowserContext* browser_context,
@@ -8634,7 +8481,7 @@ void ChromeContentBrowserClient::BindVideoEffectsProcessor(
media_effects::BindVideoEffectsProcessor(device_id, browser_context,
std::move(video_effects_processor));
}
-#endif // !BUILDFLAG(IS_ANDROID)
+#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS)
void ChromeContentBrowserClient::PreferenceRankAudioDeviceInfos(
content::BrowserContext* browser_context,
@@ -8704,7 +8551,22 @@ void ChromeContentBrowserClient::NotifyMultiCaptureStateChanged(
std::unique_ptr
ChromeContentBrowserClient::CreateDipsDelegate() {
- return ChromeDipsDelegate::Create();
+ return std::make_unique(
+ base::PassKey());
+}
+
+bool ChromeContentBrowserClient::ShouldEnableDips(
+ content::BrowserContext* browser_context) {
+ return ShouldBrowserContextEnableDips(browser_context);
+}
+
+bool ShouldBrowserContextEnableDips(content::BrowserContext* browser_context) {
+ Profile* profile = Profile::FromBrowserContext(browser_context);
+ Profile* result = GetHumanProfileSelections().ApplyProfileSelection(profile);
+ // TODO: crbug.com/358137275 - Use CHECK() once we know it's safe.
+ DUMP_WILL_BE_CHECK(!result || result == profile)
+ << "ApplyProfileSelection() returned a different profile";
+ return result == profile;
}
bool ChromeContentBrowserClient::ShouldSuppressAXLoadComplete(
@@ -8721,9 +8583,46 @@ void ChromeContentBrowserClient::BindAIManager(
content::BrowserContext* browser_context,
base::SupportsUserData* context_user_data,
mojo::PendingReceiver receiver) {
- auto* ai_manager =
- AIManagerKeyedServiceFactory::GetAIManagerKeyedService(browser_context);
- ai_manager->AddReceiver(std::move(receiver), *context_user_data);
+ if (!context_user_data->GetUserData(kAIManagerUserDataKey)) {
+ context_user_data->SetUserData(
+ kAIManagerUserDataKey, std::make_unique(browser_context));
+ }
+
+ AIManager* ai_manager = static_cast(
+ context_user_data->GetUserData(kAIManagerUserDataKey));
+ ai_manager->AddReceiver(std::move(receiver));
+}
+
+#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
+void ChromeContentBrowserClient::BindTranslationManager(
+ content::BrowserContext* browser_context,
+ base::SupportsUserData* context_user_data,
+ const url::Origin& origin,
+ mojo::PendingReceiver receiver) {
+ on_device_translation::TranslationManagerImpl::Bind(
+ browser_context, context_user_data, origin, std::move(receiver));
+}
+#endif
+
+namespace {
+
+const char kContentLanguageDetectionDriverUserDataKey[] =
+ "ContentLanguageDetectionDriverUserDataKey";
+
+} // namespace
+
+void ChromeContentBrowserClient::BindLanguageDetectionDriver(
+ content::BrowserContext* browser_context,
+ base::SupportsUserData* context_user_data,
+ mojo::PendingReceiver<
+ language_detection::mojom::ContentLanguageDetectionDriver> receiver) {
+ auto language_detection_driver =
+ std::make_unique(
+ LanguageDetectionModelServiceFactory::GetForProfile(
+ Profile::FromBrowserContext(browser_context)));
+ language_detection_driver->AddReceiver(std::move(receiver));
+ context_user_data->SetUserData(kContentLanguageDetectionDriverUserDataKey,
+ std::move(language_detection_driver));
}
#if !BUILDFLAG(IS_ANDROID)
@@ -8857,6 +8756,12 @@ void ChromeContentBrowserClient::SetSamplingProfiler(
sampling_profiler_ = std::move(sampling_profiler);
}
+void ChromeContentBrowserClient::AddExtraPartForTesting(
+ std::unique_ptr part) {
+ // AddExtraPart takes ownership of a raw pointer.
+ AddExtraPart(part.release());
+}
+
bool ChromeContentBrowserClient::ShouldDispatchPagehideDuringCommit(
content::BrowserContext* browser_context,
const GURL& destination_url) {
@@ -8872,3 +8777,41 @@ bool ChromeContentBrowserClient::ShouldDispatchPagehideDuringCommit(
!template_url_service->IsSearchResultsPageFromDefaultSearchProvider(
destination_url);
}
+
+#if BUILDFLAG(IS_WIN)
+void ChromeContentBrowserClient::OnTracingServiceStarted() {
+ CHECK(!windows_system_tracing_client_);
+ if (base::FeatureList::IsEnabled(kWindowsSystemTracing)) {
+ windows_system_tracing_client_ = WindowsSystemTracingClient::Create(
+ install_static::GetTracingServiceClsid(),
+ install_static::GetTracingServiceIid());
+ windows_system_tracing_client_->Start(base::BindOnce(
+ [](base::ProcessId pid,
+ mojo::PendingRemote remote_process) {
+ content::GetTracingService().AddClient(
+ tracing::mojom::ClientInfo::New(pid, std::move(remote_process)));
+ }));
+ }
+}
+
+void ChromeContentBrowserClient::OnTracingServiceStopped() {
+ windows_system_tracing_client_.reset();
+}
+#endif // BUILDFLAG(IS_WIN)
+
+std::unique_ptr
+ChromeContentBrowserClient::OverrideForInternalWebUI(content::WebUI* web_ui,
+ const GURL& url) {
+ if (!base::FeatureList::IsEnabled(features::kInternalOnlyUisPref)) {
+ return nullptr;
+ }
+
+ PrefService* local_state = g_browser_process->local_state();
+ DCHECK(local_state);
+ DCHECK(local_state->FindPreference(prefs::kInternalOnlyUisEnabled));
+ if (local_state->GetBoolean(prefs::kInternalOnlyUisEnabled)) {
+ return nullptr;
+ }
+
+ return std::make_unique(web_ui, url.host());
+}
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 7d352058..48d8f868 100755
--- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc
+++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc
@@ -247,7 +247,6 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
-#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
#include "chrome/browser/android/preferences/browser_prefs_android.h"
@@ -257,6 +256,7 @@
#include "chrome/browser/lens/android/lens_prefs.h"
#include "chrome/browser/media/android/cdm/media_drm_origin_id_manager.h"
#include "chrome/browser/notifications/notification_channels_provider_android.h"
+#include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/password_manager/android/password_manager_android_util.h"
#include "chrome/browser/readaloud/android/prefs.h"
#include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h"
@@ -268,7 +268,6 @@
#include "components/permissions/contexts/geolocation_permission_context_android.h"
#include "components/webapps/browser/android/install_prompt_prefs.h"
#else // BUILDFLAG(IS_ANDROID)
-#include "chrome/browser/cart/cart_service.h"
#include "chrome/browser/device_api/device_service_impl.h"
#include "chrome/browser/gcm/gcm_product_util.h"
#include "chrome/browser/hid/hid_policy_allowed_devices.h"
@@ -278,11 +277,13 @@
#include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
#include "chrome/browser/new_tab_page/modules/file_suggestion/drive_service.h"
#include "chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h"
+#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h"
#include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.h"
+#include "chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar_page_handler.h"
#include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption_page_handler.h"
#include "chrome/browser/new_tab_page/promos/promo_service.h"
#include "chrome/browser/policy/developer_tools_policy_handler.h"
-#include "chrome/browser/promos/promos_utils.h"
+#include "chrome/browser/promos/promos_utils.h" // nogncheck crbug.com/1125897
#include "chrome/browser/screen_ai/pref_names.h"
#include "chrome/browser/search/background/ntp_custom_background_service.h"
#include "chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h"
@@ -457,7 +458,6 @@
#include "components/onc/onc_pref_names.h" // nogncheck
#include "components/quirks/quirks_manager.h"
#include "components/user_manager/user_manager_impl.h"
-#include "extensions/browser/api/lock_screen_data/lock_screen_item_storage.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_MAC)
@@ -547,46 +547,16 @@
#include "components/enterprise/data_controls/core/browser/prefs.h"
#endif
+#if BUILDFLAG(ENABLE_GLIC)
+#include "chrome/browser/glic/glic_profile_configuration.h"
+#include "chrome/browser/glic/launcher/glic_launcher_configuration.h"
+#endif
+
namespace {
// Please keep the list of deprecated prefs in chronological order. i.e. Add to
// the bottom of the list, not here at the top.
-// Deprecated 10/2023.
-const char kSyncRequested[] = "sync.requested";
-
-// Deprecated 12/2023.
-#if BUILDFLAG(IS_ANDROID)
-const char kTemplatesRandomOrder[] = "content_creation.notes.random_order";
-#endif
-
-// Deprecated 12/2023.
-#if BUILDFLAG(IS_ANDROID)
-const char kDesktopSitePeripheralSettingEnabled[] =
- "desktop_site.peripheral_setting";
-const char kDesktopSiteDisplaySettingEnabled[] = "desktop_site.display_setting";
-#endif
-
-// Deprecated 12/2023.
-constexpr char kDownloadDuplicateFilePromptEnabled[] =
- "download_duplicate_file_prompt_enabled";
-
-// Deprecated 12/2023.
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-constexpr char kIsolatedWebAppsEnabled[] = "ash.isolated_web_apps_enabled";
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
-
-// Deprecated 12/2023.
-const char kPrivacyBudgetReportedReidBlocks[] =
- "privacy_budget.reported_reid_blocks";
-
-// Deprecated from profile prefs 12/2023.
-const char kModelQualityLoggingClientId[] =
- "optimization_guide.model_quality_logging_client_id";
-
-// Deprecated 12/2023.
-const char kSync_ExplicitBrowserSignin[] = "sync.explicit_browser_signin";
-
// Deprecated 01/2024.
const char kPrivacySandboxPageViewed[] = "privacy_sandbox.page_viewed";
@@ -1054,6 +1024,10 @@ inline constexpr char kWhatsNewHatsActivationThreshold[] =
"browser.whats_new_hats_activation_threshold";
#endif
+// Deprecated 10/2024.
+const char kModelExecutionMainToggleSettingState[] =
+ "optimization_guide.model_execution_main_toggle_setting_state";
+
#if BUILDFLAG(IS_CHROMEOS_ASH)
// Deprecated 10/2024
// An integer pref which determines how much FaceGaze should smooth cursor
@@ -1109,6 +1083,11 @@ constexpr char kNoteTakingAppsLockScreenToastShown[] =
"settings.note_taking_apps_lock_screen_toast_shown";
constexpr char kRestoreLastLockScreenNote[] =
"settings.restore_last_lock_screen_note";
+constexpr char kLockScreenDataPrefKey[] = "lockScreenDataItems";
+inline constexpr char kSyncableVersionedWallpaperInfo[] =
+ "syncable_versioned_wallpaper_info";
+constexpr char kLacrosProxyControllingExtension[] =
+ "ash.lacros_proxy_controlling_extension";
#endif
// Deprecated 11/2024
@@ -1119,17 +1098,90 @@ constexpr char kPrefixedVideoFullscreenApiAvailability[] =
constexpr char kOnDeviceModelTimeoutCount[] =
"optimization_guide.on_device.timeout_count";
+#if !BUILDFLAG(IS_ANDROID)
+// Deprecated 11/2024
+inline constexpr char kCartModuleHidden[] = "cart_module_hidden";
+inline constexpr char kCartModuleWelcomeSurfaceShownTimes[] =
+ "cart_module_welcome_surface_shown_times";
+inline constexpr char kCartDiscountAcknowledged[] =
+ "cart_discount_acknowledged";
+inline constexpr char kCartDiscountEnabled[] = "cart_discount_enabled";
+inline constexpr char kCartUsedDiscounts[] = "cart_used_discounts";
+inline constexpr char kCartDiscountLastFetchedTime[] =
+ "cart_discount_last_fetched_time";
+inline constexpr char kCartDiscountConsentShown[] =
+ "cart_discount_consent_shown";
+inline constexpr char kDiscountConsentDecisionMadeIn[] =
+ "discount_consent_decision_made_in";
+inline constexpr char kDiscountConsentDismissedIn[] =
+ "discount_consent_dismissed_in";
+inline constexpr char kDiscountConsentLastDimissedTime[] =
+ "discount_consent_last_dimissed_time";
+inline constexpr char kDiscountConsentLastShownInVariation[] =
+ "discount_consent_last_shown_in";
+inline constexpr char kDiscountConsentPastDismissedCount[] =
+ "discount_consent_dismissed_count";
+inline constexpr char kDiscountConsentShowInterest[] =
+ "discount_consent_show_interest";
+inline constexpr char kDiscountConsentShowInterestIn[] =
+ "discount_consent_show_interest_in";
+#endif // !BUILDFLAG(IS_ANDROID)
+
+// Deprecated 11/2024
+constexpr char kQuietNotificationPermissionPromoWasShown[] =
+ "profile.content_settings.quiet_permission_ui_promo.was_shown."
+ "notifications";
+constexpr char kQuietNotificationPermissionShouldShowPromo[] =
+ "profile.content_settings.quiet_permission_ui_promo.should_show."
+ "notifications";
+inline constexpr char kQuietNotificationPermissionUiEnablingMethod[] =
+ "profile.content_settings.enable_quiet_permission_ui_enabling_method."
+ "notifications";
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+// Deprecated 11/2024
+inline constexpr char kHatsPrivacyHubPostLaunchIsSelected[] =
+ "hats_privacy_hub_postlaunch_is_selected";
+inline constexpr char kHatsPrivacyHubPostLaunchCycleEndTs[] =
+ "hats_privacy_hub_postlaunch_end_timestamp";
+#endif
+
+// Deprecated 12/2024.
+inline constexpr char kDeleteTimePeriodV2[] =
+ "browser.clear_data.time_period_v2";
+inline constexpr char kDeleteTimePeriodV2Basic[] =
+ "browser.clear_data.time_period_v2_basic";
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+// Deprecated 12/2024
+const char kCryptAuthDeviceSyncIsRecoveringFromFailure[] =
+ "cryptauth.device_sync.is_recovering_from_failure";
+const char kCryptAuthDeviceSyncLastSyncTimeSeconds[] =
+ "cryptauth.device_sync.last_device_sync_time_seconds";
+const char kCryptAuthDeviceSyncReason[] = "cryptauth.device_sync.reason";
+const char kCryptAuthDeviceSyncUnlockKeys[] =
+ "cryptauth.device_sync.unlock_keys";
+const char kCryptAuthEnrollmentIsRecoveringFromFailure[] =
+ "cryptauth.enrollment.is_recovering_from_failure";
+const char kCryptAuthEnrollmentLastEnrollmentTimeSeconds[] =
+ "cryptauth.enrollment.last_enrollment_time_seconds";
+const char kCryptAuthEnrollmentReason[] = "cryptauth.enrollment.reason";
+const char kCryptAuthEnrollmentUserPublicKey[] =
+ "cryptauth.enrollment.user_public_key";
+const char kCryptAuthEnrollmentUserPrivateKey[] =
+ "cryptauth.enrollment.user_private_key";
+const char kLacrosLaunchOnLogin[] = "lacros.launch_on_login";
+const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
+const char kLacrosSelection[] = "lacros_selection";
+#endif
+
+// Deprecated 12/2024.
+inline constexpr char kPageContentCollectionEnabled[] =
+ "page_content_collection.enabled";
+
// Register local state used only for migration (clearing or moving to a new
// key).
void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
- // Deprecated 12/2023.
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- registry->RegisterBooleanPref(kIsolatedWebAppsEnabled, false);
-#endif
-
- // Deprecated 12/2023.
- registry->RegisterStringPref(kPrivacyBudgetReportedReidBlocks, std::string());
-
// Deprecated 01/2024.
registry->RegisterBooleanPref(kPPAPISharedImagesForVideoDecoderAllowed, true);
@@ -1229,34 +1281,25 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(kBeforeunloadEventCancelByPreventDefaultEnabled,
true);
+#if BUILDFLAG(IS_CHROMEOS)
+ // Deprecated 11/2024.
+ registry->RegisterDictionaryPref(kLockScreenDataPrefKey);
+#endif
+
// Deprecated 11/2024.
registry->RegisterIntegerPref(kOnDeviceModelTimeoutCount, 0);
+
+#if BUILDFLAG(IS_CHROMEOS)
+ // Deprecated 12/2024.
+ registry->RegisterIntegerPref(kLacrosLaunchSwitch, 0);
+ registry->RegisterIntegerPref(kLacrosSelection, 0);
+#endif
}
// Register prefs used only for migration (clearing or moving to a new key).
void RegisterProfilePrefsForMigration(
user_prefs::PrefRegistrySyncable* registry) {
chrome_browser_net::secure_dns::RegisterProbesSettingBackupPref(registry);
- // Deprecated 10/2023.
- registry->RegisterBooleanPref(kSyncRequested, false);
-
- // Deprecated 12/2023.
-#if BUILDFLAG(IS_ANDROID)
- registry->RegisterListPref(kTemplatesRandomOrder);
-#endif
-
-// Deprecated 12/2023.
-#if BUILDFLAG(IS_ANDROID)
- registry->RegisterBooleanPref(kDesktopSitePeripheralSettingEnabled, false);
- registry->RegisterBooleanPref(kDesktopSiteDisplaySettingEnabled, false);
-#endif
-
- // Deprecated 12/2023.
- registry->RegisterBooleanPref(kDownloadDuplicateFilePromptEnabled, true);
-
- // Deprecated 12/2023.
- registry->RegisterInt64Pref(kModelQualityLoggingClientId, true);
- registry->RegisterBooleanPref(kSync_ExplicitBrowserSignin, false);
// Deprecated 01/2024.
registry->RegisterBooleanPref(kPrivacySandboxPageViewed, false);
@@ -1524,6 +1567,9 @@ void RegisterProfilePrefsForMigration(
base::Value::List());
#endif // !BUILDFLAG(IS_ANDROID)
+ // Deprecated 10/2024.
+ registry->RegisterIntegerPref(kModelExecutionMainToggleSettingState, 0);
+
// Deprecated 10/2024
#if BUILDFLAG(IS_CHROMEOS)
registry->RegisterBooleanPref(kLacrosSecondaryProfilesAllowed, true);
@@ -1564,23 +1610,76 @@ void RegisterProfilePrefsForMigration(
base::Value::List());
registry->RegisterDictionaryPref(kNoteTakingAppsLockScreenToastShown);
registry->RegisterBooleanPref(kRestoreLastLockScreenNote, false);
+ registry->RegisterDictionaryPref(kSyncableVersionedWallpaperInfo);
+ registry->RegisterDictionaryPref(kLacrosProxyControllingExtension);
#endif
// Deprecated 11/2024
registry->RegisterStringPref(kPrefixedVideoFullscreenApiAvailability, "");
-}
-void ClearSyncRequestedPrefAndMaybeMigrate(PrefService* profile_prefs) {
+#if !BUILDFLAG(IS_ANDROID)
+ // Deprecated 11/2024
+ registry->RegisterBooleanPref(kCartModuleHidden, false);
+ registry->RegisterIntegerPref(kCartModuleWelcomeSurfaceShownTimes, 0);
+ registry->RegisterBooleanPref(kCartDiscountAcknowledged, false);
+ registry->RegisterBooleanPref(kCartDiscountEnabled, false);
+ registry->RegisterDictionaryPref(kCartUsedDiscounts);
+ registry->RegisterTimePref(kCartDiscountLastFetchedTime, base::Time());
+ registry->RegisterBooleanPref(kCartDiscountConsentShown, false);
+ registry->RegisterTimePref(kDiscountConsentLastDimissedTime, base::Time());
+ registry->RegisterIntegerPref(kDiscountConsentPastDismissedCount, 0);
+ registry->RegisterIntegerPref(kDiscountConsentDecisionMadeIn, 0);
+ registry->RegisterIntegerPref(kDiscountConsentDismissedIn, 0);
+ registry->RegisterIntegerPref(kDiscountConsentLastShownInVariation, 0);
+ registry->RegisterBooleanPref(kDiscountConsentShowInterest, false);
+ registry->RegisterIntegerPref(kDiscountConsentShowInterestIn, 0);
+#endif // !BUILDFLAG(IS_ANDROID)
+
+ // Deprecated 11/2024
+ optimization_guide::model_execution::prefs::
+ RegisterLegacyUsagePrefsForMigration(registry);
+
+ // Deprecated 11/2024
+ registry->RegisterBooleanPref(kQuietNotificationPermissionPromoWasShown,
+ true);
+ registry->RegisterBooleanPref(kQuietNotificationPermissionShouldShowPromo,
+ true);
+ registry->RegisterIntegerPref(kQuietNotificationPermissionUiEnablingMethod,
+ 0);
+
#if BUILDFLAG(IS_CHROMEOS_ASH)
- // On Ash specifically, if `kSyncRequested` was set to false explicitly, the
- // value needs to be migrated to syncer::internal::kSyncDisabledViaDashboard.
- if (profile_prefs->GetUserPrefValue(kSyncRequested) != nullptr &&
- !profile_prefs->GetUserPrefValue(kSyncRequested)->GetBool()) {
- profile_prefs->SetBoolean(
- syncer::prefs::internal::kSyncDisabledViaDashboard, true);
- }
+ // Deprecated 11/2024
+ registry->RegisterBooleanPref(kHatsPrivacyHubPostLaunchIsSelected, false);
+ registry->RegisterInt64Pref(kHatsPrivacyHubPostLaunchCycleEndTs, 0);
#endif
- profile_prefs->ClearPref(kSyncRequested);
+
+ // Deprecated 12/2024.
+ registry->RegisterIntegerPref(kDeleteTimePeriodV2, -1);
+ registry->RegisterIntegerPref(kDeleteTimePeriodV2Basic, -1);
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ // Deprecated 12/2024
+ registry->RegisterDoublePref(kCryptAuthDeviceSyncLastSyncTimeSeconds, 0.0);
+ registry->RegisterBooleanPref(kCryptAuthDeviceSyncIsRecoveringFromFailure,
+ false);
+ registry->RegisterIntegerPref(kCryptAuthDeviceSyncReason,
+ cryptauth::INVOCATION_REASON_UNKNOWN);
+ registry->RegisterListPref(kCryptAuthDeviceSyncUnlockKeys);
+ registry->RegisterBooleanPref(kCryptAuthEnrollmentIsRecoveringFromFailure,
+ false);
+ registry->RegisterDoublePref(kCryptAuthEnrollmentLastEnrollmentTimeSeconds,
+ 0.0);
+ registry->RegisterIntegerPref(kCryptAuthEnrollmentReason,
+ cryptauth::INVOCATION_REASON_UNKNOWN);
+ registry->RegisterStringPref(kCryptAuthEnrollmentUserPublicKey,
+ std::string());
+ registry->RegisterStringPref(kCryptAuthEnrollmentUserPrivateKey,
+ std::string());
+ registry->RegisterBooleanPref(kLacrosLaunchOnLogin, false);
+#endif
+
+ // Deprecated 12/2024.
+ registry->RegisterBooleanPref(kPageContentCollectionEnabled, false);
}
} // namespace
@@ -1679,6 +1778,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
#if BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
registry->RegisterBooleanPref(prefs::kFeatureNotificationsEnabled, true);
#endif // BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ registry->RegisterBooleanPref(prefs::kInternalOnlyUisEnabled, false);
#if BUILDFLAG(IS_ANDROID)
registry->RegisterBooleanPref(policy::policy_prefs::kBackForwardCacheEnabled,
true);
@@ -1782,8 +1882,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
ash::CryptAuthDeviceIdProviderImpl::RegisterLocalPrefs(registry);
extensions::ExtensionAssetsManagerChromeOS::RegisterPrefs(registry);
extensions::ExtensionsPermissionsTracker::RegisterLocalStatePrefs(registry);
- extensions::lock_screen_data::LockScreenItemStorage::RegisterLocalState(
- registry);
extensions::login_api::RegisterLocalStatePrefs(registry);
::onc::RegisterPrefs(registry);
policy::AdbSideloadingAllowanceModePolicyHandler::RegisterPrefs(registry);
@@ -1902,6 +2000,14 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kQRCodeGeneratorEnabled, true);
+ registry->RegisterIntegerPref(prefs::kChromeDataRegionSetting, 0);
+
+#if BUILDFLAG(ENABLE_GLIC)
+ glic::GlicLauncherConfiguration::RegisterLocalStatePrefs(registry);
+#endif
+
+ registry->RegisterIntegerPref(prefs::kToastAlertLevel, 0);
+
// This is intentionally last.
RegisterLocalStatePrefsForMigration(registry);
}
@@ -1933,6 +2039,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
dom_distiller::DistilledPagePrefs::RegisterProfilePrefs(registry);
DownloadPrefs::RegisterProfilePrefs(registry);
fingerprinting_protection_filter::prefs::RegisterProfilePrefs(registry);
+#if BUILDFLAG(ENABLE_GLIC)
+ glic::GlicProfileConfiguration::RegisterProfilePrefs(registry);
+#endif
permissions::PermissionHatsTriggerHelper::RegisterProfilePrefs(registry);
history_clusters::prefs::RegisterProfilePrefs(registry);
HostContentSettingsMap::RegisterProfilePrefs(registry);
@@ -2072,8 +2181,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
bookmarks_webui::RegisterProfilePrefs(registry);
browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry);
BrowserUserEducationStorageService::RegisterProfilePrefs(registry);
+ captions::LiveCaptionController::RegisterProfilePrefs(registry);
captions::LiveTranslateController::RegisterProfilePrefs(registry);
- CartService::RegisterProfilePrefs(registry);
ChromeAuthenticatorRequestDelegate::RegisterProfilePrefs(registry);
commerce::CommerceUiTabHelper::RegisterProfilePrefs(registry);
DeviceServiceImpl::RegisterProfilePrefs(registry);
@@ -2089,10 +2198,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
NtpCustomBackgroundService::RegisterProfilePrefs(registry);
media_router::RegisterAccessCodeProfilePrefs(registry);
media_router::RegisterProfilePrefs(registry);
+ MicrosoftAuthPageHandler::RegisterProfilePrefs(registry);
NewTabPageHandler::RegisterProfilePrefs(registry);
NewTabPageUI::RegisterProfilePrefs(registry);
ntp::SafeBrowsingHandler::RegisterProfilePrefs(registry);
ntp_tiles::CustomLinksManagerImpl::RegisterProfilePrefs(registry);
+ OutlookCalendarPageHandler::RegisterProfilePrefs(registry);
PinnedTabCodec::RegisterProfilePrefs(registry);
policy::DeveloperToolsPolicyHandler::RegisterProfilePrefs(registry);
promos_utils::RegisterProfilePrefs(registry);
@@ -2110,10 +2221,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
toolbar::RegisterProfilePrefs(registry);
UnifiedAutoplayConfig::RegisterProfilePrefs(registry);
user_notes::RegisterProfilePrefs(registry);
-
-#if !BUILDFLAG(IS_CHROMEOS_LACROS)
- captions::LiveCaptionController::RegisterProfilePrefs(registry);
-#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_CHROMEOS)
@@ -2163,7 +2270,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
ash::ApkWebAppService::RegisterProfilePrefs(registry);
ash::app_time::AppActivityRegistry::RegisterProfilePrefs(registry);
ash::app_time::AppTimeController::RegisterProfilePrefs(registry);
- ash::AshProxyMonitor::RegisterProfilePrefs(registry);
ash::assistant::prefs::RegisterProfilePrefs(registry);
ash::auth::AuthFactorConfig::RegisterPrefs(registry);
ash::bluetooth::DebugLogsManager::RegisterPrefs(registry);
@@ -2335,9 +2441,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterDictionaryPref(prefs::kProactiveNudgeDisabledSitesWithTime);
#endif
-#if !BUILDFLAG(IS_ANDROID)
registry->RegisterIntegerPref(prefs::kChromeDataRegionSetting, 0);
-#endif
registry->RegisterIntegerPref(prefs::kLensOverlayStartCount, 0);
@@ -2389,14 +2493,6 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) {
// BEGIN_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS
// Please don't delete the preceding line. It is used by PRESUBMIT.py.
- // Added 12/2023.
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- local_state->ClearPref(kIsolatedWebAppsEnabled);
-#endif
-
- // Added 12/2023.
- local_state->ClearPref(kPrivacyBudgetReportedReidBlocks);
-
// Added 01/2024.
local_state->ClearPref(kPPAPISharedImagesForVideoDecoderAllowed);
@@ -2492,9 +2588,24 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) {
// Added 10/2024.
local_state->ClearPref(kBeforeunloadEventCancelByPreventDefaultEnabled);
+ // Added 11/2024
+#if BUILDFLAG(IS_CHROMEOS)
+ local_state->ClearPref(kLockScreenDataPrefKey);
+#endif
+
// Added 11/2024
local_state->ClearPref(kOnDeviceModelTimeoutCount);
+ // Added 11/2024
+ optimization_guide::model_execution::prefs::MigrateLegacyUsagePrefs(
+ local_state);
+
+ // Added 12/2024
+#if BUILDFLAG(IS_CHROMEOS)
+ local_state->ClearPref(kLacrosLaunchSwitch);
+ local_state->ClearPref(kLacrosSelection);
+#endif
+
// Please don't delete the following line. It is used by PRESUBMIT.py.
// END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS
@@ -2535,9 +2646,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
MigrateDefaultBrowserLastDeclinedPref(profile_prefs);
#endif
- // Added 10/2023.
- ClearSyncRequestedPrefAndMaybeMigrate(profile_prefs);
-
#if BUILDFLAG(IS_ANDROID)
// Added 11/2023, but DO NOT REMOVE after the usual year!
// TODO(crbug.com/40268177): The pref kPasswordsUseUPMLocalAndSeparateStores
@@ -2550,40 +2658,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_path);
#endif
-#if !BUILDFLAG(IS_ANDROID)
- // Added 12/2023.
- password_manager::features_util::MigrateDeclinedSaveOptInToExplicitOptOut(
- profile_prefs);
-#endif // !BUILDFLAG(IS_ANDROID)
-
-#if BUILDFLAG(IS_ANDROID)
- // Added 12/2023.
- profile_prefs->ClearPref(kTemplatesRandomOrder);
-#endif
-
-#if BUILDFLAG(IS_ANDROID)
- // Added 12/2023.
- profile_prefs->ClearPref(kDesktopSitePeripheralSettingEnabled);
- profile_prefs->ClearPref(kDesktopSiteDisplaySettingEnabled);
-#endif
-
- // Added 12/2023.
- profile_prefs->ClearPref(kDownloadDuplicateFilePromptEnabled);
-
- // Added 12/2023.
- profile_prefs->ClearPref(kModelQualityLoggingClientId);
-
- // Added 12/2023.
- // Moving the `kExplicitBrowserSignin` from sync/ to signin/.
- // If the sync (old) pref still exists, copy it to signin (new),
- // and clear the sync part of the pref.
- if (profile_prefs->HasPrefPath(kSync_ExplicitBrowserSignin)) {
- profile_prefs->SetBoolean(
- prefs::kExplicitBrowserSignin,
- profile_prefs->GetBoolean(kSync_ExplicitBrowserSignin));
- profile_prefs->ClearPref(kSync_ExplicitBrowserSignin);
- }
-
// Added 01/2024.
profile_prefs->ClearPref(kPrivacySandboxPageViewed);
@@ -2854,6 +2928,9 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_prefs->ClearPref(kTabResumeDismissedTabsPrefName);
#endif // !BUILDFLAG(IS_ANDROID)
+ // Added 10/2024.
+ profile_prefs->ClearPref(kModelExecutionMainToggleSettingState);
+
// Added 10/2024
#if BUILDFLAG(IS_CHROMEOS)
profile_prefs->ClearPref(kLacrosSecondaryProfilesAllowed);
@@ -2893,11 +2970,63 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_prefs->ClearPref(kNoteTakingAppsLockScreenAllowlist);
profile_prefs->ClearPref(kNoteTakingAppsLockScreenToastShown);
profile_prefs->ClearPref(kRestoreLastLockScreenNote);
+ profile_prefs->ClearPref(kSyncableVersionedWallpaperInfo);
+ profile_prefs->ClearPref(kLacrosProxyControllingExtension);
#endif
// Added 11/2024
profile_prefs->ClearPref(kPrefixedVideoFullscreenApiAvailability);
+// Added 11/2024
+#if !BUILDFLAG(IS_ANDROID)
+ profile_prefs->ClearPref(kCartModuleHidden);
+ profile_prefs->ClearPref(kCartModuleWelcomeSurfaceShownTimes);
+ profile_prefs->ClearPref(kCartDiscountAcknowledged);
+ profile_prefs->ClearPref(kCartDiscountEnabled);
+ profile_prefs->ClearPref(kCartUsedDiscounts);
+ profile_prefs->ClearPref(kCartDiscountLastFetchedTime);
+ profile_prefs->ClearPref(kCartDiscountConsentShown);
+ profile_prefs->ClearPref(kDiscountConsentDecisionMadeIn);
+ profile_prefs->ClearPref(kDiscountConsentDismissedIn);
+ profile_prefs->ClearPref(kDiscountConsentLastDimissedTime);
+ profile_prefs->ClearPref(kDiscountConsentLastShownInVariation);
+ profile_prefs->ClearPref(kDiscountConsentPastDismissedCount);
+ profile_prefs->ClearPref(kDiscountConsentShowInterest);
+ profile_prefs->ClearPref(kDiscountConsentShowInterestIn);
+#endif // !BUILDFLAG(IS_ANDROID)
+
+ // Added 11/2024
+ profile_prefs->ClearPref(kQuietNotificationPermissionPromoWasShown);
+ profile_prefs->ClearPref(kQuietNotificationPermissionShouldShowPromo);
+ profile_prefs->ClearPref(kQuietNotificationPermissionUiEnablingMethod);
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ // Added 11/2024
+ profile_prefs->ClearPref(kHatsPrivacyHubPostLaunchIsSelected);
+ profile_prefs->ClearPref(kHatsPrivacyHubPostLaunchCycleEndTs);
+#endif
+
+ // Added 12/2024.
+ profile_prefs->ClearPref(kDeleteTimePeriodV2);
+ profile_prefs->ClearPref(kDeleteTimePeriodV2Basic);
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ // Deprecated 12/2024
+ profile_prefs->ClearPref(kCryptAuthDeviceSyncLastSyncTimeSeconds);
+ profile_prefs->ClearPref(kCryptAuthDeviceSyncIsRecoveringFromFailure);
+ profile_prefs->ClearPref(kCryptAuthDeviceSyncReason);
+ profile_prefs->ClearPref(kCryptAuthDeviceSyncUnlockKeys);
+ profile_prefs->ClearPref(kCryptAuthEnrollmentIsRecoveringFromFailure);
+ profile_prefs->ClearPref(kCryptAuthEnrollmentLastEnrollmentTimeSeconds);
+ profile_prefs->ClearPref(kCryptAuthEnrollmentReason);
+ profile_prefs->ClearPref(kCryptAuthEnrollmentUserPublicKey);
+ profile_prefs->ClearPref(kCryptAuthEnrollmentUserPrivateKey);
+ profile_prefs->ClearPref(kLacrosLaunchOnLogin);
+#endif
+
+ // Added 12/2024.
+ profile_prefs->ClearPref(kPageContentCollectionEnabled);
+
// 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 6e28cc6a..69f38a12 100755
--- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc
+++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc
@@ -27,8 +27,6 @@
#include "chrome/browser/content_settings/mixed_content_settings_tab_helper.h"
#include "chrome/browser/content_settings/page_specific_content_settings_delegate.h"
#include "chrome/browser/content_settings/sound_content_setting_observer.h"
-#include "chrome/browser/dips/dips_bounce_detector.h"
-#include "chrome/browser/dips/dips_navigation_flow_detector.h"
#include "chrome/browser/external_protocol/external_protocol_observer.h"
#include "chrome/browser/favicon/favicon_utils.h"
#include "chrome/browser/file_system_access/file_system_access_features.h"
@@ -83,8 +81,8 @@
#include "chrome/browser/sync/sessions/sync_sessions_router_tab_helper.h"
#include "chrome/browser/sync/sessions/sync_sessions_web_contents_router_factory.h"
#include "chrome/browser/tab_contents/navigation_metrics_recorder.h"
-#include "chrome/browser/tpcd/heuristics/opener_heuristic_tab_helper.h"
-#include "chrome/browser/tpcd/heuristics/redirect_heuristic_tab_helper.h"
+#include "chrome/browser/task_manager/web_contents_tags.h"
+#include "chrome/browser/tpcd/heuristics/opener_heuristic_service.h"
#include "chrome/browser/tpcd/http_error_observer/http_error_tab_helper.h"
#include "chrome/browser/tpcd/metadata/devtools_observer.h"
#include "chrome/browser/tpcd/support/validity_service.h"
@@ -115,7 +113,7 @@
#include "chrome/common/chrome_switches.h"
#include "components/autofill/content/browser/content_autofill_client.h"
#include "components/autofill/content/browser/content_autofill_driver_factory.h"
-#include "components/autofill/core/browser/browser_autofill_manager.h"
+#include "components/autofill/core/browser/foundations/browser_autofill_manager.h"
#include "components/blocked_content/popup_blocker_tab_helper.h"
#include "components/blocked_content/popup_opener_tab_helper.h"
#include "components/breadcrumbs/core/breadcrumbs_status.h"
@@ -208,7 +206,6 @@
#include "chrome/browser/ui/uma_browsing_activity_observer.h"
#include "chrome/browser/ui/views/side_panel/history_clusters/history_clusters_tab_helper.h"
#include "chrome/browser/ui/views/side_panel/read_anything/read_anything_side_panel_controller.h"
-#include "components/commerce/content/browser/hint/commerce_hint_tab_helper.h"
#include "components/image_fetcher/core/image_fetcher_service.h"
#include "components/omnibox/browser/omnibox_field_trial.h"
#include "components/web_modal/web_contents_modal_dialog_manager.h"
@@ -332,17 +329,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
// ChromeSubresourceFilterClient has it as a dependency.
infobars::ContentInfoBarManager::CreateForWebContents(web_contents);
- // `PageSpecificContentSettings` (PSCS) needs to come before
- // `DIPSWebContentsObserver` for this latter to be correctly added to the PSCS
- // observer list.
- content_settings::PageSpecificContentSettings::CreateForWebContents(
- web_contents,
- std::make_unique(web_contents));
-
- // RedirectChainDetector comes before common tab helpers since
- // DIPSWebContentsObserver has it as a dependency.
- RedirectChainDetector::CreateForWebContents(web_contents);
-
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
@@ -402,9 +388,10 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
commerce::ShoppingServiceFactory::GetForBrowserContext(profile),
ISOLATED_WORLD_ID_CHROME_INTERNAL);
ConnectionHelpTabHelper::CreateForWebContents(web_contents);
+ content_settings::PageSpecificContentSettings::CreateForWebContents(
+ web_contents,
+ std::make_unique(web_contents));
CoreTabHelper::CreateForWebContents(web_contents);
- DipsNavigationFlowDetector::CreateForWebContents(web_contents);
- DIPSWebContentsObserver::MaybeCreateForWebContents(web_contents);
#if BUILDFLAG(ENABLE_REPORTING)
if (base::FeatureList::IsEnabled(
net::features::kReportingApiEnableEnterpriseCookieIssues)) {
@@ -442,7 +429,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
MixedContentSettingsTabHelper::CreateForWebContents(web_contents);
NavigationMetricsRecorder::CreateForWebContents(web_contents);
NavigationPredictorPreconnectClient::CreateForWebContents(web_contents);
- OpenerHeuristicTabHelper::CreateForWebContents(web_contents);
+ OpenerHeuristicService::Get(web_contents->GetBrowserContext());
if (optimization_guide::features::IsOptimizationHintsEnabled()) {
OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents);
}
@@ -498,7 +485,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
PrefsTabHelper::CreateForWebContents(web_contents);
prerender::NoStatePrefetchTabHelper::CreateForWebContents(web_contents);
RecentlyAudibleHelper::CreateForWebContents(web_contents);
- RedirectHeuristicTabHelper::CreateForWebContents(web_contents);
#if BUILDFLAG(IS_ANDROID)
RequestDesktopSiteWebContentsObserverAndroid::CreateForWebContents(
web_contents);
@@ -550,10 +536,17 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
StorageAccessAPITabHelper::CreateForWebContents(
web_contents, StorageAccessAPIServiceFactory::GetForBrowserContext(
web_contents->GetBrowserContext()));
+#if BUILDFLAG(IS_CHROMEOS)
// Do not create for Incognito mode.
+ if (!profile->IsIncognitoProfile()) {
+ SupervisedUserNavigationObserver::CreateForWebContents(web_contents);
+ }
+#else
+ // Do not create for OTR.
if (!profile->IsOffTheRecord()) {
SupervisedUserNavigationObserver::CreateForWebContents(web_contents);
}
+#endif
HttpErrorTabHelper::CreateForWebContents(web_contents);
TabUIHelper::CreateForWebContents(web_contents);
tasks::TaskTabHelper::CreateForWebContents(web_contents);
@@ -608,6 +601,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
}
PolicyAuditorBridge::CreateForWebContents(web_contents);
PluginObserverAndroid::CreateForWebContents(web_contents);
+ task_manager::WebContentsTags::CreateForTabContents(web_contents);
if (base::FeatureList::IsEnabled(payments::facilitated::kEnablePixPayments) ||
base::FeatureList::IsEnabled(blink::features::kPaymentLinkDetection)) {
@@ -617,7 +611,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
web_contents, optimization_guide_decider);
}
}
-#else // BUILDFLAG(IS_ANDROID)
+#else // BUILDFLAG(IS_ANDROID)
if (web_app::AreWebAppsUserInstallable(profile)) {
webapps::MLInstallabilityPromoter::CreateForWebContents(web_contents);
webapps::AppBannerManagerDesktop::CreateForWebContents(web_contents);
@@ -659,9 +653,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
if (OmniboxFieldTrial::IsZeroSuggestPrefetchingEnabled()) {
ZeroSuggestPrefetchTabHelper::CreateForWebContents(web_contents);
}
- if (commerce::isContextualConsentEnabled()) {
- commerce_hint::CommerceHintTabHelper::CreateForWebContents(web_contents);
- }
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(ENABLE_COMPOSE)
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 09a44d75..f184f192 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
@@ -91,6 +91,8 @@ namespace autofillPrivate {
ADDRESS_HOME_HOUSE_NUMBER,
ADDRESS_HOME_SUBPREMISE,
ADDRESS_HOME_OTHER_SUBUNIT,
+ NAME_LAST_PREFIX,
+ NAME_LAST_CORE,
NAME_LAST_FIRST,
NAME_LAST_CONJUNCTION,
NAME_LAST_SECOND,
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 b2fcb304..a4a563c9 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
@@ -32,7 +32,6 @@ namespace autotestPrivate {
// A mapping of apps::mojom::Type
enum AppType {
Arc,
- BuiltIn,
Crostini,
Extension,
Web,
@@ -283,46 +282,6 @@ namespace autotestPrivate {
callback IsArcPackageListInitialRefreshedCallback = void (boolean refreshed);
- // A mapping of crosapi::BrowserManager::State
- enum LacrosState {
- NotInitialized,
- Reloading,
- Mounting,
- Unavailable,
- Stopped,
- PreparingForLaunch,
- PreLaunched,
- Starting,
- Running,
- WaitingForMojoDisconnected,
- WaitingForProcessTerminated
- };
-
- // A mapping of crosapi::browser_util::LacrosMode
- enum LacrosMode {
- Disabled,
- Only
- };
-
- dictionary LacrosInfo {
- // The state of lacros.
- LacrosState state;
- // True iff keepalive is enabled for lacros.
- boolean isKeepAlive;
- // Path to lacros-chrome directory. Note that this may change over time if
- // omaha is used. This also may be empty if lacros is not running.
- DOMString lacrosPath;
- // 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/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;
- };
-
- callback GetLacrosInfoCallback = void (LacrosInfo info);
-
dictionary ArcAppDict {
DOMString name;
DOMString packageName;
@@ -974,10 +933,6 @@ namespace autotestPrivate {
static void isArcProvisioned(
IsArcProvisionedCallback callback);
- // Gets various information about the state of lacros on the system.
- static void getLacrosInfo(
- GetLacrosInfoCallback callback);
-
// Gets information about the requested ARC app.
static void getArcApp(
DOMString appId,
diff --git a/tools/under-control/src/chrome/common/extensions/api/certificate_provider.idl b/tools/under-control/src/chrome/common/extensions/api/certificate_provider.idl
index ea9b2460..2f121fd1 100755
--- a/tools/under-control/src/chrome/common/extensions/api/certificate_provider.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/certificate_provider.idl
@@ -47,7 +47,7 @@ namespace certificateProvider {
};
// Information about a client certificate.
- [noinline_doc] dictionary ClientCertificateInfo {
+ dictionary ClientCertificateInfo {
// The array must contain the DER encoding of the X.509 client certificate
// as its first element.
// This must include exactly one certificate.
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 64f61552..d43dd534 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
@@ -155,6 +155,7 @@ namespace developerPrivate {
boolean custodianApprovalRequired;
boolean parentDisabledPermissions;
boolean unsupportedManifestVersion;
+ boolean unsupportedDeveloperExtension;
};
dictionary OptionsPage {
@@ -284,6 +285,7 @@ namespace developerPrivate {
boolean? pinnedToToolbar;
boolean isAffectedByMV2Deprecation;
boolean didAcknowledgeMV2DeprecationNotice;
+ boolean canUploadAsAccountExtension;
};
dictionary ProfileInfo {
@@ -875,6 +877,11 @@ namespace developerPrivate {
// Triggers the dismissal of the mv2 deprecation notice for `extensionId`.
static void dismissMv2DeprecationNoticeForExtension(DOMString extensionId);
+ // Uploads an extension to the signed in user's account. If the extension is
+ // not eligible for upload or if there is no signed in user, returns an
+ // error.
+ static void uploadExtensionToAccount(DOMString extensionId);
+
[nocompile, deprecated="Use openDevTools"]
static void inspect(InspectOptions options,
optional VoidCallback callback);
diff --git a/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys.idl b/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys.idl
index 8c40747e..4b083fb5 100755
--- a/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys.idl
@@ -8,7 +8,7 @@
// extension through $(ref:platformKeys chrome.platformKeys).
[platforms = ("chromeos", "lacros")]
namespace enterprise.platformKeys {
- [nocompile, noinline_doc] dictionary Token {
+ [nocompile] dictionary Token {
// Uniquely identifies this Token.
// Static IDs are "user" and "system",
// referring to the platform's user-specific and the system-wide hardware
@@ -20,10 +20,16 @@ namespace enterprise.platformKeys {
// SubtleCrypto
// interface. The cryptographic operations, including key generation, are
// hardware-backed.
- //
Only non-extractable RSASSA-PKCS1-V1_5 keys with
+ //
Only non-extractable keys can be generated. The supported key types
+ // are RSASSA-PKCS1-V1_5 and RSA-OAEP (on Chrome versions 134+) with
// modulusLength up to 2048 and ECDSA with
- // namedCurve P-256 can be generated. Each key can be
- // used for signing data at most once.
+ // namedCurve P-256. Each RSASSA-PKCS1-V1_5 and ECDSA key can
+ // be used for signing data at most once, unless the extension is
+ // allowlisted through the
+ // KeyPermissions policy,
+ // in which case the key can be used indefinitely. RSA-OAEP keys are
+ // supported since Chrome version 134 and can be used by extensions
+ // allowlisted through that same policy to unwrap other keys.
// Keys generated on a specific Token cannot be used with
// any other Tokens, nor can they be used with
// window.crypto.subtle. Equally, Key objects
@@ -37,9 +43,15 @@ namespace enterprise.platformKeys {
// software-backed. Protection of the keys, and thus implementation of the
// non-extractable property, is done in software, so the keys are less
// protected than hardware-backed keys.
- //
Only non-extractable RSASSA-PKCS1-V1_5 keys with
- // modulusLength up to 2048 can be generated. Each key can be
- // used for signing data at most once.
+ // Only non-extractable keys can be generated. The supported key types
+ // are RSASSA-PKCS1-V1_5 and RSA-OAEP (on Chrome versions 134+) with
+ // modulusLength up to 2048. Each RSASSA-PKCS1-V1_5 key can be
+ // used for signing data at most once, unless the extension is allowlisted
+ // through the
+ // KeyPermissions policy,
+ // in which case the key can be used indefinitely. RSA-OAEP keys are
+ // supported since Chrome version 134 and can be used by extensions
+ // allowlisted through that same policy to unwrap other keys.
// Keys generated on a specific Token cannot be used with
// any other Tokens, nor can they be used with
// window.crypto.subtle. Equally, Key objects
diff --git a/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys_internal.idl b/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys_internal.idl
index 13330d8b..b98ff10c 100755
--- a/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys_internal.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/enterprise_platform_keys_internal.idl
@@ -21,12 +21,13 @@ namespace enterprise.platformKeysInternal {
// Provided for all algorithms.
DOMString name;
- // Provided in case of RSASSA-PKCS1-v1_5.
+ // Provided in case the algorithm is RSASSA-PKCS1-v1_5 or RSA-OAEP
+ // (the last type is supported on Chrome versions 134+).
long? modulusLength;
ArrayBuffer? publicExponent;
Hash? hash;
- // Provided in case of ECDSA.
+ // Provided in case the algorithm is ECDSA.
DOMString? namedCurve;
};
@@ -45,7 +46,7 @@ namespace enterprise.platformKeysInternal {
static void getTokens(GetTokensCallback callback);
// Internal version of SubtleCrypto.generateKey, currently supporting only
- // RSASSA-PKCS1-v1_5 and ECDSA.
+ // RSASSA-PKCS1-v1_5, RSA-OAEP (on Chrome versions 134+), and ECDSA.
// |tokenId| The id of a Token returned by |getTokens|.
// |algorithm| The algorithm parameters as specified by WebCrypto.
// |softwareBacked| Whether the key operations should be executed in
diff --git a/tools/under-control/src/chrome/common/extensions/api/notifications.idl b/tools/under-control/src/chrome/common/extensions/api/notifications.idl
index 65f7a35b..fd6d6b69 100755
--- a/tools/under-control/src/chrome/common/extensions/api/notifications.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/notifications.idl
@@ -5,7 +5,7 @@
// Use the chrome.notifications API to create rich notifications
// using templates and show these notifications to users in the system tray.
namespace notifications {
- [noinline_doc] enum TemplateType {
+ enum TemplateType {
// Contains an icon, title, message, expandedMessage, and up to two
// buttons.
basic,
diff --git a/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl b/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl
index c3bcc770..0de5d9f6 100755
--- a/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl
@@ -68,5 +68,10 @@ namespace pdfViewerPrivate {
// Fired when the browser wants the listener to perform a save.
// `streamUrl`: Unique ID for the instance that should perform the save.
static void onSave(DOMString streamUrl);
+
+ // Fired when the browser wants the listener to update the viewport based on
+ // a different PDF URL.
+ // `pdfUrl`: The string of the PDF URL that should update the viewport.
+ static void onShouldUpdateViewport(DOMString pdfUrl);
};
};
diff --git a/tools/under-control/src/chrome/common/extensions/api/platform_keys.idl b/tools/under-control/src/chrome/common/extensions/api/platform_keys.idl
index 916abf8f..fff9ebf5 100755
--- a/tools/under-control/src/chrome/common/extensions/api/platform_keys.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/platform_keys.idl
@@ -8,7 +8,7 @@
// E.g. this allows usage of platform managed certificates in third party VPNs
// (see $(ref:vpnProvider chrome.vpnProvider)).
namespace platformKeys {
- [noinline_doc] dictionary Match {
+ dictionary Match {
// The DER encoding of a X.509 certificate.
ArrayBuffer certificate;
diff --git a/tools/under-control/src/chrome/common/extensions/api/vpn_provider.idl b/tools/under-control/src/chrome/common/extensions/api/vpn_provider.idl
index 4f7abdc7..eb0a2d01 100755
--- a/tools/under-control/src/chrome/common/extensions/api/vpn_provider.idl
+++ b/tools/under-control/src/chrome/common/extensions/api/vpn_provider.idl
@@ -108,14 +108,14 @@ namespace vpnProvider {
// to signal completion. The callback is called with
// chrome.runtime.lastError set to error code if
// there is an error.
- [inline_doc] callback CallCompleteCallback = void ();
+ callback CallCompleteCallback = void ();
// The callback is used by createConfig to signal completion.
// The callback is called with chrome.runtime.lastError set to
// an error code if there is an error.
// |id|: A unique ID for the created configuration, or undefined
// on failure.
- [inline_doc] callback CreateConfigCompleteCallback = void (DOMString id);
+ callback CreateConfigCompleteCallback = void (DOMString id);
interface Functions {
// Creates a new VPN configuration that persists across multiple login
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 a00e0e60..a5ff7b9f 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
@@ -39,8 +39,8 @@
#include "chrome/common/pepper_permission_util.h"
#include "chrome/common/ppapi_utils.h"
#include "chrome/common/profiler/chrome_thread_profiler_client.h"
+#include "chrome/common/profiler/core_unwinders.h"
#include "chrome/common/profiler/thread_profiler_configuration.h"
-#include "chrome/common/profiler/unwind_util.h"
#include "chrome/common/secure_origin_allowlist.h"
#include "chrome/common/url_constants.h"
#include "chrome/common/webui_url_constants.h"
@@ -210,6 +210,7 @@
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "chrome/common/initialize_extensions_client.h"
+#include "chrome/renderer/extensions/api/chrome_extensions_renderer_api_provider.h"
#include "chrome/renderer/extensions/chrome_extensions_renderer_client.h"
#include "extensions/common/constants.h"
#include "extensions/common/context_data.h"
@@ -224,10 +225,6 @@
#include "third_party/blink/public/web/web_settings.h"
#endif // BUIDFLAG(ENABLE_EXTENSIONS_CORE)
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/renderer/extensions/api/chrome_extensions_renderer_api_provider.h"
-#endif // BUILDFLAG(ENABLE_EXTENSIONS)
-
#if BUILDFLAG(ENABLE_GUEST_VIEW)
#include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h"
#endif // BUILDFLAG(ENABLE_GUEST_VIEW)
@@ -404,7 +401,7 @@ ChromeContentRendererClient::ChromeContentRendererClient()
#endif
}
-ChromeContentRendererClient::~ChromeContentRendererClient() {}
+ChromeContentRendererClient::~ChromeContentRendererClient() = default;
void ChromeContentRendererClient::RenderThreadStarted() {
RenderThread* thread = RenderThread::Get();
@@ -449,10 +446,10 @@ void ChromeContentRendererClient::RenderThreadStarted() {
extensions::ExtensionsRendererClient::Get();
extensions_renderer_client->AddAPIProvider(
std::make_unique());
-
-#if BUILDFLAG(ENABLE_EXTENSIONS)
extensions_renderer_client->AddAPIProvider(
std::make_unique());
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
extensions_renderer_client->AddAPIProvider(
std::make_unique<
controlled_frame::ControlledFrameExtensionsRendererAPIProvider>());
@@ -1723,10 +1720,7 @@ void ChromeContentRendererClient::
#if BUILDFLAG(ENABLE_EXTENSIONS)
// WebHID and WebUSB on service workers is only available in extensions.
if (IsStandaloneContentExtensionProcess()) {
- if (base::FeatureList::IsEnabled(
- features::kEnableWebUsbOnExtensionServiceWorker)) {
- blink::WebRuntimeFeatures::EnableWebUSBOnServiceWorkers(true);
- }
+ blink::WebRuntimeFeatures::EnableWebUSBOnServiceWorkers(true);
#if !BUILDFLAG(IS_ANDROID)
blink::WebRuntimeFeatures::EnableWebHIDOnServiceWorkers(true);
#endif // !BUILDFLAG(IS_ANDROID)
diff --git a/tools/under-control/src/components/policy/resources/templates/manual_device_policy_proto_map.yaml b/tools/under-control/src/components/policy/resources/templates/manual_device_policy_proto_map.yaml
index 132ef859..c9ec98e3 100755
--- a/tools/under-control/src/components/policy/resources/templates/manual_device_policy_proto_map.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/manual_device_policy_proto_map.yaml
@@ -93,7 +93,6 @@ DeviceLoginScreenStickyKeysEnabled: accessibility_settings.login_screen_sticky_k
DeviceLoginScreenSystemInfoEnforced: device_login_screen_system_info_enforced.value
DeviceLoginScreenTouchVirtualKeyboardEnabled: DeviceLoginScreenTouchVirtualKeyboardEnabled.value
DeviceLoginScreenVirtualKeyboardEnabled: accessibility_settings.login_screen_virtual_keyboard_enabled
-DeviceLoginScreenWebUILazyLoading: login_web_ui_lazy_loading.enabled
DeviceLoginScreenWebHidAllowDevicesForUrls: device_login_screen_webhid_allow_devices_for_urls.value
DeviceLoginScreenWebUsbAllowDevicesForUrls: device_login_screen_webusb_allow_devices_for_urls.device_login_screen_webusb_allow_devices_for_urls
DeviceMachinePasswordChangeRate: device_machine_password_change_rate.rate_days
diff --git a/tools/under-control/src/components/policy/resources/templates/policies.yaml b/tools/under-control/src/components/policy/resources/templates/policies.yaml
index 3a365cfc..87688100 100755
--- a/tools/under-control/src/components/policy/resources/templates/policies.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policies.yaml
@@ -932,7 +932,7 @@ policies:
931: OnPrintEnterpriseConnector
932: UserAgentReduction
933: OriginAgentClusterDefaultEnabled
- 934: DeviceLoginScreenWebUILazyLoading
+ 934: ''
935: ProjectorEnabled
936: PhoneHubCameraRollAllowed
937: EcheAllowed
@@ -1315,6 +1315,16 @@ policies:
1314: DeviceNativeClientForceAllowed
1315: GenAiLensOverlaySettings
1316: PasswordManagerPasskeysEnabled
+ 1317: FilePickerChooseFromDriveSettings
+ 1318: LiveTranslateEnabled
+ 1319: DevicePowerBatteryChargingOptimization
+ 1320: SmartCardConnectAllowedForUrls
+ 1321: SmartCardConnectBlockedForUrls
+ 1322: DeviceFlexArcPreloadEnabled
+ 1323: AllowedInputMethodsForceEnabled
+ 1324: WebRtcIPHandlingUrl
+ 1325: GenAIPhotoEditingSettings
+
atomic_groups:
1: Homepage
@@ -1371,4 +1381,5 @@ atomic_groups:
52: DirectSocketsSettings
53: SkyVaultSettings
54: BrowserEventReporting
- 55: DirectSocketsPrivateNetworkAccessSettings
+ 55: SmartCardConnectSettings
+ 56: WebRtc
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AccessibilityShortcutsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AccessibilityShortcutsEnabled.yaml
index 60c59c80..d8e5766b 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AccessibilityShortcutsEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AccessibilityShortcutsEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CursorHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CursorHighlightEnabled.yaml
index db81be1f..f9210053 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CursorHighlightEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CursorHighlightEnabled.yaml
@@ -25,8 +25,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAccessibilityShortcutsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAccessibilityShortcutsEnabled.yaml
index c0bad39c..57bb3df2 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAccessibilityShortcutsEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAccessibilityShortcutsEnabled.yaml
@@ -24,8 +24,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAutoclickEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAutoclickEnabled.yaml
index dda0444b..08cc649c 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAutoclickEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenAutoclickEnabled.yaml
@@ -25,8 +25,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCaretHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCaretHighlightEnabled.yaml
index 6e4d0e98..1015827b 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCaretHighlightEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCaretHighlightEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCursorHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCursorHighlightEnabled.yaml
index afc9e6d4..231ec050 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCursorHighlightEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenCursorHighlightEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultSpokenFeedbackEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultSpokenFeedbackEnabled.yaml
index baa6b69b..29e175ad 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultSpokenFeedbackEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultSpokenFeedbackEnabled.yaml
@@ -22,8 +22,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDictationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDictationEnabled.yaml
index 6ddc7f64..90106661 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDictationEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDictationEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenHighContrastEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenHighContrastEnabled.yaml
index 9591c261..6935e340 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenHighContrastEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenHighContrastEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenLargeCursorEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenLargeCursorEnabled.yaml
index 39cbb35d..585669dc 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenLargeCursorEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenLargeCursorEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenMonoAudioEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenMonoAudioEnabled.yaml
index d304d7f6..c16059b5 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenMonoAudioEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenMonoAudioEnabled.yaml
@@ -25,8 +25,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenScreenMagnifierType.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenScreenMagnifierType.yaml
index f88111b2..33cfe901 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenScreenMagnifierType.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenScreenMagnifierType.yaml
@@ -28,8 +28,7 @@ items:
name: Docked
value: 2
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
enum:
- 0
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSelectToSpeakEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSelectToSpeakEnabled.yaml
index 7868a723..e6bb2a9e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSelectToSpeakEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSelectToSpeakEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSpokenFeedbackEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSpokenFeedbackEnabled.yaml
index ea3ab3e7..4931db10 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSpokenFeedbackEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenSpokenFeedbackEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenStickyKeysEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenStickyKeysEnabled.yaml
index a36cc737..36cd4a2e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenStickyKeysEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenStickyKeysEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DictationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DictationEnabled.yaml
index 7b8361af..d02bb294 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DictationEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DictationEnabled.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml
new file mode 100755
index 00000000..4079a908
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml
@@ -0,0 +1,33 @@
+caption: Enable Live Translate
+default: null
+desc: |-
+ Enable translation of live captions. Captions will be sent to Google for translation.
+
+ If this policy is set to Enabled, Live Translate will always be turned on.
+
+ If this policy is set to Disabled, Live Translate will always be turned off.
+
+ If you set this policy as mandatory, users cannot change or override it.
+
+ If this policy is left unset, Live Translate is disabled initially but can be enabled by the user anytime.
+example_value: true
+features:
+ can_be_recommended: true
+ dynamic_refresh: true
+ per_profile: true
+items:
+- caption: Enable Live Translate
+ value: true
+- caption: Disable Live Translate
+ value: false
+- caption: Allow the user to decide
+ value: null
+owners:
+- evliu@google.com
+- chrome-media-ux@google.com
+schema:
+ type: boolean
+supported_on:
+- chrome.*:133-
+tags: []
+type: main
\ No newline at end of file
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/StickyKeysEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/StickyKeysEnabled.yaml
index bc281ad3..f6b9532d 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/StickyKeysEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/StickyKeysEnabled.yaml
@@ -17,8 +17,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcEnabled.yaml
index e9321424..d329122e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcEnabled.yaml
@@ -4,6 +4,8 @@ default_for_enterprise_users: false
desc: Unless Ephemeral mode or multiple sign-in is on during the user's session, setting
ArcEnabled to True turns ARC on for the user. Setting the policy to False or leaving
it unset means enterprise users can't use ARC.
+
+ This policy only controls ArcVM on $2Google ChromeOS. For Google ChromeOS Flex, please see the DeviceFlexArcPreloadEnabled policy for more details.
example_value: false
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcLocationServiceEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcLocationServiceEnabled.yaml
index 56df5096..0097edd9 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcLocationServiceEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcLocationServiceEnabled.yaml
@@ -8,7 +8,6 @@ features:
per_profile: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcPolicy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcPolicy.yaml
index 6ca764c1..d9e7f238 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcPolicy.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcPolicy.yaml
@@ -50,7 +50,7 @@ features:
per_profile: false
owners:
- arc-commercial@google.com
-- mhasank@chromium.org
+- yaohuali@google.com
schema:
type: string
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/DeviceFlexArcPreloadEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/DeviceFlexArcPreloadEnabled.yaml
new file mode 100755
index 00000000..dc296fd5
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/DeviceFlexArcPreloadEnabled.yaml
@@ -0,0 +1,31 @@
+caption: Preload ArcVM image On Flex
+default: false
+desc: |-
+ This policy allows preload ArcVM image to the device installed with Google ChromeOS Flex.
+
+ Setting the policy to Enabled will allow ArcVM image to be preloaded on Google ChromeOS Flex separately.
+
+ Setting the policy to Disabled or not set will block ArcVM image from preloading on Google ChromeOS Flex separately.
+
+ If an image has already been downloaded and the policy is subsequently updated, the image will only be removed after the user signs out or reboots the device.
+
+ This policy only controls ArcVM on Google ChromeOS Flex. For $2Google ChromeOS, please see the ArcEnabled policy for more details.
+device_only: true
+example_value: false
+features:
+ dynamic_refresh: false
+ per_profile: false
+items:
+- caption: Enable ArcVM image preload
+ value: true
+- caption: Disable ArcVM image preload
+ value: false
+owners:
+- chromeos-flex-eng@google.com
+- jiaozhou@google.com
+schema:
+ type: boolean
+supported_on:
+- chrome_os:133-
+tags: []
+type: main
\ No newline at end of file
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml
index c2e0730f..2a235456 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml
@@ -15,7 +15,7 @@ items:
value: false
owners:
- arc-commercial@google.com
-- mhasank@chromium.org
+- yaohuali@google.com
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForDevice.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForDevice.yaml
index 5241c55b..c9d7bcd9 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForDevice.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForDevice.yaml
@@ -17,7 +17,6 @@ items:
- caption: Disable remote attestation for the device
value: false
owners:
-- emaxx@chromium.org
- file://chrome/browser/ash/attestation/OWNERS
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForUser.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForUser.yaml
index 00d5132f..9337ff1f 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForUser.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationEnabledForUser.yaml
@@ -16,7 +16,6 @@ items:
- caption: Disable remote attestation for the user
value: false
owners:
-- emaxx@chromium.org
- file://chrome/browser/ash/attestation/OWNERS
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationExtensionAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationExtensionAllowlist.yaml
index 86a0d7c5..0c999791 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationExtensionAllowlist.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationExtensionAllowlist.yaml
@@ -9,7 +9,6 @@ features:
dynamic_refresh: true
per_profile: true
owners:
-- emaxx@chromium.org
- file://chrome/browser/extensions/api/enterprise_platform_keys/OWNERS
schema:
items:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationForContentProtectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationForContentProtectionEnabled.yaml
index a3d0bfd8..e8c8a9ce 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationForContentProtectionEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Attestation/AttestationForContentProtectionEnabled.yaml
@@ -14,7 +14,6 @@ items:
- caption: Disable remote attestation for content protection
value: false
owners:
-- emaxx@chromium.org
- file://chrome/browser/ash/attestation/OWNERS
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserEventReporting/ReportingEndpoints.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserEventReporting/ReportingEndpoints.yaml
index 35beffc8..095f59fb 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserEventReporting/ReportingEndpoints.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserEventReporting/ReportingEndpoints.yaml
@@ -12,7 +12,7 @@ features:
dynamic_refresh: true
per_profile: true
owners:
-- sandormajor@google.com
+- sandormajor@chromium.org
- selya@google.com
schema:
type: object
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultJavaScriptOptimizerSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultJavaScriptOptimizerSetting.yaml
index 2aa6c15c..9f7e4fb6 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultJavaScriptOptimizerSetting.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultJavaScriptOptimizerSetting.yaml
@@ -19,11 +19,11 @@ example_value: 1
features:
dynamic_refresh: true
per_profile: true
-future_on:
-- android
-- chrome.*
-- chrome_os
-- fuchsia
+supported_on:
+- android:133-
+- chrome.*:133-
+- chrome_os:133-
+- fuchsia:133-
items:
- caption: Enable advanced JavaScript optimizations on all sites
name: AllowJavaScriptOptimizer
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerAllowedForSites.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerAllowedForSites.yaml
index 40438f23..7a2db8ed 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerAllowedForSites.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerAllowedForSites.yaml
@@ -33,11 +33,11 @@ example_value:
features:
dynamic_refresh: true
per_profile: true
-future_on:
-- android
-- chrome.*
-- chrome_os
-- fuchsia
+supported_on:
+- android:133-
+- chrome.*:133-
+- chrome_os:133-
+- fuchsia:133-
owners:
- ellyjones@chromium.org
- wfh@chromium.org
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerBlockedForSites.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerBlockedForSites.yaml
index d2ba74b4..89358a94 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerBlockedForSites.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/JavaScriptOptimizerBlockedForSites.yaml
@@ -37,11 +37,11 @@ example_value:
features:
dynamic_refresh: true
per_profile: true
-future_on:
-- android
-- chrome.*
-- chrome_os
-- fuchsia
+supported_on:
+- android:133-
+- chrome.*:133-
+- chrome_os:133-
+- fuchsia:133-
owners:
- ellyjones@chromium.org
- wfh@chromium.org
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectAllowedForUrls.yaml
new file mode 100755
index 00000000..ddb28ecc
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectAllowedForUrls.yaml
@@ -0,0 +1,24 @@
+caption: Allow Smart Card connection by Isolated Apps
+desc: |-
+ Setting the policy specifies which Isolated Web Apps (IWAs) can connect to smart cards using Web Smart Card API without having the user prompted for permission. This policy does not accept wildcards.
+
+ This policy overrides SmartCardConnectBlockedForUrls; in particular, a blocklist value of * means that all IWAs will be unable to connect to smart card readers (users won't even be prompted for permission) except for the ones listed in this policy.
+
+ By default, IWAs that specify Smart Card permissions within their manifest can connect to smart cards provided that user grants the permission interactively per-reader.
+
+example_value:
+- isolated-app://egoxo6biqdjrk62rman4vvr5cbq2ozsyydig7jmdxcmohdob2ecaaaic
+- isolated-app://anayaszofsyqapbofoli7ljxoxkp32qkothweire2o6t7xy6taz6oaacai
+features:
+ dynamic_refresh: true
+ per_profile: true
+future_on:
+- chrome_os
+owners:
+- file://content/browser/smart_card/OWNERS
+schema:
+ items:
+ type: string
+ type: array
+tags: []
+type: list
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectBlockedForUrls.yaml
new file mode 100755
index 00000000..7ad71822
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SmartCardConnectBlockedForUrls.yaml
@@ -0,0 +1,24 @@
+caption: Block Smart Card connection by Isolated Apps
+desc: |-
+ Setting the policy specifies which Isolated Web Apps (IWAs) won't be able to connect to smart card readers (users won't even be prompted for permission). This policy accepts wildcards - for example, * will block access for all IWAs.
+
+ This policy is overridden by SmartCardConnectAllowedForUrls; in particular, a blocklist value of * means that all IWAs will be unable to connect to smart card readers (users won't even be prompted for permission) except for the ones listed in SmartCardConnectAllowedForUrls.
+
+ By default, IWAs that specify Smart Card permissions within their manifest can connect to smart cards provided that user grants the permission interactively per-reader.
+
+example_value:
+- isolated-app://egoxo6biqdjrk62rman4vvr5cbq2ozsyydig7jmdxcmohdob2ecaaaic
+- isolated-app://anayaszofsyqapbofoli7ljxoxkp32qkothweire2o6t7xy6taz6oaacai
+features:
+ dynamic_refresh: true
+ per_profile: true
+future_on:
+- chrome_os
+owners:
+- file://content/browser/smart_card/OWNERS
+schema:
+ items:
+ type: string
+ type: array
+tags: []
+type: list
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml
index 58b9d9d4..8781d26e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml
@@ -96,3 +96,8 @@ DirectSocketsSettings:
- DefaultDirectSocketsPrivateNetworkAccessSetting
- DirectSocketsPrivateNetworkAccessAllowedForUrls
- DirectSocketsPrivateNetworkAccessBlockedForUrls
+SmartCardConnectSettings:
+ caption: Smart Card Connect settings
+ policies:
+ - SmartCardConnectAllowedForUrls
+ - SmartCardConnectBlockedForUrls
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml
index 0fd2fff9..fcb99848 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml
@@ -5,9 +5,9 @@ desc: |-
If you set the policy, users can't change it in $1Google Chrome. If not set, the default search provider is on, and users can set the search provider list.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: true
features:
can_be_recommended: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallForcelist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallForcelist.yaml
index aaf96b0b..9530639f 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallForcelist.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallForcelist.yaml
@@ -14,9 +14,9 @@ desc: |-
Each list item of the policy is a string that contains an extension ID and, optionally, an update URL separated by a semicolon (;). The extension ID is the 32-letter string found, for example, on chrome://extensions when in Developer mode. If specified, the update URL should point to an Update Manifest XML document ( https://developer.chrome.com/extensions/autoupdate ). The update URL should use one of the following schemes: http, https or file. By default, the Chrome Web Store's update URL is used. The update URL set in this policy is only used for the initial installation; subsequent updates of the extension use the update URL in the extension's manifest. The update url for subsequent updates can be overridden using the ExtensionSettings policy, see http://support.google.com/chrome/a?p=Configure_ExtensionSettings_policy.
- On Microsoft® Windows® instances, apps and extensions from outside the Chrome Web Store can only be forced installed if the instance is joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows® instances, apps and extensions from outside the Chrome Web Store can only be forced installed if the instance is joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS instances, apps and extensions from outside the Chrome Web Store can only be force installed if the instance is managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS instances, apps and extensions from outside the Chrome Web Store can only be force installed if the instance is managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
Note: This policy doesn't apply to Incognito mode. Read about hosting extensions ( https://developer.chrome.com/extensions/hosting ).
example_value:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml
index 3dd3ec1a..56762b7d 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml
@@ -4,9 +4,9 @@ desc: |-
This policy maps an extension ID or an update URL to its specific setting only. A default configuration can be set for the special ID "*", which applies to all extensions without a custom configuration in this policy. With an update URL, configuration applies to extensions with the exact update URL stated in the extension manifest ( http://support.google.com/chrome/a?p=Configure_ExtensionSettings_policy ). If the 'override_update_url' flag is set to true, the extension is installed and updated using the "update" URL specified in the ExtensionInstallForcelist policy or in 'update_url' field in this policy. The flag 'override_update_url' is ignored if the 'update_url' is a Chrome Web Store url.
- On Microsoft® Windows® instances, apps and extensions from outside the Chrome Web Store can only be forced installed if the instance is joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows® instances, apps and extensions from outside the Chrome Web Store can only be forced installed if the instance is joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS instances, apps and extensions from outside the Chrome Web Store can only be force installed if the instance is managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS instances, apps and extensions from outside the Chrome Web Store can only be force installed if the instance is managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
'*':
allowed_types:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml
index 5bd54b2d..743bd486 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml
@@ -33,9 +33,9 @@ desc: |-
All sets provided by the policy must be valid First-Party Sets, if they aren't then an
appropriate error will be outputted.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
This is the equivalent of the RelatedWebsiteSetsOverrides policy.
Either policy may be used, but this one will be deprecated soon so the RelatedWebsiteSetsOverrides policy is preferred.
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml
index 417b5993..c63e1fc6 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml
@@ -12,7 +12,8 @@ desc: |-
DevTools Generative AI features include:
- Console Insights: explains console messages and offers suggestions on how to fix console errors.
- - AI assistance: helps users to understand CSS styles with AI-powered insights.
+
+ - AI assistance: get help with understanding CSS styles (since version 131), network requests, performance, and files (all since version 132).
default: 0
example_value: 2
features:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml
new file mode 100755
index 00000000..7f7fcd04
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAIPhotoEditingSettings.yaml
@@ -0,0 +1,40 @@
+caption: Settings for Generative AI Photo Editing feature
+desc: |-
+ This policy controls the settings of the Generative AI Photo Editing feature for $1Google ChromeOS.
+
+ 0 = Enable the feature for users, and send relevant data to Google to help train or improve AI models. Relevant data may include prompts, inputs, outputs, and source materials, depending on the feature. It may be reviewed by humans for the sole purpose of improving AI models. 0 is the default value, except when noted below.
+
+ 1 = Enable the feature for users, but do not send data to Google to train or improve AI models. 1 is the default value for Enterprise users managed by Google Admin console and for Education accounts managed by Google Workspace.
+
+ 2 = Disable the feature.
+
+default: 0
+example_value: 2
+features:
+ # Policy changes do not require a browser restart. However, the new policy
+ # will be applied the next time users open a new photo, not immediately.
+ # It is because the user might be actively editing during policy update.
+ dynamic_refresh: true
+ per_profile: true
+owners:
+- file://chromeos/ash/components/mantis/OWNERS
+items:
+- caption: Allow Generative AI Photo Editing and improve AI models.
+ name: Allowed
+ value: 0
+- caption: Allow Generative AI Photo Editing without improving AI models.
+ name: AllowedWithoutLogging
+ value: 1
+- caption: Do not allow Generative AI Photo Editing.
+ name: Disabled
+ value: 2
+schema:
+ enum:
+ - 0
+ - 1
+ - 2
+ type: integer
+future_on:
+- chrome_os
+tags: []
+type: int-enum
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccountAutoLoginDelay.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccountAutoLoginDelay.yaml
index b1950ad9..eb25d22e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccountAutoLoginDelay.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccountAutoLoginDelay.yaml
@@ -12,7 +12,6 @@ features:
dynamic_refresh: true
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: integer
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowScreenLock.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowScreenLock.yaml
index 6a22a1a4..0372d482 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowScreenLock.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowScreenLock.yaml
@@ -15,7 +15,6 @@ items:
value: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethods.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethods.yaml
index fb1e19f9..88b48e7b 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethods.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethods.yaml
@@ -15,6 +15,7 @@ features:
per_profile: true
owners:
- hendrich@chromium.org
+- poromov@chromium.org
schema:
items:
type: string
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml
new file mode 100755
index 00000000..53508dc5
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml
@@ -0,0 +1,26 @@
+caption: Enforce all allowed input methods to be enabled in a user session
+desc: |-
+ Setting the policy to true enforces all input methods from AllowedInputMethods policy to be enabled in $2Google ChromeOS sessions.
+ No other input methods can be enabled in the user sessions.
+ Setting the policy to false or not setting it doesn't enforce any enabled input methods and AllowedInputMethods policy only configures which input methods are available to the user.
+
+ If AllowedInputMethods policy is unset or set to an empty list, this policy is ignored and users can enable any input methods.
+device_only: false
+example_value: true
+features:
+ dynamic_refresh: true
+ per_profile: true
+items:
+- caption: Enforce all allowed input methods to be enabled
+ value: true
+- caption: Do not enforce enabled input methods
+ value: false
+owners:
+- poromov@chromium.org
+- hendrich@chromium.org
+schema:
+ type: boolean
+supported_on:
+- chrome_os:133-
+tags: []
+type: main
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ArcVmDataMigrationStrategy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ArcVmDataMigrationStrategy.yaml
index 138e74fc..463d0aac 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ArcVmDataMigrationStrategy.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ArcVmDataMigrationStrategy.yaml
@@ -24,7 +24,6 @@ items:
value: 1
owners:
- youkichihosoi@chromium.org
-- mhasank@chromium.org
- arc-commercial@google.com
schema:
enum:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AttestationExtensionWhitelist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AttestationExtensionWhitelist.yaml
index 7ab5ebf4..f070e298 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AttestationExtensionWhitelist.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AttestationExtensionWhitelist.yaml
@@ -12,7 +12,6 @@ features:
dynamic_refresh: true
per_profile: true
owners:
-- emaxx@chromium.org
- file://chrome/browser/extensions/api/enterprise_platform_keys/OWNERS
schema:
items:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml
index 26db68a8..0d4b4c31 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml
@@ -6,7 +6,7 @@ desc: |-
If this policy isn't set, only file types that a user has already specified to automatically be opened will do so when downloaded.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
example_value:
- exe
- txt
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml
index 085d5905..4dc27d89 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml
@@ -1,14 +1,12 @@
caption: Enable guest mode in browser
desc: |-
- If this policy is set to true or not configured, $1Google Chrome and Lacros will enable guest logins. Guest logins are $1Google Chrome profiles where all windows are in incognito mode.
+ If this policy is set to Enabled or not configured, $1Google Chrome will enable guest logins. Guest logins are $1Google Chrome profiles where all windows are in incognito mode.
- If this policy is set to false, $1Google Chrome and Lacros will not allow guest profiles to be started.
+ If this policy is set to Disabled, $1Google Chrome will not allow guest profiles to be started.
example_value: true
features:
dynamic_refresh: true
per_profile: false
-future_on:
-- fuchsia
items:
- caption: Allow guest browser logins
value: true
@@ -21,6 +19,5 @@ schema:
type: boolean
supported_on:
- chrome.*:38-
-- chrome_os:100-
tags: []
type: main
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CSSCustomStateDeprecatedSyntaxEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CSSCustomStateDeprecatedSyntaxEnabled.yaml
index 9e1871cb..02d96147 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CSSCustomStateDeprecatedSyntaxEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CSSCustomStateDeprecatedSyntaxEnabled.yaml
@@ -26,11 +26,11 @@ owners:
schema:
type: boolean
supported_on:
-- chrome.*:127-
-- chrome_os:127-
-- android:127-
-- webview_android:127-
+- chrome.*:127-132
+- chrome_os:127-132
+- android:127-132
+- webview_android:127-132
tags: []
type: main
-deprecated: false
+deprecated: true
device_only: false
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupEnabled.yaml
index 0437305c..7f3a51a4 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupEnabled.yaml
@@ -6,7 +6,7 @@ desc: |-
Setting the policy to Disabled means Chrome Cleanup won't periodically scan and manual triggering is disabled.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
example_value: true
features:
dynamic_refresh: false
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupReportingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupReportingEnabled.yaml
index 24c979e2..9a458336 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupReportingEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeCleanupReportingEnabled.yaml
@@ -8,7 +8,7 @@ desc: |-
Leaving the policy unset means Chrome Cleanup may, in line with policy set by SafeBrowsingExtendedReportingEnabled, report about scans for detecting unwanted software to Google. Chrome Cleanup asks users if they want the cleanup and to share the results with Google to help with future unwanted software detection. These results have file metadata, automatically installed extensions, and registry keys, as described by the Chrome Privacy Whitepaper.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
example_value: true
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeDataRegionSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeDataRegionSetting.yaml
index 2f98e5b6..3690bb50 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeDataRegionSetting.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeDataRegionSetting.yaml
@@ -37,5 +37,7 @@ schema:
future_on:
- chrome.*
- chrome_os
+- ios
+- android
tags: []
type: int-enum
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClientCertificateManagementAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClientCertificateManagementAllowed.yaml
index d4477ab7..be8b16bc 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClientCertificateManagementAllowed.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClientCertificateManagementAllowed.yaml
@@ -20,7 +20,6 @@ items:
value: 2
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
enum:
- 0
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml
index ab29654e..52f4e259 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml
@@ -1,10 +1,10 @@
caption: Enable mandatory cloud management enrollment
desc: |-
- Setting the policy to Enabled mandates Chrome Browser Cloud Management enrollment and blocks $1Google Chrome launch process if failed.
+ Setting the policy to Enabled mandates Chrome Enterprise Core browser enrollment and blocks $1Google Chrome launch process if failed.
- Setting the policy to Disabled or leaving it unset renders Chrome Browser Cloud Management optional and doesn't block $1Google Chrome launch process if failed.
+ Setting the policy to Disabled or leaving it unset renders Chrome Enterprise Core browser enrollment optional and doesn't block $1Google Chrome launch process if failed.
- Machine scope cloud policy enrollment on desktop uses this policy. See https://support.google.com/chrome/a/answer/9301891?ref_topic=9301744 for details.
+ Machine scope cloud policy enrollment on desktop uses this policy. See https://support.google.com/chrome/a/answer/9301891 for details.
example_value: true
features:
dynamic_refresh: false
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentToken.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentToken.yaml
index 2dc15a01..9112d7c0 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentToken.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentToken.yaml
@@ -1,8 +1,8 @@
caption: The enrollment token of cloud policy
desc: |-
- Setting the policy means $1Google Chrome tries to register itself with Chrome Browser Cloud Management. The value of this policy is an enrollment token you can retrieve from the Google Admin console.
+ Setting the policy means $1Google Chrome tries to register itself with Chrome Enterprise Core browser management. The value of this policy is an enrollment token you can retrieve from the Google Admin console.
- See https://support.google.com/chrome/a/answer/9301891?ref_topic=9301744 for details.
+ See https://support.google.com/chrome/a/answer/9301891 for details.
example_value: 37185d02-e055-11e7-80c1-9a214cf093ae
features:
dynamic_refresh: false
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml
index a7c7bc9f..e327e9cd 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml
@@ -3,11 +3,12 @@ caption: $1Google Chrome cloud policy over
desc: |-
Setting the policy to Enabled means cloud policy takes precedence if it conflicts with platform policy.
- Setting the policy to Disabled or leaving it unset means platform policy takes precedence if it conflicts with cloud policy.
+ Setting the policy to Disabled or leaving it unset means platform policy takes precedence if it conflicts with cloud policy.
- This mandatory policy affects machine scope cloud policies.
+ This mandatory policy affects machine scope cloud policies.
- This policy is only available on $1Google Chrome; it has no effect on Google Update.
+ This policy is specific to $1Google Chrome and does not affect Google Update because they are independent applications.
+ Google Update has a separate policy with the same name.
example_value: false
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyMerge.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyMerge.yaml
index 0f91bc05..a9f5a360 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyMerge.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyMerge.yaml
@@ -1,13 +1,13 @@
caption: Enables merging of user cloud policies into machine-level policies
default: false
desc: |-
- Setting the policy to Enabled allows policies associated with a Google Workspace account to be merged into machine-level policies.
+ Setting the policy to Enabled allows policies associated with a managed account to be merged into machine-level policies.
- Only policies originating from secure users can be merged. A secure user is affiliated with the organization that manages their browser using Chrome Browser Cloud Management. All other user-level policies will always be ignored.
+ Setting the policy to Disabled or leaving it unset prevents user-level cloud policies from being merged with policies from any other sources.
- Policies that need to be merged also need to be set in either PolicyListMultipleSourceMergeList or PolicyDictionaryMultipleSourceMergeList. This policy will be ignored if neither of the two aforementioned policies is configured.
+ Only policies originating from secure users can take precedence. A secure user is affiliated with the organization that manages their browser using Chrome Enterprise Core. All other user-level policies will have default precedence.
- Leaving the policy unset or setting it to Disabled prevents user-level cloud policies from being merged with policies from any other sources.
+ Policies that need to be merged also need to be set in either PolicyListMultipleSourceMergeList or PolicyDictionaryMultipleSourceMergeList. This policy will be ignored if neither of the two aforementioned policies is configured.
example_value: true
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyOverridesCloudMachinePolicy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyOverridesCloudMachinePolicy.yaml
index 3ed29814..7cce04f0 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyOverridesCloudMachinePolicy.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudUserPolicyOverridesCloudMachinePolicy.yaml
@@ -2,13 +2,13 @@ caption: Allow user cloud policies to override Google Workspace account to take precedence if they conflict with Chrome Browser Cloud Management policies.
+ Setting the policy to Enabled allows policies associated with a managed account to take precedence if they conflict with Chrome Enterprise Core browser policies.
- Only policies originating from secure users can take precedence. A secure user is affiliated with the organization that manages their browser using Chrome Browser Cloud Management. All other user-level policies will have default precedence.
+ Setting the policy to Disabled or leaving it unset causes user-level cloud policies to have default priority.
- The policy can be combined with CloudPolicyOverridesPlatformPolicy. If both policies are enabled, user cloud policies will also take precedence over conflicting platform policies.
+ Only policies originating from secure users can take precedence. A secure user is affiliated with the organization that manages their browser using Chrome Enterprise Core. All other user-level policies will have default precedence.
- Leaving the policy unset or setting it to disabled causes user-level cloud policies to have default priority.
+ The policy can be combined with CloudPolicyOverridesPlatformPolicy. If both policies are enabled, user cloud policies will also take precedence over conflicting platform policies.
example_value: false
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml
index 4bd2e6b7..85af4013 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml
@@ -5,9 +5,9 @@ desc: |-
Setting the policy to Disabled prevents security warnings from appearing when Chrome is launched with potentially dangerous command-line flags.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: true
features:
dynamic_refresh: false
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextualSuggestionsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextualSuggestionsEnabled.yaml
index 7fe6afe4..ba18cb13 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextualSuggestionsEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ContextualSuggestionsEnabled.yaml
@@ -11,7 +11,6 @@ features:
per_profile: true
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenPrimaryMouseButtonSwitch.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenPrimaryMouseButtonSwitch.yaml
index 7f78caf7..f4f12bee 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenPrimaryMouseButtonSwitch.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenPrimaryMouseButtonSwitch.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenWebUILazyLoading.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenWebUILazyLoading.yaml
deleted file mode 100755
index b410c8a8..00000000
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenWebUILazyLoading.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-caption: Load Login WebUI only when needed.
-default: false
-desc: |-
- This policy controls whether the WebUI part of the sign-in screen will be always loaded at start or only before showing it. This policy applies to the sign-in screen.
-
- If this policy is enabled, the WebUI part of the sign-in UI will be loaded only before showing it. This speeds up the login process.
-
- If this policy is disabled, the WebUI part of the sign-in screen will always be loaded on boot (legacy behavior).
-
- If unset, behavior will be controlled by kEnableLazyLoginWebUILoading feature.
-
- This policy should be removed after kEnableLazyLoginWebUILoading is fully rolled out.
-device_only: true
-example_value: true
-features:
- dynamic_refresh: false
- per_profile: false
-future_on:
-- chrome_os
-items:
-- caption: Enable Lazy Login WebUI loading.
- value: true
-- caption: Disable Lazy Login WebUI loading.
- value: false
-owners:
-- alemate@chromium.org
-- rsorokin@chromium.org
-- antrim@chromium.org
-schema:
- type: boolean
-tags: []
-type: main
-generate_device_proto: False
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativeClientForceAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativeClientForceAllowed.yaml
index b0f6f04e..3a52d758 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativeClientForceAllowed.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceNativeClientForceAllowed.yaml
@@ -1,5 +1,5 @@
caption: Forces Native Client (NaCl) to be allowed to run on $2Google ChromeOS.
-default: true
+default: false
desc: |-
Setting the policy to True allows Native Client to continue to run even if the default behavior is that Native Client is disabled.
Setting the policy to False or leaving it unset will use the default behavior.
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml
index 5e5cf59a..d1bdf958 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml
@@ -15,7 +15,6 @@ items:
value: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml
index a3aa1670..7c84b433 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml
@@ -1,17 +1,28 @@
caption: Controls the mode of DNS-over-HTTPS
default_for_enterprise_users: 'off'
desc: |-
- Controls the mode of the DNS-over-HTTPS resolver. Please note that this policy will only set the default mode for each query. The mode may be overridden for special types of queries such as requests to resolve a DNS-over-HTTPS server hostname.
+ Controls the mode of the DNS-over-HTTPS resolver. Please note that this
+ policy will only set the default mode for each query. The mode may be
+ overridden for special types of queries such as requests to resolve a
+ DNS-over-HTTPS server hostname.
- The "off" mode will disable DNS-over-HTTPS.
+ The "off" mode will disable
+ DNS-over-HTTPS.
- The "automatic" mode will send DNS-over-HTTPS queries first if a DNS-over-HTTPS server is available and may fallback to sending insecure queries on error.
+ The "automatic" mode will send
+ DNS-over-HTTPS queries first if a DNS-over-HTTPS server is available and
+ may fallback to sending insecure queries on error.
- The "secure" mode will only send DNS-over-HTTPS queries and will fail to resolve on error.
+ The "secure" mode will only send
+ DNS-over-HTTPS queries and will fail to resolve on error.
- On Android Pie and above, if DNS-over-TLS is active, $1Google Chrome will not send insecure DNS requests.
+ On Android Pie and above, if DNS-over-TLS
+ is active, $1Google Chrome will not
+ send insecure DNS requests.
- If this policy is unset the browser may send DNS-over-HTTPS requests to a resolver associated with the user's configured system resolver.
+ If this policy is unset, for managed devices DNS-over-HTTPS queries will not
+ be sent. Otherwise, the browser may send DNS-over-HTTPS requests to a
+ resolver associated with the user's configured system resolver.
example_value: 'off'
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableDeprecatedWebBasedSignin.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableDeprecatedWebBasedSignin.yaml
index e452d340..3662a676 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableDeprecatedWebBasedSignin.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableDeprecatedWebBasedSignin.yaml
@@ -14,7 +14,6 @@ features:
per_profile: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrl.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrl.yaml
index 1de28289..7ce631cd 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrl.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrl.yaml
@@ -5,7 +5,7 @@ desc: |-
This policy can only be set as a user policy.
- It is recommended to use the favicon (example https://www.google.com/favicon.ico) or an icon no smaller than 24 x 24 px.
+ It is recommended to use the favicon (example https://www.google.com/favicon.ico) or an icon no smaller than 48 x 48 px.
example_value: https://example.com/image.png
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml
index e06b32fa..fb746f7b 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml
@@ -14,9 +14,9 @@ desc: |-
The icon_url field specifies the URL to an image that will be used on the search suggestions. A default icon will be used when this field is not set. It's recommended to use a favicon (example https://www.google.com/favicon.ico).
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
name: My Search Aggregator
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FilePickerChooseFromDriveSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FilePickerChooseFromDriveSettings.yaml
new file mode 100755
index 00000000..77297a03
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FilePickerChooseFromDriveSettings.yaml
@@ -0,0 +1,33 @@
+caption: Allow choosing files directly from Google Drive
+default: 0
+desc: This policy controls whether the user is allowed to choose files from Google Drive
+ directly when a website contains a form where files can be submitted.
+
+ Setting the policy to "Show Google Drive option." (0) or not setting the policy allows the user to choose files from Google Drive in the file selection menu.
+
+ Setting the policy to "Hide Google Drive option." (1) hides the Google Drive option in the file selection menu.
+
+ This policy does not prevent users from choosing files from Google Drive using other ways beside the 'Google Drive' action in the file selection menu.
+example_value: 0
+features:
+ dynamic_refresh: true
+ per_profile: true
+items:
+- caption: Show Google Drive option.
+ name: Enabled
+ value: 0
+- caption: Hide Google Drive option.
+ name: Disabled
+ value: 1
+owners:
+- qpubert@google.com
+- olivierrobin@google.com
+schema:
+ enum:
+ - 0
+ - 1
+ type: integer
+supported_on:
+- ios:133-
+tags: []
+type: int-enum
\ No newline at end of file
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml
index 79927e94..67f04469 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml
@@ -31,7 +31,6 @@ items:
value: 2
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
enum:
- 0
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IsolatedWebAppInstallForceList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IsolatedWebAppInstallForceList.yaml
index 81dbc874..067a03ed 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IsolatedWebAppInstallForceList.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IsolatedWebAppInstallForceList.yaml
@@ -6,13 +6,16 @@ desc: |-
Each list item of the policy is an object which has two mandatory fields: the update manifest URL and Web Bundle ID of the Isolated Web App.
- Each item can also have optional fields: an IWA release/update channel name (update_channel) and a specific version to pin (pinned_version).
- If the "update_channel" is not set, then the value of "default" will be used. When the pinned_version is specified, the system will attempt to install that specific version (if available on the current update channel).
- By default, version pinning does not allow going back to older versions. Pinning an IWA to a specific version prevents it from being updated beyond that version. To unpin, remove this field.
+ Each item can also include these optional fields:
+
+ * update_channel: The IWA release/update channel name. If not set, "default" is used.
+ * pinned_version: A specific version to install. The system will attempt to install this version if available on the specified update channel. By default, pinning an IWA to a specific version prevents it from being updated beyond that version. To unpin, remove this field.
+ * allow_downgrades:: Enables installing older versions of the IWA. This requires the `pinned_version` field to be set. If not provided or set to false downgrading is disabled for that IWA.
example_value:
- update_manifest_url: https://example.com/isolated_web_app/update_manifest.json
web_bundle_id: aerugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic
update_channel: beta
+ allow_downgrades: true
pinned_version: 1.2.3
features:
dynamic_refresh: true
@@ -36,6 +39,12 @@ schema:
The name of the IWA's update/release channel. This value can be any string;
no restrictions are imposed. If no value is provided, the "default"
channel will be used.
+ allow_downgrades:
+ type: boolean
+ description: >-
+ Enables the downgrading feature for IWAs. By default, only newer versions of IWAs are installed. When set to true, this allows you to install older versions as well.
+ To enable downgrading, the desired version value must be specified by using the `pinned_version` field.
+ If `allow_downgrades` is not provided or is set to false, downgrading is disabled for that IWA.
pinned_version:
type: string
description: >-
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosAvailability.yaml
index 2d329472..89fb2dc1 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosAvailability.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosAvailability.yaml
@@ -48,6 +48,7 @@ schema:
- lacros_only
type: string
supported_on:
-- chrome_os:92-
+- chrome_os:92-130
tags: []
type: string-enum
+deprecated: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosSelection.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosSelection.yaml
index c1318d3d..e1b8a957 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosSelection.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LacrosSelection.yaml
@@ -50,6 +50,7 @@ schema:
- rootfs
type: string
supported_on:
-- chrome_os:112-
+- chrome_os:112-130
tags: []
type: string-enum
+deprecated: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml
index 3aa91716..e854605e 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml
@@ -7,9 +7,9 @@ desc: |-
When this policy is not set, users can choose the anonymous reporting behavior at installation or first run, and can change this setting later.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
(For $2Google ChromeOS, see DeviceMetricsReportingEnabled.)
example_value: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PrimaryMouseButtonSwitch.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PrimaryMouseButtonSwitch.yaml
index dcf2a373..bea1aa20 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PrimaryMouseButtonSwitch.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PrimaryMouseButtonSwitch.yaml
@@ -23,8 +23,7 @@ items:
- caption: Allow the user to decide
value: null
owners:
-- amraboelkher@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromptOnMultipleMatchingCertificates.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromptOnMultipleMatchingCertificates.yaml
index f0790643..cd547ea4 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromptOnMultipleMatchingCertificates.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromptOnMultipleMatchingCertificates.yaml
@@ -17,7 +17,6 @@ items:
- caption: Only prompt the user when no certificate matches the auto-selection.
value: false
owners:
-- emaxx@chromium.org
- miersh@google.com
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProxySettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProxySettings.yaml
index e2cfea0d..5f4ff872 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProxySettings.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProxySettings.yaml
@@ -5,25 +5,33 @@ caption: Proxy settings
desc: |-
Setting the policy configures the proxy settings for Chrome and ARC-apps, which ignore all proxy-related options specified from the command line.
- Leaving the policy unset lets users choose their proxy settings.
+ Leaving the policy unset lets users choose their proxy settings.
- Setting the ProxySettings policy accepts the following fields:
- * ProxyMode, which lets you specify the proxy server Chrome uses and prevents users from changing proxy settings
- * ProxyPacUrl, a URL to a proxy .pac file, or a PAC script encoded as a data URL with MIME type application/x-ns-proxy-autoconfig
- * ProxyPacMandatory, which prevents the network stack from falling back to direct connections with invalid or unavailable PAC script
- * ProxyServer, a URL of the proxy server
- * ProxyBypassList, a list of hosts for which the proxy will be bypassed
+ Setting the ProxySettings policy accepts the following fields:
- The ProxyServerMode field is deprecated in favor of the ProxyMode field.
+ * ProxyMode, which lets you specify the proxy server Chrome uses and prevents users from changing proxy settings
- For ProxyMode, if you choose the value:
- * direct, a proxy is never used and all other fields are ignored.
- * system, the systems's proxy is used and all other fields are ignored.
- * auto_detect, all other fields are ignored.
- * fixed_servers, the ProxyServer and ProxyBypassList fields are used.
- * pac_script, the ProxyPacUrl, ProxyPacMandatory and ProxyBypassList fields are used.
+ * ProxyPacUrl, a URL to a proxy .pac file, or a PAC script encoded as a data URL with MIME type application/x-ns-proxy-autoconfig
- Note: For more detailed examples, visit The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).
+ * ProxyPacMandatory, which prevents the network stack from falling back to direct connections with invalid or unavailable PAC script
+
+ * ProxyServer, a URL of the proxy server
+
+ * ProxyBypassList, a list of hosts for which the proxy will be bypassed
+
+ The ProxyServerMode field is deprecated in favor of the ProxyMode field. For ProxyMode, if you choose the value:
+
+ * direct, a proxy is never used and all other fields are ignored.
+
+ * system, the systems's proxy is used and all other fields are ignored.
+
+ * auto_detect, all other fields are ignored.
+
+ * fixed_servers, the ProxyServer and ProxyBypassList fields are used.
+
+ * pac_script, the ProxyPacUrl, ProxyPacMandatory and ProxyBypassList fields are used.
+
+ Note: For more detailed examples, visit The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings/#command-line-options-for-proxy-settings ).
example_value:
ProxyBypassList: https://www.example1.com,https://www.example2.com,https://internalsite/
ProxyMode: fixed_servers
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingForTrustedSourcesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingForTrustedSourcesEnabled.yaml
index 6db8b12c..7c00d888 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingForTrustedSourcesEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingForTrustedSourcesEnabled.yaml
@@ -7,7 +7,7 @@ desc: |-
These restrictions apply to downloads triggered from webpage content, as well as the Download link menu option. These restrictions don't apply to the save or download of the currently displayed page or to saving as PDF from the printing options.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
example_value: false
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingWhitelistDomains.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingWhitelistDomains.yaml
index e057c15f..6d346774 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingWhitelistDomains.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeBrowsingWhitelistDomains.yaml
@@ -7,7 +7,7 @@ desc: |-
Setting the policy to Disabled or leaving it unset means default Safe Browsing protection applies to all resources.
- On Microsoft® Windows®, this functionality is only available on instances that are joined to a Microsoft® Active Directory® domain, running on Windows 10 Pro, or enrolled in Chrome Browser Cloud Management. On macOS, this functionality is only available on instances that are managed via MDM, or joined to a domain via MCX.
+ On Microsoft® Windows®, this functionality is only available on instances that are joined to a Microsoft® Active Directory® domain, running on Windows 10 Pro, or enrolled in Chrome Enterprise Core. On macOS, this functionality is only available on instances that are managed via MDM, or joined to a domain via MCX.
example_value:
- mydomain.com
- myuniversity.edu
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml
index 771268f0..8ec25959 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml
@@ -2,11 +2,13 @@ caption: Control SafeSites adult content filtering.
desc: |-
Setting the policy controls the SafeSites URL filter, which uses the Google Safe Search API to classify URLs as pornographic or not.
- When this policy is set to:
+ When this policy is set to:
- * Do not filter sites for adult content, or not set, sites aren't filtered
+ * Do not filter sites for adult content, or not set, sites aren't filtered
- * Filter top level sites for adult content, pornographic sites are filtered
+ * Filter sites for adult content, pornographic sites are filtered
+
+ The policy applies to both the URL the user navigates to and to iframes. The URLAllowlist policy takes precedence over this policy and can be used to override verdicts from the Google Safe Search API.
example_value: 0
features:
dynamic_refresh: true
@@ -17,7 +19,7 @@ items:
- caption: Do not filter sites for adult content
name: SafeSitesFilterDisabled
value: 0
-- caption: Filter top level sites (but not embedded iframes) for adult content
+- caption: Filter sites for adult content
name: SafeSitesFilterEnabled
value: 1
owners:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml
index ed949526..48d9e1cb 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml
@@ -16,7 +16,6 @@ items:
value: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SchedulerConfiguration.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SchedulerConfiguration.yaml
index db972887..97e9aa75 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SchedulerConfiguration.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SchedulerConfiguration.yaml
@@ -17,7 +17,6 @@ items:
value: performance
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
enum:
- conservative
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml
index 2786b950..8d80aaa7 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml
@@ -21,7 +21,6 @@ items:
name: lock
value: LOCK
owners:
-- fabiansommer@chromium.org, emaxx@chromium.org
- fabiansommer@chromium.org
schema:
enum:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionNotificationSeconds.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionNotificationSeconds.yaml
index c8644016..b4758e07 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionNotificationSeconds.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionNotificationSeconds.yaml
@@ -14,7 +14,6 @@ features:
dynamic_refresh: true
per_profile: false
owners:
-- fabiansommer@chromium.org, emaxx@chromium.org
- fabiansommer@chromium.org
schema:
maximum: 9999
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml
index d2249776..239f10a0 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml
@@ -16,9 +16,9 @@ desc: |-
In case of a conflict with a shortcut previously created by the user, the user setting takes precedence. However, users can still trigger the option created by the policy by typing "@" in the search bar. For example, if the user already defined "work" as a shortcut to URL1 and the policy defines "work" as a shortcut to URL2, then typing "work" in the search bar will trigger a search to URL1, but typing "@work" in the search bar will trigger a search to URL2.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
- featured: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserFeedbackAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserFeedbackAllowed.yaml
index 47c3af39..abe0a7f6 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserFeedbackAllowed.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserFeedbackAllowed.yaml
@@ -16,8 +16,7 @@ items:
- caption: Prevent users from filing feedback
value: false
owners:
-- apotapchuk@chromium.org
-- emaxx@chromium.org
+- file://components/policy/OWNERS
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml
index 15038b00..e130944c 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml
@@ -2,9 +2,9 @@ caption: Enable leak detection for entered credentials
desc: |-
Setting the policy to Enabled lets users have $1Google Chrome check whether usernames and passwords entered were part of a leak.
- If the policy is set, users can't change it in $1Google Chrome. If not set, credential leak checking is allowed, but the user can turn it off.
+ Setting the policy to Disabled does not let users have this functionality.
- This behavior will not trigger if Safe Browsing is disabled (either by policy or by the user). In order to force Safe Browsing on, use the SafeBrowsingEnabled policy or the SafeBrowsingProtectionLevel policy.
+ If the policy is set, users can't change it in $1Google Chrome. If not set, credential leak checking is allowed, but the user can turn it off.
example_value: true
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml
index 1e14d41e..9806e4d5 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml
@@ -15,7 +15,6 @@ items:
value: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml
index 0a1a8ff7..870c8fc2 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml
@@ -5,8 +5,14 @@ default_for_enterprise_users: false
desc: |-
Specifies whether an adaptive charging model is allowed to hold charging process to extend battery life.
- When the device is on AC, the adaptive charging model evaluates if charging process should be hold to extend battery life. If the adaptive charging model holds the charging process, it'll keep the battery at a certain level (i.e. 80%) and then charge the device to 100% when the user needs it.
- If this policy is set to True, the adaptive charging model will be enabled and allowed to hold the charging process to extend battery life. If this policy is set to False or unset, the adaptive charging model will not influence the charging process.
+ When the device is on AC, the adaptive charging model evaluates if charging process should be hold to extend battery life. If the adaptive charging model holds the charging process, it'll keep the battery at a certain level (i.e. 80%) and then charge the device to 100% when the user needs it.
+
+ If this policy is set to True, the adaptive charging model will be enabled and allowed to hold the charging process to extend battery life.
+
+ If this policy is set to False or unset, the adaptive charging model will not influence the charging process.
+
+ Note: This policy has no effect if DevicePowerBatteryChargingOptimization is set.
+
example_value: false
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml
new file mode 100755
index 00000000..f6f19af9
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml
@@ -0,0 +1,43 @@
+caption: Battery Charging Optimization
+desc: |-
+ Battery health can be affected by factors like frequent full charges and extended charging durations. This policy provides three options to optimize charging behavior and mitigate these factors, ultimately prolonging battery lifespan.
+
+ Setting the policy to 1 - Standard or leaving it unset, the battery charges normally to 100%. This disables adaptive and limited charging.
+
+ Setting the policy to 2 - Adaptive, the device learns your charging habits and delays charging to 100% until necessary. This helps prolong battery health.
+
+ Setting the policy to 3 - Limited, the battery charges only to around 80% to maximize its lifespan.
+
+ This policy overrides DevicePowerAdaptiveChargingEnabled.
+
+ The DevicePowerBatteryChargingOptimization and DevicePowerAdaptiveChargingEnabled polices always take precedence over user settings.
+
+device_only: true
+example_value: 1
+default: 1
+features:
+ dynamic_refresh: true
+ per_profile: false
+items:
+- caption: Fully charge battery at a standard rate. This mode disables adaptive and limited charging.
+ name: Standard
+ value: 1
+- caption: Adaptive charge battery using machine learning to predict the time you disconnect the charger and delays charging to 100% to extend battery life.
+ name: Adaptive
+ value: 2
+- caption: Charge battery to around 80% to maximize battery lifespan.
+ name: Limited
+ value: 3
+owners:
+- jingmuli@google.com
+- chromeos-power-team@google.com
+schema:
+ enum:
+ - 1
+ - 2
+ - 3
+ type: integer
+future_on:
+- chrome_os
+tags: []
+type: int-enum
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml
index 18dc26dc..bb814870 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml
@@ -1,11 +1,12 @@
caption: Choose whether the Privacy Sandbox IP Protection feature should be enabled.
default: null
+default_for_enterprise_users: false
desc: |-
A policy to control whether the Privacy Sandbox IP Protection feature should be enabled.
If the policy is set to Disabled, then the IP Protection feature will be disabled and users won't be able to enable the feature via UI settings.
If the policy is set to Enabled, then the IP Protection feature will be enabled and users won't be able to disable the feature via UI settings.
- If the policy is not set, users will be able to turn on or turn off the IP Protection feature on their device via UI settings.
+ If the policy is not set, users whose browser or device is being managed will have the IP Protection feature disabled and will not be able to enable the feature via UI settings. Users on unmanaged browsers and devices will be able to turn on or turn off the IP Protection feature on their device via UI settings.
Note: The behavior of the IP Protection feature for enterprise users may vary over time when the policy is set to Enabled or when the policy is not set and the feature is enabled via UI settings.
example_value: false
@@ -22,7 +23,7 @@ items:
value: false
- caption: Enable the Privacy Sandbox IP Protection feature.
value: true
-- caption: Allow users to turn on or turn off the Privacy Sandbox IP Protection setting on their device.
+- caption: Allow users to turn on or turn off the Privacy Sandbox IP Protection setting on their device if their browser and device are not being managed.
value: null
owners:
- awillia@chromium.org
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml
index 760d5f67..fbb47fa2 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsEnabled.yaml
@@ -23,7 +23,7 @@ items:
- caption: Disable Related Website Sets
value: false
owners:
-- sandormajor@google.com
+- sandormajor@chromium.org
- chrome-first-party-sets@chromium.org
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsOverrides.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsOverrides.yaml
index a9b7bea7..82bcfce5 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsOverrides.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RelatedWebsiteSets/RelatedWebsiteSetsOverrides.yaml
@@ -35,9 +35,9 @@ desc: |-
All sets provided by the policy must be valid Related Website Sets, if they aren't then an
appropriate error will be outputted.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
additions:
- associatedSites:
@@ -66,7 +66,7 @@ supported_on:
- android:120-
- fuchsia:120-
owners:
-- sandormajor@google.com
+- sandormajor@chromium.org
- chrome-first-party-sets@chromium.org
schema:
properties:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml
index 0e7b3933..508e8491 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml
@@ -14,7 +14,6 @@ items:
value: false
owners:
- mslus@chromium.org
-- emaxx@chromium.org
schema:
type: boolean
supported_on:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml
index 615d7376..77debe61 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml
@@ -4,9 +4,9 @@ desc: |-
Turning the policy off or leaving it unset means the service sends users to https://myaccount.google.com to change their password.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: https://mydomain.com/change_password.html
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml
index fb806f39..072dfdd5 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml
@@ -5,9 +5,9 @@ desc: |-
Turning this setting off or leaving it unset means the password protection service only captures the password salted hashes on https://accounts.google.com.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
- https://mydomain.com/login.html
- https://login.mydomain.com
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml
index c120151d..84ce3d85 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml
@@ -6,9 +6,9 @@ desc: |-
This policy does not support regular expressions; however, subdomains of a given domain are allowlisted. Fully qualified domain names (FQDNs) are not required.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value:
- mydomain.com
- myuniversity.edu
@@ -27,5 +27,6 @@ schema:
supported_on:
- chrome.*:86-
- chrome_os:86-
+- android:133-
tags: []
type: list
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml
index c21bca31..82923200 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml
@@ -11,9 +11,9 @@ desc: |-
If the policy SafeBrowsingProtectionLevel is set, the value of the policy SafeBrowsingEnabled is ignored.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: true
features:
can_be_recommended: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenExtensions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenExtensions.yaml
index eaa9e47c..f93bfd67 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenExtensions.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenExtensions.yaml
@@ -18,7 +18,6 @@ example_value:
features:
dynamic_refresh: true
owners:
-- emaxx@chromium.org
- hendrich@chromium.org
schema:
items:
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenPromptOnMultipleMatchingCertificates.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenPromptOnMultipleMatchingCertificates.yaml
index 4243a00f..f6d946fa 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenPromptOnMultipleMatchingCertificates.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenPromptOnMultipleMatchingCertificates.yaml
@@ -17,7 +17,6 @@ items:
- caption: Do not prompt the user to select a client certificate on the sign-in screen
value: false
owners:
-- emaxx@chromium.org
- miersh@google.com
schema:
type: boolean
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceStartUpFlags.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceStartUpFlags.yaml
index 2c50bbac..c183b7bc 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceStartUpFlags.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceStartUpFlags.yaml
@@ -13,7 +13,6 @@ features:
dynamic_refresh: false
owners:
- file://components/policy/OWNERS
-- emaxx@chromium.org
schema:
items:
type: string
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml
index 648ba2f9..7e64ce2a 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml
@@ -5,9 +5,9 @@ desc: |-
If you set the policy, users can't change their homepage type in $1Google Chrome. If not set, the user decides whether or not the New Tab page is their homepage.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: true
features:
can_be_recommended: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml
index 6c2508b6..ec5ecb94 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml
@@ -8,9 +8,9 @@ desc: |-
Leaving both HomepageLocation and HomepageIsNewTabPage unset lets users choose their homepage.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: https://www.chromium.org
features:
can_be_recommended: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml
index 54ed8241..87f49a99 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml
@@ -10,9 +10,9 @@ desc: |-
Leaving the policy unset or empty puts the default New Tab page in use.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: https://www.chromium.org
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml
index 6f806bba..997712f5 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml
@@ -8,9 +8,9 @@ desc: |-
If this policy is set to RestoreOnStartupIsLastSessionAndURLs, browser will restore previous session and open a separate window to show URLs that are set from RestoreOnStartupURLs. Note that users can choose to keep those URLs open and they will also be restored in the future session.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
- On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Browser Cloud Management.
+ On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core.
example_value: 4
features:
can_be_recommended: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml
index d4904219..fdd2d563 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml
@@ -4,7 +4,7 @@ desc: |-
If not set, the New Tab page opens on start up.
- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Browser Cloud Management.
+ On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core.
example_value:
- https://example.com
- https://www.chromium.org
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/.group.details.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/.group.details.yaml
new file mode 100755
index 00000000..de06cf3b
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/.group.details.yaml
@@ -0,0 +1,2 @@
+caption: WebRtc settings
+desc: Controls WebRtc related configuration
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcIPHandling.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandling.yaml
similarity index 61%
rename from tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcIPHandling.yaml
rename to tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandling.yaml
index b6f2f665..89f9181d 100755
--- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcIPHandling.yaml
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandling.yaml
@@ -1,9 +1,21 @@
-caption: The IP handling policy of WebRTC
+caption: WebRTC IP handling
default: default
-desc: This policy allows restricting which IP addresses and interfaces WebRTC uses
- when attempting to find the best available connection. See RFC 8828 section 5.2
- (https://tools.ietf.org/html/rfc8828.html#section-5.2). When unset, defaults to
- using all available interfaces.
+desc: |-
+ This policy allows restricting which IP addresses and interfaces WebRTC uses when attempting to find the best available connection.
+
+ Valid values:
+
+ * default - WebRTC uses all available network interfaces.
+
+ * default_public_and_private_interfaces - WebRTC uses all public and private interfaces.
+
+ * default_public_interface_only - WebRTC uses all public interfaces, but not private ones.
+
+ * disable_non_proxied_udp - WebRTC uses either UDP SOCKS proxying or will fallback to TCP proxying.
+
+ When unset, defaults to using all available network interfaces.
+
+ See RFC 8828 section 5.2 (https://tools.ietf.org/html/rfc8828.html#section-5.2) for a detailed description of all the handling values.
example_value: default
features:
dynamic_refresh: true
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandlingUrl.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandlingUrl.yaml
new file mode 100755
index 00000000..ba2b4d63
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandlingUrl.yaml
@@ -0,0 +1,51 @@
+caption: WebRTC per URL IP Handling
+desc: |-
+ This policy allows restricting which IP addresses and interfaces WebRTC uses when attempting to find the best available connection for each specific URL pattern.
+
+ It accepts a list of URL patterns and handling type pairs. The URL patterns are checked in order and the first match will configure which handling is used by WebRTC for the domain. When the URL of the current document is not matched against any entry, it uses the configuration set by the policy WebRtcIPHandling.
+
+ For detailed information on valid input patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Wildcards, *, are allowed. This policy only matches based on origin, so any path in the URL pattern is ignored.
+
+ Valid handling values:
+
+ * default - WebRTC uses all network interfaces.
+
+ * default_public_and_private_interfaces - WebRTC uses all public and private interfaces.
+
+ * default_public_interface_only - WebRTC uses all public interfaces, but not private ones.
+
+ * disable_non_proxied_udp - WebRTC uses either UDP SOCKS proxying or will fallback to TCP proxying.
+
+ See RFC 8828 section 5.2 (https://tools.ietf.org/html/rfc8828.html#section-5.2) for a detailed description of all the handling values.
+example_value:
+- url: 'https://www.example.com'
+ handling: default_public_and_private_interfaces
+- url: 'https://[*.]example.edu'
+ handling: default_public_interface_only
+- url: '*'
+ handling: disable_non_proxied_udp
+features:
+ dynamic_refresh: true
+ per_profile: true
+owners:
+- file://third_party/blink/renderer/modules/peerconnection/OWNERS
+- guidou@chromium.org
+schema:
+ type: array
+ items:
+ type: object
+ properties:
+ url:
+ type: string
+ handling:
+ type: string
+ enum:
+ - default
+ - default_public_and_private_interfaces
+ - default_public_interface_only
+ - disable_non_proxied_udp
+supported_on:
+- chrome.*:133-
+- chrome_os:133-
+tags: []
+type: dict
diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml
new file mode 100755
index 00000000..dbc378ce
--- /dev/null
+++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml
@@ -0,0 +1,5 @@
+WebRtc:
+ caption: WebRTC
+ policies:
+ - WebRtcIPHandling
+ - WebRtcIPHandlingUrl
\ No newline at end of file
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 62420958..5a683026 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
@@ -49,7 +49,6 @@
#include "base/trace_event/optional_trace_event.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
#include "cc/input/browser_controls_offset_tags_info.h"
#include "components/attribution_reporting/features.h"
#include "components/download/public/common/download_stats.h"
@@ -74,6 +73,8 @@
#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"
+#include "content/browser/dips/dips_bounce_detector.h"
+#include "content/browser/dips/dips_navigation_flow_detector.h"
#include "content/browser/display_cutout/display_cutout_host_impl.h"
#include "content/browser/dom_storage/dom_storage_context_wrapper.h"
#include "content/browser/dom_storage/session_storage_namespace_impl.h"
@@ -120,6 +121,8 @@
#include "content/browser/screen_orientation/screen_orientation_provider.h"
#include "content/browser/shared_storage/shared_storage_budget_charger.h"
#include "content/browser/site_instance_impl.h"
+#include "content/browser/tpcd_heuristics/opener_heuristic_tab_helper.h"
+#include "content/browser/tpcd_heuristics/redirect_heuristic_tab_helper.h"
#include "content/browser/wake_lock/wake_lock_context_host.h"
#include "content/browser/web_contents/java_script_dialog_commit_deferring_condition.h"
#include "content/browser/web_contents/partitioned_popins_controller.h"
@@ -165,7 +168,6 @@
#include "content/public/common/referrer_type_converters.h"
#include "content/public/common/url_constants.h"
#include "media/base/media_switches.h"
-#include "media/base/user_input_monitor.h"
#include "net/base/url_util.h"
#include "net/http/http_util.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
@@ -705,13 +707,6 @@ void RecordRendererUnresponsiveMetrics(
rph_priority);
}
-// Returns a GroupingID used by VizCompositor to allow grouping
-// CompositorFrameSinks from same WebContents.
-uint32_t NextCompositorFrameSinkGroupingId() {
- static uint32_t grouping_id = 0;
- return grouping_id++;
-}
-
} // namespace
// This is a small helper class created while a JavaScript dialog is showing
@@ -1262,7 +1257,6 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context)
upload_position_(0),
is_resume_pending_(false),
notify_disconnection_(false),
- dialog_manager_(nullptr),
is_showing_before_unload_dialog_(false),
last_active_time_ticks_(base::TimeTicks::Now()),
last_active_time_(base::Time::Now()),
@@ -1283,7 +1277,7 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context)
is_overlay_content_(false),
showing_context_menu_(false),
prerender_host_registry_(std::make_unique(*this)),
- compositor_frame_sink_grouping_id_(NextCompositorFrameSinkGroupingId()) {
+ compositor_frame_sink_grouping_id_(base::UnguessableToken::Create()) {
TRACE_EVENT0("content", "WebContentsImpl::WebContentsImpl");
WebContentsOfBrowserContext::Attach(*this);
node_.SetFocusedFrameTree(&primary_frame_tree_);
@@ -1323,7 +1317,8 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context)
if (input::IsTransferInputToVizSupported()) {
GetHostFrameSinkManager()->SetupRenderInputRouterDelegateConnection(
compositor_frame_sink_grouping_id_,
- rir_delegate_client_receiver_.BindNewPipeAndPassRemote());
+ rir_delegate_client_receiver_.BindNewPipeAndPassRemote(),
+ rir_delegate_remote_.BindNewPipeAndPassReceiver());
}
}
@@ -1388,9 +1383,7 @@ WebContentsImpl::~WebContentsImpl() {
created_widgets_.clear();
// Clear out any JavaScript state.
- if (dialog_manager_) {
- dialog_manager_->CancelDialogs(this, /*reset_state=*/true);
- }
+ CancelDialogManagerDialogs(/*reset_state=*/true);
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
color_chooser_holder_.reset();
@@ -1504,9 +1497,11 @@ std::unique_ptr WebContentsImpl::CreateWithOpener(
opener_rfh->active_sandbox_flags();
if (opener_rfh->IsSandboxed(network::mojom::WebSandboxFlags::
kPropagatesToAuxiliaryBrowsingContexts)) {
- new_root->SetPendingFramePolicy({opener_flags,
- {} /* container_policy */,
- {} /* required_document_policy */});
+ new_root->SetPendingFramePolicy(
+ {opener_flags,
+ {} /* container_policy */,
+ {} /* required_document_policy */,
+ blink::FramePolicy::DeferredFetchPolicy::kDisabled});
}
new_root->SetInitialPopupURL(params.initial_popup_url);
new_root->SetPopupCreatorOrigin(opener_rfh->GetLastCommittedOrigin());
@@ -1805,37 +1800,37 @@ RenderFrameHostImpl* WebContentsImpl::UnsafeFindFrameByFrameTreeNodeId(
void WebContentsImpl::ForEachRenderFrameHostWithAction(
base::FunctionRef on_frame) {
- ForEachRenderFrameHostWithAction(
+ ForEachRenderFrameHostImplWithAction(
[on_frame](RenderFrameHostImpl* rfh) { return on_frame(rfh); });
}
void WebContentsImpl::ForEachRenderFrameHost(
base::FunctionRef on_frame) {
- ForEachRenderFrameHost(
+ ForEachRenderFrameHostImpl(
[on_frame](RenderFrameHostImpl* rfh) { on_frame(rfh); });
}
-void WebContentsImpl::ForEachRenderFrameHostWithAction(
+void WebContentsImpl::ForEachRenderFrameHostImplWithAction(
base::FunctionRef on_frame) {
ForEachRenderFrameHostImpl(on_frame, /* include_speculative */ false);
}
-void WebContentsImpl::ForEachRenderFrameHost(
+void WebContentsImpl::ForEachRenderFrameHostImpl(
base::FunctionRef on_frame) {
- ForEachRenderFrameHostWithAction([on_frame](RenderFrameHostImpl* rfh) {
+ ForEachRenderFrameHostImplWithAction([on_frame](RenderFrameHostImpl* rfh) {
on_frame(rfh);
return FrameIterationAction::kContinue;
});
}
-void WebContentsImpl::ForEachRenderFrameHostIncludingSpeculativeWithAction(
+void WebContentsImpl::ForEachRenderFrameHostImplIncludingSpeculativeWithAction(
base::FunctionRef on_frame) {
ForEachRenderFrameHostImpl(on_frame, /* include_speculative */ true);
}
-void WebContentsImpl::ForEachRenderFrameHostIncludingSpeculative(
+void WebContentsImpl::ForEachRenderFrameHostImplIncludingSpeculative(
base::FunctionRef on_frame) {
- ForEachRenderFrameHostIncludingSpeculativeWithAction(
+ ForEachRenderFrameHostImplIncludingSpeculativeWithAction(
[on_frame](RenderFrameHostImpl* rfh) {
on_frame(rfh);
return FrameIterationAction::kContinue;
@@ -1845,12 +1840,12 @@ void WebContentsImpl::ForEachRenderFrameHostIncludingSpeculative(
void WebContentsImpl::ForEachRenderFrameHostImpl(
base::FunctionRef on_frame,
bool include_speculative) {
- // Since |RenderFrameHostImpl::ForEachRenderFrameHost| will reach the
+ // Since `RenderFrameHostImpl::ForEachRenderFrameHostImpl` will reach the
// RenderFrameHosts descending from a specified root, it is enough to start
// iteration from each of the outermost main frames to reach everything in
// this WebContents. However, if iteration stops early in
- // |RenderFrameHostImpl::ForEachRenderFrameHost|, we also need to stop early
- // by not iterating over additional outermost main frames.
+ // `RenderFrameHostImpl::ForEachRenderFrameHostImpl`, we also need to stop
+ // early by not iterating over additional outermost main frames.
bool iteration_stopped = false;
auto on_frame_with_termination =
[on_frame, &iteration_stopped](RenderFrameHostImpl* rfh) {
@@ -1863,10 +1858,10 @@ void WebContentsImpl::ForEachRenderFrameHostImpl(
for (auto* rfh : GetOutermostMainFrames()) {
if (include_speculative) {
- rfh->ForEachRenderFrameHostIncludingSpeculativeWithAction(
+ rfh->ForEachRenderFrameHostImplIncludingSpeculativeWithAction(
on_frame_with_termination);
} else {
- rfh->ForEachRenderFrameHostWithAction(on_frame_with_termination);
+ rfh->ForEachRenderFrameHostImplWithAction(on_frame_with_termination);
}
if (iteration_stopped) {
@@ -1968,9 +1963,7 @@ RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() {
void WebContentsImpl::CancelActiveAndPendingDialogs() {
OPTIONAL_TRACE_EVENT0("content",
"WebContentsImpl::CancelActiveAndPendingDialogs");
- if (dialog_manager_) {
- dialog_manager_->CancelDialogs(this, /*reset_state=*/false);
- }
+ CancelDialogManagerDialogs(/*reset_state=*/false);
if (browser_plugin_embedder_) {
browser_plugin_embedder_->CancelGuestDialogs();
}
@@ -2094,7 +2087,7 @@ void WebContentsImpl::SetAccessibilityMode(ui::AXMode mode) {
// WebContents (via CreateScopedModeForWebContents), it is the responsibility
// of the owner of the ScopedAccessibilityMode to choose whether or not to
// create scopers for inner WebContents.
- ForEachRenderFrameHostIncludingSpeculativeWithAction(
+ ForEachRenderFrameHostImplIncludingSpeculativeWithAction(
[this](RenderFrameHostImpl* frame_host) {
if (WebContentsImpl::FromRenderFrameHostImpl(frame_host) == this) {
frame_host->UpdateAccessibilityMode();
@@ -2114,7 +2107,7 @@ void WebContentsImpl::ResetAccessibility() {
// Reset accessibility for all frames in this tree and inner trees, including
// speculative frame hosts and those in the back-forward cache. See comment in
// `SetAccessibilityMode()` for more details.
- ForEachRenderFrameHostIncludingSpeculativeWithAction(
+ ForEachRenderFrameHostImplIncludingSpeculativeWithAction(
[this](RenderFrameHostImpl* frame_host) {
if (WebContentsImpl::FromRenderFrameHostImpl(frame_host) == this) {
frame_host->AccessibilityReset();
@@ -2192,7 +2185,7 @@ void WebContentsImpl::RequestAXTreeSnapshot(AXTreeSnapshotCallback callback,
auto combiner = base::MakeRefCounted(
std::move(callback), std::move(params));
- GetPrimaryMainFrame()->ForEachRenderFrameHostWithAction(
+ GetPrimaryMainFrame()->ForEachRenderFrameHostImplWithAction(
[this, &combiner, policy](RenderFrameHostImpl* rfh) {
switch (policy) {
case AXTreeSnapshotPolicy::kAll:
@@ -2220,6 +2213,14 @@ void WebContentsImpl::NotifyViewportFitChanged(
observers_.NotifyObservers(&WebContentsObserver::ViewportFitChanged, value);
}
+void WebContentsImpl::NotifySafeAreaConstraintChanged(bool has_constraint) {
+ OPTIONAL_TRACE_EVENT1("content",
+ "WebContentsImpl::NotifySafeAreaConstraintChanged",
+ "has_constraint", has_constraint);
+ observers_.NotifyObservers(&WebContentsObserver::SafeAreaConstraintChanged,
+ has_constraint);
+}
+
FindRequestManager* WebContentsImpl::GetFindRequestManagerForTesting() {
return GetOrCreateFindRequestManager();
}
@@ -2387,6 +2388,15 @@ const blink::UserAgentOverride& WebContentsImpl::GetUserAgentOverride() {
return renderer_preferences_.user_agent_override;
}
+const blink::UserAgentOverride& WebContentsImpl::GetUserAgentOverride(
+ FrameTree& frame_tree) {
+ if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(
+ *frame_tree.GetMainFrame())) {
+ return guest->GetRendererPrefs().user_agent_override;
+ }
+ return renderer_preferences_.user_agent_override;
+}
+
bool WebContentsImpl::ShouldOverrideUserAgentForRendererInitiatedNavigation() {
NavigationEntryImpl* current_entry = GetController().GetLastCommittedEntry();
if (!current_entry || current_entry->IsInitialEntry()) {
@@ -3143,7 +3153,9 @@ void WebContentsImpl::AttachInnerWebContents(
// When attaching a GuestView as an inner WebContents, there should already be
// a live RenderFrame, which has to be swapped.
if (render_frame_host_impl->IsRenderFrameLive()) {
- inner_render_manager->SwapOuterDelegateFrame(render_frame_host_impl, proxy);
+ inner_render_manager->SwapOuterDelegateFrame(
+ render_frame_host_impl, proxy,
+ inner_main_frame->devtools_frame_token());
inner_web_contents_impl->ReattachToOuterWebContentsFrame();
}
@@ -3231,6 +3243,16 @@ void WebContentsImpl::AttachGuestPage(
inner_main_frame->GetSiteInstance()->group(), inner_render_view_host,
/*proxy=*/nullptr);
+ // If we are reusing the RenderViewHost and it doesn't already have a
+ // RenderWidgetHostView, we need to create one if this is the main frame.
+ if (!inner_render_view_host->GetWidget()->GetView()) {
+ // TODO(crbug.com/40162510): The RenderWidgetHostView should be created
+ // *before* we create the renderer-side objects through InitRenderView().
+ // Then we should remove the null-check for the RenderWidgetHostView in
+ // RenderWidgetHostImpl::RendererWidgetCreated().
+ CreateRenderWidgetHostViewForRenderManager(inner_render_view_host);
+ }
+
RenderFrameProxyHost* proxy =
inner_main_frame->browsing_context_state()->CreateOuterDelegateProxy(
outer_render_frame_host_impl->GetSiteInstance()->group(),
@@ -3242,8 +3264,9 @@ void WebContentsImpl::AttachGuestPage(
// When attaching a GuestView as an inner frame tree, there should already be
// a live RenderFrame, which has to be swapped.
if (outer_render_frame_host_impl->IsRenderFrameLive()) {
- inner_render_manager->SwapOuterDelegateFrame(outer_render_frame_host_impl,
- proxy);
+ inner_render_manager->SwapOuterDelegateFrame(
+ outer_render_frame_host_impl, proxy,
+ inner_main_frame->devtools_frame_token());
}
RenderWidgetHostViewBase* child_rwhvb =
@@ -3423,7 +3446,7 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
prefs.inverted_colors = inverted_colors_;
if (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings(
- GetRenderViewHost()->GetProcess()->GetID())) {
+ GetRenderViewHost()->GetProcess()->GetDeprecatedID())) {
prefs.loads_images_automatically = true;
prefs.javascript_enabled = true;
}
@@ -3640,6 +3663,32 @@ void WebContentsImpl::OnSharedDictionaryAccessed(
observers_.NotifyObservers(func, rfh, details);
}
+void WebContentsImpl::OnDeviceBoundSessionAccessed(
+ NavigationHandle* navigation,
+ const net::device_bound_sessions::SessionKey& session) {
+ OPTIONAL_TRACE_EVENT1("content",
+ "WebContentsImpl::OnDeviceBoundSessionAccessed",
+ "navigation_handle", navigation);
+ // Use a variable to select between overloads.
+ void (WebContentsObserver::*func)(
+ NavigationHandle*, const net::device_bound_sessions::SessionKey&) =
+ &WebContentsObserver::OnDeviceBoundSessionAccessed;
+ observers_.NotifyObservers(func, navigation, session);
+}
+
+void WebContentsImpl::OnDeviceBoundSessionAccessed(
+ RenderFrameHostImpl* rfh,
+ const net::device_bound_sessions::SessionKey& session) {
+ OPTIONAL_TRACE_EVENT1("content",
+ "WebContentsImpl::OnDeviceBoundSessionAccessed",
+ "render_frame_host", rfh);
+ // Use a variable to select between overloads.
+ void (WebContentsObserver::*func)(
+ RenderFrameHost*, const net::device_bound_sessions::SessionKey&) =
+ &WebContentsObserver::OnDeviceBoundSessionAccessed;
+ observers_.NotifyObservers(func, rfh, session);
+}
+
void WebContentsImpl::NotifyStorageAccessed(
RenderFrameHostImpl* rfh,
blink::mojom::StorageTypeAccessed storage_type,
@@ -3789,6 +3838,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
AttributionHost::CreateForWebContents(this);
}
+ RedirectChainDetector::CreateForWebContents(this);
+ DIPSWebContentsObserver::MaybeCreateForWebContents(this);
+ DipsNavigationFlowDetector::CreateForWebContents(this);
+ RedirectHeuristicTabHelper::CreateForWebContents(this);
+ OpenerHeuristicTabHelper::CreateForWebContents(this);
+
// BrowserPluginGuest::Init needs to be called after this WebContents has
// a RenderWidgetHostViewChildFrame. That is, |view_->CreateView| above.
if (browser_plugin_guest_) {
@@ -3919,12 +3974,13 @@ void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) {
std::set
WebContentsImpl::GetRenderWidgetHostViewsInWebContentsTree() {
std::set result;
- GetPrimaryMainFrame()->ForEachRenderFrameHost([&result](
- RenderFrameHostImpl* rfh) {
- if (auto* view = static_cast(rfh->GetView())) {
- result.insert(view);
- }
- });
+ GetPrimaryMainFrame()->ForEachRenderFrameHostImpl(
+ [&result](RenderFrameHostImpl* rfh) {
+ if (auto* view =
+ static_cast(rfh->GetView())) {
+ result.insert(view);
+ }
+ });
return result;
}
@@ -4772,7 +4828,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
return nullptr;
}
- int render_process_id = opener->GetProcess()->GetID();
+ int render_process_id = opener->GetProcess()->GetDeprecatedID();
SiteInstanceImpl* source_site_instance = opener->GetSiteInstance();
const auto& partition_config =
source_site_instance->GetStoragePartitionConfig();
@@ -4788,6 +4844,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
}
+ // TODO(crbug.com/40202416): Support a way for MPArch guests to support this.
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
source_site_instance, params.window_container_type,
opener->GetLastCommittedURL(), params.frame_name,
@@ -4810,10 +4867,13 @@ FrameTree* WebContentsImpl::CreateNewWindow(
bool renderer_started_hidden =
params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB;
+ bool is_guest =
+ base::FeatureList::IsEnabled(features::kGuestViewMPArch)
+ ? opener->GetOutermostMainFrame()->frame_tree()->is_guest()
+ : IsGuest();
// While some guest types do not have a guest SiteInstance, the ones that
// don't all override WebContents creation above.
- CHECK_EQ(source_site_instance->IsGuest(), IsGuest());
- bool is_guest = IsGuest();
+ CHECK_EQ(source_site_instance->IsGuest(), is_guest);
// We usually create the new window in the same BrowsingInstance (group of
// script-related windows), by passing in the current SiteInstance. However,
@@ -4833,6 +4893,16 @@ FrameTree* WebContentsImpl::CreateNewWindow(
site_instance = source_site_instance;
}
+ if (is_guest && base::FeatureList::IsEnabled(features::kGuestViewMPArch)) {
+ if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(*opener)) {
+ return guest->CreateNewWindow(
+ params.disposition, params.target_url, params.frame_name,
+ std::move(site_instance),
+ !params.opener_suppressed ? opener : nullptr);
+ }
+ return nullptr;
+ }
+
// Create the new web contents. This will automatically create the new
// WebContentsView. In the future, we may want to create the view separately.
CreateParams create_params(GetBrowserContext(), site_instance.get());
@@ -4989,7 +5059,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
std::make_unique(
params.target_url);
load_params->initiator_origin = opener->GetLastCommittedOrigin();
- load_params->initiator_process_id = opener->GetProcess()->GetID();
+ load_params->initiator_process_id = opener->GetProcess()->GetDeprecatedID();
load_params->initiator_frame_token = opener->GetFrameToken();
// Avoiding setting |load_params->source_site_instance| when
// |opener_suppressed| is true, because in that case we do not want to use
@@ -5065,7 +5135,8 @@ RenderWidgetHostImpl* WebContentsImpl::CreateNewPopupWidget(
// Save the created widget associated with the route so we can show it later.
pending_widgets_.insert(
- {GlobalRoutingID(site_instance_group->process()->GetID(), route_id),
+ {GlobalRoutingID(site_instance_group->process()->GetDeprecatedID(),
+ route_id),
widget_host});
AddRenderWidgetHostDestructionObserver(widget_host);
@@ -5107,6 +5178,12 @@ void WebContentsImpl::ShowCreatedWindow(
OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::ShowCreatedWindow",
"opener", opener, "main_frame_widget_route_id",
main_frame_widget_route_id);
+
+ if (GuestPageHolderImpl::FromRenderFrameHost(*opener)) {
+ // opened from a guest with MPArch, we don't need to do anything.
+ return;
+ }
+
// This method is the renderer requesting an existing top level window to
// show a new top level window that the renderer created. Each top level
// window is associated with a WebContents. In this case it was created
@@ -5116,7 +5193,7 @@ void WebContentsImpl::ShowCreatedWindow(
// when it will always do so. What needs to happen in the renderer before we
// reach here?
std::optional owned_created = GetCreatedWindow(
- opener->GetProcess()->GetID(), main_frame_widget_route_id);
+ opener->GetProcess()->GetDeprecatedID(), main_frame_widget_route_id);
// The browser may have rejected the request to make a new window, or the
// renderer could be requesting to show a previously shown window (occurs when
@@ -5125,8 +5202,7 @@ void WebContentsImpl::ShowCreatedWindow(
return;
}
- if (base::FeatureList::IsEnabled(features::kWindowOpenFileSelectFix) &&
- active_file_chooser_) {
+ if (active_file_chooser_) {
// Do not allow opening a new window or tab while a file select is active
// file chooser to avoid user confusion over which tab triggered the file
// chooser.
@@ -5584,7 +5660,7 @@ void WebContentsImpl::SendScreenRects() {
DCHECK(!IsBeingDestroyed());
- GetPrimaryMainFrame()->ForEachRenderFrameHost(
+ GetPrimaryMainFrame()->ForEachRenderFrameHostImpl(
[](RenderFrameHostImpl* render_frame_host) {
if (render_frame_host->is_local_root()) {
render_frame_host->GetRenderWidgetHost()->SendScreenRects();
@@ -5596,7 +5672,7 @@ void WebContentsImpl::SendActiveState(bool active) {
DCHECK(!IsBeingDestroyed());
// Replicate the active state to all LocalRoots.
- GetPrimaryMainFrame()->ForEachRenderFrameHost(
+ GetPrimaryMainFrame()->ForEachRenderFrameHostImpl(
[active](RenderFrameHostImpl* render_frame_host) {
if (render_frame_host->is_local_root()) {
render_frame_host->GetRenderWidgetHost()->SetActive(active);
@@ -5698,7 +5774,8 @@ void WebContentsImpl::MoveCaret(const gfx::Point& extent) {
input_handler->MoveCaret(extent);
}
-uint32_t WebContentsImpl::GetCompositorFrameSinkGroupingId() const {
+base::UnguessableToken WebContentsImpl::GetCompositorFrameSinkGroupingId()
+ const {
return compositor_frame_sink_grouping_id_;
}
@@ -5725,6 +5802,20 @@ void WebContentsImpl::ResizeDueToAutoResize(
const gfx::Size& new_size) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::ResizeDueToAutoResize",
"render_widget_host", render_widget_host);
+
+ // If we are a guest frame tree and the RenderWidgetHost is the same as the
+ // guest's main frame widget, then send the guest a notification about the
+ // resize.
+ if (render_widget_host->frame_tree()->is_guest() &&
+ render_widget_host->frame_tree()->GetMainFrame()->GetRenderWidgetHost() ==
+ render_widget_host) {
+ if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(
+ *render_widget_host->frame_tree()->GetMainFrame())) {
+ guest->delegate()->GuestResizeDueToAutoResize(new_size);
+ }
+ return;
+ }
+
if (render_widget_host != GetRenderViewHost()->GetWidget()) {
return;
}
@@ -5758,8 +5849,9 @@ WebContents* WebContentsImpl::OpenURL(
return nullptr;
}
- RenderFrameHost* source_render_frame_host = RenderFrameHost::FromID(
- params.source_render_process_id, params.source_render_frame_id);
+ RenderFrameHostImpl* source_render_frame_host =
+ RenderFrameHostImpl::FromID(GlobalRenderFrameHostId(
+ params.source_render_process_id, params.source_render_frame_id));
// Prevent frames that are not active (e.g. a prerendering page) from opening
// new windows, tabs, popups, etc.
@@ -5802,6 +5894,17 @@ WebContents* WebContentsImpl::OpenURL(
}
}
+ if (source_render_frame_host &&
+ base::FeatureList::IsEnabled(features::kGuestViewMPArch)) {
+ if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(
+ *source_render_frame_host)) {
+ if (auto* delegate = guest->delegate()) {
+ delegate->GuestOpenURL(params, std::move(navigation_handle_callback));
+ }
+ return nullptr;
+ }
+ }
+
WebContents* new_contents = delegate_->OpenURLFromTab(
this, params, std::move(navigation_handle_callback));
@@ -6011,7 +6114,9 @@ void WebContentsImpl::ReplaceMisspelling(const std::u16string& word) {
input_handler->ReplaceMisspelling(word);
}
-void WebContentsImpl::NotifyContextMenuClosed(const GURL& link_followed) {
+void WebContentsImpl::NotifyContextMenuClosed(
+ const GURL& link_followed,
+ const std::optional& impression) {
OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::NotifyContextMenuClosed");
RenderFrameHost* focused_frame = GetFocusedFrame();
if (!focused_frame) {
@@ -6019,7 +6124,7 @@ void WebContentsImpl::NotifyContextMenuClosed(const GURL& link_followed) {
}
if (context_menu_client_) {
- context_menu_client_->ContextMenuClosed(link_followed);
+ context_menu_client_->ContextMenuClosed(link_followed, impression);
}
context_menu_client_.reset();
@@ -6207,7 +6312,8 @@ void WebContentsImpl::SaveFrameWithHeaders(
policy_exception_justification: "Not implemented."
})");
auto params = std::make_unique(
- url, rfh->GetProcess()->GetID(), rfh->GetRoutingID(), traffic_annotation);
+ url, rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID(),
+ traffic_annotation);
params->set_referrer(referrer.url);
params->set_referrer_policy(
Referrer::ReferrerPolicyForUrlRequest(referrer.policy));
@@ -7200,10 +7306,9 @@ void WebContentsImpl::DidNavigateAnyFramePostCommit(
// has_user_gesture, which might get filtered out when navigating from
// proxies. If so, we can remove tracking of
// `last_committed_common_params_has_user_gesture` entirely.
- if (render_frame_host->last_committed_common_params_has_user_gesture() &&
- dialog_manager_) {
+ if (render_frame_host->last_committed_common_params_has_user_gesture()) {
DCHECK(is_active);
- dialog_manager_->CancelDialogs(this, /*reset_state=*/true);
+ CancelDialogManagerDialogs(/*reset_state=*/true);
}
}
@@ -8109,18 +8214,11 @@ void WebContentsImpl::OnDidBlockNavigation(
const GURL& blocked_url,
const GURL& initiator_url,
blink::mojom::NavigationBlockedReason reason) {
- OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnDidBlockNavigation",
- "details", [&](perfetto::TracedValue context) {
- // TODO(crbug.com/40751990): Replace this with passing
- // more parameters to TRACE_EVENT directly when
- // available.
- auto dict = std::move(context).WriteDictionary();
- dict.Add("blocked_url", blocked_url);
- dict.Add("initiator_url", initiator_url);
- dict.Add("reason", reason);
- });
+ OPTIONAL_TRACE_EVENT("content", "WebContentsImpl::OnDidBlockNavigation",
+ "blocked_url", blocked_url, "initiator_url",
+ initiator_url, "reason", reason);
if (delegate_) {
- delegate_->OnDidBlockNavigation(this, blocked_url, initiator_url, reason);
+ delegate_->OnDidBlockNavigation(this, blocked_url, reason);
}
}
@@ -8239,7 +8337,7 @@ void WebContentsImpl::RunJavaScriptDialog(
JavaScriptDialogCallback response_callback) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RunJavaScriptDialog",
"render_frame_host", render_frame_host);
- DCHECK(render_frame_host->GetPage().IsPrimary());
+ DCHECK(render_frame_host->IsActive());
// Ensure that if showing a dialog is the first thing that a page does, that
// the contents of the previous page aren't shown behind it. This is required
@@ -8257,15 +8355,24 @@ void WebContentsImpl::RunJavaScriptDialog(
auto callback = base::BindOnce(
&WebContentsImpl::OnDialogClosed, weak_factory_.GetWeakPtr(),
- render_frame_host->GetProcess()->GetID(),
+ render_frame_host->GetProcess()->GetDeprecatedID(),
render_frame_host->GetRoutingID(), std::move(response_callback),
std::move(fullscreen_block));
std::vector page_handlers =
protocol::PageHandler::EnabledForWebContents(this);
- if (delegate_) {
- dialog_manager_ = delegate_->GetJavaScriptDialogManager(this);
+ bool should_suppress = false;
+ JavaScriptDialogManager* dialog_manager = nullptr;
+ // Give guest a first crack at the dialog.
+ if (GuestPageHolderImpl* guest_holder =
+ GuestPageHolderImpl::FromRenderFrameHost(*render_frame_host)) {
+ if (auto* guest_delegate = guest_holder->delegate()) {
+ dialog_manager = guest_delegate->GuestGetJavascriptDialogManager();
+ }
+ } else if (delegate_) {
+ dialog_manager = delegate_->GetJavaScriptDialogManager(this);
+ should_suppress = delegate_->ShouldSuppressDialogs(this);
}
// While a JS message dialog is showing, defer commits in this WebContents.
@@ -8273,8 +8380,7 @@ void WebContentsImpl::RunJavaScriptDialog(
std::make_unique();
// Suppress JavaScript dialogs when requested.
- bool should_suppress = delegate_ && delegate_->ShouldSuppressDialogs(this);
- bool has_non_devtools_handlers = delegate_ && dialog_manager_;
+ bool has_non_devtools_handlers = delegate_ && dialog_manager;
bool has_handlers = page_handlers.size() || has_non_devtools_handlers;
bool suppress_this_message = should_suppress || !has_handlers;
@@ -8323,8 +8429,9 @@ void WebContentsImpl::RunJavaScriptDialog(
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false));
}
- if (dialog_manager_) {
- dialog_manager_->RunJavaScriptDialog(
+ if (dialog_manager) {
+ created_dialog_since_last_cancel_ = true;
+ dialog_manager->RunJavaScriptDialog(
this, render_frame_host, dialog_type, normalized_message,
default_prompt,
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false),
@@ -8351,7 +8458,7 @@ void WebContentsImpl::RunBeforeUnloadConfirm(
OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::RunBeforeUnloadConfirm",
"render_frame_host", render_frame_host, "is_reload",
is_reload);
- DCHECK(render_frame_host->GetPage().IsPrimary());
+ DCHECK(render_frame_host->IsActive());
// Ensure that if showing a dialog is the first thing that a page does, that
// the contents of the previous page aren't shown behind it. This is required
@@ -8369,15 +8476,24 @@ void WebContentsImpl::RunBeforeUnloadConfirm(
auto callback = base::BindOnce(
&WebContentsImpl::OnDialogClosed, weak_factory_.GetWeakPtr(),
- render_frame_host->GetProcess()->GetID(),
+ render_frame_host->GetProcess()->GetDeprecatedID(),
render_frame_host->GetRoutingID(), std::move(response_callback),
std::move(fullscreen_block));
std::vector page_handlers =
protocol::PageHandler::EnabledForWebContents(this);
- if (delegate_) {
- dialog_manager_ = delegate_->GetJavaScriptDialogManager(this);
+ JavaScriptDialogManager* dialog_manager = nullptr;
+ bool should_suppress = false;
+ // Give guest a first crack at the dialog.
+ if (GuestPageHolderImpl* guest_holder =
+ GuestPageHolderImpl::FromRenderFrameHost(*render_frame_host)) {
+ if (auto* guest_delegate = guest_holder->delegate()) {
+ dialog_manager = guest_delegate->GuestGetJavascriptDialogManager();
+ }
+ } else if (delegate_) {
+ dialog_manager = delegate_->GetJavaScriptDialogManager(this);
+ should_suppress = delegate_->ShouldSuppressDialogs(this);
}
// While a JS beforeunload dialog is showing, defer commits in this
@@ -8385,8 +8501,7 @@ void WebContentsImpl::RunBeforeUnloadConfirm(
javascript_dialog_dismiss_notifier_ =
std::make_unique();
- bool should_suppress = delegate_ && delegate_->ShouldSuppressDialogs(this);
- bool has_non_devtools_handlers = delegate_ && dialog_manager_;
+ bool has_non_devtools_handlers = delegate_ && dialog_manager;
bool has_handlers = page_handlers.size() || has_non_devtools_handlers;
if (should_suppress || !has_handlers) {
std::move(callback).Run(false, true, std::u16string());
@@ -8405,8 +8520,9 @@ void WebContentsImpl::RunBeforeUnloadConfirm(
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false));
}
- if (dialog_manager_) {
- dialog_manager_->RunBeforeUnloadDialog(
+ if (dialog_manager) {
+ created_dialog_since_last_cancel_ = true;
+ dialog_manager->RunBeforeUnloadDialog(
this, render_frame_host, is_reload,
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false));
#if BUILDFLAG(IS_ANDROID)
@@ -8670,16 +8786,27 @@ void WebContentsImpl::RenderViewTerminated(RenderViewHost* rvh,
// current_frame_host() for the root FrameTreeNode has already been cleared.
// Since the WebContents is going away, none of the work here is needed, so
// just return early.
- if (IsBeingDestroyed()) {
+ auto* rvh_impl = static_cast(rvh);
+ if (IsBeingDestroyed() || rvh_impl->frame_tree()->IsBeingDestroyed()) {
return;
}
+ // If we are a guest frame tree and the RenderViewHost is the main frame's RVH
+ // then notify that the guest's main frame process went away.
+ if (rvh_impl->frame_tree()->is_guest() &&
+ rvh_impl->frame_tree()->GetMainFrame()->render_view_host() == rvh_impl) {
+ if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(
+ *rvh_impl->frame_tree()->GetMainFrame())) {
+ guest->delegate()->GuestMainFrameProcessGone(status);
+ return;
+ }
+ }
+
if (rvh != GetRenderViewHost()) {
// The pending page's RenderViewHost is gone.
return;
}
- auto* rvh_impl = static_cast(rvh);
DCHECK(rvh_impl->GetMainRenderFrameHost()->IsInPrimaryMainFrame())
<< "GetRenderViewHost() must belong to the primary frame tree";
@@ -8698,7 +8825,8 @@ void WebContentsImpl::RenderViewTerminated(RenderViewHost* rvh,
// Cancel any visible dialogs so they are not left dangling over the sad tab.
CancelActiveAndPendingDialogs();
- audio_stream_monitor_.RenderProcessGone(rvh_impl->GetProcess()->GetID());
+ audio_stream_monitor_.RenderProcessGone(
+ rvh_impl->GetProcess()->GetDeprecatedID());
// Reset the loading progress. TODO(avi): What does it mean to have a
// "renderer crash" when there is more than one renderer process serving a
@@ -8893,7 +9021,7 @@ void WebContentsImpl::DidStopLoading() {
SCOPED_UMA_HISTOGRAM_TIMER("WebContentsObserver.DidStopLoading");
observers_.NotifyObservers(&WebContentsObserver::DidStopLoading);
- GetPrimaryMainFrame()->ForEachRenderFrameHost(
+ GetPrimaryMainFrame()->ForEachRenderFrameHostImpl(
[](RenderFrameHostImpl* render_frame_host) {
ui::BrowserAccessibilityManager* manager =
render_frame_host->browser_accessibility_manager();
@@ -8912,48 +9040,65 @@ void WebContentsImpl::DidStopLoading() {
#endif
}
-void WebContentsImpl::DidChangeLoadProgressForPrimaryMainFrame() {
- OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::DidChangeLoadProgress");
- if (IsBeingDestroyed()) {
+void WebContentsImpl::DidChangeLoadProgressForMainFrame(
+ RenderFrameHostImpl* render_frame_host) {
+ OPTIONAL_TRACE_EVENT0("content",
+ "WebContentsImpl::DidChangeLoadProgressForMainFrame");
+ if (IsBeingDestroyed() ||
+ render_frame_host->frame_tree()->IsBeingDestroyed()) {
return;
}
- double load_progress = GetLoadProgress();
- // The delegate is notified immediately for the first and last updates. Also,
- // since the message loop may be pretty busy when a page is loaded, it might
- // not execute a posted task in a timely manner so the progress report is sent
- // immediately if enough time has passed.
- base::TimeDelta min_delay = minimum_delay_between_loading_updates_ms_;
- bool delay_elapsed =
- loading_last_progress_update_.is_null() ||
- base::TimeTicks::Now() - loading_last_progress_update_ > min_delay;
+ DCHECK(render_frame_host->is_main_frame());
+ if (!render_frame_host->IsOutermostMainFrame()) {
+ // If this main frame isn't an outermost main frame but an embedded
+ // main frame then return. ie. a fenced frame inside a guest.
+ return;
+ }
- if (load_progress == 0.0 || load_progress == 1.0 || delay_elapsed) {
- // If there is a pending task to send progress, it is now obsolete.
- loading_weak_factory_.InvalidateWeakPtrs();
+ if (auto* guest =
+ GuestPageHolderImpl::FromRenderFrameHost(*render_frame_host)) {
+ guest->delegate()->GuestDidChangeLoadProgress(
+ render_frame_host->frame_tree()->GetLoadProgress());
+ } else if (render_frame_host->IsInPrimaryMainFrame()) {
+ double load_progress = GetLoadProgress();
- // Notify the load progress change.
- SendChangeLoadProgress();
+ // The delegate is notified immediately for the first and last updates.
+ // Also, since the message loop may be pretty busy when a page is loaded, it
+ // might not execute a posted task in a timely manner so the progress report
+ // is sent immediately if enough time has passed.
+ base::TimeDelta min_delay = minimum_delay_between_loading_updates_ms_;
+ bool delay_elapsed =
+ loading_last_progress_update_.is_null() ||
+ base::TimeTicks::Now() - loading_last_progress_update_ > min_delay;
- // Clean-up the states if needed.
- if (load_progress == 1.0) {
- ResetLoadProgressState();
+ if (load_progress == 0.0 || load_progress == 1.0 || delay_elapsed) {
+ // If there is a pending task to send progress, it is now obsolete.
+ loading_weak_factory_.InvalidateWeakPtrs();
+
+ // Notify the load progress change.
+ SendChangeLoadProgress();
+
+ // Clean-up the states if needed.
+ if (load_progress == 1.0) {
+ ResetLoadProgressState();
+ }
+ return;
}
- return;
- }
- if (loading_weak_factory_.HasWeakPtrs()) {
- return;
- }
+ if (loading_weak_factory_.HasWeakPtrs()) {
+ return;
+ }
- if (min_delay == base::Milliseconds(0)) {
- SendChangeLoadProgress();
- } else {
- base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
- FROM_HERE,
- base::BindOnce(&WebContentsImpl::SendChangeLoadProgress,
- loading_weak_factory_.GetWeakPtr()),
- min_delay);
+ if (min_delay == base::Milliseconds(0)) {
+ SendChangeLoadProgress();
+ } else {
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
+ FROM_HERE,
+ base::BindOnce(&WebContentsImpl::SendChangeLoadProgress,
+ loading_weak_factory_.GetWeakPtr()),
+ min_delay);
+ }
}
}
@@ -9094,11 +9239,29 @@ void WebContentsImpl::DocumentOnLoadCompleted(
RenderFrameHostImpl* render_frame_host) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::DocumentOnLoadCompleted",
"render_frame_host", render_frame_host);
- DCHECK(render_frame_host->IsInPrimaryMainFrame());
- ShowInsecureLocalhostWarningIfNeeded(render_frame_host->GetPage());
+ DCHECK(render_frame_host->is_main_frame());
+ if (!render_frame_host->IsOutermostMainFrame()) {
+ // If this main frame isn't an outermost main frame but an embedded
+ // main frame then return. )ie. a fenced frame inside a guest).
+ return;
+ }
- observers_.NotifyObservers(
- &WebContentsObserver::DocumentOnLoadCompletedInPrimaryMainFrame);
+ if (auto* guest =
+ GuestPageHolderImpl::FromRenderFrameHost(*render_frame_host)) {
+ ShowInsecureLocalhostWarningIfNeeded(render_frame_host->GetPage());
+ guest->delegate()->GuestDocumentOnLoadCompleted();
+ } else if (render_frame_host->IsInPrimaryMainFrame()) {
+ // Don't dispatch DocumentOnLoadCompletedInPrimaryMainFrame for non-primary
+ // main frames. As most of the observers are interested only in the onload
+ // completion of the current document in the primary main frame. Since the
+ // WebContents could be hosting more than one main frame (e.g., fenced
+ // frames, prerender pages or pending delete RFHs), return early for other
+ // cases. In case of prerendering, we dispatch
+ // DocumentOnLoadCompletedInPrimaryMainFrame on activation.
+ ShowInsecureLocalhostWarningIfNeeded(render_frame_host->GetPage());
+ observers_.NotifyObservers(
+ &WebContentsObserver::DocumentOnLoadCompletedInPrimaryMainFrame);
+ }
}
void WebContentsImpl::UpdateTitle(RenderFrameHostImpl* render_frame_host,
@@ -9135,8 +9298,13 @@ void WebContentsImpl::UpdateTitle(RenderFrameHostImpl* render_frame_host,
// TODO(evan): make use of title_direction.
// http://code.google.com/p/chromium/issues/detail?id=27094
bool title_changed = UpdateTitleForEntryImpl(entry, title);
- if (title_changed && render_frame_host == GetPrimaryMainFrame()) {
- NotifyTitleUpdateForEntry(entry);
+ if (title_changed) {
+ if (render_frame_host == GetPrimaryMainFrame()) {
+ NotifyTitleUpdateForEntry(entry);
+ }
+ SCOPED_UMA_HISTOGRAM_TIMER("WebContentsObserver.TitleWasSetForMainFrame");
+ observers_.NotifyObservers(&WebContentsObserver::TitleWasSetForMainFrame,
+ render_frame_host);
}
}
@@ -9545,8 +9713,7 @@ void WebContentsImpl::RendererUnresponsive(
base::UmaHistogramEnumeration(
"ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome", outcome);
- if (base::FeatureList::IsEnabled(features::kCrashReporting) &&
- base::FeatureList::IsEnabled(
+ if (base::FeatureList::IsEnabled(
blink::features::kDocumentPolicyIncludeJSCallStacksInCrashReports) &&
this->GetLastCommittedURL().SchemeIsHTTPOrHTTPS()) {
RenderProcessHost* rph = render_widget_host->GetProcess();
@@ -9589,6 +9756,26 @@ void WebContentsImpl::BeforeUnloadFiredFromRenderManager(
// Note: |this| might be deleted at this point.
}
+void WebContentsImpl::CancelDialogManagerDialogs(bool reset_state) {
+ if (!created_dialog_since_last_cancel_) {
+ return;
+ }
+ // We only reset `created_dialog_since_last_cancel_` if reset_state
+ // is true.
+ if (reset_state) {
+ created_dialog_since_last_cancel_ = false;
+ }
+ if (!delegate_) {
+ return;
+ }
+ JavaScriptDialogManager* dialog_manager =
+ delegate_->GetJavaScriptDialogManager(this);
+ if (!dialog_manager) {
+ return;
+ }
+ dialog_manager->CancelDialogs(this, reset_state);
+}
+
void WebContentsImpl::CancelModalDialogsForRenderManager() {
OPTIONAL_TRACE_EVENT0("content",
"WebContentsImpl::CancelModalDialogsForRenderManager");
@@ -9600,9 +9787,7 @@ void WebContentsImpl::CancelModalDialogsForRenderManager() {
// Note that we don't bother telling |browser_plugin_embedder_| because the
// cross-process navigation will either destroy the browser plugins or not
// require their dialogs to close.
- if (dialog_manager_) {
- dialog_manager_->CancelDialogs(this, /*reset_state=*/true);
- }
+ CancelDialogManagerDialogs(/*reset_state=*/true);
}
void WebContentsImpl::NotifySwappedFromRenderManager(
@@ -9880,7 +10065,7 @@ void WebContentsImpl::OnDialogClosed(int render_process_id,
RenderFrameHostImpl::FromID(render_process_id, render_frame_id);
// The user confirms and closes a dialog even after the page has navigated
// away and got into BackForwardCache.
- DCHECK(!rfh || rfh->GetPage().IsPrimary() || rfh->IsInBackForwardCache());
+ DCHECK(!rfh || rfh->IsActive() || rfh->IsInBackForwardCache());
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnDialogClosed",
"render_frame_host", rfh);
last_dialog_suppressed_ = dialog_was_suppressed;
@@ -9963,7 +10148,7 @@ gfx::Size WebContentsImpl::GetSize() {
return window->bounds().size();
#elif BUILDFLAG(IS_ANDROID)
ui::ViewAndroid* view_android = GetNativeView();
- return view_android->bounds().size();
+ return view_android->GetSize();
#elif BUILDFLAG(IS_IOS)
// TODO(crbug.com/40254930): Implement me.
NOTREACHED();
@@ -10513,11 +10698,6 @@ WebContentsImpl::CreateAudioStreamFactory() {
}
return std::make_unique(
this,
- // BrowserMainLoop::GetInstance() may be null in unit tests.
- BrowserMainLoop::GetInstance()
- ? static_cast(
- BrowserMainLoop::GetInstance()->user_input_monitor())
- : nullptr,
std::move(broker_factory));
}
@@ -10800,13 +10980,6 @@ void WebContentsImpl::UpdateOverridingUserAgent() {
NotifyPreferencesChanged();
}
-void WebContentsImpl::SetJavaScriptDialogManagerForTesting(
- JavaScriptDialogManager* dialog_manager) {
- OPTIONAL_TRACE_EVENT0(
- "content", "WebContentsImpl::SetJavaScriptDialogManagerForTesting");
- dialog_manager_ = dialog_manager;
-}
-
void WebContentsImpl::ShowInsecureLocalhostWarningIfNeeded(PageImpl& page) {
OPTIONAL_TRACE_EVENT0(
"content", "WebContentsImpl::ShowInsecureLocalhostWarningIfNeeded");
@@ -11125,17 +11298,10 @@ void WebContentsImpl::RenderFrameHostStateChanged(
LifecycleState old_state,
LifecycleState new_state) {
DCHECK_NE(old_state, new_state);
- OPTIONAL_TRACE_EVENT2("content",
- "WebContentsImpl::RenderFrameHostStateChanged",
- "render_frame_host", render_frame_host, "states",
- [&](perfetto::TracedValue context) {
- // TODO(crbug.com/40751990): Replace this with passing
- // more parameters to TRACE_EVENT directly when
- // available.
- auto dict = std::move(context).WriteDictionary();
- dict.Add("old", old_state);
- dict.Add("new", new_state);
- });
+ OPTIONAL_TRACE_EVENT("content",
+ "WebContentsImpl::RenderFrameHostStateChanged",
+ "render_frame_host", render_frame_host, "old_state",
+ old_state, "new_state", new_state);
#if BUILDFLAG(IS_ANDROID)
if (old_state == LifecycleState::kActive && !render_frame_host->GetParent()) {
@@ -11290,6 +11456,14 @@ void WebContentsImpl::OnInputIgnored(const blink::WebInputEvent& event) {
#endif
}
+input::mojom::RenderInputRouterDelegate*
+WebContentsImpl::GetRenderInputRouterDelegateRemote() {
+ if (!rir_delegate_remote_) {
+ return nullptr;
+ }
+ return rir_delegate_remote_.get();
+}
+
void WebContentsImpl::StartPrefetch(
const GURL& prefetch_url,
bool use_prefetch_proxy,
@@ -11313,7 +11487,7 @@ void WebContentsImpl::StartPrefetch(
auto container = std::make_unique(
*this, prefetch_url, prefetch_type, referrer, referring_origin,
- /*no_vary_search_expected=*/std::nullopt, std::move(attempt),
+ /*no_vary_search_hint=*/std::nullopt, std::move(attempt),
holdback_status_override);
// TODO(crbug.com/40946257): Update this list when prefetch container is
@@ -11326,6 +11500,8 @@ std::unique_ptr WebContentsImpl::StartPrerendering(
const GURL& prerendering_url,
PreloadingTriggerType trigger_type,
const std::string& embedder_histogram_suffix,
+ net::HttpRequestHeaders additional_headers,
+ std::optional no_vary_search_hint,
ui::PageTransition page_transition,
bool should_warm_up_compositor,
bool should_prepare_paint_tree,
@@ -11339,13 +11515,18 @@ std::unique_ptr WebContentsImpl::StartPrerendering(
PrerenderAttributes attributes(
prerendering_url, trigger_type, embedder_histogram_suffix,
/*target_hint=*/std::nullopt, content::Referrer(),
- /*eagerness=*/std::nullopt,
- /*no_vary_search_expected=*/std::nullopt,
+ /*eagerness=*/std::nullopt, std::move(no_vary_search_hint),
/*initiato_render_frame_host=*/nullptr, GetWeakPtr(), page_transition,
should_warm_up_compositor, should_prepare_paint_tree,
std::move(url_match_predicate),
std::move(prerender_navigation_handle_callback),
base::MakeRefCounted());
+#if BUILDFLAG(IS_ANDROID)
+ attributes.additional_headers = std::move(additional_headers);
+#else
+ CHECK(additional_headers.IsEmpty())
+ << "additional_headers is supported only on Android WebView.";
+#endif // BUILDFLAG(IS_ANDROID)
attributes.holdback_status_override = holdback_status_override;
FrameTreeNodeId frame_tree_node_id =
@@ -11491,6 +11672,12 @@ net::handles::NetworkHandle WebContentsImpl::GetTargetNetwork() {
return target_network_;
}
+void WebContentsImpl::DisconnectFileSelectListenerIfAny() {
+ if (active_file_chooser_) {
+ active_file_chooser_->FileSelectionCanceled();
+ }
+}
+
// static
void WebContentsImpl::UpdateAttributionSupportAllRenderers() {
for (WebContentsImpl* web_contents : GetAllWebContents()) {
diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc
index 42414bdc..91637a9c 100755
--- a/tools/under-control/src/content/child/runtime_features.cc
+++ b/tools/under-control/src/content/child/runtime_features.cc
@@ -16,7 +16,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
#include "cc/base/features.h"
#include "components/attribution_reporting/features.h"
#include "content/common/content_navigation_policy.h"
@@ -31,6 +30,7 @@
#include "gpu/config/gpu_finch_features.h"
#include "gpu/config/gpu_switches.h"
#include "media/base/media_switches.h"
+#include "net/base/features.h"
#include "services/device/public/cpp/device_features.h"
#include "services/network/public/cpp/features.h"
#include "services/webnn/public/mojom/features.mojom-features.h"
@@ -73,7 +73,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
WebRuntimeFeatures::EnableCompositedSelectionUpdate(true);
#endif
-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_APPLE)
const bool enable_canvas_2d_image_chromium =
command_line.HasSwitch(
blink::switches::kEnableGpuMemoryBufferCompositorResources) &&
@@ -213,11 +213,15 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
kSetOnlyIfOverridden},
{wf::EnableFedCmAuthz, raw_ref(features::kFedCmAuthz),
kSetOnlyIfOverridden},
+ {wf::EnableFedCmDelegation, raw_ref(features::kFedCmDelegation),
+ kDefault},
{wf::EnableFedCmIdPRegistration,
raw_ref(features::kFedCmIdPRegistration), kDefault},
{wf::EnableFedCmIdpSigninStatus,
raw_ref(features::kFedCmIdpSigninStatusEnabled),
kSetOnlyIfOverridden},
+ {wf::EnableFedCmLightweightMode,
+ raw_ref(features::kFedCmLightweightMode), kDefault},
{wf::EnableGamepadMultitouch,
raw_ref(features::kEnableGamepadMultitouch)},
{wf::EnableSharedStorageAPI,
@@ -225,10 +229,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
kSetOnlyIfOverridden},
{wf::EnableSharedStorageAPI,
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),
kSetOnlyIfOverridden},
@@ -258,12 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
raw_ref(media::kMediaCastOverlayButton)},
{wf::EnableMediaEngagementBypassAutoplayPolicies,
raw_ref(media::kMediaEngagementBypassAutoplayPolicies)},
- {wf::EnableNotificationContentImage,
- raw_ref(features::kNotificationContentImage), kSetOnlyIfOverridden},
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
{wf::EnablePaymentRequest, raw_ref(features::kWebPayments)},
- {wf::EnablePercentBasedScrolling,
- raw_ref(features::kWindowsScrollingPersonality)},
{wf::EnablePeriodicBackgroundSync,
raw_ref(features::kPeriodicBackgroundSync)},
{wf::EnablePushMessagingSubscriptionChange,
@@ -275,17 +271,15 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableSendBeaconThrowForBlobWithNonSimpleType,
raw_ref(features::kSendBeaconThrowForBlobWithNonSimpleType)},
{wf::EnableSharedArrayBuffer, raw_ref(features::kSharedArrayBuffer)},
- {wf::EnableSharedArrayBufferOnDesktop,
- raw_ref(features::kSharedArrayBufferOnDesktop)},
#if BUILDFLAG(IS_ANDROID)
{wf::EnableSmartZoom, raw_ref(features::kSmartZoom)},
#endif
{wf::EnableTouchDragAndContextMenu,
raw_ref(features::kTouchDragAndContextMenu)},
- {wf::EnableUserActivationSameOriginVisibility,
- raw_ref(features::kUserActivationSameOriginVisibility)},
{wf::EnableWebAuthenticationAmbient,
raw_ref(device::kWebAuthnAmbientSignin)},
+ {wf::EnableWebAuthenticationConditionalCreate,
+ raw_ref(device::kWebAuthnPasskeyUpgrade)},
{wf::EnableWebBluetooth, raw_ref(features::kWebBluetooth),
kSetOnlyIfOverridden},
{wf::EnableWebBluetoothGetDevices,
@@ -294,12 +288,12 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableWebBluetoothWatchAdvertisements,
raw_ref(features::kWebBluetoothNewPermissionsBackend),
kSetOnlyIfOverridden},
-#if BUILDFLAG(IS_ANDROID)
- {wf::EnableWebNFC, raw_ref(features::kWebNfc), kSetOnlyIfOverridden},
-#endif
{wf::EnableWebIdentityDigitalCredentials,
raw_ref(features::kWebIdentityDigitalCredentials),
kSetOnlyIfOverridden},
+ {wf::EnableWebIdentityDigitalCredentialsCreation,
+ raw_ref(features::kWebIdentityDigitalCredentialsCreation),
+ kSetOnlyIfOverridden},
{wf::EnableWebOTP, raw_ref(features::kWebOTP), kSetOnlyIfOverridden},
{wf::EnableWebOTPAssertionFeaturePolicy,
raw_ref(features::kWebOTPAssertionFeaturePolicy),
@@ -312,7 +306,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableWebXRFrameRate,
raw_ref(device::features::kWebXrIncubations)},
{wf::EnableWebXRGPUBinding,
- raw_ref(device::features::kWebXrIncubations)},
+ raw_ref(device::features::kWebXrWebGpuBinding)},
{wf::EnableWebXRHandInput,
raw_ref(device::features::kWebXrHandInput)},
{wf::EnableWebXRImageTracking,
@@ -325,8 +319,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableWebXRSpecParity,
raw_ref(device::features::kWebXrIncubations)},
#endif
- {wf::EnableServiceWorkerStaticRouter,
- raw_ref(features::kServiceWorkerStaticRouter)},
{wf::EnablePermissions, raw_ref(features::kWebPermissionsApi),
kSetOnlyIfOverridden},
};
@@ -342,6 +334,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
runtimeFeatureNameToChromiumFeatureMapping[] = {
{"AllowContentInitiatedDataUrlNavigations",
raw_ref(features::kAllowContentInitiatedDataUrlNavigations)},
+ {"AllowSameSiteNoneCookiesInSandbox",
+ raw_ref(net::features::kAllowSameSiteNoneCookiesInSandbox)},
{"AllowURNsInIframes", raw_ref(blink::features::kAllowURNsInIframes)},
{"AllowURNsInIframes",
raw_ref(features::kPrivacySandboxAdsAPIsOverride),
@@ -386,8 +380,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{"FontationsFontBackend",
raw_ref(blink::features::kFontationsFontBackend)},
{"FontSrcLocalMatching", raw_ref(features::kFontSrcLocalMatching)},
- {"LegacyWindowsDWriteFontFallback",
- raw_ref(features::kLegacyWindowsDWriteFontFallback)},
{"MachineLearningNeuralNetwork",
raw_ref(webnn::mojom::features::kWebMachineLearningNeuralNetwork),
kSetOnlyIfOverridden},
@@ -395,6 +387,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{"ReduceAcceptLanguage",
raw_ref(network::features::kReduceAcceptLanguage)},
{"SerialPortConnected", raw_ref(features::kSerialPortConnected)},
+ {"SignatureBasedIntegrity",
+ raw_ref(network::features::kSRIMessageSignatureEnforcement)},
{"TopicsAPI", raw_ref(features::kPrivacySandboxAdsAPIsOverride),
kSetOnlyIfOverridden},
{"TopicsAPI", raw_ref(features::kPrivacySandboxAdsAPIsM1Override)},
@@ -403,6 +397,9 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
kSetOnlyIfOverridden},
{"TopicsDocumentAPI",
raw_ref(features::kPrivacySandboxAdsAPIsM1Override)},
+ {"TopicsImgAPI", raw_ref(features::kPrivacySandboxAdsAPIsOverride),
+ kSetOnlyIfOverridden},
+ {"TopicsImgAPI", raw_ref(features::kPrivacySandboxAdsAPIsM1Override)},
{"TouchTextEditingRedesign",
raw_ref(features::kTouchTextEditingRedesign)},
{"TrustedTypesFromLiteral",
@@ -478,8 +475,6 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
blink::switches::kKeyboardFocusableScrollersOptOut, false},
{wrf::EnableStandardizedBrowserZoom,
blink::switches::kDisableStandardizedBrowserZoom, false},
- {wrf::EnableCSSCustomStateDeprecatedSyntax,
- blink::switches::kCSSCustomStateDeprecatedSyntaxEnabled, true},
{wrf::EnableSelectParserRelaxation,
blink::switches::kDisableSelectParserRelaxation, false},
{wrf::EnableTextFragmentIdentifiers,
@@ -551,37 +546,6 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableBackForwardCache(
content::IsBackForwardCacheEnabled());
-
- if (base::FeatureList::IsEnabled(network::features::kPrivateStateTokens)) {
- WebRuntimeFeatures::EnablePrivateStateTokens(true);
- WebRuntimeFeatures::EnablePrivateStateTokensAlwaysAllowIssuance(true);
- } else if (base::FeatureList::IsEnabled(network::features::kFledgePst)) {
- // See https://bit.ly/configuring-trust-tokens.
- using network::features::TrustTokenOriginTrialSpec;
- switch (
- network::features::kTrustTokenOperationsRequiringOriginTrial.Get()) {
- case TrustTokenOriginTrialSpec::kOriginTrialNotRequired:
- // Setting PrivateStateTokens=true enables the Trust Tokens interface;
- // PrivateStateTokensAlwaysAllowIssuance disables a runtime check
- // during issuance that the origin trial is active (see
- // blink/.../trust_token_issuance_authorization.h).
- WebRuntimeFeatures::EnablePrivateStateTokens(true);
- WebRuntimeFeatures::EnablePrivateStateTokensAlwaysAllowIssuance(true);
- break;
- case TrustTokenOriginTrialSpec::kAllOperationsRequireOriginTrial:
- // The origin trial itself will be responsible for enabling the
- // PrivateStateTokens RuntimeEnabledFeature.
- WebRuntimeFeatures::EnablePrivateStateTokens(false);
- WebRuntimeFeatures::EnablePrivateStateTokensAlwaysAllowIssuance(false);
- break;
- case TrustTokenOriginTrialSpec::kOnlyIssuanceRequiresOriginTrial:
- // At issuance, a runtime check will be responsible for checking that
- // the origin trial is present.
- WebRuntimeFeatures::EnablePrivateStateTokens(true);
- WebRuntimeFeatures::EnablePrivateStateTokensAlwaysAllowIssuance(false);
- break;
- }
- }
}
// Ensures that the various ways of enabling/disabling features do not produce
@@ -624,6 +588,7 @@ void ResolveInvalidConfigurations() {
<< blink::features::kBrowsingTopics.name << " in addition.";
WebRuntimeFeatures::EnableTopicsAPI(false);
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
+ WebRuntimeFeatures::EnableTopicsImgAPI(false);
} else {
if (!base::FeatureList::IsEnabled(
blink::features::kBrowsingTopicsDocumentAPI)) {
@@ -646,28 +611,6 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableSharedStorageAPI(false);
}
- if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM118) ||
- !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) {
- LOG_IF(WARNING, WebRuntimeFeatures::IsSharedStorageAPIM118Enabled())
- << "SharedStorage for M118+ cannot be enabled in this "
- "configuration. Use --"
- << switches::kEnableFeatures << "="
- << blink::features::kSharedStorageAPI.name << ","
- << blink::features::kSharedStorageAPIM118.name << " in addition.";
- WebRuntimeFeatures::EnableSharedStorageAPIM118(false);
- }
-
- if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM125) ||
- !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) {
- LOG_IF(WARNING, WebRuntimeFeatures::IsSharedStorageAPIM125Enabled())
- << "SharedStorage for M125+ cannot be enabled in this "
- "configuration. Use --"
- << switches::kEnableFeatures << "="
- << blink::features::kSharedStorageAPI.name << ","
- << blink::features::kSharedStorageAPIM125.name << " in addition.";
- WebRuntimeFeatures::EnableSharedStorageAPIM125(false);
- }
-
if (!base::FeatureList::IsEnabled(
attribution_reporting::features::kConversionMeasurement)) {
LOG_IF(WARNING, WebRuntimeFeatures::IsAttributionReportingEnabled())
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 a1b6aad3..f252c048 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
@@ -4,6 +4,7 @@
#include "content/public/browser/content_browser_client.h"
+#include
#include
#include
#include
@@ -20,7 +21,9 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/buildflag.h"
-#include "build/chromeos_buildflags.h"
+#include "components/language_detection/content/browser/content_language_detection_driver.h"
+#include "components/language_detection/content/common/language_detection.mojom.h"
+#include "components/language_detection/core/browser/language_detection_model_provider.h"
#include "content/browser/ai/echo_ai_manager_impl.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/public/browser/anchor_element_preconnect_delegate.h"
@@ -73,8 +76,10 @@
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/network_service.mojom.h"
#include "services/network/public/mojom/web_transport.mojom.h"
+#include "services/video_effects/public/cpp/buildflags.h"
#include "storage/browser/quota/quota_manager.h"
#include "third_party/blink/public/common/features.h"
+#include "third_party/blink/public/common/features_generated.h"
#include "third_party/blink/public/common/loader/url_loader_throttle.h"
#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
@@ -91,10 +96,13 @@
#if BUILDFLAG(IS_ANDROID)
#include "content/public/browser/tts_environment_android.h"
#else
-#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h"
#include "third_party/blink/public/mojom/installedapp/related_application.mojom.h"
#endif
+#if BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h"
+#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+
using AttributionReportType =
content::ContentBrowserClient::AttributionReportingOsRegistrar;
@@ -240,12 +248,9 @@ ContentBrowserClient::DetermineAddressSpaceFromURL(const GURL& url) {
return network::mojom::IPAddressSpace::kUnknown;
}
-bool ContentBrowserClient::LogWebUICreated(const GURL& web_ui_url) {
- return false;
-}
-
-bool ContentBrowserClient::LogWebUIShown(const GURL& web_ui_url) {
- return false;
+void ContentBrowserClient::LogWebUIUsage(
+ std::variant webui_variant) {
+ return;
}
bool ContentBrowserClient::IsWebUIAllowedToMakeNetworkRequests(
@@ -797,7 +802,7 @@ ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return nullptr;
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
TtsControllerDelegate* ContentBrowserClient::GetTtsControllerDelegate() {
return nullptr;
}
@@ -1019,7 +1024,7 @@ bool ContentBrowserClient::ShouldEnableAudioProcessHighPriority() {
return false;
}
-bool ContentBrowserClient::ShouldUseSkiaFontManager(const GURL& site_url) {
+bool ContentBrowserClient::ShouldUseFontDataManager(const GURL& site_url) {
return false;
}
@@ -1292,6 +1297,7 @@ std::unique_ptr ContentBrowserClient::CreateLoginDelegate(
const GURL& url,
scoped_refptr response_headers,
bool first_auth_attempt,
+ GuestPageHolder* guest,
LoginAuthRequiredCallback auth_required_callback) {
return nullptr;
}
@@ -1679,6 +1685,14 @@ bool ContentBrowserClient::IsThirdPartyStoragePartitioningAllowed(
return true;
}
+bool ContentBrowserClient::IsUnpartitionedStorageAccessAllowedByUserPreference(
+ content::BrowserContext* browser_context,
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies,
+ const url::Origin& top_frame_origin) {
+ return true;
+}
+
bool ContentBrowserClient::AreDeprecatedAutomaticBeaconCredentialsAllowed(
content::BrowserContext* browser_context,
const GURL& destination_url,
@@ -1736,7 +1750,7 @@ bool ContentBrowserClient::UseOutermostMainFrameOrEmbedderForSubCaptureTargets()
return false;
}
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_VIDEO_EFFECTS)
void ContentBrowserClient::BindVideoEffectsManager(
const std::string& device_id,
BrowserContext* browser_context,
@@ -1748,7 +1762,7 @@ void ContentBrowserClient::BindVideoEffectsProcessor(
BrowserContext* browser_context,
mojo::PendingReceiver
video_effects_manager) {}
-#endif // !BUILDFLAG(IS_ANDROID)
+#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS)
void ContentBrowserClient::PreferenceRankAudioDeviceInfos(
BrowserContext* browser_context,
@@ -1776,6 +1790,10 @@ std::unique_ptr ContentBrowserClient::CreateDipsDelegate() {
return nullptr;
}
+bool ContentBrowserClient::ShouldEnableDips(BrowserContext* browser_context) {
+ return true;
+}
+
bool ContentBrowserClient::ShouldSuppressAXLoadComplete(RenderFrameHost* rfh) {
return false;
}
@@ -1784,7 +1802,60 @@ void ContentBrowserClient::BindAIManager(
BrowserContext* browser_context,
base::SupportsUserData* context_user_data,
mojo::PendingReceiver receiver) {
- EchoAIManagerImpl::Create(*context_user_data, std::move(receiver));
+ EchoAIManagerImpl::Create(std::move(receiver));
+}
+
+void ContentBrowserClient::BindTranslationManager(
+ BrowserContext* browser_context,
+ base::SupportsUserData* context_user_data,
+ const url::Origin& origin,
+ mojo::PendingReceiver receiver) {}
+
+namespace {
+// TODO(https://crbug.com/383035345): Use BASE_FEATURE_PARAM.
+const base::FeatureParam kLanguageDetectionLocalFileModelPath{
+ &blink::features::kLanguageDetectionAPI,
+ "language_detection_local_file_model_path", ""};
+
+// We need to initialize the provider after it is created. This should not be
+// inside `GetContentLanguageDetectionDriver` or it will be performed on every
+// call.
+language_detection::LanguageDetectionModelProvider*
+CreateLanguageDetectionModelProvider() {
+ auto* provider = new language_detection::LanguageDetectionModelProvider(
+ base::ThreadPool::CreateSequencedTaskRunner(
+ {base::MayBlock(), base::TaskPriority::BEST_EFFORT}));
+ const std::string model_file_path =
+ kLanguageDetectionLocalFileModelPath.Get();
+ if (model_file_path.length()) {
+ provider->ReplaceModelFile(base::FilePath::FromASCII(model_file_path));
+ } else {
+ // There is no model and there's not going to be one. If we don't call this
+ // the provider will queue requests, expecting that some time in the future
+ // a model will become available.
+ provider->UnloadModelFile();
+ }
+ return provider;
+}
+
+// Returns a singleton of `ContentLanguageDetectionDriver`. This will provide
+// the model from a flag-param path.
+language_detection::ContentLanguageDetectionDriver&
+GetContentLanguageDetectionDriver() {
+ static base::NoDestructor
+ driver(CreateLanguageDetectionModelProvider());
+ return *driver.get();
+}
+} // namespace
+
+void ContentBrowserClient::BindLanguageDetectionDriver(
+ content::BrowserContext* browser_context,
+ base::SupportsUserData* context_user_data,
+ mojo::PendingReceiver<
+ language_detection::mojom::ContentLanguageDetectionDriver> receiver) {
+ if (base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) {
+ GetContentLanguageDetectionDriver().AddReceiver(std::move(receiver));
+ }
}
#if !BUILDFLAG(IS_ANDROID)
@@ -1817,4 +1888,10 @@ bool ContentBrowserClient::ShouldDispatchPagehideDuringCommit(
return true;
}
+std::unique_ptr ContentBrowserClient::OverrideForInternalWebUI(
+ WebUI* web_ui,
+ const GURL& url) {
+ return nullptr;
+}
+
} // namespace content
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 0edabe0c..d2983919 100755
--- a/tools/under-control/src/extensions/common/api/app_runtime.idl
+++ b/tools/under-control/src/extensions/common/api/app_runtime.idl
@@ -7,7 +7,7 @@
// shut down the app at anytime.
namespace app.runtime {
- [inline_doc] dictionary LaunchItem {
+ dictionary LaunchItem {
// Entry for the item.
[instanceOf=Entry] object entry;
@@ -63,23 +63,6 @@ namespace app.runtime {
// Optional data that includes action-specific launch information.
dictionary ActionData {
ActionType actionType;
-
- // Whether the action was requested on Chrome OS lock screen.
- //
- // Launch events with this valued set to true are fired
- // in lock screen context, where apps have reduced access to extension
- // APIs, but are able to create windows on lock screen.
- //
- //
- // Note that this value will be set to true only if the app
- // is set as the lock screen enabled action handler by the user.
- //
- [nodoc] boolean? isLockScreenAction;
-
- // Currently, used only with lock screen actions. If set, indicates whether
- // the app should attempt to restore state from when the action was last
- // handled.
- [nodoc] boolean? restoreLastActionState;
};
// Optional data for the launch. Either items, or
diff --git a/tools/under-control/src/extensions/common/api/app_window.idl b/tools/under-control/src/extensions/common/api/app_window.idl
index 78d93db1..8e5718e1 100755
--- a/tools/under-control/src/extensions/common/api/app_window.idl
+++ b/tools/under-control/src/extensions/common/api/app_window.idl
@@ -288,16 +288,6 @@ namespace app.window {
// If true, and supported by the platform, the window will be visible on all
// workspaces.
boolean? visibleOnAllWorkspaces;
-
- // If set, the action that is intended to be handled by the window on
- // lockscreen. This has to be set to create an app window visible on the
- // lock screen. The app window should be created only in response to an
- // app launch request for handling an action from the lock screen. App
- // window creation will fail if the app was not launched to handle the
- // action.
- //
- // This is Chrome OS only.
- [nodoc] app.runtime.ActionType? lockScreenAction;
};
// Called in the creating window (parent) before the load event is called in
diff --git a/tools/under-control/src/extensions/common/api/automation.idl b/tools/under-control/src/extensions/common/api/automation.idl
index 801d79ea..41ba51ab 100755
--- a/tools/under-control/src/extensions/common/api/automation.idl
+++ b/tools/under-control/src/extensions/common/api/automation.idl
@@ -383,7 +383,8 @@
richlyEditable,
vertical,
visited,
- hasActions
+ hasActions,
+ hasInterestTarget
};
// All possible actions that can be performed on automation nodes.
@@ -678,7 +679,7 @@ enum PositionType {
};
// Arguments for the find() and findAll() methods.
- [nocompile, noinline_doc] dictionary FindParams {
+ [nocompile] dictionary FindParams {
RoleType? role;
// A map of $(ref:automation.StateType) to boolean, indicating for each
@@ -705,7 +706,7 @@ enum PositionType {
};
// Arguments for the setDocumentSelection() function.
- [nocompile, noinline_doc] dictionary SetDocumentSelectionParams {
+ [nocompile] dictionary SetDocumentSelectionParams {
// The node where the selection begins.
[instanceOf=AutomationNode] object anchorObject;
@@ -719,7 +720,7 @@ enum PositionType {
long focusOffset;
};
- [nocompile, noinline_doc] dictionary AutomationIntent {
+ [nocompile] dictionary AutomationIntent {
// A command associated with this AutomationIntent.
IntentCommandType command;
@@ -731,7 +732,7 @@ enum PositionType {
};
// An event in the Automation tree.
- [nocompile, noinline_doc] dictionary AutomationEvent {
+ [nocompile] dictionary AutomationEvent {
// The $(ref:automation.AutomationNode) to which the event was targeted.
AutomationNode target;
@@ -757,7 +758,7 @@ enum PositionType {
callback AutomationListener = void(AutomationEvent event);
// A change to the Automation tree.
- [nocompile, noinline_doc] dictionary TreeChange {
+ [nocompile] dictionary TreeChange {
// The $(ref:automation.AutomationNode) that changed.
AutomationNode target;
@@ -782,13 +783,13 @@ enum PositionType {
callback PerformActionCallbackWithNode = void(AutomationNode node);
callback BoundsForRangeCallback = void(Rect bounds);
- [nocompile, noinline_doc] dictionary CustomAction {
+ [nocompile] dictionary CustomAction {
long id;
DOMString description;
};
// A marker associated with an AutomationNode.
- [nocompile, noinline_doc] dictionary Marker {
+ [nocompile] dictionary Marker {
// The start offset within the text of the associated node.
long startOffset;
@@ -805,7 +806,7 @@ enum PositionType {
// be kept in sync with
// extensions/renderer/api/automation/automation_position.h.
// Some members there are kept private and not represented here.
- [nocompile, noinline_doc] dictionary AutomationPosition {
+ [nocompile] dictionary AutomationPosition {
AutomationNode? node;
long childIndex;
@@ -875,7 +876,7 @@ enum PositionType {
};
// A single node in an Automation tree.
- [nocompile, noinline_doc] dictionary AutomationNode {
+ [nocompile] dictionary AutomationNode {
// The root node of the tree containing this AutomationNode.
AutomationNode? root;
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 4cc8e336..13e0df81 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
@@ -121,7 +121,6 @@ namespace declarativeNetRequest {
};
// Describes modification to various url components.
- [noinline_doc]
dictionary URLTransform {
// The new scheme for the request. Allowed values are "http", "https",
// "ftp" and "chrome-extension".
@@ -190,7 +189,7 @@ namespace declarativeNetRequest {
DOMString[]? excludedValues;
};
- [noinline_doc] dictionary RuleCondition {
+ dictionary RuleCondition {
// The pattern which is matched against the network request url.
// Supported constructs:
@@ -409,7 +408,6 @@ namespace declarativeNetRequest {
[nodoc] HeaderRegexOptions? regexOptions;
};
- [noinline_doc]
dictionary RuleAction {
// The type of action to perform.
RuleActionType type;
@@ -452,13 +450,11 @@ namespace declarativeNetRequest {
DOMString rulesetId;
};
- [noinline_doc]
dictionary GetRulesFilter {
// If specified, only rules with matching IDs are included.
long[]? ruleIds;
};
- [noinline_doc]
dictionary MatchedRuleInfo {
MatchedRule rule;
@@ -486,7 +482,6 @@ namespace declarativeNetRequest {
MatchedRuleInfo[] rulesMatchedInfo;
};
- [noinline_doc]
dictionary RequestDetails {
// The ID of the request. Request IDs are unique within a browser session.
DOMString requestId;
diff --git a/tools/under-control/src/extensions/common/api/hid.idl b/tools/under-control/src/extensions/common/api/hid.idl
index 85377057..c26a2580 100755
--- a/tools/under-control/src/extensions/common/api/hid.idl
+++ b/tools/under-control/src/extensions/common/api/hid.idl
@@ -19,7 +19,7 @@ namespace hid {
long[] reportIds;
};
- [noinline_doc] dictionary HidDeviceInfo {
+ dictionary HidDeviceInfo {
// Opaque device ID.
long deviceId;
// Vendor ID.
@@ -47,7 +47,7 @@ namespace hid {
long connectionId;
};
- [noinline_doc] dictionary DeviceFilter {
+ dictionary DeviceFilter {
// Device vendor ID.
long? vendorId;
// Device product ID, only checked only if the vendor ID matches.
diff --git a/tools/under-control/src/extensions/common/api/lock_screen_data.idl b/tools/under-control/src/extensions/common/api/lock_screen_data.idl
deleted file mode 100755
index 3d54cd50..00000000
--- a/tools/under-control/src/extensions/common/api/lock_screen_data.idl
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-//
-// The API that can be used by an app to create and manage data on the
-// Chrome OS lock screen.
-//
-//
-// The API usability will depend on the user session state:
-//
-// -
-// When the user session is locked, the API usage will only be allowed
-// from the lock screen context.
-//
-// -
-// When the user session is not locked, the API usage will only be
-// allowed outside the lock screen context - i.e. from the regular app
-// context.
-//
-//
-//
-//
-// Note that apps have reduced access to Chrome apps APIs from the lock screen
-// context.
-//
-namespace lockScreen.data {
- // The basic information about available data items originating from the lock
- // screen.
- dictionary DataItemInfo {
- // The data item ID that can later be used to retrieve and update the
- // associated lock screen data.
- DOMString id;
- };
-
- dictionary DataItemsAvailableEvent {
- // Whether the event was dispatched as a result of the user session
- // getting unlocked.
- //
- // For example:
- //
- // - If the app creates new data items while shown on
- // the lock screen, when the user unlocks the screen,
- // $(ref:onDataItemsAvailable) event will be dispatched with this
- // property set to
true.
- //
- // - When the user logs in, if not previously reported lock screen
- // data items are found, which could happen if the user session had
- // been closed while it was locked, $(ref:onDataItemsAvailable) will
- // be dispatched with this property set to
false.
- //
- //
- //
- boolean wasLocked;
- };
-
- callback DataItemCallback = void(DataItemInfo item);
- callback DataItemListCallback = void(DataItemInfo[] items);
- callback DataCallback = void(ArrayBuffer data);
- callback VoidCallback = void();
-
- interface Functions {
- // Creates a new data item reference - available only in lock screen
- // contexts.
- static void create(DataItemCallback callback);
-
- // Gets references to all data items available to the app.
- static void getAll(DataItemListCallback callback);
-
- // Retrieves content of the data item identified by |id|.
- static void getContent(
- DOMString id,
- DataCallback callback);
-
- // Sets contents of a data item.
- // |id| - Identifies the target data item.
- // |data| - The data item contents to set.
- static void setContent(
- DOMString id,
- ArrayBuffer data,
- optional VoidCallback callback);
-
- // Deletes a data item. The data item will not be available through this
- // API anymore.
- // |id| - Identifies the data item to delete.
- static void delete(
- DOMString id,
- optional VoidCallback callback);
- };
-
- interface Events {
- // Dispatched when new data items become available to main, non-lock screen
- // app context - this event is not expected to be dispatched to the app in
- // the lock screen context.
- static void onDataItemsAvailable(DataItemsAvailableEvent event);
- };
-};
diff --git a/tools/under-control/src/extensions/common/api/networking_onc.idl b/tools/under-control/src/extensions/common/api/networking_onc.idl
index 0d227635..0c8cf224 100755
--- a/tools/under-control/src/extensions/common/api/networking_onc.idl
+++ b/tools/under-control/src/extensions/common/api/networking_onc.idl
@@ -351,7 +351,7 @@ namespace networking.onc {
ManagedLong Port;
};
- [noinline_doc] dictionary ManualProxySettings {
+ dictionary ManualProxySettings {
// Settings for HTTP proxy.
ProxyLocation? HTTPProxy;
// Settings for secure HTTP proxy.
@@ -373,7 +373,7 @@ namespace networking.onc {
ManagedProxyLocation? SOCKS;
};
- [noinline_doc] dictionary ProxySettings {
+ dictionary ProxySettings {
// The type of proxy settings.
ProxySettingsType Type;
// Manual proxy settings - used only for Manual proxy settings.
@@ -422,7 +422,7 @@ namespace networking.onc {
// Network type dictionary types.
- [noinline_doc] dictionary CellularProperties {
+ dictionary CellularProperties {
// Whether the cellular network should be connected automatically (when
// in range).
boolean? AutoConnect;
@@ -574,7 +574,7 @@ namespace networking.onc {
DOMString Type;
};
- [noinline_doc] dictionary WiFiProperties {
+ dictionary WiFiProperties {
[deprecated="Removed in M131. There is no active ARP polling now."]
boolean? AllowGatewayARPPolling;
// Whether the WiFi network should be connected automatically when in range.
@@ -681,7 +681,6 @@ namespace networking.onc {
WiMAXProperties? WiMAX;
};
- [noinline_doc]
dictionary NetworkProperties {
// For cellular networks, cellular network properties.
CellularProperties? Cellular;
@@ -741,7 +740,6 @@ namespace networking.onc {
WiFiProperties? WiFi;
};
- [noinline_doc]
dictionary ManagedProperties {
// See $(ref:NetworkProperties.Cellular).
ManagedCellularProperties? Cellular;
diff --git a/tools/under-control/src/extensions/common/api/power.idl b/tools/under-control/src/extensions/common/api/power.idl
index 8ce38751..ec8cf367 100755
--- a/tools/under-control/src/extensions/common/api/power.idl
+++ b/tools/under-control/src/extensions/common/api/power.idl
@@ -7,7 +7,7 @@
namespace power {
callback VoidCallback = void ();
- [noinline_doc] enum Level {
+ enum Level {
// Prevents the system from sleeping in response to user inactivity.
system,
diff --git a/tools/under-control/src/extensions/common/api/printer_provider.idl b/tools/under-control/src/extensions/common/api/printer_provider.idl
index 920f82ae..56266311 100755
--- a/tools/under-control/src/extensions/common/api/printer_provider.idl
+++ b/tools/under-control/src/extensions/common/api/printer_provider.idl
@@ -37,7 +37,7 @@ namespace printerProvider {
};
// Printing request parameters. Passed to $(ref:onPrintRequested) event.
- [noinline_doc] dictionary PrintJob {
+ dictionary PrintJob {
// ID of the printer which should handle the job.
DOMString printerId;
diff --git a/tools/under-control/src/extensions/common/api/system_display.idl b/tools/under-control/src/extensions/common/api/system_display.idl
index 1d49e133..990086c1 100755
--- a/tools/under-control/src/extensions/common/api/system_display.idl
+++ b/tools/under-control/src/extensions/common/api/system_display.idl
@@ -144,15 +144,15 @@ namespace system.display {
// The user-friendly name (e.g. "HP LCD monitor").
DOMString name;
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
Edid? edid;
- // Chrome OS only. Identifier of the display that is being mirrored if
+ // ChromeOS only. Identifier of the display that is being mirrored if
// mirroring is enabled, otherwise empty. This will be set for all displays
// (including the display being mirrored).
DOMString mirroringSourceId;
- // Chrome OS only. Identifiers of the displays to which the source display
+ // ChromeOS only. Identifiers of the displays to which the source display
// is being mirrored. Empty if no displays are being mirrored. This will be
// set to the same value for all displays. This must not include
// |mirroringSourceId|.
@@ -207,7 +207,7 @@ namespace system.display {
Bounds workArea;
// The list of available display modes. The current mode will have
- // isSelected=true. Only available on Chrome OS. Will be set to an empty
+ // isSelected=true. Only available on ChromeOS. Will be set to an empty
// array on other platforms.
DisplayMode[] modes;
@@ -229,14 +229,14 @@ namespace system.display {
};
dictionary DisplayProperties {
- // Chrome OS only. If set to true, changes the display mode to unified
+ // ChromeOS only. If set to true, changes the display mode to unified
// desktop (see $(ref:enableUnifiedDesktop) for details). If set to false,
// unified desktop mode will be disabled. This is only valid for the
// primary display. If provided, mirroringSourceId must not be provided and
// other properties will be ignored. This is has no effect if not provided.
boolean? isUnified;
- // Chrome OS only. If set and not empty, enables mirroring for this display
+ // ChromeOS only. If set and not empty, enables mirroring for this display
// only. Otherwise disables mirroring for all displays. This value should
// indicate the id of the source display to mirror, which must not be the
// same as the id passed to setDisplayProperties. If set, no other property
@@ -334,7 +334,7 @@ namespace system.display {
DisplayInfoCallback callback);
// Requests the layout info for all displays.
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
// |callback|: The callback to invoke with the results.
static void getDisplayLayout(
DisplayLayoutCallback callback);
@@ -342,7 +342,7 @@ namespace system.display {
// Updates the properties for the display specified by |id|, according to
// the information provided in |info|. On failure, $(ref:runtime.lastError)
// will be set.
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
// |id|: The display's unique identifier.
// |info|: The information about display properties that should be changed.
// A property will be changed only if a new value for it is specified in
@@ -359,7 +359,7 @@ namespace system.display {
// default layout. If a layout would overlap or be otherwise invalid it
// will be adjusted to a valid layout. After layout is resolved, an
// onDisplayChanged event will be triggered.
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
// |layouts|: The layout information, required for all displays except
// the primary display.
// |callback|: Empty function called when the function finishes. To find out
@@ -372,7 +372,7 @@ namespace system.display {
// Enables/disables the unified desktop feature. If enabled while mirroring
// is active, the desktop mode will not change until mirroring is turned
// off. Otherwise, the desktop mode will switch to unified immediately.
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
// |enabled|: True if unified desktop should be enabled.
static void enableUnifiedDesktop(boolean enabled);
@@ -439,7 +439,7 @@ namespace system.display {
// Sets the display mode to the specified mirror mode. Each call resets the
// state from previous calls. Calling setDisplayProperties() will fail for
// the mirroring destination displays.
- // NOTE: This is only available to Chrome OS Kiosk apps and Web UI.
+ // NOTE: This is only available to ChromeOS Kiosk apps and Web UI.
// |info|: The information of the mirror mode that should be applied to the
// display mode.
// |callback|: Empty function called when the function finishes. To find out
diff --git a/tools/under-control/src/extensions/common/api/system_storage.idl b/tools/under-control/src/extensions/common/api/system_storage.idl
index 2d52be2e..f4f9bf19 100755
--- a/tools/under-control/src/extensions/common/api/system_storage.idl
+++ b/tools/under-control/src/extensions/common/api/system_storage.idl
@@ -37,7 +37,7 @@ namespace system.storage {
double availableCapacity;
};
- [inline_doc] enum EjectDeviceResultCode {
+ enum EjectDeviceResultCode {
// The ejection command is successful -- the application can prompt the user
// to remove the device.
success,
diff --git a/tools/under-control/src/extensions/common/api/usb.idl b/tools/under-control/src/extensions/common/api/usb.idl
index f9613951..38a413bd 100755
--- a/tools/under-control/src/extensions/common/api/usb.idl
+++ b/tools/under-control/src/extensions/common/api/usb.idl
@@ -53,7 +53,7 @@ namespace usb {
long productId;
};
- [noinline_doc] dictionary EndpointDescriptor {
+ dictionary EndpointDescriptor {
// Endpoint address.
long address;
// Transfer type.
@@ -72,7 +72,7 @@ namespace usb {
ArrayBuffer extra_data;
};
- [noinline_doc] dictionary InterfaceDescriptor {
+ dictionary InterfaceDescriptor {
// The interface number.
long interfaceNumber;
// The interface alternate setting number (defaults to 0Match Patterns for more details on the
// syntax of these strings. This property must be specified for
@@ -70,8 +72,7 @@ namespace userScripts {
// Only valid if `world` is omitted or is `USER_SCRIPT`. If omitted, the
// script will execute in the default user script world.
// Values with leading underscores (`_`) are reserved.
- // TODO(https://crbug.com/331680187): Remove nodoc.
- [nodoc] DOMString? worldId;
+ DOMString? worldId;
};
// An object used to filter user scripts for ${ref:getScripts}.
@@ -81,6 +82,49 @@ namespace userScripts {
DOMString[]? ids;
};
+ // TODO(crbug.com/326657581): Remove nodoc.
+ [nodoc] dictionary InjectionTarget {
+ // Whether the script should inject into all frames within the tab. Defaults
+ // to false. This must not be true if frameIds is specified.
+ boolean? allFrames;
+ // The IDs of specific documentIds to inject into. This must not be set if
+ // frameIds is set.
+ DOMString[]? documentIds;
+ // The IDs of specific frames to inject into.
+ long[]? frameIds;
+ // The ID of the tab into which to inject.
+ long tabId;
+ };
+
+ // TODO(crbug.com/326657581): Remove nodoc.
+ [nodoc] dictionary InjectionResult {
+ // The document associated with the injection.
+ DOMString documentId;
+ // The frame associated with the injection.
+ long frameId;
+ // The result of the script execution.
+ any? result;
+ // The error, if any. error and result are
+ // mutually exclusive.
+ DOMString? error;
+ };
+
+ // TODO(crbug.com/326657581): Remove nodoc.
+ [nodoc] dictionary UserScriptInjection {
+ // Whether the injection should be triggered in the target as soon as
+ // possible. Note that this is not a guarantee that injection will occur
+ // prior to page load, as the page may have already loaded by the time the
+ // script reaches the target.
+ boolean? injectImmediately;
+ // The script source to inject into the target.
+ ScriptSource js;
+ // Details specifying the target into which to inject the script.
+ InjectionTarget target;
+ // The JavaScript "world" to run the script in. The default is
+ // USER_SCRIPT.
+ ExecutionWorld? world;
+ };
+
// An object used to update the `USER_SCRIPT` world
// configuration. If a property is not specified, it will reset it to its
// default value.
@@ -88,8 +132,7 @@ namespace userScripts {
// Specifies the ID of the specific user script world to update.
// If not provided, updates the properties of the default user script world.
// Values with leading underscores (`_`) are reserved.
- // TODO(https://crbug.com/331680187): Remove nodoc.
- [nodoc] DOMString? worldId;
+ DOMString? worldId;
// Specifies the world csp. The default is the `ISOLATED`
// world csp.
@@ -108,6 +151,8 @@ namespace userScripts {
callback UpdateCallback = void();
+ callback ExecuteCallback = void(InjectionResult[] result);
+
callback ConfigureWorldCallback = void();
callback GetAllWorldConfigurationsCallback = void(WorldProperties[] worlds);
@@ -153,6 +198,18 @@ namespace userScripts {
RegisteredUserScript[] scripts,
optional UpdateCallback callback);
+ // Injects a script into a target context. By default, the script will be
+ // run at document_idle, or immediately if the page has already
+ // loaded. If the injectImmediately property is set, the script
+ // will inject without waiting, even if the page has not finished loading.
+ // If the script evaluates to a promise, the browser will wait for the
+ // promise to settle and return the resulting value.
+ // TODO(crbug.com/326657581): Remove nodoc.
+ [nodoc] static void execute(
+ UserScriptInjection injection,
+ optional ExecuteCallback callback
+ );
+
// Configures the `USER_SCRIPT` execution environment.
// |properties|: Contains the user script world configuration.
// |callback|: Called once world hase been configured.
@@ -162,8 +219,7 @@ namespace userScripts {
// Retrieves all registered world configurations.
// |callback|: Called with the registered world configurations.
- // TODO(https://crbug.com/331680187): Remove nodoc.
- [nodoc] static void getWorldConfigurations(
+ static void getWorldConfigurations(
GetAllWorldConfigurationsCallback callback);
// Resets the configuration for a user script world. Any scripts that inject
@@ -172,8 +228,7 @@ namespace userScripts {
// |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(
+ 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 6fd3a37e..7fdb3ae4 100755
--- a/tools/under-control/src/gin/v8_initializer.cc
+++ b/tools/under-control/src/gin/v8_initializer.cc
@@ -32,8 +32,8 @@
#include "base/notreached.h"
#include "base/path_service.h"
#include "base/rand_util.h"
+#include "base/strings/span_printf.h"
#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
#include "base/system/sys_info.h"
#include "base/threading/platform_thread.h"
#include "base/time/time.h"
@@ -196,7 +196,7 @@ void SetV8FlagsFormatted(const char* format, ...) {
char buffer[128];
va_list args;
va_start(args, format);
- int length = base::vsnprintf(buffer, sizeof(buffer), format, args);
+ int length = base::VSpanPrintf(buffer, format, args);
if (length <= 0 || sizeof(buffer) <= static_cast(length)) {
PLOG(ERROR) << "Invalid formatted V8 flag: " << format;
return;
@@ -236,20 +236,20 @@ class V8FeatureVisitor : public base::FeatureVisitor {
// prefix, so we expect all feature names to start with "V8Flag_". Strip
// this prefix off to get the corresponding V8 flag name.
DCHECK(feature_name_view.starts_with(kV8FlagFeaturePrefix));
- std::string_view flag_name =
- feature_name_view.substr(kV8FlagFeaturePrefix.size());
+ std::string flag_name(
+ feature_name_view.substr(kV8FlagFeaturePrefix.size()));
switch (override_state) {
case base::FeatureList::OverrideState::OVERRIDE_USE_DEFAULT:
return;
case base::FeatureList::OverrideState::OVERRIDE_DISABLE_FEATURE:
- SetV8FlagsFormatted("--no-%s", flag_name);
+ SetV8FlagsFormatted("--no-%s", flag_name.c_str());
// Do not set parameters for disabled features.
break;
case base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE:
- SetV8FlagsFormatted("--%s", flag_name);
+ SetV8FlagsFormatted("--%s", flag_name.c_str());
for (const auto& [param_name, param_value] : params) {
SetV8FlagsFormatted("--%s=%s", param_name.c_str(),
param_value.c_str());
@@ -515,8 +515,6 @@ void SetFlags(IsolateHolder::ScriptMode mode,
SetV8FlagsIfOverridden(features::kWebAssemblyInliningCallIndirect,
"--wasm-inlining-call-indirect",
"--no-wasm-inlining-call-indirect");
- SetV8FlagsIfOverridden(features::kWebAssemblyLiftoffCodeFlushing,
- "--flush-liftoff-code", "--no-flush-liftoff-code");
SetV8FlagsIfOverridden(features::kWebAssemblyMultipleMemories,
"--experimental-wasm-multi-memory",
"--no-experimental-wasm-multi-memory");
diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc
index f03bc67f..8d2e38ac 100755
--- a/tools/under-control/src/services/network/network_context.cc
+++ b/tools/under-control/src/services/network/network_context.cc
@@ -43,12 +43,10 @@
#include "base/types/optional_util.h"
#include "build/build_config.h"
#include "build/chromecast_buildflags.h"
-#include "build/chromeos_buildflags.h"
#include "components/cookie_config/cookie_store_util.h"
#include "components/domain_reliability/monitor.h"
-#include "components/ip_protection/common/ip_protection_config_getter_mojo_impl.h"
-#include "components/ip_protection/common/ip_protection_control_mojo.h"
-#include "components/ip_protection/common/ip_protection_core_impl.h"
+#include "components/ip_protection/common/ip_protection_core_host_remote.h"
+#include "components/ip_protection/common/ip_protection_core_impl_mojo.h"
#include "components/ip_protection/common/ip_protection_proxy_delegate.h"
#include "components/network_session_configurator/browser/network_session_configurator.h"
#include "components/network_session_configurator/common/network_switches.h"
@@ -76,6 +74,7 @@
#include "net/cookies/cookie_constants.h"
#include "net/cookies/cookie_monster.h"
#include "net/cookies/cookie_setting_override.h"
+#include "net/device_bound_sessions/session_service.h"
#include "net/dns/host_cache.h"
#include "net/dns/mapped_host_resolver.h"
#include "net/extras/sqlite/cookie_crypto_delegate.h"
@@ -104,6 +103,7 @@
#include "services/network/brokered_client_socket_factory.h"
#include "services/network/cookie_manager.h"
#include "services/network/data_remover_util.h"
+#include "services/network/device_bound_session_manager.h"
#include "services/network/disk_cache/mojo_backend_file_operations_factory.h"
#include "services/network/host_resolver.h"
#include "services/network/http_auth_cache_copier.h"
@@ -196,10 +196,6 @@
#include "base/android/application_status_listener.h"
#endif // BUILDFLAG(IS_ANDROID)
-#if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS)
-#include "net/device_bound_sessions/session_service.h"
-#endif // BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS)
-
namespace network {
namespace {
@@ -814,6 +810,9 @@ NetworkContext::NetworkContext(
if (prefetch_enabled_) {
InitializePrefetchURLLoaderFactory();
}
+
+ device_bound_session_manager_ = DeviceBoundSessionManager::Create(
+ url_request_context_->device_bound_session_service());
}
NetworkContext::NetworkContext(
@@ -859,10 +858,6 @@ NetworkContext::NetworkContext(
cors_exempt_header_list_.insert(key);
}
- acam_preflight_spec_conformant_ = base::FeatureList::IsEnabled(
- network::features::
- kAccessControlAllowMethodsInCORSPreflightSpecConformant);
-
if (prefetch_enabled_) {
InitializePrefetchURLLoaderFactory();
}
@@ -1722,7 +1717,7 @@ int NetworkContext::CheckCTRequirementsForSignedExchange(
net::TransportSecurityState::CTRequirementsStatus ct_requirement_status =
url_request_context_->transport_security_state()->CheckCTRequirements(
- host_port_pair, cert_verify_result.is_issued_by_known_root,
+ host_port_pair.host(), cert_verify_result.is_issued_by_known_root,
cert_verify_result.public_key_hashes, verified_cert,
cert_verify_result.policy_compliance);
@@ -2416,7 +2411,7 @@ void NetworkContext::LookupServerBasicAuthCredentials(
}
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
void NetworkContext::LookupProxyAuthCredentials(
const net::ProxyServer& proxy_server,
const std::string& auth_scheme,
@@ -2454,7 +2449,7 @@ void NetworkContext::LookupProxyAuthCredentials(
std::move(callback).Run(std::nullopt);
}
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
const net::HttpAuthPreferences* NetworkContext::GetHttpAuthPreferences() const {
return &http_auth_merged_preferences_;
@@ -2512,9 +2507,9 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
}
url_matcher_ = std::make_unique();
- url_matcher::util::AddAllowFilters(url_matcher_.get(),
- http_auth_dynamic_network_service_params
- ->patterns_allowed_to_use_all_schemes);
+ url_matcher::util::AddAllowFiltersWithLimit(
+ url_matcher_.get(), http_auth_dynamic_network_service_params
+ ->patterns_allowed_to_use_all_schemes);
http_auth_merged_preferences_.set_http_auth_scheme_filter(
base::BindRepeating(&NetworkContext::IsAllowedToUseAllHttpAuthSchemes,
base::Unretained(this)));
@@ -2594,8 +2589,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
// case for any given NetworkContext: either PrefetchProxy, handling its
// custom proxy configs, or IpProtection, using the proxy allowlist.
auto* mdl_manager = network_service_->masked_domain_list_manager();
- std::unique_ptr
- ip_protection_control_mojo;
bool requires_ipp_proxy_delegate =
mdl_manager->IsEnabled() &&
(params_->ip_protection_core_host ||
@@ -2603,15 +2596,15 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
if (requires_ipp_proxy_delegate) {
CHECK(!params_->initial_custom_proxy_config);
CHECK(!params_->custom_proxy_config_client_receiver);
+ scoped_refptr core_host_remote =
+ params_->ip_protection_core_host
+ ? base::MakeRefCounted(
+ std::move(params_->ip_protection_core_host))
+ : nullptr;
auto ip_protection_core_impl =
- std::make_unique(
- std::make_unique(
- std::move(params_->ip_protection_core_host)),
+ std::make_unique(
+ std::move(params_->ip_protection_control), core_host_remote,
mdl_manager, params_->enable_ip_protection);
- ip_protection_control_mojo =
- std::make_unique(
- std::move(params_->ip_protection_control),
- ip_protection_core_impl.get());
builder.set_proxy_delegate(
std::make_unique(
ip_protection_core_impl.get()));
@@ -2654,8 +2647,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
builder.SetCookieStore(std::move(cookie_store));
}
- if (base::FeatureList::IsEnabled(features::kPrivateStateTokens) ||
- base::FeatureList::IsEnabled(features::kFledgePst)) {
trust_token_store_ = std::make_unique();
base::FilePath trust_token_path;
@@ -2676,7 +2667,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
std::make_unique(
network_service()->trust_token_key_commitments())));
}
- }
std::unique_ptr user_agent_settings =
std::make_unique(
@@ -2700,11 +2690,11 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
}
#endif // BUILDFLAG(IS_WIN)
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS)
if (params_->dhcp_wpad_url_client) {
builder.SetDhcpWpadUrlClient(std::move(params_->dhcp_wpad_url_client));
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS)
if (!params_->http_cache_enabled) {
builder.DisableHttpCache();
@@ -2922,7 +2912,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
builder.set_cookie_deprecation_label(*params_->cookie_deprecation_label);
}
-#if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS)
if (params_->device_bound_sessions_enabled) {
builder.set_has_device_bound_session_service(true);
@@ -2940,13 +2929,12 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
}
}
}
-#endif
if (on_url_request_context_builder_configured) {
std::move(on_url_request_context_builder_configured).Run(&builder);
}
- auto result = URLRequestContextOwner(std::move(pref_service), builder.Build(),
- std::move(ip_protection_control_mojo));
+ auto result =
+ URLRequestContextOwner(std::move(pref_service), builder.Build());
// Subscribe the CertVerifier to configuration changes that are exposed via
// the mojom::SSLConfig, but which are not part of the
@@ -3137,7 +3125,7 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete(
#endif // BUILDFLAG(IS_CT_SUPPORTED)
net::TransportSecurityState::PKPStatus pin_validity =
url_request_context_->transport_security_state()->CheckPublicKeyPins(
- net::HostPortPair::FromURL(pending_cert_verify->url),
+ pending_cert_verify->url.host(),
pending_cert_verify->result->is_issued_by_known_root,
pending_cert_verify->result->public_key_hashes);
switch (pin_validity) {
@@ -3190,11 +3178,7 @@ void NetworkContext::InitializeCorsParams() {
cors_exempt_header_list_.insert(key);
}
- acam_preflight_spec_conformant_ =
- base::FeatureList::IsEnabled(
- network::features::
- kAccessControlAllowMethodsInCORSPreflightSpecConformant) &&
- params_->acam_preflight_spec_conformant;
+ acam_preflight_spec_conformant_ = params_->acam_preflight_spec_conformant;
}
void NetworkContext::FinishConstructingTrustTokenStore(
@@ -3405,6 +3389,15 @@ void NetworkContext::GetBoundNetworkForTesting(
std::move(callback).Run(url_request_context()->bound_network());
}
+void NetworkContext::GetDeviceBoundSessionManager(
+ mojo::PendingReceiver
+ device_bound_session_manager) {
+ if (device_bound_session_manager_) {
+ device_bound_session_manager_->AddReceiver(
+ std::move(device_bound_session_manager));
+ }
+}
+
bool NetworkContext::IsNetworkForNonceAndUrlAllowed(
const base::UnguessableToken& nonce,
const GURL& url) const {
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 f68e0ccf..2f88a709 100755
--- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json
+++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json
@@ -71,6 +71,21 @@
]
}
],
+ "AccessibilityDeprecateTypeAnnounce": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AccessibilityDeprecateTypeAnnounce"
+ ]
+ }
+ ]
+ }
+ ],
"AccessibilityIncludeLongClickAction": [
{
"platforms": [
@@ -135,60 +150,6 @@
]
}
],
- "AccessibilitySnapshotStressTests": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_Max3500_20231206",
- "params": {
- "AccessibilitySnapshotStressTestsMaxNodes": "3500"
- },
- "enable_features": [
- "AccessibilitySnapshotStressTests"
- ]
- },
- {
- "name": "Enabled_Max2000_20231206",
- "params": {
- "AccessibilitySnapshotStressTestsMaxNodes": "2000"
- },
- "enable_features": [
- "AccessibilitySnapshotStressTests"
- ]
- },
- {
- "name": "Enabled_Max1500_20231206",
- "params": {
- "AccessibilitySnapshotStressTestsMaxNodes": "1500"
- },
- "enable_features": [
- "AccessibilitySnapshotStressTests"
- ]
- },
- {
- "name": "Enabled_Max1000_20231206",
- "params": {
- "AccessibilitySnapshotStressTestsMaxNodes": "1000"
- },
- "enable_features": [
- "AccessibilitySnapshotStressTests"
- ]
- },
- {
- "name": "Control_NoMax_20231206",
- "params": {
- "AccessibilitySnapshotStressTestsMaxNodes": "100000"
- },
- "enable_features": [
- "AccessibilitySnapshotStressTests"
- ]
- }
- ]
- }
- ],
"AccessibilityUnifiedSnapshots": [
{
"platforms": [
@@ -222,6 +183,21 @@
]
}
],
+ "AddReferringAppInfoToProtegoPings": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AddReferringAppInfoToProtegoPings"
+ ]
+ }
+ ]
+ }
+ ],
"AddressInfobarDisplayLength": [
{
"platforms": [
@@ -380,6 +356,21 @@
]
}
],
+ "AndroidBottomToolbar": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AndroidBottomToolbar"
+ ]
+ }
+ ]
+ }
+ ],
"AndroidBrowserControlsInViz": [
{
"platforms": [
@@ -392,6 +383,7 @@
"AndroidBrowserControlsInViz"
],
"disable_features": [
+ "AndroidBcivBottomControls",
"AndroidBcivWithSimpleScheduler",
"AndroidBcivWithSuppression",
"AndroidBcivZeroBrowserFrames"
@@ -428,6 +420,8 @@
{
"name": "Enabled",
"params": {
+ "enable_bookmark_provider": "true",
+ "enable_history_provider": "true",
"enable_press_enter_to_search": "true"
},
"enable_features": [
@@ -508,6 +502,21 @@
]
}
],
+ "AndroidPdfInlineBackport": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AndroidOpenPdfInlineBackport"
+ ]
+ }
+ ]
+ }
+ ],
"AndroidSandboxRendererProcessPolicy": [
{
"platforms": [
@@ -525,7 +534,7 @@
]
}
],
- "AndroidSpareRendererCreation": [
+ "AndroidSpareRendererCreation_V2": [
{
"platforms": [
"android"
@@ -610,6 +619,7 @@
},
"enable_features": [
"AndroidTabDeclutter",
+ "AndroidTabDeclutterArchiveDuplicateTabs",
"IPH_AndroidTabDeclutter"
]
}
@@ -676,6 +686,21 @@
]
}
],
+ "AppBoundDataReencrypt": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AppBoundDataReencrypt"
+ ]
+ }
+ ]
+ }
+ ],
"AppCloseRefreshClankStudy": [
{
"platforms": [
@@ -1219,6 +1244,21 @@
]
}
],
+ "AsyncNavigationInterceptUnlaunch": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Disabled",
+ "disable_features": [
+ "AsyncNavigationIntercept"
+ ]
+ }
+ ]
+ }
+ ],
"AsyncNotiicationmanager": [
{
"platforms": [
@@ -1269,6 +1309,28 @@
]
}
],
+ "AudioInputConfirmReadsViaShmem": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "chromeos_lacros",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AudioInputConfirmReadsViaShmem"
+ ]
+ }
+ ]
+ }
+ ],
"AudioOffload": [
{
"platforms": [
@@ -1415,6 +1477,25 @@
]
}
],
+ "AutofillAddressSuggestionsOnTyping": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillAddressSuggestionsOnTyping"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillAddressUserPerceptionSurveyUS": [
{
"platforms": [
@@ -1551,21 +1632,6 @@
]
}
],
- "AutofillEnableAndroidNKeyForFidoAuthentication": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "AutofillEnableAndroidNKeyForFidoAuthentication"
- ]
- }
- ]
- }
- ],
"AutofillEnableCardBenefitsForAmericanExpress": [
{
"platforms": [
@@ -1621,42 +1687,6 @@
]
}
],
- "AutofillEnableCardBenefitsSync": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "AutofillEnableCardBenefitsSync"
- ]
- }
- ]
- }
- ],
- "AutofillEnableCvcStorage": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "AutofillEnableCvcStorageAndFilling",
- "AutofillEnableCvcStorageAndFillingEnhancement",
- "SyncAutofillWalletCredentialData"
- ]
- }
- ]
- }
- ],
"AutofillEnableDisablingSuggestionsOnJSFocus": [
{
"platforms": [
@@ -1835,6 +1865,21 @@
]
}
],
+ "AutofillEnablePaymentSettingsCardPromoAndScanCard": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillEnablePaymentSettingsCardPromoAndScanCard"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillEnablePaymentsFieldSwapping": [
{
"platforms": [
@@ -1915,26 +1960,6 @@
]
}
],
- "AutofillEnableVirtualCardOnFile": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "AutofillParseVcnCardOnFileStandaloneCvcFields",
- "SyncAutofillWalletUsageData"
- ]
- }
- ]
- }
- ],
"AutofillFixCachingOnJavaScriptChanges": [
{
"platforms": [
@@ -1979,25 +2004,6 @@
]
}
],
- "AutofillForUnclassifiedFieldsAvailable": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_AutofillForUnclassifiedFieldsAndManualFallbackIPH",
- "enable_features": [
- "AutofillEnableManualFallbackIPH",
- "AutofillForUnclassifiedFieldsAvailable"
- ]
- }
- ]
- }
- ],
"AutofillGivePrecedenceToEmailOverUsername": [
{
"platforms": [
@@ -2098,7 +2104,7 @@
]
}
],
- "AutofillI18nAddressModelNewCountries": [
+ "AutofillI18nFRAddressModel": [
{
"platforms": [
"android",
@@ -2113,18 +2119,17 @@
{
"name": "Enabled",
"enable_features": [
- "AutofillUseAUAddressModel",
- "AutofillUseCAAddressModel",
- "AutofillUseDEAddressModel"
+ "AutofillUseFRAddressModel"
]
}
]
}
],
- "AutofillImportFromAutocompleteUnrecognized": [
+ "AutofillI18nNLAddressModel": [
{
"platforms": [
"android",
+ "android_webview",
"chromeos",
"ios",
"linux",
@@ -2135,7 +2140,7 @@
{
"name": "Enabled",
"enable_features": [
- "AutofillImportFromAutocompleteUnrecognized"
+ "AutofillUseNLAddressModel"
]
}
]
@@ -2163,6 +2168,69 @@
]
}
],
+ "AutofillImprovedLabels": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_WithDifferentiatingLabelsInFront",
+ "params": {
+ "autofill_improved_labels_with_differentiating_labels_in_front": "true",
+ "autofill_improved_labels_without_main_text_changes": "false"
+ },
+ "enable_features": [
+ "AutofillImprovedLabels"
+ ]
+ },
+ {
+ "name": "Enabled",
+ "params": {
+ "autofill_improved_labels_with_differentiating_labels_in_front": "false",
+ "autofill_improved_labels_without_main_text_changes": "false"
+ },
+ "enable_features": [
+ "AutofillImprovedLabels"
+ ]
+ },
+ {
+ "name": "Enabled_WithoutMainTextChanges",
+ "params": {
+ "autofill_improved_labels_with_differentiating_labels_in_front": "false",
+ "autofill_improved_labels_without_main_text_changes": "true"
+ },
+ "enable_features": [
+ "AutofillImprovedLabels"
+ ]
+ }
+ ]
+ }
+ ],
+ "AutofillIncludeUrlInCrowdsourcing": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillIncludeUrlInCrowdsourcing"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillInferLabelFromDefaultSelectText": [
{
"platforms": [
@@ -2399,6 +2467,27 @@
]
}
],
+ "AutofillRecordCorrectionOfSelectElements": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "chromeos_lacros",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillRecordCorrectionOfSelectElements"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillSharedStorageServerCardData": [
{
"platforms": [
@@ -2439,6 +2528,27 @@
]
}
],
+ "AutofillSupportPhoneticNameForJP": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillSupportPhoneticNameForJP"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillSurveys": [
{
"platforms": [
@@ -2536,47 +2646,6 @@
]
}
],
- "AutofillUploadCardRequestTimeout": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_6point5seconds",
- "params": {
- "autofill_upload_card_request_timeout_milliseconds": "6500"
- },
- "enable_features": [
- "AutofillUploadCardRequestTimeout"
- ]
- },
- {
- "name": "Enabled_7seconds",
- "params": {
- "autofill_upload_card_request_timeout_milliseconds": "7000"
- },
- "enable_features": [
- "AutofillUploadCardRequestTimeout"
- ]
- },
- {
- "name": "Enabled_9seconds",
- "params": {
- "autofill_upload_card_request_timeout_milliseconds": "9000"
- },
- "enable_features": [
- "AutofillUploadCardRequestTimeout"
- ]
- }
- ]
- }
- ],
"AutofillUpstream": [
{
"platforms": [
@@ -2598,68 +2667,6 @@
]
}
],
- "AutofillUpstreamUpdatedUi": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_Security",
- "params": {
- "autofill_upstream_updated_ui_treatment": "1"
- },
- "enable_features": [
- "AutofillUpstreamUpdatedUi"
- ]
- }
- ]
- }
- ],
- "AutofillVcnEnrollRequestTimeout": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_5seconds",
- "params": {
- "autofill_vcn_enroll_request_timeout_milliseconds": "5000"
- },
- "enable_features": [
- "AutofillVcnEnrollRequestTimeout"
- ]
- },
- {
- "name": "Enabled_7point5seconds",
- "params": {
- "autofill_vcn_enroll_request_timeout_milliseconds": "7500"
- },
- "enable_features": [
- "AutofillVcnEnrollRequestTimeout"
- ]
- },
- {
- "name": "Enabled_10seconds",
- "params": {
- "autofill_vcn_enroll_request_timeout_milliseconds": "10000"
- },
- "enable_features": [
- "AutofillVcnEnrollRequestTimeout"
- ]
- }
- ]
- }
- ],
"AutofillVirtualViewStructureAndroid": [
{
"platforms": [
@@ -2675,6 +2682,27 @@
]
}
],
+ "AutofillVoteWhenInactive": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "chromeos_lacros",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_20241207",
+ "enable_features": [
+ "AutofillVoteWhenInactive"
+ ]
+ }
+ ]
+ }
+ ],
"AvatarsCloudMigration": [
{
"platforms": [
@@ -2793,26 +2821,6 @@
]
}
],
- "BackForwardCacheCaptureBlockingDetails": [
- {
- "platforms": [
- "android",
- "android_webview",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "RegisterJSSourceLocationBlockingBFCache"
- ]
- }
- ]
- }
- ],
"BackForwardCacheForPageWithCacheControlNotStoredHeader": [
{
"platforms": [
@@ -2955,6 +2963,26 @@
]
}
],
+ "BackForwardCacheNonStickyDoubleFix": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Holdback",
+ "disable_features": [
+ "BackForwardCacheNonStickyDoubleFix"
+ ]
+ }
+ ]
+ }
+ ],
"BackForwardCacheNotRestoredReasons": [
{
"platforms": [
@@ -2997,21 +3025,6 @@
]
}
],
- "BackForwardCache_NoMemoryLimit_Trial": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "BackForwardCache_NoMemoryLimit_Trial"
- ]
- }
- ]
- }
- ],
"BackForwardTransitions": [
{
"platforms": [
@@ -3149,7 +3162,11 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "EnabledWithMainFrameState",
+ "params": {
+ "min_site_engagement": "15",
+ "restore_main_frame_state": "true"
+ },
"enable_features": [
"BackgroundTabLoadingFromPerformanceManager"
]
@@ -3244,6 +3261,22 @@
]
}
],
+ "BatteryStatusAndPowerSavingBroadcastReceiversInBackground": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "BatteryStatusManagerBroadcastReceiverInBackground",
+ "PowerSavingModeBroadcastReceiverInBackground"
+ ]
+ }
+ ]
+ }
+ ],
"BiometricAuthPwdFillAndroid": [
{
"platforms": [
@@ -3629,40 +3662,6 @@
]
}
],
- "CPSS-V2-Android": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_20240508",
- "enable_features": [
- "PermissionDedicatedCpssSettingAndroid"
- ]
- }
- ]
- }
- ],
- "CPSS-V3": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PermissionPredictionsV3"
- ]
- }
- ]
- }
- ],
"CSSDisplayAnimation": [
{
"platforms": [
@@ -3689,11 +3688,10 @@
]
}
],
- "CSSLazyParsingFastPath": [
+ "CSSReadingFlow": [
{
"platforms": [
"android",
- "android_weblayer",
"android_webview",
"chromeos",
"linux",
@@ -3704,7 +3702,7 @@
{
"name": "Enabled",
"enable_features": [
- "CSSLazyParsingFastPath"
+ "CSSReadingFlow"
]
}
]
@@ -3957,7 +3955,6 @@
"enable_features": [
"DelayFirstPeriodicPAPurgeOrReclaim",
"DelayFirstWorkerWake",
- "InhibitLoadingStateUpdate",
"MainThreadCompositingPriority",
"QuickIntensiveWakeUpThrottlingAfterLoading",
"ReduceCookieIPCs",
@@ -3980,7 +3977,6 @@
"enable_features": [
"DelayFirstPeriodicPAPurgeOrReclaim",
"DelayFirstWorkerWake",
- "InhibitLoadingStateUpdate",
"QuickIntensiveWakeUpThrottlingAfterLoading",
"ReduceCookieIPCs",
"RunTasksByBatches",
@@ -4004,13 +4000,11 @@
"CacheMacSandboxProfiles",
"DelayFirstPeriodicPAPurgeOrReclaim",
"DelayFirstWorkerWake",
- "InhibitLoadingStateUpdate",
"MacSetDefaultTaskRole",
"MainThreadCompositingPriority",
"QuickIntensiveWakeUpThrottlingAfterLoading",
"ReduceCookieIPCs",
"RunTasksByBatches",
- "SkipConditionVariableWakeupHack",
"UseCompositorJob"
],
"disable_features": [
@@ -4032,7 +4026,6 @@
"DelayFirstPeriodicPAPurgeOrReclaim",
"DelayFirstWorkerWake",
"ExplicitHighResolutionTimerWin",
- "InhibitLoadingStateUpdate",
"MainThreadCompositingPriority",
"QuickIntensiveWakeUpThrottlingAfterLoading",
"ReduceCookieIPCs",
@@ -4046,24 +4039,6 @@
]
}
],
- "CbdTimeframeRequired": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CbdTimeframeRequired"
- ]
- }
- ]
- }
- ],
"CctClientDataHeader": [
{
"platforms": [
@@ -4123,51 +4098,6 @@
]
}
],
- "ChangeDiskCacheSize": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "percent_relative_size": "400"
- },
- "enable_features": [
- "ChangeDiskCacheSize"
- ]
- }
- ]
- }
- ],
- "ChangeFrameRateOfLoadingTabAnimation": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "EnabledWith67msFrameDelay",
- "params": {
- "loading_tab_animation_frame_delay": "67ms"
- },
- "enable_features": [
- "ChangeFrameRateOfLoadingTabAnimation"
- ]
- }
- ]
- }
- ],
"CheckHTMLParserBudgetLessOften": [
{
"platforms": [
@@ -4257,25 +4187,6 @@
]
}
],
- "ChromeOSARCVMAppRescue": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "EnabledGroupMedium_20221212",
- "params": {
- "interval": "30000",
- "swappiness": "0"
- },
- "enable_features": [
- "ArcMglruReclaim"
- ]
- }
- ]
- }
- ],
"ChromeOSARCVMLmkPerceptibleMinState": [
{
"platforms": [
@@ -4335,6 +4246,21 @@
]
}
],
+ "ChromeOSAssistantNewEntryPoint": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ChromeOSEnableNewEntryPoint"
+ ]
+ }
+ ]
+ }
+ ],
"ChromeOSBoostUrgentVariables": [
{
"platforms": [
@@ -4358,6 +4284,21 @@
]
}
],
+ "ChromeOSEnterpriseEventBasedLogUpload": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EventBasedLogUpload"
+ ]
+ }
+ ]
+ }
+ ],
"ChromeOSGrowthFramework": [
{
"platforms": [
@@ -4936,13 +4877,29 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "Holdback",
"enable_features": [
- "WelcomeTourV2"
+ "WelcomeTourHoldbackArm"
],
"disable_features": [
"WelcomeTourCounterfactualArm",
- "WelcomeTourHoldbackArm"
+ "WelcomeTourV2",
+ "WelcomeTourV3"
+ ]
+ }
+ ]
+ }
+ ],
+ "ChromeRefreshTokenBinding": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableChromeRefreshTokenBinding"
]
}
]
@@ -5119,8 +5076,8 @@
"event_trigger": "name:lens_overlay_iph_triggered;comparator:any;window:90;storage:365",
"event_used": "name:lens_overlay_used;comparator:==0;window:90;storage:365",
"session_rate": "==0",
- "x_url_allow_filters": "%5B%22facebook%2Ecom%22%2C%22web%2Ewhatsapp%2Ecom%22%2C%22instagram%2Ecom%22%2C%22x%2Ecom%22%2C%22twitter%2Ecom%22%2C%22reddit%2Ecom%22%2C%22tiktok%2Ecom%22%2C%22pinterest%2Ecom%22%2C%22quora%2Ecom%22%2C%22youtube%2Ecom%2Fshorts%22%5D",
- "x_url_block_filters": "%5B%22facebook%2Ecom%2Flogin%22%2C%22x%2Ecom%2Flogin%22%2C%22instagram%2Ecom%2Faccounts%2Flogin%22%2C%22reddit%2Ecom%2Flogin%22%2C%22tiktok%2Ecom%2Flogin%22%2C%22pinterest%2Ecom%2Flogin%22%2C%22amazon%2Ecom%2Fap%2Fsignin%22%5D",
+ "x_url_allow_filters": "[\"facebook.com\",\"web.whatsapp.com\",\"instagram.com\",\"x.com\",\"twitter.com\",\"reddit.com\",\"tiktok.com\",\"pinterest.com\",\"quora.com\",\"youtube.com/shorts\"]",
+ "x_url_block_filters": "[\"facebook.com/login\",\"x.com/login\",\"instagram.com/accounts/login\",\"reddit.com/login\",\"tiktok.com/login\",\"pinterest.com/login\",\"amazon.com/ap/signin\"]",
"x_wait_time": "7s"
},
"enable_features": [
@@ -5130,29 +5087,6 @@
]
}
],
- "ChromnientImageContextMenuActions": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "CopyAndSaveAsImageEnabled",
- "params": {
- "enable-copy-as-image": "true",
- "enable-save-as-image": "true",
- "text-received-timeout": "2000"
- },
- "enable_features": [
- "LensOverlayImageContextMenuActions"
- ]
- }
- ]
- }
- ],
"ChromnientLatencyOptimizations": [
{
"platforms": [
@@ -5273,6 +5207,32 @@
"android"
],
"experiments": [
+ {
+ "name": "Enabled_DecayStairCase_Cap10_Disabled_RepeatableQueries",
+ "params": {
+ "daily_visit_count_cap": "10",
+ "recency_factor": "decay_staircase"
+ },
+ "enable_features": [
+ "MostVisitedTilesNewScoring"
+ ],
+ "disable_features": [
+ "OrganicRepeatableQueries"
+ ]
+ },
+ {
+ "name": "Enabled_Decay_Cap1_Disabled_RepeatableQueries",
+ "params": {
+ "daily_visit_count_cap": "1",
+ "recency_factor": "decay"
+ },
+ "enable_features": [
+ "MostVisitedTilesNewScoring"
+ ],
+ "disable_features": [
+ "OrganicRepeatableQueries"
+ ]
+ },
{
"name": "Enabled_DecayStairCase_Cap10",
"params": {
@@ -5288,76 +5248,6 @@
"disable_features": [
"OrganicRepeatableQueries"
]
- },
- {
- "name": "Enabled_DecayStairCase_Cap10_Disabled_RepeatableQueries",
- "params": {
- "daily_visit_count_cap": "10",
- "recency_factor": "decay_staircase"
- },
- "enable_features": [
- "MostVisitedTilesNewScoring"
- ],
- "disable_features": [
- "OrganicRepeatableQueries"
- ]
- }
- ]
- }
- ],
- "ClankMostVisitedTilesReselect": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_PartialMatch_Arm3",
- "params": {
- "lax_path": "true",
- "lax_query": "true",
- "lax_ref": "true",
- "lax_scheme_host": "true"
- },
- "enable_features": [
- "MostVisitedTilesReselect"
- ]
- },
- {
- "name": "Enabled_PartialMatch_Arm2",
- "params": {
- "lax_path": "false",
- "lax_query": "true",
- "lax_ref": "true",
- "lax_scheme_host": "true"
- },
- "enable_features": [
- "MostVisitedTilesReselect"
- ]
- },
- {
- "name": "Enabled_PartialMatch_Arm1",
- "params": {
- "lax_path": "false",
- "lax_query": "false",
- "lax_ref": "true",
- "lax_scheme_host": "true"
- },
- "enable_features": [
- "MostVisitedTilesReselect"
- ]
- },
- {
- "name": "Enabled_ExactMatch",
- "params": {
- "lax_path": "false",
- "lax_query": "false",
- "lax_ref": "false",
- "lax_scheme_host": "false"
- },
- "enable_features": [
- "MostVisitedTilesReselect"
- ]
}
]
}
@@ -5414,53 +5304,6 @@
]
}
],
- "ClassifyUrlOnProcessResponseEventAndroid": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ClassifyUrlOnProcessResponseEvent"
- ]
- }
- ]
- }
- ],
- "ClassifyUrlOnProcessResponseEventChromeOs": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ClassifyUrlOnProcessResponseEvent"
- ]
- }
- ]
- }
- ],
- "ClassifyUrlOnProcessResponseEventLinuxMacAndWindows": [
- {
- "platforms": [
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ClassifyUrlOnProcessResponseEvent"
- ]
- }
- ]
- }
- ],
"ClayBlocking": [
{
"platforms": [
@@ -5537,6 +5380,28 @@
]
}
],
+ "ClickToCapturedPointer": [
+ {
+ "platforms": [
+ "android",
+ "android_weblayer",
+ "android_webview",
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ClickToCapturedPointer"
+ ]
+ }
+ ]
+ }
+ ],
"ClientSideDetectionAcceptHCAllowlist": [
{
"platforms": [
@@ -5556,6 +5421,23 @@
]
}
],
+ "ClientSideDetectionBrandAndIntentForScamDetection": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ClientSideDetectionBrandAndIntentForScamDetection"
+ ]
+ }
+ ]
+ }
+ ],
"ClientSideDetectionRetryLimit": [
{
"platforms": [
@@ -5597,6 +5479,23 @@
]
}
],
+ "ClientSideDetectionShowScamVerdictWarning": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ClientSideDetectionShowScamVerdictWarning"
+ ]
+ }
+ ]
+ }
+ ],
"ClipboardDeemphasisAndroid": [
{
"platforms": [
@@ -5985,10 +5884,8 @@
{
"name": "Enabled",
"params": {
- "prob": "0.1",
- "survey_cycle_length": "7",
- "survey_start_date_ms": "1729580400000",
- "trigger_id": "44m1DgehL0ugnJ3q1cK0Qih71MRQ"
+ "en_site_id": "44m1DgehL0ugnJ3q1cK0Qih71MRQ",
+ "probability": "0.1"
},
"enable_features": [
"HappinessTrackingSurveysForComposeAcceptance"
@@ -6008,10 +5905,8 @@
{
"name": "Enabled",
"params": {
- "prob": "0.1",
- "survey_cycle_length": "7",
- "survey_start_date_ms": "1729580400000",
- "trigger_id": "mT2d9fiNR0ugnJ3q1cK0SdAewrT2"
+ "en_site_id": "mT2d9fiNR0ugnJ3q1cK0SdAewrT2",
+ "probability": "0.1"
},
"enable_features": [
"HappinessTrackingSurveysForComposeClose"
@@ -6081,7 +5976,6 @@
"proactive_nudge_show_probability": "0.02"
},
"enable_features": [
- "AutofillCaretExtraction",
"ComposeProactiveNudge",
"EnableComposeNudgeAtCursor"
]
@@ -6287,7 +6181,13 @@
"name": "Enabled_Teamfood",
"params": {
"file-upload-limit-bytes": "200000000",
- "use-pdfs-as-context": "true"
+ "send-page-url-for-contextualization": "true",
+ "use-inner-text-as-context": "true",
+ "use-pdf-interaction-type": "true",
+ "use-pdf-vit-param": "true",
+ "use-pdfs-as-context": "true",
+ "use-webpage-interaction-type": "true",
+ "use-webpage-vit-param": "true"
},
"enable_features": [
"LensOverlayContextualSearchbox"
@@ -6462,36 +6362,6 @@
]
}
],
- "CrOSBluetoothCoredump": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled_Coredump",
- "enable_features": [
- "BluetoothCoredump"
- ]
- }
- ]
- }
- ],
- "CrOSBluetoothFlossCoredump": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "BluetoothFlossCoredump"
- ]
- }
- ]
- }
- ],
"CrOSBluetoothFlossTelephony": [
{
"platforms": [
@@ -6507,6 +6377,18 @@
]
}
],
+ "CrOSBluetoothLLPrivacy": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Preperiod_Enabled_NonDogfood"
+ }
+ ]
+ }
+ ],
"CrOSEnforceSystemAec": [
{
"platforms": [
@@ -6636,36 +6518,6 @@
]
}
],
- "CrOSLateBootAudioHFPOffload": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled_20220520",
- "enable_features": [
- "CrOSLateBootAudioHFPOffload"
- ]
- }
- ]
- }
- ],
- "CrOSLateBootAudioOffloadCrasDSPToSOF": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled_20240421",
- "enable_features": [
- "CrOSLateBootAudioOffloadCrasDSPToSOF"
- ]
- }
- ]
- }
- ],
"CrOSLateBootAudioStyleTransferStudy": [
{
"platforms": [
@@ -6781,9 +6633,11 @@
],
"experiments": [
{
- "name": "EnabledEarlyDiscard_20241031",
+ "name": "EnabledEarlyDiscardConservative4h_20241205",
"params": {
"CompleteStallMs": "700",
+ "MaxLastVisibleDurationSeconds": "14400",
+ "MinLastVisibleDurationSeconds": "14400",
"PartialStallMs": "20",
"VmmmsReclaimProportion": "0"
},
@@ -7166,22 +7020,6 @@
]
}
],
- "CursorAnchorInfoMojoPipe": [
- {
- "platforms": [
- "android",
- "android_webview"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CursorAnchorInfoMojoPipe"
- ]
- }
- ]
- }
- ],
"CustomizeChromeSidePanelExtensionsCard": [
{
"platforms": [
@@ -7520,6 +7358,7 @@
"DefaultPassthroughCommandDecoder": [
{
"platforms": [
+ "android",
"android_webview"
],
"experiments": [
@@ -7534,26 +7373,6 @@
]
}
]
- },
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "passthrough_ON_drdc_OFF_20241022",
- "params": {
- "BlockListByDevice": "",
- "BlockListByModel": ""
- },
- "enable_features": [
- "DefaultPassthroughCommandDecoder"
- ],
- "disable_features": [
- "EnableDrDc"
- ]
- }
- ]
}
],
"DeferConciergeStartup": [
@@ -7583,9 +7402,9 @@
],
"experiments": [
{
- "name": "Enabled_AllDeferrableTypes",
+ "name": "Enabled_AllTypes_20241204",
"params": {
- "policy": "all-deferrable-types"
+ "policy": "all-types"
},
"enable_features": [
"DeferRendererTasksAfterInput"
@@ -7731,21 +7550,6 @@
]
}
],
- "DeskBarWindowOcclusionOptimization": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "DeskBarWindowOcclusionOptimization"
- ]
- }
- ]
- }
- ],
"DeskButton": [
{
"platforms": [
@@ -8076,24 +7880,6 @@
]
}
],
- "DesktopWebAppUniversalInstallExperiment": [
- {
- "platforms": [
- "linux",
- "mac",
- "windows",
- "chromeos"
- ],
- "experiments": [
- {
- "name": "WebAppUniversalInstallExperiment",
- "enable_features": [
- "WebAppUniversalInstall"
- ]
- }
- ]
- }
- ],
"DestroySystemProfiles": [
{
"platforms": [
@@ -8132,72 +7918,6 @@
]
}
],
- "DevToolsAiAssistanceFileAgentDogfood": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_Dogfood",
- "params": {
- "aida_model_id": "codey_gemit_mpp_streaming",
- "aida_temperature": "0"
- },
- "enable_features": [
- "DevToolsAiAssistanceFileAgentDogfood"
- ]
- }
- ]
- }
- ],
- "DevToolsAiAssistancePerformanceAgentDogfood": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_Dogfood",
- "params": {
- "aida_model_id": "codey_gemit_mpp_streaming",
- "aida_temperature": "0"
- },
- "enable_features": [
- "DevToolsAiAssistancePerformanceAgentDogfood"
- ]
- }
- ]
- }
- ],
- "DevToolsExplainThisResourceDogfood": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_Dogfood",
- "params": {
- "aida_model_id": "codey_gemit_mpp_streaming",
- "aida_temperature": "0"
- },
- "enable_features": [
- "DevToolsExplainThisResourceDogfood"
- ]
- }
- ]
- }
- ],
"DeviceIdValidation": [
{
"platforms": [
@@ -8322,6 +8042,21 @@
]
}
],
+ "DisableGeoLanguageModel": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "DisableGeoLanguageModel"
+ ]
+ }
+ ]
+ }
+ ],
"DisableGles2ForOopR": [
{
"platforms": [
@@ -8437,24 +8172,6 @@
]
}
],
- "DiscardFrozenBrowsingInstancesWithGrowingPMF": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "DiscardFrozenBrowsingInstancesWithGrowingPMF"
- ]
- }
- ]
- }
- ],
"DiscardInputEventsToRecentlyMovedFrames": [
{
"platforms": [
@@ -8821,7 +8538,9 @@
{
"name": "Enabled_WebOptInAndKeyNativePages_131",
"params": {
- "disable_bottom_controls_stacker_y_offset": "false"
+ "disable_bottom_controls_stacker_y_offset": "false",
+ "e2e_field_trial_oem_list": "oppo,xiaomi",
+ "e2e_field_trial_oem_min_versions": "34,34"
},
"enable_features": [
"BottomBrowserControlsRefactor",
@@ -8937,40 +8656,6 @@
]
}
],
- "EnableBackForwardCacheForOngoingSubframeNavigation": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_20240305",
- "enable_features": [
- "EnableBackForwardCacheForOngoingSubframeNavigation"
- ]
- }
- ]
- }
- ],
- "EnableBatchUploadFromSettings": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "EnableBatchUploadFromSettings"
- ]
- }
- ]
- }
- ],
"EnableCertManagementUIV2": [
{
"platforms": [
@@ -9203,6 +8888,38 @@
]
}
],
+ "EnableLazyLoadImageForInvisiblePage": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_AllInvisiblePage",
+ "params": {
+ "enabled_page_type": "all_invisible_page"
+ },
+ "enable_features": [
+ "EnableLazyLoadImageForInvisiblePage"
+ ]
+ },
+ {
+ "name": "Enabled_PrerenderPage",
+ "params": {
+ "enabled_page_type": "prerender_page"
+ },
+ "enable_features": [
+ "EnableLazyLoadImageForInvisiblePage"
+ ]
+ }
+ ]
+ }
+ ],
"EnableMainFrameOnlyADPFRendererMain": [
{
"platforms": [
@@ -9311,16 +9028,19 @@
]
}
],
- "EnableReportingFromUnmanagedDevices": [
+ "EnablePolicyPromotionBanner": [
{
"platforms": [
- "chromeos"
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "EnableReportingFromUnmanagedDevices"
+ "EnablePolicyPromotionBanner"
]
}
]
@@ -9356,6 +9076,26 @@
]
}
],
+ "EnableTLS13EarlyData": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableTLS13EarlyData"
+ ]
+ }
+ ]
+ }
+ ],
"EnableTcpPortRandomization": [
{
"platforms": [
@@ -9419,10 +9159,11 @@
]
}
],
- "EnterprisePasswordReuseUiRefresh": [
+ "EnterpriseFileObfuscation": [
{
"platforms": [
"chromeos",
+ "chromeos_lacros",
"linux",
"mac",
"windows"
@@ -9431,22 +9172,24 @@
{
"name": "Enabled",
"enable_features": [
- "EnterprisePasswordReuseUiRefresh"
+ "EnterpriseFileObfuscation"
]
}
]
}
],
- "EphemeralCCT": [
+ "EnterpriseUpdatedProfileCreationScreen": [
{
"platforms": [
- "android"
+ "linux",
+ "mac",
+ "windows"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "CCTEphemeralMode"
+ "EnterpriseUpdatedProfileCreationScreen"
]
}
]
@@ -9473,6 +9216,25 @@
]
}
],
+ "EsbAsASyncedSetting": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EsbAsASyncedSetting"
+ ]
+ }
+ ]
+ }
+ ],
"EscapeLtGtInAttributes": [
{
"platforms": [
@@ -9494,6 +9256,28 @@
]
}
],
+ "EventTimingIgnorePresentationTimeFromUnexpectedFrameSource": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "chromeos_lacros",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EventTimingIgnorePresentationTimeFromUnexpectedFrameSource"
+ ]
+ }
+ ]
+ }
+ ],
"EventTimingSelectionAutoScrollNoInteractionId": [
{
"platforms": [
@@ -9517,26 +9301,6 @@
]
}
],
- "EvictionThrottlesDraw": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "EvictionThrottlesDraw"
- ]
- }
- ]
- }
- ],
"ExpandCompositedCullRect": [
{
"platforms": [
@@ -9634,6 +9398,23 @@
]
}
],
+ "ExtensionManifestV3NetworkSpeechSynthesis": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ExtensionManifestV3NetworkSpeechSynthesis"
+ ]
+ }
+ ]
+ }
+ ],
"ExtensionsServiceWorkerOptimizedEventDispatch": [
{
"platforms": [
@@ -9652,6 +9433,24 @@
]
}
],
+ "ExtensionsToolbarAndMenuRedesign": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ExtensionsMenuAccessControl"
+ ]
+ }
+ ]
+ }
+ ],
"ExternalBeginFrameSourceWinUsesRunOrPostTask": [
{
"platforms": [
@@ -9762,21 +9561,6 @@
]
}
],
- "FeedDynamicColors": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "FeedDynamicColors"
- ]
- }
- ]
- }
- ],
"FeedLoadingPlaceholder": [
{
"platforms": [
@@ -9828,6 +9612,21 @@
]
}
],
+ "FeedRecyclerBinderUnmountOnDetach": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FeedRecyclerBinderUnmountOnDetach"
+ ]
+ }
+ ]
+ }
+ ],
"FeedSignedOutViewDemotion": [
{
"platforms": [
@@ -9843,6 +9642,23 @@
]
}
],
+ "FeedbackIncludeVariations": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FeedbackIncludeVariations"
+ ]
+ }
+ ]
+ }
+ ],
"FencedFramesEnableCredentialsForAutomaticBeacons": [
{
"platforms": [
@@ -9961,23 +9777,6 @@
]
}
],
- "FetchListFamilyMembersWithCapability": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "FetchListFamilyMembersWithCapability"
- ]
- }
- ]
- }
- ],
"FindRegistrationImprovements": [
{
"platforms": [
@@ -9991,11 +9790,9 @@
{
"name": "EnableAll_20231004",
"enable_features": [
- "ServiceWorkerFetchResponseCallbackUseHighPriority",
"ServiceWorkerMergeFindRegistrationForClientUrl",
"ServiceWorkerRegistrationCache",
- "ServiceWorkerScopeCache",
- "ServiceWorkerStorageControlResponseUseHighPriority"
+ "ServiceWorkerScopeCache"
]
}
]
@@ -10011,10 +9808,11 @@
],
"experiments": [
{
- "name": "Enabled_DryRun_20240729_Dogfood",
+ "name": "Enabled_20241119_Dogfood",
"params": {
- "activation_level": "dry_run",
- "enable_only_if_3pc_blocked": "false"
+ "activation_level": "enabled",
+ "enable_only_if_3pc_blocked": "false",
+ "performance_measurement_rate": "1.0"
},
"enable_features": [
"EnableFingerprintingProtectionFilter"
@@ -10023,19 +9821,32 @@
"FingerprintingProtectionSetting",
"FingerprintingProtectionUx"
]
- },
+ }
+ ]
+ }
+ ],
+ "FlattenCpuCgroups": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
{
- "name": "Enabled",
+ "name": "EnabledWithFlattenCpuCgroups",
"params": {
- "activation_level": "dry_run",
- "enable_only_if_3pc_blocked": "false"
+ "unified_cpu_cgroup": "false"
},
"enable_features": [
- "EnableFingerprintingProtectionFilter"
- ],
- "disable_features": [
- "FingerprintingProtectionSetting",
- "FingerprintingProtectionUx"
+ "FlattenCpuCgroups"
+ ]
+ },
+ {
+ "name": "EnabledWithUnifiedCpuCgroup",
+ "params": {
+ "unified_cpu_cgroup": "true"
+ },
+ "enable_features": [
+ "FlattenCpuCgroups"
]
}
]
@@ -10056,6 +9867,22 @@
]
}
],
+ "FluentScrollbar": [
+ {
+ "platforms": [
+ "linux",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FluentScrollbar"
+ ]
+ }
+ ]
+ }
+ ],
"FlushPersistentSystemProfileOnWrite": [
{
"platforms": [
@@ -10126,6 +9953,33 @@
]
}
],
+ "FontDataService": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "DWrite_Enabled",
+ "params": {
+ "typeface": "DWrite"
+ },
+ "enable_features": [
+ "FontDataService"
+ ]
+ },
+ {
+ "name": "Internal_Enabled",
+ "params": {
+ "typeface": "Internal"
+ },
+ "enable_features": [
+ "FontDataService"
+ ]
+ }
+ ]
+ }
+ ],
"FontationsFontBackend": [
{
"platforms": [
@@ -10147,16 +10001,16 @@
]
}
],
- "ForceMigrateSyncingUserToSignedIn": [
+ "ForceSupervisedSigninWithCapabilities": [
{
"platforms": [
- "ios"
+ "android"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "ForceMigrateSyncingUserToSignedIn"
+ "ForceSupervisedSigninWithCapabilities"
]
}
]
@@ -10382,25 +10236,7 @@
{
"name": "Enabled",
"enable_features": [
- "GifRecording",
- "NotificationImageDrag"
- ]
- }
- ]
- }
- ],
- "GlobalMediaControlsUpdatedUI": [
- {
- "platforms": [
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "GlobalMediaControlsUpdatedUI"
+ "GifRecording"
]
}
]
@@ -10421,24 +10257,6 @@
]
}
],
- "GoogleLensDesktopContentMenuTranslate": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "LensEnableImageTranslate"
- ]
- }
- ]
- }
- ],
"GoogleLensDesktopImageFormatOptimizations": [
{
"platforms": [
@@ -10621,6 +10439,33 @@
]
}
],
+ "GranitePermissionsHaTS": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "GeoSurvey_20241211",
+ "params": {
+ "probability": "0.3",
+ "prompt_disposition_filter": "AnchoredBubble",
+ "prompt_disposition_reason_filter": "DefaultFallback",
+ "request_type_filter": "Geolocation",
+ "survey_display_time": "OnPromptResolved",
+ "trigger_id": "gqeUMMLT20ugnJ3q1cK0NWHyGuSi"
+ },
+ "enable_features": [
+ "PermissionsPromptSurvey"
+ ]
+ }
+ ]
+ }
+ ],
"GroupedHistoryAllLocales": [
{
"platforms": [
@@ -11096,27 +10941,6 @@
]
}
],
- "HatsPrivacyHubPostLaunch": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled_20231027",
- "params": {
- "prob": "0.05",
- "survey_cycle_length": "7",
- "survey_start_date_ms": "1693296065000",
- "trigger_id": "pmx19g6jw0jBnuKU19R0PK8xn3Ge"
- },
- "enable_features": [
- "HappinessTrackingPrivacyHubPostLaunch"
- ]
- }
- ]
- }
- ],
"HatsSmartUnlock": [
{
"platforms": [
@@ -11219,47 +11043,6 @@
]
}
],
- "HistoryEmbeddings": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "AnswersInOmniboxScoped": "true",
- "ContentVisibilityThreshold": "0.0",
- "EnableSidePanel": "true",
- "OmniboxScoped": "true",
- "SearchPassageMinimumWordCount": "5",
- "SearchQueryMinimumWordCount": "2",
- "SendQualityLog": "true",
- "SendQualityLogV2": "true",
- "TrimAfterHostInResults": "true",
- "UseMlAnswerer": "true",
- "WordMatchLimit": "5",
- "WordMatchMaxTermCount": "10",
- "WordMatchMinEmbeddingScore": "0.7",
- "WordMatchMinTermLength": "0",
- "WordMatchRequiredTermRatio": "1.0",
- "WordMatchScoreBoostFactor": "0.2",
- "WordMatchSmoothingFactor": "0",
- "allow_unsigned_user": "true",
- "enable_feature_when_main_toggle_on": "false"
- },
- "enable_features": [
- "HistoryEmbeddings",
- "HistoryEmbeddingsAnswers",
- "HistorySearchSettingsVisibility"
- ]
- }
- ]
- }
- ],
"HistorySyncAlternativeIllustration": [
{
"platforms": [
@@ -11431,26 +11214,6 @@
]
}
],
- "IOSAcquisitionOnDesktopPromo": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "EnabledPromosGroup_2024_10_24",
- "enable_features": [
- "IOSPromoAddressBubble",
- "IOSPromoPaymentBubble",
- "IOSPromoRefreshedPasswordBubble"
- ]
- }
- ]
- }
- ],
"IOSAutofillAcrossIframes": [
{
"platforms": [
@@ -11482,6 +11245,43 @@
]
}
],
+ "IOSAutofillThrottleDocumentFormScan": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_With500msPeriod",
+ "params": {
+ "period-ms": "500"
+ },
+ "enable_features": [
+ "AutofillThrottleDocumentFormScanForceFirstScanIos",
+ "AutofillThrottleDocumentFormScanIos"
+ ]
+ }
+ ]
+ }
+ ],
+ "IOSAutofillThrottleFilteredDocumentFormScan": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_With250msPeriod",
+ "params": {
+ "period-ms": "250"
+ },
+ "enable_features": [
+ "AutofillThrottleFilteredDocumentFormScan"
+ ]
+ }
+ ]
+ }
+ ],
"IOSBackgroundPasteboardAccess": [
{
"platforms": [
@@ -11845,6 +11645,21 @@
]
}
],
+ "IOSIncognitoSoftLock": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "IOSSoftLock"
+ ]
+ }
+ ]
+ }
+ ],
"IOSInternalAdditionalFeaturesSwitch": [
{
"platforms": [
@@ -11860,6 +11675,36 @@
]
}
],
+ "IOSInterruptibleCoordinatorAlwaysDismissed": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "IOSInterruptibleCoordinatorAlwaysDismissed",
+ "enable_features": [
+ "IOSInterruptibleCoordinatorAlwaysDismissed"
+ ]
+ }
+ ]
+ }
+ ],
+ "IOSInterruptibleCoordinatorStoppedSynchronously": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "IOSInterruptibleCoordinatorStoppedSynchronously",
+ "enable_features": [
+ "IOSInterruptibleCoordinatorStoppedSynchronously"
+ ]
+ }
+ ]
+ }
+ ],
"IOSKeepsRenderProcessAlive": [
{
"platforms": [
@@ -11942,6 +11787,21 @@
]
}
],
+ "IOSNewFeedPositioningStudy": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "IOSNewFeedPositioning"
+ ]
+ }
+ ]
+ }
+ ],
"IOSNewSyncOptInIllustration": [
{
"platforms": [
@@ -12009,7 +11869,19 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "Enabled_8",
+ "params": {
+ "brp-extra-extras-size": "8"
+ },
+ "enable_features": [
+ "PartitionAllocBackupRefPtr"
+ ]
+ },
+ {
+ "name": "Enabled_24",
+ "params": {
+ "brp-extra-extras-size": "24"
+ },
"enable_features": [
"PartitionAllocBackupRefPtr"
]
@@ -12032,30 +11904,6 @@
]
}
],
- "IOSPriceInsightsContextualPanel": [
- {
- "platforms": [
- "ios"
- ],
- "experiments": [
- {
- "name": "BigBubbleBlueEntrypointHighPrice_CanaryDev",
- "params": {
- "LowPriceStringParam": "GoodDealNow",
- "entrypoint-highlight-iph": "true",
- "entrypoint-rich-iph": "true"
- },
- "enable_features": [
- "ContextualPanel",
- "PriceInsights",
- "PriceInsightsHighPrice",
- "PriceInsightsIos",
- "RichBubbleWithoutImage"
- ]
- }
- ]
- }
- ],
"IOSProactivePasswordGenerationBottomSheet": [
{
"platforms": [
@@ -12131,6 +11979,57 @@
]
}
],
+ "IOSSetUpListInFirstRun": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "params": {
+ "SetUpListInFirstRunParam": "1"
+ },
+ "enable_features": [
+ "SetUpListInFirstRun"
+ ]
+ }
+ ]
+ }
+ ],
+ "IOSSetUpListShortenedDuration": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "params": {
+ "SetUpListDurationParam": "3"
+ },
+ "enable_features": [
+ "SetUpListShortenedDuration"
+ ]
+ }
+ ]
+ }
+ ],
+ "IOSSetUpListWithoutSignInItem": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SetUpListWithoutSignInItem"
+ ]
+ }
+ ]
+ }
+ ],
"IOSSharedHighlightingColorChange": [
{
"platforms": [
@@ -12179,6 +12078,25 @@
]
}
],
+ "IOSStartTimeBrowserBackgroundRemediations": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledWithUpdateFeedRefresh",
+ "params": {
+ "ios-startup-remediations-avoid-ntp-cleanup": "false",
+ "ios-startup-remediations-update-feed-refresh": "true"
+ },
+ "enable_features": [
+ "IOSStartTimeBrowserBackgroundRemediations"
+ ]
+ }
+ ]
+ }
+ ],
"IOSStartTimeStartupRemediations": [
{
"platforms": [
@@ -12323,6 +12241,24 @@
]
}
],
+ "IOSUpdateFirstRunSequence": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledWithDBPromoFirstAndSignInRemoved",
+ "params": {
+ "updated-first-run-sequence-param": "3"
+ },
+ "enable_features": [
+ "UpdatedFirstRunSequence"
+ ]
+ }
+ ]
+ }
+ ],
"IOSUseUserDefaultsForExitedCleanlyBeacon": [
{
"platforms": [
@@ -12534,24 +12470,6 @@
]
}
],
- "ImprovedSemanticsActivityIndicators": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ImprovedSemanticsActivityIndicators"
- ]
- }
- ]
- }
- ],
"IncognitoScreenshot": [
{
"platforms": [
@@ -12610,6 +12528,42 @@
]
}
],
+ "InitImageDecodeLastUseTime": [
+ {
+ "platforms": [
+ "android",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "InitImageDecodeLastUseTime"
+ ]
+ }
+ ]
+ }
+ ],
+ "InlineFullscreenPerfExperiment": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "InlineFullscreenPerfExperiment"
+ ]
+ }
+ ]
+ }
+ ],
"InputDeviceSettingsSplit": [
{
"platforms": [
@@ -12771,14 +12725,33 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "Enabled_15",
"params": {
- "jump_start_max_away_time_minutes": "960",
- "jump_start_memory_threshold_kb": "2097152",
- "jump_start_min_away_time_minutes": "120"
+ "jump_start_min_away_time_minutes": "15"
},
"enable_features": [
- "JumpStartOmnibox"
+ "JumpStartOmnibox",
+ "LocalHistoryZeroSuggestBeyondNTP"
+ ]
+ },
+ {
+ "name": "Enabled_30",
+ "params": {
+ "jump_start_min_away_time_minutes": "30"
+ },
+ "enable_features": [
+ "JumpStartOmnibox",
+ "LocalHistoryZeroSuggestBeyondNTP"
+ ]
+ },
+ {
+ "name": "Enabled_60",
+ "params": {
+ "jump_start_min_away_time_minutes": "60"
+ },
+ "enable_features": [
+ "JumpStartOmnibox",
+ "LocalHistoryZeroSuggestBeyondNTP"
]
}
]
@@ -12922,39 +12895,6 @@
]
}
],
- "KeyboardAccessoryUpgrade": [
- {
- "platforms": [
- "ios"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "IOSKeyboardAccessoryUpgrade"
- ]
- }
- ]
- }
- ],
- "KeyboardAndPointerLockPrompt": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "KeyboardAndPointerLockPrompt"
- ]
- }
- ]
- }
- ],
"KeyboardFocusableScrollers": [
{
"platforms": [
@@ -12982,6 +12922,21 @@
]
}
],
+ "KeyboardUsedPalmSuppression": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableKeyboardUsedPalmSuppression"
+ ]
+ }
+ ]
+ }
+ ],
"KidsProfilePhase2": [
{
"platforms": [
@@ -12994,13 +12949,27 @@
"name": "Enabled",
"enable_features": [
"CustomProfileStringsForSupervisedUsers",
- "ForceSafeSearchForUnauthenticatedSupervisedUsers",
- "ForceSupervisedUserReauthenticationForBlockedSites",
- "ForceSupervisedUserReauthenticationForYouTube",
- "HideGuestModeForSupervisedUsers",
"IPH_SupervisedUserProfileSignin",
- "ShowKiteForSupervisedUsers",
- "UncredentialedFilteringFallbackForSupervisedUsers"
+ "ShowKiteForSupervisedUsers"
+ ]
+ }
+ ]
+ }
+ ],
+ "KillSpareRenderOnMemoryPressure": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "KillSpareRenderOnMemoryPressure"
]
}
]
@@ -13151,54 +13120,6 @@
]
}
],
- "LCPPMultipleKey": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "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"
- ]
- }
- ]
- }
- ],
"LCPPPrefetchSubresource": [
{
"platforms": [
@@ -13238,6 +13159,42 @@
]
}
],
+ "LanguageDetectionAPI": [
+ {
+ "platforms": [
+ "android_webview",
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Disabled",
+ "disable_features": [
+ "LanguageDetectionAPI"
+ ]
+ }
+ ]
+ }
+ ],
+ "LargeCapacityInSnapshotLRUCache": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "LargeCapacityInSnapshotLRUCache"
+ ]
+ }
+ ]
+ }
+ ],
"LauncherGameSearchStudy": [
{
"platforms": [
@@ -13403,28 +13360,6 @@
]
}
],
- "LinkedServicesSetting": [
- {
- "platforms": [
- "android",
- "chromeos",
- "fuchsia",
- "linux",
- "ios",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "LinkedServicesSetting",
- "LinkedServicesSettingIos"
- ]
- }
- ]
- }
- ],
"LiveCaptionChromeOS2": [
{
"platforms": [
@@ -13534,6 +13469,7 @@
"name": "Enabled_Dogfood",
"enable_features": [
"LobsterDogfood",
+ "LobsterQuickInsertZeroState",
"LobsterRightClickMenu"
]
}
@@ -13555,26 +13491,6 @@
]
}
],
- "LocalStateEnterprisePasswordHashes": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "LocalStateEnterprisePasswordHashes"
- ]
- }
- ]
- }
- ],
"LofnPermissiveUsbPassthrough": [
{
"platforms": [
@@ -13694,7 +13610,7 @@
]
}
],
- "MacImmersiveFullscreenAlwaysOnTrafficLights": [
+ "MacAccessibilityOptimizeChildrenChanged": [
{
"platforms": [
"mac"
@@ -13703,7 +13619,22 @@
{
"name": "Enabled",
"enable_features": [
- "FullscreenAlwaysShowTrafficLights"
+ "MacAccessibilityOptimizeChildrenChanged"
+ ]
+ }
+ ]
+ }
+ ],
+ "MacPermanentThinController": [
+ {
+ "platforms": [
+ "mac"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FullscreenPermanentThinController"
]
}
]
@@ -13727,24 +13658,6 @@
]
}
],
- "MacWebContentsOcclusionV2": [
- {
- "platforms": [
- "mac"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "EnhancedWindowOcclusionDetection": "true"
- },
- "enable_features": [
- "MacWebContentsOcclusion"
- ]
- }
- ]
- }
- ],
"MagicStackGradientView": [
{
"platforms": [
@@ -13826,6 +13739,23 @@
]
}
],
+ "ManagedProfileRequiredInterstitial": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ManagedProfileRequiredInterstitial"
+ ]
+ }
+ ]
+ }
+ ],
"MaxNumDelayableRequestsPerHostPerClient": [
{
"platforms": [
@@ -14144,27 +14074,6 @@
]
}
],
- "MetricsServiceDeltaSnapshotInBg": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "MetricsServiceDeltaSnapshotInBg"
- ]
- }
- ]
- }
- ],
"MigrateAlwaysTranslateLanguagesFix": [
{
"platforms": [
@@ -14380,6 +14289,36 @@
]
}
],
+ "MultipleSpareRPHs": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled2",
+ "params": {
+ "count": "2"
+ },
+ "enable_features": [
+ "MultipleSpareRPHs"
+ ]
+ },
+ {
+ "name": "Enabled5",
+ "params": {
+ "count": "5"
+ },
+ "enable_features": [
+ "MultipleSpareRPHs"
+ ]
+ }
+ ]
+ }
+ ],
"MutationEvents": [
{
"platforms": [
@@ -14427,8 +14366,9 @@
],
"experiments": [
{
- "name": "Enabled_20240723",
+ "name": "Enabled_20241216",
"params": {
+ "intersection_observation_after_fcp_only": "true",
"intersection_observer_delay": "1000ms",
"max_intersection_observations": "60",
"random_anchor_sampling_period": "1"
@@ -14605,9 +14545,6 @@
"NetworkServiceFileAllowlist",
"NetworkServiceSandbox",
"NetworkServiceSyscallFilter"
- ],
- "disable_features": [
- "kForceDisableSpectreVariant2MitigationInNetworkService"
]
}
]
@@ -14684,6 +14621,27 @@
]
}
],
+ "NewOSCryptAlgorithmForPasswords": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EncryptAllPasswordsWithOSCryptAsync",
+ "UseNewEncryptionMethod"
+ ]
+ }
+ ]
+ }
+ ],
"NoPasswordSuggestionFiltering": [
{
"platforms": [
@@ -14738,6 +14696,25 @@
]
}
],
+ "NonAndroidUseFrameIntervalDecider": [
+ {
+ "platforms": [
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "UseFrameIntervalDecider"
+ ]
+ }
+ ]
+ }
+ ],
"NonStandardAppearanceValueSliderVertical": [
{
"platforms": [
@@ -15055,8 +15032,6 @@
{
"name": "enabled",
"enable_features": [
- "Cr2023ActionChips",
- "Cr2023ActionChipsIcons",
"OmniboxExpandedLayout",
"OmniboxExpandedStateColors",
"OmniboxExpandedStateHeight",
@@ -15072,21 +15047,25 @@
]
}
],
- "OmniboxDeleteOldShortcuts": [
+ "OmniboxDriveEligibility": [
{
"platforms": [
- "android",
"chromeos",
- "ios",
"linux",
"mac",
"windows"
],
"experiments": [
{
- "name": "Enabled",
+ "name": "EnabledPrimaryAccountStrictEligibilityAndNoSyncRequirement",
"enable_features": [
- "OmniboxDeleteOldShortcuts"
+ "OmniboxDocumentProvider",
+ "OmniboxDocumentProviderEnterpriseEligibility",
+ "OmniboxDocumentProviderNoSyncRequirement",
+ "OmniboxDocumentProviderPrimaryAccountRequirement"
+ ],
+ "disable_features": [
+ "OmniboxDocumentProviderEnterpriseEligibilityWhenUnknown"
]
}
]
@@ -15191,76 +15170,15 @@
]
}
],
- "OmniboxMlUrlPiecewiseMappedScoringAndroid": [
+ "OmniboxMlUrlScoringAndroid": [
{
"platforms": [
"android"
],
"experiments": [
{
- "name": "Enabled_AdjustedBy0",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.034,595;0.043,790;0.067,795;0.076,900;0.117,930;0.147,1200;0.184,1205;0.2,1300;0.647,1350;0.668,1410;0.988,1430;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1414",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
+ "name": "Enabled",
"enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy50",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.034,545;0.043,740;0.067,745;0.076,850;0.117,880;0.147,1150;0.184,1155;0.2,1250;0.647,1300;0.668,1360;0.988,1380;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1364",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy100",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.034,495;0.043,690;0.067,695;0.076,800;0.117,830;0.147,1100;0.184,1105;0.2,1200;0.647,1250;0.668,1310;0.988,1330;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1314",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy150",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.034,445;0.043,640;0.067,645;0.076,750;0.117,780;0.147,1050;0.184,1055;0.2,1150;0.647,1200;0.668,1260;0.988,1280;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1264",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
"MlUrlScoring",
"UrlScoringModel"
]
@@ -15268,152 +15186,15 @@
]
}
],
- "OmniboxMlUrlPiecewiseMappedScoringDesktop": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_AdjustedBy0",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,550;0.018,1300;0.14,1398;1,1422",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1414",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy50",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,550;0.018,1250;0.14,1348;1,1422",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1364",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy100",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,550;0.018,1200;0.14,1298;1,1422",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1314",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy150",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,550;0.018,1150;0.14,1248;1,1422",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1264",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- }
- ]
- }
- ],
- "OmniboxMlUrlPiecewiseMappedScoringIOS": [
+ "OmniboxMlUrlScoringIOS": [
{
"platforms": [
"ios"
],
"experiments": [
{
- "name": "Enabled_AdjustedBy0",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.006,790;0.082,1290;0.443,1360;0.464,1400;0.987,1425;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1414",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
+ "name": "Enabled",
"enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy50",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.006,740;0.082,1240;0.443,1310;0.464,1350;0.987,1375;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1364",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy100",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.006,690;0.082,1190;0.443,1260;0.464,1300;0.987,1325;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1314",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
- "MlUrlScoring",
- "UrlScoringModel"
- ]
- },
- {
- "name": "Enabled_DemotedBy150",
- "params": {
- "MlUrlPiecewiseMappedSearchBlending": "true",
- "MlUrlPiecewiseMappedSearchBlending_BreakPoints": "0,590;0.006,640;0.082,1140;0.443,1210;0.464,1250;0.987,1275;1,1530",
- "MlUrlPiecewiseMappedSearchBlending_GroupingThreshold": "1264",
- "MlUrlPiecewiseMappedSearchBlending_RelevanceBias": "0",
- "MlUrlScoringShortcutDocumentSignals": "true",
- "MlUrlSearchBlending_MappedSearchBlending": "false",
- "enable_scoring_signals_annotators_for_ml_scoring": "true"
- },
- "enable_features": [
- "MlUrlPiecewiseMappedSearchBlending",
"MlUrlScoring",
"UrlScoringModel"
]
@@ -15558,54 +15339,6 @@
]
}
],
- "OmniboxRelaxedDriveRequirements": [
- {
- "platforms": [
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_NoSyncRequirement_V3",
- "params": {
- "DocumentProviderBackoffOn401": "true",
- "DocumentProviderIgnoreWhenDebouncing": "false"
- },
- "enable_features": [
- "OmniboxDocumentProvider",
- "OmniboxDocumentProviderNoSyncRequirement"
- ]
- },
- {
- "name": "Enabled_NoSyncRequirement_IgnoreWhenDebouncing_V3",
- "params": {
- "DocumentProviderBackoffOn401": "true",
- "DocumentProviderIgnoreWhenDebouncing": "true"
- },
- "enable_features": [
- "OmniboxDocumentProvider",
- "OmniboxDocumentProviderNoSyncRequirement"
- ]
- },
- {
- "name": "Enabled_IgnoreWhenDebouncing_V3",
- "params": {
- "DocumentProviderBackoffOn401": "true",
- "DocumentProviderIgnoreWhenDebouncing": "true"
- },
- "enable_features": [
- "OmniboxDocumentProvider"
- ],
- "disable_features": [
- "OmniboxDocumentProviderNoSyncRequirement"
- ]
- }
- ]
- }
- ],
"OmniboxStarterPackIPH": [
{
"platforms": [
@@ -15692,207 +15425,6 @@
]
}
],
- "OneTimePermission": [
- {
- "platforms": [
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "EnabledWithNormalLanguage",
- "params": {
- "use_stronger_prompt_language": "false"
- },
- "enable_features": [
- "ActiveContentSettingExpiry",
- "OneTimePermission"
- ]
- },
- {
- "name": "EnabledWithStrongLanguage",
- "params": {
- "use_stronger_prompt_language": "true"
- },
- "enable_features": [
- "ActiveContentSettingExpiry",
- "OneTimePermission"
- ]
- },
- {
- "name": "HatsControl",
- "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": "q1b37Zevt0ugnJ3q1cK0THbqyNJ4,zZBrVcebz0ugnJ3q1cK0Q9Uo6NFQ,m42rnDDGV0ugnJ3q1cK0RDuG9CQ4"
- },
- "disable_features": [
- "ActiveContentSettingExpiry",
- "OneTimePermission"
- ]
- },
- {
- "name": "Control",
- "disable_features": [
- "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"
- ]
- }
- ]
- }
- ],
- "OneTimePermissionClank": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "EnabledWithNormalLanguage",
- "params": {
- "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": "hCatPbt6B0tK1KeaPYj0WXqMjcvX,89BwvKxbJ0tK1KeaPYj0NtK7Ybn8,3fTPt7XMF0tK1KeaPYj0TXd8QN47",
- "use_stronger_prompt_language": "false"
- },
- "enable_features": [
- "ActiveContentSettingExpiry",
- "OneTimePermission",
- "PermissionsPromptSurvey"
- ]
- },
- {
- "name": "HatsControl",
- "params": {
- "experimental_custom_invitation_arm_trigger_id": "Db6NddebR0tK1KeaPYj0UzKHA4zC,sRE9DYcBN0tK1KeaPYj0PtzgM3xw,t6mgdAXqK0tK1KeaPYj0VHRxVpBT",
- "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": "ZhVFvGaem0tK1KeaPYj0YXx2ouZy,pwU6FSjhZ0tK1KeaPYj0U8h8dv8e,wGFymXxYr0tK1KeaPYj0SxPYLBBc"
- },
- "enable_features": [
- "PermissionsPromptSurvey"
- ],
- "disable_features": [
- "ActiveContentSettingExpiry",
- "OneTimePermission"
- ]
- },
- {
- "name": "EnabledWithStrongLanguage",
- "params": {
- "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": "hCatPbt6B0tK1KeaPYj0WXqMjcvX,89BwvKxbJ0tK1KeaPYj0NtK7Ybn8,3fTPt7XMF0tK1KeaPYj0TXd8QN47",
- "use_stronger_prompt_language": "true"
- },
- "enable_features": [
- "ActiveContentSettingExpiry",
- "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"
- ]
- }
- ]
- }
- ],
"OngoingProcesses": [
{
"platforms": [
@@ -16047,21 +15579,6 @@
]
}
],
- "OsSettingsRevampWayfindingStudy": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "OsSettingsRevampWayfinding"
- ]
- }
- ]
- }
- ],
"OutOfProcessPrintDriversPrint": [
{
"platforms": [
@@ -16085,6 +15602,21 @@
]
}
],
+ "OverridePrefetchOnSingleton": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "OverridePrefetchOnSingleton"
+ ]
+ }
+ ]
+ }
+ ],
"OverviewSessionInitOptimizations": [
{
"platforms": [
@@ -16148,42 +15680,10 @@
"experiments": [
{
"name": "Enabled",
- "enable_features": [
- "PMProcessPriorityPolicy",
- "PriorityOverridePendingViews"
- ],
- "disable_features": [
- "MacAllowBackgroundingRenderProcesses",
- "RestrictThreadPoolInBackground",
- "SetIsolatesPriority",
- "UnimportantFramesPriority",
- "UserVisibleProcessPriority"
- ]
- },
- {
- "name": "EnabledWithMacBackgrounding",
"enable_features": [
"MacAllowBackgroundingRenderProcesses",
"PMProcessPriorityPolicy",
"PriorityOverridePendingViews"
- ],
- "disable_features": [
- "RestrictThreadPoolInBackground",
- "SetIsolatesPriority",
- "UnimportantFramesPriority",
- "UserVisibleProcessPriority"
- ]
- },
- {
- "name": "EnabledWithTriStatePriority",
- "enable_features": [
- "MacAllowBackgroundingRenderProcesses",
- "PMProcessPriorityPolicy",
- "PriorityOverridePendingViews",
- "RestrictThreadPoolInBackground",
- "SetIsolatesPriority",
- "UnimportantFramesPriority",
- "UserVisibleProcessPriority"
]
}
]
@@ -16299,6 +15799,21 @@
]
}
],
+ "PageInfoLastVisitedIOS": [
+ {
+ "platforms": [
+ "ios"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PageInfoLastVisitedIOS"
+ ]
+ }
+ ]
+ }
+ ],
"PaintHoldingCrossOrigin": [
{
"platforms": [
@@ -16604,8 +16119,7 @@
"android_webview",
"chromeos",
"fuchsia",
- "linux",
- "windows"
+ "linux"
],
"experiments": [
{
@@ -16695,48 +16209,6 @@
]
}
],
- "PartitionAllocUsePoolOffsetFreelists": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PartitionAllocUsePoolOffsetFreelists"
- ]
- }
- ]
- }
- ],
- "PartitionAllocUseSmallSingleSlotSpans": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PartitionAllocUseSmallSingleSlotSpans"
- ]
- }
- ]
- }
- ],
"PartitionNetworkStateByNetworkAnonymizationKey": [
{
"platforms": [
@@ -16772,27 +16244,8 @@
],
"experiments": [
{
- "name": "EnabledNoSelfLinks",
+ "name": "PartitionVisitedLinkDatabaseWithSelfLinks",
"enable_features": [
- "PartitionVisitedLinkDatabase"
- ],
- "disable_features": [
- "PartitionVisitedLinkDatabaseWithSelfLinks"
- ]
- },
- {
- "name": "EnabledWithSelfLinks",
- "enable_features": [
- "PartitionVisitedLinkDatabaseWithSelfLinks"
- ],
- "disable_features": [
- "PartitionVisitedLinkDatabase"
- ]
- },
- {
- "name": "Control",
- "disable_features": [
- "PartitionVisitedLinkDatabase",
"PartitionVisitedLinkDatabaseWithSelfLinks"
]
}
@@ -16820,6 +16273,47 @@
]
}
],
+ "PasswordFormClientsideClassifier": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "chromeos_lacros",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PasswordFormClientsideClassifier"
+ ]
+ }
+ ]
+ }
+ ],
+ "PasswordFormGroupedAffiliations": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PasswordFormGroupedAffiliations"
+ ]
+ }
+ ]
+ }
+ ],
"PasswordInfobarDisplayLength": [
{
"platforms": [
@@ -16838,6 +16332,25 @@
]
}
],
+ "PasswordLeakToggleMove": [
+ {
+ "platforms": [
+ "chromeos",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PasswordLeakToggleMove"
+ ]
+ }
+ ]
+ }
+ ],
"PasswordManualFallbackAvailable": [
{
"platforms": [
@@ -16856,21 +16369,6 @@
]
}
],
- "PasswordSuggestionBottomSheetV2": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PasswordSuggestionBottomSheetV2"
- ]
- }
- ]
- }
- ],
"PasswordlessGaiaForConsumers": [
{
"platforms": [
@@ -16941,7 +16439,6 @@
"PdfOutOfProcessIframe": [
{
"platforms": [
- "chromeos",
"linux",
"mac",
"windows"
@@ -17044,21 +16541,13 @@
{
"name": "Enabled",
"enable_features": [
- "AvoidScheduleWorkDuringNativeEventProcessing",
- "ConditionallySkipGpuChannelFlush",
"EarlyEstablishGpuChannel",
"EstablishGpuChannelAsync",
"ExpandedPrefetchRange",
"FledgeEnableWALForInterestGroupStorage",
- "GpuInfoCollectionSeparatePrefetch",
- "LevelDBProtoAsyncWrite",
"MojoBindingsInlineSLS",
"ReduceCpuUtilization2",
- "RunTasksByBatches",
- "SharedStorageAPIEnableWALForDatabase",
- "SqlWALModeOnDipsDatabase",
- "SqlWALModeOnSegmentationDatabase",
- "UIPumpImprovementsWin"
+ "SharedStorageAPIEnableWALForDatabase"
]
}
]
@@ -17070,23 +16559,14 @@
"experiments": [
{
"name": "Enabled",
- "params": {
- "MacEfficientFileFlushUseBarrier": "true"
- },
"enable_features": [
- "AvoidScheduleWorkDuringNativeEventProcessing",
- "ConditionallySkipGpuChannelFlush",
"EarlyEstablishGpuChannel",
"EstablishGpuChannelAsync",
"FledgeEnableWALForInterestGroupStorage",
- "LevelDBProtoAsyncWrite",
- "MacEfficientFileFlush",
"MojoBindingsInlineSLS",
"NumberOfCoresWithCpuSecurityMitigation",
"ReduceCpuUtilization2",
- "SharedStorageAPIEnableWALForDatabase",
- "SqlWALModeOnDipsDatabase",
- "SqlWALModeOnSegmentationDatabase"
+ "SharedStorageAPIEnableWALForDatabase"
]
}
]
@@ -17101,17 +16581,12 @@
{
"name": "Enabled",
"enable_features": [
- "AvoidScheduleWorkDuringNativeEventProcessing",
- "ConditionallySkipGpuChannelFlush",
"EarlyEstablishGpuChannel",
"EstablishGpuChannelAsync",
"FledgeEnableWALForInterestGroupStorage",
- "LevelDBProtoAsyncWrite",
"MojoBindingsInlineSLS",
"ReduceCpuUtilization2",
- "SharedStorageAPIEnableWALForDatabase",
- "SqlWALModeOnDipsDatabase",
- "SqlWALModeOnSegmentationDatabase"
+ "SharedStorageAPIEnableWALForDatabase"
]
}
]
@@ -17124,16 +16599,9 @@
{
"name": "Enabled",
"enable_features": [
- "AvoidScheduleWorkDuringNativeEventProcessing",
- "ConditionallySkipGpuChannelFlush",
- "DirectCompositorThreadIpc",
"FledgeEnableWALForInterestGroupStorage",
- "LevelDBProtoAsyncWrite",
"MojoBindingsInlineSLS",
- "PumpFastToSleepAndroid",
- "SharedStorageAPIEnableWALForDatabase",
- "SqlWALModeOnDipsDatabase",
- "SqlWALModeOnSegmentationDatabase"
+ "SharedStorageAPIEnableWALForDatabase"
]
}
]
@@ -17146,20 +16614,10 @@
{
"name": "Enabled",
"enable_features": [
- "AvoidScheduleWorkDuringNativeEventProcessing",
- "ConditionallySkipGpuChannelFlush",
- "DirectCompositorThreadIpc",
"FledgeEnableWALForInterestGroupStorage",
- "LevelDBProtoAsyncWrite",
"MojoBindingsInlineSLS",
- "PumpFastToSleepAndroid",
"ReduceCpuUtilization2",
- "SharedStorageAPIEnableWALForDatabase",
- "SqlWALModeOnDipsDatabase",
- "SqlWALModeOnSegmentationDatabase"
- ],
- "disable_features": [
- "EnableHangWatcher"
+ "SharedStorageAPIEnableWALForDatabase"
]
}
]
@@ -17207,45 +16665,6 @@
]
}
],
- "PerformanceInterventionUILaunch": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "EnabledString1_20240724",
- "params": {
- "intervention_dialog_version": "1"
- },
- "enable_features": [
- "PerformanceInterventionUI"
- ]
- },
- {
- "name": "EnabledString2_20240724",
- "params": {
- "intervention_dialog_version": "2"
- },
- "enable_features": [
- "PerformanceInterventionUI"
- ]
- },
- {
- "name": "EnabledString3_20240724",
- "params": {
- "intervention_dialog_version": "3"
- },
- "enable_features": [
- "PerformanceInterventionUI"
- ]
- }
- ]
- }
- ],
"PeripheralCustomization": [
{
"platforms": [
@@ -17302,34 +16721,6 @@
]
}
],
- "PermissionsPEPCHaTS": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "RecoverySurveyDismiss_20240729",
- "params": {
- "action_filter": "Dismissed",
- "initial_permission_status_filter": "deny",
- "probability": "0.5",
- "probability_vector": "0.5,0.5",
- "prompt_disposition_filter": "ElementAnchoredBubble",
- "request_type_filter": "VideoCapture,AudioCapture",
- "survey_display_time": "OnPromptResolved",
- "trigger_id": "oqdSQ6wky0ugnJ3q1cK0WRpR8GW2,WCAaJD6T80ugnJ3q1cK0XaNn1zy3"
- },
- "enable_features": [
- "PermissionsPromptSurvey"
- ]
- }
- ]
- }
- ],
"PickerUI": [
{
"platforms": [
@@ -17361,6 +16752,25 @@
]
}
],
+ "PlusAddressAcceptedFirstTimeCreateSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressAcceptedFirstTimeCreateSurvey"
+ ]
+ }
+ ]
+ }
+ ],
"PlusAddressCreateSuggestion": [
{
"platforms": [
@@ -17382,6 +16792,140 @@
]
}
],
+ "PlusAddressDeclinedFirstTimeCreateSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressDeclinedFirstTimeCreateSurvey"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressFilledPlusAddressViaManualFallbackSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressFilledPlusAddressViaManualFallbackSurvey"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressFullFormFill": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressFullFormFill"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressUserCreatedMultiplePlusAddressesSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressUserCreatedMultiplePlusAddressesSurvey"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressUserCreatedPlusAddressViaManualFallbackSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressUserCreatedPlusAddressViaManualFallbackSurvey"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressUserDidChooseEmailOverPlusAddressSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressUserDidChooseEmailOverPlusAddressSurvey"
+ ]
+ }
+ ]
+ }
+ ],
+ "PlusAddressUserDidChoosePlusAddressOverEmailSurvey": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PlusAddressUserDidChoosePlusAddressOverEmailSurvey"
+ ]
+ }
+ ]
+ }
+ ],
"PlusAddressesExperiment": [
{
"platforms": [
@@ -17469,33 +17013,21 @@
]
}
],
- "PostGetMyMemoryStateToBackground": [
+ "PostDelayedTaskFocusTab": [
{
"platforms": [
"android",
+ "android_weblayer",
"android_webview"
],
"experiments": [
{
"name": "Enabled",
+ "params": {
+ "post_delayed_task_focus_tab_time_millis": "10"
+ },
"enable_features": [
- "PostGetMyMemoryStateToBackground"
- ]
- }
- ]
- }
- ],
- "PostQuantumKyber": [
- {
- "platforms": [
- "android",
- "ios"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PostQuantumKyber"
+ "PostDelayedTaskFocusTab"
]
}
]
@@ -17699,6 +17231,26 @@
]
}
],
+ "PrefetchServiceWorkerNoFetchHandlerFix": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PrefetchServiceWorkerNoFetchHandlerFix"
+ ]
+ }
+ ]
+ }
+ ],
"PreloadTopChromeWebUI": [
{
"platforms": [
@@ -17712,6 +17264,7 @@
"name": "preload-on-warmup-delay",
"params": {
"delay-preload": "true",
+ "exclude-origins": "chrome://bookmarks-side-panel.top-chrome",
"preload-mode": "preload-on-warmup",
"smart-preload": "true"
},
@@ -17722,28 +17275,6 @@
]
}
],
- "PreloadingHeuristicsMLModel": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled_20240726_NoEnact",
- "params": {
- "enact_candidates": "false",
- "one_execution_per_hover": "false"
- },
- "enable_features": [
- "PreloadingHeuristicsMLModel"
- ]
- }
- ]
- }
- ],
"PreloadingViewportHeuristics": [
{
"platforms": [
@@ -17751,22 +17282,10 @@
],
"experiments": [
{
- "name": "Moderate",
+ "name": "Moderate_20241216",
"params": {
- "delay": "1000ms",
- "distance_from_ptr_down_high": "0",
- "distance_from_ptr_down_low": "-0.3",
- "largest_anchor_threshold": "0.5"
- },
- "enable_features": [
- "PreloadingViewportHeuristics"
- ]
- },
- {
- "name": "Aggressive",
- "params": {
- "delay": "1000ms",
- "distance_from_ptr_down_high": "0",
+ "delay": "500ms",
+ "distance_from_ptr_down_hi": "0",
"distance_from_ptr_down_low": "-0.3",
"largest_anchor_threshold": "0.25"
},
@@ -17775,12 +17294,24 @@
]
},
{
- "name": "Conservative",
+ "name": "Aggressive_20241216",
"params": {
- "delay": "1000ms",
- "distance_from_ptr_down_high": "0",
- "distance_from_ptr_down_low": "-0.3",
- "largest_anchor_threshold": "1"
+ "delay": "500ms",
+ "distance_from_ptr_down_hi": "0.2",
+ "distance_from_ptr_down_low": "-0.5",
+ "largest_anchor_threshold": "0.25"
+ },
+ "enable_features": [
+ "PreloadingViewportHeuristics"
+ ]
+ },
+ {
+ "name": "Conservative_20241216",
+ "params": {
+ "delay": "500ms",
+ "distance_from_ptr_down_hi": "0",
+ "distance_from_ptr_down_low": "-0.2",
+ "largest_anchor_threshold": "0.25"
},
"enable_features": [
"PreloadingViewportHeuristics"
@@ -17812,10 +17343,9 @@
]
}
],
- "Prerender2EarlyDocumentLifecycleUpdate": [
+ "Prerender2EarlyDocumentLifecycleUpdateV2": [
{
"platforms": [
- "android",
"linux",
"mac",
"windows",
@@ -17831,27 +17361,6 @@
]
}
],
- "Prerender2EmbedderBlockedHosts": [
- {
- "platforms": [
- "linux",
- "mac",
- "windows",
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "embedder_blocked_hosts": ""
- },
- "enable_features": [
- "Prerender2EmbedderBlockedHosts"
- ]
- }
- ]
- }
- ],
"Prerender2FallbackPrefetchSpecRules": [
{
"platforms": [
@@ -17864,8 +17373,9 @@
],
"experiments": [
{
- "name": "Enabled_20241023",
+ "name": "EnabledWithBodySizeLimit2048KiB_20241204",
"params": {
+ "kPrerender2FallbackBodySizeLimit": "2097152",
"kPrerender2FallbackPrefetchReusablePolicy": "UseIfIsLikelyAheadOfPrerender"
},
"enable_features": [
@@ -17875,24 +17385,6 @@
]
}
],
- "Prerender2NewTabPageAndroidTrigger": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_20240821",
- "params": {
- "prerender_new_tab_page_on_touch_trigger": "47"
- },
- "enable_features": [
- "NewTabPageAndroidTriggerForPrerender2"
- ]
- }
- ]
- }
- ],
"Prerender2NewTabPageTriggerV2": [
{
"platforms": [
@@ -17936,28 +17428,6 @@
]
}
],
- "PriceDropNtpIPH": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "availability": ">=0",
- "event_trigger": "name:price_drop_ntp_iph_triggered;comparator:==0;window:365;storage:365",
- "event_used": "name:tab_switcher_button_clicked;comparator:any;window:365;storage:365",
- "session_rate": "<1"
- },
- "enable_features": [
- "IPH_PriceDropNTP"
- ],
- "disable_features": []
- }
- ]
- }
- ],
"PriceInsightsAndroid": [
{
"platforms": [
@@ -18035,38 +17505,12 @@
]
}
],
- "PriceTrackingPromo": [
+ "PriceTrackingPromoIOS": [
{
"platforms": [
"ios"
],
"experiments": [
- {
- "name": "Enabled_20241004",
- "enable_features": [
- "PriceTrackingPromo",
- "SegmentationPlatformEphemeralCardRanker"
- ],
- "disable_features": [
- "SegmentationPlatformTipsEphemeralCard"
- ]
- },
- {
- "name": "Tips_Enabled",
- "params": {
- "TipsEphemeralCardExperimentTrainParam": "lens_ephemeral_module_search_variation,save_passwords_ephemeral_module,enhanced_safe_browsing_ephemeral_module,address_bar_position_ephemeral_module",
- "TipsEphemeralCardModuleMaxImpressionCount": "3",
- "TipsLensShopExperimentType": "0",
- "TipsSafeBrowsingExperimentType": "0"
- },
- "enable_features": [
- "SegmentationPlatformEphemeralCardRanker",
- "SegmentationPlatformTipsEphemeralCard"
- ],
- "disable_features": [
- "PriceTrackingPromo"
- ]
- },
{
"name": "Tips_And_Price_Tracking_Enabled",
"params": {
@@ -18154,57 +17598,6 @@
]
}
],
- "PriorityHeader": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PriorityHeader"
- ]
- }
- ]
- }
- ],
- "PrivacyHubAppPermissions": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CrosPrivacyHubAppPermissions"
- ]
- }
- ]
- }
- ],
- "PrivacyHubAppPermissionsV2": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CrosPrivacyHubAppPermissionsV2"
- ]
- }
- ]
- }
- ],
"PrivacyHubGeolocation": [
{
"platforms": [
@@ -18220,35 +17613,6 @@
]
}
],
- "PrivacyHubMVP": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled_20230616_Dogfood",
- "enable_features": [
- "CrosPrivacyHubV0"
- ]
- },
- {
- "name": "Control_20230616_Dogfood",
- "enable_features": []
- },
- {
- "name": "Enabled_20230616",
- "enable_features": [
- "CrosPrivacyHubV0"
- ]
- },
- {
- "name": "Control_20230616",
- "enable_features": []
- }
- ]
- }
- ],
"PrivacyHubV2-3": [
{
"platforms": [
@@ -18378,77 +17742,21 @@
]
}
],
- "PrivacySandboxHatsForDesktopM1": [
+ "PrivacySandboxAllowPromptForBlocked3PCookies": [
{
"platforms": [
+ "android",
"chromeos",
+ "chromeos_lacros",
"linux",
"mac",
"windows"
],
"experiments": [
{
- "name": "Enabled_PrivacyPage",
- "params": {
- "en_site_id": "gyxt1wCrg0ugnJ3q1cK0TeuAxb15",
- "probability": "1.0",
- "settings-time": "20s"
- },
+ "name": "Enabled",
"enable_features": [
- "HappinessTrackingSurveysForDesktopM1AdPrivacyPage"
- ],
- "disable_features": [
- "HappinessTrackingSurveysForDesktopM1AdMeasurementSubpage",
- "HappinessTrackingSurveysForDesktopM1FledgeSubpage",
- "HappinessTrackingSurveysForDesktopM1TopicsSubpage"
- ]
- },
- {
- "name": "Enabled_TopicsSubpage",
- "params": {
- "en_site_id": "HkMzAEAUa0ugnJ3q1cK0UCYW2Hyw",
- "probability": "1.0",
- "settings-time": "20s"
- },
- "enable_features": [
- "HappinessTrackingSurveysForDesktopM1TopicsSubpage"
- ],
- "disable_features": [
- "HappinessTrackingSurveysForDesktopM1AdMeasurementSubpage",
- "HappinessTrackingSurveysForDesktopM1AdPrivacyPage",
- "HappinessTrackingSurveysForDesktopM1FledgeSubpage"
- ]
- },
- {
- "name": "Enabled_FledgeSubpage",
- "params": {
- "en_site_id": "YhMPu6WWx0ugnJ3q1cK0PfKSV3YR",
- "probability": "1.0",
- "settings-time": "20s"
- },
- "enable_features": [
- "HappinessTrackingSurveysForDesktopM1FledgeSubpage"
- ],
- "disable_features": [
- "HappinessTrackingSurveysForDesktopM1AdMeasurementSubpage",
- "HappinessTrackingSurveysForDesktopM1AdPrivacyPage",
- "HappinessTrackingSurveysForDesktopM1TopicsSubpage"
- ]
- },
- {
- "name": "Enabled_AdMeasurementSubpage",
- "params": {
- "en_site_id": "vzxsxSxGk0ugnJ3q1cK0PHvFhzka",
- "probability": "1.0",
- "settings-time": "20s"
- },
- "enable_features": [
- "HappinessTrackingSurveysForDesktopM1AdMeasurementSubpage"
- ],
- "disable_features": [
- "HappinessTrackingSurveysForDesktopM1AdPrivacyPage",
- "HappinessTrackingSurveysForDesktopM1FledgeSubpage",
- "HappinessTrackingSurveysForDesktopM1TopicsSubpage"
+ "PrivacySandboxAllowPromptForBlocked3PCookies"
]
}
]
@@ -18473,6 +17781,24 @@
]
}
],
+ "PrivacySandboxNoticeQueue": [
+ {
+ "platforms": [
+ "linux",
+ "windows",
+ "mac",
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PrivacySandboxNoticeQueue"
+ ]
+ }
+ ]
+ }
+ ],
"PrivacySandboxPrivacyGuideAdTopics": [
{
"platforms": [
@@ -18533,26 +17859,6 @@
]
}
],
- "PrivateAggregationApiFilteringIds": [
- {
- "platforms": [
- "android",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PrivateAggregationApiFilteringIds"
- ]
- }
- ]
- }
- ],
"PrivateStateTokens": [
{
"platforms": [
@@ -18668,83 +17974,6 @@
]
}
],
- "ProductivityLauncherStudy": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "DriveRecentsWithDefaultRecency",
- "enable_features": [
- "LauncherContinueSectionWithRecentsRollout125"
- ]
- },
- {
- "name": "DriveRecentsWithMixedLocalAndDriveFiles",
- "params": {
- "mix_local_and_drive": "true"
- },
- "enable_features": [
- "LauncherContinueSectionWithRecentsRollout125"
- ]
- },
- {
- "name": "DriveRecentsWith14DayRecency",
- "params": {
- "max_recency_in_days": "14"
- },
- "enable_features": [
- "LauncherContinueSectionWithRecentsRollout125"
- ]
- },
- {
- "name": "DriveRecentsWith30DayRecency",
- "params": {
- "max_recency_in_days": "30"
- },
- "enable_features": [
- "LauncherContinueSectionWithRecentsRollout125"
- ]
- },
- {
- "name": "EnabledWithContinueAndMultipleQueries_20220621",
- "params": {
- "enable_continue": "true",
- "multiple_queries_per_session": "true"
- },
- "enable_features": [
- "LauncherItemSuggest",
- "ProductivityLauncher"
- ]
- },
- {
- "name": "EnabledWithContinueSection_20220621",
- "params": {
- "enable_continue": "true"
- },
- "enable_features": [
- "ProductivityLauncher"
- ],
- "disable_features": [
- "LauncherItemSuggest"
- ]
- },
- {
- "name": "EnabledWithoutContinueSection_20220621",
- "params": {
- "enable_continue": "false"
- },
- "enable_features": [
- "ProductivityLauncher"
- ],
- "disable_features": [
- "LauncherItemSuggest"
- ]
- }
- ]
- }
- ],
"ProfilesReordering": [
{
"platforms": [
@@ -18762,6 +17991,21 @@
]
}
],
+ "ProjectorUseDVSPlaybackEndpoint": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ProjectorUseDVSPlaybackEndpoint"
+ ]
+ }
+ ]
+ }
+ ],
"PropagateWebViewNetworkingSignals": [
{
"platforms": [
@@ -18794,16 +18038,78 @@
]
}
],
- "ProtectedAudienceAndroidWorkletOffMainThread": [
+ "ProtectedAudienceBAndAPrivateAggregationAndSampleDebugReports": [
{
"platforms": [
- "android"
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "FledgeAndroidWorkletOffMainThread"
+ "EnableBandAPrivateAggregation",
+ "EnableBandASampleDebugReports"
+ ]
+ }
+ ]
+ }
+ ],
+ "ProtectedAudienceBAndASelectedReportingId": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableBandADealSupport"
+ ]
+ }
+ ]
+ }
+ ],
+ "ProtectedAudienceBAndAServerAPIMultiSeller": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FledgeBiddingAndAuctionServerAPIMultiSeller"
+ ]
+ }
+ ]
+ }
+ ],
+ "ProtectedAudienceBAndATriggeredUpdates": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableBandATriggeredUpdates"
]
}
]
@@ -18828,6 +18134,25 @@
]
}
],
+ "ProtectedAudienceEagerJSCompilation": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FledgeEagerJSCompilation"
+ ]
+ }
+ ]
+ }
+ ],
"ProtectedAudienceEarlyProcessCreationStudy": [
{
"platforms": [
@@ -18926,6 +18251,44 @@
]
}
],
+ "ProtectedAudiencePrepareBidderContextsStudy": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FledgePrepareBidderContextsInAdvance"
+ ]
+ }
+ ]
+ }
+ ],
+ "ProtectedAudiencePrepareSellerContextsStudy": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "FledgePrepareSellerContextsInAdvance"
+ ]
+ }
+ ]
+ }
+ ],
"ProtectedAudienceTrustedKVSupport": [
{
"platforms": [
@@ -18945,6 +18308,25 @@
]
}
],
+ "ProtectedAudiencesEnableBandAKAnonEnforcement": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "EnableBandAKAnonEnforcement"
+ ]
+ }
+ ]
+ }
+ ],
"ProtectedAudiencesHeaderDirectFromSellerSignalsStudy": [
{
"platforms": [
@@ -19148,25 +18530,6 @@
]
}
],
- "QuickDeleteAndroidFollowup": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "enable_tab_closure": "true",
- "open_tab_on_empty_state": "true"
- },
- "enable_features": [
- "QuickDeleteAndroidFollowup"
- ]
- }
- ]
- }
- ],
"QuickDeleteAndroidSurvey": [
{
"platforms": [
@@ -19176,7 +18539,7 @@
{
"name": "Enabled",
"params": {
- "probability": "0.5",
+ "probability": "0.015",
"trigger_id": "GtpVWQGxM0tK1KeaPYj0QBUXAQ9v"
},
"enable_features": [
@@ -19601,6 +18964,21 @@
]
}
],
+ "RefreshTokenV3Feature": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "RefreshTokenV3Feature"
+ ]
+ }
+ ]
+ }
+ ],
"RegisterOsUpdateHandlerWin": [
{
"platforms": [
@@ -19800,7 +19178,6 @@
{
"platforms": [
"android_weblayer",
- "android_webview",
"android",
"chromeos",
"fuchsia",
@@ -19811,7 +19188,61 @@
],
"experiments": [
{
- "name": "EnabledSubframeWithQueueing_20240108",
+ "name": "EnabledSubframeWithQueueing",
+ "params": {
+ "level": "subframe",
+ "queueing_level": "full"
+ },
+ "enable_features": [
+ "DelayLayerTreeViewDeletionOnLocalSwap",
+ "QueueNavigationsWhileWaitingForCommit",
+ "RenderDocument"
+ ],
+ "disable_features": [
+ "RenderDocumentCompositorReuse"
+ ]
+ },
+ {
+ "name": "EnabledCrashedFrameWithQueueing",
+ "params": {
+ "level": "crashed-frame",
+ "queueing_level": "full"
+ },
+ "enable_features": [
+ "DelayLayerTreeViewDeletionOnLocalSwap",
+ "QueueNavigationsWhileWaitingForCommit",
+ "RenderDocument"
+ ],
+ "disable_features": [
+ "RenderDocumentCompositorReuse"
+ ]
+ },
+ {
+ "name": "EnabledAllFramesWithQueueing",
+ "params": {
+ "level": "all-frames",
+ "queueing_level": "full"
+ },
+ "enable_features": [
+ "DelayLayerTreeViewDeletionOnLocalSwap",
+ "QueueNavigationsWhileWaitingForCommit",
+ "RenderDocument"
+ ],
+ "disable_features": [
+ "RenderDocumentCompositorReuse"
+ ]
+ }
+ ]
+ }
+ ],
+ "RenderDocumentWithNavigationQueueing_WebView": [
+ {
+ "platforms": [
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledSubframeWithQueueing",
"params": {
"level": "subframe",
"queueing_level": "full"
@@ -19825,7 +19256,7 @@
]
},
{
- "name": "EnabledCrashedFrameWithQueueing_20240108",
+ "name": "EnabledCrashedFrameWithQueueing",
"params": {
"level": "crashed-frame",
"queueing_level": "full"
@@ -19839,33 +19270,7 @@
]
},
{
- "name": "EnabledNLRSubframeWithQueueing_20240108",
- "params": {
- "level": "non-local-root-subframe",
- "queueing_level": "full"
- },
- "enable_features": [
- "QueueNavigationsWhileWaitingForCommit",
- "RenderDocument"
- ],
- "disable_features": [
- "RenderDocumentCompositorReuse"
- ]
- },
- {
- "name": "EnabledSubframeWithQueueingAndCompReuse_20240108",
- "params": {
- "level": "subframe",
- "queueing_level": "full"
- },
- "enable_features": [
- "QueueNavigationsWhileWaitingForCommit",
- "RenderDocument",
- "RenderDocumentCompositorReuse"
- ]
- },
- {
- "name": "EnabledAllFramesWithQueueing_20240108",
+ "name": "EnabledAllFramesWithQueueing",
"params": {
"level": "all-frames",
"queueing_level": "full"
@@ -20031,21 +19436,6 @@
]
}
],
- "RoundedDisplay": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "RoundedDisplayEnabled",
- "enable_features": [
- "RoundedDisplay"
- ]
- }
- ]
- }
- ],
"RoundedWindows": [
{
"platforms": [
@@ -20083,6 +19473,27 @@
]
}
],
+ "RustyPng": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "RustPng"
+ ]
+ }
+ ]
+ }
+ ],
"SafeBrowsingAsyncRealTimeCheck": [
{
"platforms": [
@@ -20172,24 +19583,6 @@
]
}
],
- "SafeBrowsingHashPrefixRealTimeLookupsFasterOhttpKeyRotation": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "SafeBrowsingHashPrefixRealTimeLookupsFasterOhttpKeyRotation"
- ]
- }
- ]
- }
- ],
"SafeBrowsingNestedArchives": [
{
"platforms": [
@@ -20334,29 +19727,19 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "EnabledWithHats",
"params": {
"background-password-check-interval-in-days": "1",
"probability": "0.5",
+ "survey": "safety-hub-android-survey",
"trigger_id": "BqU7h7abt0tK1KeaPYj0WkmwAz4h"
},
"enable_features": [
- "SafeHubFollowup",
"SafetyHub",
- "SafetyHubAndroidSurvey"
- ]
- },
- {
- "name": "HatsControl",
- "params": {
- "probability": "0.5",
- "trigger_id": "kz5UsbD3q0tK1KeaPYj0NTqQb7EL"
- },
- "enable_features": [
- "SafetyHubAndroidSurvey"
- ],
- "disable_features": [
- "SafetyHub"
+ "SafetyHubAndroidOrganicSurvey",
+ "SafetyHubAndroidSurvey",
+ "SafetyHubAndroidSurveyV2",
+ "SafetyHubFollowup"
]
}
]
@@ -20377,6 +19760,53 @@
]
}
],
+ "SafetyHubOneOffHats": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "SafetyHub_NoNotification",
+ "params": {
+ "probability": "0.0155",
+ "safety-hub-ab-control-trigger-id": "XxxasK3Zu0ugnJ3q1cK0Yv2LaPos",
+ "survey": "safety-hub-control"
+ },
+ "enable_features": [
+ "SafetyHubHaTSOneOffSurvey"
+ ]
+ },
+ {
+ "name": "SafetyHub_Notification",
+ "params": {
+ "probability": "0.0155",
+ "safety-hub-ab-notification-trigger-id": "MVbs4W6AD0ugnJ3q1cK0Nc4CZvj2",
+ "survey": "safety-hub-notification"
+ },
+ "enable_features": [
+ "SafetyHubHaTSOneOffSurvey"
+ ]
+ },
+ {
+ "name": "SafetyHub_Interaction",
+ "params": {
+ "probability": "0.1516",
+ "safety-hub-ab-interaction-trigger-id": "o6hoLZqjX0ugnJ3q1cK0XCht6ei6",
+ "survey": "safety-hub-interaction"
+ },
+ "enable_features": [
+ "SafetyHubHaTSOneOffSurvey"
+ ]
+ }
+ ]
+ }
+ ],
"SavePasswordHashFromProfilePicker": [
{
"platforms": [
@@ -21463,6 +20893,21 @@
]
}
],
+ "SchoolToolsSpotlight": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "BocaSpotlight"
+ ]
+ }
+ ]
+ }
+ ],
"ScreenCaptureKitMacScreen": [
{
"platforms": [
@@ -21485,9 +20930,9 @@
],
"experiments": [
{
- "name": "Enabled_Dogfood",
+ "name": "Enabled",
"enable_features": [
- "ForceEnableServerSideSpeechRecognitionForDev"
+ "ForceEnableServerSideSpeechRecognition"
]
}
]
@@ -21532,7 +20977,8 @@
{
"name": "Enabled",
"enable_features": [
- "InternalServerSideSpeechRecognitionUSMModelFinch"
+ "InternalServerSideSpeechRecognitionUSMModelFinch",
+ "ProjectorUseUSMForS3"
]
}
]
@@ -21553,22 +20999,6 @@
]
}
],
- "ScreenlockReauthPromoCard": [
- {
- "platforms": [
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ScreenlockReauthPromoCard"
- ]
- }
- ]
- }
- ],
"ScriptStreamingForNonHTTP": [
{
"platforms": [
@@ -21609,27 +21039,6 @@
]
}
],
- "ScriptedIdleTaskControllerOOMFix": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ScriptedIdleTaskControllerOOMFix"
- ]
- }
- ]
- }
- ],
"SeaPen": [
{
"platforms": [
@@ -21696,10 +21105,13 @@
]
}
],
- "SearchEngineChoiceGuestExperience": [
+ "SearchEngineChoiceClearInvalidPref": [
{
"platforms": [
+ "android",
"chromeos",
+ "chromeos_lacros",
+ "ios",
"linux",
"mac",
"windows"
@@ -21708,7 +21120,7 @@
{
"name": "Enabled",
"enable_features": [
- "SearchEngineChoiceGuestExperience"
+ "ClearCountryPrefForStoredUnknownCountry"
]
}
]
@@ -21809,21 +21221,6 @@
]
}
],
- "SecagentdEnableXDRFileEvents": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CrOSLateBootSecagentdXDRFileEvents"
- ]
- }
- ]
- }
- ],
"SecureTimeCertificateVerification": [
{
"platforms": [
@@ -21864,6 +21261,30 @@
]
}
],
+ "SecurityPageHats": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "params": {
+ "probability": "1",
+ "security-page-time": "15s",
+ "security-page-trigger-id": "c4dvJ3Sz70ugnJ3q1cK0SkwJZodD"
+ },
+ "enable_features": [
+ "HappinessTrackingSurveysForSecurityPage"
+ ]
+ }
+ ]
+ }
+ ],
"SegmentationCompactionFix": [
{
"platforms": [
@@ -21983,6 +21404,25 @@
]
}
],
+ "SelfFreeze": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_10_100",
+ "params": {
+ "delay_after_tasks": "10",
+ "max_chunk_size": "100"
+ },
+ "enable_features": [
+ "ShouldFreezeSelf"
+ ]
+ }
+ ]
+ }
+ ],
"SendTabToSelfIOSPushNotifications": [
{
"platforms": [
@@ -22029,13 +21469,7 @@
],
"experiments": [
{
- "//0": "This experiment group might not be included in the",
- "//1": " same finch config, but it's important for now to ",
- "//2": "have tests ran with all relevant flags and params ",
- "//3": " enabled.",
- "//4": "Note that SensitiveContentWhileSwitchingTabs ",
- "//5": "depends on SensitiveContent being enabed, too.",
- "name": "Enabled_WithPwmHeuristicsAndTabSwitching",
+ "name": "Enabled_WithTabSwitchingAndPwmHeuristics",
"params": {
"sensitive_content_use_pwm_heuristics": "true"
},
@@ -22044,6 +21478,16 @@
"SensitiveContentWhileSwitchingTabs"
]
},
+ {
+ "name": "Enabled_WithTabSwitching",
+ "params": {
+ "sensitive_content_use_pwm_heuristics": "false"
+ },
+ "enable_features": [
+ "SensitiveContent",
+ "SensitiveContentWhileSwitchingTabs"
+ ]
+ },
{
"name": "Enabled_WithPwmHeuristics",
"params": {
@@ -22051,6 +21495,9 @@
},
"enable_features": [
"SensitiveContent"
+ ],
+ "disable_features": [
+ "SensitiveContentWhileSwitchingTabs"
]
},
{
@@ -22060,6 +21507,9 @@
},
"enable_features": [
"SensitiveContent"
+ ],
+ "disable_features": [
+ "SensitiveContentWhileSwitchingTabs"
]
}
]
@@ -22173,45 +21623,6 @@
]
}
],
- "ServiceWorkerStaticRouter": [
- {
- "platforms": [
- "android",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ServiceWorkerStaticRouter"
- ]
- }
- ]
- }
- ],
- "ServiceWorkerStorageSuppressPostTask": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ServiceWorkerStorageSuppressPostTask"
- ]
- }
- ]
- }
- ],
"SettingSearchExplorationHaTS": [
{
"platforms": [
@@ -22227,7 +21638,7 @@
"en_site_id": "JcjxgSDnh0ugnJ3q1cK0UVkwDj1o",
"probability": "1.0",
"settings-time": "10s",
- "survey": "settings-privacy"
+ "survey": "settings"
},
"enable_features": [
"HappinessTrackingSurveysForDesktopSettings"
@@ -22550,6 +21961,28 @@
]
}
],
+ "SimdutfBase64Support": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "chromeos_lacros",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_SimdutfWithFurtherOptimization",
+ "enable_features": [
+ "FurtherOptimizeParsingDataUrls",
+ "SimdutfBase64Support"
+ ]
+ }
+ ]
+ }
+ ],
"SingleNTPRemoveExtraNTPs": [
{
"platforms": [
@@ -22597,6 +22030,26 @@
]
}
],
+ "SiteInstanceGroupsForDataUrls": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SiteInstanceGroupsForDataUrls"
+ ]
+ }
+ ]
+ }
+ ],
"SkiaGraphite": [
{
"platforms": [
@@ -22637,6 +22090,21 @@
]
}
],
+ "SkipParentAccessCodeForReauth": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SkipParentAccessCodeForReauth"
+ ]
+ }
+ ]
+ }
+ ],
"SkipUnnecessaryRemoteFrameGeometryPropagation": [
{
"platforms": [
@@ -22783,42 +22251,6 @@
]
}
],
- "SpeculativeServiceWorkerWarmUp": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "StayPrewarmed10m_20240315",
- "params": {
- "sw_warm_up_batch_timer": "1ms",
- "sw_warm_up_dry_run": "false",
- "sw_warm_up_duration": "10m",
- "sw_warm_up_first_batch_timer": "1ms",
- "sw_warm_up_from_loading_predictor": "true",
- "sw_warm_up_intersection_observer": "false",
- "sw_warm_up_on_idle_timeout": "true",
- "sw_warm_up_on_pointerdown": "true",
- "sw_warm_up_on_pointerover": "true",
- "sw_warm_up_on_visible": "false",
- "sw_warm_up_request_queue_length": "100",
- "sw_warm_up_wait_for_load": "false"
- },
- "enable_features": [
- "SpeculativeServiceWorkerWarmUp"
- ],
- "disable_features": [
- "SpeculativeServiceWorkerStartup"
- ]
- }
- ]
- }
- ],
"SplitCacheByNavigationInitiatorSite": [
{
"platforms": [
@@ -23060,42 +22492,6 @@
]
}
],
- "StructuredMetricsStorageManager": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "EnableStorageManager",
- "enable_features": [
- "EventStorageManager"
- ]
- }
- ]
- }
- ],
- "SubSampleWindowProxyUsageMetrics": [
- {
- "platforms": [
- "android_webview",
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "SubSampleWindowProxyUsageMetrics"
- ]
- }
- ]
- }
- ],
"SubframeProcessReuseThresholds": [
{
"platforms": [
@@ -23133,23 +22529,6 @@
]
}
],
- "SuppressToolbarCapturesAtGestureEndStudy": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_BothSuppressToolbarCaptures",
- "enable_features": [
- "EnableGestureBeginEndTypes",
- "SuppressToolbarCaptures",
- "SuppressToolbarCapturesAtGestureEnd"
- ]
- }
- ]
- }
- ],
"SuppressesNetworkActivitiesOnSlowNetwork": [
{
"platforms": [
@@ -23312,24 +22691,6 @@
]
}
],
- "TabGroupCreationDialogAndroid": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "show_tab_group_creation_dialog_setting": "false"
- },
- "enable_features": [
- "TabGroupCreationDialogAndroid"
- ]
- }
- ]
- }
- ],
"TabGroupSyncAndroid": [
{
"platforms": [
@@ -23346,6 +22707,9 @@
"TabGroupPaneAndroid",
"TabGroupSyncAndroid",
"TabStripGroupCollapseAndroid"
+ ],
+ "disable_features": [
+ "TabGroupSyncDisableNetworkLayer"
]
}
]
@@ -23466,25 +22830,6 @@
]
}
],
- "TabStripCollectionStorage": [
- {
- "platforms": [
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "TabStripCollectionStorage"
- ]
- }
- ]
- }
- ],
"TabStripIncognitoMigration": [
{
"platforms": [
@@ -23500,6 +22845,21 @@
]
}
],
+ "TabSwitcherFullNewTabButton": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "TabSwitcherFullNewTabButton"
+ ]
+ }
+ ]
+ }
+ ],
"TabstripDeclutter": [
{
"platforms": [
@@ -23608,14 +22968,9 @@
]
}
],
- "TextSizeAdjustImprovements": [
+ "TextSafetyScanLanguageDetection": [
{
"platforms": [
- "android",
- "android_weblayer",
- "android_webview",
- "chromeos",
- "fuchsia",
"linux",
"mac",
"windows"
@@ -23624,7 +22979,7 @@
{
"name": "Enabled",
"enable_features": [
- "TextSizeAdjustImprovements"
+ "TextSafetyScanLanguageDetection"
]
}
]
@@ -23719,6 +23074,27 @@
]
}
],
+ "ThrottleMainFrameTo60Hz": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ThrottleMainFrameTo60Hz"
+ ]
+ }
+ ]
+ }
+ ],
"ThrottleUnimportantFrameTimers": [
{
"platforms": [
@@ -23763,6 +23139,46 @@
]
}
],
+ "ToastRefinementsStudy": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledWithRefinements",
+ "enable_features": [
+ "ToastRefinements"
+ ]
+ }
+ ]
+ }
+ ],
+ "ToastTimeoutStudy": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledWithUpdatedTimeout",
+ "params": {
+ "toast_timeout": "8s",
+ "toast_without_action_timeout": "4s"
+ },
+ "enable_features": [
+ "ToastFramework"
+ ]
+ }
+ ]
+ }
+ ],
"ToolbarPinning": [
{
"platforms": [
@@ -23782,25 +23198,6 @@
]
}
],
- "TopChromeWebUIUsesSpareRenderer": [
- {
- "platforms": [
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "TopChromeWebUIUsesSpareRenderer"
- ]
- }
- ]
- }
- ],
"TouchpadFastClickStudy": [
{
"platforms": [
@@ -23816,6 +23213,21 @@
]
}
],
+ "TraceBinderIpc": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "TraceBinderIpc"
+ ]
+ }
+ ]
+ }
+ ],
"TrackingProtection3pcd": [
{
"platforms": [
@@ -23835,40 +23247,6 @@
]
}
],
- "TrackingProtection3pcdUx": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Rewind",
- "disable_features": [
- "TrackingProtection3pcdUx"
- ]
- }
- ]
- }
- ],
- "TrackpadDropdownMenu": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "Enabled_20230829",
- "enable_features": [
- "MouseAndTrackpadDropdownMenu"
- ]
- }
- ]
- }
- ],
"TrackpadGestureSupport": [
{
"platforms": [
@@ -23902,27 +23280,6 @@
]
}
],
- "TransportSecurityFileWriterSchedule": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled10Minutes_20241105",
- "params": {
- "commit_interval": "10m"
- },
- "enable_features": [
- "TransportSecurityFileWriterSchedule"
- ]
- }
- ]
- }
- ],
"TransportSecurityFileWriterScheduleAndroid": [
{
"platforms": [
@@ -24202,30 +23559,15 @@
{
"name": "Enabled",
"enable_features": [
+ "AutofillRemovePaymentsButterDropdown",
+ "ImprovedSettingsUIOnDesktop",
+ "ImprovedSigninUIOnDesktop",
"OutlineSilhouetteIcon"
]
}
]
}
],
- "UnoDesktopM0Full": [
- {
- "platforms": [
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "ExplicitBrowserSigninUIOnDesktop",
- "SyncEnableContactInfoDataTypeInTransportMode"
- ]
- }
- ]
- }
- ],
"UnoPwa": [
{
"platforms": [
@@ -24260,26 +23602,6 @@
]
}
],
- "UseAsyncOsCryptInLoginDatabase": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "UseAsyncOsCryptInLoginDatabase"
- ]
- }
- ]
- }
- ],
"UseBoringSSLForRandBytes": [
{
"platforms": [
@@ -24301,12 +23623,11 @@
]
}
],
- "UseBrowserCalculatedOrigins": [
+ "UseBrowserCalculatedOrigin": [
{
"platforms": [
"android",
"android_webview",
- "chromeos",
"linux",
"mac",
"windows"
@@ -24315,7 +23636,7 @@
{
"name": "Enabled",
"enable_features": [
- "UseBrowserCalculatedOrigins"
+ "UseBrowserCalculatedOrigin"
]
}
]
@@ -24398,26 +23719,6 @@
]
}
],
- "UseDMSAAForTilesAndroidGL": [
- {
- "platforms": [
- "android",
- "android_webview",
- "android_weblayer"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "geolocation_request_timeout_minutes": "30"
- },
- "enable_features": [
- "UseDMSAAForTilesAndroidGL"
- ]
- }
- ]
- }
- ],
"UseFusedLocationProvider": [
{
"platforms": [
@@ -24482,69 +23783,6 @@
]
}
],
- "UseMoveNotCopyInAXTreeCombiner": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "UseMoveNotCopyInAXTreeCombiner"
- ]
- }
- ]
- }
- ],
- "UseMoveNotCopyInMergeTreeUpdate": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "UseMoveNotCopyInMergeTreeUpdate"
- ]
- }
- ]
- }
- ],
- "UseNewEncryptionKeyForWebData": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "UseNewEncryptionKeyForWebData"
- ]
- }
- ]
- }
- ],
"UsePollForMessagePumpEpoll": [
{
"platforms": [
@@ -24695,186 +23933,6 @@
]
}
],
- "UserLevelMemoryPressureSignalOn4GbDevices": [
- {
- "platforms": [
- "android",
- "android_webview"
- ],
- "experiments": [
- {
- "name": "Enabled_default",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "458"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_99p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "803"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_99p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "803"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_95p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "508"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_95p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "508"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_90p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "405"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- },
- {
- "name": "Enabled_90p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "405"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn4GbDevices"
- ]
- }
- ]
- }
- ],
- "UserLevelMemoryPressureSignalOn6GbDevices": [
- {
- "platforms": [
- "android",
- "android_webview"
- ],
- "experiments": [
- {
- "name": "Enabled_default",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "494"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_99p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "924"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_99p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "924"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_95p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "580"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_95p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "580"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_90p_5m",
- "params": {
- "inert_interval_after_loading": "5m",
- "memory_threshold_mb": "460"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- },
- {
- "name": "Enabled_90p_1m",
- "params": {
- "inert_interval_after_loading": "1m",
- "memory_threshold_mb": "460"
- },
- "enable_features": [
- "UserLevelMemoryPressureSignalOn6GbDevices"
- ]
- }
- ]
- }
- ],
- "UsernameFirstFlowWithIntermediateValuesPredictions": [
- {
- "platforms": [
- "android",
- "chromeos",
- "ios",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "UsernameFirstFlowWithIntermediateValuesPredictions"
- ]
- }
- ]
- }
- ],
"V8CodeFlushing": [
{
"platforms": [
@@ -24981,27 +24039,6 @@
]
}
],
- "V8CppGCEnableLargerCage": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "fuchsia",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "V8CppGCEnableLargerCage"
- ]
- }
- ]
- }
- ],
"V8EfficiencyModeTiering": [
{
"platforms": [
@@ -25198,49 +24235,21 @@
]
}
],
- "V8ScavengerHigherCapacity": [
+ "V8MinorGcTaskWithLowerPriority": [
{
"platforms": [
"android",
"android_webview",
"chromeos",
- "fuchsia",
"linux",
"mac",
"windows"
],
"experiments": [
{
- "name": "V8ScavengerMaxCapacity16MB",
- "params": {
- "V8ScavengerMaxCapacity": "16"
- },
+ "name": "Enabled",
"enable_features": [
- "V8ScavengerHigherCapacity"
- ]
- },
- {
- "name": "V8ScavengerMaxCapacity32MB",
- "params": {
- "V8ScavengerMaxCapacity": "32"
- },
- "enable_features": [
- "V8ScavengerHigherCapacity"
- ]
- },
- {
- "name": "V8ScavengerMaxCapacity64MB",
- "params": {
- "V8ScavengerMaxCapacity": "64"
- },
- "enable_features": [
- "V8ScavengerHigherCapacity"
- ]
- },
- {
- "name": "Control",
- "disable_features": [
- "V8ScavengerHigherCapacity"
+ "V8Flag_minor_gc_task_with_lower_priority"
]
}
]
@@ -25415,6 +24424,43 @@
]
}
],
+ "V8WasmDeoptCallIndirectInlining": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "DeoptAndInlining",
+ "enable_features": [
+ "WebAssemblyDeopt",
+ "WebAssemblyInliningCallIndirect"
+ ]
+ },
+ {
+ "name": "InliningOnly",
+ "enable_features": [
+ "WebAssemblyInliningCallIndirect"
+ ],
+ "disable_features": [
+ "WebAssemblyDeopt"
+ ]
+ },
+ {
+ "name": "Control",
+ "disable_features": [
+ "WebAssemblyDeopt",
+ "WebAssemblyInliningCallIndirect"
+ ]
+ }
+ ]
+ }
+ ],
"VSyncAlignedPresent": [
{
"platforms": [
@@ -25562,21 +24608,6 @@
]
}
],
- "VersionedWallpaperInfo": [
- {
- "platforms": [
- "chromeos"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "VersionedWallpaperInfo"
- ]
- }
- ]
- }
- ],
"VideoConferenceDLCUIRollout": [
{
"platforms": [
@@ -25751,6 +24782,29 @@
]
}
],
+ "WaitForLateScrollEvents": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "DispatchScrollEventsUntilDeadline",
+ "params": {
+ "mode": "DispatchScrollEventsUntilDeadline"
+ },
+ "enable_features": [
+ "WaitForLateScrollEvents"
+ ]
+ }
+ ]
+ }
+ ],
"WebApkBackupAndRestore": [
{
"platforms": [
@@ -25809,58 +24863,6 @@
]
}
],
- "WebAssemblyDeopt": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WebAssemblyDeopt"
- ]
- },
- {
- "name": "Control",
- "disable_features": [
- "WebAssemblyDeopt"
- ]
- }
- ]
- }
- ],
- "WebAssemblyInliningCallIndirect": [
- {
- "platforms": [
- "android",
- "android_webview",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WebAssemblyInliningCallIndirect"
- ]
- },
- {
- "name": "Control",
- "disable_features": [
- "WebAssemblyInliningCallIndirect"
- ]
- }
- ]
- }
- ],
"WebAudioBypassOutputBuffering": [
{
"platforms": [
@@ -25880,7 +24882,7 @@
]
}
],
- "WebContentsCaptureHiDPI": [
+ "WebAuthnUsePasskeyFromAnotherDeviceInContextMenu": [
{
"platforms": [
"chromeos",
@@ -25892,7 +24894,7 @@
{
"name": "Enabled",
"enable_features": [
- "WebContentsCaptureHiDPI"
+ "WebAuthnUsePasskeyFromAnotherDeviceInContextMenu"
]
}
]
@@ -26005,6 +25007,26 @@
]
}
],
+ "WebProtectStopRegisterFcm": [
+ {
+ "platforms": [
+ "chromeos",
+ "chromeos_lacros",
+ "fuchsia",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "StopRegisterFcmEnabled"
+ ]
+ }
+ ]
+ }
+ ],
"WebRTC-Aec3BufferingMaxAllowedExcessRenderBlocksOverride": [
{
"platforms": [
@@ -26316,6 +25338,25 @@
]
}
],
+ "WebRTC-Video-AV1EvenPayloadSizes": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "fuchsia",
+ "linux",
+ "android",
+ "android_weblayer",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled"
+ }
+ ]
+ }
+ ],
"WebRTC-Video-EnableRetransmitAllLayers": [
{
"platforms": [
@@ -26419,21 +25460,6 @@
]
}
],
- "WebRTCPipeWireCapturer": [
- {
- "platforms": [
- "linux"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WebRTCPipeWireCapturer"
- ]
- }
- ]
- }
- ],
"WebRtcAudioSinkUseTimestampAligner": [
{
"platforms": [
@@ -26490,24 +25516,6 @@
]
}
],
- "WebRtcThreadsUseResourceEfficientType": [
- {
- "platforms": [
- "chromeos",
- "fuchsia",
- "linux",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WebRtcThreadsUseResourceEfficientType"
- ]
- }
- ]
- }
- ],
"WebUITabStrip": [
{
"platforms": [
@@ -26531,21 +25539,6 @@
]
}
],
- "WebViewAsyncDns": [
- {
- "platforms": [
- "android_webview"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WebViewAsyncDns"
- ]
- }
- ]
- }
- ],
"WebViewAutoGrantStorageAccessAPI": [
{
"platforms": [
@@ -26568,7 +25561,7 @@
]
}
],
- "WebViewEnableADPF": [
+ "WebViewEnableADPFGpuMain": [
{
"platforms": [
"android_webview"
@@ -26577,13 +25570,13 @@
{
"name": "Enabled",
"enable_features": [
- "WebViewEnableADPF"
+ "WebViewEnableADPFGpuMain"
]
}
]
}
],
- "WebViewFrameRateHints": [
+ "WebViewInterceptedCookieHeader": [
{
"platforms": [
"android_webview"
@@ -26592,27 +25585,7 @@
{
"name": "Enabled",
"enable_features": [
- "WebViewFrameRateHints"
- ],
- "min_os_version": "15.0.0"
- }
- ]
- }
- ],
- "WebViewIPProtectionPhase0": [
- {
- "platforms": [
- "android_webview"
- ],
- "experiments": [
- {
- "//0": "Refers to the combined Chrome + Full Device MDL",
- "name": "mdl_3_2024-02-21",
- "params": {
- "MaskedDomainListExperimentGroup": "3"
- },
- "enable_features": [
- "MaskedDomainList"
+ "WebViewInterceptedCookieHeader"
]
}
]
@@ -26911,6 +25884,21 @@
]
}
],
+ "WinSboxFilterServiceEnvironment": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "WinSboxFilterServiceEnvironment"
+ ]
+ }
+ ]
+ }
+ ],
"WinSboxNoFakeGdiInit": [
{
"platforms": [
@@ -26926,21 +25914,6 @@
]
}
],
- "WinSboxParallelProcessLaunch": [
- {
- "platforms": [
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "WinSboxParallelProcessLaunch"
- ]
- }
- ]
- }
- ],
"WinSystemLocationPermission": [
{
"platforms": [
@@ -26956,6 +25929,21 @@
]
}
],
+ "WindowsSystemTracing": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "WindowsSystemTracing"
+ ]
+ }
+ ]
+ }
+ ],
"YieldWithInputHint": [
{
"platforms": [
@@ -26965,7 +25953,7 @@
{
"name": "EnabledThrottling0ms",
"params": {
- "poll_interval_ms": "0"
+ "poll_interval_ms": "1"
},
"enable_features": [
"YieldWithInputHint"
@@ -27022,22 +26010,7 @@
],
"experiments": [
{
- "name": "Enabled_Prefetching_Warmup_Ablation_Debouncing",
- "params": {
- "ZeroSuggestPrefetchDebounceDelay": "300",
- "ZeroSuggestPrefetchDebounceFromLastRun": "true"
- },
- "enable_features": [
- "AblateSearchProviderWarmup",
- "ZeroSuggestPrefetchDebouncing",
- "ZeroSuggestPrefetchingOnSRP"
- ],
- "disable_features": [
- "ZeroSuggestPrefetchingOnWeb"
- ]
- },
- {
- "name": "Enabled_Prefetching_Warmup_Ablation",
+ "name": "Enabled_PrefetchingOnSRP_Warmup_Ablation",
"enable_features": [
"AblateSearchProviderWarmup",
"ZeroSuggestPrefetchingOnSRP"
@@ -27046,17 +26019,6 @@
"ZeroSuggestPrefetchDebouncing",
"ZeroSuggestPrefetchingOnWeb"
]
- },
- {
- "name": "Enabled_Prefetching_Only",
- "enable_features": [
- "ZeroSuggestPrefetchingOnSRP"
- ],
- "disable_features": [
- "AblateSearchProviderWarmup",
- "ZeroSuggestPrefetchDebouncing",
- "ZeroSuggestPrefetchingOnWeb"
- ]
}
]
}
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 32b50770..59eed74e 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
@@ -972,8 +972,8 @@ enum WebFeature {
kAudioContextCrossOriginIframe = 1430,
// The above items are available in M53 branch
- kPointerEventSetCapture = 1431,
- kPointerEventDispatch = 1432,
+ kOBSOLETE_PointerEventSetCapture = 1431,
+ kOBSOLETE_PointerEventDispatch = 1432,
kMIDIMessageEventReceivedTime = 1433,
kV8MediaStream_Active_AttributeGetter = 1435,
kBeforeInstallPromptEvent = 1436,
@@ -994,7 +994,7 @@ enum WebFeature {
kMouseDownFired = 1451,
kPointerDownFired = 1452,
kPointerDownFiredForTouch = 1453,
- kPointerEventDispatchPointerDown = 1454,
+ kOBSOLETE_PointerEventDispatchPointerDown = 1454,
kSVGSMILBeginOrEndEventValue = 1455,
kSVGSMILBeginOrEndSyncbaseValue = 1456,
kSVGSMILElementInsertedAfterLoad = 1457,
@@ -1276,7 +1276,7 @@ enum WebFeature {
kServiceWorkerNavigationPreload = 1803,
kFullscreenRequestWithPendingElement = 1804,
kHTMLIFrameElementAllowfullscreenAttributeSetAfterContentLoad = 1805,
- kPointerEventSetCaptureOutsideDispatch = 1806,
+ kOBSOLETE_PointerEventSetCaptureOutsideDispatch = 1806,
kNotificationPermissionRequestedInsecureOrigin = 1807,
kV8DeprecatedStorageInfo_QueryUsageAndQuota_Method = 1808,
kV8DeprecatedStorageInfo_RequestQuota_Method = 1809,
@@ -1292,7 +1292,7 @@ enum WebFeature {
kFetchResponseConstructionWithStream = 1826,
kLocationOrigin = 1827,
kCanvas2DFilter = 1830,
- kCanvas2DImageSmoothingQuality = 1831,
+ kOBSOLETE_Canvas2DImageSmoothingQuality = 1831,
kCanvasToBlob = 1832,
kCanvasToDataURL = 1833,
kOffscreenCanvasConvertToBlob = 1834,
@@ -1737,8 +1737,8 @@ enum WebFeature {
kV8HTMLElement_Autocapitalize_AttributeGetter = 2349,
kV8HTMLElement_Autocapitalize_AttributeSetter = 2350,
kCSSLegacyAlignment = 2351,
- kSRISignatureCheck = 2352,
- kSRISignatureSuccess = 2353,
+ kOBSOLETE_SRISignatureCheck = 2352,
+ kOBSOLETE_SRISignatureSuccess = 2353,
kCSSBasicShape = 2354,
kCSSGradient = 2355,
kCSSPaintFunction = 2356,
@@ -2019,10 +2019,10 @@ enum WebFeature {
kV8SVGGeometryElement_GetTotalLength_Method = 2667,
kV8SVGGeometryElement_GetPointAtLength_Method = 2668,
kOffscreenCanvasTransferToImageBitmap = 2669,
- kOffscreenCanvasIsPointInPath = 2670,
- kOffscreenCanvasIsPointInStroke = 2671,
- kOffscreenCanvasMeasureText = 2672,
- kOffscreenCanvasGetImageData = 2673,
+ kOBSOLETE_OffscreenCanvasIsPointInPath = 2670,
+ kOBSOLETE_OffscreenCanvasIsPointInStroke = 2671,
+ kOBSOLETE_OffscreenCanvasMeasureText = 2672,
+ kOBSOLETE_OffscreenCanvasGetImageData = 2673,
kV8SVGTextContentElement_GetComputedTextLength_Method = 2674,
kV8SVGTextContentElement_GetEndPositionOfChar_Method = 2675,
kV8SVGTextContentElement_GetExtentOfChar_Method = 2676,
@@ -3159,7 +3159,7 @@ enum WebFeature {
kV8ScreenDetailed_PointerTypes_AttributeGetter = 3848,
kV8ScreenDetailed_Label_AttributeGetter = 3849,
kPermissionsPolicyHeader = 3850,
- kWebAppManifestUrlHandlers = 3851,
+ kOBSOLETE_WebAppManifestUrlHandlers = 3851,
kLaxAllowingUnsafeCookies = 3852,
kV8MediaSession_SetMicrophoneActive_Method = 3853,
kV8MediaSession_SetCameraActive_Method = 3854,
@@ -3182,7 +3182,7 @@ enum WebFeature {
kPaymentRequestCSPViolation = 3871,
kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope = 3872,
kAuthorizationCoveredByWildcard = 3873,
- kElementGetInnerHTML = 3874,
+ kOBSOLETE_ElementGetInnerHTML = 3874,
kFileHandlingLaunch = 3875,
kSameOriginDocumentsWithDifferentCOOPStatus = 3876,
kHTMLMediaElementSetSinkId = 3877,
@@ -3771,8 +3771,8 @@ enum WebFeature {
kFedCmUserInfo = 4426,
// The items above roughly this point are available in the M110 branch.
- kIDNA2008DeviationCharacterInHostnameOfSubresource = 4427,
- kIDNA2008DeviationCharacterInHostnameOfIFrame = 4428,
+ kOBSOLETE_IDNA2008DeviationCharacterInHostnameOfSubresource = 4427,
+ kOBSOLETE_IDNA2008DeviationCharacterInHostnameOfIFrame = 4428,
kWindowOpenPopupOnMobile = 4429,
kWindowOpenedAsPopupOnMobile = 4430,
kOBSOLETE_PrivateNetworkAccessIgnoredCrossOriginPreflightError = 4431,
@@ -4054,7 +4054,7 @@ enum WebFeature {
kV8ClipboardItem_Supports_Method = 4692,
kThirdPartyCookieAccessBlockByExperiment = 4693,
kCspWouldBlockIfWildcardDoesNotMatchWs = 4694,
- kCspWouldBlockIfWildcardDoesNotMatchFtp = 4695,
+ kOBSOLETE_CspWouldBlockIfWildcardDoesNotMatchFtp = 4695,
kStorageAccessAPI_requestStorageAccess_BeyondCookies = 4696,
kStorageAccessAPI_requestStorageAccess_BeyondCookies_all = 4697,
kStorageAccessAPI_requestStorageAccess_BeyondCookies_sessionStorage = 4698,
@@ -4197,7 +4197,7 @@ enum WebFeature {
kSpeculationRulesBrowserPrefetchRule = 4831,
kSpeculationRulesBrowserPrerenderRule = 4832,
kFirstPartySharedWorkerSameSiteCookiesNone = 4833,
- kCSSCustomStateDeprecatedSyntax = 4834,
+ kOBSOLETE_CSSCustomStateDeprecatedSyntax = 4834,
kFullscreenAllowedByContentSetting = 4835,
kSharedStorageAPI_CreateWorklet_Method = 4836,
kCanvas2DLayers = 4837,
@@ -4293,7 +4293,7 @@ enum WebFeature {
kOBSOLETE_V8ModelGenericSession_ExecuteStreaming_Method = 4923,
kOBSOLETE_V8ModelManager_CanCreateGenericSession_Method = 4924,
kOBSOLETE_V8ModelManager_CreateGenericSession_Method = 4925,
- kV8Animation_Progress_AttributeGetter = 4926,
+ kV8Animation_OverallProgress_AttributeGetter = 4926,
kOBSOLETE_V8ModelManager_DefaultGenericSessionOptions_Method = 4927,
kQuirksModeCursorHandApplied = 4928,
kSkippedPreloadScanning = 4929,
@@ -4323,7 +4323,7 @@ enum WebFeature {
kCanvas2DLayersFilters = 4951,
kCanvas2DLayersCSSFilters = 4952,
kCanvas2DLayersFilterObjects = 4953,
- kCSSScrollStartTarget = 4954,
+ kCSSScrollInitialTarget = 4954,
kFedCmContinueOnResponse = 4955,
kFedCmMultipleIdentityProviders = 4956,
kFedCmWithStorageAccessAPI = 4957,
@@ -4346,9 +4346,9 @@ enum WebFeature {
kV8ModelGenericSession_Destroy_Method = 4973,
kUsedDeviceScaleAdjustment = 4974,
- kDisableThirdPartyStoragePartitioning2 = 4975,
+ kOBSOLETE_DisableThirdPartyStoragePartitioning2 = 4975,
kLinkRelPayment = 4976,
- kV8GPUAdapter_RequestAdapterInfo_Method = 4977,
+ kOBSOLETE_V8GPUAdapter_RequestAdapterInfo_Method = 4977,
kOBSOLETE_V8ModelGenericSession_Destroy_Method = 4978,
kOBSOLETE_V8AITextSession_Execute_Method = 4979,
kOBSOLETE_V8AITextSession_ExecuteStreaming_Method = 4980,
@@ -4371,6 +4371,8 @@ enum WebFeature {
kV8InvalidatedNoUndetectableObjectsProtector = 4997,
kV8DocumentAllLegacyCall = 4998,
kV8DocumentAllLegacyConstruct = 4999,
+ // The items above roughly this point are available in the M127 branch.
+
kInsideListMarkerPositionQuirk = 5000,
kZstdContentEncodingForNavigation = 5001,
kZstdContentEncodingForMainFrameNavigation = 5002,
@@ -4409,6 +4411,8 @@ enum WebFeature {
kWebGPUSubgroupsFeatures = 5035,
kAudioContextOnError = 5036,
kNoVarySearchPrerender = 5037,
+ // The items above roughly this point are available in the M128 branch.
+
kOBSOLETE_V8AITextSession_Clone_Method = 5038,
kGamepadHapticActuatorType = 5039,
kSelectionDirection = 5040,
@@ -4431,7 +4435,7 @@ enum WebFeature {
kSharedStorageWriteFromBidderReportWin = 5057,
kSharedStorageWriteFromSellerScoreAd = 5058,
kSharedStorageWriteFromSellerReportResult = 5059,
- kCSSInsetAreaProperty = 5060,
+ kOBSOLETE_CSSInsetAreaProperty = 5060,
kStructuredCloneMethod = 5061,
kV8AI_Writer_AttributeGetter = 5062,
kV8AIWriterFactory_Create_Method = 5063,
@@ -4443,6 +4447,8 @@ enum WebFeature {
kV8AIRewriter_Rewrite_Method = 5069,
kV8AIRewriter_RewriteStreaming_Method = 5070,
kV8AIRewriter_Destroy_Method = 5071,
+ // The items above roughly this point are available in the M129 branch.
+
kFencedFrameCanLoadOpaqueURL = 5072,
kV8Performance_Memory_AttributeGetter_NotLockedToSite = 5073,
kPartitionedPopin_OpenAttempt = 5074,
@@ -4473,6 +4479,8 @@ enum WebFeature {
kCssDisplayPropertyMultipleValues = 5099,
kDocumentPolicyExpectNoLinkedResources = 5100,
kSelectionIsCollapsedBehaviorChange = 5101,
+ // The items above roughly this point are available in the M130 branch.
+
kTopicsAPIAll = 5102,
kPaymentRequestDeprecatedPaymentMethod = 5103,
kV8PublicKeyCredential_SignalUnknownCredential_Method = 5104,
@@ -4491,6 +4499,8 @@ enum WebFeature {
kV8PerformanceResourceTiming_WorkerMatchedSourceType_AttributeGetter = 5117,
kV8PerformanceResourceTiming_WorkerFinalSourceType_AttributeGetter = 5118,
kV8AI_LanguageModel_AttributeGetter = 5119,
+ // The items above roughly this point are available in the M131 branch.
+
kV8RTCEncodedVideoFrame_Timestamp_AttributeGetter = 5120,
kV8RTCEncodedAudioFrame_Timestamp_AttributeGetter = 5121,
kOBSOLETE_V8AIAssistantCapabilities_LanguageAvailable_Method = 5122,
@@ -4562,6 +4572,58 @@ enum WebFeature {
kDocumentIsolationPolicyCredentialless = 5188,
kClipPathGeometryBox = 5189,
kActiveViewTransitionPseudo = 5190,
+ // The items above roughly this point are available in the M132 branch.
+
+ kScrollFunctionTimeline = 5191,
+ kViewFunctionTimeline = 5192,
+ kV8Animation_Constructor = 5193,
+ kV8Element_GetAnimations_Method = 5194,
+ kCSSCalcSizeFunction = 5195,
+ kMoveEvent = 5196,
+ kCanvas2DDrawText = 5197,
+ kCanvas2DMeasureText = 5198,
+ kCrossPartitionBlobURLFetch = 5199,
+ kCrossTopLevelSiteBlobURLNavigation = 5200,
+ kGeolocationSucceeded = 5201,
+ kGeolocationSucceededWithoutInjectionMitigation = 5202,
+ kSharedWorkerScriptUnderServiceWorkerControlIsBlob = 5203,
+ kDisableThirdPartyStoragePartitioning3 = 5204,
+ kControlledFrameElement = 5205,
+ kCanvas2DIsPointInPath = 5206,
+ kCanvas2DIsPointInStroke = 5207,
+ kCanvas2DGetImageData = 5208,
+ kV8ExtendingNonExtensibleWithPrivate = 5209,
+ kSharedStorageAPI_BatchUpdate_Method = 5210,
+ kPreservesPitch = 5211,
+ kSelectionCustomProperty = 5212,
+ kVerticalFormControls = 5213,
+ kV8AuthenticatorAttestationResponse_GetPublicKey_Method = 5214,
+ kCloseWatcherScriptConstructor = 5215,
+ kCanvas2DImageSmoothingQuality2 = 5216,
+ kNonNoneTouchActionWouldLoseEditableHandwriting = 5217,
+ kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath = 5218,
+ kSrcSetUsedHigherDensityImageFromCache = 5219,
+ kHTMLElementWritingSuggestions = 5220,
+ kCSSPseudoOpen = 5221,
+ kAdScriptInStackOnGeoLocation = 5222,
+ kAdScriptInStackOnClipboardRead = 5223,
+ kAdScriptInStackOnBluetooth = 5224,
+ kAdScriptInStackOnMicrophoneRead = 5225,
+ kAdScriptInStackOnCameraRead = 5226,
+ kClipboardCustomFormatRead = 5227,
+ kClipboardCustomFormatWrite = 5228,
+ kClipboardSvgRead = 5229,
+ kClipboardSvgWrite = 5230,
+ kVarFallbackValidation = 5231,
+ kLocaleInfoObsoletedGetters = 5232,
+ kInjectionMitigatedContextSubFrame = 5233,
+ kInjectionMitigatedContextMainFrame = 5234,
+ kCanvasTextDirectionConflict = 5235,
+ kCanvasTextDirectionGet = 5236,
+ kCanvasTextDirectionGetInherit = 5237,
+ kCanvasTextDirectionSet = 5238,
+ kCanvasTextDirectionSetInherit = 5239,
+ kTopicsAPIImg = 5240,
// Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots. Also don't add extra
diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animatable.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animatable.idl
index 3e816b75..a7b5a285 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/animation/animatable.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animatable.idl
@@ -31,7 +31,7 @@
// https://w3.org/TR/web-animations-1/#the-animatable-interface-mixin
interface mixin Animatable {
[CallWith=ScriptState, Measure, RaisesException] Animation animate(object? keyframes, optional (unrestricted double or KeyframeAnimationOptions) options);
- sequence getAnimations(optional GetAnimationsOptions options = {});
+ [Measure] sequence getAnimations(optional GetAnimationsOptions options = {});
};
// https://drafts.csswg.org/web-animations-1/#extensions-to-the-element-interface
diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl
index 37fd8a23..03be82a3 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation.idl
@@ -38,15 +38,15 @@ enum ReplaceState { "active", "removed", "persisted" };
Exposed=Window,
ActiveScriptWrappable
] interface Animation : EventTarget {
- [CallWith=ExecutionContext, RaisesException] constructor(optional AnimationEffect? effect = null, optional AnimationTimeline? timeline);
+ [CallWith=ExecutionContext, Measure, RaisesException] constructor(optional AnimationEffect? effect = null, optional AnimationTimeline? timeline);
[Measure] attribute AnimationEffect? effect;
attribute AnimationTimeline? timeline;
[Measure, RaisesException=Setter] attribute CSSNumberish? startTime;
[Measure, RaisesException=Setter] attribute CSSNumberish? currentTime;
- [RuntimeEnabled=AnimationProgressAPI, Measure] readonly attribute double? progress;
+ [RuntimeEnabled=AnimationProgressAPI, Measure] readonly attribute double? overallProgress;
[Measure, RaisesException=Setter] attribute double playbackRate;
- [RuntimeEnabled=ScrollTimeline, Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeStart;
- [RuntimeEnabled=ScrollTimeline, Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeEnd;
+ [Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeStart;
+ [Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeEnd;
[Measure] readonly attribute AnimationPlayState playState;
[Measure] readonly attribute ReplaceState replaceState;
[Measure] readonly attribute boolean pending;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_timeline.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_timeline.idl
index c4ca4f44..aa652319 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_timeline.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_timeline.idl
@@ -9,6 +9,6 @@ enum TimelinePhase { "inactive", "before", "active", "after" };
Exposed=Window
] interface AnimationTimeline {
readonly attribute CSSNumberish? currentTime;
- [RuntimeEnabled=ScrollTimeline] readonly attribute CSSNumberish? duration;
+ readonly attribute CSSNumberish? duration;
[RuntimeEnabled=ScrollTimelineCurrentTime] CSSNumericValue? getCurrentTime(optional DOMString rangeName = "cover");
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/scroll_timeline.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/scroll_timeline.idl
index 58f7cb23..17c6c81d 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/animation/scroll_timeline.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/animation/scroll_timeline.idl
@@ -6,7 +6,6 @@ enum ScrollAxis { "block", "inline", "x", "y" };
// https://wicg.github.io/scroll-animations/#scrolltimeline-interface
[
- RuntimeEnabled=ScrollTimeline,
Exposed=Window
] interface ScrollTimeline : AnimationTimeline {
[CallWith=Document, RaisesException, MeasureAs=ScrollTimelineConstructor] constructor(optional ScrollTimelineOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/view_timeline.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/view_timeline.idl
index 9301a84c..9488c71d 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/animation/view_timeline.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/animation/view_timeline.idl
@@ -6,7 +6,6 @@
// version.
// https://drafts.csswg.org/scroll-animations-1/rewrite#viewtimeline-interface
[
- RuntimeEnabled=ScrollTimeline,
Exposed=Window
] interface ViewTimeline : ScrollTimeline {
[CallWith=Document, RaisesException, MeasureAs=ViewTimelineConstructor] constructor(optional ViewTimelineOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_nested_declarations.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_nested_declarations.idl
index 6f2e1134..2121d95b 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/css/css_nested_declarations.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_nested_declarations.idl
@@ -4,7 +4,6 @@
[
Exposed=Window,
- RuntimeEnabled=CSSNestedDeclarations,
ImplementedAs=CSSNestedDeclarationsRule
] interface CSSNestedDeclarations : CSSRule {
[SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_position_try_descriptors.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_position_try_descriptors.idl
index 0c79340c..e98ff214 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/css/css_position_try_descriptors.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_position_try_descriptors.idl
@@ -76,7 +76,4 @@ interface CSSPositionTryDescriptors : CSSStyleDeclaration {
[SetterCallWith=ExecutionContext, RaisesException=Setter, ImplementedAs=positionAnchor] attribute CSSOMString position-anchor;
[SetterCallWith=ExecutionContext, RaisesException=Setter] attribute CSSOMString positionArea;
[SetterCallWith=ExecutionContext, RaisesException=Setter, ImplementedAs=positionArea] attribute CSSOMString position-area;
- // TODO(crbug.com/352360007): these can be removed when inset-area is removed.
- [RuntimeEnabled=CSSInsetAreaProperty, SetterCallWith=ExecutionContext, RaisesException=Setter] attribute CSSOMString insetArea;
- [RuntimeEnabled=CSSInsetAreaProperty, SetterCallWith=ExecutionContext, RaisesException=Setter, ImplementedAs=insetArea] attribute CSSOMString inset-area;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_view_transition_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_view_transition_rule.idl
index d073ef84..d04a5fa0 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/css/css_view_transition_rule.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_view_transition_rule.idl
@@ -7,5 +7,5 @@
RuntimeEnabled=ViewTransitionOnNavigation
] interface CSSViewTransitionRule : CSSRule {
[SetterCallWith=ExecutionContext] readonly attribute CSSOMString navigation;
- [RuntimeEnabled=ViewTransitionTypes, SameObject, SaveSameObject] readonly attribute FrozenArray types;
+ [SameObject, SaveSameObject] readonly attribute FrozenArray types;
};
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 19ed6fcc..7f6810bd 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
@@ -40,7 +40,7 @@ class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet {
feature == media_feature_names::kMaxBlockSizeMediaFeature ||
feature == media_feature_names::kStuckMediaFeature ||
feature == media_feature_names::kSnappedMediaFeature ||
- feature == media_feature_names::kOverflowingMediaFeature ||
+ feature == media_feature_names::kScrollableMediaFeature ||
CSSVariableParser::IsValidVariableName(feature)) {
return false;
}
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/abort_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/abort_controller.idl
index 748c1275..3effaddc 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/abort_controller.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/abort_controller.idl
@@ -5,7 +5,7 @@
// https://dom.spec.whatwg.org/#interface-abortcontroller
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface AbortController {
[CallWith=ScriptState, Measure] constructor();
[SameObject] readonly attribute AbortSignal signal;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/abort_signal.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/abort_signal.idl
index d0d33188..7f1d3e0f 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/abort_signal.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/abort_signal.idl
@@ -5,7 +5,7 @@
// https://dom.spec.whatwg.org/#interface-AbortSignal
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface AbortSignal : EventTarget {
[
CallWith=ScriptState,
@@ -13,6 +13,7 @@
NewObject
] static AbortSignal abort(optional any reason);
[
+ Exposed=(Window,Worker),
CallWith=ScriptState,
MeasureAs=AbortSignalTimeout,
NewObject
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/dom_exception.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/dom_exception.idl
index 866ffbc5..6e829626 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/dom_exception.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/dom_exception.idl
@@ -31,7 +31,7 @@
// https://webidl.spec.whatwg.org/#es-DOMException
[
- Exposed=(Window,Worker),
+ Exposed=(Window,Worker,ShadowRealm), // TODO(crbug.com/41480387): This should be Exposed=*
Serializable
] interface DOMException {
constructor(optional DOMString message = "", optional DOMString name = "Error");
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl
index 39db560e..ff2824ad 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl
@@ -111,11 +111,6 @@ dictionary SetHTMLOptions {
[RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe(HTMLString html, SetHTMLOptions options);
[RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLSafe,CEReactions] void setHTML(DOMString html, optional SetHTMLOptions options = {});
- // Declarative Shadow DOM getInnerHTML() function. This version should be
- // considered deprecated, as we work to standardize the version below,
- // getHTML().
- [Affects=Nothing, MeasureAs=ElementGetInnerHTML, RuntimeEnabled=ElementGetInnerHTML] DOMString getInnerHTML(optional GetInnerHTMLOptions options = {});
-
// Declarative Shadow DOM getHTML() function.
[Affects=Nothing, MeasureAs=ElementGetHTML, RaisesException] DOMString getHTML(optional GetHTMLOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/events/custom_event.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/events/custom_event.idl
index 0bb00fd0..91eb44be 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/events/custom_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/events/custom_event.idl
@@ -26,7 +26,7 @@
// https://dom.spec.whatwg.org/#interface-customevent
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface CustomEvent : Event {
[CallWith=ScriptState] constructor(DOMString type, optional CustomEventInit eventInitDict = {});
[CallWith=ScriptState] readonly attribute any detail;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event.idl
index 5566b4b8..7ef78b6a 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event.idl
@@ -21,7 +21,7 @@
// https://dom.spec.whatwg.org/#interface-event
[
- Exposed=(Window,Worker,AudioWorklet)
+ Exposed=(Window,Worker,AudioWorklet,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface Event {
constructor(DOMString type, optional EventInit eventInitDict = {});
readonly attribute DOMString type;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl
index c85efe46..8eebe64b 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl
@@ -26,7 +26,7 @@ dictionary ObservableEventListenerOptions {
};
[
- Exposed=(Window,Worker,AudioWorklet)
+ Exposed=(Window,Worker,AudioWorklet,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface EventTarget {
[CallWith=ScriptState] constructor();
void addEventListener(DOMString type, EventListener? listener, optional (AddEventListenerOptions or boolean) options);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/node.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/node.idl
index 0eb51eff..eac7c52d 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/node.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/node.idl
@@ -75,7 +75,6 @@
boolean isDefaultNamespace(DOMString? namespaceURI);
[CEReactions, PerWorldBindings, RaisesException] Node insertBefore(Node node, Node? child);
- [CEReactions, PerWorldBindings, RaisesException, RuntimeEnabled=AtomicMoveAPI] Node moveBefore(Node node, Node? child);
[CEReactions, PerWorldBindings, RaisesException, RuntimeCallStatsCounter=NodeAppendChild] Node appendChild(Node node);
[CEReactions, PerWorldBindings, RaisesException] Node replaceChild(Node node, Node child);
[CEReactions, RaisesException, RuntimeCallStatsCounter=NodeRemoveChild] Node removeChild(Node child);
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 648c9bad..b4660e8e 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
@@ -45,7 +45,7 @@ dictionary SubscribeOptions {
typedef (ObserverCallback or Observer) ObserverUnion;
typedef (ObserverCallback or ObservableInspector) ObservableInspectorUnion;
-[Exposed=(Window,Worker), RuntimeEnabled=ObservableAPI]
+[Exposed=(Window,Worker,ShadowRealm), RuntimeEnabled=ObservableAPI] // TODO(crbug.com/40282760): This should be Exposed=*
interface Observable {
[CallWith=ScriptState, MeasureAs=ObservableConstructor] constructor(SubscribeCallback callback);
[CallWith=ScriptState] void subscribe(optional ObserverUnion observer = {}, optional SubscribeOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl
index 0ab7fa67..4633ab8c 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl
@@ -38,6 +38,7 @@ interface mixin ParentNode {
[Unscopable, RaisesException, CEReactions] void prepend((Node or DOMString or TrustedScript)... nodes);
[Unscopable, RaisesException, CEReactions] void append((Node or DOMString or TrustedScript)... nodes);
[Unscopable, RaisesException, CEReactions] void replaceChildren((Node or DOMString or TrustedScript)... nodes);
+ [CEReactions, PerWorldBindings, RaisesException, RuntimeEnabled=AtomicMoveAPI, MeasureAs="WebDXFeature::kMoveBeforeAPI"] void moveBefore(Node node, Node? child);
[Affects=Nothing, RaisesException] Element? querySelector(DOMString selectors);
[Affects=Nothing, NewObject, RaisesException] NodeList querySelectorAll(DOMString selectors);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/part.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/part.idl
index e9a69558..46b50885 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/part.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/part.idl
@@ -7,7 +7,7 @@
[RuntimeEnabled=DOMPartsAPI,Exposed=Window]
interface Part {
- [ImplementedAs=rootForBindings] readonly attribute PartRoot root;
+ [ImplementedAs=rootForBindings] readonly attribute PartRoot? root;
readonly attribute FrozenArray metadata;
void disconnect();
};
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 30932c4e..1c831388 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
@@ -40,11 +40,6 @@ interface ShadowRoot : DocumentFragment {
[RuntimeEnabled=ScopedCustomElementRegistry]
readonly attribute CustomElementRegistry? registry;
- // Declarative Shadow DOM getInnerHTML() function. This version should be
- // considered deprecated, as we work to standardize the version below,
- // getHTML().
- [Affects=Nothing, MeasureAs=ElementGetInnerHTML, RuntimeEnabled=ElementGetInnerHTML] HTMLString getInnerHTML(optional GetInnerHTMLOptions options = {});
-
// Declarative Shadow DOM getHTML() function.
[Affects=Nothing, MeasureAs=ElementGetHTML, RaisesException] HTMLString getHTML(optional GetHTMLOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl
index 889cff6d..197ed3ed 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl
@@ -4,7 +4,7 @@
// https://github.com/WICG/observable
-[Exposed=(Window,Worker), RuntimeEnabled=ObservableAPI]
+[Exposed=(Window,Worker,ShadowRealm), RuntimeEnabled=ObservableAPI] // TODO(crbug.com/40282760): This should be Exposed=*
interface Subscriber {
void next(any result);
[CallWith=ScriptState] void error(any error);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/error_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/error_event.idl
index d3e43625..cacba412 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/events/error_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/events/error_event.idl
@@ -31,7 +31,7 @@
// https://html.spec.whatwg.org/C/#the-errorevent-interface
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface ErrorEvent : Event {
[CallWith=ScriptState] constructor(DOMString type, optional ErrorEventInit eventInitDict = {});
readonly attribute DOMString message;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl
index 98344283..5440ecb4 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl
@@ -8,7 +8,7 @@
[
Exposed=Window
] interface InputEvent : UIEvent {
- constructor(DOMString type, optional InputEventInit eventInitDict = {});
+ [RaisesException] constructor(DOMString type, optional InputEventInit eventInitDict = {});
readonly attribute DOMString? data;
readonly attribute boolean isComposing;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/promise_rejection_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/promise_rejection_event.idl
index bd64040d..2885d196 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/events/promise_rejection_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/events/promise_rejection_event.idl
@@ -5,7 +5,7 @@
// https://html.spec.whatwg.org/C/#promiserejectionevent
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface PromiseRejectionEvent : Event {
[CallWith=ScriptState] constructor(DOMString type, PromiseRejectionEventInit eventInitDict);
[CallWith=ScriptState] readonly attribute Promise promise;
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 ad134361..041ef7c3 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
@@ -429,9 +429,7 @@ void RecordPrerenderActivationSignalDelay(const String& metric_suffix) {
#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN)
SkFontHinting RendererPreferencesToSkiaHinting(
const blink::RendererPreferences& prefs) {
-// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
-// complete.
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if BUILDFLAG(IS_LINUX)
if (!prefs.should_antialias_text) {
// When anti-aliasing is off, GTK maps all non-zero hinting settings to
// 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight'
@@ -652,6 +650,8 @@ WebViewImpl::WebViewImpl(
String(prerender_param->page_metric_suffix));
page_->SetShouldWarmUpCompositorOnPrerender(
prerender_param->should_warm_up_compositor);
+ page_->SetShouldPreparePaintTreeOnPrerender(
+ prerender_param->should_prepare_paint_tree);
}
if (fenced_frame_mode && features::IsFencedFramesEnabled()) {
@@ -1132,12 +1132,13 @@ void WebViewImpl::DisablePopupMouseWheelEventListener() {
DCHECK(popup_mouse_wheel_event_listener_);
Document* document =
local_root_with_empty_mouse_wheel_listener_->GetDocument();
- DCHECK(document);
- // Document may have already removed the event listener, for instance, due
- // to a navigation, but remove it anyway.
- document->removeEventListener(event_type_names::kMousewheel,
- popup_mouse_wheel_event_listener_.Release(),
- false);
+ if (document) {
+ // Document may have already removed the event listener, for instance, due
+ // to a navigation, but remove it anyway.
+ document->removeEventListener(event_type_names::kMousewheel,
+ popup_mouse_wheel_event_listener_.Release(),
+ false);
+ }
local_root_with_empty_mouse_wheel_listener_ = nullptr;
}
@@ -1310,11 +1311,17 @@ void WebViewImpl::DidUpdateBrowserControls() {
visual_viewport.SetBrowserControlsAdjustment(
GetBrowserControls().UnreportedSizeAdjustment());
}
+}
- if (GetPage()->GetSettings().GetDynamicSafeAreaInsetsEnabled() &&
- RuntimeEnabledFeatures::DynamicSafeAreaInsetsOnScrollEnabled()) {
- GetPage()->UpdateSafeAreaInsetWithBrowserControls(GetBrowserControls());
+void WebViewImpl::DidUpdateMaxSafeAreaInsets(
+ const gfx::InsetsF& max_safe_area_insets) {
+ WebLocalFrameImpl* main_frame = MainFrameImpl();
+ if (!main_frame || !main_frame->IsOutermostMainFrame()) {
+ return;
}
+
+ WebFrameWidgetImpl* widget = main_frame->LocalRootFrameWidget();
+ widget->SetMaxSafeAreaInsets(max_safe_area_insets);
}
BrowserControls& WebViewImpl::GetBrowserControls() {
@@ -1584,12 +1591,17 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
prefs.target_blank_implies_no_opener_enabled_will_be_removed);
settings->SetAllowNonEmptyNavigatorPlugins(
prefs.allow_non_empty_navigator_plugins);
- RuntimeEnabledFeatures::SetDatabaseEnabled(prefs.databases_enabled);
settings->SetShouldProtectAgainstIpcFlooding(
!prefs.disable_ipc_flooding_protection);
settings->SetHyperlinkAuditingEnabled(prefs.hyperlink_auditing_enabled);
settings->SetCookieEnabled(prefs.cookie_enabled);
+ // By default, allow Android WebView to enable WebSQL. Rollout for disabling
+ // will happen via Finch.
+ if (base::FeatureList::IsEnabled(blink::features::kWebSQLWebViewAccess)) {
+ RuntimeEnabledFeatures::SetDatabaseEnabled(prefs.databases_enabled);
+ }
+
// By default, allow_universal_access_from_file_urls is set to false and thus
// we mitigate attacks from local HTML files by not granting file:// URLs
// universal access. Only test shell will enable this.
@@ -3418,16 +3430,12 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs() {
gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE);
WebFontRenderStyle::SetSubpixelPositioning(
renderer_preferences_.use_subpixel_positioning);
-// TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
-// complete.
-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
- !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_LINUX)
if (!renderer_preferences_.system_font_family_name.empty()) {
WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8(
renderer_preferences_.system_font_family_name));
}
-#endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) &&
- // !BUILDFLAG(IS_ANDROID)
+#endif // BUILDFLAG(IS_LINUX)
#endif // BUILDFLAG(IS_WIN)
#endif // !BUILDFLAG(IS_MAC)
}
diff --git a/tools/under-control/src/third_party/blink/renderer/core/fetch/request_init.idl b/tools/under-control/src/third_party/blink/renderer/core/fetch/request_init.idl
index 7e7a0b37..d8ae06d8 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/fetch/request_init.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/fetch/request_init.idl
@@ -24,7 +24,7 @@ dictionary RequestInit {
FetchPriority priority;
[RuntimeEnabled=TopicsAPI, Exposed=Window] boolean browsingTopics;
[RuntimeEnabled=AdInterestGroupAPI, Exposed=Window] boolean adAuctionHeaders;
- [RuntimeEnabled=SharedStorageAPIM118, Exposed=Window] boolean sharedStorageWritable;
+ [RuntimeEnabled=SharedStorageAPI, Exposed=Window] boolean sharedStorageWritable;
AbortSignal? signal;
[RuntimeEnabled=FetchUploadStreaming] RequestDuplex duplex;
[RuntimeEnabled=PrivateNetworkAccessPermissionPrompt] IPAddressSpace targetAddressSpace;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/fileapi/file.idl b/tools/under-control/src/third_party/blink/renderer/core/fileapi/file.idl
index 4339a27e..47b1dce8 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/fileapi/file.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/fileapi/file.idl
@@ -34,6 +34,6 @@
readonly attribute long long lastModified;
// Non-standard APIs
- [MeasureAs=FileGetLastModifiedDate, CallWith=ScriptState] readonly attribute object lastModifiedDate;
+ [MeasureAs=FileGetLastModifiedDate, CallWith=ScriptState] readonly attribute object? lastModifiedDate;
[MeasureAs=PrefixedFileRelativePath] readonly attribute DOMString webkitRelativePath;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/csp/csp_violation_report_body.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/csp/csp_violation_report_body.idl
index 71b109da..1c273717 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/frame/csp/csp_violation_report_body.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/frame/csp/csp_violation_report_body.idl
@@ -5,7 +5,7 @@
// https://www.w3.org/TR/CSP3/#cspviolationreportbody
[
- LegacyNoInterfaceObject
+ Exposed=Window
] interface CSPViolationReportBody : ReportBody {
readonly attribute USVString documentURL;
readonly attribute USVString? referrer;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/report_body.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/report_body.idl
index 9652a821..0564a8e1 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/frame/report_body.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/frame/report_body.idl
@@ -2,10 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// https://github.com/WICG/reporting/blob/master/EXPLAINER.md#reportingobserver---observing-reports-from-javascript
+// https://w3c.github.io/reporting/#reportbody
[
- LegacyNoInterfaceObject
+ Exposed=(Window, Worker)
] interface ReportBody {
[CallWith=ScriptState] object toJSON();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/universal_global_scope.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/universal_global_scope.idl
new file mode 100755
index 00000000..14f765f6
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/core/frame/universal_global_scope.idl
@@ -0,0 +1,22 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[
+ Exposed=*
+] interface mixin UniversalGlobalScope {
+ // Secure Contexts
+ [ImplementedAs=isSecureContextForBindings, CallWith=ScriptState] readonly attribute boolean isSecureContext;
+
+ [CallWith=ScriptState] void reportError(any e);
+
+ // base64 utility methods
+ [RaisesException] DOMString btoa(DOMString btoa);
+ [RaisesException] DOMString atob(DOMString atob);
+
+ // microtask queuing
+ void queueMicrotask(VoidFunction callback);
+
+ // structured cloning
+ [RaisesException, CallWith=ScriptState, MeasureAs=StructuredCloneMethod] any structuredClone(any value, optional StructuredSerializeOptions options = {});
+};
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 5b27e0cb..da9b8e7c 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
@@ -98,7 +98,6 @@
// https://html.spec.whatwg.org/C/#windoworworkerglobalscope-mixin
// https://wicg.github.io/origin-policy/#monkeypatch-html-windoworworkerglobalscope
[Replaceable] readonly attribute DOMString origin;
- void queueMicrotask(VoidFunction callback);
// AnimationFrameProvider mixin
// https://html.spec.whatwg.org/C/#animation-frames
@@ -207,9 +206,6 @@
// Event handler attributes
attribute EventHandler onsearch;
- // https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object
- readonly attribute boolean isSecureContext;
-
// TrustedTypes API: http://github.com/w3c/trusted-types
[CallWith=ScriptState] readonly attribute TrustedTypePolicyFactory trustedTypes;
@@ -224,4 +220,5 @@
Window includes GlobalEventHandlers;
Window includes WindowEventHandlers;
+Window includes UniversalGlobalScope;
Window includes WindowOrWorkerGlobalScope;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl
index 7bc03fbf..ac720ffb 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl
@@ -37,7 +37,7 @@ interface mixin WindowEventHandlers {
attribute EventHandler onlanguagechange;
attribute EventHandler onmessage;
attribute EventHandler onmessageerror;
- [RuntimeEnabled=DesktopPWAsAdditionalWindowingControls] attribute EventHandler onmove;
+ [RuntimeEnabled=WindowOnMoveEvent] attribute EventHandler onmove;
attribute EventHandler onoffline;
attribute EventHandler ononline;
attribute EventHandler onpagehide;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
index ae20a439..f64091eb 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/frame/window_or_worker_global_scope.idl
@@ -29,14 +29,7 @@
[
Exposed=(Window,Worker)
] interface mixin WindowOrWorkerGlobalScope {
- [CallWith=ScriptState] void reportError(any e);
-
- // base64 utility methods
- [RaisesException] DOMString btoa(DOMString btoa);
- [RaisesException] DOMString atob(DOMString atob);
readonly attribute boolean crossOriginIsolated;
[RuntimeEnabled=CoepReflection]
readonly attribute DOMString crossOriginEmbedderPolicy;
-
- [RaisesException, CallWith=ScriptState, MeasureAs=StructuredCloneMethod] any structuredClone(any value, optional StructuredSerializeOptions options = {});
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl
index ead609e7..8f971df5 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_cluster.idl
@@ -3,8 +3,8 @@
Exposed=(Window,Worker)
]
interface TextCluster {
- attribute double x;
- attribute double y;
+ readonly attribute double x;
+ readonly attribute double y;
readonly attribute unsigned long begin;
readonly attribute unsigned long end;
readonly attribute DOMString align;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_metrics.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_metrics.idl
index 326128fb..f8cc9a5d 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_metrics.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/text_metrics.idl
@@ -26,8 +26,10 @@
// https://html.spec.whatwg.org/C/#textmetrics
dictionary TextClusterOptions {
- DOMString? align = null;
- DOMString? baseline = null;
+ DOMString align;
+ DOMString baseline;
+ double x;
+ double y;
};
[Exposed=(Window,Worker)]
@@ -49,7 +51,7 @@ interface TextMetrics {
[RuntimeEnabled=ExtendedTextMetrics] readonly attribute double emHeightDescent;
// For editing, to get the text offset at a point
- [RuntimeEnabled=ExtendedTextMetrics] unsigned long caretPositionFromPoint(double x);
+ [RuntimeEnabled=ExtendedTextMetrics] unsigned long getIndexFromOffset(double x);
// For selection
[RuntimeEnabled=ExtendedTextMetrics, RaisesException] sequence getSelectionRects([EnforceRange] unsigned long start, [EnforceRange] unsigned long end);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/closewatcher/close_watcher.idl b/tools/under-control/src/third_party/blink/renderer/core/html/closewatcher/close_watcher.idl
index 93db3c75..17f70259 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/closewatcher/close_watcher.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/closewatcher/close_watcher.idl
@@ -6,9 +6,9 @@
[
Exposed=Window
] interface CloseWatcher : EventTarget {
- [CallWith=ScriptState, RaisesException] constructor(optional CloseWatcherOptions options = {});
+ [CallWith=ScriptState, RaisesException, MeasureAs=CloseWatcherScriptConstructor] constructor(optional CloseWatcherOptions options = {});
- void requestClose();
+ [ImplementedAs=requestCloseForBinding] void requestClose();
void close();
void destroy();
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl
index 9d4141e6..75f7b45b 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl
@@ -38,5 +38,6 @@
[CEReactions, Reflect] attribute boolean noHref;
};
+HTMLAreaElement includes HTMLAttributionSrcElementUtils;
HTMLAreaElement includes HTMLHyperlinkElementUtils;
HTMLAreaElement includes InterestInvokerElement;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl
index d3822eda..12d650f2 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl
@@ -34,5 +34,5 @@
[CEReactions, Measure, RaisesException] void show();
[CEReactions, Measure, RaisesException] void showModal();
[CEReactions] void close(optional DOMString returnValue);
- [CEReactions,RuntimeEnabled=HTMLDialogLightDismiss] void requestClose(optional DOMString returnValue);
+ [CEReactions,RaisesException,RuntimeEnabled=HTMLDialogLightDismiss] void requestClose(optional DOMString returnValue);
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_image_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_image_element.idl
index 2c4624c9..15977fa6 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/html_image_element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_image_element.idl
@@ -63,6 +63,9 @@
[MeasureAs=HTMLImageElementY] readonly attribute long y;
[CallWith=ScriptState, RaisesException] Promise decode();
+
+ // Topics API (https://github.com/patcg-individual-drafts/topics)
+ [RuntimeEnabled=TopicsImgAPI, SecureContext, CEReactions, Reflect] attribute boolean browsingTopics;
};
HTMLImageElement includes HTMLAttributionSrcElementUtils;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_shared_storage_writable_element_utils.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_shared_storage_writable_element_utils.idl
index 3c066dcb..e51f0c2d 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/html_shared_storage_writable_element_utils.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_shared_storage_writable_element_utils.idl
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-[RuntimeEnabled=SharedStorageAPIM118]
+[RuntimeEnabled=SharedStorageAPI]
interface mixin HTMLSharedStorageWritableElementUtils {
// Shared Storage API (https://github.com/WICG/shared-storage)
[SecureContext, CEReactions, Reflect] attribute boolean sharedStorageWritable;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl
index 1f1749a2..48a46723 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl
@@ -36,17 +36,6 @@
readonly attribute unsigned long videoHeight;
[CEReactions, Reflect, URL, Measure] attribute DOMString poster;
- // Non-standard APIs
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoSupportsFullscreen] readonly attribute boolean webkitSupportsFullscreen;
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoDisplayingFullscreen] readonly attribute boolean webkitDisplayingFullscreen;
-
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoEnterFullscreen, LogActivity, LogAllWorlds] void webkitEnterFullscreen();
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoExitFullscreen] void webkitExitFullscreen();
-
- // Note the different capitalization of the "S" in FullScreen.
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoEnterFullScreen, ImplementedAs=webkitEnterFullscreen, LogActivity, LogAllWorlds] void webkitEnterFullScreen();
- [RuntimeEnabled=PrefixedVideoFullscreen, DeprecateAs=PrefixedVideoExitFullScreen, ImplementedAs=webkitExitFullscreen] void webkitExitFullScreen();
-
// The number of frames that have been decoded and made available for
// playback.
[HighEntropy=Direct, MeasureAs=PrefixedVideoDecodedFrameCount] readonly attribute unsigned long webkitDecodedFrameCount;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/popover_options.idl b/tools/under-control/src/third_party/blink/renderer/core/html/popover_options.idl
index 22350562..423539dc 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/html/popover_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/html/popover_options.idl
@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-dictionary TogglePopoverOptions {
- boolean force;
- HTMLElement invoker;
+dictionary ShowPopoverOptions {
+ HTMLElement source;
};
-dictionary ShowPopoverOptions {
- HTMLElement invoker;
+dictionary TogglePopoverOptions : ShowPopoverOptions {
+ boolean force;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/input/touch_init.idl b/tools/under-control/src/third_party/blink/renderer/core/input/touch_init.idl
index 68b10db8..125438ce 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/input/touch_init.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/input/touch_init.idl
@@ -17,8 +17,4 @@ dictionary TouchInit {
float radiusY = 0;
float rotationAngle = 0;
float force = 0;
-
- // Canvas Hit Regions
- // https://github.com/whatwg/html/issues/547
- DOMString? region = null;
};
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 37a1428d..3717db2f 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
@@ -425,6 +425,24 @@ bool OriginTrialContext::InstallFeatures(
installed_features_.insert(enabled_feature);
+ if (enabled_feature ==
+ mojom::blink::OriginTrialFeature::kBackgroundPageFreezeOptOut) {
+ if (auto* rc = document.GetResourceCoordinator()) {
+ UseCounter::Count(document.GetExecutionContext(),
+ WebFeature::kPageFreezeOptOut);
+
+ // Inform the browser process that the document is opted-out from
+ // freezing via origin trial. This state prevents the browser process
+ // from freezing any document in the same "browsing context group" as
+ // this one and is displayed at chrome://discards for debugging.
+ //
+ // Note: The browser process cannot determine whether a document is
+ // opted-out from freezing via origin trial without participation from
+ // the renderer (crbug.com/40189223).
+ rc->OnFreezingOriginTrialOptOut();
+ }
+ }
+
if (InstallSettingFeature(document, enabled_feature))
continue;
@@ -506,9 +524,6 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) {
if (trial_name == "AdInterestGroupAPI")
return base::FeatureList::IsEnabled(features::kInterestGroupStorage);
- if (trial_name == "TrustTokens")
- return base::FeatureList::IsEnabled(network::features::kFledgePst);
-
if (trial_name == "SpeculationRulesPrefetchFuture") {
return base::FeatureList::IsEnabled(
features::kSpeculationRulesPrefetchFuture);
@@ -538,7 +553,7 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) {
// TODO(crbug.com/362675965): remove after origin trial.
if (trial_name == "AISummarizationAPI") {
- return base::FeatureList::IsEnabled(features::kEnableAISummarizationAPI);
+ return base::FeatureList::IsEnabled(features::kAISummarizationAPI);
}
if (trial_name == "LanguageDetectionAPI") {
@@ -546,13 +561,12 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) {
}
if (trial_name == "AIPromptAPIForExtension") {
- return base::FeatureList::IsEnabled(
- features::kEnableAIPromptAPIForExtension);
+ return base::FeatureList::IsEnabled(features::kAIPromptAPIForExtension);
}
if (trial_name == "TranslationAPI") {
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
- return base::FeatureList::IsEnabled(features::kEnableTranslationAPI);
+ return base::FeatureList::IsEnabled(features::kTranslationAPI);
#else
return false;
#endif
diff --git a/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl b/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl
index 2ee20671..e04f7671 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/sanitizer/sanitizer_api.idl
@@ -10,7 +10,7 @@
RuntimeEnabled=SanitizerAPI
]
interface Sanitizer {
- [CallWith=ExecutionContext, RaisesException]
+ [RaisesException]
constructor(optional SanitizerConfig config = {});
// Query configuration:
diff --git a/tools/under-control/src/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.idl b/tools/under-control/src/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.idl
index ac40407a..1c9052bb 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.idl
@@ -5,5 +5,8 @@
// https://github.com/tc39/proposal-shadowrealm
[
+ Exposed=ShadowRealm,
Global=ShadowRealm
] interface ShadowRealmGlobalScope {};
+
+ShadowRealmGlobalScope includes UniversalGlobalScope;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/byte_length_queuing_strategy.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/byte_length_queuing_strategy.idl
index 4010a9f1..1456cdf2 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/byte_length_queuing_strategy.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/byte_length_queuing_strategy.idl
@@ -5,7 +5,7 @@
// https://streams.spec.whatwg.org/#blqs-class
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface ByteLengthQueuingStrategy {
[CallWith=ScriptState, MeasureAs=ByteLengthQueuingStrategyConstructor] constructor(QueuingStrategyInit init);
readonly attribute unrestricted double highWaterMark;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/count_queuing_strategy.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/count_queuing_strategy.idl
index a0b8ded2..5d47e8f6 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/count_queuing_strategy.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/count_queuing_strategy.idl
@@ -5,7 +5,7 @@
// https://streams.spec.whatwg.org/#cqs-class
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface CountQueuingStrategy {
[CallWith=ScriptState, MeasureAs=CountQueuingStrategyConstructor] constructor(QueuingStrategyInit init);
readonly attribute unrestricted double highWaterMark;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_byte_stream_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_byte_stream_controller.idl
index 30ee9730..d4ba351e 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_byte_stream_controller.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_byte_stream_controller.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#rbs-controller-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface ReadableByteStreamController {
readonly attribute ReadableStreamBYOBRequest? byobRequest;
readonly attribute double? desiredSize;
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 affe0f0d..d5f1bc5f 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
@@ -10,7 +10,7 @@ enum ReadableStreamReaderMode { "byob" };
enum ReadableStreamType { "bytes" };
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface ReadableStream {
[RuntimeEnabled=ReadableStreamAsyncIterable, HasAsyncIteratorReturnAlgorithm] async iterable(optional ReadableStreamIteratorOptions options = {});
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 79071905..fee1494d 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
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#byob-reader-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface ReadableStreamBYOBReader {
[CallWith=ScriptState, RaisesException] constructor(ReadableStream stream);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_request.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_request.idl
index a5101f6a..727cfadf 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_request.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_byob_request.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#readablestreambyobrequest
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface ReadableStreamBYOBRequest {
readonly attribute ArrayBufferView? view;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_controller.idl
index ab81ed9c..61ad2d4f 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_controller.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_controller.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#rs-default-controller-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
]
interface ReadableStreamDefaultController {
readonly attribute double? desiredSize;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl
index 9fe0981e..16abf837 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#default-reader-class-definition
[
- Exposed=(Window,Worker,Worklet),
+ Exposed=*,
ActiveScriptWrappable
] interface ReadableStreamDefaultReader {
[CallWith=ScriptState, RaisesException] constructor(ReadableStream stream);
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 bde6f558..6b5b9348 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
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#readablestreamgenericreader
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface mixin ReadableStreamGenericReader {
[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/transform_stream.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream.idl
index c8830b60..0878a928 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#ts-class
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface TransformStream {
[CallWith=ScriptState, RaisesException] constructor(optional any transformer,
optional any writableStrategy,
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream_default_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream_default_controller.idl
index 31a8a071..1a40138f 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream_default_controller.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/transform_stream_default_controller.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#ts-default-controller-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
]interface TransformStreamDefaultController {
readonly attribute unrestricted double? desiredSize;
[CallWith=ScriptState, RaisesException] void enqueue(
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/underlying_sink_base.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/underlying_sink_base.idl
deleted file mode 100755
index b517e9bb..00000000
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/underlying_sink_base.idl
+++ /dev/null
@@ -1,20 +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.
-
-// This is not a spec interface. Instead, it is used to generate bindings
-// so that Blink code which wishes to create a stream can derive from
-// UnderlyingSinkBase, and a JavaScript object can then be generated
-// automatically for use in initializing a WritableStream.
-[
- LegacyNoInterfaceObject
-]
-interface UnderlyingSinkBase {
- [CallWith=ScriptState, RaisesException] Promise start(any controller);
- [CallWith=ScriptState, RaisesException] Promise write(any chunk, any controller);
- [CallWith=ScriptState, RaisesException] Promise close();
- [CallWith=ScriptState, RaisesException] Promise abort(any reason);
-
- // This only exists to prevent Object.prototype.type being accessed.
- [CallWith=ScriptState] readonly attribute any type;
-};
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 70338f11..cc93364d 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
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#ws-class
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface WritableStream {
[CallWith=ScriptState, RaisesException, MeasureAs=WritableStreamConstructor] constructor(optional any underlyingSink, optional any strategy);
readonly attribute boolean locked;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl
index aea08223..fb362a54 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl
@@ -4,7 +4,7 @@
// https://streams.spec.whatwg.org/#ws-default-controller-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
]
interface WritableStreamDefaultController {
readonly attribute AbortSignal signal;
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 6515199d..2c1ad0b6 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
@@ -6,7 +6,7 @@
// https://streams.spec.whatwg.org/#default-writer-class-definition
[
- Exposed=(Window,Worker,Worklet)
+ Exposed=*
] interface WritableStreamDefaultWriter {
[CallWith=ScriptState, RaisesException] constructor(WritableStream stream);
[CallWith=ScriptState] readonly attribute Promise
diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_image_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_image_element.idl
index f989fe85..ad0fb854 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_image_element.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_image_element.idl
@@ -35,7 +35,7 @@
[MeasureAs=SVG1DOMImageElement] readonly attribute SVGAnimatedLength height;
[MeasureAs=SVG1DOMImageElement] readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
[CEReactions, Reflect, ReflectOnly=("async", "sync", "auto"), ReflectMissing="auto", ReflectInvalid="auto"] attribute DOMString decoding;
- [CEReactions, Reflect, ReflectOnly=("anonymous","use-credentials"), ReflectEmpty="anonymous", ReflectInvalid="anonymous", RuntimeEnabled=SvgCrossOriginAttribute] attribute DOMString? crossOrigin;
+ [CEReactions, Reflect, ReflectOnly=("anonymous","use-credentials"), ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString? crossOrigin;
// Follow HTMLImageElement's spec
[CallWith=ScriptState, RaisesException] Promise decode();
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 edbacb8f..9633dea3 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
@@ -333,6 +333,10 @@ interface Internals {
UnionTypesTest unionTypesTest();
InternalsUkmRecorder initializeUKMRecorder();
CallbackFunctionTest callbackFunctionTest();
+ // Creates and returns an `NADCAttributeTest` object, which provides test
+ // functions to test attributes with the IDL extended attributei
+ // `NoAllocDirectCall`.
+ NADCAttributeTest nadcAttributeTest();
DOMString selectedHTMLForClipboard();
DOMString selectedTextForClipboard();
diff --git a/tools/under-control/src/third_party/blink/renderer/core/testing/nadc_attribute_test.idl b/tools/under-control/src/third_party/blink/renderer/core/testing/nadc_attribute_test.idl
new file mode 100755
index 00000000..59b69666
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/core/testing/nadc_attribute_test.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.
+
+// NADCAttributeTest provides functionality to test attributes with the
+// IDL extended attribute `NoAllocDirectCall`.
+interface NADCAttributeTest {
+ [NoAllocDirectCall=Setter] attribute double float64Value;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/largest_contentful_paint.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/largest_contentful_paint.idl
index 8c31751c..91f739c6 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/largest_contentful_paint.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/largest_contentful_paint.idl
@@ -7,7 +7,6 @@
interface LargestContentfulPaint : PerformanceEntry {
readonly attribute DOMHighResTimeStamp renderTime;
readonly attribute DOMHighResTimeStamp loadTime;
- [RuntimeEnabled=LCPAnimatedImagesWebExposed] readonly attribute DOMHighResTimeStamp firstAnimatedFrameTime;
readonly attribute unsigned long long size;
readonly attribute DOMString id;
readonly attribute DOMString url;
@@ -15,3 +14,5 @@ interface LargestContentfulPaint : PerformanceEntry {
[CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
+
+LargestContentfulPaint includes PaintTimingMixin;
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/paint_timing_mixin.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/paint_timing_mixin.idl
new file mode 100755
index 00000000..6c83aadc
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/paint_timing_mixin.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://w3c.github.io/paint-timing/#PaintTimingMixin
+interface mixin PaintTimingMixin {
+ [RuntimeEnabled=PaintTimingMixin] readonly attribute DOMHighResTimeStamp paintTime;
+ [RuntimeEnabled=PaintTimingMixin] readonly attribute DOMHighResTimeStamp? presentationTime;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance.idl
index f178be94..082305b5 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance.idl
@@ -41,7 +41,6 @@ interface Performance : EventTarget {
// Performance Timeline
// https://w3c.github.io/performance-timeline/#the-performance-interface
[MeasureAs=PerformanceTimeline] PerformanceEntryList getEntries();
- [MeasureAs=PerformanceTimeline, CallWith=ScriptState, RuntimeEnabled=CrossFramePerformanceTimeline] PerformanceEntryList getEntries(PerformanceEntryFilterOptions options);
[MeasureAs=PerformanceTimeline] PerformanceEntryList getEntriesByType(DOMString entryType);
[MeasureAs=PerformanceTimeline] PerformanceEntryList getEntriesByName(DOMString name, optional DOMString entryType);
@@ -78,5 +77,7 @@ interface Performance : EventTarget {
// TODO(https://crbug.com/1457049): remove this once visited links are partitioned.
[RuntimeEnabled=SoftNavigationHeuristicsExposeFPAndFCP] readonly attribute boolean softNavPaintMetricsSupported;
+ [Exposed=Window, RuntimeEnabled=UserDefinedEntryPointTiming] Function bind(Function innerFunction, optional any thisArg, any... args);
+
[CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_element_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_element_timing.idl
index 5161dc56..370946c2 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_element_timing.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_element_timing.idl
@@ -17,3 +17,5 @@ interface PerformanceElementTiming : PerformanceEntry {
[CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
+
+PerformanceElementTiming includes PaintTimingMixin;
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl
index a6a286b8..19f3624b 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl
@@ -37,6 +37,5 @@ interface PerformanceEntry {
readonly attribute DOMHighResTimeStamp startTime;
readonly attribute DOMHighResTimeStamp duration;
[RuntimeEnabled=NavigationId] readonly attribute DOMString navigationId;
- [RuntimeEnabled=CrossFramePerformanceTimeline, Exposed=Window] readonly attribute EventTarget source;
[CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry_filter_options.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry_filter_options.idl
deleted file mode 100755
index 5c27890c..00000000
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry_filter_options.idl
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-dictionary PerformanceEntryFilterOptions {
- DOMString name;
- DOMString entryType;
- boolean includeChildFrames;
-};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_long_animation_frame_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_long_animation_frame_timing.idl
index 16275ad1..a3c74f47 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_long_animation_frame_timing.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_long_animation_frame_timing.idl
@@ -3,7 +3,7 @@
// found in the LICENSE file.
// https://github.com/w3c/longtasks/blob/loaf-explainer/loaf-explainer.md
-[Exposed=Window, RuntimeEnabled=LongAnimationFrameTiming]
+[Exposed=Window]
interface PerformanceLongAnimationFrameTiming : PerformanceEntry {
readonly attribute DOMHighResTimeStamp renderStart;
readonly attribute DOMHighResTimeStamp styleAndLayoutStart;
@@ -13,3 +13,5 @@ interface PerformanceLongAnimationFrameTiming : PerformanceEntry {
[CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
+
+PerformanceLongAnimationFrameTiming includes PaintTimingMixin;
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_navigation_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_navigation_timing.idl
index e4066306..ca862370 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_navigation_timing.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_navigation_timing.idl
@@ -30,7 +30,7 @@ enum NavigationEntropy {
readonly attribute DOMHighResTimeStamp loadEventEnd;
readonly attribute NavigationTimingType type;
readonly attribute unsigned short redirectCount;
- [RuntimeEnabled=BackForwardCacheNotRestoredReasons] readonly attribute NotRestoredReasons? notRestoredReasons;
+ [RuntimeEnabled=BackForwardCacheNotRestoredReasons, MeasureAs="WebDXFeature::kBfcacheBlockingReasons"] readonly attribute NotRestoredReasons? notRestoredReasons;
[RuntimeEnabled=PerformanceNavigateSystemEntropy] readonly attribute NavigationEntropy systemEntropy;
[RuntimeEnabled=PerformanceNavigationTimingConfidence] readonly attribute PerformanceTimingConfidence confidence;
[CallWith=ScriptState] readonly attribute DOMHighResTimeStamp criticalCHRestart;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_paint_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_paint_timing.idl
index 18181642..b4d61bd8 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_paint_timing.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_paint_timing.idl
@@ -6,4 +6,7 @@
[Exposed=Window]
interface PerformancePaintTiming : PerformanceEntry {
+ [CallWith=ScriptState, ImplementedAs=toJSONForBinding, RuntimeEnabled=PaintTimingMixin] object toJSON();
};
+
+PerformancePaintTiming includes PaintTimingMixin;
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_script_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_script_timing.idl
index 8369d823..67758f86 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_script_timing.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_script_timing.idl
@@ -8,7 +8,8 @@ enum ScriptInvokerType {
"event-listener",
"user-callback",
"resolve-promise",
- "reject-promise"
+ "reject-promise",
+ "user-entry-point"
};
enum ScriptWindowAttribution {
@@ -16,7 +17,7 @@ enum ScriptWindowAttribution {
};
// https://github.com/w3c/longtasks/blob/loaf-explainer/loaf-explainer.md
-[Exposed=Window, RuntimeEnabled=LongAnimationFrameTiming]
+[Exposed=Window]
interface PerformanceScriptTiming : PerformanceEntry {
readonly attribute ScriptInvokerType invokerType;
readonly attribute DOMString invoker;
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 4792e5fc..54aae2ed 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
@@ -27,14 +27,14 @@
// https://url.spec.whatwg.org/#url
[
- Exposed=(Window,Worker),
+ Exposed=(Window,Worker,ShadowRealm), // TODO(crbug.com/41480387): This should be Exposed=*
ImplementedAs=DOMURL,
LegacyWindowAlias=webkitURL
] interface URL {
[RaisesException] constructor(USVString url, optional USVString base);
static URL? parse(USVString url, optional USVString base);
- static boolean canParse(USVString url, optional USVString base);
+ [MeasureAs="WebDXFeature::kUrlCanparse"] static boolean canParse(USVString url, optional USVString base);
[RaisesException=Setter] stringifier attribute USVString href;
readonly attribute USVString origin;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/url/url_search_params.idl b/tools/under-control/src/third_party/blink/renderer/core/url/url_search_params.idl
index 2a55e582..2ac09cbc 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/url/url_search_params.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/url/url_search_params.idl
@@ -5,7 +5,7 @@
// https://url.spec.whatwg.org/#interface-urlsearchparams
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface URLSearchParams {
[RaisesException] constructor(optional (sequence> or record or USVString) init = "");
readonly attribute unsigned long size;
diff --git a/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl b/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl
index a96991e0..437195f1 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl
@@ -10,7 +10,7 @@ enum URLPatternComponent { "protocol", "username", "password", "hostname",
// https://wicg.github.io/urlpattern/
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker,ShadowRealm) // TODO(crbug.com/41480387): This should be Exposed=*
] interface URLPattern {
[RaisesException, CallWith=Isolate, Measure]
constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition.idl b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition.idl
index 98693ba2..6d157baa 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition.idl
@@ -32,5 +32,5 @@
// This will return a ViewTransitionTypeSet that represents the active list of types
// for this transition. These types are selectable using the
// :active-view-transition-type pseudo-class.
- [RuntimeEnabled=ViewTransitionTypes] readonly attribute ViewTransitionTypeSet types;
+ readonly attribute ViewTransitionTypeSet types;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_supplement.idl b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_supplement.idl
index 8638159b..1698514f 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_supplement.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_supplement.idl
@@ -7,5 +7,5 @@
] partial interface Document {
[MeasureAs=ViewTransition, CallWith=ScriptState, RaisesException] ViewTransition startViewTransition();
[MeasureAs=ViewTransition, CallWith=ScriptState, RaisesException] ViewTransition startViewTransition(ViewTransitionCallback update);
- [MeasureAs=ViewTransition, CallWith=ScriptState, RaisesException, RuntimeEnabled=ViewTransitionTypes] ViewTransition startViewTransition(ViewTransitionOptions opts);
+ [MeasureAs=ViewTransition, CallWith=ScriptState, RaisesException] ViewTransition startViewTransition(ViewTransitionOptions opts);
};
diff --git a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_type_set.idl b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_type_set.idl
index 314ac622..0fa07ea0 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_type_set.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/view_transition/view_transition_type_set.idl
@@ -1,7 +1,7 @@
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-[Exposed=Window, RuntimeEnabled=ViewTransitionTypes]
+[Exposed=Window]
interface ViewTransitionTypeSet {
setlike;
[RaisesException] void add(DOMString key);
diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/worker_global_scope.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/worker_global_scope.idl
index 94fba47c..6638b03f 100755
--- a/tools/under-control/src/third_party/blink/renderer/core/workers/worker_global_scope.idl
+++ b/tools/under-control/src/third_party/blink/renderer/core/workers/worker_global_scope.idl
@@ -56,18 +56,14 @@
attribute EventHandler onrejectionhandled;
attribute EventHandler onunhandledrejection;
- // Secure Contexts
- // https://w3c.github.io/webappsec-secure-contexts/#dom-windoworworkerglobalscope-issecurecontext
- [ImplementedAs=isSecureContextForBindings] readonly attribute boolean isSecureContext;
-
// WindowOrWorkerGlobalScope mixin
// https://html.spec.whatwg.org/C/#windoworworkerglobalscope-mixin
[Replaceable] readonly attribute DOMString origin;
- void queueMicrotask(VoidFunction callback);
// TrustedTypes API: http://github.com/w3c/trusted-types
readonly attribute TrustedTypePolicyFactory trustedTypes;
};
+WorkerGlobalScope includes UniversalGlobalScope;
WorkerGlobalScope includes WindowOrWorkerGlobalScope;
WorkerGlobalScope includes FontFaceSource;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl
index 9958cada..3681f2be 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl
@@ -5,19 +5,44 @@
// Information about a Bidding and Auction server style auction.
// https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
+dictionary AdAuctionOneSeller {
+ required USVString seller;
+ USVString coordinatorOrigin;
+};
+
dictionary AdAuctionDataBuyerConfig {
unsigned long targetSize;
};
dictionary AdAuctionDataConfig {
- required USVString seller;
- // TODO(crbug.com/40278958): Make `coordinator` required.
+ // One of `seller` and `sellers` must be provided, but not both.
+ // `coordinatorOrigin` can only be provided when `seller` is provided.
+ // TODO(crbug.com/40278958): Make `coordinator` required when `seller` is
+ // provided.
+ USVString seller;
USVString coordinatorOrigin;
+ [RuntimeEnabled=FledgeBiddingAndAuctionServerAPIMultiSeller]
+ sequence sellers;
+
unsigned long requestSize;
record perBuyerConfig;
};
-dictionary AdAuctionData {
- required Uint8Array request;
- required USVString requestId;
+// TODO(qingxinwu): make this a union that only one of `request` and `error` can
+// be set.
+dictionary AdAuctionPerSellerData {
+ required USVString seller;
+ // Only one of `request` and `error` can be set.
+ Uint8Array request;
+ DOMString error;
+};
+
+dictionary AdAuctionData {
+ required USVString requestId;
+
+ // Required When `AdAuctionDataConfig.seller` is provided.
+ Uint8Array request;
+ // Required When `AdAuctionDataConfig.sellers` is provided.
+ [RuntimeEnabled=FledgeBiddingAndAuctionServerAPIMultiSeller]
+ sequence requests;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad.idl
index 23f4384a..036d625d 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/auction_ad.idl
@@ -18,4 +18,6 @@ dictionary AuctionAd {
any metadata;
DOMString adRenderId;
sequence allowedReportingOrigins;
+ [RuntimeEnabled=FledgeTrustedSignalsKVv1CreativeScanning]
+ USVString creativeScanningMetadata;
};
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 4089ae2c..2593d18b 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
@@ -51,10 +51,13 @@ dictionary AuctionAdConfig {
long maxTrustedScoringSignalsURLLength;
[RuntimeEnabled=FledgeTrustedSignalsKVv2Support]
USVString trustedScoringSignalsCoordinator;
+ [RuntimeEnabled=FledgeTrustedSignalsKVv1CreativeScanning]
+ boolean sendCreativeScanningMetadata;
sequence interestGroupBuyers;
Promise auctionSignals;
Promise sellerSignals;
+ [RuntimeEnabled=FledgeDirectFromSellerSignalsWebBundles]
Promise directFromSellerSignals;
[RuntimeEnabled=FledgeDirectFromSellerSignalsHeaderAdSlot]
Promise directFromSellerSignalsHeaderAdSlot;
@@ -87,7 +90,6 @@ dictionary AuctionAdConfig {
// https://github.com/WICG/turtledove/blob/main/FLEDGE_extended_PA_reporting.md
sequence auctionReportBuyerKeys;
record auctionReportBuyers;
- [RuntimeEnabled=PrivateAggregationAuctionReportBuyerDebugModeConfig]
AuctionReportBuyerDebugModeConfig auctionReportBuyerDebugModeConfig;
sequence requiredSellerCapabilities;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl
index 64fa6409..c79d5709 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai.idl
@@ -12,6 +12,7 @@ enum AICapabilityAvailability {
[
Exposed=(Window,Worker),
+ SecureContext,
RuntimeEnabled=BuiltInAIAPI
]
interface AI {
@@ -42,4 +43,9 @@ interface AI {
RuntimeEnabled=LanguageDetectionAPI
]
readonly attribute AILanguageDetectorFactory languageDetector;
+
+ [
+ RuntimeEnabled=TranslationAPI
+ ]
+ readonly attribute AITranslatorFactory translator;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_create_monitor.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
index 22ca5859..b69e00b3 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_create_monitor.idl
@@ -5,7 +5,8 @@
// https://github.com/explainers-by-googlers/prompt-api
[
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker),
+ SecureContext
]
interface AICreateMonitor : EventTarget {
attribute EventHandler ondownloadprogress;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl
index 39f39a8f..adf152e3 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model.idl
@@ -14,6 +14,7 @@ dictionary AILanguageModelPromptOptions {
[
Exposed=(Window,Worker),
+ SecureContext,
RuntimeEnabled=AIPromptAPI
]
interface AILanguageModel : EventTarget {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
index 1bbeddce..bfc90bfe 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_language_model_factory.idl
@@ -9,6 +9,7 @@ enum AILanguageModelPromptRole { "user", "assistant" };
[
Exposed=(Window,Worker),
+ SecureContext,
RuntimeEnabled=AIPromptAPI
]
interface AILanguageModelCapabilities {
@@ -28,6 +29,7 @@ interface AILanguageModelCapabilities {
[
Exposed=(Window,Worker),
+ SecureContext,
RuntimeEnabled=AIPromptAPI
]
interface AILanguageModelFactory {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl
index 1af87e2d..4543e824 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter.idl
@@ -12,7 +12,8 @@ dictionary AIRewriterRewriteOptions {
[
Exposed=(Window,Worker),
- RuntimeEnabled=AIRewriterAPI
+ RuntimeEnabled=AIRewriterAPI,
+ SecureContext
]
interface AIRewriter {
[
@@ -42,5 +43,6 @@ interface AIRewriter {
readonly attribute DOMString sharedContext;
readonly attribute AIRewriterTone tone;
+ readonly attribute AIRewriterFormat format;
readonly attribute AIRewriterLength length;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl
index a839be46..09646fa5 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_rewriter_factory.idl
@@ -6,21 +6,34 @@
// https://github.com/explainers-by-googlers/writing-assistance-apis
enum AIRewriterTone { "as-is", "more-formal", "more-casual" };
+enum AIRewriterFormat { "as-is", "plain-text", "markdown" };
enum AIRewriterLength { "as-is", "shorter", "longer" };
-dictionary AIRewriterCreateOptions {
+dictionary AIRewriterCreateCoreOptions {
+ AIRewriterTone tone = "as-is";
+ AIRewriterFormat format = "as-is";
+ AIRewriterLength length = "as-is";
+
+ sequence expectedInputLanguages;
+ DOMString outputLanguage;
+};
+
+dictionary AIRewriterCreateOptions : AIRewriterCreateCoreOptions {
AbortSignal signal;
DOMString sharedContext;
-
- AIRewriterTone tone = "as-is";
- AIRewriterLength length = "as-is";
};
[
Exposed=(Window,Worker),
- RuntimeEnabled=AIRewriterAPI
+ RuntimeEnabled=AIRewriterAPI,
+ SecureContext
]
interface AIRewriterFactory {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ]
+ Promise availability(optional AIRewriterCreateCoreOptions options = {});
[
Measure,
CallWith=ScriptState,
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl
index 6a6e0bff..d772faa5 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer.idl
@@ -11,7 +11,8 @@ dictionary AISummarizerSummarizeOptions {
[
Exposed=(Window,Worker),
- RuntimeEnabled=AISummarizationAPI
+ RuntimeEnabled=AISummarizationAPI,
+ SecureContext
]
interface AISummarizer {
[
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl
index 1dc705f4..12dc2adc 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_summarizer_factory.idl
@@ -6,14 +6,13 @@
[
Exposed=(Window,Worker),
- RuntimeEnabled=AISummarizationAPI
+ RuntimeEnabled=AISummarizationAPI,
+ SecureContext
]
interface AISummarizerCapabilities {
readonly attribute AICapabilityAvailability available;
- AICapabilityAvailability supportsType(AISummarizerType type);
- AICapabilityAvailability supportsFormat(AISummarizerFormat format);
- AICapabilityAvailability supportsLength(AISummarizerLength length);
+ AICapabilityAvailability createOptionsAvailable(AISummarizerCreateCoreOptions options);
AICapabilityAvailability languageAvailable(DOMString languageTag);
};
@@ -22,17 +21,22 @@ enum AISummarizerType { "tl;dr", "key-points", "teaser", "headline" };
enum AISummarizerFormat { "plain-text", "markdown" };
enum AISummarizerLength { "short", "medium", "long" };
-dictionary AISummarizerCreateOptions {
- AbortSignal signal;
- DOMString sharedContext;
+dictionary AISummarizerCreateCoreOptions {
AISummarizerType type = "key-points";
AISummarizerFormat format = "markdown";
- AISummarizerLength length = "medium";
+ AISummarizerLength length = "short";
+};
+
+dictionary AISummarizerCreateOptions : AISummarizerCreateCoreOptions {
+ AbortSignal signal;
+ AICreateMonitorCallback monitor;
+ DOMString sharedContext;
};
[
Exposed=(Window,Worker),
- RuntimeEnabled=AISummarizationAPI
+ RuntimeEnabled=AISummarizationAPI,
+ SecureContext
]
interface AISummarizerFactory {
[
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl
index 86e73340..9c86cf53 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer.idl
@@ -12,7 +12,8 @@ dictionary AIWriterWriteOptions {
[
Exposed=(Window,Worker),
- RuntimeEnabled=AIWriterAPI
+ RuntimeEnabled=AIWriterAPI,
+ SecureContext
]
interface AIWriter {
[
@@ -41,4 +42,7 @@ interface AIWriter {
void destroy();
readonly attribute DOMString sharedContext;
+ readonly attribute AIWriterTone tone;
+ readonly attribute AIWriterFormat format;
+ readonly attribute AIWriterLength length;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl
index 16bc7503..f6ca6174 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_writer_factory.idl
@@ -5,16 +5,35 @@
// Writer API
// https://github.com/explainers-by-googlers/writing-assistance-apis
-dictionary AIWriterCreateOptions {
+enum AIWriterTone { "formal", "neutral", "casual" };
+enum AIWriterFormat { "plain-text", "markdown" };
+enum AIWriterLength { "short", "medium", "long" };
+
+dictionary AIWriterCreateCoreOptions {
+ AIWriterTone tone = "neutral";
+ AIWriterFormat format = "plain-text";
+ AIWriterLength length = "medium";
+
+ sequence expectedInputLanguages;
+ DOMString outputLanguage;
+};
+
+dictionary AIWriterCreateOptions : AIWriterCreateCoreOptions {
AbortSignal signal;
DOMString sharedContext;
};
[
Exposed=(Window,Worker),
- RuntimeEnabled=AIWriterAPI
+ RuntimeEnabled=AIWriterAPI,
+ SecureContext
]
interface AIWriterFactory {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ]
+ Promise availability(optional AIWriterCreateCoreOptions options = {});
[
Measure,
CallWith=ScriptState,
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl
index 4b84ebc5..b3d66e90 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector.idl
@@ -1,6 +1,12 @@
+dictionary LanguageDetectionResult {
+ DOMString? detectedLanguage; // null represents unknown language
+ double confidence;
+};
+
[
RuntimeEnabled=LanguageDetectionAPI,
- Exposed=(Window,Worker)
+ Exposed=(Window, Worker),
+ SecureContext
]
interface AILanguageDetector {
[
@@ -10,12 +16,12 @@ interface AILanguageDetector {
Promise> detect(DOMString input,
optional AILanguageDetectorDetectOptions options = {});
-[
- CallWith=ScriptState
-]
+ [
+ CallWith=ScriptState
+ ]
undefined destroy();
};
dictionary AILanguageDetectorDetectOptions {
AbortSignal signal;
-};
\ No newline at end of file
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl
index f29c7cf1..a8f72ecf 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_capabilities.idl
@@ -1,6 +1,7 @@
[
RuntimeEnabled=LanguageDetectionAPI,
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker),
+ SecureContext
]
interface AILanguageDetectorCapabilities {
[
@@ -10,4 +11,4 @@ interface AILanguageDetectorCapabilities {
readonly attribute AICapabilityAvailability available;
AICapabilityAvailability languageAvailable(DOMString languageTag);
-};
\ No newline at end of file
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl
index b6b46281..69a62e6e 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_language_detector_factory.idl
@@ -1,6 +1,7 @@
[
RuntimeEnabled=LanguageDetectionAPI,
- Exposed=(Window,Worker)
+ Exposed=(Window, Worker),
+ SecureContext
]
interface AILanguageDetectorFactory {
[
@@ -16,5 +17,5 @@ interface AILanguageDetectorFactory {
dictionary AILanguageDetectorCreateOptions {
AbortSignal signal;
- // TODO(crbug.com/349927087): Add AICreateMonitorCallback.
-};
\ No newline at end of file
+ AICreateMonitorCallback monitor;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl
index 10eede61..139662e5 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator.idl
@@ -1,6 +1,7 @@
[
RuntimeEnabled=TranslationAPI,
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker),
+ SecureContext
]
interface AITranslator {
[
@@ -18,4 +19,4 @@ interface AITranslator {
dictionary AITranslatorTranslateOptions {
AbortSignal signal;
-};
\ No newline at end of file
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl
new file mode 100755
index 00000000..a3f49d02
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_capabilities.idl
@@ -0,0 +1,12 @@
+[
+ RuntimeEnabled=TranslationAPI,
+ Exposed=(Window,Worker),
+ SecureContext
+]
+interface AITranslatorCapabilities {
+ readonly attribute AICapabilityAvailability available;
+
+ AICapabilityAvailability languagePairAvailable(
+ DOMString sourceLanguage,
+ DOMString targetLanguage);
+};
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl
index d7539977..9a17064b 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/ai_translator_factory.idl
@@ -1,6 +1,7 @@
[
RuntimeEnabled=TranslationAPI,
- Exposed=(Window,Worker)
+ Exposed=(Window,Worker),
+ SecureContext
]
interface AITranslatorFactory {
[
@@ -8,7 +9,11 @@ interface AITranslatorFactory {
RaisesException
]
Promise create(optional AITranslatorCreateOptions options = {});
-// TODO(crbug.com/322229993): Add capabilities().
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ]
+ Promise capabilities();
};
dictionary AITranslatorCreateOptions {
@@ -16,4 +21,4 @@ dictionary AITranslatorCreateOptions {
// TODO(crbug.com/322229993): Add AICreateMonitorCallback.
required DOMString sourceLanguage;
required DOMString targetLanguage;
-};
\ No newline at end of file
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
index 54491572..1a4ec48a 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/window_or_worker_global_scope_ai.idl
@@ -10,7 +10,7 @@
RuntimeEnabled=BuiltInAIAPI
] partial interface mixin WindowOrWorkerGlobalScope {
[
- Replaceable
+ Replaceable, SecureContext
]
readonly attribute AI ai;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl
new file mode 100755
index 00000000..66fe87ea
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl
@@ -0,0 +1,130 @@
+// 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.
+
+enum CanvasFillRule { "nonzero", "evenodd" };
+enum ImageSmoothingQuality {"low", "medium", "high"};
+enum CanvasTextRendering {"auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"};
+enum CanvasFontStretch {"ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"};
+
+dictionary BeginLayerOptions {
+ CanvasFilterInput? filter = null;
+};
+
+interface mixin BaseRenderingContext2D {
+ // state
+ void save(); // push state on state stack
+ [NoAllocDirectCall, RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state
+ [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayers, CallWith=ScriptState] void beginLayer(); // push state on state stack and creates bitmap for subsequent draw ops
+ [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayersWithOptions, CallWith=ScriptState, RaisesException] void beginLayer(BeginLayerOptions options); // push state on state stack and creates bitmap for subsequent draw ops
+ [NoAllocDirectCall, RuntimeEnabled=Canvas2dLayers, RaisesException] void endLayer(); // pop state stack if top state was pushed by beginLayer, restore state and draw the bitmap
+ // Clear the canvas and reset the path
+ void reset();
+ boolean isContextLost();
+
+ // transformations (default transform is the identity matrix)
+ [HighEntropy] void scale(unrestricted double x, unrestricted double y);
+ [HighEntropy, NoAllocDirectCall] void rotate(unrestricted double angle);
+ [HighEntropy] void translate(unrestricted double x, unrestricted double y);
+ [HighEntropy] void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
+ [HighEntropy] void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
+ [RaisesException] void setTransform(optional DOMMatrixInit transform = {});
+ DOMMatrix getTransform();
+ [NoAllocDirectCall] void resetTransform();
+
+ // compositing
+ attribute unrestricted double globalAlpha; // (default 1.0)
+ [HighEntropy] attribute DOMString globalCompositeOperation; // (default source-over)
+ [MeasureAs=Canvas2DFilter, SetterCallWith=ScriptState] attribute (DOMString or CanvasFilter)? filter; // (default 'none')
+
+ // image smoothing
+ attribute boolean imageSmoothingEnabled; // (default True)
+ [MeasureAs=Canvas2DImageSmoothingQuality2] attribute ImageSmoothingQuality imageSmoothingQuality; // (default "low")
+
+ // colors and styles (see also the CanvasDrawingStyles interface)
+ [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState, NoAllocDirectCall=Setter] attribute any strokeStyle; // (default black)
+ [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any fillStyle; // (default black)
+ CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
+ [RaisesException] CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
+ CanvasGradient createConicGradient(double startAngle, double cx, double cy);
+ [RaisesException] CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetitionType);
+
+ // shadows
+ [HighEntropy] attribute unrestricted double shadowOffsetX;
+ [HighEntropy] attribute unrestricted double shadowOffsetY;
+ [HighEntropy] attribute unrestricted double shadowBlur;
+ [HighEntropy] attribute DOMString shadowColor;
+
+ // CanvasRect interface
+ [HighEntropy, NoAllocDirectCall] void clearRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [HighEntropy, NoAllocDirectCall] void fillRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [HighEntropy, NoAllocDirectCall] void strokeRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+
+ // path API (see also CanvasPath)
+ [HighEntropy, NoAllocDirectCall] void beginPath();
+ [HighEntropy] void fill(optional CanvasFillRule winding);
+ [HighEntropy] void fill(Path2D path, optional CanvasFillRule winding);
+ [HighEntropy, NoAllocDirectCall] void stroke();
+ [HighEntropy] void stroke(Path2D path);
+
+ [HighEntropy] void clip(optional CanvasFillRule winding);
+ [HighEntropy] void clip(Path2D path, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInPath] boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInPath] boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInStroke] boolean isPointInStroke(unrestricted double x, unrestricted double y);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInStroke] boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
+
+ // text (see also the CanvasDrawingStyles interface)
+ [HighEntropy, MeasureAs=Canvas2DDrawText] void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
+ [HighEntropy, MeasureAs=Canvas2DDrawText] void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
+ [HighEntropy, MeasureAs=Canvas2DMeasureText] TextMetrics measureText(DOMString text);
+ [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y);
+ [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y, TextClusterOptions options);
+
+ // drawing images
+ [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
+ [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [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
+ [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);
+ [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
+ [HighEntropy, MeasureAs=Canvas2DGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh);
+ [HighEntropy, MeasureAs=Canvas2DGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
+ [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy);
+ [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
+
+ // FIXME: factor out to CanvasDrawingStyles
+ // line caps/joins
+ [NoAllocDirectCall=Setter] attribute unrestricted double lineWidth; // (default 1)
+ attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
+ attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
+ attribute unrestricted double miterLimit; // (default 10)
+
+ // dashed lines
+ void setLineDash(sequence dash);
+ sequence getLineDash();
+ attribute unrestricted double lineDashOffset;
+
+ // text
+ [HighEntropy] attribute DOMString font; // (default 10px sans-serif)
+ attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
+ attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
+ attribute DOMString direction; // "inherit", "rtl", "ltr" (default: "inherit")
+ attribute DOMString fontKerning; // "auto", "normal", "none" (default: "auto")
+ attribute CanvasFontStretch fontStretch; // "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" (default: normal)
+ attribute DOMString fontVariantCaps; // "normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps" (default: "normal")
+ attribute DOMString letterSpacing; // length in pixel (default: "0px")
+ attribute CanvasTextRendering textRendering; // "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision" (default: "auto")
+ attribute DOMString wordSpacing; // length in pixel (default: "0px")
+};
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 0687fa7a..3236eafe 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
@@ -42,15 +42,6 @@ typedef (CSSImageValue or
OffscreenCanvas or
VideoFrame) CanvasImageSource;
-enum CanvasFillRule { "nonzero", "evenodd" };
-enum ImageSmoothingQuality {"low", "medium", "high"};
-enum CanvasTextRendering {"auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"};
-enum CanvasFontStretch {"ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"};
-
-dictionary BeginLayerOptions {
- CanvasFilterInput? filter = null;
-};
-
[
ActiveScriptWrappable,
Exposed=Window
@@ -59,133 +50,17 @@ interface CanvasRenderingContext2D {
// back-reference to the canvas
readonly attribute HTMLCanvasElement canvas;
- // state
- void save(); // push state on state stack
- [NoAllocDirectCall, RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state
- [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayers, CallWith=ScriptState] void beginLayer(); // push state on state stack and creates bitmap for subsequent draw ops
- [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayersWithOptions, CallWith=ScriptState, RaisesException] void beginLayer(BeginLayerOptions options); // push state on state stack and creates bitmap for subsequent draw ops
- [NoAllocDirectCall, RuntimeEnabled=Canvas2dLayers, RaisesException] void endLayer(); // pop state stack if top state was pushed by beginLayer, restore state and draw the bitmap
- // Clear the canvas and reset the path
- void reset();
-
- // transformations (default transform is the identity matrix)
- [HighEntropy] void scale(unrestricted double x, unrestricted double y);
- [HighEntropy, NoAllocDirectCall] void rotate(unrestricted double angle);
- [HighEntropy] void translate(unrestricted double x, unrestricted double y);
- [HighEntropy] void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- [HighEntropy] void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- [RaisesException] void setTransform(optional DOMMatrixInit transform = {});
- DOMMatrix getTransform();
- [NoAllocDirectCall] void resetTransform();
-
- // compositing
- attribute unrestricted double globalAlpha; // (default 1.0)
- [HighEntropy] attribute DOMString globalCompositeOperation; // (default source-over)
- [MeasureAs=Canvas2DFilter, SetterCallWith=ScriptState] attribute (DOMString or CanvasFilter)? filter; // (default 'none')
-
- // image smoothing
- attribute boolean imageSmoothingEnabled; // (default True)
- [MeasureAs=Canvas2DImageSmoothingQuality]attribute ImageSmoothingQuality imageSmoothingQuality; // (default "low")
-
- // colors and styles (see also the CanvasDrawingStyles interface)
- [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any strokeStyle; // (default black)
- [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any fillStyle; // (default black)
- CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
- [RaisesException] CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
- CanvasGradient createConicGradient(double startAngle, double cx, double cy);
- [RaisesException] CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetitionType);
-
- // shadows
- [HighEntropy] attribute unrestricted double shadowOffsetX;
- [HighEntropy] attribute unrestricted double shadowOffsetY;
- [HighEntropy] attribute unrestricted double shadowBlur;
- [HighEntropy] attribute DOMString shadowColor;
-
- // rects
- [HighEntropy, NoAllocDirectCall] void clearRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy, NoAllocDirectCall] void fillRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy, NoAllocDirectCall] void strokeRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
-
- // path API (see also CanvasPath)
- [HighEntropy, NoAllocDirectCall] void beginPath();
- [HighEntropy] void fill(optional CanvasFillRule winding);
- [HighEntropy] void fill(Path2D path, optional CanvasFillRule winding);
- [HighEntropy, NoAllocDirectCall] void stroke();
- [HighEntropy] void stroke(Path2D path);
// Focus rings
void drawFocusIfNeeded(Element element);
void drawFocusIfNeeded(Path2D path, Element element);
- void clip(optional CanvasFillRule winding);
- void clip(Path2D path, optional CanvasFillRule winding);
- [HighEntropy] boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy] boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy] boolean isPointInStroke(unrestricted double x, unrestricted double y);
- [HighEntropy] boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
-
- // text (see also the CanvasDrawingStyles interface)
- [HighEntropy] void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- [HighEntropy] void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- [HighEntropy] TextMetrics measureText(DOMString text);
- [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y);
-
- // drawing images
- [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
- [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [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);
-
// placeElement: https://github.com/Igalia/explainers/blob/main/canvas-formatted-text/html-in-canvas.md
[RuntimeEnabled=CanvasPlaceElement, RaisesException] void placeElement(Element element, unrestricted double x,
unrestricted double y);
- // triangle mesh API
- [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);
- [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
- [HighEntropy, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh);
- [HighEntropy, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
- [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy);
- [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
-
- // Context state
- // Should be merged with WebGL counterpart in CanvasRenderingContext, once no-longer experimental
- boolean isContextLost();
-
[MeasureAs=GetCanvas2DContextAttributes] CanvasRenderingContext2DSettings getContextAttributes();
-
- // FIXME: factor out to CanvasDrawingStyles
- // line caps/joins
- attribute unrestricted double lineWidth; // (default 1)
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
- attribute unrestricted double miterLimit; // (default 10)
-
- // dashed lines
- void setLineDash(sequence dash);
- sequence getLineDash();
- attribute unrestricted double lineDashOffset;
-
- // text
- [HighEntropy] attribute DOMString font; // (default 10px sans-serif)
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
- attribute DOMString direction; // "inherit", "rtl", "ltr" (default: "inherit")
- attribute DOMString fontKerning; // "auto", "normal", "none" (default: "auto")
- attribute CanvasFontStretch fontStretch; // "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" (default: normal)
- attribute DOMString fontVariantCaps; // "normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps" (default: "normal")
- attribute DOMString letterSpacing; // length in pixel (default: "0px")
- attribute CanvasTextRendering textRendering; // "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision" (default: "auto")
- attribute DOMString wordSpacing; // length in pixel (default: "0px")
};
+CanvasRenderingContext2D includes BaseRenderingContext2D;
CanvasRenderingContext2D includes CanvasPath;
CanvasRenderingContext2D includes Canvas2dGPUTransfer;
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 d9ff5f7e..05ace652 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
@@ -11,118 +11,8 @@
// back-reference to the canvas
[ImplementedAs=offscreenCanvasForBinding] readonly attribute OffscreenCanvas canvas;
- // state
- void save(); // push state on state stack
- [NoAllocDirectCall, RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state
- [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayers, CallWith=ScriptState] void beginLayer(); // push state on state stack and creates bitmap for subsequent draw ops
- [MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayersWithOptions, CallWith=ScriptState, RaisesException] void beginLayer(BeginLayerOptions options); // push state on state stack and creates bitmap for subsequent draw ops
- [NoAllocDirectCall, RuntimeEnabled=Canvas2dLayers, RaisesException] void endLayer(); // pop state stack if top state was pushed by beginLayer, restore state and draw the bitmap
- // Clear the canvas and reset the path
- void reset();
- boolean isContextLost();
-
- // transformations (default transform is the identity matrix)
- [HighEntropy] void scale(unrestricted double x, unrestricted double y);
- [HighEntropy, NoAllocDirectCall] void rotate(unrestricted double angle);
- [HighEntropy] void translate(unrestricted double x, unrestricted double y);
- [HighEntropy] void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- [HighEntropy] void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- [RaisesException] void setTransform(optional DOMMatrixInit transform = {});
- DOMMatrix getTransform();
- [NoAllocDirectCall] void resetTransform();
-
- // compositing
- attribute unrestricted double globalAlpha; // (default 1.0)
- [HighEntropy] attribute DOMString globalCompositeOperation; // (default source-over)
- [MeasureAs=Canvas2DFilter, SetterCallWith=ScriptState] attribute (DOMString or CanvasFilter)? filter; // (default 'none')
-
- // image smoothing
- attribute boolean imageSmoothingEnabled; // (default True)
- [MeasureAs=Canvas2DImageSmoothingQuality] attribute ImageSmoothingQuality imageSmoothingQuality; // (default "low")
-
- // colors and styles
- [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any strokeStyle; // (default black)
- [HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any fillStyle; // (default black)
- CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
- [RaisesException] CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
- CanvasGradient createConicGradient(double startAngle, double centerX, double centerY);
- [RaisesException] CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetitionType);
-
- // shadows
- [HighEntropy] attribute unrestricted double shadowOffsetX;
- [HighEntropy] attribute unrestricted double shadowOffsetY;
- [HighEntropy] attribute unrestricted double shadowBlur;
- [HighEntropy] attribute DOMString shadowColor;
-
- // CanvasRect interface
- [HighEntropy, NoAllocDirectCall] void clearRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy, NoAllocDirectCall] void fillRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy, NoAllocDirectCall] void strokeRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
-
- // Path API (See BaseRenderingContext2D)
- [HighEntropy, NoAllocDirectCall] void beginPath();
- [HighEntropy] void fill(optional CanvasFillRule winding);
- [HighEntropy] void fill(Path2D path, optional CanvasFillRule winding);
- [HighEntropy] void stroke();
- [HighEntropy] void stroke(Path2D path);
- [HighEntropy] void clip(optional CanvasFillRule winding);
- [HighEntropy] void clip(Path2D path, optional CanvasFillRule winding);
- [HighEntropy, MeasureAs=OffscreenCanvasIsPointInPath] boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy, MeasureAs=OffscreenCanvasIsPointInPath] boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy, MeasureAs=OffscreenCanvasIsPointInStroke] boolean isPointInStroke(unrestricted double x, unrestricted double y);
- [HighEntropy, MeasureAs=OffscreenCanvasIsPointInStroke] boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
-
- // text (see also the CanvasDrawingStyles interface)
- [HighEntropy] void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- [HighEntropy] void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- [HighEntropy, MeasureAs=OffscreenCanvasMeasureText] TextMetrics measureText(DOMString text);
- [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y);
-
- // drawing images
- [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
- [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [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
- [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);
- [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
- [HighEntropy, MeasureAs=OffscreenCanvasGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh);
- [HighEntropy, MeasureAs=OffscreenCanvasGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings);
- [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy);
- [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
-
- // Line caps/joins
- attribute unrestricted double lineWidth; // (default 1)
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
- attribute unrestricted double miterLimit; // (default 10)
-
- // dashed lines
- void setLineDash(sequence dash);
- sequence getLineDash();
- attribute unrestricted double lineDashOffset;
-
- // text
- [HighEntropy] attribute DOMString font; // (default 10px sans-serif)
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
- attribute DOMString direction; // "inherit", "rtl", "ltr" (default: "inherit")
- attribute DOMString fontKerning; // "auto", "normal", "none" (default: "auto")
- [ImplementedAs=fontStretchAsString] attribute DOMString fontStretch; // "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" (default: normal)
- attribute DOMString fontVariantCaps; // "normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps" (default: "normal")
- attribute DOMString letterSpacing; // length in pixel (default: "0px")
- [ImplementedAs=textRenderingAsString] attribute DOMString textRendering; // "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision" (default: auto)
- attribute DOMString wordSpacing; // length in pixel (default: "0px")
};
+OffscreenCanvasRenderingContext2D includes BaseRenderingContext2D;
OffscreenCanvasRenderingContext2D includes CanvasPath;
OffscreenCanvasRenderingContext2D includes Canvas2dGPUTransfer;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl
index 5ab3f399..7ceb5774 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl
@@ -27,6 +27,9 @@ dictionary AuthenticationExtensionsClientOutputs {
// https://w3c.github.io/webauthn/#sctn-supplemental-public-keys-extension
[RuntimeEnabled=WebAuthenticationSupplementalPubKeys] AuthenticationExtensionsSupplementalPubKeysOutputs supplementalPubKeys;
+ // Payment extension outputs support.
+ [RuntimeEnabled=SecurePaymentConfirmationBrowserBoundKeys] AuthenticationExtensionsPaymentOutputs payment;
+
// Pseudo-random function support.
// https://w3c.github.io/webauthn/#prf-extension
[RuntimeEnabled=WebAuthenticationPRF] AuthenticationExtensionsPRFOutputs prf;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_browser_bound_signature.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_browser_bound_signature.idl
new file mode 100755
index 00000000..11f44609
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_browser_bound_signature.idl
@@ -0,0 +1,16 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// The signature corresponding to a public key in the payment portion of the
+// clientDataJson.
+//
+// The public key is encoded in COSE_Key format with the alg parameter set,
+// following the same rules for WebAuthn attested credential data's
+// credentialPublicKey parameter. See
+// https://w3c.github.io/webauthn/#sctn-attested-credential-data
+dictionary AuthenticationExtensionsPaymentBrowserBoundSignature {
+ // Output of the signature algorithm.
+ ArrayBuffer signature_output;
+};
+
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_outputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_outputs.idl
new file mode 100755
index 00000000..b6fda9aa
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_payment_outputs.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.
+
+// Outputs related to the payment extension.
+dictionary AuthenticationExtensionsPaymentOutputs {
+ // A sequence of signatures corresponding to the browser bound public keys in
+ // clientDataJson.
+ sequence browser_bound_signatures;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authenticator_attestation_response.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authenticator_attestation_response.idl
index 4809a7ae..4afdaec2 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authenticator_attestation_response.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authenticator_attestation_response.idl
@@ -13,6 +13,6 @@
[HighEntropy=Direct, Measure] sequence getTransports();
ArrayBuffer getAuthenticatorData();
- ArrayBuffer? getPublicKey();
+ [Measure] ArrayBuffer? getPublicKey();
COSEAlgorithmIdentifier getPublicKeyAlgorithm();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/credential_creation_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/credential_creation_options.idl
index 57d39a06..6598e8e4 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/credential_creation_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/credential_creation_options.idl
@@ -12,5 +12,8 @@ dictionary CredentialCreationOptions {
PasswordCredentialInit password;
FederatedCredentialInit federated;
PublicKeyCredentialCreationOptions publicKey;
+ [RuntimeEnabled=WebAuthenticationConditionalCreate]
+ CredentialMediationRequirement mediation = "optional";
+ [RuntimeEnabled=WebIdentityDigitalCredentialsCreation] DigitalCredentialCreationOptions digital;
AbortSignal signal;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl
new file mode 100755
index 00000000..d9772931
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_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.
+
+// TODO(crbug.com/379294636): add link to the specs where the link is avaialble.
+dictionary DigitalCredentialCreationOptions {
+ required DOMString protocol;
+ required object data;
+};
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 0aeedb16..0dd1af2e 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
@@ -17,6 +17,10 @@ dictionary IdentityProviderConfig {
[RuntimeEnabled=FedCmIdPRegistration] DOMString type;
};
+enum IdentityProviderRequestOptionsFormat {
+ "vc+sd-jwt",
+};
+
dictionary IdentityProviderField {
required USVString name;
};
@@ -27,4 +31,5 @@ dictionary IdentityProviderRequestOptions : IdentityProviderConfig {
[RuntimeEnabled=FedCmDomainHint] DOMString domainHint;
[RuntimeEnabled=FedCmAuthz] sequence<(USVString or IdentityProviderField)> fields;
[RuntimeEnabled=FedCmAuthz] any params;
+ [RuntimeEnabled=FedCmDelegation] IdentityProviderRequestOptionsFormat format;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options.idl
index 8e0cb5d0..49d61db1 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options.idl
@@ -5,9 +5,13 @@
// https://w3c.github.io/webauthn/#dictdef-publickeycredentialrequestoptions
dictionary PublicKeyCredentialRequestOptions {
- required BufferSource challenge;
+ BufferSource challenge;
+
+ [RuntimeEnabled=WebAuthenticationChallengeUrl]
+ USVString challengeUrl;
+
unsigned long timeout;
- USVString rpId;
+ DOMString rpId;
sequence allowCredentials = [];
// A DOMString expressing a UserVerificationRequirement.
DOMString userVerification;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options_json.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options_json.idl
index 07f6880d..88a99eb5 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options_json.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential_request_options_json.idl
@@ -5,7 +5,9 @@
// https://w3c.github.io/webauthn/#dictdef-publickeycredentialrequestoptionsjson
dictionary PublicKeyCredentialRequestOptionsJSON {
- required Base64URLString challenge;
+ Base64URLString challenge;
+ [RuntimeEnabled=WebAuthenticationChallengeUrl]
+ DOMString challengeUrl;
unsigned long timeout;
DOMString rpId;
sequence allowCredentials = [];
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 c9e2aea0..b86e848b 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/csspaint/paint_rendering_context_2d.idl
@@ -9,20 +9,20 @@
] interface PaintRenderingContext2D {
// state
void save(); // push state on state stack
- [RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state
+ [NoAllocDirectCall, RaisesException] void restore(); // pop state stack if top state was pushed by save, and restore state
[MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayers, CallWith=ScriptState] void beginLayer(); // push state on state stack and creates bitmap for subsequent draw ops
[MeasureAs=Canvas2DLayers, RuntimeEnabled=Canvas2dLayersWithOptions, CallWith=ScriptState, RaisesException] void beginLayer(BeginLayerOptions options); // push state on state stack and creates bitmap for subsequent draw ops
- [RuntimeEnabled=Canvas2dLayers, RaisesException] void endLayer(); // pop state stack if top state was pushed by beginLayer, restore state and draw the bitmap
+ [NoAllocDirectCall, RuntimeEnabled=Canvas2dLayers, RaisesException] void endLayer(); // pop state stack if top state was pushed by beginLayer, restore state and draw the bitmap
// Clear the canvas and reset the path
void reset();
// transformations (default transform is the identity matrix)
[HighEntropy] void scale(unrestricted double x, unrestricted double y);
- [HighEntropy] void rotate(unrestricted double angle);
+ [HighEntropy, NoAllocDirectCall] void rotate(unrestricted double angle);
[HighEntropy] void translate(unrestricted double x, unrestricted double y);
[HighEntropy] void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- void resetTransform();
+ [HighEntropy] void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
+ [NoAllocDirectCall] void resetTransform();
[RaisesException] void setTransform(optional DOMMatrixInit transform = {});
DOMMatrix getTransform();
@@ -34,7 +34,7 @@
// image smoothing
attribute boolean imageSmoothingEnabled; // (default True)
- [RuntimeEnabled=CanvasImageSmoothing] attribute ImageSmoothingQuality imageSmoothingQuality; // (default "low")
+ [RuntimeEnabled=CanvasImageSmoothing, MeasureAs=Canvas2DImageSmoothingQuality2] attribute ImageSmoothingQuality imageSmoothingQuality; // (default "low")
// colors and styles (see also the CanvasDrawingStyles interface)
[HighEntropy, SetterCallWith=Isolate, RaisesException=Setter, GetterCallWith=ScriptState] attribute any strokeStyle; // (default black)
@@ -51,23 +51,23 @@
[HighEntropy] attribute DOMString shadowColor;
// rects
- [HighEntropy] void clearRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy] void fillRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
- [HighEntropy] void strokeRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [HighEntropy, NoAllocDirectCall] void clearRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [HighEntropy, NoAllocDirectCall] void fillRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
+ [HighEntropy, NoAllocDirectCall] void strokeRect(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height);
// path API (see also CanvasPath)
- [HighEntropy] void beginPath();
+ [HighEntropy, NoAllocDirectCall] void beginPath();
[HighEntropy] void fill(optional CanvasFillRule winding);
[HighEntropy] void fill(Path2D path, optional CanvasFillRule winding);
- [HighEntropy] void stroke();
+ [HighEntropy, NoAllocDirectCall] void stroke();
[HighEntropy] void stroke(Path2D path);
- void clip(optional CanvasFillRule winding);
- void clip(Path2D path, optional CanvasFillRule winding);
- [HighEntropy, Measure] boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy, Measure] boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
- [HighEntropy, Measure] boolean isPointInStroke(unrestricted double x, unrestricted double y);
- [HighEntropy, Measure] boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
+ [HighEntropy] void clip(optional CanvasFillRule winding);
+ [HighEntropy] void clip(Path2D path, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInPath] boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInPath] boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule winding);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInStroke] boolean isPointInStroke(unrestricted double x, unrestricted double y);
+ [HighEntropy, MeasureAs=Canvas2DIsPointInStroke] boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
// drawing images
[RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
index 8effa5ff..3758420c 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_motion_event.idl
@@ -34,5 +34,5 @@
readonly attribute DeviceMotionEventRotationRate? rotationRate;
readonly attribute double interval;
- [RuntimeEnabled=DeviceOrientationRequestPermission, CallWith=ScriptState, MeasureAs=DeviceMotionPermissionRequested] static Promise requestPermission();
+ [RuntimeEnabled=DeviceOrientationRequestPermission, CallWith=ScriptState, MeasureAs=DeviceMotionPermissionRequested] static Promise requestPermission();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
index 3bc6cf19..6f62e3d5 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl
@@ -23,12 +23,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-// https://w3c.github.io/deviceorientation/#enumdef-permissionstate
-enum DeviceOrientationPermissionState {
- "granted",
- "denied",
-};
-
// https://w3c.github.io/deviceorientation/spec-source-orientation.html#deviceorientation
[
Exposed=Window, SecureContext
@@ -39,5 +33,5 @@ enum DeviceOrientationPermissionState {
readonly attribute double? gamma;
readonly attribute boolean absolute;
- [RuntimeEnabled=DeviceOrientationRequestPermission, CallWith=ScriptState, MeasureAs=DeviceOrientationPermissionRequested] static Promise requestPermission();
+ [RuntimeEnabled=DeviceOrientationRequestPermission, CallWith=ScriptState, MeasureAs=DeviceOrientationPermissionRequested] static Promise requestPermission();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl b/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
index 582855ae..62ebaeb0 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
@@ -21,5 +21,5 @@ enum MediaKeyStatus {
iterable ;
readonly attribute unsigned long size;
boolean has(BufferSource keyId);
- [CallWith=ScriptState] any get(BufferSource keyId);
+ (MediaKeyStatus or undefined) get(BufferSource keyId);
};
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 8b1a07ba..ab800717 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
@@ -13,25 +13,22 @@ enum FileSystemChangeType {
"unknown",
};
-[
- Exposed=(DedicatedWorker,SharedWorker,Window),
- SecureContext,
- RuntimeEnabled=FileSystemObserver
-] interface FileSystemChangeRecord {
+dictionary FileSystemChangeRecord {
// The handle that was passed to FileSystemObserver.observe().
- readonly attribute FileSystemHandle root;
+ FileSystemHandle root;
- // The handle affected by the file system change.
- readonly attribute FileSystemHandle changedHandle;
+ // The handle affected by the file system change. This is null for
+ // "disappeared", "errored", and "unknown" change types.
+ FileSystemHandle? changedHandle;
// The path of `changedHandle` relative to `root`.
- readonly attribute FrozenArray relativePathComponents;
+ sequence relativePathComponents;
// The type of change.
- readonly attribute FileSystemChangeType type;
+ FileSystemChangeType type;
// If `type` is "moved", this corresponds to the former path of
// `changedHandle` relative to `root`, if the former path is known;
// otherwise null.
- readonly attribute FrozenArray? relativePathMovedFrom;
+ sequence? relativePathMovedFrom;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/filesystem/metadata.idl b/tools/under-control/src/third_party/blink/renderer/modules/filesystem/metadata.idl
index 934ab546..d199aae3 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/filesystem/metadata.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/filesystem/metadata.idl
@@ -32,6 +32,6 @@
[
LegacyNoInterfaceObject
] interface Metadata {
- [CallWith=ScriptState, Measure] readonly attribute object modificationTime;
+ [CallWith=ScriptState, Measure] readonly attribute object? modificationTime;
readonly attribute unsigned long long size;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid.idl b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid.idl
index 94f1167f..73ffc246 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid.idl
@@ -8,7 +8,7 @@
[
Exposed(ServiceWorker WebHIDOnServiceWorkers,
- DedicatedWorker WebHIDOnDedicatedWorkers,
+ DedicatedWorker WebHID,
Window WebHID),
SecureContext
] interface HID : EventTarget {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_connection_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_connection_event.idl
index a55b5170..b4a0bc37 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_connection_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_connection_event.idl
@@ -7,7 +7,7 @@
[
Exposed(ServiceWorker WebHIDOnServiceWorkers,
- DedicatedWorker WebHIDOnDedicatedWorkers,
+ DedicatedWorker WebHID,
Window WebHID),
SecureContext
] interface HIDConnectionEvent : Event {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_device.idl b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_device.idl
index fb2b15a4..21785814 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_device.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_device.idl
@@ -10,7 +10,7 @@
[
ActiveScriptWrappable,
Exposed(ServiceWorker WebHIDOnServiceWorkers,
- DedicatedWorker WebHIDOnDedicatedWorkers,
+ DedicatedWorker WebHID,
Window WebHID),
SecureContext
] interface HIDDevice : EventTarget {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_input_report_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_input_report_event.idl
index bd948e2c..968d5b27 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_input_report_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/hid/hid_input_report_event.idl
@@ -7,7 +7,7 @@
[
Exposed(ServiceWorker WebHIDOnServiceWorkers,
- DedicatedWorker WebHIDOnDedicatedWorkers,
+ DedicatedWorker WebHID,
Window WebHID),
SecureContext
] interface HIDInputReportEvent : Event {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/hid/worker_navigator_hid.idl b/tools/under-control/src/third_party/blink/renderer/modules/hid/worker_navigator_hid.idl
index 21e60ea5..4f41f3cc 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/hid/worker_navigator_hid.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/hid/worker_navigator_hid.idl
@@ -6,7 +6,7 @@
[
Exposed(ServiceWorker WebHIDOnServiceWorkers,
- DedicatedWorker WebHIDOnDedicatedWorkers),
+ DedicatedWorker WebHID),
ImplementedAs=HID,
RuntimeEnabled=WebHID,
SecureContext
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_get_all_records_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_get_all_records_options.idl
new file mode 100755
index 00000000..5a0c218f
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_get_all_records_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.
+
+dictionary IDBGetAllRecordsOptions {
+ any query = null;
+ [EnforceRange] unsigned long count;
+ IDBCursorDirection direction = "next";
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_index.idl b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_index.idl
index e644cdb6..4d190b09 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_index.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_index.idl
@@ -46,4 +46,7 @@
optional IDBCursorDirection direction = "next");
[NewObject, CallWith=ScriptState, RaisesException] IDBRequest openKeyCursor(optional any range = null,
optional IDBCursorDirection direction = "next");
+
+ [RuntimeEnabled=IndexedDbGetAllRecords, NewObject, CallWith=ScriptState, RaisesException]
+ IDBRequest getAllRecords(optional IDBGetAllRecordsOptions options = {});
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
index c8b9a300..6863bd31 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_object_store.idl
@@ -65,6 +65,9 @@
IDBRequest getAllKeys(optional any query = null,
optional [EnforceRange] unsigned long count);
+ [RuntimeEnabled=IndexedDbGetAllRecords, CallWith=ScriptState, MeasureAs=IndexedDBRead, NewObject, RaisesException]
+ IDBRequest getAllRecords(optional IDBGetAllRecordsOptions options = {});
+
[CallWith=ScriptState, MeasureAs=IndexedDBRead, NewObject, RaisesException]
IDBRequest count(optional any key = null);
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_request.idl b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_request.idl
index 4e46812f..7f98c388 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_request.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/indexeddb/idb_request.idl
@@ -42,7 +42,7 @@ enum IDBRequestReadyState {
] interface IDBRequest : EventTarget {
[CallWith=ScriptState, RaisesException=Getter, CachedAttribute=isResultDirty] readonly attribute any result;
[RaisesException=Getter] readonly attribute DOMException error;
- [CallWith=ScriptState] readonly attribute (IDBObjectStore or IDBIndex or IDBCursor) source;
+ [CallWith=ScriptState] readonly attribute (IDBObjectStore or IDBIndex or IDBCursor)? source;
readonly attribute IDBTransaction transaction;
readonly attribute IDBRequestReadyState readyState;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/media_capabilities/video_configuration.idl b/tools/under-control/src/third_party/blink/renderer/modules/media_capabilities/video_configuration.idl
index f73f8080..87a893ae 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/media_capabilities/video_configuration.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/media_capabilities/video_configuration.idl
@@ -14,9 +14,9 @@ dictionary VideoConfiguration {
required unsigned long height;
required unsigned long bitrate;
required double framerate;
- [RuntimeEnabled=MediaCapabilitiesDynamicRange] HdrMetadataType hdrMetadataType;
- [RuntimeEnabled=MediaCapabilitiesDynamicRange] ColorGamut colorGamut;
- [RuntimeEnabled=MediaCapabilitiesDynamicRange] TransferFunction transferFunction;
+ HdrMetadataType hdrMetadataType;
+ ColorGamut colorGamut;
+ TransferFunction transferFunction;
DOMString scalabilityMode;
boolean spatialScalability;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/track_default.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/track_default.idl
index 1d6a132c..1ed4eed3 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/mediasource/track_default.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/mediasource/track_default.idl
@@ -21,5 +21,5 @@ enum TrackDefaultType { "audio", "video", "text" };
// have it had getKinds() instead of |kinds|. Use an object here to avoid
// WebIDL arrays (which no longer exist) while not breaking compatibility
// See also: https://crbug.com/619665.
- [CallWith=ScriptState] readonly attribute object kinds;
+ [CallWith=ScriptState] readonly attribute object? kinds;
};
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 9e86a904..69a4641b 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
@@ -49,4 +49,7 @@
RuntimeEnabled = CaptureHandle, CallWith = ScriptState, RaisesException
] void
setCaptureHandleConfig(optional CaptureHandleConfig config = {});
+
+ [ RuntimeEnabled = PreferredAudioOutputDevices, CallWith = ScriptState, RaisesException]
+ Promise setPreferredSinkId(DOMString sinkId);
};
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 f2534143..8004249f 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
@@ -12,13 +12,6 @@
// In the future, this interface may be extended when WebNN is implemented so
// a dictionary may be insufficient.
-typedef record MLNamedArrayBufferViews;
-
-dictionary MLComputeResult {
- MLNamedArrayBufferViews inputs;
- MLNamedArrayBufferViews outputs;
-};
-
dictionary MLContextLostInfo {
DOMString message;
};
@@ -153,6 +146,11 @@ dictionary MLScatterSupportLimits {
MLSupportLimits output;
};
+dictionary MLSplitSupportLimits {
+ MLSupportLimits input;
+ MLSupportLimits outputs;
+};
+
dictionary MLWhereSupportLimits {
MLSupportLimits condition;
MLSupportLimits trueValue;
@@ -255,6 +253,7 @@ dictionary MLOpSupportLimits {
MLSingleInputSupportLimits relu;
MLSingleInputSupportLimits resample2d;
MLSingleInputSupportLimits reshape;
+ MLSingleInputSupportLimits reverse;
MLScatterSupportLimits scatterElements;
MLScatterSupportLimits scatterND;
MLSingleInputSupportLimits sigmoid;
@@ -262,7 +261,7 @@ dictionary MLOpSupportLimits {
MLSingleInputSupportLimits softmax;
MLSingleInputSupportLimits softplus;
MLSingleInputSupportLimits softsign;
- MLSingleInputSupportLimits split;
+ MLSplitSupportLimits split;
MLSingleInputSupportLimits tanh;
MLSingleInputSupportLimits tile;
MLSingleInputSupportLimits transpose;
@@ -270,7 +269,7 @@ dictionary MLOpSupportLimits {
MLWhereSupportLimits where;
};
-typedef record MLNamedTensors;
+typedef record MLNamedTensors;
[
RuntimeEnabled=MachineLearningNeuralNetwork,
@@ -288,14 +287,6 @@ typedef record MLNamedTensors;
RaisesException
] void destroy();
- [
- RuntimeEnabled=MachineLearningNeuralNetwork,
- CallWith=ScriptState,
- RaisesException,
- Measure
- ] Promise compute(
- MLGraph graph, MLNamedArrayBufferViews inputs, MLNamedArrayBufferViews outputs);
-
[
RuntimeEnabled=MachineLearningNeuralNetwork,
CallWith=ScriptState,
@@ -306,13 +297,7 @@ typedef record MLNamedTensors;
RuntimeEnabled=MachineLearningNeuralNetwork,
CallWith=ScriptState,
RaisesException
- ] void writeTensor(MLTensor dstTensor, [AllowShared] ArrayBufferView srcData);
-
- [
- RuntimeEnabled=MachineLearningNeuralNetwork,
- CallWith=ScriptState,
- RaisesException
- ] void writeTensor(MLTensor dstTensor, [AllowShared] ArrayBuffer srcData);
+ ] void writeTensor(MLTensor dstTensor, AllowSharedBufferSource srcData);
[
RuntimeEnabled=MachineLearningNeuralNetwork,
@@ -327,15 +312,7 @@ typedef record MLNamedTensors;
RaisesException
] Promise readTensor(
MLTensor sourceTensor,
- [AllowShared] ArrayBufferView destinationData);
-
- [
- RuntimeEnabled=MachineLearningNeuralNetwork,
- CallWith=ScriptState,
- RaisesException
- ] Promise readTensor(
- MLTensor sourceTensor,
- [AllowShared] ArrayBuffer destinationData);
+ AllowSharedBufferSource destinationData);
[
RuntimeEnabled=MachineLearningNeuralNetwork,
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 d14b0a16..1137f74b 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
@@ -197,6 +197,10 @@ dictionary MLResample2dOptions : MLOperatorOptions {
sequence<[EnforceRange] unsigned long> axes;
};
+dictionary MLReverseOptions : MLOperatorOptions {
+ sequence<[EnforceRange] unsigned long> axes;
+};
+
dictionary MLScatterOptions : MLOperatorOptions {
[EnforceRange] unsigned long axis = 0;
};
@@ -235,7 +239,7 @@ dictionary MLTriangularOptions : MLOperatorOptions {
[
CallWith=ScriptState,
RaisesException
- ] MLOperand constant(MLOperandDescriptor desc, ArrayBufferView bufferView);
+ ] MLOperand constant(MLOperandDescriptor desc, AllowSharedBufferSource buffer);
[RaisesException] MLOperand argMin(MLOperand input, [EnforceRange] unsigned long axis, optional MLArgMinMaxOptions options = {});
[RaisesException] MLOperand argMax(MLOperand input, [EnforceRange] unsigned long axis, optional MLArgMinMaxOptions options = {});
@@ -362,6 +366,8 @@ dictionary MLTriangularOptions : MLOperatorOptions {
[RaisesException] MLOperand reshape(MLOperand input, sequence<[EnforceRange] unsigned long> newShape, optional MLOperatorOptions options = {});
+ [RaisesException] MLOperand reverse(MLOperand input, optional MLReverseOptions options = {});
+
[
CallWith=ScriptState,
RaisesException
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
index ef652c12..980aacf7 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor.idl
@@ -14,8 +14,5 @@
readonly attribute boolean readable;
readonly attribute boolean writable;
-// TODO(crbug.com/343638938): Remove this after the M132 branch cut.
- readonly attribute MLTensorUsageFlags usage;
-
void destroy();
};
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_descriptor.idl
index 71e7bbed..312847c3 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_descriptor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_descriptor.idl
@@ -8,7 +8,4 @@ dictionary MLTensorDescriptor : MLOperandDescriptor {
boolean importableToWebGPU = false;
boolean readable = false;
boolean writable = false;
-
- // TODO(crbug.com/343638938): Remove this after the M132 branch cut.
- MLTensorUsageFlags usage;
};
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_usage.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_usage.idl
deleted file mode 100755
index 03f7c49a..00000000
--- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_tensor_usage.idl
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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/webnn/#api-mltensor
-
-// TODO(crbug.com/343638938): Remove this file after the M132 branch cut.
-
-typedef unsigned long MLFlagsConstant;
-
-typedef [EnforceRange] unsigned long MLTensorUsageFlags;
-[
- RuntimeEnabled=MachineLearningNeuralNetwork,
- Exposed=(Window, DedicatedWorker),
- SecureContext
-] namespace MLTensorUsage {
- const MLFlagsConstant WEBGPU_INTEROP = 1;
- const MLFlagsConstant READ = 2;
- const MLFlagsConstant WRITE = 4;
-};
\ No newline at end of file
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_detector.idl b/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_detector.idl
deleted file mode 100755
index c4e9a464..00000000
--- a/tools/under-control/src/third_party/blink/renderer/modules/on_device_translation/language_detector.idl
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2024 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Explainer: https://github.com/WICG/translation-api/blob/5151a1b1b37cd604542715141b0a203a8c6e9061/README.md
-// TODO(https://crbug.com/349927087): Migrate to latest API when it is decided.
-dictionary LanguageDetectionResult {
- DOMString? detectedLanguage;
- double confidence;
-};
-
-[
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window
-]
-interface LanguageDetector {
- [
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise> detect(DOMString input);
-};
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
index b03829af..252627bd 100755
--- 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
@@ -4,7 +4,7 @@
[
RuntimeEnabled=TranslationAPI,
- Exposed=Window
+ Exposed=(Window,Worker)
]
interface LanguageTranslator {
[
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
index 3f905edf..b9c74c41 100755
--- 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
@@ -15,7 +15,6 @@ enum TranslationAvailability {
interface Translation {
[
RuntimeEnabled=TranslationAPI,
- Exposed=Window,
Measure,
CallWith=ScriptState,
RaisesException
@@ -25,7 +24,6 @@ interface Translation {
);
[
RuntimeEnabled=TranslationAPI,
- Exposed=Window,
Measure,
CallWith=ScriptState,
RaisesException
@@ -33,20 +31,4 @@ interface Translation {
Promise createTranslator(
TranslationLanguageOptions options
);
- [
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window,
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise canDetect();
- [
- RuntimeEnabled=LanguageDetectionAPI,
- Exposed=Window,
- Measure,
- CallWith=ScriptState,
- RaisesException
- ]
- Promise createDetector();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_method_change_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
index d0f67eec..b34163a2 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
@@ -11,5 +11,5 @@
] interface PaymentMethodChangeEvent : PaymentRequestUpdateEvent {
[CallWith=ScriptState] constructor(DOMString type, optional PaymentMethodChangeEventInit eventInitDict = {});
readonly attribute DOMString methodName;
- [CallWith=ScriptState] readonly attribute object? methodDetails;
+ readonly attribute object? methodDetails;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_response.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_response.idl
index b6367a89..2ab0c35e 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_response.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_response.idl
@@ -22,7 +22,7 @@ enum PaymentComplete {
readonly attribute DOMString requestId;
readonly attribute DOMString methodName;
- [CallWith=ScriptState] readonly attribute object details;
+ readonly attribute object details;
readonly attribute PaymentAddress? shippingAddress;
readonly attribute DOMString? shippingOption;
readonly attribute DOMString? payerName;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
index 3559d3bd..b10eca09 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
@@ -66,7 +66,6 @@ enum RTCPeerConnectionState {
LegacyWindowAlias=webkitRTCPeerConnection,
LegacyWindowAlias_Measure
] interface RTCPeerConnection : EventTarget {
- // TODO(https://crbug.com/1318448): Deprecated `mediaConstraints` should be removed.
[CallWith=ExecutionContext, RaisesException] constructor(optional RTCConfiguration configuration = {});
[CallWith=ScriptState, RaisesException] Promise createOffer(optional RTCOfferOptions options = {});
[CallWith=ScriptState, RaisesException] Promise createAnswer(optional RTCAnswerOptions options = {});
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/install_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/install_event.idl
index 56c244e0..fe4e8238 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/install_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/install_event.idl
@@ -9,5 +9,5 @@
] interface InstallEvent : ExtendableEvent {
constructor(DOMString type, optional ExtendableEventInit eventInitDict = {});
// https://w3c.github.io/ServiceWorker/#ref-for-dom-installevent-addroutes
- [RuntimeEnabled=ServiceWorkerStaticRouter, CallWith=ScriptState, RaisesException, MeasureAs=ServiceWorkerStaticRouter_AddRoutes] Promise addRoutes((RouterRule or sequence) rules);
+ [CallWith=ScriptState, RaisesException, MeasureAs=ServiceWorkerStaticRouter_AddRoutes] Promise addRoutes((RouterRule or sequence) rules);
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shapedetection/detected_barcode.idl b/tools/under-control/src/third_party/blink/renderer/modules/shapedetection/detected_barcode.idl
index f427bfda..3f2c5cd2 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/shapedetection/detected_barcode.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shapedetection/detected_barcode.idl
@@ -7,7 +7,7 @@
dictionary DetectedBarcode {
required DOMString rawValue;
required DOMRectReadOnly boundingBox;
- required DOMString format;
+ required BarcodeFormat format;
// 4 corner points in clockwise direction starting with top-left. Due to
// possible perspective distortions, this is not necessarily a rectangle.
required sequence cornerPoints;
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 535f231c..07e52488 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,5 +5,5 @@
dictionary PrivateAggregationHistogramContribution {
required bigint bucket;
required long value;
- [RuntimeEnabled=PrivateAggregationApiFilteringIds] bigint filteringId;
+ bigint filteringId;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage.idl
index 338fa4d5..0fdbc16c 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage.idl
@@ -17,20 +17,27 @@
CallWith=ScriptState,
RaisesException,
MeasureAs=SharedStorageAPI_Append_Method
- ] Promise append(DOMString key, DOMString value);
+ ] Promise append(DOMString key, DOMString value, optional SharedStorageModifierMethodOptions options);
[
CallWith=ScriptState,
ImplementedAs=Delete,
RaisesException,
MeasureAs=SharedStorageAPI_Delete_Method
- ] Promise delete(DOMString key);
+ ] Promise delete(DOMString key, optional SharedStorageModifierMethodOptions options);
[
CallWith=ScriptState,
RaisesException,
MeasureAs=SharedStorageAPI_Clear_Method
- ] Promise clear();
+ ] Promise clear(optional SharedStorageModifierMethodOptions options);
+
+ [
+ RuntimeEnabled=SharedStorageWebLocks,
+ CallWith=ScriptState,
+ RaisesException,
+ MeasureAs=SharedStorageAPI_BatchUpdate_Method
+ ] Promise batchUpdate(sequence methods, optional SharedStorageModifierMethodOptions options);
[
CallWith=ScriptState,
@@ -72,7 +79,6 @@
] Promise run(DOMString name, optional SharedStorageRunOperationMethodOptions options);
[
- RuntimeEnabled=SharedStorageAPIM125,
Exposed=Window,
CallWith=ScriptState,
RaisesException,
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_append_method.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_append_method.idl
new file mode 100755
index 00000000..1c7b16ff
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_append_method.idl
@@ -0,0 +1,13 @@
+// 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.
+
+[
+ RuntimeEnabled=SharedStorageWebLocks,
+ Exposed=(Window, SharedStorageWorklet)
+] interface SharedStorageAppendMethod : SharedStorageModifierMethod {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ] constructor(DOMString key, DOMString value, optional SharedStorageModifierMethodOptions options);
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_clear_method.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_clear_method.idl
new file mode 100755
index 00000000..8aa9d7af
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_clear_method.idl
@@ -0,0 +1,13 @@
+// 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.
+
+[
+ RuntimeEnabled=SharedStorageWebLocks,
+ Exposed=(Window, SharedStorageWorklet)
+] interface SharedStorageClearMethod : SharedStorageModifierMethod {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ] constructor(optional SharedStorageModifierMethodOptions options);
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_delete_method.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_delete_method.idl
new file mode 100755
index 00000000..dfb3cf59
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_delete_method.idl
@@ -0,0 +1,13 @@
+// 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.
+
+[
+ RuntimeEnabled=SharedStorageWebLocks,
+ Exposed=(Window, SharedStorageWorklet)
+] interface SharedStorageDeleteMethod : SharedStorageModifierMethod {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ] constructor(DOMString key, optional SharedStorageModifierMethodOptions options);
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method.idl
new file mode 100755
index 00000000..334e5bb7
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method.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.
+
+[
+ RuntimeEnabled=SharedStorageWebLocks,
+ Exposed=(Window, SharedStorageWorklet),
+ ImplementedAs=SharedStorageModifierMethod
+] interface SharedStorageModifierMethod {};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method_options.idl
new file mode 100755
index 00000000..6b5ede53
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_modifier_method_options.idl
@@ -0,0 +1,7 @@
+// 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.
+
+dictionary SharedStorageModifierMethodOptions {
+ DOMString withLock;
+};
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 cd362e0a..48d97e78 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,6 +1,5 @@
dictionary SharedStoragePrivateAggregationConfig {
USVString aggregationCoordinatorOrigin;
USVString contextId;
- [EnforceRange, RuntimeEnabled=PrivateAggregationApiFilteringIds]
- unsigned long long filteringIdMaxBytes;
+ [EnforceRange] unsigned long long filteringIdMaxBytes;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method.idl
new file mode 100755
index 00000000..49c06424
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method.idl
@@ -0,0 +1,13 @@
+// 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.
+
+[
+ RuntimeEnabled=SharedStorageWebLocks,
+ Exposed=(Window, SharedStorageWorklet)
+] interface SharedStorageSetMethod : SharedStorageModifierMethod {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ] constructor(DOMString key, DOMString value, optional SharedStorageSetMethodOptions options);
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method_options.idl
index 46a8fd61..0212014e 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_set_method_options.idl
@@ -1,3 +1,7 @@
-dictionary SharedStorageSetMethodOptions {
+// Copyright 2021 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+dictionary SharedStorageSetMethodOptions : SharedStorageModifierMethodOptions{
boolean ignoreIfPresent;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.idl
index 23fe3b4b..ff1cd163 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.idl
@@ -15,7 +15,6 @@ typedef (USVString or FencedFrameConfig) SharedStorageResponse;
] Promise addModule(USVString moduleURL, optional WorkletOptions options = {});
[
- RuntimeEnabled=SharedStorageAPIM125,
Exposed=Window,
CallWith=ScriptState,
RaisesException,
@@ -25,7 +24,6 @@ typedef (USVString or FencedFrameConfig) SharedStorageResponse;
optional SharedStorageRunOperationMethodOptions options);
[
- RuntimeEnabled=SharedStorageAPIM125,
Exposed=Window,
CallWith=ScriptState,
RaisesException,
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet_options.idl
index 7e04b3a0..efdb5b14 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet_options.idl
@@ -2,11 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-enum SharedStorageDataOrigin { "context-origin", "script-origin" };
-
dictionary SharedStorageWorkletOptions : WorkletOptions {
- // Currently only used for a use counter.
- // TODO(348445878): Make this option live after we determine what its
- // default should be.
- SharedStorageDataOrigin dataOrigin = "context-origin";
+ USVString dataOrigin = "context-origin";
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl
index 7d23b98f..9d771cb6 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl
@@ -25,6 +25,12 @@
// https://w3c.github.io/speech-api/#speechrecognition
+enum SpeechRecognitionMode {
+ "ondevice-preferred", // On-device speech recognition if available, otherwise use Cloud speech recognition as a fallback.
+ "ondevice-only", // On-device speech recognition only. Returns an error if on-device speech recognition is not available.
+ "cloud-only", // Cloud speech recognition only.
+};
+
[
ActiveScriptWrappable,
LegacyWindowAlias=webkitSpeechRecognition,
@@ -39,8 +45,7 @@
attribute boolean continuous;
attribute boolean interimResults;
attribute unsigned long maxAlternatives;
- [RuntimeEnabled=MediaStreamTrackWebSpeech] attribute boolean localService;
- [RuntimeEnabled=MediaStreamTrackWebSpeech] attribute boolean allowCloudFallback;
+ [RuntimeEnabled=MediaStreamTrackWebSpeech] attribute SpeechRecognitionMode mode;
// methods to drive the speech interaction
[RaisesException, Measure] void start();
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl
new file mode 100755
index 00000000..43d75ce6
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl
@@ -0,0 +1,13 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[
+ Exposed=Window,
+ RuntimeEnabled=MediaStreamTrackWebSpeech,
+ SecureContext
+]
+interface SpeechRecognitionContext {
+ constructor(SpeechRecognitionPhraseList phrases);
+ attribute SpeechRecognitionPhraseList phrases;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase.idl
new file mode 100755
index 00000000..8dda082f
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase.idl
@@ -0,0 +1,18 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[
+ Exposed=Window,
+ RuntimeEnabled=MediaStreamTrackWebSpeech,
+ SecureContext
+]
+interface SpeechRecognitionPhrase {
+ [
+ CallWith=ScriptState,
+ RaisesException
+ ]
+ constructor(DOMString phrase, optional float boost = 1.0);
+ attribute DOMString phrase;
+ attribute float boost;
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl
new file mode 100755
index 00000000..2ece7ca3
--- /dev/null
+++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl
@@ -0,0 +1,15 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[
+ Exposed=Window,
+ RuntimeEnabled=MediaStreamTrackWebSpeech,
+ SecureContext
+]
+interface SpeechRecognitionPhraseList {
+ constructor();
+ readonly attribute unsigned long length;
+ getter SpeechRecognitionPhrase item(unsigned long index);
+ void addItem(SpeechRecognitionPhrase item);
+};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
index 75c2ffcd..7870c2ce 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl
@@ -13,8 +13,7 @@
[SameObject] readonly attribute GPUAdapterInfo info;
readonly attribute boolean isFallbackAdapter;
[RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute boolean isCompatibilityMode;
+ [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute DOMString featureLevel;
[CallWith=ScriptState] Promise requestDevice(optional GPUDeviceDescriptor descriptor = {});
- // TODO(crbug.com/335383516): Remove this once synchronous info attribute is implemented.
- [RuntimeEnabled=DeprecatedRequestAdapterInfo, DeprecateAs=V8GPUAdapter_RequestAdapterInfo_Method, CallWith=ScriptState, Measure] Promise requestAdapterInfo();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_configuration.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_configuration.idl
index 59b59418..80ab4a51 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_configuration.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_configuration.idl
@@ -25,5 +25,5 @@ dictionary GPUCanvasConfiguration {
sequence viewFormats = [];
PredefinedColorSpace colorSpace = "srgb";
GPUCanvasAlphaMode alphaMode = "opaque";
- [RuntimeEnabled=WebGPUHDR] GPUCanvasToneMapping toneMapping = {};
+ GPUCanvasToneMapping toneMapping = {};
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.idl
index 23b956c4..675840f9 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.idl
@@ -14,6 +14,6 @@
[RaisesException] void configure(GPUCanvasConfiguration descriptor);
void unconfigure();
- [RuntimeEnabled=WebGPUCanvasContextGetConfiguration] GPUCanvasConfiguration? getConfiguration();
+ GPUCanvasConfiguration? getConfiguration();
[CallWith=ScriptState, RaisesException] GPUTexture getCurrentTexture();
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline_descriptor.idl
index 30944a8a..77e23f75 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline_descriptor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline_descriptor.idl
@@ -6,5 +6,4 @@
dictionary GPUComputePipelineDescriptor : GPUPipelineDescriptorBase {
required GPUProgrammableStage compute;
- [RuntimeEnabled=WebGPUExperimentalFeatures] boolean requiresFullSubgroups;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device.idl
index 5f9f3471..afbf3830 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device.idl
@@ -10,7 +10,7 @@
] interface GPUDevice : EventTarget {
[SameObject] readonly attribute GPUSupportedFeatures features;
[SameObject] readonly attribute GPUSupportedLimits limits;
- [RuntimeEnabled=WebGPUDeviceAdapterInfo, SameObject] readonly attribute GPUAdapterInfo adapterInfo;
+ [SameObject] readonly attribute GPUAdapterInfo adapterInfo;
[CallWith=ScriptState] readonly attribute Promise lost;
@@ -25,7 +25,7 @@
[RaisesException] GPUBindGroup createBindGroup(GPUBindGroupDescriptor descriptor);
[RaisesException] GPUBindGroupLayout createBindGroupLayout(GPUBindGroupLayoutDescriptor descriptor);
- GPUPipelineLayout createPipelineLayout(GPUPipelineLayoutDescriptor descriptor);
+ [CallWith=ScriptState] GPUPipelineLayout createPipelineLayout(GPUPipelineLayoutDescriptor descriptor);
GPUShaderModule createShaderModule(GPUShaderModuleDescriptor descriptor);
[CallWith=ScriptState] GPURenderPipeline createRenderPipeline(GPURenderPipelineDescriptor descriptor);
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device_descriptor.idl
index f0174cad..f4935c62 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device_descriptor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_device_descriptor.idl
@@ -8,7 +8,7 @@ dictionary GPUDeviceDescriptor : GPUObjectDescriptorBase {
sequence requiredFeatures = [];
// Should have a default of {}, but Blink doesn't seem to support that yet.
- record requiredLimits;
+ record requiredLimits;
GPUQueueDescriptor defaultQueue = {};
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout_descriptor.idl
index 75ed2d17..23901d32 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout_descriptor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout_descriptor.idl
@@ -5,5 +5,5 @@
// https://gpuweb.github.io/gpuweb/
dictionary GPUPipelineLayoutDescriptor : GPUObjectDescriptorBase {
- required sequence bindGroupLayouts;
+ required sequence bindGroupLayouts;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_request_adapter_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_request_adapter_options.idl
index 5a22d9b2..ae4a6294 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_request_adapter_options.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_request_adapter_options.idl
@@ -10,7 +10,7 @@ enum GPUPowerPreference {
};
dictionary GPURequestAdapterOptions {
- [RuntimeEnabled=WebGPUExperimentalFeatures] DOMString featureLevel;
+ [RuntimeEnabled=WebGPUFeatureLevel] DOMString featureLevel = "core";
GPUPowerPreference powerPreference;
boolean forceFallbackAdapter = false;
[RuntimeEnabled=WebGPUExperimentalFeatures] boolean compatibilityMode = false;
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl
index 471859fd..2673a9ed 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_features.idl
@@ -22,8 +22,6 @@ enum GPUFeatureName {
// Non-standard (not currently in the spec).
"chromium-experimental-timestamp-query-inside-passes",
- "chromium-experimental-subgroups",
- "chromium-experimental-subgroup-uniform-control-flow",
"chromium-experimental-multi-draw-indirect",
"chromium-experimental-unorm16-texture-formats",
"chromium-experimental-snorm16-texture-formats",
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl
index 260bc2bd..895b342a 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_supported_limits.idl
@@ -30,7 +30,7 @@
readonly attribute unsigned long long maxBufferSize;
readonly attribute unsigned long maxVertexAttributes;
readonly attribute unsigned long maxVertexBufferArrayStride;
- [Measure] readonly attribute unsigned long maxInterStageShaderComponents;
+ [DeprecateAs=V8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter, Measure] readonly attribute unsigned long maxInterStageShaderComponents;
readonly attribute unsigned long maxInterStageShaderVariables;
readonly attribute unsigned long maxColorAttachments;
readonly attribute unsigned long maxColorAttachmentBytesPerSample;
@@ -43,4 +43,8 @@
// Note that WebGPUSubgroupsFeatures is implied by WebGPUExperimentalFeatures.
[RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long minSubgroupSize;
[RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long maxSubgroupSize;
+ [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute unsigned long maxStorageBuffersInFragmentStage;
+ [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute unsigned long maxStorageTexturesInFragmentStage;
+ [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute unsigned long maxStorageBuffersInVertexStage;
+ [RuntimeEnabled=WebGPUExperimentalFeatures] readonly attribute unsigned long maxStorageTexturesInVertexStage;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl
index 3fd5dfe6..483d7915 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl
@@ -12,7 +12,7 @@ dictionary GPUTextureViewDescriptor : GPUObjectDescriptorBase {
GPUIntegerCoordinate mipLevelCount;
GPUIntegerCoordinate baseArrayLayer = 0;
GPUIntegerCoordinate arrayLayerCount;
- [RuntimeEnabled=WebGPUTextureViewUsage] GPUTextureUsageFlags usage = 0;
+ GPUTextureUsageFlags usage = 0;
};
enum GPUTextureViewDimension {
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
index 32b35c48..50815e30 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
@@ -11,22 +11,31 @@ dictionary GPUVertexAttribute {
};
enum GPUVertexFormat {
+ "uint8",
"uint8x2",
"uint8x4",
+ "sint8",
"sint8x2",
"sint8x4",
+ "unorm8",
"unorm8x2",
"unorm8x4",
+ "snorm8",
"snorm8x2",
"snorm8x4",
+ "uint16",
"uint16x2",
"uint16x4",
+ "sint16",
"sint16x2",
"sint16x4",
+ "unorm16",
"unorm16x2",
"unorm16x4",
+ "snorm16",
"snorm16x2",
"snorm16x4",
+ "float16",
"float16x2",
"float16x4",
"float32",
@@ -42,4 +51,5 @@ enum GPUVertexFormat {
"sint32x3",
"sint32x4",
"unorm10-10-10-2",
+ "unorm8x4-bgra",
};
diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webmidi/midi_message_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
index 4ee95186..00b12610 100755
--- a/tools/under-control/src/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
+++ b/tools/under-control/src/third_party/blink/renderer/modules/webmidi/midi_message_event.idl
@@ -35,5 +35,5 @@
SecureContext
] interface MIDIMessageEvent : Event {
constructor(DOMString type, optional MIDIMessageEventInit eventInitDict = {});
- readonly attribute Uint8Array data;
+ readonly attribute Uint8Array? data;
};
diff --git a/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 25336af7..24d8368d 100755
--- a/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/tools/under-control/src/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -230,6 +230,12 @@
status: "experimental",
base_feature: "none",
},
+ {
+ name: "AccessibilityCustomElementRoleNone",
+ public: true,
+ status: "test",
+ base_feature: "none",
+ },
{
name: "AccessibilityExposeDisplayNone",
status: "test",
@@ -297,7 +303,6 @@
name: "AIPromptAPI",
public: true,
status: "test",
- base_feature: "EnableAIPromptAPI",
implied_by: ["AIPromptAPIForWebPlatform"]
},
{
@@ -305,7 +310,6 @@
public: true,
origin_trial_feature_name: "AIPromptAPIForExtension",
status: "test",
- base_feature: "EnableAIPromptAPIForExtension",
base_feature_status: "enabled",
copied_from_base_feature_if: "overridden",
},
@@ -313,20 +317,17 @@
name: "AIPromptAPIForWebPlatform",
public: true,
status: "test",
- base_feature: "EnableAIPromptAPIForWebPlatform",
},
{
name: "AIRewriterAPI",
public: true,
status: "test",
- base_feature: "EnableAIRewriterAPI",
},
{
name: "AISummarizationAPI",
public: true,
status: "test",
origin_trial_feature_name: "AISummarizationAPI",
- base_feature: "EnableAISummarizationAPI",
base_feature_status: "enabled",
copied_from_base_feature_if: "overridden",
},
@@ -334,7 +335,6 @@
name: "AIWriterAPI",
public: true,
status: "test",
- base_feature: "EnableAIWriterAPI",
},
{
name: "AllowContentInitiatedDataUrlNavigations",
@@ -353,6 +353,23 @@
name: "AllowPreloadingWithCSPMetaTag",
status: "experimental",
},
+ {
+ name: "AllowSameSiteNoneCookiesInSandbox",
+ base_feature: "none",
+
+ // No status because this blink runtime feature doesn't work by itself.
+ // It's controlled by the corresponding Chromium feature,
+ // net::features::kAllowSameSiteNoneCookiesInSandbox, which needs to be
+ // enabled to make the whole feature work.
+ },
+ {
+ name: "AllowSyntheticTimingForCanvasCapture",
+ base_feature: "none",
+ status: {
+ "Mac": "stable",
+ "default": ""
+ }
+ },
{
name: "AllowURNsInIframes",
base_feature: "none",
@@ -365,7 +382,7 @@
{
// https://chromestatus.com/feature/5083257285378048
name: "AnimationProgressAPI",
- status: "experimental",
+ status: "stable",
},
{
name: "AnimationWorklet",
@@ -404,11 +421,21 @@
name: "AriaRowColIndexText",
status: "stable",
},
- // See https://crbug.com/40150299, and
- // https://github.com/whatwg/dom/issues/1255.
+ // See https://crbug.com/40150299,
+ // https://github.com/whatwg/dom/issues/1255, and
+ // https://github.com/whatwg/dom/pull/1307.
{
name: "AtomicMoveAPI",
- status: "test",
+ status: "stable",
+ },
+ // This flag specifically guards live Range (and by extension, selection)
+ // preservation for atomic move (`moveBefore()`). This is not part of the
+ // launching proposal, per discussion in
+ // https://github.com/whatwg/dom/pull/1307, but because it could come later
+ // and was already mostly implemented, we flag-guard the implementation for
+ // later use.
+ {
+ name: "AtomicMoveRangePreservation",
},
{
name: "AttributionReporting",
@@ -486,6 +513,12 @@
name: "AutoPictureInPictureVideoHeuristics",
status: "experimental",
},
+ // When enabled, clicking on canvas element will not update the selection.
+ // See crbug.com/40130450.
+ {
+ name: "AvoidSelectionChangeOnCanvasClick",
+ status: "stable"
+ },
// When enabled, enforces new interoperable semantics for 3D transforms.
// See crbug.com/1008483.
{
@@ -510,6 +543,10 @@
base_feature_status: "enabled",
copied_from_base_feature_if: "overridden",
},
+ {
+ name: "BackForwardCacheUpdateNotRestoredReasonsName",
+ status: "experimental",
+ },
{
// Used to enable Blink side of features flags for Default Nav Transition.
name: "BackForwardTransitions",
@@ -520,6 +557,13 @@
status: "stable",
base_feature: "none",
},
+ // A developer opt-out for background page freezing.
+ {
+ name: "BackgroundPageFreezeOptOut",
+ base_feature: "none",
+ origin_trial_feature_name: "BackgroundPageFreezeOptOut",
+ origin_trial_type: "deprecation",
+ },
{
name: "BarcodeDetector",
status: {
@@ -582,11 +626,6 @@
name: "BoxDecorationBreak",
status: "stable",
},
- {
- // crbug.com/371615505
- name: "BreakIteratorHyphenMinus",
- status: "stable",
- },
{
name: "BrowserVerifiedUserActivationKeyboard",
base_feature: "none",
@@ -604,7 +643,6 @@
{
name: "BuiltInAIAPI",
status: "test",
- base_feature: "EnableBuiltInAIAPI",
base_feature_status: "enabled",
// A origin trial is feature is required for the build to success.
// The feature reuses the AISummarizationAPI. Any other origin trial
@@ -618,8 +656,14 @@
"AIWriterAPI",
"LanguageDetectionAPI",
"TranslationAPIEntryPoint",
+ "TranslationAPI",
]
},
+ {
+ // crbug.com/40681980
+ name: "ButtonNoAlignItems",
+ status: "stable",
+ },
{
// Bypasses the enforcement of the Page Embedded Permission Control
// security checks. This flag is disabled by default and should only be
@@ -689,6 +733,11 @@
name: "CanvasImageSmoothing",
status: "experimental",
},
+ {
+ // https://crbug.com/377325952
+ name: "CanvasInterventions",
+ browser_process_read_write_access: true,
+ },
{
// https://github.com/Igalia/explainers/blob/main/canvas-formatted-text/html-in-canvas.md
name: "CanvasPlaceElement",
@@ -747,13 +796,24 @@
name: "CheckVisibilityExtraProperties",
status: "stable",
},
+ // crbug.com/40851596: Send click to the capture pointer target instead of
+ // the common ancestor of pointerdown and pointerup targets.
{
name: "ClickToCapturedPointer",
status: "experimental",
},
+ // This ensures that clipboard event fires on a target node which is
+ // focused in case no visible selection is present.
+ // crbug.com/40735783
{
+ name: "ClipboardEventTargetCanBeFocusedElement",
+ status: "stable",
+ },
+ {
+ // Support ClipboardItemData of Promise type according to spec
+ // https://w3c.github.io/clipboard-apis/#typedefdef-clipboarditemdata
name: "ClipboardItemWithDOMStringSupport",
- status: "experimental",
+ status: "stable",
},
{
name: "ClipPathRejectEmptyPaths",
@@ -874,13 +934,13 @@
base_feature: "none",
},
{
- name: "CorsRFC1918",
+ // Corrects the handling of