From 17899eb83b16c0c08314e76411df2d9bc28beff5 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Fri, 23 May 2025 03:26:17 +0000 Subject: [PATCH] [AUTO][FILECONTROL] - version 137.0.7151.44 --- tools/under-control/src/RELEASE | 2 +- .../browser/aw_content_browser_client.cc | 42 +- .../browser/aw_field_trials.cc | 20 +- .../chrome/android/java/AndroidManifest.xml | 25 +- .../chrome_browser_interface_binders.cc | 22 +- .../browser/chrome_content_browser_client.cc | 204 +- .../browser/flags/ChromeFeatureList.java | 401 ++- .../src/chrome/browser/prefs/browser_prefs.cc | 144 +- .../src/chrome/browser/ui/tab_helpers.cc | 16 +- .../extensions/api/autofill_private.idl | 8 + .../extensions/api/experimental_actor.idl | 30 + .../extensions/api/image_writer_private.idl | 3 - .../extensions/api/webrtc_audio_private.idl | 3 +- .../chrome_content_renderer_client.cc | 9 +- .../manual_device_policy_proto_map.yaml | 1 + .../policy/resources/templates/policies.yaml | 15 +- .../AccessibilityShortcutsEnabled.yaml | 2 +- .../Accessibility/AutoclickEnabled.yaml | 2 +- .../Accessibility/CaretHighlightEnabled.yaml | 2 +- .../Accessibility/ColorCorrectionEnabled.yaml | 1 + .../Accessibility/CursorHighlightEnabled.yaml | 2 +- ...inScreenAccessibilityShortcutsEnabled.yaml | 2 +- .../DeviceLoginScreenAutoclickEnabled.yaml | 2 +- ...eviceLoginScreenCaretHighlightEnabled.yaml | 2 +- ...viceLoginScreenCursorHighlightEnabled.yaml | 2 +- ...LoginScreenDefaultHighContrastEnabled.yaml | 3 +- ...eLoginScreenDefaultLargeCursorEnabled.yaml | 3 +- ...LoginScreenDefaultScreenMagnifierType.yaml | 3 +- ...ginScreenDefaultSpokenFeedbackEnabled.yaml | 2 +- ...inScreenDefaultVirtualKeyboardEnabled.yaml | 3 +- .../DeviceLoginScreenDictationEnabled.yaml | 2 +- .../DeviceLoginScreenFaceGazeEnabled.yaml | 37 + .../DeviceLoginScreenHighContrastEnabled.yaml | 2 +- ...inScreenKeyboardFocusHighlightEnabled.yaml | 2 +- .../DeviceLoginScreenLargeCursorEnabled.yaml | 2 +- .../DeviceLoginScreenMonoAudioEnabled.yaml | 2 +- .../DeviceLoginScreenScreenMagnifierType.yaml | 2 +- ...DeviceLoginScreenSelectToSpeakEnabled.yaml | 2 +- ...oginScreenShowOptionsInSystemTrayMenu.yaml | 3 +- ...eviceLoginScreenSpokenFeedbackEnabled.yaml | 2 +- .../DeviceLoginScreenStickyKeysEnabled.yaml | 2 +- .../Accessibility/DictationEnabled.yaml | 2 +- ...edNetworkVoicesInSelectToSpeakAllowed.yaml | 2 +- .../Accessibility/FaceGazeEnabled.yaml | 35 + .../FloatingAccessibilityMenuEnabled.yaml | 2 +- .../Accessibility/HighContrastEnabled.yaml | 3 +- .../KeyboardDefaultToFunctionKeys.yaml | 3 +- .../KeyboardFocusHighlightEnabled.yaml | 2 +- .../Accessibility/LargeCursorEnabled.yaml | 3 +- .../Accessibility/MonoAudioEnabled.yaml | 2 +- .../Accessibility/ScreenMagnifierType.yaml | 3 +- .../Accessibility/SelectToSpeakEnabled.yaml | 2 +- ...wAccessibilityOptionsInSystemTrayMenu.yaml | 1 + .../Accessibility/SpokenFeedbackEnabled.yaml | 3 +- .../Accessibility/StickyKeysEnabled.yaml | 2 +- .../Boca/ClassManagementCaptionsEnabled.yaml | 12 +- ...ManagementClassroomIntegrationEnabled.yaml | 10 +- .../Boca/ClassManagementEnabled.yaml | 2 +- ...ssManagementNetworkRestrictionEnabled.yaml | 12 +- .../ClassManagementSendingContentEnabled.yaml | 26 - .../ClassManagementViewScreenEnabled.yaml | 8 +- .../UserSecurityAuthenticatedReporting.yaml | 4 +- .../UserSecuritySignalsReporting.yaml | 4 +- .../ContentSettings/DefaultImagesSetting.yaml | 1 + .../DefaultSmartCardConnectSetting.yaml | 33 + ...ediaSetSelectAllScreensAllowedForUrls.yaml | 3 +- .../ContentSettings/ImagesAllowedForUrls.yaml | 1 + .../ContentSettings/ImagesBlockedForUrls.yaml | 1 + .../SmartCardConnectAllowedForUrls.yaml | 4 +- .../SmartCardConnectBlockedForUrls.yaml | 4 +- .../ContentSettings/policy_atomic_groups.yaml | 1 + .../Edu/ContentTransferEnablementStatus.yaml | 2 +- .../Extensions/ExtensionInstallAllowlist.yaml | 1 + .../Extensions/ExtensionInstallBlocklist.yaml | 1 + .../Extensions/ExtensionInstallForcelist.yaml | 1 + ...atoryExtensionsForIncognitoNavigation.yaml | 1 + .../AutofillPredictionSettings.yaml | 20 +- .../GenerativeAI/GeminiSettings.yaml | 23 +- .../GenerativeAI/GenAiDefaultSettings.yaml | 6 +- .../Miscellaneous/BuiltInAIAPIsEnabled.yaml | 28 + .../Miscellaneous/CopyPreventionSettings.yaml | 2 +- .../Miscellaneous/DataControlsRules.yaml | 2 +- .../DeveloperToolsAvailability.yaml | 1 + ...ceUserInitiatedFirmwareUpdatesEnabled.yaml | 30 + .../Miscellaneous/DownloadRestrictions.yaml | 2 +- .../Miscellaneous/EnterpriseCustomLabel.yaml | 2 +- .../EnterpriseCustomLabelForBrowser.yaml | 21 + .../Miscellaneous/EnterpriseLogoUrl.yaml | 2 +- .../EnterpriseLogoUrlForBrowser.yaml | 21 + .../EnterpriseSearchAggregatorSettings.yaml | 2 +- .../Miscellaneous/MutationEventsEnabled.yaml | 10 +- .../NTPFooterManagementNoticeEnabled.yaml | 26 + .../NTPFooterThemeAttributionEnabled.yaml | 26 + .../OnBulkDataEntryEnterpriseConnector.yaml | 2 +- .../OnFileAttachedEnterpriseConnector.yaml | 2 +- .../OnFileDownloadedEnterpriseConnector.yaml | 2 +- .../OnFileTransferEnterpriseConnector.yaml | 2 +- .../OnSecurityEventEnterpriseConnector.yaml | 5 +- .../ProvisionalNotificationsAllowed.yaml | 40 + ...seAge.yaml => RelaunchFastIfOutdated.yaml} | 10 +- .../SafeBrowsingForTrustedSourcesEnabled.yaml | 2 +- .../SystemFeaturesDisableList.yaml | 4 +- .../SystemFeaturesDisableMode.yaml | 4 +- .../Network/ZstdContentEncodingEnabled.yaml | 10 +- .../DevicePowerAdaptiveChargingEnabled.yaml | 6 +- ...evicePowerBatteryChargingOptimization.yaml | 9 +- .../Sharing/.group.details.yaml | 2 + .../Sharing/TabGroupSharingSettings.yaml | 37 + .../browser/web_contents/web_contents_impl.cc | 184 +- .../src/content/child/runtime_features.cc | 23 +- .../public/browser/content_browser_client.cc | 20 +- .../src/extensions/common/api/socket.idl | 3 +- .../src/extensions/common/api/sockets_udp.idl | 3 +- .../src/services/network/network_context.cc | 137 +- .../variations/fieldtrial_testing_config.json | 2962 ++++++++++------- .../use_counter/metrics/web_feature.mojom | 235 +- .../webpreferences/web_preferences.mojom | 1 + .../animation/animation_trigger_options.idl | 4 +- .../animation/keyframe_animation_options.idl | 3 +- .../blink/renderer/core/dom/document.idl | 5 + .../core/dom/document_or_shadow_root.idl | 3 + .../blink/renderer/core/dom/element.idl | 3 + .../core/dom/element_creation_options.idl | 1 + .../renderer/core/dom/import_node_options.idl | 8 + .../blink/renderer/core/dom/parent_node.idl | 2 +- .../blink/renderer/core/dom/shadow_root.idl | 3 - .../renderer/core/events/input_event.idl | 2 +- .../html/custom/custom_element_registry.idl | 2 + .../core/html/html_permission_element.idl | 2 + .../core/html/html_template_element.idl | 3 + .../navigation_precommit_controller.idl | 2 +- .../navigation_api/navigation_transition.idl | 1 + .../renderer/core/svg/svg_script_element.idl | 2 + .../core/timing/performance_script_timing.idl | 4 +- .../workers/dedicated_worker_global_scope.idl | 2 +- .../renderer/core/workers/shared_worker.idl | 5 +- .../ad_auction/storage_interest_group.idl | 10 + .../testing/internals_protected_audience.idl | 10 + .../blink/renderer/modules/ai/ai.idl | 5 +- .../{ai_availability.idl => availability.idl} | 2 +- ..._create_monitor.idl => create_monitor.idl} | 9 +- .../renderer/modules/ai/language_model.idl | 8 +- .../ai/language_model_create_options.idl | 2 +- .../modules/ai/language_model_factory.idl | 7 +- .../modules/ai/language_model_params.idl | 5 +- .../language_detector.idl | 11 +- .../ai/on_device_translation/translator.idl | 6 +- .../blink/renderer/modules/ai/rewriter.idl | 6 +- .../blink/renderer/modules/ai/summarizer.idl | 6 +- .../blink/renderer/modules/ai/writer.idl | 6 +- .../identity_credential_request_options.idl | 5 +- .../public_key_credential.idl | 2 +- .../encryptedmedia/media_key_status_map.idl | 3 +- .../media_keys_get_status_for_policy.idl | 2 +- .../modules/imagecapture/image_capture.idl | 2 +- .../renderer/modules/launch/launch_params.idl | 2 +- .../managed_device/navigator_managed_data.idl | 10 +- .../modules/mediastream/media_devices.idl | 2 +- .../modules/mediastream/media_stream.idl | 4 +- .../blink/renderer/modules/ml/ml.idl | 6 + .../modules/payments/payment_request.idl | 11 +- .../peerconnection/rtc_peer_connection.idl | 4 +- .../peerconnection/rtc_stats_report.idl | 1 + .../modules/speech/speech_recognition.idl | 6 +- .../speech/speech_recognition_phrase.idl | 10 +- .../speech/speech_recognition_phrase_list.idl | 5 +- .../renderer/modules/webdatabase/database.idl | 43 - .../modules/webdatabase/sql_error.idl | 45 - .../modules/webdatabase/sql_result_set.idl | 37 - .../webdatabase/sql_result_set_row_list.idl | 35 - .../webdatabase/sql_statement_callback.idl | 32 - .../sql_statement_error_callback.idl | 32 - .../modules/webdatabase/sql_transaction.idl | 44 - .../webdatabase/sql_transaction_callback.idl | 32 - .../sql_transaction_error_callback.idl | 32 - .../webdatabase/window_web_database.idl | 37 - .../modules/webgpu/gpu_adapter_info.idl | 6 +- .../webgpu/gpu_request_adapter_options.idl | 1 - .../modules/webgpu/gpu_supported_features.idl | 1 + .../modules/xr/xr_depth_state_init.idl | 6 + .../blink/renderer/modules/xr/xr_session.idl | 9 + .../platform/runtime_enabled_features.json5 | 488 ++- .../global-interface-listing-expected.txt | 8 +- 183 files changed, 3772 insertions(+), 2501 deletions(-) create mode 100755 tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenFaceGazeEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FaceGazeEnabled.yaml delete mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSmartCardConnectSetting.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BuiltInAIAPIsEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFirmwareUpdatesEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabelForBrowser.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrlForBrowser.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterManagementNoticeEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterThemeAttributionEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionalNotificationsAllowed.yaml rename tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/{RelaunchSupersededReleaseAge.yaml => RelaunchFastIfOutdated.yaml} (81%) create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/.group.details.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml create mode 100755 tools/under-control/src/third_party/blink/renderer/core/dom/import_node_options.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/ad_auction/testing/internals_protected_audience.idl rename tools/under-control/src/third_party/blink/renderer/modules/ai/{ai_availability.idl => availability.idl} (80%) rename tools/under-control/src/third_party/blink/renderer/modules/ai/{ai_create_monitor.idl => create_monitor.idl} (51%) delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/database.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_error.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set_row_list.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_callback.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_error_callback.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_callback.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_error_callback.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/webdatabase/window_web_database.idl diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE index 506d1c90..47a45c0d 100644 --- a/tools/under-control/src/RELEASE +++ b/tools/under-control/src/RELEASE @@ -1 +1 @@ -136.0.7103.125 +137.0.7151.44 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 ef792a91..f86f930a 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 @@ -26,6 +26,7 @@ #include "android_webview/browser/aw_http_auth_handler.h" #include "android_webview/browser/aw_settings.h" #include "android_webview/browser/aw_speech_recognition_manager_delegate.h" +#include "android_webview/browser/aw_web_contents_delegate.h" #include "android_webview/browser/aw_web_contents_view_delegate.h" #include "android_webview/browser/cookie_manager.h" #include "android_webview/browser/network_service/aw_browser_context_io_thread_handle.h" @@ -102,6 +103,7 @@ #include "content/public/browser/site_isolation_policy.h" #include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" +#include "content/public/browser/web_contents_delegate.h" #include "content/public/common/content_descriptors.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" @@ -652,7 +654,11 @@ void AwContentBrowserClient::OverrideWebPreferences( if (aw_settings) { aw_settings->PopulateWebPreferences(web_prefs); } - web_prefs->modal_context_menu = false; + + AwWebContentsDelegate* delegate = + static_cast(web_contents->GetDelegate()); + web_prefs->modal_context_menu = + (delegate) ? delegate->isModalContextMenu() : false; } std::vector> @@ -782,40 +788,6 @@ AwContentBrowserClient::CreateURLLoaderThrottles( return result; } -std::vector> -AwContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( - const network::ResourceRequest& request, - content::BrowserContext* browser_context, - const base::RepeatingCallback& wc_getter, - content::FrameTreeNodeId frame_tree_node_id) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - // Set lookup mechanism based on feature flag - HashRealTimeSelection hash_real_time_selection = - (base::FeatureList::IsEnabled(safe_browsing::kHashPrefixRealTimeLookups)) - ? HashRealTimeSelection::kDatabaseManager - : HashRealTimeSelection::kNone; - - std::vector> result; - - result.push_back(safe_browsing::BrowserURLLoaderThrottle::Create( - base::BindRepeating( - [](AwContentBrowserClient* client) { - return client->GetSafeBrowsingUrlCheckerDelegate(); - }, - base::Unretained(this)), - wc_getter, frame_tree_node_id, /*navigation_id=*/std::nullopt, - // TODO(crbug.com/40663467): rt_lookup_service is - // used to perform real time URL check, which is gated by UKM opted-in. - // Since AW currently doesn't support UKM, this feature is not enabled. - /* rt_lookup_service */ nullptr, - /* hash_realtime_service */ nullptr, - /* hash_realtime_selection */ - hash_real_time_selection, - /* async_check_tracker */ nullptr, /*referring_app_info=*/std::nullopt)); - - return result; -} - scoped_refptr AwContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 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 4854238c..23367a41 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 @@ -24,6 +24,7 @@ #include "mojo/public/cpp/bindings/features.h" #include "net/base/features.h" #include "services/network/public/cpp/features.h" +#include "storage/browser/blob/features.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/features_generated.h" #include "ui/android/ui_android_features.h" @@ -94,6 +95,14 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( net::features::kThirdPartyStoragePartitioning); + // Disable fetching partitioned Blob URL on WebView. + aw_feature_overrides.DisableFeature( + ::features::kBlockCrossPartitionBlobUrlFetching); + + // Disable enforcing `noopener` on Blob URL navigations on WebView. + aw_feature_overrides.DisableFeature( + blink::features::kEnforceNoopenerOnBlobURLNavigation); + #if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) // Disable the passthrough on WebView. aw_feature_overrides.DisableFeature( @@ -306,14 +315,11 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Sharing ANGLE's Vulkan queue is not supported on WebView. aw_feature_overrides.DisableFeature(::features::kVulkanFromANGLE); - // Viz has no internal differentiation for WebView. We will roll out these - // combined features separately. - aw_feature_overrides.DisableFeature( - ::features::kDrawImmediatelyWhenInteractive); - aw_feature_overrides.DisableFeature( - ::features::kAckOnSurfaceActivationWhenInteractive); - // Partitioned :visited links history is not supported on WebView. aw_feature_overrides.DisableFeature( blink::features::kPartitionVisitedLinkDatabaseWithSelfLinks); + + // Disable draw cutout edge-to-edge on WebView. Safe area insets are not + // handled correctly when WebView is drawing edge-to-edge. + aw_feature_overrides.DisableFeature(features::kDrawCutoutEdgeToEdge); } diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml index 364f021a..54244bbd 100755 --- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml +++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml @@ -74,6 +74,10 @@ by a child template that "extends" this file. {% endif %} + {% set enable_screen_capture = enable_screen_capture|default(0) %} + {% if enable_screen_capture == "true" %} + + {% endif %} @@ -527,7 +531,7 @@ by a child template that "extends" this file. {% endblock %} {% block chrome_activity_common %} android:windowSoftInputMode="adjustResize" - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|navigation|density" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|navigation|density|touchscreen|colorMode" android:hardwareAccelerated="false" {% endblock %} > @@ -1028,7 +1032,9 @@ by a child template that "extends" this file. tools:ignore="ExportedService"> + + @@ -1128,9 +1134,16 @@ by a child template that "extends" this file. + + + + @@ -1192,11 +1208,10 @@ by a child template that "extends" this file. android:label="WebXR" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" tools:ignore="NonResizeableActivity,DiscouragedApi"> - + - 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 f7cdeb1c..cc98cea5 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 @@ -15,6 +15,9 @@ #include "chrome/browser/buildflags.h" #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" #include "chrome/browser/navigation_predictor/navigation_predictor.h" +#include "chrome/browser/optimization_guide/model_execution/chrome_on_device_model_service_controller.h" +#include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h" +#include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" #include "chrome/browser/predictors/lcp_critical_path_predictor/lcp_critical_path_predictor_host.h" #include "chrome/browser/predictors/network_hints_handler_impl.h" @@ -40,6 +43,7 @@ #include "components/live_caption/pref_names.h" #include "components/no_state_prefetch/browser/no_state_prefetch_contents.h" #include "components/no_state_prefetch/browser/no_state_prefetch_processor_impl.h" +#include "components/optimization_guide/public/mojom/model_broker.mojom.h" #include "components/performance_manager/embedder/binders.h" #include "components/performance_manager/embedder/performance_manager_registry.h" #include "components/prefs/pref_service.h" @@ -317,7 +321,8 @@ void BindSpeechRecognitionRecognizerClientHandler( Profile* profile = Profile::FromBrowserContext( frame_host->GetProcess()->GetBrowserContext()); PrefService* profile_prefs = profile->GetPrefs(); - if (profile_prefs->GetBoolean(prefs::kLiveCaptionEnabled) && + if ((profile_prefs->GetBoolean(prefs::kLiveCaptionEnabled) || + profile_prefs->GetBoolean(prefs::kHeadlessCaptionEnabled)) && captions::IsLiveCaptionFeatureSupported()) { captions::LiveCaptionSpeechRecognitionHost::Create( frame_host, std::move(client_receiver)); @@ -379,6 +384,18 @@ void BindScreen2xMainContentExtractor( } #endif +void BindModelBroker( + content::RenderFrameHost* frame_host, + mojo::PendingReceiver receiver) { + content::BrowserContext* browser_context = frame_host->GetBrowserContext(); + Profile* profile = Profile::FromBrowserContext(browser_context); + OptimizationGuideKeyedService* optimization_guide_service = + OptimizationGuideKeyedServiceFactory::GetForProfile(profile); + if (optimization_guide_service) { + optimization_guide_service->BindModelBroker(std::move(receiver)); + } +} + } // namespace void PopulateChromeFrameBinders( @@ -414,6 +431,9 @@ void PopulateChromeFrameBinders( map->Add( base::BindRepeating(&translate::BindContentTranslateDriver)); + map->Add( + base::BindRepeating(&BindModelBroker)); + 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 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 a7d66215..3ebb85bb 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 @@ -80,7 +80,6 @@ #include "chrome/browser/enterprise/reporting/legacy_tech/legacy_tech_service.h" #include "chrome/browser/enterprise/reporting/prefs.h" #include "chrome/browser/enterprise/util/managed_browser_utils.h" -#include "chrome/browser/extensions/chrome_extension_cookies.h" #include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/favicon/favicon_utils.h" #include "chrome/browser/first_party_sets/first_party_sets_navigation_throttle.h" @@ -351,6 +350,7 @@ #include "content/public/browser/network_service_instance.h" #include "content/public/browser/overlay_window.h" #include "content/public/browser/permission_controller.h" +#include "content/public/browser/permission_descriptor_util.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/site_isolation_mode.h" @@ -568,7 +568,6 @@ #include "chrome/browser/apps/intent_helper/chromeos_disabled_apps_throttle.h" #include "chrome/browser/apps/link_capturing/chromeos_link_capturing_delegate.h" #include "chrome/browser/apps/link_capturing/chromeos_reimpl_navigation_capturing_throttle.h" -#include "chrome/browser/chromeos/enterprise/incognito_navigation_throttle.h" #include "chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate.h" #include "chrome/browser/chromeos/tablet_mode/chrome_content_browser_client_tablet_mode_part.h" #include "chrome/browser/file_system_access/cloud_identifier/cloud_identifier_util_cros.h" @@ -642,12 +641,15 @@ #include "chrome/browser/enterprise/profile_management/oidc_auth_response_capture_navigation_throttle.h" #include "chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.h" #include "chrome/browser/enterprise/signin/managed_profile_required_navigation_throttle.h" +#include "chrome/browser/enterprise/webstore/chrome_web_store_navigation_throttle.h" +#include "chrome/browser/enterprise/webstore/features.h" #include "chrome/browser/ui/webui/app_settings/web_app_settings_navigation_throttle.h" #endif #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ BUILDFLAG(IS_CHROMEOS) #include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h" +#include "chrome/browser/enterprise/incognito/incognito_navigation_throttle.h" #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || // BUILDFLAG(IS_CHROMEOS) @@ -675,6 +677,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h" +#include "chrome/browser/extensions/chrome_extension_cookies.h" #include "extensions/browser/api/web_request/web_request_api.h" #include "extensions/browser/extension_navigation_throttle.h" #include "extensions/browser/extension_protocols.h" @@ -805,7 +808,9 @@ #endif // BUILDFLAG(OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED) #if BUILDFLAG(IS_ANDROID) +#include "chrome/browser/contextmenu/context_menu_features.h" #include "chrome/browser/feed/feed_service_factory.h" +#include "chrome/browser/safe_browsing/advanced_protection_status_manager_android.h" #include "components/feed/feed_feature_list.h" #endif // BUILDFLAG(IS_ANDROID) @@ -849,6 +854,10 @@ namespace { const char kAIManagerUserDataKey[] = "ai_manager"; +// Whether to disable caching of the advanced-protection state in +// ShouldEnableStrictSiteIsolation(). +bool g_disable_advanced_protection_caching_for_tests = false; + BASE_FEATURE(kSkipPagehideInCommitForDSENavigation, "SkipPagehideInCommitForDSENavigation", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1620,9 +1629,6 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kDataUrlInSvgUseEnabled, false); registry->RegisterBooleanPref(prefs::kPartitionedBlobUrlUsage, true); - registry->RegisterBooleanPref(policy::policy_prefs::kMutationEventsEnabled, - false); - registry->RegisterBooleanPref( policy::policy_prefs::kCSSCustomStateDeprecatedSyntaxEnabled, /*default_value=*/false); @@ -1644,8 +1650,12 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref( policy::policy_prefs::kForcePermissionPolicyUnloadDefaultEnabled, false); -#if BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ + BUILDFLAG(IS_LINUX) registry->RegisterListPref(prefs::kMandatoryExtensionsForIncognitoNavigation); +#endif + +#if BUILDFLAG(IS_CHROMEOS) registry->RegisterListPref( prefs::kSubAppsAPIsAllowedWithoutGestureAndAuthorizationForOrigins); #endif @@ -1655,6 +1665,8 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kServiceWorkerToControlSrcdocIframeEnabled, true); registry->RegisterBooleanPref(prefs::kReduceAcceptLanguageEnabled, true); + registry->RegisterBooleanPref(policy::policy_prefs::kBuiltInAIAPIsEnabled, + true); } // static @@ -1676,6 +1688,11 @@ void ChromeContentBrowserClient::SetApplicationLocale( FROM_HERE, base::BindOnce(&SetApplicationLocaleOnIOThread, locale)); } +// static +void ChromeContentBrowserClient::DisableAdvancedProtectionCachingForTests() { + g_disable_advanced_protection_caching_for_tests = true; +} + void ChromeContentBrowserClient::MaybeProxyNetworkBoundRequest( content::BrowserContext* browser_context, net::handles::NetworkHandle bound_network, @@ -2207,7 +2224,7 @@ std::string ChromeContentBrowserClient::GetSiteDisplayNameForCdmProcess( // By default, use the |site_url| spec as the display name. std::string name = site_url.spec(); -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) // If |site_url| wraps a chrome extension ID, we can display the extension // name instead, which is more human-readable. if (site_url.SchemeIs(extensions::kExtensionScheme)) { @@ -2218,7 +2235,7 @@ std::string ChromeContentBrowserClient::GetSiteDisplayNameForCdmProcess( if (extension) name = extension->name(); } -#endif // BUILDFLAG(ENABLE_EXTENSIONS) +#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) return name; } @@ -2227,6 +2244,7 @@ void ChromeContentBrowserClient::OverrideURLLoaderFactoryParams( content::BrowserContext* browser_context, const url::Origin& origin, bool is_for_isolated_world, + bool is_for_service_worker, network::mojom::URLLoaderFactoryParams* factory_params) { #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (ChromeContentBrowserClientExtensionsPart::AreExtensionsDisabledForProfile( @@ -2235,7 +2253,8 @@ void ChromeContentBrowserClient::OverrideURLLoaderFactoryParams( } ChromeContentBrowserClientExtensionsPart::OverrideURLLoaderFactoryParams( - browser_context, origin, is_for_isolated_world, factory_params); + browser_context, origin, is_for_isolated_world, is_for_service_worker, + factory_params); #endif } @@ -2307,7 +2326,7 @@ bool ChromeContentBrowserClient::HasCustomSchemeHandler( bool ChromeContentBrowserClient::HasWebRequestAPIProxy( content::BrowserContext* browser_context) { -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) const auto* web_request_api = extensions::BrowserContextKeyedAPIFactory::Get( browser_context); @@ -2559,7 +2578,27 @@ ChromeContentBrowserClient::GetOriginsRequiringDedicatedProcess() { } bool ChromeContentBrowserClient::ShouldEnableStrictSiteIsolation() { - return base::FeatureList::IsEnabled(features::kSitePerProcess); + if (base::FeatureList::IsEnabled(features::kSitePerProcess)) { + return true; + } + +#if BUILDFLAG(IS_ANDROID) + // Minimum memory requirements are checked in ShouldDisableSiteIsolation(). + // See crbug.com/395862563 + + if (g_disable_advanced_protection_caching_for_tests) { + return safe_browsing::AdvancedProtectionStatusManagerAndroid:: + QueryIsUnderAdvancedProtection(); + } + // Don't change ShouldEnableStrictSiteIsolation() return value at runtime. A + // restart is needed to update site isolation mode when the Advanced + // Protection state changes. + static bool g_in_os_advanced_protection_mode = safe_browsing:: + AdvancedProtectionStatusManagerAndroid::QueryIsUnderAdvancedProtection(); + return g_in_os_advanced_protection_mode; +#else + return false; +#endif } bool ChromeContentBrowserClient::ShouldDisableSiteIsolation( @@ -2634,7 +2673,6 @@ void ChromeContentBrowserClient::CheckGetAllScreensMediaAllowed( content::RenderFrameHost* render_frame_host, base::OnceCallback callback) { capture_policy::CheckGetAllScreensMediaAllowed( - render_frame_host->GetBrowserContext(), render_frame_host->GetMainFrame()->GetLastCommittedOrigin().GetURL(), std::move(callback)); } @@ -2805,10 +2843,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( blink::switches::kDisableBlobUrlPartitioning); } - if (prefs->GetBoolean(policy::policy_prefs::kMutationEventsEnabled)) { - command_line->AppendSwitch(blink::switches::kMutationEventsEnabled); - } - if (!prefs->GetBoolean( policy::policy_prefs::kKeyboardFocusableScrollersEnabled)) { command_line->AppendSwitch( @@ -2959,7 +2993,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( #if BUILDFLAG(IS_CHROMEOS) switches::kShortMergeSessionTimeoutForTest, // For tests only. #endif -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) extensions::switches::kAllowHTTPBackgroundPage, extensions::switches::kAllowLegacyExtensionManifests, extensions::switches::kDisableExtensionsHttpThrottling, @@ -2981,6 +3015,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( #endif switches::kEnableNetBenchmarking, switches::kExtensionAiDataCollection, + switches::kExtensionExperimentalActor, #if BUILDFLAG(IS_CHROMEOS) chromeos::switches:: kTelemetryExtensionPwaOriginOverrideForTesting, // For tests only. @@ -3001,7 +3036,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( command_line->CopySwitchesFrom(browser_command_line, kSwitchNames); } else if (process_type == switches::kUtilityProcess) { -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) static const char* const kSwitchNames[] = { extensions::switches::kAllowHTTPBackgroundPage, extensions::switches::kEnableExperimentalExtensionApis, @@ -3057,6 +3092,8 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( if (!performance_manager::ShouldPreReadDllInChild()) { command_line->AppendSwitch(switches::kNoPreReadMainDll); } + + base::TimeTicks::MaybeAddHighResolutionTimeTicksSwitch(command_line); #endif ThreadProfilerConfiguration::Get()->AppendCommandLineSwitchForChildProcess( @@ -4208,8 +4245,11 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( // result in always proceeding with no certificate for any request from an // extension service worker. That decision would be remembered across the // entire profile, potentially locking the user out of the origin. - // Allow background requests on desktop android even if there are no - // matching certificates. + // For now, allow all extension background requests on desktop android to + // proceed without a certificate. This is done as a temporary workaround to + // enable testing. + // TODO(wenz): This should instead proceed with the selected certificate + // when there are matching certificates in the OS. #if BUILDFLAG(ENABLE_EXTENSIONS) && \ !(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)) if (matching_certificates.empty() && nonmatching_certificates.empty()) { @@ -4692,6 +4732,10 @@ void ChromeContentBrowserClient::OverrideWebPreferences( web_prefs->prefers_default_scrollbar_styles = prefs->GetBoolean(prefs::kPrefersDefaultScrollbarStyles); +#if BUILDFLAG(IS_ANDROID) + web_prefs->always_show_context_menu_on_touch = + base::FeatureList::IsEnabled(::features::kContextMenuEmptySpace); +#endif } bool ChromeContentBrowserClientParts::OverrideWebPreferencesAfterNavigation( @@ -5499,6 +5543,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( MaybeAddThrottle( ManagedProfileRequiredNavigationThrottle::MaybeCreateThrottleFor(handle), &throttles); + + if (base::FeatureList::IsEnabled( + enterprise::webstore::kChromeWebStoreNavigationThrottle)) { + throttles.push_back( + std::make_unique( + handle)); + } #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ @@ -5656,15 +5707,23 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( // TODO(b:296844164) Handle captive portal signin properly. if (profile && profile->IsIncognitoProfile() && profile->IsOffTheRecord() && !profile->GetOTRProfileID().IsCaptivePortal()) { - MaybeAddThrottle( - chromeos::IncognitoNavigationThrottle::MaybeCreateThrottleFor(handle), - &throttles); + MaybeAddThrottle(enterprise_incognito::IncognitoNavigationThrottle:: + MaybeCreateThrottleFor(handle), + &throttles); } MaybeAddThrottle(apps::AppInstallNavigationThrottle::MaybeCreate(handle), &throttles); #endif // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + if (profile && profile->IsIncognitoProfile() && profile->IsOffTheRecord()) { + MaybeAddThrottle(enterprise_incognito::IncognitoNavigationThrottle:: + MaybeCreateThrottleFor(handle), + &throttles); + } +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + #if !BUILDFLAG(IS_ANDROID) MaybeAddThrottle(PreviewNavigationThrottle::MaybeCreateThrottleFor(handle), &throttles); @@ -6180,9 +6239,7 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( - const network::ResourceRequest& request, content::BrowserContext* browser_context, - const base::RepeatingCallback& wc_getter, content::FrameTreeNodeId frame_tree_node_id) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -6192,15 +6249,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); -#if BUILDFLAG(SAFE_BROWSING_AVAILABLE) - if (auto safe_browsing_throttle = MaybeCreateSafeBrowsingURLLoaderThrottle( - request, browser_context, wc_getter, frame_tree_node_id, - /*navigation_id=*/std::nullopt, profile); - safe_browsing_throttle) { - result.push_back(std::move(safe_browsing_throttle)); - } -#endif - #if BUILDFLAG(IS_ANDROID) auto [client_data_header, unused_is_custom_tab] = GetClientDataHeader(frame_tree_node_id); @@ -6479,13 +6527,14 @@ void InitializeFileURLLoaderFactoryForExtension( } #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) void AddChromeSchemeFactories( int render_process_id, content::RenderFrameHost* frame_host, content::WebContents* web_contents, const extensions::Extension* extension, ChromeContentBrowserClient::NonNetworkURLLoaderFactoryMap* factories) { +#if BUILDFLAG(ENABLE_EXTENSIONS) Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); InstantService* instant_service = @@ -6503,6 +6552,7 @@ void AddChromeSchemeFactories( frame_host, chrome::kChromeSearchScheme, /*allowed_hosts=*/base::flat_set())); } +#endif // BUILDFLAG(ENABLE_EXTENSIONS) extensions::ExtensionWebContentsObserver* web_observer = extensions::ExtensionWebContentsObserver::GetForWebContents(web_contents); @@ -6541,7 +6591,7 @@ void AddChromeSchemeFactories( std::move(allowed_webui_hosts))); } } -#endif // BUILDFLAG(ENABLE_EXTENSIONS) +#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) } // namespace void ChromeContentBrowserClient:: @@ -6550,12 +6600,12 @@ void ChromeContentBrowserClient:: int render_frame_id, const std::optional& request_initiator_origin, NonNetworkURLLoaderFactoryMap* factories) { -#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_EXTENSIONS) || \ +#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_EXTENSIONS_CORE) || \ !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) || BUILDFLAG(ENABLE_EXTENSIONS) || \ +#endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_EXTENSIONS_CORE) || \ // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS) @@ -6598,8 +6648,9 @@ void ChromeContentBrowserClient:: content::RenderProcessHost::FromID(render_process_id) ->GetBrowserContext(); if (ChromeContentBrowserClientExtensionsPart::AreExtensionsDisabledForProfile( - browser_context)) + browser_context)) { return; + } factories->emplace(extensions::kExtensionScheme, extensions::CreateExtensionURLLoaderFactory( @@ -6625,14 +6676,12 @@ void ChromeContentBrowserClient:: render_process_id, browser_context, extension, factories); } -#if BUILDFLAG(ENABLE_EXTENSIONS) // This logic should match // ChromeExtensionWebContentsObserver::RenderFrameCreated. if (web_contents) { AddChromeSchemeFactories(render_process_id, frame_host, web_contents, extension, factories); } -#endif // BUILDFLAG(ENABLE_EXTENSIONS) #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) } @@ -6747,7 +6796,7 @@ ChromeContentBrowserClient:: bool ChromeContentBrowserClient::WillInterceptWebSocket( content::RenderFrameHost* frame) { -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; } @@ -6775,7 +6824,7 @@ void ChromeContentBrowserClient::CreateWebSocket( const std::optional& user_agent, mojo::PendingRemote handshake_client) { -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) // TODO(crbug.com/40195467): Request w/o a frame also should be proxied. if (!frame) { return; @@ -6799,7 +6848,7 @@ void ChromeContentBrowserClient::WillCreateWebTransport( mojo::PendingRemote handshake_client, WillCreateWebTransportCallback callback) { -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) DCHECK_CURRENTLY_ON(BrowserThread::UI); // TODO(crbug.com/40195467): Add a unit test which calls // ChromeContentBrowserClient::WillCreateWebTransport() with invalid process @@ -6838,7 +6887,7 @@ bool ChromeContentBrowserClient::WillCreateRestrictedCookieManager( int routing_id, mojo::PendingReceiver* receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); -#if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (origin.scheme() == extensions::kExtensionScheme) { DCHECK_EQ(network::mojom::RestrictedCookieManagerRole::SCRIPT, role); extensions::ChromeExtensionCookies::Get(browser_context) @@ -7197,17 +7246,16 @@ ChromeContentBrowserClient::CreateWindowForVideoPictureInPicture( return content::VideoOverlayWindow::Create(controller); } -media::PictureInPictureEventsInfo::AutoPipReason -ChromeContentBrowserClient::GetAutoPipReason( +media::PictureInPictureEventsInfo::AutoPipInfo +ChromeContentBrowserClient::GetAutoPipInfo( const content::WebContents& web_contents) const { #if BUILDFLAG(IS_ANDROID) - return media::PictureInPictureEventsInfo::AutoPipReason::kUnknown; + return media::PictureInPictureEventsInfo::AutoPipInfo(); #else auto* auto_pip_tab_helper = AutoPictureInPictureTabHelper::FromWebContents(&web_contents); - return auto_pip_tab_helper - ? auto_pip_tab_helper->GetAutoPipTriggerReason() - : media::PictureInPictureEventsInfo::AutoPipReason::kUnknown; + return auto_pip_tab_helper ? auto_pip_tab_helper->GetAutoPipInfo() + : media::PictureInPictureEventsInfo::AutoPipInfo(); #endif // BUILDFLAG(IS_ANDROID) } @@ -7788,7 +7836,10 @@ bool ChromeContentBrowserClient::IsClipboardPasteAllowed( browser_context->GetPermissionController(); blink::mojom::PermissionStatus status = permission_controller->GetPermissionStatusForCurrentDocument( - blink::PermissionType::CLIPBOARD_READ_WRITE, render_frame_host); + content::PermissionDescriptorUtil:: + CreatePermissionDescriptorForPermissionType( + blink::PermissionType::CLIPBOARD_READ_WRITE), + render_frame_host); if (status == blink::mojom::PermissionStatus::GRANTED) return true; @@ -8701,12 +8752,12 @@ void ChromeContentBrowserClient::NotifyMultiCaptureStateChanged( } #endif // BUILDFLAG(IS_CHROMEOS) -bool ChromeContentBrowserClient::ShouldEnableDips( +bool ChromeContentBrowserClient::ShouldEnableBtm( content::BrowserContext* browser_context) { - return ShouldBrowserContextEnableDips(browser_context); + return ShouldBrowserContextEnableBtm(browser_context); } -bool ShouldBrowserContextEnableDips(content::BrowserContext* browser_context) { +bool ShouldBrowserContextEnableBtm(content::BrowserContext* browser_context) { Profile* profile = Profile::FromBrowserContext(browser_context); Profile* result = GetHumanProfileSelections().ApplyProfileSelection(profile); CHECK(!result || result == profile) @@ -8714,7 +8765,7 @@ bool ShouldBrowserContextEnableDips(content::BrowserContext* browser_context) { return result == profile; } -void ChromeContentBrowserClient::OnDipsServiceCreated( +void ChromeContentBrowserClient::OnBtmServiceCreated( content::BrowserContext* browser_context, content::BtmService* btm_service) { // Create BtmBrowserSigninDetector. @@ -8722,18 +8773,18 @@ void ChromeContentBrowserClient::OnDipsServiceCreated( btm::StatefulBounceCounter::CreateFor(btm_service); } -static_assert(content::ContentBrowserClient::kDefaultDipsRemoveMask == +static_assert(content::ContentBrowserClient::kDefaultBtmRemoveMask == (chrome_browsing_data_remover::FILTERABLE_DATA_TYPES & ((content::BrowsingDataRemover::DATA_TYPE_CONTENT_END << 1) - 1)), - "kDefaultDipsRemoveMask must contain all the entries of " + "kDefaultBtmRemoveMask must contain all the entries of " "FILTERABLE_DATA_TYPES that are known in //content"); -uint64_t ChromeContentBrowserClient::GetDipsRemoveMask() { +uint64_t ChromeContentBrowserClient::GetBtmRemoveMask() { return chrome_browsing_data_remover::FILTERABLE_DATA_TYPES; } -bool ChromeContentBrowserClient::ShouldDipsDeleteInteractionRecords( +bool ChromeContentBrowserClient::ShouldBtmDeleteInteractionRecords( uint64_t remove_mask) { return remove_mask & chrome_browsing_data_remover::DATA_TYPE_HISTORY; } @@ -8751,10 +8802,12 @@ bool ChromeContentBrowserClient::ShouldSuppressAXLoadComplete( void ChromeContentBrowserClient::BindAIManager( content::BrowserContext* browser_context, base::SupportsUserData* context_user_data, + content::RenderFrameHost* rfh, mojo::PendingReceiver receiver) { if (!context_user_data->GetUserData(kAIManagerUserDataKey)) { context_user_data->SetUserData( - kAIManagerUserDataKey, std::make_unique(browser_context)); + kAIManagerUserDataKey, + std::make_unique(browser_context, rfh)); } AIManager* ai_manager = static_cast( @@ -8918,6 +8971,31 @@ void ChromeContentBrowserClient::OnUiaProviderRequested( } } } + +void ChromeContentBrowserClient::OnUiaProviderDisabled() { + // Regardless of whether another request has been handled before, we want to + // make this user as part of the "Rejected" group. + handled_uia_provider_request_ = true; + + if (features::kUiaProvider.default_state == + base::FEATURE_ENABLED_BY_DEFAULT) { + // Do nothing if the feature has launched. + // TODO: Remove all code relating to this synthetic field trial. + return; + } + + // See the comment in `ChromeContentBrowserClient::OnUiaProviderRequested`. + if (auto* trial = base::FeatureList::GetFieldTrial(features::kUiaProvider)) { + // When the UI Automation Provider is forcibly disabled despite the user + // being in the "Enabled" group, we want to ensure that the user is properly + // assigned to the "Rejected" group. + if (base::StartsWith(trial->GetGroupNameWithoutActivation(), "Enabled")) { + ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( + "UiaProviderActiveSynthetic", "Rejected", + variations::SyntheticTrialAnnotationMode::kCurrentLog); + } + } +} #endif // BUILDFLAG(IS_WIN) void ChromeContentBrowserClient::SetSamplingProfiler( @@ -9031,10 +9109,8 @@ std::unique_ptr ChromeContentBrowserClient::MaybeCreateKeepAliveRequestTracker( const network::ResourceRequest& request, std::optional ukm_source_id, - bool is_attribution_reporting_eligible_request, content::KeepAliveRequestTracker::IsContextDetachedCallback is_context_detached_callback) { return ChromeKeepAliveRequestTracker::MaybeCreateKeepAliveRequestTracker( - request, ukm_source_id, is_attribution_reporting_eligible_request, - std::move(is_context_detached_callback)); + request, ukm_source_id, std::move(is_context_detached_callback)); } diff --git a/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 86261d9f..b05ea82f 100755 --- a/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/tools/under-control/src/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -154,31 +154,37 @@ public abstract class ChromeFeatureList { // Feature names. /* Alphabetical: */ public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; - public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = - "AdaptiveButtonInTopToolbarPageSummary"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = "AdaptiveButtonInTopToolbarCustomizationV2"; + public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = + "AdaptiveButtonInTopToolbarPageSummary"; public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents"; public static final String ALWAYS_BLOCK_3PCS_INCOGNITO = "AlwaysBlock3pcsIncognito"; + public static final String ANDROID_APPEARANCE_SETTINGS = "AndroidAppearanceSettings"; public static final String ANDROID_APP_INTEGRATION = "AndroidAppIntegration"; public static final String ANDROID_APP_INTEGRATION_MODULE = "AndroidAppIntegrationModule"; - public static final String ANDROID_APP_INTEGRATION_V2 = "AndroidAppIntegrationV2"; - public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; - public static final String ANDROID_APP_INTEGRATION_WITH_FAVICON = - "AndroidAppIntegrationWithFavicon"; public static final String ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE = "AndroidAppIntegrationMultiDataSource"; - public static final String ANDROID_APPEARANCE_SETTINGS = "AndroidAppearanceSettings"; + public static final String ANDROID_APP_INTEGRATION_V2 = "AndroidAppIntegrationV2"; + public static final String ANDROID_APP_INTEGRATION_WITH_FAVICON = + "AndroidAppIntegrationWithFavicon"; public static final String ANDROID_BOOKMARK_BAR = "AndroidBookmarkBar"; public static final String ANDROID_BOTTOM_TOOLBAR = "AndroidBottomToolbar"; public static final String ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE = "AndroidDumpOnScrollWithoutResource"; public static final String ANDROID_ELEGANT_TEXT_HEIGHT = "AndroidElegantTextHeight"; public static final String ANDROID_KEYBOARD_A11Y = "AndroidKeyboardA11y"; + public static final String ANDROID_META_CLICK_HISTORY_NAVIGATION = + "AndroidMetaClickHistoryNavigation"; + public static final String ANDROID_MINIMAL_UI_LARGE_SCREEN = "AndroidMinimalUiLargeScreen"; + public static final String ANDROID_NATIVE_PAGES_IN_NEW_TAB = "AndroidNativePagesInNewTab"; public static final String ANDROID_NO_VISIBLE_HINT_FOR_DIFFERENT_TLD = "AndroidNoVisibleHintForDifferentTLD"; + public static final String ANDROID_OMNIBOX_FOCUSED_NEW_TAB_PAGE = + "AndroidOmniboxFocusedNewTabPage"; public static final String ANDROID_OPEN_PDF_INLINE_BACKPORT = "AndroidOpenPdfInlineBackport"; public static final String ANDROID_PDF_ASSIST_CONTENT = "AndroidPdfAssistContent"; + public static final String ANDROID_SURFACE_COLOR_UPDATE = "AndroidSurfaceColorUpdate"; public static final String ANDROID_TAB_DECLUTTER = "AndroidTabDeclutter"; public static final String ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE = "AndroidTabDeclutterArchiveAllButActiveTab"; @@ -193,22 +199,23 @@ public abstract class ChromeFeatureList { public static final String ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH = "AndroidTabSkipSaveTabsTaskKillswitch"; public static final String ANDROID_THEME_MODULE = "AndroidThemeModule"; + public static final String ANDROID_WEB_APP_LAUNCH_HANDLER = "AndroidWebAppLaunchHandler"; public static final String ANDROID_WINDOW_POPUP_LARGE_SCREEN = "AndroidWindowPopupLargeScreen"; public static final String ANIMATED_IMAGE_DRAG_SHADOW = "AnimatedImageDragShadow"; - public static final String ANDROID_MINIMAL_UI_LARGE_SCREEN = "AndroidMinimalUiLargeScreen"; public static final String APP_SPECIFIC_HISTORY = "AppSpecificHistory"; public static final String ASYNC_NOTIFICATION_MANAGER = "AsyncNotificationManager"; public static final String ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD = "AsyncNotificationManagerForDownload"; public static final String AUTOFILL_ALLOW_NON_HTTP_ACTIVATION = "AutofillAllowNonHttpActivation"; + public static final String AUTOFILL_DEEP_LINK_AUTOFILL_OPTIONS = + "AutofillDeepLinkAutofillOptions"; public static final String AUTOFILL_ENABLE_CARD_BENEFITS_FOR_AMERICAN_EXPRESS = "AutofillEnableCardBenefitsForAmericanExpress"; public static final String AUTOFILL_ENABLE_CARD_BENEFITS_FOR_BMO = "AutofillEnableCardBenefitsForBmo"; - public static final String AUTOFILL_ENABLE_LOCAL_IBAN = "AutofillEnableLocalIban"; - public static final String AUTOFILL_ENABLE_SERVER_IBAN = "AutofillEnableServerIban"; public static final String AUTOFILL_ENABLE_CVC_STORAGE = "AutofillEnableCvcStorageAndFilling"; + public static final String AUTOFILL_ENABLE_LOCAL_IBAN = "AutofillEnableLocalIban"; public static final String AUTOFILL_ENABLE_PAYMENT_SETTINGS_CARD_PROMO_AND_SCAN_CARD = "AutofillEnablePaymentSettingsCardPromoAndScanCard"; public static final String AUTOFILL_ENABLE_PAYMENT_SETTINGS_SERVER_CARD_SAVE = @@ -217,29 +224,29 @@ public abstract class ChromeFeatureList { "AutofillEnableRankingFormulaAddressProfiles"; public static final String AUTOFILL_ENABLE_RANKING_FORMULA_CREDIT_CARDS = "AutofillEnableRankingFormulaCreditCards"; + public static final String AUTOFILL_ENABLE_SECURITY_TOUCH_EVENT_FILTERING_ANDROID = + "AutofillEnableSecurityTouchEventFilteringAndroid"; + public static final String AUTOFILL_ENABLE_SERVER_IBAN = "AutofillEnableServerIban"; public static final String AUTOFILL_ENABLE_SUPPORT_FOR_HOME_AND_WORK = "AutofillEnableSupportForHomeAndWork"; public static final String AUTOFILL_ENABLE_SYNCING_OF_PIX_BANK_ACCOUNTS = "AutofillEnableSyncingOfPixBankAccounts"; public static final String AUTOFILL_ENABLE_VERVE_CARD_SUPPORT = "AutofillEnableVerveCardSupport"; - public static final String AUTOFILL_DEEP_LINK_AUTOFILL_OPTIONS = - "AutofillDeepLinkAutofillOptions"; - public static final String AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID = - "AutofillVirtualViewStructureAndroid"; + public static final String AUTOFILL_RETRY_IMAGE_FETCH_ON_FAILURE = + "AutofillRetryImageFetchOnFailure"; + public static final String AUTOFILL_SYNC_EWALLET_ACCOUNTS = "AutofillSyncEwalletAccounts"; public static final String AUTOFILL_THIRD_PARTY_MODE_CONTENT_PROVIDER = "AutofillThirdPartyModeContentProvider"; - public static final String AUTOFILL_ENABLE_SECURITY_TOUCH_EVENT_FILTERING_ANDROID = - "AutofillEnableSecurityTouchEventFilteringAndroid"; - public static final String AUTOFILL_SYNC_EWALLET_ACCOUNTS = "AutofillSyncEwalletAccounts"; - public static final String AUTOMOTIVE_FULLSCREEN_TOOLBAR_IMPROVEMENTS = - "AutomotiveFullscreenToolbarImprovements"; - public static final String AVOID_SELECTED_TAB_FOCUS_ON_LAYOUT_DONE_SHOWING = - "AvoidSelectedTabFocusOnLayoutDoneShowing"; + public static final String AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID = + "AutofillVirtualViewStructureAndroid"; + public static final String AVOID_RELAYOUT_DURING_FOCUS_ANIMATION = + "AvoidRelayoutDuringFocusAnimation"; public static final String BACKGROUND_THREAD_POOL = "BackgroundThreadPool"; public static final String BACK_FORWARD_CACHE = "BackForwardCache"; public static final String BACK_FORWARD_TRANSITIONS = "BackForwardTransitions"; public static final String BCIV_BOTTOM_CONTROLS = "AndroidBcivBottomControls"; + public static final String BIOMETRIC_AUTH_IDENTITY_CHECK = "BiometricAuthIdentityCheck"; public static final String BLOCK_INTENTS_WHILE_LOCKED = "BlockIntentsWhileLocked"; public static final String BOARDING_PASS_DETECTOR = "BoardingPassDetector"; public static final String BOOKMARK_PANE_ANDROID = "BookmarkPaneAndroid"; @@ -267,23 +274,22 @@ public abstract class ChromeFeatureList { public static final String CCT_EPHEMERAL_MODE = "CCTEphemeralMode"; public static final String CCT_EXTEND_TRUSTED_CDN_PUBLISHER = "CCTExtendTrustedCdnPublisher"; public static final String CCT_FRE_IN_SAME_TASK = "CCTFreInSameTask"; + public static final String CCT_GOOGLE_BOTTOM_BAR = "CCTGoogleBottomBar"; + public static final String CCT_GOOGLE_BOTTOM_BAR_VARIANT_LAYOUTS = + "CCTGoogleBottomBarVariantLayouts"; public static final String CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY = "CCTIncognitoAvailableToThirdParty"; + public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides"; public static final String CCT_MINIMIZED = "CCTMinimized"; public static final String CCT_MINIMIZED_ENABLED_BY_DEFAULT = "CCTMinimizedEnabledByDefault"; public static final String CCT_NAVIGATIONAL_PREFETCH = "CCTNavigationalPrefetch"; public static final String CCT_NESTED_SECURITY_ICON = "CCTNestedSecurityIcon"; - public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides"; - - public static final String CCT_GOOGLE_BOTTOM_BAR = "CCTGoogleBottomBar"; - public static final String CCT_GOOGLE_BOTTOM_BAR_VARIANT_LAYOUTS = - "CCTGoogleBottomBarVariantLayouts"; public static final String CCT_OPEN_IN_BROWSER_BUTTON_IF_ALLOWED_BY_EMBEDDER = "CCTOpenInBrowserButtonIfAllowedByEmbedder"; public static final String CCT_OPEN_IN_BROWSER_BUTTON_IF_ENABLED_BY_EMBEDDER = "CCTOpenInBrowserButtonIfEnabledByEmbedder"; - // NOTE: Do not query this feature directly, use - // WarmupManager#isCCTPrewarmTabFeatureEnabled. + public static final String CCT_PREDICTIVE_BACK_GESTURE = "CCTPredictiveBackGesture"; + // NOTE: Do not query this feature directly, use WarmupManager#isCCTPrewarmTabFeatureEnabled. public static final String CCT_PREWARM_TAB = "CCTPrewarmTab"; public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS = "CCTReportParallelRequestStatus"; @@ -327,14 +333,15 @@ public abstract class ChromeFeatureList { public static final String DATA_SHARING_NON_PRODUCTION_ENVIRONMENT = "DataSharingNonProductionEnvironment"; public static final String DEFAULT_BROWSER_PROMO_ANDROID2 = "DefaultBrowserPromoAndroid2"; - public static final String DEVICE_AUTHENTICATOR_ANDROIDX = "DeviceAuthenticatorAndroidx"; public static final String DETAILED_LANGUAGE_SETTINGS = "DetailedLanguageSettings"; + public static final String DEVICE_AUTHENTICATOR_ANDROIDX = "DeviceAuthenticatorAndroidx"; public static final String DISABLE_COMPOSITED_PROGRESS_BAR = "DisableCompositedProgressBar"; public static final String DISABLE_INSTANCE_LIMIT = "DisableInstanceLimit"; public static final String DISABLE_LIST_TAB_SWITCHER = "DisableListTabSwitcher"; public static final String DISCO_FEED_ENDPOINT = "DiscoFeedEndpoint"; public static final String DISPLAY_WILDCARD_CONTENT_SETTINGS = "DisplayWildcardInContentSettings"; + public static final String DISPLAY_EDGE_TO_EDGE_FULLSCREEN = "DisplayEdgeToEdgeFullscreen"; public static final String DRAW_CUTOUT_EDGE_TO_EDGE = "DrawCutoutEdgeToEdge"; public static final String DRAW_KEY_NATIVE_EDGE_TO_EDGE = "DrawKeyNativeEdgeToEdge"; public static final String DYNAMIC_SAFE_AREA_INSETS = "DynamicSafeAreaInsets"; @@ -347,13 +354,16 @@ public abstract class ChromeFeatureList { public static final String EDUCATIONAL_TIP_MODULE = "EducationalTipModule"; public static final String EMPTY_TAB_LIST_ANIMATION_KILL_SWITCH = "EmptyTabListAnimationKillSwitch"; - public static final String ENABLE_DISCOUNT_INFO_API = "EnableDiscountInfoApi"; - public static final String ENABLE_X_AXIS_ACTIVITY_TRANSITION = "EnableXAxisActivityTransition"; + public static final String ENABLE_BATCH_UPLOAD_FROM_SETTINGS = "EnableBatchUploadFromSettings"; + public static final String ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD = + "EnableSavePackageForOffTheRecord"; public static final String ENABLE_CLIPBOARD_DATA_CONTROLS_ANDROID = "EnableClipboardDataControlsAndroid"; - public static final String ESB_AI_STRING_UPDATE = "EsbAiStringUpdate"; + public static final String ENABLE_DISCOUNT_INFO_API = "EnableDiscountInfoApi"; + public static final String ENABLE_X_AXIS_ACTIVITY_TRANSITION = "EnableXAxisActivityTransition"; public static final String FEED_CONTAINMENT = "FeedContainment"; public static final String FEED_FOLLOW_UI_UPDATE = "FeedFollowUiUpdate"; + public static final String FEED_HEADER_REMOVAL = "FeedHeaderRemoval"; public static final String FEED_IMAGE_MEMORY_CACHE_SIZE_PERCENTAGE = "FeedImageMemoryCacheSizePercentage"; public static final String FEED_LOADING_PLACEHOLDER = "FeedLoadingPlaceholder"; @@ -373,11 +383,14 @@ public abstract class ChromeFeatureList { public static final String FULLSCREEN_INSETS_API_MIGRATION = "FullscreenInsetsApiMigration"; public static final String FULLSCREEN_INSETS_API_MIGRATION_ON_AUTOMOTIVE = "FullscreenInsetsApiMigrationOnAutomotive"; + public static final String GRID_TAB_SWITCHER_UPDATE = "GridTabSwitcherUpdate"; + public static final String GRID_TAB_SWITCHER_SURFACE_COLOR_UPDATE = + "GridTabSwitcherSurfaceColorUpdate"; public static final String GROUP_NEW_TAB_WITH_PARENT = "GroupNewTabWithParent"; public static final String GROUP_SUGGESTION_SERVICE = "GroupSuggestionService"; - public static final String LOCK_BACK_PRESS_HANDLER_AT_START = "LockBackPressHandlerAtStart"; public static final String HASH_PREFIX_REAL_TIME_LOOKUPS = "SafeBrowsingHashPrefixRealTimeLookups"; + public static final String HEADLESS_TAB_MODEL = "HeadlessTabModel"; public static final String HIDE_TABLET_TOOLBAR_DOWNLOAD_BUTTON = "HideTabletToolbarDownloadButton"; public static final String HISTORY_JOURNEYS = "Journeys"; @@ -385,48 +398,49 @@ public abstract class ChromeFeatureList { public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; + public static final String KEYBOARD_ESC_BACK_NAVIGAION = "KeyboardEscBackNavigation"; public static final String LEGACY_TAB_STATE_DEPRECATION = "LegacyTabStateDeprecation"; public static final String LENS_ON_QUICK_ACTION_SEARCH_WIDGET = "LensOnQuickActionSearchWidget"; public static final String LINKED_SERVICES_SETTING = "LinkedServicesSetting"; public static final String LOADING_PREDICTOR_LIMIT_PRECONNECT_SOCKET_COUNT = "LoadingPredictorLimitPreconnectSocketCount"; + public static final String LOCK_BACK_PRESS_HANDLER_AT_START = "LockBackPressHandlerAtStart"; public static final String LOGIN_DB_DEPRECATION_ANDROID = "LoginDbDeprecationAndroid"; public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; + public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; - public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = + public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = "MultiInstanceApplicationStatusCleanup"; public static final String NATIVE_PAGE_TRANSITION_HARDWARE_CAPTURE = "NativePageTransitionHardwareCapture"; + public static final String NAVIGATION_CAPTURE_REFACTOR = "NavigationCaptureRefactorAndroid"; public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation"; public static final String NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND = "NavBarColorMatchesTabBackground"; - public static final String NAVIGATION_CAPTURE_REFACTOR = "NavigationCaptureRefactorAndroid"; - public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 = "NewTabPageAndroidTriggerForPrerender2"; + public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; + public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; - public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; + public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; public static final String OMAHA_MIN_SDK_VERSION_ANDROID = "OmahaMinSdkVersionAndroid"; public static final String OMNIBOX_CACHE_SUGGESTION_RESOURCES = "OmniboxCacheSuggestionResources"; - public static final String AVOID_RELAYOUT_DURING_FOCUS_ANIMATION = - "AvoidRelayoutDuringFocusAnimation"; public static final String OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS = "OptimizationGuidePushNotifications"; + public static final String PAGE_CONTENT_PROVIDER = "PageContentProvider"; public static final String PAGE_INFO_ABOUT_THIS_SITE_MORE_LANGS = "PageInfoAboutThisSiteMoreLangs"; - public static final String PAGE_CONTENT_PROVIDER = "PageContentProvider"; public static final String PAINT_PREVIEW_DEMO = "PaintPreviewDemo"; public static final String PARTNER_CUSTOMIZATIONS_UMA = "PartnerCustomizationsUma"; - public static final String BIOMETRIC_AUTH_IDENTITY_CHECK = "BiometricAuthIdentityCheck"; public static final String PASSWORD_FORM_GROUPED_AFFILIATIONS = "PasswordFormGroupedAffiliations"; public static final String PASSWORD_LEAK_TOGGLE_MOVE = "PasswordLeakToggleMove"; @@ -437,65 +451,68 @@ public abstract class ChromeFeatureList { public static final String PLUS_ADDRESSES_ENABLED = "PlusAddressesEnabled"; public static final String PLUS_ADDRESS_ANDROID_OPEN_GMS_CORE_MANAGEMENT_PAGE = "PlusAddressAndroidOpenGmsCoreManagementPage"; + public static final String POST_GET_MEMORY_PRESSURE_TO_BACKGROUND = + BaseFeatures.POST_GET_MY_MEMORY_STATE_TO_BACKGROUND; public static final String POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND = "PowerSavingModeBroadcastReceiverInBackground"; + public static final String PRECONNECT_ON_TAB_CREATION = "PreconnectOnTabCreation"; public static final String PREFETCH_BROWSER_INITIATED_TRIGGERS = "PrefetchBrowserInitiatedTriggers"; public static final String PRERENDER2 = "Prerender2"; - public static final String PRECONNECT_ON_TAB_CREATION = "PreconnectOnTabCreation"; public static final String PRICE_ANNOTATIONS = "PriceAnnotations"; public static final String PRICE_CHANGE_MODULE = "PriceChangeModule"; public static final String PRIVACY_SANDBOX_ACTIVITY_TYPE_STORAGE = "PrivacySandboxActivityTypeStorage"; - public static final String PRIVACY_SANDBOX_NOTICE_ACTION_DEBOUNCING_ANDROID = - "PrivacySandboxNoticeActionDebouncingAndroid"; public static final String PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS = "PrivacySandboxAdsApiUxEnhancements"; public static final String PRIVACY_SANDBOX_ADS_NOTICE_CCT = "PrivacySandboxAdsNoticeCCT"; - public static final String PRIVACY_SANDBOX_EQUALIZED_PROMPT_BUTTONS = - "PrivacySandboxEqualizedPromptButtons"; - public static final String PRIVACY_SANDBOX_RELATED_WEBSITE_SETS_UI = - "PrivacySandboxRelatedWebsiteSetsUi"; - public static final String PRIVACY_SANDBOX_SETTINGS_4 = "PrivacySandboxSettings4"; - public static final String PRIVACY_SANDBOX_SENTIMENT_SURVEY = "PrivacySandboxSentimentSurvey"; - public static final String PRIVACY_SANDBOX_CCT_ADS_NOTICE_SURVEY = - "PrivacySandboxCctAdsNoticeSurvey"; public static final String PRIVACY_SANDBOX_AD_TOPICS_CONTENT_PARITY = "PrivacySandboxAdTopicsContentParity"; - public static final String PRIVACY_SANDBOX_PRIVACY_POLICY = "PrivacySandboxPrivacyPolicy"; + public static final String PRIVACY_SANDBOX_CCT_ADS_NOTICE_SURVEY = + "PrivacySandboxCctAdsNoticeSurvey"; + public static final String PRIVACY_SANDBOX_NOTICE_ACTION_DEBOUNCING_ANDROID = + "PrivacySandboxNoticeActionDebouncingAndroid"; + public static final String PRIVACY_SANDBOX_RELATED_WEBSITE_SETS_UI = + "PrivacySandboxRelatedWebsiteSetsUi"; + public static final String PRIVACY_SANDBOX_SENTIMENT_SURVEY = "PrivacySandboxSentimentSurvey"; + public static final String PRIVACY_SANDBOX_SETTINGS_4 = "PrivacySandboxSettings4"; + public static final String PROCESS_RANK_POLICY_ANDROID = "ProcessRankPolicyAndroid"; public static final String PUSH_MESSAGING_DISALLOW_SENDER_IDS = "PushMessagingDisallowSenderIDs"; - public static final String PWA_UPDATE_DIALOG_FOR_ICON = "PwaUpdateDialogForIcon"; public static final String PWA_RESTORE_UI = "PwaRestoreUi"; public static final String PWA_RESTORE_UI_AT_STARTUP = "PwaRestoreUiAtStartup"; + public static final String PWA_UPDATE_DIALOG_FOR_ICON = "PwaUpdateDialogForIcon"; public static final String QUICK_DELETE_ANDROID_SURVEY = "QuickDeleteAndroidSurvey"; public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts"; public static final String READALOUD = "ReadAloud"; public static final String READALOUD_AUDIO_OVERVIEWS = "ReadAloudAudioOverviews"; public static final String READALOUD_BACKGROUND_PLAYBACK = "ReadAloudBackgroundPlayback"; - public static final String READALOUD_IN_OVERFLOW_MENU_IN_CCT = "ReadAloudInOverflowMenuInCCT"; public static final String READALOUD_IN_MULTI_WINDOW = "ReadAloudInMultiWindow"; - public static final String READALOUD_PLAYBACK = "ReadAloudPlayback"; - public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek"; + public static final String READALOUD_IN_OVERFLOW_MENU_IN_CCT = "ReadAloudInOverflowMenuInCCT"; public static final String READALOUD_IPH_MENU_BUTTON_HIGHLIGHT_CCT = "ReadAloudIPHMenuButtonHighlightCCT"; + public static final String READALOUD_PLAYBACK = "ReadAloudPlayback"; + public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek"; public static final String RECORD_SUPPRESSION_METRICS = "RecordSuppressionMetrics"; public static final String REENGAGEMENT_NOTIFICATION = "ReengagementNotification"; - public static final String RELATED_SEARCHES_SWITCH = "RelatedSearchesSwitch"; public static final String RELATED_SEARCHES_ALL_LANGUAGE = "RelatedSearchesAllLanguage"; + public static final String RELATED_SEARCHES_SWITCH = "RelatedSearchesSwitch"; public static final String REMOVE_TAB_FOCUS_ON_SHOWING_AND_SELECT = "RemoveTabFocusOnShowingAndSelect"; public static final String RENAME_JOURNEYS = "RenameJourneys"; public static final String RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV = "RightEdgeGoesForwardGestureNav"; - public static final String SAFETY_HUB = "SafetyHub"; public static final String SAFETY_HUB_ANDROID_ORGANIC_SURVEY = "SafetyHubAndroidOrganicSurvey"; public static final String SAFETY_HUB_ANDROID_SURVEY = "SafetyHubAndroidSurvey"; public static final String SAFETY_HUB_ANDROID_SURVEY_V2 = "SafetyHubAndroidSurveyV2"; + public static final String SAFETY_HUB_DISRUPTIVE_NOTIFICATION_REVOCATION = + "SafetyHubDisruptiveNotificationRevocation"; public static final String SAFETY_HUB_FOLLOWUP = "SafetyHubFollowup"; public static final String SAFETY_HUB_LOCAL_PASSWORDS_MODULE = "SafetyHubLocalPasswordsModule"; public static final String SAFETY_HUB_MAGIC_STACK = "SafetyHubMagicStack"; + public static final String SAFETY_HUB_UNIFIED_PASSWORDS_MODULE = + "SafetyHubUnifiedPasswordsModule"; public static final String SAFETY_HUB_WEAK_AND_REUSED_PASSWORDS = "SafetyHubWeakAndReusedPasswords"; public static final String SAFE_BROWSING_DELAYED_WARNINGS = "SafeBrowsingDelayedWarnings"; @@ -504,23 +521,20 @@ public abstract class ChromeFeatureList { public static final String SEARCH_IN_CCT = "SearchInCCT"; public static final String SEARCH_IN_CCT_ALTERNATE_TAP_HANDLING = "SearchInCCTAlternateTapHandling"; - public static final String SETTINGS_SINGLE_ACTIVITY = "SettingsSingleActivity"; - public static final String SHARE_CUSTOM_ACTIONS_IN_CCT = "ShareCustomActionsInCCT"; - public static final String SHOW_NEW_TAB_ANIMATIONS = "ShowNewTabAnimations"; public static final String SEARCH_RESUMPTION_MODULE_ANDROID = "SearchResumptionModuleAndroid"; public static final String SEED_ACCOUNTS_REVAMP = "SeedAccountsRevamp"; public static final String SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER = "SegmentationPlatformAndroidHomeModuleRanker"; - public static final String SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 = "SegmentationPlatformAndroidHomeModuleRankerV2"; - public static final String SEGMENTATION_PLATFORM_EPHEMERAL_CARD_RANKER = "SegmentationPlatformEphemeralCardRanker"; - public static final String SENSITIVE_CONTENT = "SensitiveContent"; public static final String SENSITIVE_CONTENT_WHILE_SWITCHING_TABS = "SensitiveContentWhileSwitchingTabs"; + public static final String SETTINGS_SINGLE_ACTIVITY = "SettingsSingleActivity"; + public static final String SHARE_CUSTOM_ACTIONS_IN_CCT = "ShareCustomActionsInCCT"; + public static final String SHOW_NEW_TAB_ANIMATIONS = "ShowNewTabAnimations"; public static final String SHOW_WARNINGS_FOR_SUSPICIOUS_NOTIFICATIONS = "ShowWarningsForSuspiciousNotifications"; public static final String SKIP_ISOLATED_SPLIT_PRELOAD = "SkipIsolatedSplitPreload"; @@ -534,27 +548,26 @@ public abstract class ChromeFeatureList { public static final String SUGGESTION_ANSWERS_COLOR_REVERSE = "SuggestionAnswersColorReverse"; public static final String SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END = "SuppressToolbarCapturesAtGestureEnd"; - public static final String ENABLE_BATCH_UPLOAD_FROM_SETTINGS = "EnableBatchUploadFromSettings"; + public static final String SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID = + "SwapNewTabAndNewTabInGroupAndroid"; public static final String SYNC_ENABLE_PASSWORDS_SYNC_ERROR_MESSAGE_ALTERNATIVE = "SyncEnablePasswordsSyncErrorMessageAlternative"; public static final String TAB_CLOSURE_METHOD_REFACTOR = "TabClosureMethodRefactor"; - public static final String TAB_GROUP_PANE_ANDROID = "TabGroupPaneAndroid"; - public static final String TAB_GROUP_SYNC_ANDROID = "TabGroupSyncAndroid"; - public static final String TAB_GROUP_SYNC_AUTO_OPEN_KILL_SWITCH = - "TabGroupSyncAutoOpenKillSwitch"; public static final String TAB_GROUP_ENTRY_POINTS_ANDROID = "TabGroupEntryPointsAndroid"; public static final String TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID = "TabGroupParityBottomSheetAndroid"; + public static final String TAB_GROUP_SYNC_ANDROID = "TabGroupSyncAndroid"; + public static final String TAB_GROUP_SYNC_AUTO_OPEN_KILL_SWITCH = + "TabGroupSyncAutoOpenKillSwitch"; public static final String TAB_RESUMPTION_MODULE_ANDROID = "TabResumptionModuleAndroid"; + public static final String TAB_STATE_FLAT_BUFFER = "TabStateFlatBuffer"; public static final String TAB_STRIP_CONTEXT_MENU = "TabStripContextMenuAndroid"; - public static final String TAB_STRIP_GROUP_COLLAPSE = "TabStripGroupCollapseAndroid"; public static final String TAB_STRIP_GROUP_DRAG_DROP_ANDROID = "TabStripGroupDragDropAndroid"; public static final String TAB_STRIP_GROUP_REORDER = "TabStripGroupReorderAndroid"; public static final String TAB_STRIP_INCOGNITO_MIGRATION = "TabStripIncognitoMigration"; public static final String TAB_STRIP_LAYOUT_OPTIMIZATION = "TabStripLayoutOptimization"; public static final String TAB_STRIP_TRANSITION_IN_DESKTOP_WINDOW = "TabStripTransitionInDesktopWindow"; - public static final String TAB_STATE_FLAT_BUFFER = "TabStateFlatBuffer"; public static final String TAB_SWITCHER_COLOR_BLEND_ANIMATE = "TabSwitcherColorBlendAnimate"; public static final String TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT = "TabSwitcherForeignFaviconSupport"; @@ -568,17 +581,14 @@ public abstract class ChromeFeatureList { public static final String TOOLBAR_SCROLL_ABLATION = "AndroidToolbarScrollAblation"; public static final String TRACE_BINDER_IPC = "TraceBinderIpc"; public static final String TRACKING_PROTECTION_3PCD = "TrackingProtection3pcd"; + public static final String TRACKING_PROTECTION_CONTENT_SETTING_UB_CONTROL = + "TrackingProtectionContentSettingUbControl"; public static final String TRACKING_PROTECTION_USER_BYPASS_PWA = "TrackingProtectionUserBypassPwa"; public static final String TRACKING_PROTECTION_USER_BYPASS_PWA_TRIGGER = "TrackingProtectionUserBypassPwaTrigger"; - public static final String TRACKING_PROTECTION_CONTENT_SETTING_UB_CONTROL = - "TrackingProtectionContentSettingUbControl"; public static final String TRANSLATE_MESSAGE_UI = "TranslateMessageUI"; public static final String TRANSLATE_TFLITE = "TFLiteLanguageDetectionEnabled"; - public static final String - UNIFIED_PASSWORD_MANAGER_LOCAL_PASSWORDS_ANDROID_ACCESS_LOSS_WARNING = - "UnifiedPasswordManagerLocalPasswordsAndroidAccessLossWarning"; public static final String UNIFIED_PASSWORD_MANAGER_LOCAL_PWD_MIGRATION_WARNING = "UnifiedPasswordManagerLocalPasswordsMigrationWarning"; public static final String UNO_PHASE_2_FOLLOW_UP = "UnoPhase2FollowUp"; @@ -599,35 +609,33 @@ public abstract class ChromeFeatureList { public static final String WEB_FEED_SORT = "WebFeedSort"; public static final String WEB_OTP_CROSS_DEVICE_SIMPLE_STRING = "WebOtpCrossDeviceSimpleString"; public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting"; - public static final String POST_GET_MEMORY_PRESSURE_TO_BACKGROUND = - BaseFeatures.POST_GET_MY_MEMORY_STATE_TO_BACKGROUND; - public static final String ANDROID_WEB_APP_LAUNCH_HANDLER = "AndroidWebAppLaunchHandler"; /* Alphabetical: */ public static final CachedFlag sAndroidAppIntegration = newCachedFlag(ANDROID_APP_INTEGRATION, true); public static final CachedFlag sAndroidAppIntegrationModule = - newCachedFlag(ANDROID_APP_INTEGRATION_MODULE, false, true); - public static final CachedFlag sAndroidAppIntegrationV2 = - newCachedFlag(ANDROID_APP_INTEGRATION_V2, false, true); - public static final CachedFlag sAndroidTabSkipSaveTabsKillswitch = - newCachedFlag(ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH, true, true); - public static final CachedFlag sNewTabPageCustomization = - newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION, false); - public static final CachedFlag sAndroidAppIntegrationWithFavicon = - newCachedFlag(ANDROID_APP_INTEGRATION_WITH_FAVICON, false, true); - + newCachedFlag(ANDROID_APP_INTEGRATION_MODULE, true); public static final CachedFlag sAndroidAppIntegrationMultiDataSource = newCachedFlag(ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE, false); + public static final CachedFlag sAndroidAppIntegrationV2 = + newCachedFlag(ANDROID_APP_INTEGRATION_V2, true); + public static final CachedFlag sAndroidAppIntegrationWithFavicon = + newCachedFlag(ANDROID_APP_INTEGRATION_WITH_FAVICON, true); public static final CachedFlag sAndroidBottomToolbar = newCachedFlag(ANDROID_BOTTOM_TOOLBAR, false, true); public static final CachedFlag sAndroidElegantTextHeight = newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, true); - public static final CachedFlag sAndroidTabDeclutterDedupeTabIdsKillSwitch = - newCachedFlag(ANDROID_TAB_DECLUTTER_DEDUPE_TAB_IDS_KILL_SWITCH, true); public static final CachedFlag sAndroidMinimalUiLargeScreen = newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false); + public static final CachedFlag sAndroidSurfaceColorUpdate = + newCachedFlag(ANDROID_SURFACE_COLOR_UPDATE, /* defaultValue= */ false); + public static final CachedFlag sAndroidTabDeclutterDedupeTabIdsKillSwitch = + newCachedFlag(ANDROID_TAB_DECLUTTER_DEDUPE_TAB_IDS_KILL_SWITCH, true); + public static final CachedFlag sAndroidTabSkipSaveTabsKillswitch = + newCachedFlag(ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH, true, true); public static final CachedFlag sAndroidThemeModule = newCachedFlag(ANDROID_THEME_MODULE, false); + public static final CachedFlag sAndroidWebAppLaunchHandler = + newCachedFlag(ANDROID_WEB_APP_LAUNCH_HANDLER, false); public static final CachedFlag sAndroidWindowPopupLargeScreen = newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); @@ -653,13 +661,20 @@ public abstract class ChromeFeatureList { public static final CachedFlag sCctAutoTranslate = newCachedFlag(CCT_AUTO_TRANSLATE, true); public static final CachedFlag sCctBlockTouchesDuringEnterAnimation = newCachedFlag(CCT_BLOCK_TOUCHES_DURING_ENTER_ANIMATION, true); - public static final CachedFlag sCCTEphemeralMediaViewerExperiment = + public static final CachedFlag sCctEphemeralMediaViewerExperiment = newCachedFlag( CCT_EPHEMERAL_MEDIA_VIEWER_EXPERIMENT, /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sCctEphemeralMode = newCachedFlag(CCT_EPHEMERAL_MODE, true); public static final CachedFlag sCctFreInSameTask = newCachedFlag(CCT_FRE_IN_SAME_TASK, true); + public static final CachedFlag sCctGoogleBottomBar = + newCachedFlag( + CCT_GOOGLE_BOTTOM_BAR, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); + public static final CachedFlag sCctGoogleBottomBarVariantLayouts = + newCachedFlag(CCT_GOOGLE_BOTTOM_BAR_VARIANT_LAYOUTS, false); public static final CachedFlag sCctIncognitoAvailableToThirdParty = newCachedFlag(CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY, false); public static final CachedFlag sCctIntentFeatureOverrides = @@ -670,23 +685,18 @@ public abstract class ChromeFeatureList { CCT_NAVIGATIONAL_PREFETCH, /* defaultValue= */ false, /* defaultValueInTests= */ true); - public static final CachedFlag sCctGoogleBottomBar = - newCachedFlag( - CCT_GOOGLE_BOTTOM_BAR, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); - public static final CachedFlag sCctGoogleBottomBarVariantLayouts = - newCachedFlag(CCT_GOOGLE_BOTTOM_BAR_VARIANT_LAYOUTS, false); - public static final CachedFlag sCctResizableForThirdParties = - newCachedFlag(CCT_RESIZABLE_FOR_THIRD_PARTIES, true); + public static final CachedFlag sCctNestedSecurityIcon = + newCachedFlag(CCT_NESTED_SECURITY_ICON, true); + public static final CachedFlag sCctPredictiveBackGesture = + newCachedFlag(CCT_PREDICTIVE_BACK_GESTURE, false); public static final CachedFlag sCctOpenInBrowserButtonIfAllowedByEmbedder = newCachedFlag(CCT_OPEN_IN_BROWSER_BUTTON_IF_ALLOWED_BY_EMBEDDER, false); public static final CachedFlag sCctOpenInBrowserButtonIfEnabledByEmbedder = newCachedFlag(CCT_OPEN_IN_BROWSER_BUTTON_IF_ENABLED_BY_EMBEDDER, true); + public static final CachedFlag sCctResizableForThirdParties = + newCachedFlag(CCT_RESIZABLE_FOR_THIRD_PARTIES, true); public static final CachedFlag sCctRevampedBranding = newCachedFlag(CCT_REVAMPED_BRANDING, true); - public static final CachedFlag sCctNestedSecurityIcon = - newCachedFlag(CCT_NESTED_SECURITY_ICON, true); public static final CachedFlag sCctTabModalDialog = newCachedFlag(CCT_TAB_MODAL_DIALOG, true); public static final CachedFlag sCctToolbarRefactor = newCachedFlag(CCT_TOOLBAR_REFACTOR, false); public static final CachedFlag sClankStartupLatencyInjection = @@ -713,10 +723,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sDrawKeyNativeEdgeToEdge = newCachedFlag(DRAW_KEY_NATIVE_EDGE_TO_EDGE, true); public static final CachedFlag sEdgeToEdgeBottomChin = - newCachedFlag( - EDGE_TO_EDGE_BOTTOM_CHIN, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); + newCachedFlag(EDGE_TO_EDGE_BOTTOM_CHIN, /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeEverywhere = newCachedFlag( EDGE_TO_EDGE_EVERYWHERE, @@ -732,13 +739,7 @@ public abstract class ChromeFeatureList { newCachedFlag(ENABLE_DISCOUNT_INFO_API, false, true); public static final CachedFlag sEnableXAxisActivityTransition = newCachedFlag(ENABLE_X_AXIS_ACTIVITY_TRANSITION, false); - public static final CachedFlag sEsbAiStringUpdate = - newCachedFlag( - ESB_AI_STRING_UPDATE, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); - - public static final CachedFlag sFloatingSnackbar = newCachedFlag(FLOATING_SNACKBAR, false); + public static final CachedFlag sFloatingSnackbar = newCachedFlag(FLOATING_SNACKBAR, true); public static final CachedFlag sForceListTabSwitcher = newCachedFlag(FORCE_LIST_TAB_SWITCHER, false); public static final CachedFlag sForceTranslucentNotificationTrampoline = @@ -747,12 +748,15 @@ public abstract class ChromeFeatureList { newCachedFlag(FULLSCREEN_INSETS_API_MIGRATION, false); public static final CachedFlag sFullscreenInsetsApiMigrationOnAutomotive = newCachedFlag(FULLSCREEN_INSETS_API_MIGRATION_ON_AUTOMOTIVE, true); + public static final CachedFlag sGridTabSwitcherSurfaceColorUpdate = + newCachedFlag(GRID_TAB_SWITCHER_SURFACE_COLOR_UPDATE, /* defaultValue= */ false); + public static final CachedFlag sGridTabSwitcherUpdate = + newCachedFlag(GRID_TAB_SWITCHER_UPDATE, false); public static final CachedFlag sHideTabletToolbarDownloadButton = - newCachedFlag( - HIDE_TABLET_TOOLBAR_DOWNLOAD_BUTTON, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); + newCachedFlag(HIDE_TABLET_TOOLBAR_DOWNLOAD_BUTTON, true); public static final CachedFlag sHistoryPaneAndroid = newCachedFlag(HISTORY_PANE_ANDROID, false); + public static final CachedFlag sKeyboardEscBackNavigation = + newCachedFlag(KEYBOARD_ESC_BACK_NAVIGAION, false); public static final CachedFlag sLegacyTabStateDeprecation = newCachedFlag( LEGACY_TAB_STATE_DEPRECATION, @@ -761,34 +765,38 @@ public abstract class ChromeFeatureList { public static final CachedFlag sLockBackPressHandlerAtStart = newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = - newCachedFlag(MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP, false); + newCachedFlag(MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP, false); public static final CachedFlag sNavBarColorAnimation = newCachedFlag(NAV_BAR_COLOR_ANIMATION, false); public static final CachedFlag sNavBarColorMatchesTabBackground = newCachedFlag(NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND, true); public static final CachedFlag sNewTabPageAndroidTriggerForPrerender2 = newCachedFlag(NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2, true); + public static final CachedFlag sNewTabPageCustomization = + newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION, false); public static final CachedFlag sNotificationTrampoline = newCachedFlag(NOTIFICATION_TRAMPOLINE, false); - public static final CachedFlag sPowerSavingModeBroadcastReceiverInBackground = - newCachedFlag(POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND, false); - public static final CachedFlag sPriceChangeModule = newCachedFlag(PRICE_CHANGE_MODULE, true); public static final CachedFlag sOptimizationGuidePushNotifications = newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); + public static final CachedFlag sPowerSavingModeBroadcastReceiverInBackground = + newCachedFlag( + POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sPrefetchBrowserInitiatedTriggers = newCachedFlag(PREFETCH_BROWSER_INITIATED_TRIGGERS, true); - + public static final CachedFlag sPriceChangeModule = newCachedFlag(PRICE_CHANGE_MODULE, true); public static final CachedFlag sRightEdgeGoesForwardGestureNav = newCachedFlag(RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV, false); - public static final CachedFlag sSafetyHubMagicStack = newCachedFlag(SAFETY_HUB_MAGIC_STACK, false); public static final CachedFlag sSafetyHubWeakAndReusedPasswords = @@ -811,8 +819,6 @@ public abstract class ChromeFeatureList { newCachedFlag(START_SURFACE_RETURN_TIME, true); public static final CachedFlag sTabClosureMethodRefactor = newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false); - public static final CachedFlag sTabGroupPaneAndroid = - newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true); public static final CachedFlag sTabStateFlatBuffer = newCachedFlag( TAB_STATE_FLAT_BUFFER, @@ -826,10 +832,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sTabStripLayoutOptimization = newCachedFlag( TAB_STRIP_LAYOUT_OPTIMIZATION, - /* defaultValue= */ true, + /* defaultValue= */ false, /* defaultValueInTests= */ true); - public static final CachedFlag sTabStripGroupCollapse = - newCachedFlag(TAB_STRIP_GROUP_COLLAPSE, /* defaultValue= */ true); public static final CachedFlag sTabWindowManagerReportIndicesMismatch = newCachedFlag(TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH, true); public static final CachedFlag sTestDefaultDisabled = @@ -847,18 +851,20 @@ public abstract class ChromeFeatureList { List.of( sAndroidAppIntegration, sAndroidAppIntegrationModule, + sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationV2, sAndroidAppIntegrationWithFavicon, - sAndroidAppIntegrationMultiDataSource, - sAndroidTabSkipSaveTabsKillswitch, - sAndroidThemeModule, sAndroidBottomToolbar, sAndroidElegantTextHeight, + sAndroidMinimalUiLargeScreen, + sAndroidSurfaceColorUpdate, sAndroidTabDeclutterDedupeTabIdsKillSwitch, + sAndroidTabSkipSaveTabsKillswitch, + sAndroidThemeModule, + sAndroidWebAppLaunchHandler, sAndroidWindowPopupLargeScreen, sAppSpecificHistory, sAsyncNotificationManager, - sAndroidMinimalUiLargeScreen, sBlockIntentsWhileLocked, sBookmarkPaneAndroid, sCacheIsMultiInstanceApi31Enabled, @@ -868,20 +874,21 @@ public abstract class ChromeFeatureList { sCctAuthTabEnableHttpsRedirects, sCctAutoTranslate, sCctBlockTouchesDuringEnterAnimation, - sCCTEphemeralMediaViewerExperiment, + sCctEphemeralMediaViewerExperiment, sCctEphemeralMode, sCctFreInSameTask, + sCctGoogleBottomBar, + sCctGoogleBottomBarVariantLayouts, sCctIncognitoAvailableToThirdParty, sCctIntentFeatureOverrides, sCctMinimized, sCctNavigationalPrefetch, - sCctGoogleBottomBar, - sCctGoogleBottomBarVariantLayouts, + sCctNestedSecurityIcon, + sCctPredictiveBackGesture, sCctOpenInBrowserButtonIfAllowedByEmbedder, sCctOpenInBrowserButtonIfEnabledByEmbedder, sCctResizableForThirdParties, sCctRevampedBranding, - sCctNestedSecurityIcon, sCctTabModalDialog, sCctToolbarRefactor, sClankStartupLatencyInjection, @@ -898,17 +905,20 @@ public abstract class ChromeFeatureList { sEducationalTipModule, sEnableDiscountInfoApi, sEnableXAxisActivityTransition, - sEsbAiStringUpdate, sFloatingSnackbar, sForceListTabSwitcher, sForceTranslucentNotificationTrampoline, sFullscreenInsetsApiMigration, sFullscreenInsetsApiMigrationOnAutomotive, + sGridTabSwitcherSurfaceColorUpdate, + sGridTabSwitcherUpdate, sHideTabletToolbarDownloadButton, sHistoryPaneAndroid, + sKeyboardEscBackNavigation, + sLegacyTabStateDeprecation, sLockBackPressHandlerAtStart, - sNotificationTrampoline, sMagicStackAndroid, + sMiniOriginBar, sMostVisitedTilesCustomization, sMostVisitedTilesReselect, sMultiInstanceApplicationStatusCleanup, @@ -916,26 +926,24 @@ public abstract class ChromeFeatureList { sNavBarColorMatchesTabBackground, sNewTabPageAndroidTriggerForPrerender2, sNewTabPageCustomization, - sPowerSavingModeBroadcastReceiverInBackground, - sPriceChangeModule, + sNotificationTrampoline, sOptimizationGuidePushNotifications, sPaintPreviewDemo, sPostGetMyMemoryStateToBackground, + sPowerSavingModeBroadcastReceiverInBackground, sPrefetchBrowserInitiatedTriggers, + sPriceChangeModule, sRightEdgeGoesForwardGestureNav, sSafetyHubMagicStack, sSafetyHubWeakAndReusedPasswords, sSearchInCCT, sSearchInCCTAlternateTapHandling, - sLegacyTabStateDeprecation, sSettingsSingleActivity, sSkipIsolatedSplitPreload, sSmallerTabStripTitleLimit, sStartSurfaceReturnTime, sTabClosureMethodRefactor, - sTabGroupPaneAndroid, sTabStateFlatBuffer, - sTabStripGroupCollapse, sTabStripIncognitoMigration, sTabStripLayoutOptimization, sTabWindowManagerReportIndicesMismatch, @@ -959,32 +967,32 @@ public abstract class ChromeFeatureList { // MutableFlagWithSafeDefault instances. /* Alphabetical: */ - public static final MutableFlagWithSafeDefault sAdaptiveButtonInTopToolbarCustomizationV2 = - newMutableFlagWithSafeDefault(ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2, false); public static final MutableFlagWithSafeDefault sAndroidAppearanceSettings = newMutableFlagWithSafeDefault(ANDROID_APPEARANCE_SETTINGS, false); public static final MutableFlagWithSafeDefault sAndroidBookmarkBar = newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR, false); public static final MutableFlagWithSafeDefault sAndroidDumpOnScrollWithoutResource = newMutableFlagWithSafeDefault(ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE, false); + public static final MutableFlagWithSafeDefault sAndroidNativePagesInNewTab = + newMutableFlagWithSafeDefault(ANDROID_NATIVE_PAGES_IN_NEW_TAB, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutter = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveDuplicateTabs = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS, false); + newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveTabGroups = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterRescueKillSwitch = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_RESCUE_KILLSWITCH, true); - public static final MutableFlagWithSafeDefault sBottomBrowserControlsRefactor = - newMutableFlagWithSafeDefault(BOTTOM_BROWSER_CONTROLS_REFACTOR, true); public static final MutableFlagWithSafeDefault sBcivBottomControls = newMutableFlagWithSafeDefault(BCIV_BOTTOM_CONTROLS, false); - public static final MutableFlagWithSafeDefault sBrowserControlsInViz = - newMutableFlagWithSafeDefault(BROWSER_CONTROLS_IN_VIZ, true); + public static final MutableFlagWithSafeDefault sBottomBrowserControlsRefactor = + newMutableFlagWithSafeDefault(BOTTOM_BROWSER_CONTROLS_REFACTOR, true); public static final MutableFlagWithSafeDefault sBrowserControlsEarlyResize = newMutableFlagWithSafeDefault(BROWSER_CONTROLS_EARLY_RESIZE, false); + public static final MutableFlagWithSafeDefault sBrowserControlsInViz = + newMutableFlagWithSafeDefault(BROWSER_CONTROLS_IN_VIZ, true); public static final MutableFlagWithSafeDefault sClearBrowsingDataAndroidSurvey = newMutableFlagWithSafeDefault(CLEAR_BROWSING_DATA_ANDROID_SURVEY, false); public static final MutableFlagWithSafeDefault sControlsVisibilityFromNavigations = @@ -992,7 +1000,7 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sDynamicSafeAreaInsets = newMutableFlagWithSafeDefault(DYNAMIC_SAFE_AREA_INSETS, false); public static final MutableFlagWithSafeDefault sEdgeToEdgeSafeAreaConstraint = - newMutableFlagWithSafeDefault(EDGE_TO_EDGE_SAFE_AREA_CONSTRAINT, false); + newMutableFlagWithSafeDefault(EDGE_TO_EDGE_SAFE_AREA_CONSTRAINT, true); // Defaulted to true in native, but since it is being used as a kill switch set the default // value pre-native to false as it is safer if the feature needs to be killed via Finch config. public static final MutableFlagWithSafeDefault sEmptyTabListAnimationKillSwitch = @@ -1023,6 +1031,8 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(SHOW_NEW_TAB_ANIMATIONS, false); public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd = newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false); + public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid = + newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false); public static final MutableFlagWithSafeDefault sTabGroupEntryPointsAndroid = newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false); public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid = @@ -1030,12 +1040,17 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sTabSwitcherColorBlendAnimate = newMutableFlagWithSafeDefault(TAB_SWITCHER_COLOR_BLEND_ANIMATE, true); public static final MutableFlagWithSafeDefault sTabSwitcherForeignFaviconSupport = - newMutableFlagWithSafeDefault(TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT, false); + newMutableFlagWithSafeDefault(TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT, true); public static final MutableFlagWithSafeDefault sToolbarScrollAblation = newMutableFlagWithSafeDefault(TOOLBAR_SCROLL_ABLATION, false); + public static final MutableFlagWithSafeDefault sAdaptiveButtonInTopToolbarCustomizationV2 = + newMutableFlagWithSafeDefault(ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2, false); // CachedFeatureParam instances. /* Alphabetical order by feature name, arbitrary order by param name: */ + public static final BooleanCachedFeatureParam sAndroidThemeModuleForceDependencies = + newBooleanCachedFeatureParam( + ANDROID_THEME_MODULE, "force_theme_module_dependencies", false); public static final BooleanCachedFeatureParam sCctAdaptiveButtonEnableOpenInBrowser = newBooleanCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "open_in_browser", false); public static final BooleanCachedFeatureParam sCctAdaptiveButtonEnableVoice = @@ -1065,7 +1080,7 @@ public abstract class ChromeFeatureList { ANDROID_APP_INTEGRATION_WITH_FAVICON, "schedule_delay_time_ms", 0); public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconUseLargeFavicon = newBooleanCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "use_large_favicon", false); + ANDROID_APP_INTEGRATION_WITH_FAVICON, "use_large_favicon", true); public static final IntCachedFeatureParam sAndroidAppIntegrationWithFaviconZeroStateFaviconNumber = newIntCachedFeatureParam( @@ -1267,7 +1282,7 @@ public abstract class ChromeFeatureList { */ public static final StringCachedFeatureParam sEdgeToEdgeBottomChinOemMinVersions = newStringCachedFeatureParam( - EDGE_TO_EDGE_BOTTOM_CHIN, "e2e_field_trial_oem_min_versions", ""); + EDGE_TO_EDGE_BOTTOM_CHIN, "e2e_field_trial_oem_min_versions", "34,34"); public static final StringCachedFeatureParam sEdgeToEdgeEverywhereOemMinVersions = newStringCachedFeatureParam( @@ -1279,7 +1294,8 @@ public abstract class ChromeFeatureList { * #sEdgeToEdgeBottomChinOemMinVersions}. */ public static final StringCachedFeatureParam sEdgeToEdgeBottomChinOemList = - newStringCachedFeatureParam(EDGE_TO_EDGE_BOTTOM_CHIN, "e2e_field_trial_oem_list", ""); + newStringCachedFeatureParam( + EDGE_TO_EDGE_BOTTOM_CHIN, "e2e_field_trial_oem_list", "oppo,xiaomi"); public static final StringCachedFeatureParam sEdgeToEdgeEverywhereOemList = newStringCachedFeatureParam(EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_list", ""); @@ -1287,16 +1303,21 @@ public abstract class ChromeFeatureList { public static final BooleanCachedFeatureParam sEdgeToEdgeEverywhereIsDebugging = newBooleanCachedFeatureParam(EDGE_TO_EDGE_EVERYWHERE, "e2e_everywhere_debug", false); + public static final BooleanCachedFeatureParam sTabGroupListContainment = + newBooleanCachedFeatureParam( + GRID_TAB_SWITCHER_SURFACE_COLOR_UPDATE, "tab_group_list_containment", true); + public static final BooleanCachedFeatureParam sMagicStackAndroidShowAllModules = newBooleanCachedFeatureParam(MAGIC_STACK_ANDROID, "show_all_modules", false); - public static final BooleanCachedFeatureParam mMostVisitedTilesReselectLaxSchemeHost = + public static final BooleanCachedFeatureParam sMostVisitedTilesReselectLaxSchemeHost = newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_scheme_host", false); - public static final BooleanCachedFeatureParam mMostVisitedTilesReselectLaxRef = + public static final BooleanCachedFeatureParam sMostVisitedTilesReselectLaxRef = newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_ref", false); - public static final BooleanCachedFeatureParam mMostVisitedTilesReselectLaxQuery = + public static final BooleanCachedFeatureParam sMostVisitedTilesReselectLaxQuery = newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_query", false); - public static final BooleanCachedFeatureParam mMostVisitedTilesReselectLaxPath = + public static final BooleanCachedFeatureParam sMostVisitedTilesReselectLaxPath = newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_path", false); + public static final BooleanCachedFeatureParam sNavBarColorMatchesTabBackgroundColorAnimationDisabled = newBooleanCachedFeatureParam( @@ -1363,60 +1384,61 @@ public abstract class ChromeFeatureList { /** All {@link CachedFeatureParam}s of features in this FeatureList */ public static final List> sParamsCached = List.of( - sAndroidAppIntegrationV2ContentTtlHours, - sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours, - sAndroidAppIntegrationWithFaviconSkipDeviceCheck, sAndroidAppIntegrationModuleForceCardShow, sAndroidAppIntegrationModuleShowThirdPartyCard, - sAndroidAppIntegrationWithFaviconScheduleDelayTimeMs, - sAndroidAppIntegrationWithFaviconSkipSchemaCheck, - sAndroidAppIntegrationMultiDataSourceUseSchemaV1, + sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours, sAndroidAppIntegrationMultiDataSourceSkipDeviceCheck, + sAndroidAppIntegrationMultiDataSourceUseSchemaV1, + sAndroidAppIntegrationV2ContentTtlHours, + sAndroidAppIntegrationWithFaviconScheduleDelayTimeMs, + sAndroidAppIntegrationWithFaviconSkipDeviceCheck, + sAndroidAppIntegrationWithFaviconSkipSchemaCheck, sAndroidAppIntegrationWithFaviconUseLargeFavicon, sAndroidAppIntegrationWithFaviconZeroStateFaviconNumber, sAndroidBottomToolbarDefaultToTop, + sAndroidThemeModuleForceDependencies, sCctAdaptiveButtonEnableOpenInBrowser, sCctAdaptiveButtonEnableVoice, sCctAuthTabEnableHttpsRedirectsVerificationTimeoutMs, - sCctAutoTranslatePackageNamesAllowlist, sCctAutoTranslateAllowAllFirstParties, - sCctMinimizedIconVariant, - sCctMinimizedEnabledByDefaultManufacturerExcludeList, - sCctGoogleBottomBarNoVariantHeightDp, + sCctAutoTranslatePackageNamesAllowlist, sCctGoogleBottomBarButtonList, + sCctGoogleBottomBarNoVariantHeightDp, + sCctGoogleBottomBarVariantLayoutsGoogleDseCheckEnabled, sCctGoogleBottomBarVariantLayoutsSingleDeckerHeightDp, sCctGoogleBottomBarVariantLayoutsVariantLayout, - sCctGoogleBottomBarVariantLayoutsGoogleDseCheckEnabled, + sCctMinimizedEnabledByDefaultManufacturerExcludeList, + sCctMinimizedIconVariant, sCctResizableForThirdPartiesAllowlistEntries, - sCctResizableForThirdPartiesDenylistEntries, sCctResizableForThirdPartiesDefaultPolicy, + sCctResizableForThirdPartiesDenylistEntries, sClankStartupLatencyInjectionAmountMs, sCollectAndroidFrameTimelineMetricsJankTrackerDelayedStartMs, - sDeleteMigratedLegacyTabStateFilesAfterRestore, sDeleteLegacyTabStateFilesBatchSize, - sMaxLegacyTabStateFilesDeletedPerSession, - sDrawKeyNativeEdgeToEdgeDisableRecentTabsE2e, + sDeleteMigratedLegacyTabStateFilesAfterRestore, sDrawKeyNativeEdgeToEdgeDisableCctMediaViewerE2e, sDrawKeyNativeEdgeToEdgeDisableHubE2e, - sDrawKeyNativeEdgeToEdgeDisableNtpE2e, sDrawKeyNativeEdgeToEdgeDisableIncognitoNtpE2e, - sEdgeToEdgeBottomChinOemMinVersions, + sDrawKeyNativeEdgeToEdgeDisableNtpE2e, + sDrawKeyNativeEdgeToEdgeDisableRecentTabsE2e, sEdgeToEdgeBottomChinOemList, + sEdgeToEdgeBottomChinOemMinVersions, sEdgeToEdgeEverywhereIsDebugging, - sEdgeToEdgeEverywhereOemMinVersions, sEdgeToEdgeEverywhereOemList, + sEdgeToEdgeEverywhereOemMinVersions, sMagicStackAndroidShowAllModules, - mMostVisitedTilesReselectLaxSchemeHost, - mMostVisitedTilesReselectLaxRef, - mMostVisitedTilesReselectLaxQuery, - mMostVisitedTilesReselectLaxPath, + sMaxLegacyTabStateFilesDeletedPerSession, + sMostVisitedTilesReselectLaxQuery, + sMostVisitedTilesReselectLaxPath, + sMostVisitedTilesReselectLaxRef, + sMostVisitedTilesReselectLaxSchemeHost, sNavBarColorAnimationDisableBottomChinColorAnimation, sNavBarColorAnimationDisableEdgeToEdgeLayoutColorAnimation, sNavBarColorMatchesTabBackgroundColorAnimationDisabled, sNewTabSearchEngineUrlAndroidSwapOutNtp, + sNotificationTrampolineImmediateJobDurationMs, sNotificationTrampolineLongJobDurationMs, sNotificationTrampolineNormalJobDurationMs, - sNotificationTrampolineImmediateJobDurationMs, sNotificationTrampolineTimeoutPriorNativeInitMs, sOmahaMinSdkVersionMinSdkVersion, sOptimizationGuidePushNotificationsMaxCacheSize, @@ -1424,6 +1446,7 @@ public abstract class ChromeFeatureList { sSearchinCctApplyReferrerId, sSearchinCctOmniboxAllowedPackageNames, sStartSurfaceReturnTimeTabletSecs, + sTabGroupListContainment, sTabStateFlatBufferMigrateStaleTabs, sTabWindowManagerReportIndicesMismatchTimeDiffThresholdMs, sUseChimeAndroidSdkAlwaysRegister, @@ -1431,6 +1454,14 @@ public abstract class ChromeFeatureList { // Mutable*ParamWithSafeDefault instances. /* Alphabetical: */ + public static final MutableBooleanParamWithSafeDefault + sAndroidNativePagesInNewTabBookmarksEnabled = + sAndroidNativePagesInNewTab.newBooleanParam( + "android_native_pages_in_new_tab_bookmarks_enabled", true); + public static final MutableBooleanParamWithSafeDefault + sAndroidNativePagesInNewTabDownloadsEnabled = + sAndroidNativePagesInNewTab.newBooleanParam( + "android_native_pages_in_new_tab_downloads_enabled", true); public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterArchiveEnabled = sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", true); public static final MutableIntParamWithSafeDefault sAndroidTabDeclutterArchiveTimeDeltaHours = @@ -1456,7 +1487,7 @@ public abstract class ChromeFeatureList { public static final MutableBooleanParamWithSafeDefault sDisableBottomControlsStackerYOffsetDispatching = sBottomBrowserControlsRefactor.newBooleanParam( - "disable_bottom_controls_stacker_y_offset", true); + "disable_bottom_controls_stacker_y_offset", false); public static final MutableIntParamWithSafeDefault sTabSwitcherColorBlendAnimateDurationMs = sTabSwitcherColorBlendAnimate.newIntParam("animation_duration_ms", 240); public static final MutableIntParamWithSafeDefault sTabSwitcherColorBlendAnimateInterpolator = 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 77be6bf7..9a004008 100755 --- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc +++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc @@ -50,6 +50,7 @@ #include "chrome/browser/notifications/notifier_state_tracker.h" #include "chrome/browser/notifications/platform_notification_service_impl.h" #include "chrome/browser/permissions/quiet_notification_permission_ui_state.h" +#include "chrome/browser/policy/developer_tools_policy_handler.h" #include "chrome/browser/prefs/chrome_pref_service_factory.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/prefs/session_startup_pref.h" @@ -57,6 +58,7 @@ #include "chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.h" #include "chrome/browser/preloading/preloading_prefs.h" #include "chrome/browser/printing/print_preview_sticky_settings.h" +#include "chrome/browser/privacy_sandbox/notice/notice_storage.h" #include "chrome/browser/profiles/chrome_version_service.h" #include "chrome/browser/profiles/profile_attributes_entry.h" #include "chrome/browser/profiles/profile_attributes_storage.h" @@ -64,6 +66,7 @@ #include "chrome/browser/profiles/profiles_state.h" #include "chrome/browser/push_messaging/push_messaging_app_identifier.h" #include "chrome/browser/push_messaging/push_messaging_service_impl.h" +#include "chrome/browser/push_messaging/push_messaging_unsubscribed_entry.h" #include "chrome/browser/rlz/chrome_rlz_tracker_delegate.h" #include "chrome/browser/search/search.h" #include "chrome/browser/serial/serial_policy_allowed_ports.h" @@ -99,6 +102,7 @@ #include "components/breadcrumbs/core/breadcrumbs_status.h" #include "components/browsing_data/core/pref_names.h" #include "components/certificate_transparency/pref_names.h" +#include "components/collaboration/public/pref_names.h" #include "components/commerce/core/pref_names.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/pref_names.h" @@ -125,6 +129,7 @@ #include "components/metrics/demographics/user_demographics.h" #include "components/metrics/metrics_pref_names.h" #include "components/network_time/network_time_tracker.h" +#include "components/ntp_tiles/custom_links_manager_impl.h" #include "components/ntp_tiles/most_visited_sites.h" #include "components/offline_pages/buildflags/buildflags.h" #include "components/omnibox/browser/document_provider.h" @@ -149,10 +154,10 @@ #include "components/prefs/pref_registry.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -#include "components/privacy_sandbox/privacy_sandbox_notice_storage.h" #include "components/privacy_sandbox/privacy_sandbox_prefs.h" #include "components/privacy_sandbox/tpcd_pref_names.h" #include "components/proxy_config/pref_proxy_config_tracker_impl.h" +#include "components/regional_capabilities/regional_capabilities_prefs.h" #include "components/safe_browsing/buildflags.h" #include "components/safe_browsing/core/common/safe_browsing_prefs.h" #include "components/saved_tab_groups/public/pref_names.h" @@ -185,9 +190,11 @@ #include "components/translate/core/browser/translate_prefs.h" #include "components/update_client/update_client.h" #include "components/variations/service/variations_service.h" +#include "components/visited_url_ranking/internal/url_grouping/group_suggestions_service_impl.h" #include "components/webui/chrome_urls/pref_names.h" #include "components/webui/flags/pref_service_flags_storage.h" #include "content/public/browser/render_process_host.h" +#include "content/public/common/buildflags.h" #include "extensions/buildflags/buildflags.h" #include "net/http/http_server_properties_manager.h" #include "pdf/buildflags.h" @@ -200,6 +207,8 @@ #endif #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) +#include "chrome/browser/extensions/commands/command_service.h" +#include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/extension_web_ui.h" #include "chrome/browser/ui/webui/extensions/extensions_ui_prefs.h" #include "extensions/browser/api/runtime/runtime_api.h" @@ -213,7 +222,6 @@ #include "chrome/browser/apps/platform_apps/shortcut_manager.h" #include "chrome/browser/extensions/activity_log/activity_log.h" #include "chrome/browser/extensions/api/tabs/tabs_api.h" -#include "chrome/browser/extensions/commands/command_service.h" #include "chrome/browser/extensions/preinstalled_apps.h" #include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h" #include "chrome/browser/ui/webui/extensions/extensions_ui.h" @@ -281,7 +289,6 @@ #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" // nogncheck crbug.com/1125897 #include "chrome/browser/screen_ai/pref_names.h" #include "chrome/browser/search/background/ntp_custom_background_service.h" @@ -299,6 +306,7 @@ #include "chrome/browser/ui/webui/certificate_manager/certificate_manager_handler.h" #include "chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.h" #include "chrome/browser/ui/webui/history/foreign_session_handler.h" +#include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer_ui.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h" #include "chrome/browser/ui/webui/settings/settings_ui.h" @@ -309,12 +317,11 @@ #include "components/lens/lens_overlay_permission_utils.h" #include "components/live_caption/live_caption_controller.h" #include "components/live_caption/live_translate_controller.h" -#include "components/ntp_tiles/custom_links_manager_impl.h" #endif // BUILDFLAG(IS_ANDROID) -#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(ENABLE_DEVTOOLS_FRONTEND) #include "chrome/browser/devtools/devtools_window.h" -#endif // !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) +#endif // BUILDFLAG(ENABLE_DEVTOOLS_FRONTEND) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h" @@ -372,8 +379,8 @@ #include "chrome/browser/ash/login/security_token_session_controller.h" #include "chrome/browser/ash/login/session/chrome_session_manager.h" #include "chrome/browser/ash/login/session/user_session_manager.h" +#include "chrome/browser/ash/login/signin/legacy_token_handle_fetcher.h" #include "chrome/browser/ash/login/signin/signin_error_notifier.h" -#include "chrome/browser/ash/login/signin/token_handle_fetcher.h" #include "chrome/browser/ash/login/startup_utils.h" #include "chrome/browser/ash/login/users/avatar/user_image_manager_impl.h" #include "chrome/browser/ash/login/users/avatar/user_image_prefs.h" @@ -556,23 +563,7 @@ constexpr char kLastUploadedEuiccStatusPrefLegacy[] = "esim.last_upload_euicc_status"; #endif // BUILDFLAG(IS_CHROMEOS) -// Deprecated 04/2024. -inline constexpr char kOmniboxInstantKeywordUsed[] = - "omnibox.instant_keyword_used"; - -// Deprecated 04/2024. -inline constexpr char kWebAppPreinstalledAppWindowExperiment[] = - "web_apps.preinstalled_app_window_experiment"; - -// Deprecated 04/2024. -inline constexpr char kDIPSTimerLastUpdate[] = "dips_timer_last_update"; - #if BUILDFLAG(IS_CHROMEOS) -// Deprecated 04/2024 -constexpr char kMetricsUserInheritOwnerConsent[] = - "metrics.user_inherit_owner_consent"; -constexpr char kGlanceablesEnabled[] = "ash.glanceables_enabled"; - // Deprecated 05/2024. // A preference to keep track of the device registered time. constexpr char kDeviceRegisteredTime[] = "DeviceRegisteredTime"; @@ -1084,11 +1075,29 @@ constexpr char kSunfishEnabled[] = "ash.capture_mode.sunfish_enabled"; inline constexpr char kRecurrentSSLInterstitial[] = "profile.ssl_recurrent_interstitial"; +// Deprecated 04/2025. +inline constexpr char kDefaultSearchProviderChoiceScreenShuffleMilestone[] = + "default_search_provider.choice_screen_shuffle_milestone"; #if !BUILDFLAG(IS_ANDROID) inline char kPerformanceInterventionNotificationAcceptHistoryDeprecated[] = "performance_tuning.intervention_notification.accept_history"; #endif // !BUILDFLAG(IS_ANDROID) +// Deprecated 04/2025. +inline constexpr char kAddedBookmarkSincePowerBookmarksLaunch[] = + "bookmarks.added_since_power_bookmarks_launch"; +inline constexpr char kGlicRolloutEligibility[] = "glic.rollout_eligibility"; + +// Deprecated 04/2025. +inline constexpr char kManagedAccessToGetAllScreensMediaAllowedForUrls[] = + "profile.managed_access_to_get_all_screens_media_allowed_for_urls"; + +#if BUILDFLAG(IS_ANDROID) +// Deprecated 04/2025. +constexpr char kObsoleteUserAcknowledgedLocalPasswordsMigrationWarning[] = + "user_acknowledged_local_passwords_migration_warning"; +#endif + // Register local state used only for migration (clearing or moving to a new // key). void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { @@ -1206,20 +1215,7 @@ void RegisterProfilePrefsForMigration( user_prefs::PrefRegistrySyncable* registry) { chrome_browser_net::secure_dns::RegisterProbesSettingBackupPref(registry); - // Deprecated 04/2024. - registry->RegisterBooleanPref(kOmniboxInstantKeywordUsed, false); - - // Deprecated 04/2024. - registry->RegisterDictionaryPref(kWebAppPreinstalledAppWindowExperiment); - - // Deprecated 04/2024. - registry->RegisterTimePref(kDIPSTimerLastUpdate, base::Time()); - #if BUILDFLAG(IS_CHROMEOS) - // Deprecated 04/2024. - registry->RegisterBooleanPref(kMetricsUserInheritOwnerConsent, true); - registry->RegisterBooleanPref(kGlanceablesEnabled, true); - // Deprecated 05/2024. registry->RegisterBooleanPref(kAccessibilityMouseKeysShortcutToPauseEnabled, true); @@ -1527,6 +1523,25 @@ void RegisterProfilePrefsForMigration( // Deprecated 03/2025 registry->RegisterDictionaryPref(kRecurrentSSLInterstitial); + + // Deprecated 04/2025. + registry->RegisterIntegerPref( + kDefaultSearchProviderChoiceScreenShuffleMilestone, 0); + + // Deprecated 04/2025. + registry->RegisterBooleanPref(kAddedBookmarkSincePowerBookmarksLaunch, false); + + // Deprecated 04/2025. + registry->RegisterIntegerPref(kGlicRolloutEligibility, 0); + + // Deprecated 04/2025. + registry->RegisterListPref(kManagedAccessToGetAllScreensMediaAllowedForUrls); + +#if BUILDFLAG(IS_ANDROID) + // Deprecated 04/2025. + registry->RegisterBooleanPref( + kObsoleteUserAcknowledgedLocalPasswordsMigrationWarning, false); +#endif } } // namespace @@ -1557,6 +1572,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { chrome_labs_prefs::RegisterLocalStatePrefs(registry); chrome_urls::RegisterPrefs(registry); ChromeMetricsServiceClient::RegisterPrefs(registry); + enterprise_connectors::RegisterLocalStatePrefs(registry); enterprise_util::RegisterLocalStatePrefs(registry); component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); @@ -1643,8 +1659,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { registry->RegisterIntegerPref(first_run::kTosDialogBehavior, 0); registry->RegisterBooleanPref(lens::kLensCameraAssistedSearchEnabled, true); -#else // BUILDFLAG(IS_ANDROID) - enterprise_connectors::RegisterLocalStatePrefs(registry); +#else // BUILDFLAG(IS_ANDROID) gcm::RegisterPrefs(registry); headless::RegisterPrefs(registry); IntranetRedirectDetector::RegisterPrefs(registry); @@ -1862,6 +1877,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ChromeVersionService::RegisterProfilePrefs(registry); chrome_browser_net::NetErrorTabHelper::RegisterProfilePrefs(registry); chrome_prefs::RegisterProfilePrefs(registry); + collaboration::prefs::RegisterProfilePrefs(registry); commerce::RegisterPrefs(registry); enterprise::RegisterIdentifiersProfilePrefs(registry); enterprise_connectors::RegisterProfilePrefs(registry); @@ -1892,6 +1908,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, metrics::RegisterDemographicsProfilePrefs(registry); NotificationDisplayServiceImpl::RegisterProfilePrefs(registry); NotifierStateTracker::RegisterProfilePrefs(registry); + ntp_tiles::CustomLinksManagerImpl::RegisterProfilePrefs(registry); ntp_tiles::MostVisitedSites::RegisterProfilePrefs(registry); optimization_guide::prefs::RegisterProfilePrefs(registry); optimization_guide::model_execution::prefs::RegisterProfilePrefs(registry); @@ -1903,6 +1920,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, PermissionBubbleMediaAccessHandler::RegisterProfilePrefs(registry); PlatformNotificationServiceImpl::RegisterProfilePrefs(registry); plus_addresses::prefs::RegisterProfilePrefs(registry); + policy::DeveloperToolsPolicyHandler::RegisterProfilePrefs(registry); policy::URLBlocklistManager::RegisterProfilePrefs(registry); PolicyUI::RegisterProfilePrefs(registry); PrefProxyConfigTrackerImpl::RegisterProfilePrefs(registry); @@ -1910,12 +1928,15 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, PrefetchOriginDecider::RegisterPrefs(registry); PrefsTabHelper::RegisterProfilePrefs(registry, locale); privacy_sandbox::RegisterProfilePrefs(registry); + privacy_sandbox::PrivacySandboxNoticeStorage::RegisterProfilePrefs(registry); Profile::RegisterProfilePrefs(registry); ProfileImpl::RegisterProfilePrefs(registry); ProfileNetworkContextService::RegisterProfilePrefs(registry); custom_handlers::ProtocolHandlerRegistry::RegisterProfilePrefs(registry); PushMessagingAppIdentifier::RegisterProfilePrefs(registry); + PushMessagingUnsubscribedEntry::RegisterProfilePrefs(registry); QuietNotificationPermissionUiState::RegisterProfilePrefs(registry); + regional_capabilities::prefs::RegisterProfilePrefs(registry); RegisterBrowserUserPrefs(registry); RegisterGeminiSettingsPrefs(registry); RegisterPrefersDefaultScrollbarStylesPrefs(registry); @@ -1949,6 +1970,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, tab_groups::prefs::RegisterProfilePrefs(registry); tpcd::experiment::RegisterProfilePrefs(registry); translate::TranslatePrefs::RegisterProfilePrefs(registry); + visited_url_ranking::GroupSuggestionsServiceImpl::RegisterProfilePrefs( + registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -1961,8 +1984,11 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, extensions::PermissionsManager::RegisterProfilePrefs(registry); extensions::ExtensionPrefs::RegisterProfilePrefs(registry); extensions::RuntimeAPI::RegisterPrefs(registry); + extensions::CommandService::RegisterProfilePrefs(registry); + extensions::util::RegisterProfilePrefs(registry); extensions_ui_prefs::RegisterProfilePrefs(registry); ExtensionWebUI::RegisterProfilePrefs(registry); + update_client::RegisterProfilePrefs(registry); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) #if BUILDFLAG(ENABLE_EXTENSIONS) @@ -1973,7 +1999,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, // were nested in either a class or separate namespace with a simple // Register[Profile]Prefs() name. extensions::RegisterSettingsOverriddenUiPrefs(registry); - update_client::RegisterProfilePrefs(registry); #endif // BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_PDF) @@ -2018,7 +2043,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, commerce::CommerceUiTabHelper::RegisterProfilePrefs(registry); DeviceServiceImpl::RegisterProfilePrefs(registry); DriveService::RegisterProfilePrefs(registry); - extensions::CommandService::RegisterProfilePrefs(registry); extensions::TabsCaptureVisibleTabFunction::RegisterProfilePrefs(registry); first_run::RegisterProfilePrefs(registry); gcm::RegisterProfilePrefs(registry); @@ -2030,13 +2054,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, media_router::RegisterProfilePrefs(registry); MicrosoftAuthPageHandler::RegisterProfilePrefs(registry); MicrosoftFilesPageHandler::RegisterProfilePrefs(registry); + NewTabFooterUI::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); PromoService::RegisterProfilePrefs(registry); RegisterReadAnythingProfilePrefs(registry); @@ -2053,9 +2076,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, UnifiedAutoplayConfig::RegisterProfilePrefs(registry); #endif // BUILDFLAG(IS_ANDROID) -#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(ENABLE_DEVTOOLS_FRONTEND) DevToolsWindow::RegisterProfilePrefs(registry); -#endif // !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) +#endif // BUILDFLAG(ENABLE_DEVTOOLS_FRONTEND) #if BUILDFLAG(IS_CHROMEOS) extensions::DocumentScanRegisterProfilePrefs(registry); @@ -2287,7 +2310,7 @@ void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #endif #if BUILDFLAG(IS_CHROMEOS) ash::RegisterUserProfilePrefs(registry, locale); - ash::TokenHandleFetcher::RegisterPrefs(registry); + ash::LegacyTokenHandleFetcher::RegisterPrefs(registry); #endif } @@ -2491,20 +2514,7 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, password_manager_android_util::PasswordManagerUtilBridge>()); #endif - // Added 04/2024. - profile_prefs->ClearPref(kOmniboxInstantKeywordUsed); - - // Added 04/2024. - profile_prefs->ClearPref(kWebAppPreinstalledAppWindowExperiment); - - // Added 04/2024. - profile_prefs->ClearPref(kDIPSTimerLastUpdate); - #if BUILDFLAG(IS_CHROMEOS) - // Added 04/2024. - profile_prefs->ClearPref(kMetricsUserInheritOwnerConsent); - profile_prefs->ClearPref(kGlanceablesEnabled); - // Added 05/2024. profile_prefs->ClearPref(kAccessibilityMouseKeysShortcutToPauseEnabled); profile_prefs->ClearPref(kAccessibilityMouseKeysDisableInTextFields); @@ -2805,6 +2815,24 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, // Added 03/2025. profile_prefs->ClearPref(kRecurrentSSLInterstitial); + // Added 04/2025. + profile_prefs->ClearPref(kDefaultSearchProviderChoiceScreenShuffleMilestone); + + // Added 04/2025. + profile_prefs->ClearPref(kAddedBookmarkSincePowerBookmarksLaunch); + + // Added 04/2025. + profile_prefs->ClearPref(kGlicRolloutEligibility); + + // Added 04/2025 + profile_prefs->ClearPref(kManagedAccessToGetAllScreensMediaAllowedForUrls); + +#if BUILDFLAG(IS_ANDROID) + // Added 04/2025 + profile_prefs->ClearPref( + kObsoleteUserAcknowledgedLocalPasswordsMigrationWarning); +#endif + // 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 5a09c835..4384aae7 100755 --- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc +++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc @@ -91,8 +91,8 @@ #include "chrome/browser/ui/prefs/prefs_tab_helper.h" #include "chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt_helper.h" #include "chrome/browser/ui/recently_audible_helper.h" -#include "chrome/browser/ui/safety_hub/unused_site_permissions_service.h" -#include "chrome/browser/ui/safety_hub/unused_site_permissions_service_factory.h" +#include "chrome/browser/ui/safety_hub/revoked_permissions_service.h" +#include "chrome/browser/ui/safety_hub/revoked_permissions_service_factory.h" #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" #include "chrome/browser/ui/tab_contents/core_tab_helper.h" #include "chrome/browser/ui/tab_dialogs.h" @@ -572,17 +572,17 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { TrustedVaultEncryptionKeysTabHelper::CreateForWebContents(web_contents); #if BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled(features::kSafetyHub)) { - auto* service = UnusedSitePermissionsServiceFactory::GetForProfile(profile); + auto* service = RevokedPermissionsServiceFactory::GetForProfile(profile); if (service) { - UnusedSitePermissionsService::TabHelper::CreateForWebContents( - web_contents, service); + RevokedPermissionsService::TabHelper::CreateForWebContents(web_contents, + service); } } #else // BUILDFLAG(IS_ANDROID) - auto* service = UnusedSitePermissionsServiceFactory::GetForProfile(profile); + auto* service = RevokedPermissionsServiceFactory::GetForProfile(profile); if (service) { - UnusedSitePermissionsService::TabHelper::CreateForWebContents(web_contents, - service); + RevokedPermissionsService::TabHelper::CreateForWebContents(web_contents, + service); } #endif // BUILDFLAG(IS_ANDROID) ukm::InitializeSourceUrlRecorderForWebContents(web_contents); 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 1b33b224..a71b1235 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 @@ -355,6 +355,11 @@ namespace autofillPrivate { // dynamically, because the "" string might need declension in // some languages. DOMString editEntityTypeString; + // The i18n string representation of "Delete ". Used in the + // entity instance deletion settings UI. The string cannot be constructed + // dynamically, because the "" string might need declension in + // some languages. + DOMString deleteEntityTypeString; }; // Contains date information: month, day and year. @@ -420,6 +425,9 @@ namespace autofillPrivate { // The Pay Over Time issuer image source. DOMString? imageSrc; + + // The Pay Over Time issuer image source for dark theme. + DOMString? imageSrcDark; }; callback VoidCallback = void(); diff --git a/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl b/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl new file mode 100755 index 00000000..1e42bc97 --- /dev/null +++ b/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl @@ -0,0 +1,30 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Experimental API to handle acting and returning new browser state. +[implemented_in="chrome/browser/extensions/api/experimental_actor/experimental_actor_api.h"] +namespace experimentalActor { + callback DataCallback = void(ArrayBuffer data); + callback ClosureCallback = void(); + + interface Functions { + // Creates and starts a new task. By default, opens a new tab to + // about:blank that is ready for actions. + // startTaskProto: encoded optimization_guide.proto.BrowserStartTask + // startTaskcallback: + // encoded optimization_guide.proto.BrowserStartTaskResult + static void startTask(ArrayBuffer startTaskProto, + DataCallback startTaskcallback); + // Executes one or more actions according to request. + // request: encoded optimization_guide.proto.BrowserAction + // response: encoded optimization_guide.proto.BrowserActionResult + static void executeAction(ArrayBuffer browserActionProto, + DataCallback executeActioncallback); + // Stops a task. + // taskId: id of the task to stop. + // stopTaskcallback: a closure that is called when the task is stopped. + static void stopTask(long taskId, + ClosureCallback stopTaskcallback); + }; +}; diff --git a/tools/under-control/src/chrome/common/extensions/api/image_writer_private.idl b/tools/under-control/src/chrome/common/extensions/api/image_writer_private.idl index b75c53d0..7695a81a 100755 --- a/tools/under-control/src/chrome/common/extensions/api/image_writer_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/image_writer_private.idl @@ -4,9 +4,6 @@ // Use the chrome.image_writer API to write images to // removable media. -// -// See the design doc for a detailed description of this API. -// https://goo.gl/KzMEFq namespace imageWriterPrivate { // The different stages of a write call. // diff --git a/tools/under-control/src/chrome/common/extensions/api/webrtc_audio_private.idl b/tools/under-control/src/chrome/common/extensions/api/webrtc_audio_private.idl index ad41331d..52ccb439 100755 --- a/tools/under-control/src/chrome/common/extensions/api/webrtc_audio_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/webrtc_audio_private.idl @@ -11,7 +11,8 @@ // extension calling this API (i.e. they cannot be shared between // extensions). // -// See http://goo.gl/8rOmgk for further documentation of this API. +// See this document for further details of this API: +// https://docs.google.com/document/d/1un8aJoUvyt5jMUkK_hoeEJ4HRw-Nf8bA25hYUOpg_Oo/ namespace webrtcAudioPrivate { 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 fb4a1b33..c79f9feb 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 @@ -1711,15 +1711,18 @@ void ChromeContentRendererClient:: if (base::FeatureList::IsEnabled(subresource_filter::kAdTagging)) blink::WebRuntimeFeatures::EnableAdTagging(true); -#if BUILDFLAG(ENABLE_EXTENSIONS) - // WebHID and WebUSB on service workers is only available in extensions. if (IsStandaloneContentExtensionProcess()) { + // These Web APIs are only exposed to workers in extensions. blink::WebRuntimeFeatures::EnableWebUSBOnServiceWorkers(true); #if !BUILDFLAG(IS_ANDROID) blink::WebRuntimeFeatures::EnableWebHIDOnServiceWorkers(true); #endif // !BUILDFLAG(IS_ANDROID) + blink::WebRuntimeFeatures::EnableAIRewriterAPIForWorkers(true); + blink::WebRuntimeFeatures::EnableAISummarizationAPIForWorkers(true); + blink::WebRuntimeFeatures::EnableAIWriterAPIForWorkers(true); + blink::WebRuntimeFeatures::EnableLanguageDetectionAPIForWorkers(true); + blink::WebRuntimeFeatures::EnableTranslationAPIForWorkers(true); } -#endif // BUILDFLAG(ENABLE_EXTENSIONS) } bool ChromeContentRendererClient::AllowScriptExtensionForServiceWorker( 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 c9ec98e3..8b9e9e8d 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 @@ -73,6 +73,7 @@ DeviceLoginScreenDictationEnabled: accessibility_settings.login_screen_dictation DeviceLoginScreenDomainAutoComplete: login_screen_domain_auto_complete.login_screen_domain_auto_complete DeviceLoginScreenExtensions: device_login_screen_extensions.device_login_screen_extensions DeviceLoginScreenExtensionManifestV2Availability: login_screen_extension_manifest_v2_availability.login_screen_extension_manifest_v2_availability +DeviceLoginScreenFaceGazeEnabled: accessibility_settings.login_screen_face_gaze_enabled DeviceLoginScreenHighContrastEnabled: accessibility_settings.login_screen_high_contrast_enabled DeviceLoginScreenInputMethods: login_screen_input_methods.login_screen_input_methods DeviceLoginScreenIsolateOrigins: device_login_screen_isolate_origins.isolate_origins 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 3519956a..0a51219b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policies.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policies.yaml @@ -1336,11 +1336,11 @@ policies: 1335: GeminiSettings 1336: GenAISmartGroupingSettings 1337: GenAiChromeOsSmartActionsSettings - 1338: RelaunchSupersededReleaseAge + 1338: RelaunchFastIfOutdated 1339: ClassManagementCaptionsEnabled 1340: ClassManagementClassroomIntegrationEnabled 1341: ClassManagementNetworkRestrictionEnabled - 1342: ClassManagementSendingContentEnabled + 1342: '' 1343: ClassManagementViewScreenEnabled 1344: KioskChromeAppsForceAllowed 1345: ReduceAcceptLanguageEnabled @@ -1348,6 +1348,17 @@ policies: 1347: UserSecuritySignalsReporting 1348: UserSecurityAuthenticatedReporting 1349: HappyEyeballsV3Enabled + 1350: FaceGazeEnabled + 1351: ProvisionalNotificationsAllowed + 1352: DeviceLoginScreenFaceGazeEnabled + 1353: EnterpriseLogoUrlForBrowser + 1354: EnterpriseCustomLabelForBrowser + 1355: DefaultSmartCardConnectSetting + 1356: DeviceUserInitiatedFirmwareUpdatesEnabled + 1357: BuiltInAIAPIsEnabled + 1358: TabGroupSharingSettings + 1359: NTPFooterManagementNoticeEnabled + 1360: NTPFooterThemeAttributionEnabled atomic_groups: 1: Homepage 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 d8e5766b..86a120ed 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AutoclickEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AutoclickEnabled.yaml index 5bb53ef1..b84cb776 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AutoclickEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/AutoclickEnabled.yaml @@ -25,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CaretHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CaretHighlightEnabled.yaml index 716e9b24..15e6cefa 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CaretHighlightEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/CaretHighlightEnabled.yaml @@ -25,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ColorCorrectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ColorCorrectionEnabled.yaml index 1f1251ef..2b7ec430 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ColorCorrectionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ColorCorrectionEnabled.yaml @@ -27,6 +27,7 @@ items: owners: - katie@chromium.org - chromeos-a11y-eng@google.com +- file://ash/accessibility/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 f9210053..6d82933e 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,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 57bb3df2..1a42fa47 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,7 +24,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 08cc649c..4a6ae928 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,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 1015827b..a0183bc5 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 231ec050..c9d1cc5f 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultHighContrastEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultHighContrastEnabled.yaml index fb0973cb..2e933f22 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultHighContrastEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultHighContrastEnabled.yaml @@ -22,8 +22,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultLargeCursorEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultLargeCursorEnabled.yaml index 37a6c102..759d96aa 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultLargeCursorEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultLargeCursorEnabled.yaml @@ -20,8 +20,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultScreenMagnifierType.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultScreenMagnifierType.yaml index 8e0e0b1e..dfaf286a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultScreenMagnifierType.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultScreenMagnifierType.yaml @@ -25,8 +25,7 @@ items: name: Docked value: 2 owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: enum: - 0 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 29e175ad..245a3957 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,7 +22,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultVirtualKeyboardEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultVirtualKeyboardEnabled.yaml index 39b16920..610bd01d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultVirtualKeyboardEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenDefaultVirtualKeyboardEnabled.yaml @@ -25,8 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/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 90106661..5e00e580 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenFaceGazeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenFaceGazeEnabled.yaml new file mode 100755 index 00000000..6f067ee5 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenFaceGazeEnabled.yaml @@ -0,0 +1,37 @@ +caption: Enable face control on the login screen +default: null +desc: |- + When face control is active, you can use your head to control the mouse cursor and use + facial gestures to perform system actions. This allows you to control your device + hands-free. + + If this policy is set to true, face control will always be enabled on the login screen. + + If this policy is set to false, face control will always be disabled on the login screen. + + If you set this policy, users cannot change or override it. + + If this policy is left unset, face control is disabled on the login screen initially but can be enabled by the user anytime. +device_only: true +example_value: true +features: + can_be_recommended: true + dynamic_refresh: true +items: +- caption: Enable face control on the login screen + value: true +- caption: Disable face control on the login screen + value: false +- caption: Allow the user to decide + value: null +owners: +- akihiroota@chromium.org +- file://ash/accessibility/OWNERS +- file://components/policy/OWNERS +schema: + type: boolean +supported_on: +- chrome_os:137- +tags: [] +type: main +generate_device_proto: False \ No newline at end of file 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 6935e340..5aea00ff 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenKeyboardFocusHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenKeyboardFocusHighlightEnabled.yaml index 8b8aa57d..53fad706 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenKeyboardFocusHighlightEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenKeyboardFocusHighlightEnabled.yaml @@ -25,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/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 585669dc..b1e37d74 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 c16059b5..a8818e9c 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,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 33cfe901..dba40309 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,7 +28,7 @@ items: name: Docked value: 2 owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 e6bb2a9e..0501f82d 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenShowOptionsInSystemTrayMenu.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenShowOptionsInSystemTrayMenu.yaml index b1176a9d..cbb5f33c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenShowOptionsInSystemTrayMenu.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/DeviceLoginScreenShowOptionsInSystemTrayMenu.yaml @@ -19,8 +19,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- bartfab@chromium.org +- file://ash/accessibility/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 4931db10..63e8051f 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 36cd4a2e..be2f2efe 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/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 d02bb294..5343284e 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,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/EnhancedNetworkVoicesInSelectToSpeakAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/EnhancedNetworkVoicesInSelectToSpeakAllowed.yaml index c1b8a79b..e38cefa4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/EnhancedNetworkVoicesInSelectToSpeakAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/EnhancedNetworkVoicesInSelectToSpeakAllowed.yaml @@ -17,7 +17,7 @@ items: - caption: Disallow enhanced network text-to-speech voices when using Select-to-Speak value: false owners: -- file://ui/accessibility/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FaceGazeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FaceGazeEnabled.yaml new file mode 100755 index 00000000..ee9c9939 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FaceGazeEnabled.yaml @@ -0,0 +1,35 @@ +caption: Enable the face control accessibility feature +default: null +desc: |- + Enable the face control accessibility feature. When face control is active, you + can use your head to control the mouse cursor and use facial gestures to perform + system actions. This allows you to control your device hands-free. + + If this policy is set to enabled, face control will always be enabled. + + If this policy is set to disabled, face control will always be disabled. + + If you set this policy, users cannot change or override it. + + If this policy is left unset, face control 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 face control + value: true +- caption: Disable face control + value: false +- caption: Allow the user to decide + value: null +owners: +- akihiroota@chromium.org +- file://ash/accessibility/OWNERS +schema: + type: boolean +supported_on: +- chrome_os:137- +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FloatingAccessibilityMenuEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FloatingAccessibilityMenuEnabled.yaml index 29a5c224..2a600af0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FloatingAccessibilityMenuEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/FloatingAccessibilityMenuEnabled.yaml @@ -16,7 +16,7 @@ items: - caption: Do not show the floating accessibility menu in kiosk mode value: false owners: -- apotapchuk@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/HighContrastEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/HighContrastEnabled.yaml index eaaaea30..2bcf5bd5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/HighContrastEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/HighContrastEnabled.yaml @@ -17,8 +17,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardDefaultToFunctionKeys.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardDefaultToFunctionKeys.yaml index 3d25418e..1fb0e596 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardDefaultToFunctionKeys.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardDefaultToFunctionKeys.yaml @@ -15,8 +15,7 @@ items: - caption: Treat top-row keys as media keys, but allow user to change value: false owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardFocusHighlightEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardFocusHighlightEnabled.yaml index 00c82963..89d59439 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardFocusHighlightEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/KeyboardFocusHighlightEnabled.yaml @@ -25,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LargeCursorEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LargeCursorEnabled.yaml index 3464d02c..3ed622bb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LargeCursorEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LargeCursorEnabled.yaml @@ -17,8 +17,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/MonoAudioEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/MonoAudioEnabled.yaml index 455b48c6..78b9ce0c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/MonoAudioEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/MonoAudioEnabled.yaml @@ -25,7 +25,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ScreenMagnifierType.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ScreenMagnifierType.yaml index f25bcee4..ef082fb9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ScreenMagnifierType.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ScreenMagnifierType.yaml @@ -20,8 +20,7 @@ items: name: Docked value: 2 owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: enum: - 0 diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SelectToSpeakEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SelectToSpeakEnabled.yaml index 429168b3..51b0e6ac 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SelectToSpeakEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SelectToSpeakEnabled.yaml @@ -23,7 +23,7 @@ items: - caption: Allow the user to decide value: null owners: -- amraboelkher@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ShowAccessibilityOptionsInSystemTrayMenu.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ShowAccessibilityOptionsInSystemTrayMenu.yaml index 7746b200..b7e982fb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ShowAccessibilityOptionsInSystemTrayMenu.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/ShowAccessibilityOptionsInSystemTrayMenu.yaml @@ -20,6 +20,7 @@ items: value: null owners: - katie@chromium.org +- file://ash/accessibility/OWNERS - file://ui/accessibility/OWNERS schema: type: boolean diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SpokenFeedbackEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SpokenFeedbackEnabled.yaml index e98ac839..6ed9ba8c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SpokenFeedbackEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/SpokenFeedbackEnabled.yaml @@ -17,8 +17,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS -- rsorokin@chromium.org +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: 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 f6b9532d..c1a31f2e 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,7 +17,7 @@ items: - caption: Allow the user to decide value: null owners: -- file://components/policy/OWNERS +- file://ash/accessibility/OWNERS schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml index 9db00889..717e087c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementCaptionsEnabled.yaml @@ -1,14 +1,14 @@ caption: Configure Class Tools caption feature default: true desc: |- - Setting the policy specifies if teachers can use caption feature. + Setting the policy specifies if teachers can use caption feature. - If value is set to true or unset, selected teachers can caption their voice and send the transcription to students. + If value is set to true or unset, selected teachers can caption their voice and send the transcription to students. - If set to false they cannot access the feature. + If set to false they cannot access the feature. example_value: true features: - dynamic_refresh: true + dynamic_refresh: false per_profile: true items: - caption: Allow teachers to send transcription to students. @@ -20,7 +20,7 @@ owners: - aprilzhou@google.com schema: type: boolean -future_on: -- chrome_os +supported_on: +- chrome_os:137- tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml index 94c3e5eb..2bffb0dc 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementClassroomIntegrationEnabled.yaml @@ -3,12 +3,12 @@ default: true desc: |- Setting the policy specifies if teachers can connect to students using a Google Classroom class roster. See https://support.google.com/edu/classroom/answer/10495270. - If value set to true or unset, they can use Google Classroom class roster. + If value set to true or unset, they can use Google Classroom class roster. - If set to false they cannot access the feature. + If set to false they cannot access the feature. example_value: true features: - dynamic_refresh: true + dynamic_refresh: false per_profile: true items: - caption: Allow teachers to use Google Classroom class roster. @@ -20,7 +20,7 @@ owners: - aprilzhou@google.com schema: type: boolean -future_on: -- chrome_os +supported_on: +- chrome_os:137- tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml index 2cad72f8..5c8e65b9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementEnabled.yaml @@ -4,7 +4,7 @@ desc: |- Setting the policy specifies whether users use Class Tools for sending/receiving content, sending/receiving caption as students, teachers, or if class management tools is disabled for users. example_value: disabled features: - dynamic_refresh: true + dynamic_refresh: false per_profile: true items: - caption: Users are not able to use any of the Class Tools or be added to a Class Tools session. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml index f32590cd..e3cea487 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementNetworkRestrictionEnabled.yaml @@ -1,14 +1,14 @@ caption: Configure Class Tools network restriction -default: false +default: true desc: |- Setting the policy specifies if selected users' devices must be on a managed network in order to be part of Class Tools class. - If value set to true they must be on a managed network. + If value set to true or unset, they must be on a managed network. - If set to false or unset they can join without being on a managed network. + If set to false they can join without being on a managed network. example_value: True features: - dynamic_refresh: true + dynamic_refresh: false per_profile: true items: - caption: Require users' devices to be on a managed network in order to be part of Class Tools class @@ -20,7 +20,7 @@ owners: - aprilzhou@google.com schema: type: boolean -future_on: -- chrome_os +supported_on: +- chrome_os:137- tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml deleted file mode 100755 index 13b6e59f..00000000 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementSendingContentEnabled.yaml +++ /dev/null @@ -1,26 +0,0 @@ -caption: Configure Class Tools sending content feature -default: true -desc: |- - Setting the policy specifies if selected teachers can send and lock content on students' screens. - - If set to true of unset they can send and lock content. - - If set to false they cannot access the feature. -example_value: true -features: - dynamic_refresh: true - per_profile: true -items: -- caption: Allow teachers to send and lock content to students' screens - value: true -- caption: Prevent teachers from sending and locking content to students' screens - value: false -owners: -- cros-edu-eng@google.com -- aprilzhou@google.com -schema: - type: boolean -future_on: -- chrome_os -tags: [] -type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml index ceacc2ba..a6b2fb64 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Boca/ClassManagementViewScreenEnabled.yaml @@ -3,9 +3,9 @@ default: true desc: |- Setting the policy specifies if the selected teachers can remotely view students' screens. - If set to true or unset they can view students' screens. + If set to true or unset they can view students' screens. - If set to false they cannot access the feature. + If set to false they cannot access the feature. example_value: true features: dynamic_refresh: true @@ -20,7 +20,7 @@ owners: - aprilzhou@google.com schema: type: boolean -future_on: -- chrome_os +supported_on: +- chrome_os:137- tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml index 6e00ddae..753c7537 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml @@ -15,8 +15,8 @@ features: per_profile: true cloud_only: true user_only: true -future_on: -- chrome.* +supported_on: +- chrome.*:137- owners: - seblalancette@chromium.org - cbe-device-trust-eng@google.com diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml index 720841e1..6a67aa17 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml @@ -15,8 +15,8 @@ features: per_profile: true cloud_only: true user_only: true -future_on: -- chrome.* +supported_on: +- chrome.*:137- owners: - seblalancette@chromium.org - cbe-device-trust-eng@google.com diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultImagesSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultImagesSetting.yaml index f42045ef..64abfee5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultImagesSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultImagesSetting.yaml @@ -10,6 +10,7 @@ features: per_profile: true future_on: - fuchsia +- android items: - caption: Allow all sites to show all images name: AllowImages diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSmartCardConnectSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSmartCardConnectSetting.yaml new file mode 100755 index 00000000..2d7cc277 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSmartCardConnectSetting.yaml @@ -0,0 +1,33 @@ +caption: Control use of the Web Smart Card API +default: null +desc: |- + Setting the policy specifies whether Isolated Web Apps will by default be able to connect to smart card readers. + + Setting the policy to 3 or leaving it unset allows Isolated Web App origins to ask for permission to connect to smart card readers. Leaving it unset also allows users to change this setting. + + Setting the policy to 2 blocks Isolated Web App origins from connecting to smart card readers. + + This policy can be overridden for specific Isolated Web App origins using the SmartCardConnectAllowedForUrls and SmartCardConnectBlockedForUrls policies. + +example_value: 3 +features: + dynamic_refresh: true + per_profile: true +future_on: +- chrome_os +items: +- caption: Do not allow Isolated Web App origins to connect to smart card readers + name: BlockSmartCardConnect + value: 2 +- caption: Allow Isolated Web App origins to ask to connect to smart card readers. + name: AskSmartCardConnect + value: 3 +owners: +- file://content/browser/smart_card/OWNERS +schema: + enum: + - 2 + - 3 + type: integer +tags: [] +type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/GetDisplayMediaSetSelectAllScreensAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/GetDisplayMediaSetSelectAllScreensAllowedForUrls.yaml index f1fa0e9c..359aafdd 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/GetDisplayMediaSetSelectAllScreensAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/GetDisplayMediaSetSelectAllScreensAllowedForUrls.yaml @@ -1,4 +1,5 @@ caption: Enables auto-select for multi screen captures +deprecated: true desc: |- The getDisplayMediaSet API allows web applications to capture multiple surfaces at once. This policy unlocks the autoSelectAllScreens property for web applications at defined origins. @@ -20,7 +21,7 @@ schema: type: string type: array supported_on: -- chrome_os:102- +- chrome_os:102-136 - chrome.linux:111-123 tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesAllowedForUrls.yaml index 4b541ccd..5068bfe3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesAllowedForUrls.yaml @@ -15,6 +15,7 @@ features: per_profile: true future_on: - fuchsia +- android owners: - engedy@chromium.org - file://components/content_settings/OWNERS diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesBlockedForUrls.yaml index 6ebd8697..e81c0113 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ImagesBlockedForUrls.yaml @@ -15,6 +15,7 @@ features: per_profile: true future_on: - fuchsia +- android owners: - engedy@chromium.org - file://components/content_settings/OWNERS 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 index ddb28ecc..1f1ce827 100755 --- 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 @@ -1,8 +1,8 @@ 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. + 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 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. + This policy overrides the behavior of DefaultSmartCardConnectSetting and is overridden by SmartCardConnectBlockedForUrls. 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. 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 index 7ad71822..9e241619 100755 --- 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 @@ -1,8 +1,8 @@ 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. + 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 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. + This policy overrides the behavior of DefaultSmartCardConnectSetting and 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. 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 60004917..ed84ba0a 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 @@ -107,3 +107,4 @@ SmartCardConnectSettings: policies: - SmartCardConnectAllowedForUrls - SmartCardConnectBlockedForUrls + - DefaultSmartCardConnectSetting diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Edu/ContentTransferEnablementStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Edu/ContentTransferEnablementStatus.yaml index 03f9e5bc..a3a7056e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Edu/ContentTransferEnablementStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Edu/ContentTransferEnablementStatus.yaml @@ -27,7 +27,7 @@ features: dynamic_refresh: true per_profile: true owners: -- courtneywong@chromium.org +- agawronska@chromium.org - file://chrome/browser/ash/child_accounts/OWNERS schema: properties: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallAllowlist.yaml index a1bf1d26..20a826c5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallAllowlist.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallAllowlist.yaml @@ -12,6 +12,7 @@ features: dynamic_refresh: true per_profile: true future_on: +- android - fuchsia label: Extension IDs to exempt from the blocklist owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallBlocklist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallBlocklist.yaml index 63014da2..71ab98f1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallBlocklist.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallBlocklist.yaml @@ -12,6 +12,7 @@ features: dynamic_refresh: true per_profile: true future_on: +- android - fuchsia label: Extension IDs the user should be prevented from installing (or * for all) owners: 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 9530639f..4b7aacfa 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 @@ -26,6 +26,7 @@ features: dynamic_refresh: true per_profile: true future_on: +- android - fuchsia label: Extension/App IDs and update URLs to be silently installed owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/MandatoryExtensionsForIncognitoNavigation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/MandatoryExtensionsForIncognitoNavigation.yaml index 15944b94..9f0cecc1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/MandatoryExtensionsForIncognitoNavigation.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/MandatoryExtensionsForIncognitoNavigation.yaml @@ -14,6 +14,7 @@ features: per_profile: true future_on: - fuchsia +- chrome.* supported_on: - chrome_os:114- owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml index 861854fc..a07977cb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml @@ -1,9 +1,9 @@ -caption: Settings for Autofill Prediction Settings +caption: Settings for Autofill with AI desc: |- - Enables Autofill Prediction Settings. + Specifies whether users can let $1Google Chrome use Generative AI to better understand forms and help them fill more fields. - 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. + 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. 0 is the default value, except when noted below. 1 = Allow the feature to be used, but does not allow Google to improve models using users' content (including prompts, inputs, outputs, source materials, and written feedback). 1 is the default value for Enterprise users managed by Google Admin console and for Education accounts managed by Google Workspace. @@ -19,26 +19,26 @@ features: dynamic_refresh: true per_profile: true items: -- caption: Allow Autofill Prediction and improve AI models. +- caption: Allow autofill with AI and improve AI models. name: Allowed value: 0 -- caption: Allow Autofill Prediction without improving AI models. +- caption: Allow autofill with AI without improving AI models. name: AllowedWithoutLogging value: 1 -- caption: Do not allow Autofill Prediction. +- caption: Do not allow autofill with AI. name: Disabled value: 2 owners: - file://components/autofill_ai/OWNERS -- file://components/optimization_guide/OWNERS +- jkeitel@google.com schema: enum: - 0 - 1 - 2 type: integer -future_on: -- chrome.* -- chrome_os +supported_on: +- chrome.*:137- +- chrome_os:137- tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml index 30751e67..0d635f53 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml @@ -1,10 +1,14 @@ caption: Settings for Gemini integration desc: |- - Enables Gemini app integration + This setting allows Gemini app integrations. - 0/unset = Gemini integration will be available for users + 0/unset = Gemini integration will be available for users. - 1 = Gemini integration will not be available for users + 1 = Gemini integration will not be available for users. + + If the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. + + For more information, please check the Enterprise Release Notes (https://support.google.com/chrome/a/answer/7679408). owners: - salg@google.com - ssid@chromium.org @@ -12,7 +16,7 @@ owners: example_value: 1 future_on: - android -- chrome.* +- chrome.linux - chrome_os features: dynamic_refresh: true @@ -24,11 +28,14 @@ schema: - 0 - 1 items: -- caption: Enable Gemini integration. - name: Enabled +- caption: Allow Gemini integrations. + name: Allowed value: 0 -- caption: Do not enable Gemini integration. +- caption: Do not allow Gemini integrations. name: Disabled value: 1 default: 0 -tags: [] \ No newline at end of file +supported_on: +- chrome.win:137- +- chrome.mac:137- +tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml index d5435fea..9dcfb8a7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml @@ -1,7 +1,7 @@ caption: Set the default policy value for $1Google Chrome's covered generative AI features desc: |- - This policy defines the default setting for all covered generative AI features. For example, if this policy is set to value 1, then 1 will be the default setting for all covered generative AI features. It will not impact any manually set policy values. See https://support.google.com/chrome/a?p=generative_ai_settings for the list of covered features. + This policy defines the default setting for all covered generative AI features. For example, if this policy is set to value 1, then 1 will be the default setting for all covered generative AI features. It will not impact any manually set policy values. This setting will define the defaults for GeminiSettings and covered Chrome generative AI features. See https://support.google.com/chrome/a?p=generative_ai_settings for the list of covered features. 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. @@ -9,7 +9,7 @@ desc: |- 2 = Do not allow the feature. - If a covered feature does not have an equivalent policy value, the closest higher value will be used. Please review documentation for that feature for more details about how it interacts with values in this policy. + If a covered Chrome feature does not have an equivalent policy value, the closest higher value will be used. Some policies, e.g. GeminiSettings, only support the states Allowed and Not Allowed. If GenAiDefaultSettings policy is set to 0 or 1, this feature will be allowed. If policy is set to 2, this feature will not be allowed. Please review documentation for each feature for more details about how it interacts with values in this policy. For more information on data handling for generative AI features, please see https://support.google.com/chrome/a?p=generative_ai_settings. @@ -35,12 +35,14 @@ items: owners: - igorruvinov@chromium.org - file://components/policy/OWNERS +# LINT.IfChange schema: enum: - 0 - 1 - 2 type: integer +# LINT.ThenChange(//components/policy/core/browser/gen_ai_default_settings_policy_handler.cc, //chrome/browser/policy/configuration_policy_handler_list_factory.cc) supported_on: - android:130- - chrome.*:130- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BuiltInAIAPIsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BuiltInAIAPIsEnabled.yaml new file mode 100755 index 00000000..1f1a0459 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BuiltInAIAPIsEnabled.yaml @@ -0,0 +1,28 @@ +owners: +- leimy@chromium.org +- file://chrome/browser/ai/OWNERS +caption: |- + Allow pages to use the built-in AI APIs. +desc: |- + This policy controls if a page can use the built-in AI APIs (such as LanguageModel API, Summarization API, Writer API, and Rewriter API). + + If the policy is enabled or unset, the APIs are enabled to be used. + + If the policy is disabled, attempting using the APIs will result in an error. +supported_on: +- chrome.*:137- +- chrome_os:137- +features: + dynamic_refresh: true + per_profile: true +type: main +schema: + type: boolean +items: +- caption: Allow the usage of the built-in AI APIs. + value: true +- caption: Disallow the usage of the built-in AI APIs. + value: false +default: true +example_value: true +tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CopyPreventionSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CopyPreventionSettings.yaml index 64139037..aa2c8b42 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CopyPreventionSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CopyPreventionSettings.yaml @@ -24,7 +24,7 @@ future_on: - fuchsia owners: - domfc@chromium.org -- dpr-eng@google.com +- cbe-cep-eng@google.com schema: properties: disable: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml index b25b078f..be57b3d9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DataControlsRules.yaml @@ -125,7 +125,7 @@ features: owners: - file://chrome/browser/enterprise/data_controls/OWNERS - domfc@chromium.org -- dpr-eng@google.com +- cbe-cep-eng@google.com schema: items: properties: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailability.yaml index 2dce9652..4566f6df 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailability.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailability.yaml @@ -19,6 +19,7 @@ features: dynamic_refresh: true per_profile: true future_on: +- android - fuchsia items: - caption: Disallow usage of the Developer Tools on apps and extensions diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFirmwareUpdatesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFirmwareUpdatesEnabled.yaml new file mode 100755 index 00000000..0db11b0b --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFirmwareUpdatesEnabled.yaml @@ -0,0 +1,30 @@ +owners: +- skend@google.com +- chromeos-flex-eng@google.com +caption: Allow users to initiate firmware updates +desc: |- + This policy allows users to initiate any kind of firmware update. + + Setting the policy to Enabled allows users such as device owner to initiate firmware updates. + + Setting the policy to Disabled or leaving it unset prevents all users from applying firmware updates. + + This policy applies to firmware for external peripheral firmware updates and internal component firmware updates for Google ChromeOS Flex devices. Internal component firmware updates for $2Google ChromeOS devices are not affected by this policy. +future_on: +- chrome_os +device_only: true +features: + dynamic_refresh: true + per_profile: false +type: main +schema: + type: boolean +items: +- caption: Users may initiate firmware updates + value: true +- caption: Users may not initiate firmware updates + value: false +default: false +example_value: true +tags: ['google-sharing'] +generate_device_proto: True diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml index 7fbffe79..7434965d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml @@ -47,7 +47,7 @@ items: value: 4 label: Download restrictions owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - zmin@chromium.org schema: enum: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabel.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabel.yaml index 87fc7969..1e97d58c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabel.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabel.yaml @@ -1,4 +1,4 @@ -caption: Set a custom enterprise label +caption: Set a custom enterprise label for a managed profile default: null desc: |- This policy controls a custom label used to identify managed profiles. For managed profiles, this label will be shown next to the avatar in the toolbar. The custom label will not be translated. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabelForBrowser.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabelForBrowser.yaml new file mode 100755 index 00000000..c12eadc7 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseCustomLabelForBrowser.yaml @@ -0,0 +1,21 @@ +caption: Set a custom enterprise label for a managed browser +default: null +desc: |- + This policy controls a custom label used to indicate a managed browser. For managed browsers, this label will be shown in a management disclaimer on a footer on the New Tab page. The custom label will not be translated. + + When this policy is applied, any strings that surpass 16 characters will be truncated with a “...” Please refrain from using extended names. + + Note that this policy is only applied for managed browsers, so it will have no effect for managed users on unmanaged browsers. +example_value: Chromium +features: + dynamic_refresh: true + per_profile: false +future_on: +- chrome.* +owners: +- file://components/enterprise/OWNERS +- esalma@google.com +schema: + type: string +tags: [] +type: string 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 7ce631cd..80e89af3 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 @@ -1,4 +1,4 @@ -caption: Enterprise Logo URL +caption: Enterprise Logo URL for a managed profile default: null desc: |- A URL to an image that will be used as an enterprise badge for a managed profile. The URL must point to an image. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrlForBrowser.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrlForBrowser.yaml new file mode 100755 index 00000000..0f172630 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseLogoUrlForBrowser.yaml @@ -0,0 +1,21 @@ +caption: Enterprise Logo URL for a managed browser +default: null +desc: |- + A URL to an image that will be used as an enterprise badge for a managed browser. The URL must point to an image. + + It is recommended to use the favicon (example https://www.google.com/favicon.ico) or an icon no smaller than 48 x 48 px. + + Note that this policy is only applied for managed browsers, so it will have no effect for managed users on unmanaged browsers. +example_value: https://example.com/image.png +features: + dynamic_refresh: true + per_profile: false +future_on: +- chrome.* +owners: +- file://components/policy/OWNERS +- esalma@google.com +schema: + type: string +tags: [] +type: string 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 fae534ac..938a896f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseSearchAggregatorSettings.yaml @@ -12,7 +12,7 @@ desc: |- The search_url field specifies the URL on which to search. Enter the web address for the search engine's results page, and use '{searchTerms}' in place of the query. - The suggest_url field specifies the URL that provides search suggestions. If suggest_url contains '{searchTerms}', then Chrome will obtain search suggestions by a GET request to the URL replacing '{searchTerms}' with the user's search query. Otherwise, a POST request will be made and the user's query will be passed in the POST params under key 'query'. + The suggest_url field specifies the URL that provides search suggestions. A POST request will be made and the user's query will be passed in the POST params under key 'query'. The icon_url field specifies the URL to an image that will be used on the search suggestions. A default icon will be used when this field is not set. It's recommended to use a favicon (example https://www.google.com/favicon.ico). Supported image file formats: JPEG, PNG, and ICO. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MutationEventsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MutationEventsEnabled.yaml index c04e8604..8acb1d72 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MutationEventsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MutationEventsEnabled.yaml @@ -4,7 +4,7 @@ default: false desc: |- This policy provides a temporary opt-back-in to a deprecated and removed set of platform events called Mutation Events. When this policy is Enabled, mutation events will continue to be fired, even if they've been disabled by default for normal web users. When this policy is Disabled or unset, these events may not be fired. - This policy is a temporary workaround, and will be removed in M135. + This policy is a temporary workaround, and will no longer work in M137. example_value: true features: dynamic_refresh: true @@ -21,9 +21,9 @@ owners: schema: type: boolean supported_on: -- chrome.*:124- -- chrome_os:124- -- android:124- -- webview_android:124- +- chrome.*:124-136 +- chrome_os:124-136 +- android:124-136 +- webview_android:124-136 tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterManagementNoticeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterManagementNoticeEnabled.yaml new file mode 100755 index 00000000..365e2e5f --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterManagementNoticeEnabled.yaml @@ -0,0 +1,26 @@ +caption: Control the visibility of the management notice on the New Tab Page for managed browsers +default: true +desc: |- + This policy controls the visibility of the management notice within the footer of the New Tab Page (NTP). By default, the NTP footer displays information when the browser is managed by an organization (indicated by a building icon and "Managed by [domain name]"). This can be customized using the EnterpriseCustomLabelForBrowser and EnterpriseLogoUrlForBrowser policies. + + If this policy is left unset or set to true, managed browsers will display a “Managed by…” notice with an icon. + + If this policy is set to false, the management notice will be hidden. +example_value: true +features: + dynamic_refresh: true + per_profile: false +future_on: +- chrome.* +items: +- caption: Enable management notice on NTP Footer + value: true +- caption: Disable management notice on NTP Footer + value: false +owners: +- file://components/policy/OWNERS +- esalma@google.com +schema: + type: boolean +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterThemeAttributionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterThemeAttributionEnabled.yaml new file mode 100755 index 00000000..c02807d5 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NTPFooterThemeAttributionEnabled.yaml @@ -0,0 +1,26 @@ +caption: Control the visibility of the extension theme attribution on the New Tab Page for managed browsers +default: true +desc: |- + This policy controls the visibility of extension theme attribution within the footer of the New Tab Page (NTP) when the NTP is controlled by an extension. By default, the NTP footer displays information about the extension controlling the NTP. + + If this policy is left unset or set to true, browsers with an extension controlled NTP will show the extension name and a link to it. + + If this policy is set to false, the theme atribution will be hidden. +example_value: true +features: + dynamic_refresh: true + per_profile: true +future_on: +- chrome.* +items: +- caption: Enable extension theme attribution on NTP Footer + value: true +- caption: Disable extension theme attribution on NTP Footer + value: false +owners: +- file://components/policy/OWNERS +- esalma@google.com +schema: + type: boolean +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnBulkDataEntryEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnBulkDataEntryEnterpriseConnector.yaml index 99443519..b01d340b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnBulkDataEntryEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnBulkDataEntryEnterpriseConnector.yaml @@ -67,7 +67,7 @@ features: future_on: - fuchsia owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - domfc@chromium.org schema: items: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileAttachedEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileAttachedEnterpriseConnector.yaml index 1db4702e..f29d40df 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileAttachedEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileAttachedEnterpriseConnector.yaml @@ -70,7 +70,7 @@ features: future_on: - fuchsia owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - domfc@chromium.org schema: items: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileDownloadedEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileDownloadedEnterpriseConnector.yaml index 14dd0207..0d271a44 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileDownloadedEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileDownloadedEnterpriseConnector.yaml @@ -70,7 +70,7 @@ features: future_on: - fuchsia owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - drubery@chromium.org - domfc@chromium.org schema: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileTransferEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileTransferEnterpriseConnector.yaml index fb54a632..5063a8bb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileTransferEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnFileTransferEnterpriseConnector.yaml @@ -67,7 +67,7 @@ features: dynamic_refresh: true per_profile: false owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - sseckler@google.com - domfc@chromium.org schema: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml index ca4a234e..6a6a893a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OnSecurityEventEnterpriseConnector.yaml @@ -25,7 +25,7 @@ features: future_on: - fuchsia owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - domfc@chromium.org schema: items: @@ -51,11 +51,10 @@ schema: type: string type: object type: array -future_on: -- ios supported_on: - chrome.*:84- - chrome_os:84- - android:136- +- ios:137- tags: [] type: dict diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionalNotificationsAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionalNotificationsAllowed.yaml new file mode 100755 index 00000000..779cf123 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ProvisionalNotificationsAllowed.yaml @@ -0,0 +1,40 @@ +caption: Allows the app to use provisional notification authorization on iOS + +desc: |- + If the policy is set to Enabled or left unset, the app may use iOS's + "Provisional" notification authorization to present notifications in the iOS + Notification Center. + + If the policy is set to Disabled, the app will not use provisional + notifications. + +owners: +- scottyoder@google.com +- file://components/policy/OWNERS + +supported_on: +- ios:137- + +deprecated: false + +features: + dynamic_refresh: true + per_profile: true + +type: main + +schema: + type: boolean + +items: +- caption: Allow the app to use provisional notification authorization + value: true +- caption: Do not allow the app to use provisional notification authorization + value: false + +default: true + +example_value: true + +tags: [] + diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml similarity index 81% rename from tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml rename to tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml index 95b8cbd9..3946f434 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchSupersededReleaseAge.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml @@ -1,17 +1,17 @@ -caption: Notify users of superseded browser versions +caption: Relaunch fast if outdated desc: |- Specifies the minimum release age beyond which relaunch notifications are more aggressive. The age is calculated from the time the currently-running version was last served to clients. - If a new version is pending, a browser relaunch or device restart is needed, and the current version has been superseded for more than the number of days specified by this setting, the RelaunchNotificationPeriod policy is overridden to 2 hours. If the RelaunchNotification policy is set to 1 ('Required'), users will be forced to relaunch or restart at the end of the period. + If a browser relaunch or device restart is needed to finalize a pending update and the current version has been outdated for more than the number of days specified by this setting, the RelaunchNotificationPeriod policy is overridden to 2 hours. If the RelaunchNotification policy is set to 1 ('Required'), users will be forced to relaunch or restart at the end of the period. If not set, or if the release age cannot be determined, the RelaunchNotificationPeriod policy will be used for all updates. example_value: 7 features: dynamic_refresh: true per_profile: false -future_on: -- chrome.* -- chrome_os +supported_on: +- chrome.*:137- +- chrome_os:137- label: Time period (days) owners: - nicolaso@chromium.org 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 7c00d888..aafcd873 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 @@ -19,7 +19,7 @@ items: value: false label: Safe Browsing enable state for trusted sources owners: -- dpr-eng@google.com +- cbe-cep-eng@google.com - zmin@chromium.org schema: type: boolean diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml index 696a62a9..2e9b6ad1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableList.yaml @@ -1,9 +1,9 @@ caption: Configure the camera, browser settings, os settings, scanning, web store, - canvas, explore, crosh, gallery, terminal and recorder features to be disabled + canvas, explore, crosh, gallery, terminal, recorder, print jobs, key_shortcuts, gmail, google_docs, google_slides, google_sheets, google_drive, google_keep, google_calendar, google_chat, youtube, google_maps, calculator and text_editor features to be disabled desc: |- Allows you to set a list of $2Google ChromeOS features to be disabled. - Disabling any of these features means that the user can't access it from the UI and will see it as "disabled by admin". The user experience of disabled features is decided by SystemFeaturesDisableMode + Disabling any of these features means that the user can't access it from the UI. In user sessions, the disabled features are hidden in the UI. The user experience of disabled features in Managed Guest Sessions (MGS) is decided by SystemFeaturesDisableMode; by default the users will see them as "disabled by admin". If the policy is left not set, all $2Google ChromeOS features will be enabled by default and the user can use any of them. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableMode.yaml index 0462bd15..ec04046d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SystemFeaturesDisableMode.yaml @@ -1,13 +1,13 @@ caption: Set the user experience of disabled features default: blocked desc: |- - Controls the user experience of disabled features listed in SystemFeaturesDisableList. + Controls the user experience of disabled features listed in SystemFeaturesDisableList for Managed Guest Sessions (MGS). If this policy is set to "blocked", the disabled features will become unusable but still visible to users. If this policy is set to "hidden", the disabled features will become unusable and invisible to users. - If this policy is left unset or has an invalid value, the disable mode of system features will be "blocked". + If this policy is left unset or has an invalid value, the disable mode of system features will be "blocked" in MGS, and "hidden" in user sessions. example_value: blocked features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/ZstdContentEncodingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/ZstdContentEncodingEnabled.yaml index 317495fd..3a2de41e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/ZstdContentEncodingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/ZstdContentEncodingEnabled.yaml @@ -1,5 +1,7 @@ caption: Enable zstd content-encoding support desc: |- + This policy is temporary and will no longer work starting in M137. + This feature enables the use of "zstd" in the Accept-Encoding request header, and support for decompressing zstd-compressed web content. @@ -9,8 +11,6 @@ desc: |- compressed with zstd. Setting the policy to Disabled turns off the zstd content-encoding feature. - - This policy is intended to be temporary and will be removed in the future. default: true example_value: true features: @@ -29,8 +29,8 @@ future_on: schema: type: boolean supported_on: -- android:119- -- chrome.*:119- -- chrome_os:119- +- android:119-136 +- chrome.*:119-136 +- chrome_os:119-136 tags: [] type: main 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 870c8fc2..30db2a88 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 @@ -1,5 +1,6 @@ caption: Enable adaptive charging model to hold charging process to extend battery life +deprecated: true default: true default_for_enterprise_users: false desc: |- @@ -26,9 +27,10 @@ items: ChromeOS value: false owners: -- thanhdng@chromium.org +- chromeos-power-team@google.com +- jingmuli@google.com - napper@chromium.org -- dbasehore@chromium.org +- thanhdng@chromium.org schema: type: boolean supported_on: 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 index 6cd039f6..a67827f4 100755 --- 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 @@ -2,19 +2,22 @@ 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. + Leaving the policy unset - Users can use Adaptive Charging toggle button to enable/disable Adaptive Charging. + 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. + If the DevicePowerBatteryChargingOptimization policy is set, it takes precedence over the DevicePowerAdaptiveChargingEnabled policy. - The DevicePowerBatteryChargingOptimization and DevicePowerAdaptiveChargingEnabled polices always take precedence over user settings. + If the DevicePowerBatteryChargingOptimization policy is not set, then the DevicePowerAdaptiveChargingEnabled policy controls whether the adaptive charging feature is enabled or disabled. + DevicePowerAdaptiveChargingEnabled will be deprecated. device_only: true example_value: 1 -default: 1 +default: null features: dynamic_refresh: true per_profile: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/.group.details.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/.group.details.yaml new file mode 100755 index 00000000..b6be7cd4 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/.group.details.yaml @@ -0,0 +1,2 @@ +caption: Sharing Settings +desc: Configure policies to control whether user is allowed to access shared data and features. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml new file mode 100755 index 00000000..b67ec0b4 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml @@ -0,0 +1,37 @@ +caption: Tab group sharing settings +desc: |- + Control whether an entreprise user can access tab group sharing feature in Chrome. + + Tab group sharing feature allows user to share and collaborate in tab groups. + + Setting the policy to 0 or not set, indicates that tab groups can be shared. + Setting the policy to 1, indicates that tab groups can not be shared. +owners: +- haileywang@google.com +- file://components/collaboration/OWNERS +future_on: +- android +- chrome.* +- chrome_os +- ios +features: + cloud_only: true + dynamic_refresh: true + per_profile: true + user_only: true +type: int-enum +schema: + enum: + - 0 + - 1 + type: integer +items: +- caption: Use the Shared Tab Group feature. + name: UseSharedTabGroup + value: 0 +- caption: Do not use the Shared Tab Group feature. + name: DoNotUseSharedTabGroup + value: 1 +default: 0 +example_value: 0 +tags: [] diff --git a/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc b/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc index 2896b2b1..54483215 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 @@ -155,6 +155,7 @@ #include "content/public/browser/javascript_dialog_manager.h" #include "content/public/browser/keyboard_event_processing_result.h" #include "content/public/browser/navigation_details.h" +#include "content/public/browser/permission_descriptor_util.h" #include "content/public/browser/preload_pipeline_info.h" #include "content/public/browser/preview_cancel_reason.h" #include "content/public/browser/render_widget_host_iterator.h" @@ -230,16 +231,21 @@ #endif // BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_ANDROID) +#include "base/android/build_info.h" +#include "base/check.h" #include "content/browser/android/java_interfaces_impl.h" #include "content/browser/android/nfc_host.h" #include "content/browser/navigation_transitions/back_forward_transition_animation_manager_android.h" #include "content/browser/web_contents/web_contents_android.h" #include "content/browser/web_contents/web_contents_view_android.h" +#include "content/public/browser/android/child_process_importance.h" #include "services/device/public/mojom/nfc.mojom.h" #include "services/service_manager/public/cpp/interface_provider.h" #include "ui/android/event_forwarder.h" #include "ui/android/view_android.h" #include "ui/base/device_form_factor.h" +#else // !BUILDFLAG(IS_ANDROID) +#include "ui/accessibility/accessibility_features.h" #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) @@ -521,8 +527,10 @@ bool IsWindowManagementGranted(RenderFrameHost* host) { CHECK(permission_controller); return permission_controller->GetPermissionStatusForCurrentDocument( - blink::PermissionType::WINDOW_MANAGEMENT, host) == - blink::mojom::PermissionStatus::GRANTED; + content::PermissionDescriptorUtil:: + CreatePermissionDescriptorForPermissionType( + blink::PermissionType::WINDOW_MANAGEMENT), + host) == blink::mojom::PermissionStatus::GRANTED; } // Returns true if `host` has the Automatic Fullscreen permission granted. @@ -532,8 +540,10 @@ bool IsAutomaticFullscreenGranted(RenderFrameHost* host) { CHECK(permission_controller); return permission_controller->GetPermissionStatusForCurrentDocument( - blink::PermissionType::AUTOMATIC_FULLSCREEN, host) == - blink::mojom::PermissionStatus::GRANTED; + content::PermissionDescriptorUtil:: + CreatePermissionDescriptorForPermissionType( + blink::PermissionType::AUTOMATIC_FULLSCREEN), + host) == blink::mojom::PermissionStatus::GRANTED; } // Adjust the requested `rect` for opening or placing a window and return the id @@ -2174,12 +2184,6 @@ void WebContentsImpl::ResetAccessibility() { }); } -void WebContentsImpl::AddAccessibilityModeForTesting(ui::AXMode mode) { - ui::AXMode new_mode(accessibility_mode_); - new_mode |= mode; - SetAccessibilityMode(new_mode); -} - // Helper class used by WebContentsImpl::RequestAXTreeSnapshot. // Handles the callbacks from parallel snapshot requests to each frame, // and feeds the results to an AXTreeCombiner, which converts them into a @@ -3063,10 +3067,20 @@ WebContentsImpl::GetPictureInPictureOptions() const { } #if BUILDFLAG(IS_ANDROID) +ChildProcessImportance +WebContentsImpl::GetPrimaryMainFrameImportanceForTesting() { + return GetPrimaryMainFrame()->GetRenderWidgetHost()->importance(); +} + void WebContentsImpl::SetPrimaryMainFrameImportance( ChildProcessImportance importance) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::SetMainFrameImportance", "importance", static_cast(importance)); + CHECK(IsPerceptibleImportanceSupported() || + importance != ChildProcessImportance::PERCEPTIBLE) + << "Setter of ChildProcessImportance::PERCEPTIBLE should be aware of the " + "support and avoid using PERCEPTIBLE if " + "IsPerceptibleImportanceSupported() is false"; GetPrimaryMainFrame()->GetRenderWidgetHost()->SetImportance(importance); } #endif @@ -3627,6 +3641,10 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #if BUILDFLAG(IS_ANDROID) prefs.device_scale_adjustment = GetDeviceScaleAdjustment(min_width_in_dp); + + if (base::FeatureList::IsEnabled(blink::features::kForceOffTextAutosizing)) { + prefs.text_autosizing_enabled = false; + } #endif // BUILDFLAG(IS_ANDROID) // GuestViews in the same StoragePartition need to find each other's frames. @@ -3640,6 +3658,13 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( prefs.payment_request_enabled = base::FeatureList::IsEnabled(features::kWebPayments); +#if BUILDFLAG(IS_ANDROID) + if (base::FeatureList::IsEnabled(features::kWebauthnDisabledOnAuto) && + base::android::BuildInfo::GetInstance()->is_automotive()) { + prefs.disable_webauthn = true; + } +#endif // BUILDFLAG(IS_ANDROID) + GetContentClient()->browser()->OverrideWebPreferences( this, *main_frame->GetSiteInstance(), &prefs); return prefs; @@ -3869,6 +3894,11 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, blink::FramePolicy primary_main_frame_policy) { TRACE_EVENT0("content", "WebContentsImpl::Init"); + // Set initial autofill mode. Prefs may update this value later but for + // pre-warmed WebContents that update happens too late. + renderer_preferences_.uses_platform_autofill = + params.initially_use_platform_autofill; + is_in_preview_mode_ = params.preview_mode; creator_location_ = params.creator_location; #if BUILDFLAG(IS_ANDROID) @@ -3945,7 +3975,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, screen_orientation_provider_ = std::make_unique(this); -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) +#if BUILDFLAG(IS_ANDROID) || (BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_IOS_TVOS)) DateTimeChooser::CreateDateTimeChooser(this); #endif @@ -6491,6 +6521,12 @@ void WebContentsImpl::SaveFrameWithHeaders( params->set_download_source(download::DownloadSource::WEB_CONTENTS_API); params->set_isolation_info(rfhi.ComputeIsolationInfoForNavigation(url)); + // TODO(crbug.com/382291442): Remove feature guarding once launched. + if (base::FeatureList::IsEnabled( + network::features::kPopulatePermissionsPolicyOnRequest)) { + params->set_permissions_policy(rfhi.GetPermissionsPolicy()); + } + FrameTreeNode* frame_tree_node = rfhi.frame_tree_node(); FrameNavigationEntry* frame_navigation_entry = frame_tree_node->frame_tree() @@ -7258,9 +7294,9 @@ gfx::NativeWindow WebContentsImpl::GetOwnerNativeWindow() { return GetTopLevelNativeWindow(); } -media::PictureInPictureEventsInfo::AutoPipReason -WebContentsImpl::GetAutoPipReason() const { - return GetContentClient()->browser()->GetAutoPipReason(*this); +media::PictureInPictureEventsInfo::AutoPipInfo WebContentsImpl::GetAutoPipInfo() + const { + return GetContentClient()->browser()->GetAutoPipInfo(*this); } void WebContentsImpl::OnKeepAliveRequestCreated( @@ -7358,6 +7394,19 @@ void WebContentsImpl::OnInvalidInputEventSource( iter->second->OnInvalidInputEventSource(); } +void WebContentsImpl::StateOnOverscrollTransfer( + const viz::FrameSinkId& frame_sink_id, + blink::mojom::DidOverscrollParamsPtr params) { + auto iter = created_widgets_.find(frame_sink_id); + // This adds a safeguard against race condition where a RenderWidgetHostImpl + // is being destroyed & removed from |created_widgets_|, but Viz may still + // send a mojo call referencing it. + if (iter == created_widgets_.end()) { + return; + } + iter->second->DidOverscroll(std::move(params)); +} + void WebContentsImpl::DidNavigateMainFramePreCommit( NavigationHandle* navigation_handle, bool navigation_is_within_page) { @@ -8610,7 +8659,8 @@ void WebContentsImpl::RunJavaScriptDialog( for (auto* handler : page_handlers) { handler->DidRunJavaScriptDialog( - render_frame_host->GetLastCommittedURL(), normalized_message, + render_frame_host->GetLastCommittedURL(), + render_frame_host->devtools_frame_token(), normalized_message, default_prompt, dialog_type, has_non_devtools_handlers, base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false)); } @@ -8713,7 +8763,8 @@ void WebContentsImpl::RunBeforeUnloadConfirm( GURL frame_url = render_frame_host->GetLastCommittedURL(); for (auto* handler : page_handlers) { handler->DidRunBeforeUnloadConfirm( - frame_url, has_non_devtools_handlers, + frame_url, render_frame_host->devtools_frame_token(), + has_non_devtools_handlers, base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false)); } @@ -9315,6 +9366,96 @@ void WebContentsImpl::DidStopLoading() { #endif } +ui::AXTreeUpdate WebContentsImpl::RequestAXTreeSnapshotWithinBrowserProcess() { + ui::BrowserAccessibilityManager* root_manager = + GetRootBrowserAccessibilityManager(); + // A page can be fully loaded before a user turns on accessibility services, + // and we can be in a transient state waiting for managers. + if (!root_manager || !root_manager->ax_tree()) { + return ui::AXTreeUpdate(); + } + + ui::AXTreeUpdate combined_update; + ui::AXTreeCombiner combiner; + + GetPrimaryMainFrame()->ForEachRenderFrameHostImplWithAction( + [this, &combiner](RenderFrameHostImpl* rfhi) { + ui::BrowserAccessibilityManager* manager = + rfhi->browser_accessibility_manager(); + if (!manager) { + return RenderFrameHost::FrameIterationAction::kContinue; + } + + ui::AXTree* tree = manager->ax_tree(); + if (!tree || !tree->root()) { + return RenderFrameHost::FrameIterationAction::kContinue; + } + + ui::AXTreeUpdate update_for_frame; + update_for_frame.root_id = tree->root()->id(); + update_for_frame.tree_data = tree->data(); + + std::vector nodes; + RecursivelyConstructAXTree(tree->root(), nodes); + update_for_frame.nodes = nodes; + + combiner.AddTree(update_for_frame, rfhi->AccessibilityIsRootFrame()); + + return RenderFrameHost::FrameIterationAction::kContinue; + }); + + // Combine all the individual frame tree updates into one. + combiner.Combine(); + CHECK(combiner.combined()); + combined_update = std::move(combiner.combined().value()); + return combined_update; +} + +void WebContentsImpl::RecursivelyConstructAXTree( + ui::AXNode* node, + std::vector& nodes) { + nodes.push_back(node->data()); + + for (auto iter = node->AllChildrenBegin(); iter != node->AllChildrenEnd(); + ++iter) { + RecursivelyConstructAXTree(&(*iter), nodes); + } +} + +void WebContentsImpl::ApplyAXTreeFixingResult(ui::AXTreeID tree_id, + ui::AXNodeID node_id, + ax::mojom::Role role) { +// The AXTreeFixing feature is not currently available on Android. +#if !BUILDFLAG(IS_ANDROID) + CHECK(features::IsAXTreeFixingEnabled()); + + GetPrimaryMainFrame()->ForEachRenderFrameHostImplWithAction( + [tree_id, node_id, role](RenderFrameHostImpl* rfhi) { + ui::BrowserAccessibilityManager* manager = + rfhi->browser_accessibility_manager(); + if (!manager) { + return RenderFrameHost::FrameIterationAction::kContinue; + } + + ui::AXTree* tree = manager->ax_tree(); + if (!tree || !tree->root()) { + return RenderFrameHost::FrameIterationAction::kContinue; + } + + ui::AXNode* node = manager->ax_tree()->GetFromId(node_id); + if (!node) { + return RenderFrameHost::FrameIterationAction::kContinue; + } + + // Update the node's role and stop iterating. + ui::AXNodeData new_data = node->data(); + new_data.role = role; + node->SetData(new_data); + return RenderFrameHost::FrameIterationAction::kStop; + }); +#endif +} + void WebContentsImpl::DidChangeLoadProgressForMainFrame( RenderFrameHostImpl* render_frame_host) { OPTIONAL_TRACE_EVENT0("content", @@ -10384,7 +10525,8 @@ void WebContentsImpl::OnDialogClosed(int render_process_id, std::vector page_handlers = protocol::PageHandler::EnabledForWebContents(this); for (auto* handler : page_handlers) { - handler->DidCloseJavaScriptDialog(success, user_input); + handler->DidCloseJavaScriptDialog(rfh->devtools_frame_token(), + success, user_input); } is_showing_javascript_dialog_ = false; @@ -11769,6 +11911,7 @@ float WebContentsImpl::GetCurrentTouchSequenceYOffset() { std::unique_ptr WebContentsImpl::StartPrefetch( const GURL& prefetch_url, bool use_prefetch_proxy, + const std::string& embedder_histogram_suffix, const blink::mojom::Referrer& referrer, const std::optional& referring_origin, std::optional no_vary_search_hint, @@ -11789,9 +11932,10 @@ std::unique_ptr WebContentsImpl::StartPrefetch( PrefetchType prefetch_type(PreloadingTriggerType::kEmbedder, use_prefetch_proxy); auto container = std::make_unique( - *this, prefetch_url, prefetch_type, referrer, referring_origin, - std::move(no_vary_search_hint), std::move(preload_pipeline_info), - std::move(attempt), holdback_status_override); + *this, prefetch_url, prefetch_type, embedder_histogram_suffix, referrer, + referring_origin, std::move(no_vary_search_hint), + std::move(preload_pipeline_info), std::move(attempt), + holdback_status_override); return prefetch_service->AddPrefetchContainerWithHandle(std::move(container)); } diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc index 27d2f0de..ff238af6 100755 --- a/tools/under-control/src/content/child/runtime_features.cc +++ b/tools/under-control/src/content/child/runtime_features.cc @@ -207,6 +207,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { kSetOnlyIfOverridden}, {wf::EnableFedCm, raw_ref(features::kFedCmAuthz), kSetOnlyIfOverridden}, + {wf::EnableFedCmAutofill, raw_ref(features::kFedCmAutofill), + kDefault}, {wf::EnableFedCmDelegation, raw_ref(features::kFedCmDelegation), kDefault}, {wf::EnableFedCmIdPRegistration, @@ -252,8 +254,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, - {wf::EnablePushMessagingSubscriptionChange, - raw_ref(features::kPushSubscriptionChangeEvent)}, {wf::EnableSecurePaymentConfirmation, raw_ref(features::kSecurePaymentConfirmation)}, {wf::EnableSecurePaymentConfirmationDebug, @@ -268,6 +268,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kTouchDragAndContextMenu)}, {wf::EnableWebAuthenticationAmbient, raw_ref(device::kWebAuthnAmbientSignin)}, + {wf::EnableWebAuthenticationImmediateGet, + raw_ref(device::kWebAuthnImmediateGet), kSetOnlyIfOverridden}, {wf::EnableWebAuthenticationConditionalCreate, raw_ref(device::kWebAuthnPasskeyUpgrade)}, {wf::EnableWebBluetooth, raw_ref(features::kWebBluetooth), @@ -317,6 +319,10 @@ void SetRuntimeFeaturesFromChromiumFeatures() { *mapping.chromium_feature, mapping.option, mapping.feature_enabler); } + if (features::IsPushSubscriptionChangeEventEnabled()) { + wf::EnablePushMessagingSubscriptionChange(true); + } + // TODO(crbug.com/40571563): Cleanup the inconsistency between custom WRF // enabler function and using feature string name with // EnableFeatureFromString. @@ -372,13 +378,11 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {"OriginIsolationHeader", raw_ref(features::kOriginIsolationHeader)}, {"ReduceAcceptLanguage", raw_ref(network::features::kReduceAcceptLanguage)}, - {"Serial", + {"RelatedWebsitePartitionAPI", + raw_ref(net::features::kRelatedWebsitePartitionAPI)}, #if BUILDFLAG(IS_ANDROID) - raw_ref(device::features::kBluetoothRfcommAndroid) -#else - raw_ref(device::features::kSerial) + {"Serial", raw_ref(device::features::kBluetoothRfcommAndroid)}, #endif - }, {"SerialPortConnected", raw_ref(features::kSerialPortConnected)}, {"SignatureBasedIntegrity", raw_ref(network::features::kSRIMessageSignatureEnforcement)}, @@ -406,6 +410,9 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(webnn::mojom::features:: kExperimentalWebMachineLearningNeuralNetwork), kSetOnlyIfOverridden}, +#if BUILDFLAG(IS_ANDROID) + {"WebAppLaunchQueue", raw_ref(features::kAndroidWebAppLaunchHandler)}, +#endif {"WebAuthenticationNewBfCacheHandlingBlink", raw_ref(device::kWebAuthnNewBfCacheHandling)}}; for (const auto& mapping : runtimeFeatureNameToChromiumFeatureMapping) { @@ -461,8 +468,6 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { {wrf::EnableScriptedSpeechSynthesis, switches::kDisableSpeechSynthesisAPI, false}, {wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false}, - {wrf::EnableMutationEvents, blink::switches::kMutationEventsEnabled, - true}, {wrf::EnableKeyboardFocusableScrollers, blink::switches::kKeyboardFocusableScrollersEnabled, true}, {wrf::EnableKeyboardFocusableScrollers, 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 e2382e97..9c36ad70 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 @@ -242,6 +242,7 @@ void ContentBrowserClient::OverrideURLLoaderFactoryParams( BrowserContext* browser_context, const url::Origin& origin, bool is_for_isolated_world, + bool is_for_service_worker, network::mojom::URLLoaderFactoryParams* factory_params) {} void ContentBrowserClient::GetAdditionalViewSourceSchemes( @@ -1069,9 +1070,7 @@ ContentBrowserClient::CreateURLLoaderThrottles( std::vector> ContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( - const network::ResourceRequest& request, BrowserContext* browser_context, - const base::RepeatingCallback& wc_getter, FrameTreeNodeId frame_tree_node_id) { return std::vector>(); } @@ -1354,9 +1353,9 @@ ContentBrowserClient::CreateWindowForVideoPictureInPicture( return nullptr; } -media::PictureInPictureEventsInfo::AutoPipReason -ContentBrowserClient::GetAutoPipReason(const WebContents& web_contents) const { - return media::PictureInPictureEventsInfo::AutoPipReason::kUnknown; +media::PictureInPictureEventsInfo::AutoPipInfo +ContentBrowserClient::GetAutoPipInfo(const WebContents& web_contents) const { + return media::PictureInPictureEventsInfo::AutoPipInfo(); } void ContentBrowserClient::RegisterRendererPreferenceWatcher( @@ -1835,15 +1834,15 @@ void ContentBrowserClient::NotifyMultiCaptureStateChanged( const std::string& label, MultiCaptureChanged state) {} -bool ContentBrowserClient::ShouldEnableDips(BrowserContext* browser_context) { +bool ContentBrowserClient::ShouldEnableBtm(BrowserContext* browser_context) { return true; } -uint64_t ContentBrowserClient::GetDipsRemoveMask() { - return kDefaultDipsRemoveMask; +uint64_t ContentBrowserClient::GetBtmRemoveMask() { + return kDefaultBtmRemoveMask; } -bool ContentBrowserClient::ShouldDipsDeleteInteractionRecords( +bool ContentBrowserClient::ShouldBtmDeleteInteractionRecords( uint64_t remove_mask) { return remove_mask & BrowsingDataRemover::DATA_TYPE_COOKIES; } @@ -1855,6 +1854,7 @@ bool ContentBrowserClient::ShouldSuppressAXLoadComplete(RenderFrameHost* rfh) { void ContentBrowserClient::BindAIManager( BrowserContext* browser_context, base::SupportsUserData* context_user_data, + RenderFrameHost* rfh, mojo::PendingReceiver receiver) { EchoAIManagerImpl::Create(std::move(receiver)); } @@ -1930,6 +1930,7 @@ bool ContentBrowserClient::IsSaveableNavigation( #if BUILDFLAG(IS_WIN) void ContentBrowserClient::OnUiaProviderRequested(bool uia_provider_enabled) {} +void ContentBrowserClient::OnUiaProviderDisabled() {} #endif bool ContentBrowserClient::AllowNonActivatedCrossOriginPaintHolding() { @@ -1968,7 +1969,6 @@ std::unique_ptr ContentBrowserClient::MaybeCreateKeepAliveRequestTracker( const network::ResourceRequest& request, std::optional ukm_source_id, - bool is_attribution_request, KeepAliveRequestTracker::IsContextDetachedCallback is_context_detached_callback) { return nullptr; diff --git a/tools/under-control/src/extensions/common/api/socket.idl b/tools/under-control/src/extensions/common/api/socket.idl index 0d42717d..9ca3e99a 100755 --- a/tools/under-control/src/extensions/common/api/socket.idl +++ b/tools/under-control/src/extensions/common/api/socket.idl @@ -361,7 +361,8 @@ namespace socket { // multicast loopback mode. On Windows, the applications with loopback off // will not RECEIVE the loopback packets; while on Unix-like systems, the // applications with loopback off will not SEND the loopback packets to - // other applications on the same host. See MSDN: http://goo.gl/6vqbj + // other applications on the same host. See MSDN: + // https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2 // // Calling this method does not require multicast permissions. // diff --git a/tools/under-control/src/extensions/common/api/sockets_udp.idl b/tools/under-control/src/extensions/common/api/sockets_udp.idl index 5dbcb601..1422656f 100755 --- a/tools/under-control/src/extensions/common/api/sockets_udp.idl +++ b/tools/under-control/src/extensions/common/api/sockets_udp.idl @@ -295,7 +295,8 @@ namespace sockets.udp { // multicast loopback mode. On Windows, the applications with loopback off // will not RECEIVE the loopback packets; while on Unix-like systems, the // applications with loopback off will not SEND the loopback packets to - // other applications on the same host. See MSDN: http://goo.gl/6vqbj + // other applications on the same host. See MSDN: + // https://learn.microsoft.com/en-us/windows/win32/winsock/ip-multicast-2 // // Calling this method does not require multicast permissions. // diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc index 8014bb16..616f639c 100755 --- a/tools/under-control/src/services/network/network_context.cc +++ b/tools/under-control/src/services/network/network_context.cc @@ -27,6 +27,7 @@ #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" +#include "base/memory/scoped_refptr.h" #include "base/metrics/histogram_functions.h" #include "base/not_fatal_until.h" #include "base/sequence_checker.h" @@ -65,6 +66,7 @@ #include "net/base/network_delegate.h" #include "net/base/network_isolation_key.h" #include "net/base/port_util.h" +#include "net/base/reconnect_notifier.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "net/cert/caching_cert_verifier.h" #include "net/cert/cert_verifier.h" @@ -84,6 +86,7 @@ #include "net/http/http_auth_preferences.h" #include "net/http/http_auth_scheme.h" #include "net/http/http_cache.h" +#include "net/http/http_network_layer.h" #include "net/http/http_network_session.h" #include "net/http/http_request_headers.h" #include "net/http/http_server_properties.h" @@ -100,6 +103,7 @@ #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" #include "services/network/brokered_client_socket_factory.h" +#include "services/network/connection_change_observer.h" #include "services/network/cookie_manager.h" #include "services/network/data_remover_util.h" #include "services/network/device_bound_session_manager.h" @@ -131,6 +135,7 @@ #include "services/network/public/mojom/clear_data_filter.mojom.h" #include "services/network/public/mojom/cookie_encryption_provider.mojom.h" #include "services/network/public/mojom/network_context.mojom.h" +#include "services/network/public/mojom/reconnect_event_observer.mojom-forward.h" #include "services/network/public/mojom/reporting_service.mojom.h" #include "services/network/public/mojom/trust_tokens.mojom-forward.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" @@ -1013,7 +1018,9 @@ void NetworkContext::ResetURLLoaderFactories() { std::vector factories; factories.reserve(url_loader_factories_.size()); for (const auto& factory : url_loader_factories_) { - factories.push_back(factory.get()); + if (!factory->ShouldIgnoreFactoryReset()) { + factories.push_back(factory.get()); + } } for (auto* factory : factories) { factory->ClearBindings(); @@ -1056,6 +1063,15 @@ void NetworkContext::OnRCMDisconnect( restricted_cookie_managers_.erase(it); } +void NetworkContext::RemoveConnectionChangeObserver( + const net::ConnectionChangeNotifier::Observer* observer) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + auto it = connection_change_observers_.find(observer); + if (it != connection_change_observers_.end()) { + connection_change_observers_.erase(it); + } +} + void NetworkContext::OnComputedFirstPartySetMetadata( mojo::PendingReceiver receiver, mojom::RestrictedCookieManagerRole role, @@ -1733,59 +1749,6 @@ void NetworkContext::SetCTPolicy(mojom::CTPolicyPtr ct_policy) { ct_policy->excluded_spkis); } -int NetworkContext::CheckCTRequirements( - net::CertVerifyResult& cert_verify_result, - const net::HostPortPair& host_port_pair, - CTVerificationMode ct_verification_mode) { - net::X509Certificate* verified_cert = cert_verify_result.verified_cert.get(); - - net::TransportSecurityState::CTRequirementsStatus ct_requirement_status = - url_request_context_->transport_security_state()->CheckCTRequirements( - 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); - - if (url_request_context_->sct_auditing_delegate()) { - url_request_context_->sct_auditing_delegate()->MaybeEnqueueReport( - host_port_pair, verified_cert, cert_verify_result.scts); - } - - switch (ct_requirement_status) { - case net::TransportSecurityState::CT_REQUIREMENTS_NOT_MET: - return net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED; - case net::TransportSecurityState::CT_REQUIREMENTS_MET: - return net::OK; - case net::TransportSecurityState::CT_NOT_REQUIRED: - switch (ct_verification_mode) { - case CTVerificationMode::kTlsCertificate: - return net::OK; - case CTVerificationMode::kSignedExchange: - // Proceed. - break; - } - // CT is not required if the certificate does not chain to a publicly - // trusted root certificate. - if (!cert_verify_result.is_issued_by_known_root) { - return net::OK; - } - // For old certificates (issued before 2018-05-01), - // CheckCTRequirements() may return CT_NOT_REQUIRED, so we check the - // compliance status here. - // TODO(crbug.com/40580363): Remove this condition once we require - // signing certificates to have CanSignHttpExchanges extension, because - // such certificates should be naturally after 2018-05-01. - if (cert_verify_result.policy_compliance == - net::ct::CTPolicyCompliance::CT_POLICY_COMPLIES_VIA_SCTS || - cert_verify_result.policy_compliance == - net::ct::CTPolicyCompliance::CT_POLICY_BUILD_NOT_TIMELY) { - return net::OK; - } - // Require CT compliance, by overriding CT_NOT_REQUIRED and treat it as - // ERR_CERTIFICATE_TRANSPARENCY_REQUIRED. - return net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED; - } -} - void NetworkContext::MaybeEnqueueSCTReport( const net::HostPortPair& host_port_pair, const net::X509Certificate* validated_certificate_chain, @@ -2062,15 +2025,20 @@ void NetworkContext::VerifyCertInternal( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->host_port = host_port; - pending_cert_verify->ocsp_result = ocsp_result; - pending_cert_verify->sct_list = sct_list; - pending_cert_verify->ct_verification_mode = ct_verification_mode; net::CertVerifier* cert_verifier = g_cert_verifier_for_testing ? g_cert_verifier_for_testing : url_request_context_->cert_verifier(); + int flags = 0; + switch (ct_verification_mode) { + case CTVerificationMode::kTlsCertificate: + break; + case CTVerificationMode::kSignedExchange: + flags = net::CertVerifier::VERIFY_SXG_CT_REQUIREMENTS; + break; + } int result = cert_verifier->Verify( - net::CertVerifier::RequestParams(certificate, host_port.host(), - /*flags=*/0, ocsp_result, sct_list), + net::CertVerifier::RequestParams(certificate, host_port.host(), flags, + ocsp_result, sct_list), pending_cert_verify->result.get(), base::BindOnce(&NetworkContext::OnVerifyCertComplete, base::Unretained(this), cert_verify_id), @@ -2280,7 +2248,10 @@ void NetworkContext::PreconnectSockets( const GURL& original_url, mojom::CredentialsMode credentials_mode, const net::NetworkAnonymizationKey& network_anonymization_key, - const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) { + const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, + const std::optional& keepalive_config, + mojo::PendingRemote + reconnect_event_observer) { DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -2311,6 +2282,21 @@ void NetworkContext::PreconnectSockets( user_agent); request_info.traffic_annotation = traffic_annotation; + if (keepalive_config.has_value() || reconnect_event_observer.is_valid()) { + request_info.connection_management_config = + net::ConnectionManagementConfig(); + request_info.connection_management_config->keep_alive_config = + keepalive_config; + if (reconnect_event_observer.is_valid()) { + auto change_observer = std::make_unique( + std::move(reconnect_event_observer), this); + + request_info.connection_management_config->connection_change_observer = + change_observer.get(); + connection_change_observers_.insert(std::move(change_observer)); + } + } + switch (credentials_mode) { case mojom::CredentialsMode::kOmit: request_info.load_flags = net::LOAD_DO_NOT_SAVE_COOKIES; @@ -2931,10 +2917,11 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( base::FeatureList::IsEnabled(network::features::kSharedZstd)); } - builder.SetCreateHttpTransactionFactoryCallback( - base::BindOnce([](net::HttpNetworkSession* session) + builder.SetWrapHttpNetworkLayerCallback( + base::BindOnce([](std::unique_ptr network_layer) -> std::unique_ptr { - return std::make_unique(session); + return std::make_unique( + std::move(network_layer)); })); builder.set_host_mapping_rules( @@ -3018,10 +3005,10 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( #if BUILDFLAG(IS_CT_SUPPORTED) if (params_->enforce_chrome_ct_policy) { - require_ct_delegate_ = - std::make_unique(); + require_ct_delegate_ = base::MakeRefCounted< + certificate_transparency::ChromeRequireCTDelegate>(); result.url_request_context->transport_security_state() - ->SetRequireCTDelegate(require_ct_delegate_.get()); + ->SetRequireCTDelegate(require_ct_delegate_); } #endif // BUILDFLAG(IS_CT_SUPPORTED) @@ -3187,11 +3174,15 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { cert_verifier_requests_.erase(iter); bool pkp_bypassed = false; - if (result == net::OK) { + if (result == net::OK || + result == net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED) { #if BUILDFLAG(IS_CT_SUPPORTED) - int ct_result = CheckCTRequirements( - *pending_cert_verify->result, pending_cert_verify->host_port, - pending_cert_verify->ct_verification_mode); + if (url_request_context_->sct_auditing_delegate()) { + url_request_context_->sct_auditing_delegate()->MaybeEnqueueReport( + pending_cert_verify->host_port, + pending_cert_verify->result->verified_cert.get(), + pending_cert_verify->result->scts); + } #endif // BUILDFLAG(IS_CT_SUPPORTED) net::TransportSecurityState::PKPStatus pin_validity = url_request_context_->transport_security_state()->CheckPublicKeyPins( @@ -3211,12 +3202,6 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { // Do nothing. break; } -#if BUILDFLAG(IS_CT_SUPPORTED) - if (result != net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN && - ct_result != net::OK) { - result = ct_result; - } -#endif // BUILDFLAG(IS_CT_SUPPORTED) } std::move(pending_cert_verify->callback) 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 cdd5f63a..8bc4f426 100755 --- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json +++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json @@ -152,6 +152,21 @@ ] } ], + "AccessibilityManifestV3SelectToSpeak": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AccessibilityManifestV3SelectToSpeak" + ] + } + ] + } + ], "AccessibilityPageZoomV2": [ { "platforms": [ @@ -234,16 +249,31 @@ ] } ], - "AddReferringWebApkToProtegoPings": [ + "AddAddressManually": [ { "platforms": [ - "android" + "ios" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "AddReferringWebApkToProtegoPings" + "AddAddressManually" + ] + } + ] + } + ], + "AddSuggestStrongPasswordFromAddPassword": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SuggestStrongPasswordInAddPassword" ] } ] @@ -395,38 +425,6 @@ ] } ], - "AndroidAppIntegrationV2": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_SkipSchemaCheck", - "params": { - "skip_schema_check": "true", - "use_large_favicon": "true" - }, - "enable_features": [ - "AndroidAppIntegrationModule", - "AndroidAppIntegrationV2", - "AndroidAppIntegrationWithFavicon" - ] - }, - { - "name": "Enabled", - "params": { - "use_large_favicon": "true" - }, - "enable_features": [ - "AndroidAppIntegrationModule", - "AndroidAppIntegrationV2", - "AndroidAppIntegrationWithFavicon" - ] - } - ] - } - ], "AndroidAutofillPrefillRequestsForChangePassword": [ { "platforms": [ @@ -442,6 +440,22 @@ ] } ], + "AndroidBookmarkBar": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidAppearanceSettings", + "AndroidBookmarkBar" + ] + } + ] + } + ], "AndroidBottomToolbar": [ { "platforms": [ @@ -488,21 +502,6 @@ ] } ], - "AndroidFallbackToNextSlot": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidFallbackToNextSlot" - ] - } - ] - } - ], "AndroidHatsNext": [ { "platforms": [ @@ -578,36 +577,6 @@ ] } ], - "AndroidPdfInline": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidOpenPdfInline" - ] - } - ] - } - ], - "AndroidPdfInlineBackport": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidOpenPdfInlineBackport" - ] - } - ] - } - ], "AndroidSandboxRendererProcessPolicy": [ { "platforms": [ @@ -625,23 +594,28 @@ ] } ], - "AndroidSpareRendererCreation_V2": [ + "AndroidSpareRendererCreation_V3": [ { "platforms": [ "android" ], "experiments": [ { - "name": "CreateByDefault_AfterLoading", + "name": "CreateWithoutServiceGroupImportance", "params": { + "kill_when_backgrounded": "true", + "omnibox_spare_renderer_delay_ms": "500", + "spare_renderer_creation_delay_ms": "2000", "spare_renderer_creation_timing": "after-loading", "spare_renderer_timeout_seconds": "60" }, "enable_features": [ - "AndroidWarmUpSpareRendererWithTimeout" + "AndroidWarmUpSpareRendererWithTimeout", + "OverrideAndroidOmniboxSpareRendererDelay" ], "disable_features": [ - "OverrideAndroidOmniboxSpareRendererDelay" + "ServiceGroupImportance", + "SpareRendererProcessPriority" ] } ] @@ -710,7 +684,7 @@ ] } ], - "AndroidTabDeclutterDuplicateUrls": [ + "AndroidUseFrameIntervalDeciderAdaptiveFrameRate": [ { "platforms": [ "android" @@ -719,22 +693,24 @@ { "name": "Enabled", "enable_features": [ - "AndroidTabDeclutterArchiveDuplicateTabs" + "UseFrameIntervalDeciderAdaptiveFrameRate" ] } ] } ], - "AndroidUseFrameIntervalDeciderNewAndroidFeatures": [ + "AndroidWindowOcclusion": [ { "platforms": [ - "android" + "android", + "android_weblayer", + "android_webview" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "UseFrameIntervalDeciderNewAndroidFeatures" + "AndroidWindowOcclusion" ] } ] @@ -791,6 +767,21 @@ ] } ], + "ApiPrintingMarginsAndScale": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ApiPrintingMarginsAndScale" + ] + } + ] + } + ], "ApnRevamp": [ { "platforms": [ @@ -1024,21 +1015,6 @@ ] } ], - "ArcLazyWebViewInit": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LazyWebViewInit" - ] - } - ] - } - ], "ArcOnDemandV2_holdback": [ { "platforms": [ @@ -1316,23 +1292,6 @@ ] } ], - "AsyncFastCheckout": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AsyncFastCheckout" - ] - } - ] - } - ], "AsyncNavigationInterceptUnlaunch": [ { "platforms": [ @@ -1384,6 +1343,68 @@ ] } ], + "AttributionReportDeliveryOnNewNavigation": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_2m", + "params": { + "navigation_window": "2m" + }, + "enable_features": [ + "AttributionReportDeliveryOnNewNavigation" + ] + }, + { + "name": "Enabled_1m", + "params": { + "navigation_window": "1m" + }, + "enable_features": [ + "AttributionReportDeliveryOnNewNavigation" + ] + }, + { + "name": "Enabled_5m", + "params": { + "navigation_window": "5m" + }, + "enable_features": [ + "AttributionReportDeliveryOnNewNavigation" + ] + } + ] + } + ], + "AttributionReportingInBrowserMigration": [ + { + "platforms": [ + "android", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AttributionReportingInBrowserMigration" + ] + } + ] + } + ], "AudioFocusEnforcementStudy": [ { "platforms": [ @@ -1570,21 +1591,6 @@ ] } ], - "AutofillAddressFieldSwapping": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillAddressFieldSwapping" - ] - } - ] - } - ], "AutofillAddressSuggestionsOnTyping": [ { "platforms": [ @@ -1639,14 +1645,34 @@ "name": "Enabled", "enable_features": [ "AutofillAiIgnoreGeoIp", - "AutofillAiVoteForFormatStringsFromMultipleFields", - "AutofillAiVoteForFormatStringsFromSingleFields", "AutofillAiWithDataSchema" ] } ] } ], + "AutofillAiVoteForFormatStrings": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAiVoteForFormatStringsFromMultipleFields", + "AutofillAiVoteForFormatStringsFromSingleFields" + ] + } + ] + } + ], "AutofillBetterLocalHeuristicPlaceholderSupport": [ { "platforms": [ @@ -1689,27 +1715,6 @@ ] } ], - "AutofillDecoupleAutofillCountFromCache": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillDecoupleAutofillCountFromCache" - ] - } - ] - } - ], "AutofillDeduplicateAccountAddresses": [ { "platforms": [ @@ -1745,12 +1750,11 @@ ] } ], - "AutofillEnableAccountStorageForIneligibleCountries": [ + "AutofillEnableBuyNowPayLaterDesktop": [ { "platforms": [ - "android", "chromeos", - "ios", + "chromeos_lacros", "linux", "mac", "windows" @@ -1759,7 +1763,8 @@ { "name": "Enabled", "enable_features": [ - "AutofillEnableAccountStorageForIneligibleCountries" + "AutofillEnableAmountExtractionDesktop", + "AutofillEnableBuyNowPayLater" ] } ] @@ -1805,6 +1810,7 @@ "android", "chromeos", "chromeos_lacros", + "ios", "linux", "mac", "windows" @@ -2004,6 +2010,21 @@ ] } ], + "AutofillEnableShowSaveCardSecurelyMessage": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableShowSaveCardSecurelyMessage" + ] + } + ] + } + ], "AutofillEnableSupportForParsingWithSharedLabels": [ { "platforms": [ @@ -2025,10 +2046,12 @@ ] } ], - "AutofillGranularFillingAvailable": [ + "AutofillFixSplitCreditCardImport": [ { "platforms": [ + "android", "chromeos", + "ios", "linux", "mac", "windows" @@ -2036,46 +2059,8 @@ "experiments": [ { "name": "Enabled", - "params": { - "autofill_granular_filling_with_expand_control_visible_on_selection_only": "false", - "autofill_granular_filling_with_fill_everything_in_the_footer": "true", - "autofill_granular_filling_with_improved_labels": "true" - }, "enable_features": [ - "AutofillGranularFillingAvailable" - ] - }, - { - "name": "Enabled_WithoutImprovedLabels", - "params": { - "autofill_granular_filling_with_expand_control_visible_on_selection_only": "false", - "autofill_granular_filling_with_fill_everything_in_the_footer": "true", - "autofill_granular_filling_with_improved_labels": "false" - }, - "enable_features": [ - "AutofillGranularFillingAvailable" - ] - }, - { - "name": "Enabled_WithFillEverythingAtTheTop", - "params": { - "autofill_granular_filling_with_expand_control_visible_on_selection_only": "false", - "autofill_granular_filling_with_fill_everything_in_the_footer": "false", - "autofill_granular_filling_with_improved_labels": "true" - }, - "enable_features": [ - "AutofillGranularFillingAvailable" - ] - }, - { - "name": "Enabled_WithExpandControlVisibleOnSelectionOnly", - "params": { - "autofill_granular_filling_with_expand_control_visible_on_selection_only": "true", - "autofill_granular_filling_with_fill_everything_in_the_footer": "true", - "autofill_granular_filling_with_improved_labels": "true" - }, - "enable_features": [ - "AutofillGranularFillingAvailable" + "AutofillFixSplitCreditCardImport" ] } ] @@ -2102,7 +2087,28 @@ ] } ], - "AutofillI18nFRAddressModel": [ + "AutofillHomeWorkProfileSuggestion": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "HomeAndWork_IPH_Enabled", + "params": { + "availability": "any", + "event_trigger": "name:home_and_work_address_suggestion_iph_trigger;comparator:<10;window:90;storage:360", + "event_used": "name:home_and_work_suggestion_accepted;comparator:<2;window:90;storage:360", + "session_rate": "<1" + }, + "enable_features": [ + "IPH_AutofillHomeWorkProfileSuggestion" + ] + } + ] + } + ], + "AutofillI18nINAddressModel": [ { "platforms": [ "android", @@ -2117,7 +2123,7 @@ { "name": "Enabled", "enable_features": [ - "AutofillUseFRAddressModel" + "AutofillUseINAddressModel" ] } ] @@ -2199,7 +2205,6 @@ { "name": "Enabled", "enable_features": [ - "AutofillFixFormTracking", "AutofillPreferSavedFormAsSubmittedForm", "AutofillUseSubmittedFormInHtmlSubmission" ] @@ -2250,63 +2255,6 @@ ] } ], - "AutofillInferLabelFromDefaultSelectText": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillInferLabelFromDefaultSelectText" - ] - } - ] - } - ], - "AutofillKeyboardAccessory": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_With_Cards_and_VCN_20230324", - "enable_features": [ - "AutofillKeyboardAccessory", - "AutofillManualFallbackAndroid" - ] - } - ] - } - ], - "AutofillLogUKMEventsWithSampleRate": [ - { - "platforms": [ - "android", - "android_weblayer", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillLogUKMEventsWithSampleRate" - ] - } - ] - } - ], "AutofillModelPredictions": [ { "platforms": [ @@ -2484,27 +2432,6 @@ ] } ], - "AutofillPreFilledFieldsCorrectly": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_OverwritePlaceholdersOnly", - "enable_features": [ - "AutofillOverwritePlaceholdersOnly", - "AutofillSkipPreFilledFields" - ] - } - ] - } - ], "AutofillRecordCorrectionOfSelectElements": [ { "platforms": [ @@ -2588,6 +2515,28 @@ ] } ], + "AutofillSupportLastNamePrefix": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillSupportLastNamePrefix", + "AutofillUseNegativePatternForAllAttributes" + ] + } + ] + } + ], "AutofillSupportPhoneticNameForJP": [ { "platforms": [ @@ -2686,6 +2635,27 @@ ] } ], + "AutofillUnifyRationalizationAndSectioningOrder": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillUnifyRationalizationAndSectioningOrder" + ] + } + ] + } + ], "AutofillUnmaskCardRequestTimeout": [ { "platforms": [ @@ -2727,42 +2697,6 @@ ] } ], - "AutofillVirtualViewStructureAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillVirtualViewStructureAndroid" - ] - } - ] - } - ], - "AutofillVoteWhenInactive": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20241207", - "enable_features": [ - "AutofillVoteWhenInactive" - ] - } - ] - } - ], "AvatarsCloudMigration": [ { "platforms": [ @@ -2843,6 +2777,31 @@ ] } ], + "AvoidUnnecessaryBeforeUnloadCheckSync": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "AvoidUnnecessaryBeforeUnloadCheckSyncMode": "DumpWithoutCrashing" + }, + "enable_features": [ + "AvoidUnnecessaryBeforeUnloadCheckSync" + ] + } + ] + } + ], "AvoidUnnecessaryForcedLayoutMeasurements": [ { "platforms": [ @@ -2882,21 +2841,17 @@ ] } ], - "BackForwardCacheMediaSessionService": [ + "BGPriorityWorkerThreadsWithPISupport": [ { "platforms": [ - "android", - "android_webview", - "fuchsia", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { - "name": "Enabled", + "name": "EnabledBoth_20250410", "enable_features": [ - "BackForwardCacheMediaSessionService" + "UseBackgroundPriorityForWorkerThreads", + "UsePriorityInheritanceMutex" ] } ] @@ -3070,13 +3025,14 @@ ], "experiments": [ { - "name": "IPHWithFastEtc1Encoder", + "name": "IPHWithFastEtc1EncoderDelayed", "params": { "availability": "any", + "compress-screenshot-when-quiet": "true", "event_trigger": "name:rtl_gesture_iph_trigger;comparator:==0;window:365;storage:365", "event_used": "name:rtl_gesture_iph_show;comparator:==0;window:365;storage:365", - "max-cache-size": "16777216", "percentage-of-ram-to-use": "0.5", + "screenshot-send-result-delay-ms": "400", "session_rate": "<1", "x_trigger": "", "x_unhandled_gesture_threshold": "2" @@ -3226,23 +3182,6 @@ ] } ], - "BatchUploadDesktop": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BatchUploadDesktop" - ] - } - ] - } - ], "BatteryBadgeIconEnabled": [ { "platforms": [ @@ -3277,6 +3216,22 @@ ] } ], + "BatteryStatusManagerBroadcastReceiverInBackground": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BatteryStatusManagerBroadcastReceiverInBackground" + ] + } + ] + } + ], "BeaconLeakageLogging": [ { "platforms": [ @@ -3330,6 +3285,21 @@ ] } ], + "BlingDiscoFeed": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableDiscoFeedEndpoint" + ] + } + ] + } + ], "BlockAcceptClientHints": [ { "platforms": [ @@ -3544,6 +3514,24 @@ ] } ], + "BrowserInitiatedAutomaticPictureInPicture": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BrowserInitiatedAutomaticPictureInPicture" + ] + } + ] + } + ], "BrowserSignalsReportingEnabled": [ { "platforms": [ @@ -3661,22 +3649,6 @@ ] } ], - "BuiltInHlsMP4": [ - { - "platforms": [ - "android", - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BuiltInHlsMP4" - ] - } - ] - } - ], "BusyLoopOnMainThread": [ { "platforms": [ @@ -3684,7 +3656,10 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_1ms", + "params": { + "busy_loop_for": "1ms" + }, "enable_features": [ "BusyLoopOnMainThread" ] @@ -3863,6 +3838,74 @@ ] } ], + "CacheStorageAblation": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "EnabledWithEffectiveSize200Percent", + "params": { + "delete_factor": "1.0", + "delete_offset": "0ms", + "has_factor": "1.0", + "has_offset": "0ms", + "keys_factor": "2.0", + "keys_offset": "0ms", + "match_factor": "2.0", + "match_offset": "0ms", + "open_factor": "1.0", + "open_offset": "0ms" + }, + "enable_features": [ + "CacheStorageAblation" + ] + }, + { + "name": "EnabledWithEffectiveSize100Percent", + "params": { + "delete_factor": "0.5", + "delete_offset": "0ms", + "has_factor": "0.5", + "has_offset": "0ms", + "keys_factor": "1.0", + "keys_offset": "0ms", + "match_factor": "1.0", + "match_offset": "0ms", + "open_factor": "0.5", + "open_offset": "0ms" + }, + "enable_features": [ + "CacheStorageAblation" + ] + }, + { + "name": "EnabledWithEffectiveSize50Percent", + "params": { + "delete_factor": "0.25", + "delete_offset": "0ms", + "has_factor": "0.25", + "has_offset": "0ms", + "keys_factor": "0.5", + "keys_offset": "0ms", + "match_factor": "0.5", + "match_offset": "0ms", + "open_factor": "0.25", + "open_offset": "0ms" + }, + "enable_features": [ + "CacheStorageAblation" + ] + } + ] + } + ], "CacheStorageTaskPriority": [ { "platforms": [ @@ -3907,10 +3950,19 @@ ], "experiments": [ { - "name": "Enabled", + "name": "CameraOther_20250408", + "params": { + "action_filter": "Accepted,AcceptedOnce,Dismissed", + "probability": "0.6", + "prompt_disposition_reason_filter": "DefaultFallback", + "request_type_filter": "VideoCapture", + "survey_display_time": "OnPromptResolved", + "trigger_id": "jGykX8MLD0ugnJ3q1cK0NzqCtGvZ" + }, "enable_features": [ "CameraMicPreview", - "GetUserMediaDeferredDeviceSettingsSelection" + "GetUserMediaDeferredDeviceSettingsSelection", + "PermissionsPromptSurvey" ] } ] @@ -4390,21 +4442,6 @@ ] } ], - "ChromeOSAssistantNewEntryPoint": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ChromeOSEnableNewEntryPoint" - ] - } - ] - } - ], "ChromeOSBoostUrgentVariables": [ { "platforms": [ @@ -5190,41 +5227,6 @@ ] } ], - "ChromnientIOS": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableLensOverlay", - "IPH_iOSLensOverlayEntrypointTip", - "LensClearcutBackgroundUploadEnabled", - "LensClearcutLoggerFastQosEnabled", - "LensInkMultiSampleModeDisabled", - "LensOverlayEnableLocationBarEntrypoint" - ], - "disable_features": [ - "LensGestureTextSelectionDisabled", - "LensOverlayEnableLocationBarEntrypointOnSRP" - ] - }, - { - "name": "LaunchM133", - "enable_features": [ - "EnableLensOverlay", - "LensClearcutLoggerFastQosEnabled" - ], - "disable_features": [ - "LensOverlayEnableLocationBarEntrypoint", - "LensOverlayEnableLocationBarEntrypointOnSRP" - ] - } - ] - } - ], "ChromnientIPH": [ { "platforms": [ @@ -5235,15 +5237,17 @@ ], "experiments": [ { - "name": "EnabledSocialMedia", + "name": "Enabled", "params": { "availability": "any", "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": "[\"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" + "x_url_allow_filters": "[\"*\"]", + "x_url_block_filters": "[\"chegg.com\",\"brainly.com\",\"coursehero.com\",\"quizlet.com\",\"study.com\",\"tutor.com\",\"wyzant.com\",\"tutoring.k12.com\",\"varsitytutors.com\",\"studypool.com\",\"sylvanlearning.com\",\"skooli.com\",\"socratic.org\",\"schoolhouse.world\",\"google.com\",\"ai\",\"indeedassessments.com\",\"nytimes.com\",\"cnn.com\",\"foxnews.com\",\"people.com\",\"usatoday.com\",\"msn.com\",\"nypost.com\",\"apnews.com\",\"dailymail.co.uk\",\"news.google.com\",\"cnbc.com\",\"newsweek.com\",\"washingtonpost.com\",\"yahoo.com\",\"theguardian.com\",\"bbc.com\",\"wsj.com\",\"reuters.com\",\"breitbart.com\",\"bloomberg.com\",\"huffpost.com\",\"nbcnews.com\",\"businessinsider.com\",\"cbsnews.com\",\"usnews.com\",\"thegatewaypundit.com\",\"axios.com\",\"drudgereport.com\",\"theatlantic.com\",\"forbes.com\",\"npr.org\",\"espn.com\",\"latimes.com\",\"thecooldown.com\",\"zerohedge.com\",\"politico.com\",\"thehill.com\",\"weather.com\",\"marketwatch.com\",\"buzzfeed.com\",\"cbssports.com\",\"tmz.com\",\"slate.com\",\"vice.com\",\"salon.com\",\"theintercept.com\",\"inquirer.com\",\"chicagotribune.com\",\"bostonglobe.com\",\"upworthy.com\",\"geediting.com\",\"popularmechanics.com \",\"hindustantimes.com\",\"independent.co.uk\",\"uniladtech.com\",\"paypal.com\",\"capitalone.com\",\"chase.com\",\"finance.yahoo.com\",\"bankofamerica.com\",\"wellsfargo.com\",\"fidelity.com\",\"citi.com\",\"americanexpress.com\",\"schwab.com\",\"creditkarma.com\",\"experian.com\",\"discover.com\",\"usbank.com\",\"navyfederal.org\",\"pnc.com\",\"truist.com\",\"ally.com\",\"vanguard.com\",\"forbes.com\",\"intuit.com\",\"investopedia.com\",\"cnbc.com\",\"nerdwallet.com\",\"wsj.com\",\"marketwatch.com\",\"bloomberg.com\",\"reuters.com\",\"businessinsider.com\",\"cash.app\",\"venmo.com\",\"equifax.com\",\"transunion.com\",\"etrade.com\",\"robinhood.com\",\"morganstanley.com\",\"ml.com\",\"sofi.com\",\"chime.com\",\"huntington.com\",\"key.com\",\"citizensbank.com\",\"fifththird.com\",\"mtb.com\",\"regions.com\",\"santanderbank.com\",\"td.com\",\"usaa.com\",\"bankrate.com\",\"youtube.com\",\"facebook.com\",\"instagram.com\",\"tiktok.com\",\"x.com\",\"reddit.com\",\"pinterest.com\",\"linkedin.com\",\"whatsapp.com\",\"messenger.com\",\"snapchat.com\",\"twitch.tv\",\"discord.com\",\"telegram.org\",\"quora.com\",\"nextdoor.com\",\"tumblr.com\",\"threads.net\",\"blueskyweb.xyz\",\"mastodon.social\",\"medium.com\",\"vimeo.com\",\"flickr.com\",\"yelp.com\",\"bere.al\",\"kick.com\",\"behance.net\",\"deviantart.com\",\"goodreads.com\",\"clubhouse.com\",\"ello.co\",\"mewe.com\",\"signal.org\",\"glassdoor.com\",\"meetup.com\",\"houzz.com\",\"imgur.com\",\"letterboxd.com\",\"care2.com\",\"ravelry.com\",\"bandcamp.com\",\"soundcloud.com\",\"gaia.com\",\"caringbridge.org\",\"myspace.com\",\"livejournal.com\",\"classmates.com\",\"weheartit.com\",\"unofficialnetworks.com\",\"internalfb.com\",\"allrecipes.com\"]", + "x_url_path_match_allow_patterns": "[\"(?i)assignments\",\"(?i)assignment\",\"(?i)assign\",\"(?i)assessment\",\"(?i)assessments\",\"(?i)homework\",\"(?i)quiz\",\"(?i)quizzes\",\"(?i)question\",\"(?i)questions\",\"(?i)exam\",\"(?i)exams\",\"(?i)task\",\"(?i)tasks\",\"(?i)attempt\",\"(?i)test\",\"(?i)tests\",\"(?i)worksheet\",\"(?i)worksheets\",\"(?i)science\",\"(?i)biology\",\"(?i)chemistry\",\"(?i)physics\",\"(?i)geology\",\"(?i)astronomy\",\"(?i)programming\",\"(?i)robotics\",\"(?i)engineering\",\"(?i)mechanics\",\"(?i)mathematics\",\"(?i)math\",\"(?i)algebra\",\"(?i)calculus\",\"(?i)geometry\",\"(?i)statistics\",\"(?i)sociology\",\"(?i)geography\",\"(?i)psychology\",\"(?i)literature\",\"(?i)archaeology\",\"(?i)economics\",\"(?i)accounting\",\"(?i)course\",\"(?i)courses\"]", + "x_url_path_match_block_patterns": "[\"(?i)tutor\",\"(?i)protest\",\"(?i)latest\",\"(?i)account\",\"(?i)management\",\"(?i)login\",\"(?i)assessment\",\"(?i)apply\",\"(?i)questionnaire\",\"(?i)calendar\",\"(?i)news\",\"(?i)certification\",\"(?i)article\",\"(?i)download\",\"(?i)profile\",\"(?i)policy\",\"(?i)auth\",\"(?i)secure\"]", + "x_wait_time": "60s" }, "enable_features": [ "IPH_LensOverlay" @@ -5454,6 +5458,21 @@ ] } ], + "ClaySnackbarOnAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ClaySnackbar" + ] + } + ] + } + ], "ClearBrowsingDataAndroidSurvey": [ { "platforms": [ @@ -6340,16 +6359,21 @@ ], "experiments": [ { - "name": "Enabled_InnerHtml", + "name": "Enabled_NoAutoFocus_20250421", "params": { "auto-focus-searchbox": "false", + "page-content-request-id-fix": "true", + "pdf-text-character-limit": "5000", "send-page-url-for-contextualization": "true", "show-contextual-searchbox-ghost-loader-loading-state": "true", - "use-inner-html-as-context": "true", - "use-inner-text-as-context": "false", + "update-viewport-each-query": "true", + "use-apc-as-context": "true", + "use-inner-html-as-context": "false", + "use-inner-text-as-context": "true", "use-pdf-interaction-type": "true", "use-pdf-vit-param": "true", "use-pdfs-as-context": "true", + "use-updated-content-fields": "true", "use-webpage-interaction-type": "true", "use-webpage-vit-param": "true" }, @@ -6525,11 +6549,14 @@ "min_os_version": "16151.0.0", "hardware_classes": [ "brask", + "brox", "brya", "corsola", "geralt", "nissa", - "rex" + "rauru", + "rex", + "staryu" ] } ] @@ -6810,6 +6837,21 @@ ] } ], + "CrOSLateBootResourcedMsrLogger": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CrOSLateBootResourcedMsrLogger" + ] + } + ] + } + ], "CrOSLateBootResourcedVariableTimeMemorySignal": [ { "platforms": [ @@ -7012,6 +7054,7 @@ { "name": "Enabled", "enable_features": [ + "LauncherImageSearch", "LauncherImageSearchIca" ] } @@ -7920,6 +7963,29 @@ ] } ], + "DesktopOmniboxRichAutocompletionMinChar": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_1_v1", + "params": { + "RichAutocompletionAutocompleteShortcutTextMinChar": "1", + "RichAutocompletionAutocompleteTitlesMinChar": "1" + }, + "enable_features": [ + "OmniboxRichAutocompletion" + ] + } + ] + } + ], "DesktopOmniboxShortcutBoost": [ { "platforms": [ @@ -8037,6 +8103,27 @@ ] } ], + "DeviceBoundSessionAccessObserverSharedRemote": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enable", + "enable_features": [ + "DeviceBoundSessionAccessObserverSharedRemote" + ] + } + ] + } + ], "DeviceBoundSessionCredentials": [ { "platforms": [ @@ -8116,21 +8203,6 @@ ] } ], - "DipsOnForegroundSequence": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DipsOnForegroundSequence" - ] - } - ] - } - ], "DirectCompositorThreadIpcMacLinuxChromeOS": [ { "platforms": [ @@ -8585,6 +8657,28 @@ ] } ], + "DomStorageAblation": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "factor": "0", + "offset": "5ms" + }, + "enable_features": [ + "DomStorageAblation" + ] + } + ] + } + ], "DownloadLater": [ { "platforms": [ @@ -8706,23 +8800,6 @@ ] } ], - "DrawImmediatelyV2": [ - { - "platforms": [ - "android_webview", - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AckOnSurfaceActivationWhenInteractive", - "DrawImmediatelyWhenInteractive" - ] - } - ] - } - ], "DwaFeature": [ { "platforms": [ @@ -8780,51 +8857,6 @@ ] } ], - "EdgeToEdgeAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_133", - "params": { - "disable_bottom_controls_stacker_y_offset": "false", - "e2e_field_trial_oem_list": "oppo,xiaomi", - "e2e_field_trial_oem_min_versions": "34,34", - "scrollable_when_stacking": "true" - }, - "enable_features": [ - "BottomBrowserControlsRefactor", - "DrawCutoutEdgeToEdge", - "DrawKeyNativeEdgeToEdge", - "DynamicSafeAreaInsets", - "DynamicSafeAreaInsetsOnScroll", - "EdgeToEdgeBottomChin", - "EdgeToEdgeSafeAreaConstraint", - "EdgeToEdgeWebOptIn" - ] - }, - { - "name": "Enabled_WebOptInAndKeyNativePages_131", - "params": { - "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", - "DrawCutoutEdgeToEdge", - "DrawKeyNativeEdgeToEdge", - "DynamicSafeAreaInsets", - "DynamicSafeAreaInsetsOnScroll", - "EdgeToEdgeBottomChin", - "EdgeToEdgeWebOptIn" - ] - } - ] - } - ], "EdgeToEdgeEverywhere": [ { "platforms": [ @@ -8919,41 +8951,6 @@ ] } ], - "EnableCertManagementUIV2": [ - { - "platforms": [ - "chromeos", - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableCertManagementUIV2" - ] - } - ] - } - ], - "EnableCertManagementUIV2Write": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableCertManagementUIV2EditCerts", - "EnableCertManagementUIV2Write" - ] - } - ] - } - ], "EnableChromeFatalCrashEventsObserver": [ { "platforms": [ @@ -9183,25 +9180,6 @@ ] } ], - "EnableOverwritingPlaceholderUsernames": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableOverwritingPlaceholderUsernames" - ] - } - ] - } - ], "EnablePDPMetricsUSDesktopIOS": [ { "platforms": [ @@ -9588,17 +9566,18 @@ ], "experiments": [ { - "name": "Enabled_DisableMV2Extensions", + "name": "Enabled_MV2ExtensionsUnsupported", "enable_features": [ - "ExtensionManifestV2Disabled" + "ExtensionManifestV2Unsupported" ] } ] } ], - "ExtensionManifestV3NetworkSpeechSynthesis": [ + "ExtensionsCollapseMainMenu": [ { "platforms": [ + "chromeos", "linux", "mac", "windows" @@ -9607,7 +9586,7 @@ { "name": "Enabled", "enable_features": [ - "ExtensionManifestV3NetworkSpeechSynthesis" + "ExtensionsCollapseMainMenu" ] } ] @@ -9807,6 +9786,51 @@ ] } ], + "FastPairPWACompanion": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled_20250318", + "params": { + "pwa-companion-app-id": "", + "pwa-companion-device-ids": "08A97F,5A36A5,6EDAF7,9ADB11,A7D7A0,C8E228,D87A3E,F2020E,F58DE7,30346C,7862CE,C193F7,05D40E,02FC97,AB442D,FB19ED,C55C79,2EE57B,DA2DB1,6C7979,A28BDC,03E047,9B9FFE,DCDA99,9F7942,8D479E", + "pwa-companion-install-uri": "https://mypixelbuds.google.com/", + "pwa-companion-play-store-uri": "" + }, + "enable_features": [ + "FastPairPwaCompanion" + ] + }, + { + "name": "Enabled_20250318_Dogfood", + "params": { + "pwa-companion-app-id": "", + "pwa-companion-device-ids": "08A97F,5A36A5,6EDAF7,9ADB11,A7D7A0,C8E228,D87A3E,F2020E,F58DE7,30346C,7862CE,C193F7,05D40E,02FC97,AB442D,FB19ED,C55C79,2EE57B,DA2DB1,6C7979,A28BDC,03E047,9B9FFE,DCDA99,9F7942,8D479E", + "pwa-companion-install-uri": "https://mypixelbuds.google.com/", + "pwa-companion-play-store-uri": "" + }, + "enable_features": [ + "FastPairPwaCompanion" + ] + }, + { + "name": "EnabledWithStagingLinks_Dogfood", + "params": { + "pwa-companion-app-id": "", + "pwa-companion-device-ids": "08A97F,5A36A5,6EDAF7,9ADB11,A7D7A0,C8E228,D87A3E,F2020E,F58DE7,30346C,7862CE,C193F7,05D40E,02FC97,AB442D,FB19ED,C55C79,2EE57B,DA2DB1,6C7979,A28BDC,03E047,9B9FFE,DCDA99,9F7942,8D479E", + "pwa-companion-install-uri": "https://mypixelbuds-preprod.corp.google.com/", + "pwa-companion-play-store-uri": "" + }, + "enable_features": [ + "FastPairPwaCompanion" + ] + } + ] + } + ], "FastPathNoRaster": [ { "platforms": [ @@ -9827,6 +9851,29 @@ ] } ], + "FasterSetCookie": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "AsyncGetCookiesOnSet", + "enable_features": [ + "AsyncSetCookie", + "GetCookiesOnSet" + ] + } + ] + } + ], "FasterSplitScreenSetup": [ { "platforms": [ @@ -10088,6 +10135,24 @@ ] } ], + "FieldRankServerClassification": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "FieldRankServerClassification_Experiment_20250422" + } + ] + } + ], "FindRegistrationImprovements": [ { "platforms": [ @@ -10120,10 +10185,9 @@ ], "experiments": [ { - "name": "Enabled_20241119_Dogfood", + "name": "Enabled_20250331", "params": { - "activation_level": "enabled", - "enable_console_logging": "true", + "activation_level": "dry_run", "enable_only_if_3pc_blocked": "false", "performance_measurement_rate": "1.0" }, @@ -10131,13 +10195,35 @@ "EnableFingerprintingProtectionFilter" ], "disable_features": [ - "FingerprintingProtectionSetting", "FingerprintingProtectionUx" ] } ] } ], + "FingerprintingProtectionFilterIncognito": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250416", + "params": { + "enable_console_logging": "true", + "performance_measurement_rate": "1.0" + }, + "enable_features": [ + "EnableFingerprintingProtectionFilterInIncognito" + ] + } + ] + } + ], "FledgeBiddingAndAuctionNonceSupport": [ { "platforms": [ @@ -10267,38 +10353,6 @@ ] } ], - "ForceSupervisedSigninWithCapabilities": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ForceSupervisedSigninWithCapabilities" - ] - } - ] - } - ], - "ForceSupervisedUserReauthenticationForYouTube": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ForceSupervisedUserReauthenticationForYouTube" - ] - } - ] - } - ], "ForestFeature": [ { "platforms": [ @@ -10374,27 +10428,6 @@ ] } ], - "FreezingOnBatterySaverTweaks": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "LowCPUThreshold", - "params": { - "freezing_high_cpu_proportion": "0.05" - }, - "enable_features": [ - "CPUMeasurementInFreezingPolicy" - ] - } - ] - } - ], "FusedLocationProviderTuning": [ { "platforms": [ @@ -10828,33 +10861,6 @@ ] } ], - "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": [ @@ -11483,6 +11489,21 @@ ] } ], + "HeadlessTabModel": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "HeadlessTabModel" + ] + } + ] + } + ], "HeapProfilerExcludeChromeOSRenderers": [ { "platforms": [ @@ -11561,21 +11582,6 @@ ] } ], - "HideTabletToolbarDownloadButtonAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "HideTabletToolbarDownloadButton" - ] - } - ] - } - ], "HistoryEmbeddingsV2Images": [ { "platforms": [ @@ -11597,6 +11603,64 @@ ] } ], + "HistoryOptInEducationalTip": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledWithTurnOn", + "params": { + "history_opt_in_educational_tip_param": "0" + }, + "enable_features": [ + "HistoryOptInEducationalTip" + ] + }, + { + "name": "EnabledWithLetsGo", + "params": { + "history_opt_in_educational_tip_param": "1" + }, + "enable_features": [ + "HistoryOptInEducationalTip" + ] + }, + { + "name": "EnabledWithContinue", + "params": { + "history_opt_in_educational_tip_param": "2" + }, + "enable_features": [ + "HistoryOptInEducationalTip" + ] + } + ] + } + ], + "HistoryPageHistorySyncPromo": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledWithContinue", + "enable_features": [ + "HistoryPageHistorySyncPromo", + "HistoryPagePromoCtaStringVariation" + ] + }, + { + "name": "EnabledWithTurnOn", + "enable_features": [ + "HistoryPageHistorySyncPromo" + ] + } + ] + } + ], "HistorySyncAlternativeIllustration": [ { "platforms": [ @@ -11914,6 +11978,21 @@ ] } ], + "IOSChooseFromDriveSimulatedClick": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSChooseFromDriveSimulatedClick" + ] + } + ] + } + ], "IOSChromnientDenseText": [ { "platforms": [ @@ -11945,6 +12024,22 @@ ] } ], + "IOSChromnientIPHFix": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IPH_iOSLensOverlayEntrypointTip", + "LensOverlayDisableIPHPanGesture" + ] + } + ] + } + ], "IOSCleanupHangingPasswordFormExtractionRequests": [ { "platforms": [ @@ -11960,6 +12055,21 @@ ] } ], + "IOSContainedTabGroup": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ContainedTabGroup" + ] + } + ] + } + ], "IOSCriteriaExperimentEnabled": [ { "platforms": [ @@ -12113,6 +12223,21 @@ ] } ], + "IOSEnterpriseRealtimeEventReporting": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnterpriseRealtimeEventReportingOnIOS" + ] + } + ] + } + ], "IOSExplicitUITraitRegistration": [ { "platforms": [ @@ -12350,6 +12475,21 @@ ] } ], + "IOSKeyboardAccessoryUpgradeForIPad": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSKeyboardAccessoryUpgradeForIPad" + ] + } + ] + } + ], "IOSLogApplicationStorageSizeMetrics": [ { "platforms": [ @@ -12425,6 +12565,21 @@ ] } ], + "IOSOneTapMiniMapRemoveSectionsBreaks": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSOneTapMiniMapRemoveSectionsBreaks" + ] + } + ] + } + ], "IOSOverflowMenuCustomization": [ { "platforms": [ @@ -12762,41 +12917,6 @@ ] } ], - "IOSTabGroupInGridiPad": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabGroupsIPad" - ] - } - ] - } - ], - "IOSTabGroupIndicator": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "tab-group-indicator-below-omnibox": "false", - "tab-group-indicator-buttons": "true", - "tab-group-indicator-visible": "true" - }, - "enable_features": [ - "TabGroupIndicator" - ] - } - ] - } - ], "IOSTabGroupSynciPad": [ { "platforms": [ @@ -12806,6 +12926,7 @@ { "name": "Enabled", "enable_features": [ + "TabGroupIndicator", "TabGroupSync" ] } @@ -12983,6 +13104,26 @@ ] } ], + "IdbInSessionDbCleanup": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IdbInSessionDbCleanup" + ] + } + ] + } + ], "IdbPrioritizeForegroundClients": [ { "platforms": [ @@ -13097,6 +13238,28 @@ ] } ], + "ImprovedFailedLoginDetectionStudy": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FailedLoginDetectionBasedOnFormClearEvent", + "FailedLoginDetectionBasedOnResourceLoadingErrors", + "PostponeOnLoginSuccessful" + ] + } + ] + } + ], "IncognitoScreenshot": [ { "platforms": [ @@ -13112,12 +13275,14 @@ ] } ], - "IncreaseCoookieAccesCacheSize": [ + "IncreaseCookieAccessCacheSize": [ { "platforms": [ "android", "android_webview", "chromeos", + "fuchsia", + "ios", "linux", "mac", "windows" @@ -13126,7 +13291,7 @@ { "name": "Enabled", "enable_features": [ - "IncreaseCoookieAccesCacheSize" + "IncreaseCookieAccessCacheSize" ] } ] @@ -13191,6 +13356,21 @@ ] } ], + "InputVizard": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "InputOnViz" + ] + } + ] + } + ], "InsecureFormSubmissionInterstitial": [ { "platforms": [ @@ -13237,6 +13417,24 @@ ] } ], + "InvalidateSearchEngineChoiceOnDeviceRestoreDetection": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "EnabledJustInTime", + "params": { + "is_retroactive": "false" + }, + "enable_features": [ + "InvalidateSearchEngineChoiceOnDeviceRestoreDetection" + ] + } + ] + } + ], "InvalidationWithDirectMessagesCbcm": [ { "platforms": [ @@ -13277,6 +13475,7 @@ "InvalidationWithDirectMessagesUserPolicy": [ { "platforms": [ + "android", "chromeos", "linux", "mac", @@ -13295,10 +13494,7 @@ "InvalidationWithDirectMessagesUserRemoteCommands": [ { "platforms": [ - "chromeos", - "linux", - "mac", - "windows" + "chromeos" ], "experiments": [ { @@ -13329,6 +13525,24 @@ ] } ], + "IsCurrentlyLowMemoryJavaless": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "IsCurrentlyLowMemoryOption": "JavalessApproximation" + }, + "enable_features": [ + "IsCurrentlyLowMemoryJavaless" + ] + } + ] + } + ], "IsolatedWebApps": [ { "platforms": [ @@ -13437,33 +13651,6 @@ ] } ], - "KeepAliveInBrowserMigration": [ - { - "platforms": [ - "android", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20240117", - "enable_features": [ - "KeepAliveInBrowserMigration" - ] - }, - { - "name": "AttributionReportingInBrowserMigration", - "enable_features": [ - "AttributionReportingInBrowserMigration", - "KeepAliveInBrowserMigration" - ] - } - ] - } - ], "KeyboardAccessoryAddressIPH": [ { "platforms": [ @@ -13887,26 +14074,6 @@ ] } ], - "LayoutNGShapeCache": [ - { - "platforms": [ - "android", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LayoutNGShapeCache" - ] - } - ] - } - ], "LayoutNGShapeCacheWebview": [ { "platforms": [ @@ -14071,6 +14238,27 @@ ] } ], + "ListAccountsUsesBinaryFormat": [ + { + "platforms": [ + "android", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ListAccountsUsesBinaryFormat" + ] + } + ] + } + ], "LiveCaptionChromeOS2": [ { "platforms": [ @@ -14170,6 +14358,21 @@ ] } ], + "Lobster": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "Lobster" + ] + } + ] + } + ], "LobsterDogfood": [ { "platforms": [ @@ -14179,9 +14382,49 @@ { "name": "Enabled_Dogfood", "enable_features": [ - "LobsterDogfood", - "LobsterQuickInsertZeroState", - "LobsterRightClickMenu" + "LobsterDogfood" + ] + } + ] + } + ], + "LobsterI18n": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LobsterI18n" + ], + "disable_features": [ + "LobsterDisabledByInvalidIME" + ] + }, + { + "name": "Enabled_Dogfood", + "enable_features": [ + "LobsterI18n" + ], + "disable_features": [ + "LobsterDisabledByInvalidIME" + ] + } + ] + } + ], + "LobsterQueryRewrittenDogfood": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled_Dogfood", + "enable_features": [ + "LobsterUseRewrittenQuery" ] } ] @@ -14378,21 +14621,6 @@ ] } ], - "MacAccessibilityOptimizeChildrenChanged": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MacAccessibilityOptimizeChildrenChanged" - ] - } - ] - } - ], "MacPermanentThinController": [ { "platforms": [ @@ -14657,22 +14885,6 @@ ] } ], - "MediaRecorderUseMediaVideoEncoderOnAndroid": [ - { - "platforms": [ - "android", - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MediaRecorderUseMediaVideoEncoder" - ] - } - ] - } - ], "MeetDevicesMojoServices": [ { "platforms": [ @@ -15080,6 +15292,26 @@ ] } ], + "MultiBufferNeverDefer": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "MultiBufferNeverDefer" + ] + } + ] + } + ], "MultiCalendarSupport": [ { "platforms": [ @@ -15111,7 +15343,9 @@ }, "enable_features": [ "KillSpareRenderOnMemoryPressure", - "MultipleSpareRPHs" + "MultipleSpareRPHs", + "SpareRPHUseCriticalMemoryPressure", + "kSpareRPHKeepOneAliveOnMemoryPressure" ] }, { @@ -15121,7 +15355,9 @@ }, "enable_features": [ "KillSpareRenderOnMemoryPressure", - "MultipleSpareRPHs" + "MultipleSpareRPHs", + "SpareRPHUseCriticalMemoryPressure", + "kSpareRPHKeepOneAliveOnMemoryPressure" ] } ] @@ -15147,27 +15383,6 @@ ] } ], - "NavigationPredictorIntersectionObserver": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20241216", - "params": { - "intersection_observation_after_fcp_only": "true", - "intersection_observer_delay": "1000ms", - "max_intersection_observations": "60", - "random_anchor_sampling_period": "1" - }, - "enable_features": [ - "NavigationPredictor" - ] - } - ] - } - ], "NearbyBleV2": [ { "platforms": [ @@ -15388,27 +15603,6 @@ ] } ], - "NewOSCryptAlgorithmForPasswords": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EncryptAllPasswordsWithOSCryptAsync", - "UseNewEncryptionMethod" - ] - } - ] - } - ], "NoPasswordSuggestionFiltering": [ { "platforms": [ @@ -15577,6 +15771,25 @@ ] } ], + "NotificationTelemetryService": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NotificationTelemetry" + ] + } + ] + } + ], "NotificationWidthIncrease": [ { "platforms": [ @@ -15675,6 +15888,36 @@ ] } ], + "OfferPinToTaskbarWhenSettingDefault": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OfferPinToTaskbarWhenSettingDefault" + ] + } + ] + } + ], + "OfflineItemsInNotifications": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OfflineItemsInNotifications" + ] + } + ] + } + ], "OidcAuthProfileManagement": [ { "platforms": [ @@ -16063,6 +16306,34 @@ ] } ], + "OmniboxOnFocusZPS": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_6_Suggestions", + "params": { + "OnFocusMaxSearchSuggestions": "3", + "OnFocusMaxUrlSuggestions": "3", + "OnFocusMostVisitedMaxSuggestions": "6" + }, + "enable_features": [ + "HappinessTrackingSurveyForOmniboxOnFocusZps", + "OmniboxFocusTriggersWebAndSRPZeroSuggest", + "OmniboxHideSuggestionGroupHeaders", + "OmniboxUrlSuggestionsOnFocus", + "ZeroSuggestPrefetchingOnWeb" + ] + } + ] + } + ], "OmniboxPrerender": [ { "platforms": [ @@ -16457,6 +16728,24 @@ ] } ], + "PWANavigationCapturingV2ChromeOS": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "EnabledSettingOffByDefault", + "params": { + "link_capturing_state": "reimpl_default_off" + }, + "enable_features": [ + "PwaNavigationCapturing" + ] + } + ] + } + ], "PWANavigationCapturingV2WindowMacLinux": [ { "platforms": [ @@ -17204,24 +17493,6 @@ ] } ], - "PdfSearchify": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PdfSearchify" - ] - } - ] - } - ], "PdfUseShowSaveFilePicker": [ { "platforms": [ @@ -17444,41 +17715,59 @@ ], "experiments": [ { - "name": "EnabledLessAggressive_20250326", + "name": "EnabledLessAggressive_20250423", "params": { + "availability": "any", + "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<3;window:1;storage:360", + "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", + "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<21;window:7;storage:360", "minimum_time_reshow": "1h", "no_acceptance_back_off": "7d", "scale_max_times_per_day": "3", "scale_max_times_per_week": "21", + "session_rate": "any", "window_size": "10" }, "enable_features": [ + "IPH_PerformanceInterventionDialogFeature", "PerformanceInterventionNotificationImprovements" ] }, { - "name": "EnabledMediumAggressive_20250326", + "name": "EnabledMediumAggressive_20250423", "params": { + "availability": "any", + "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<10;window:1;storage:360", + "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", + "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<70;window:7;storage:360", "minimum_time_reshow": "1h", "no_acceptance_back_off": "7d", "scale_max_times_per_day": "10", "scale_max_times_per_week": "70", + "session_rate": "any", "window_size": "10" }, "enable_features": [ + "IPH_PerformanceInterventionDialogFeature", "PerformanceInterventionNotificationImprovements" ] }, { - "name": "EnabledMoreAggressive_20250326", + "name": "EnabledMoreAggressive_20250423", "params": { + "availability": "any", + "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<24;window:1;storage:360", + "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", + "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<168;window:7;storage:360", "minimum_time_reshow": "1h", "no_acceptance_back_off": "7d", "scale_max_times_per_day": "24", "scale_max_times_per_week": "168", + "session_rate": "any", "window_size": "10" }, "enable_features": [ + "IPH_PerformanceInterventionDialogFeature", "PerformanceInterventionNotificationImprovements" ] } @@ -17542,6 +17831,24 @@ ] } ], + "PermissionsAIv3": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PermissionsAIv3" + ] + } + ] + } + ], "PickerUI": [ { "platforms": [ @@ -17588,21 +17895,16 @@ ] } ], - "PlainTextPainter": [ + "PlayReadyHardwareSecureDecryption": [ { "platforms": [ - "android_webview", - "android", - "chromeos", - "linux", - "mac", "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "PlainTextPainter" + "HardwareSecureDecryption" ] } ] @@ -17930,6 +18232,21 @@ ] } ], + "PowerSavingModeBroadcastReceiverInBackground": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PowerSavingModeBroadcastReceiverInBackground" + ] + } + ] + } + ], "PreOpenPreloadDatabase": [ { "platforms": [ @@ -18038,28 +18355,6 @@ ] } ], - "PreconnectToSearchWithPrivacyModeEnabled": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PreconnectToSearchWithPrivacyModeEnabled" - ] - } - ] - } - ], "PrefetchDocumentManagerEarlyCookieCopySkipped": [ { "platforms": [ @@ -18142,6 +18437,26 @@ ] } ], + "PrefetchScheduler": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrefetchScheduler" + ] + } + ] + } + ], "PrefetchServiceWorker": [ { "platforms": [ @@ -18182,6 +18497,27 @@ ] } ], + "PreloadInlineDeferredImages": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_Preload_20250402", + "enable_features": [ + "DocumentPolicyExpectNoLinkedResources", + "PreloadLinkRelDataUrls" + ] + } + ] + } + ], "PreloadTopChromeWebUI": [ { "platforms": [ @@ -18206,45 +18542,63 @@ ] } ], - "PreloadingViewportHeuristics": [ + "PreloadingDeterministicViewportBasedPredictorAndroid": [ { "platforms": [ "android" ], "experiments": [ { - "name": "Moderate_20241216", + "name": "Aggressive_20250428", "params": { "delay": "500ms", - "distance_from_ptr_down_hi": "0", + "distance_from_ptr_down_hi": "0.0", "distance_from_ptr_down_low": "-0.3", - "largest_anchor_threshold": "0.25" + "enact_candidates": "true", + "intersection_observation_after_fcp_only": "true", + "intersection_observer_delay": "1000ms", + "largest_anchor_threshold": "0.25", + "max_intersection_observations": "60", + "random_anchor_sampling_period": "1" }, "enable_features": [ + "NavigationPredictor", "PreloadingViewportHeuristics" ] }, { - "name": "Aggressive_20241216", + "name": "Moderate_20250428", "params": { - "delay": "500ms", - "distance_from_ptr_down_hi": "0.2", - "distance_from_ptr_down_low": "-0.5", - "largest_anchor_threshold": "0.25" + "delay": "1000ms", + "distance_from_ptr_down_hi": "0.0", + "distance_from_ptr_down_low": "-0.3", + "enact_candidates": "true", + "intersection_observation_after_fcp_only": "true", + "intersection_observer_delay": "1000ms", + "largest_anchor_threshold": "0.25", + "max_intersection_observations": "60", + "random_anchor_sampling_period": "1" }, "enable_features": [ + "NavigationPredictor", "PreloadingViewportHeuristics" ] }, { - "name": "Conservative_20241216", + "name": "Conservative_20250428", "params": { - "delay": "500ms", - "distance_from_ptr_down_hi": "0", - "distance_from_ptr_down_low": "-0.2", - "largest_anchor_threshold": "0.25" + "delay": "1000ms", + "distance_from_ptr_down_hi": "0.0", + "distance_from_ptr_down_low": "-0.3", + "enact_candidates": "true", + "intersection_observation_after_fcp_only": "true", + "intersection_observer_delay": "1000ms", + "largest_anchor_threshold": "0.5", + "max_intersection_observations": "60", + "random_anchor_sampling_period": "1" }, "enable_features": [ + "NavigationPredictor", "PreloadingViewportHeuristics" ] } @@ -18296,7 +18650,6 @@ { "platforms": [ "android", - "android_webview", "chromeos", "linux", "mac", @@ -18304,10 +18657,12 @@ ], "experiments": [ { - "name": "EnabledWithBodySizeLimit2048KiB_20241204", + "name": "Enabled_NoTimeout_Burst", "params": { - "kPrerender2FallbackBodySizeLimit": "2097152", - "kPrerender2FallbackPrefetchReusablePolicy": "UseIfIsLikelyAheadOfPrerender" + "kPrerender2FallbackBodySizeLimit": "4194304", + "kPrerender2FallbackPrefetchReusablePolicy": "UseIfIsLikelyAheadOfPrerender", + "kPrerender2FallbackPrefetchSchedulerPolicy": "Burst", + "kPrerender2FallbackPrefetchUseBlockUntilHeadTimetout": "false" }, "enable_features": [ "Prerender2FallbackPrefetchSpecRules" @@ -18663,6 +19018,21 @@ ] } ], + "PrivacySandboxAttestationsLoadFromAPKAsset": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrivacySandboxAttestationsLoadFromAPKAsset" + ] + } + ] + } + ], "PrivacySandboxInternalsDevUI": [ { "platforms": [ @@ -18798,6 +19168,27 @@ ] } ], + "PrivateAggregationApiErrorReporting": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrivateAggregationApiErrorReporting" + ] + } + ] + } + ], "PrivateStateTokens": [ { "platforms": [ @@ -18898,6 +19289,53 @@ ] } ], + "ProcessRankPolicyAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledAll", + "enable_features": [ + "ChangeUnfocusedPriority", + "ProcessRankPolicyAndroid", + "ProtectedTabsAndroid" + ] + }, + { + "name": "EnabledProcessRankPolicyAndroid", + "enable_features": [ + "ProcessRankPolicyAndroid" + ], + "disable_features": [ + "ChangeUnfocusedPriority", + "ProtectedTabsAndroid" + ] + }, + { + "name": "EnabledChangeUnfocusedPriority", + "enable_features": [ + "ChangeUnfocusedPriority" + ], + "disable_features": [ + "ProcessRankPolicyAndroid", + "ProtectedTabsAndroid" + ] + }, + { + "name": "EnabledProtectedTabsAndroid", + "enable_features": [ + "ProcessRankPolicyAndroid", + "ProtectedTabsAndroid" + ], + "disable_features": [ + "ChangeUnfocusedPriority" + ] + } + ] + } + ], "ProcessReuseOnPrerenderCOOPSwapAndroid": [ { "platforms": [ @@ -18913,6 +19351,25 @@ ] } ], + "ProfileRemoteCommands": [ + { + "platforms": [ + "android", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UserRemoteCommands", + "UserRemoteCommandsInvalidationWithDirectMessagesEnabled" + ] + } + ] + } + ], "ProfileSignalsReportingEnabled": [ { "platforms": [ @@ -19043,25 +19500,6 @@ ] } ], - "ProtectedAudienceBAndAServerAPIMultiSeller": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FledgeBiddingAndAuctionServerAPIMultiSeller" - ] - } - ] - } - ], "ProtectedAudienceBidderUseBalancingThreadSelector": [ { "platforms": [ @@ -19094,7 +19532,8 @@ { "name": "Enabled", "enable_features": [ - "AdAuctionEventRegistration" + "AdAuctionEventRegistration", + "FledgeClickiness" ] } ] @@ -19157,6 +19596,26 @@ ] } ], + "ProtectedAudienceKAnonymityKeyCacheStudy": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FledgeCacheKAnonHashedKeys" + ] + } + ] + } + ], "ProtectedAudienceMultiThreadedSellerWorklet": [ { "platforms": [ @@ -19653,6 +20112,21 @@ ] } ], + "ReadAloudAudioOverviews": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_Dogfood", + "enable_features": [ + "ReadAloudAudioOverviews" + ] + } + ] + } + ], "ReadAloudClankStudy": [ { "platforms": [ @@ -19767,23 +20241,6 @@ ] } ], - "ReadAnythingReadAloudComponentUpdaterMigration": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WasmTtsComponentUpdaterEnabled" - ] - } - ] - } - ], "ReadAnythingReadAloudDesktop": [ { "platforms": [ @@ -20354,27 +20811,6 @@ ] } ], - "RenderPassDrawnRect": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RenderPassDrawnRect" - ] - } - ] - } - ], "RendererSideContentDecoding": [ { "platforms": [ @@ -20436,27 +20872,6 @@ ] } ], - "RequireSRIFor": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CSPRequireSRIFor", - "SRIMessageSignatureEnforcement" - ] - } - ] - } - ], "ResamplingScrollEvents": [ { "platforms": [ @@ -20465,6 +20880,16 @@ "windows" ], "experiments": [ + { + "name": "Latency250", + "params": { + "latency": "0.25", + "mode": "frames" + }, + "enable_features": [ + "ResamplingScrollEventsExperimentalPrediction" + ] + }, { "name": "Latency375", "params": { @@ -20506,6 +20931,45 @@ ] } ], + "RestrictAbusePorts": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "RestrictAbusePorts", + "params": { + "monitor_ports": "30986", + "restrict_ports": "30987,30988,30989" + }, + "enable_features": [ + "RestrictAbusePorts" + ] + } + ] + } + ], + "RestrictAbusePortsOnLocalhost": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "RestrictAbusePortsOnLocalhost", + "params": { + "localhost_restrict_ports": "30987,30988,30989" + }, + "enable_features": [ + "RestrictAbusePortsOnLocalhost" + ] + } + ] + } + ], "RetryGetVideoCaptureDeviceInfos": [ { "platforms": [ @@ -20558,17 +21022,16 @@ ] } ], - "RunBeforeUnloadClosureOnStackInvestigation": [ + "RunDefaultStatusCheck": [ { "platforms": [ - "android", - "android_webview" + "ios" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "RunBeforeUnloadClosureOnStackInvestigation" + "RunDefaultStatusCheck" ] } ] @@ -20595,6 +21058,26 @@ ] } ], + "SRIMessageSignatureEnforcement": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SRIMessageSignatureEnforcement" + ] + } + ] + } + ], "SafeBrowsingDailyPhishingReportsLimit": [ { "platforms": [ @@ -20881,6 +21364,27 @@ ] } ], + "SavedTabGroupUrlRestriction": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableUrlRestriction" + ] + } + ] + } + ], "ScalableIphStudy": [ { "platforms": [ @@ -21814,6 +22318,21 @@ ] } ], + "Scanner": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ScannerUpdate" + ] + } + ] + } + ], "ScannerDogfood": [ { "platforms": [ @@ -22417,14 +22936,12 @@ ], "experiments": [ { - "name": "Enabled_Both_20250207", + "name": "Enabled_Both_20250401", "params": { - "delay_after_tasks": "30", "max_chunk_size": "100" }, "enable_features": [ - "ShouldFreezeSelf", - "V8Flag_memory_reducer_respects_frozen_state" + "ShouldFreezeSelf" ] } ] @@ -22589,45 +23106,6 @@ ] } ], - "ServiceWorkerAvoidMainThreadForInitializationForDesktop": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ServiceWorkerAvoidMainThreadForInitialization" - ] - } - ] - } - ], - "ServiceWorkerDebugCorsExemptHeaderList": [ - { - "platforms": [ - "android", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ServiceWorkerDebugCorsExemptHeaderList" - ] - } - ] - } - ], "ServiceWorkerStaticRouterRaceNetworkRequestPerformanceImprovement": [ { "platforms": [ @@ -22781,6 +23259,53 @@ ] } ], + "SharedTabGroups": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "DataSharingEnabled", + "params": { + "show_send_feedback": "true" + }, + "enable_features": [ + "DataSharing", + "DataSharingJoinOnly" + ] + }, + { + "name": "JoinOnlyEnabled", + "enable_features": [ + "DataSharingJoinOnly" + ] + } + ] + } + ], + "SharedTabGroupsTeamfoodIPhone": [ + { + "platforms": [ + "ios" + ], + "form_factors": [ + "phone" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DataSharing" + ] + } + ] + } + ], "SharedWorkerBlobURLFix": [ { "platforms": [ @@ -23154,9 +23679,31 @@ ] } ], + "SiteInstanceGroupsForDataUrls": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SiteInstanceGroupsForDataUrls" + ] + } + ] + } + ], "SkiaGraphite": [ { "platforms": [ + "android", "mac", "windows" ], @@ -23453,6 +24000,29 @@ ] } ], + "SqlFixedMmapSize": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SqlFixedMmapSize" + ] + } + ] + } + ], "SqlScopedTransactionWebDatabase": [ { "platforms": [ @@ -23499,38 +24069,6 @@ ] } ], - "StaleSessionCookieCleanup": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DeleteStaleSessionCookiesOnStartup" - ] - }, - { - "name": "Auto_Dogfood", - "enable_features": [ - "DeleteStaleSessionCookiesOnStartup" - ] - }, - { - "name": "Opt_In_Dogfood", - "enable_features": [ - "DeleteStaleSessionCookiesOnStartup" - ] - } - ] - } - ], "StandardizedBrowserZoom": [ { "platforms": [ @@ -23703,6 +24241,59 @@ ] } ], + "SwapNewTabAndNewTabInGroupAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SwapNewTabAndNewTabInGroupAndroid" + ] + } + ] + } + ], + "SwiftShaderDeprecation": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "SwiftShaderDisabled", + "disable_features": [ + "AllowSoftwareGLFallbackDueToCrashes", + "AllowSwiftShaderFallback" + ] + } + ] + } + ], + "SyncEnableBookmarksInTransportMode": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SyncEnableBookmarksInTransportMode" + ] + } + ] + } + ], "SyncIncreaseNudgeDelayForSingleClient": [ { "platforms": [ @@ -23861,6 +24452,25 @@ ] } ], + "TabGroupSuggestionMetricsOnly": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_20250423", + "params": { + "consecutive_computation_delay_sec": "5", + "create_suggestions_promotion_ui": "false" + }, + "enable_features": [ + "GroupSuggestionService" + ] + } + ] + } + ], "TabGroupSyncAutoOpenOffByDefault": [ { "platforms": [ @@ -23991,7 +24601,7 @@ ] } ], - "TabSwitcherForeignFaviconSupport": [ + "TabStripLayoutOptimization": [ { "platforms": [ "android" @@ -24000,7 +24610,7 @@ { "name": "Enabled", "enable_features": [ - "TabSwitcherForeignFaviconSupport" + "TabStripLayoutOptimization" ] } ] @@ -24437,6 +25047,21 @@ ] } ], + "TransparentHwndEnlargement": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "DisableTransparentHwndEnlargement", + "disable_features": [ + "EnableTransparentHwndEnlargement" + ] + } + ] + } + ], "TransportSecurityFileWriterScheduleAndroid": [ { "platforms": [ @@ -24721,6 +25346,29 @@ ] } ], + "UnlockDatabaseOnClose": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UnlockDatabaseOnClose" + ] + } + ] + } + ], "UnoDesktopM0FollowUpPart2": [ { "platforms": [ @@ -24828,41 +25476,6 @@ ] } ], - "UseBrowserCalculatedOrigin": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseBrowserCalculatedOrigin" - ] - } - ] - } - ], - "UseBuiltInMetalShaderCache": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "UseBuiltInMetalShaderCache" - ] - } - ] - } - ], "UseClientGmbInterface": [ { "platforms": [ @@ -24970,6 +25583,36 @@ ] } ], + "UseHeuristicForWindowsFullScreenPowerPoint": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseHeuristicForWindowsFullScreenPowerPoint" + ] + } + ] + } + ], + "UseLowQualityInterpolation": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "UseLowQualityInterpolation" + ] + } + ] + } + ], "UseSCContentSharingPicker": [ { "platforms": [ @@ -25130,6 +25773,25 @@ ] } ], + "V8DiscardMemoryPoolBeforeMemoryPressureGcs": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "V8Flag_discard_memory_pool_before_memory_pressure_gcs" + ] + } + ] + } + ], "V8EfficiencyModeTiering": [ { "platforms": [ @@ -25298,6 +25960,25 @@ ] } ], + "V8ManagedZoneMemory": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "V8Flag_managed_zone_memory" + ] + } + ] + } + ], "V8ParallelReclaimUnmodifiedWrappers": [ { "platforms": [ @@ -25510,7 +26191,10 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_for_all_frames", + "params": { + "Target": "AllFrames" + }, "enable_features": [ "VSyncAlignedPresent" ] @@ -25774,37 +26458,6 @@ ] } ], - "VulkanV3": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "VulkanV3", - "enable_features": [ - "VulkanV3" - ] - } - ] - } - ], - "VulkanVMALargeHeapBlockSize": [ - { - "platforms": [ - "android", - "linux" - ], - "experiments": [ - { - "name": "VulkanVMALargeHeapBlockSize", - "enable_features": [ - "VulkanVMALargeHeapBlockSize" - ] - } - ] - } - ], "WebApkBackupAndRestore": [ { "platforms": [ @@ -26327,6 +26980,22 @@ ] } ], + "WebRTC-UseAbsCapTimeForG2gMetric": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250408" + } + ] + } + ], "WebRTC-VP8ConferenceTemporalLayers": [ { "platforms": [ @@ -26711,6 +27380,23 @@ ] } ], + "WebViewPaymentRequest": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidPaymentIntentsOmitDeprecatedParameters", + "UpdatePaymentDetailsIntentFilterInPaymentApp", + "WebPayments" + ] + } + ] + } + ], "WebViewPrefetchNativeLibrary": [ { "platforms": [ @@ -27232,6 +27918,42 @@ ] } ], + "ZramHugePageRecompression": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "DisableHugePageRecompression", + "params": { + "recompression_huge": "false" + }, + "enable_features": [ + "CrOSLateBootSwapZramRecompression" + ] + } + ] + } + ], + "ZramHugePageWriteback": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "DisableHugePageWriteback", + "params": { + "writeback_huge": "false" + }, + "enable_features": [ + "CrOSLateBootSwapZramWriteback" + ] + } + ] + } + ], "iOSCPEPerformanceImprovements": [ { "platforms": [ diff --git a/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom index 3c5ab151..44402b9f 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 @@ -20,7 +20,6 @@ module blink.mojom; // or code path which can be used/triggered by a web page. // // LINT.IfChange(WebFeature) - enum WebFeature { kOBSOLETE_PageDestruction = 0, kWorkerStart = 4, @@ -82,9 +81,9 @@ enum WebFeature { kSubFrameBeforeUnloadFired = 98, kDocumentCreateAttribute = 111, kDocumentCreateAttributeNS = 112, - kDocumentXMLEncoding = 115, // Removed from DOM4. + kDocumentXMLEncoding = 115, // Removed from DOM4. kDocumentXMLStandalone = 116, // Removed from DOM4. - kDocumentXMLVersion = 117, // Removed from DOM4. + kDocumentXMLVersion = 117, // Removed from DOM4. kNavigatorProductSub = 123, kNavigatorVendor = 124, kNavigatorVendorSub = 125, @@ -148,7 +147,6 @@ enum WebFeature { kCSSStyleSheetAddRule = 220, kCSSStyleSheetRemoveRule = 221, // The above items are available in M33 branch. - kInitMessageEvent = 222, kPrefixedDevicePixelRatioMediaFeature = 233, kPrefixedMaxDevicePixelRatioMediaFeature = 234, @@ -168,7 +166,6 @@ enum WebFeature { kDeprecatedWebKitRadialGradient = 263, kDeprecatedWebKitRepeatingRadialGradient = 264, // The above items are available in M34 branch. - kTextAutosizing = 274, kHTMLAnchorElementPingAttribute = 276, kSVGClassName = 279, @@ -198,7 +195,6 @@ enum WebFeature { kPrefixedDocumentFullscreenElement = 323, kPrefixedDocumentExitFullscreen = 324, // The above items are available in M35 branch. - kSVGForeignObjectElement = 325, kSelectionSetPosition = 327, kAnimationFinishEvent = 328, @@ -241,7 +237,6 @@ enum WebFeature { kVTTCueRenderSizeNot100 = 415, kVTTCueRenderAlignNotCenter = 416, // The above items are available in M36 branch. - kElementRequestPointerLock = 417, kVTTCueRenderRtl = 418, kPostMessageFromSecureToInsecure = 419, @@ -276,7 +271,6 @@ enum WebFeature { kCSSSelectorPseudoHostContext = 470, kOBSOLETE_CSSDeepCombinator = 471, // The above items are available in M37 branch. - kUseAsm = 473, kDOMWindowOpen = 475, kDOMWindowOpenFeatures = 476, @@ -304,7 +298,6 @@ enum WebFeature { kSVGStyleElementTitle = 519, kPictureSourceSrc = 520, // The above items are available in M38 branch. - kPicture = 521, kSizes = 522, kSrcsetXDescriptor = 523, @@ -332,7 +325,6 @@ enum WebFeature { kV8Animation_Pause_Method = 554, kV8Animation_Reverse_Method = 555, // The above items are available in M39 branch. - kBreakIterator = 556, kScreenOrientationAngle = 557, kScreenOrientationType = 558, @@ -364,7 +356,6 @@ enum WebFeature { kInputTypeSubmit = 591, kInputTypeSubmitWithValue = 592, // The above items are available in M40 branch. - kSetReferrerPolicy = 593, kTextWholeText = 599, kNotificationCloseEvent = 603, @@ -412,7 +403,6 @@ enum WebFeature { kGetUserMediaInsecureOrigin = 666, kGetUserMediaSecureOrigin = 667, // The above items are available in M41 branch. - kOBSOLETE_DeviceMotionInsecureOrigin = 668, kDeviceMotionSecureOrigin = 669, kOBSOLETE_DeviceOrientationInsecureOrigin = 670, @@ -432,7 +422,6 @@ enum WebFeature { kAudioContextClose = 689, kCSSZoomNotEqualToOne = 691, // The above items are available in M42 branch. - kClientRectListItem = 694, kWindowClientInformation = 695, kWindowFind = 696, @@ -481,7 +470,6 @@ enum WebFeature { kOBSOLETE_LegacyConst = 748, kV8Permissions_Query_Method = 750, // The above items are available in M43 branch. - kSVGHrefBaseVal = 758, kSVGHrefAnimVal = 759, kV8CSSRuleList_Item_Method = 760, @@ -497,7 +485,6 @@ enum WebFeature { kPerformanceFrameTiming = 772, kV8Element_Animate_Method = 773, // The above items are available in M44 branch. - kV8SVGSVGElement_GetElementById_Method = 778, kV8MessageChannel_Constructor = 780, kV8MessagePort_PostMessage_Method = 781, @@ -564,7 +551,6 @@ enum WebFeature { kV8Performance_Memory_AttributeGetter = 884, kV8SharedWorker_WorkerStart_AttributeGetter = 885, // The above items are available in M45 branch. - kHTMLMediaElementPreloadNone = 892, kHTMLMediaElementPreloadMetadata = 893, kHTMLMediaElementPreloadAuto = 894, @@ -610,7 +596,6 @@ enum WebFeature { kReadingCheckedInClickHandler = 938, kFlexboxIntrinsicSizeAlgorithmIsDifferent = 939, // The above items are available in M46 branch. - kOBSOLETE_HTMLImportsHasStyleSheets = 940, kNetInfoType = 946, kNetInfoDownlinkMax = 947, @@ -628,7 +613,6 @@ enum WebFeature { kCredentialManagerGetMediationSilent = 962, kCredentialManagerStore = 963, // The above items are available in M47 branch. - kBlockableMixedContentInSubframeBlocked = 966, kCSSAtRuleCharset = 969, kCSSAtRuleFontFace = 970, @@ -668,7 +652,6 @@ enum WebFeature { kSelectionDOMString = 1012, kInputTypeRangeVerticalAppearance = 1013, // The above items are available in M48 branch. - kCSSFilterReference = 1014, kCSSFilterGrayscale = 1015, kCSSFilterSepia = 1016, @@ -763,7 +746,6 @@ enum WebFeature { kSVG1DOMForeignObjectElement = 1116, kAudioContextCreateIIRFilter = 1117, // The above items are available in M49 branch - kCSSSelectorPseudoSlotted = 1118, kMediaDevicesEnumerateDevices = 1119, kEventComposedPath = 1123, @@ -840,7 +822,6 @@ enum WebFeature { kOBSOLETE_ApplicationCacheAPIInsecureOrigin = 1247, kOBSOLETE_ApplicationCacheAPISecureOrigin = 1248, // The above items are available in M50 branch - kCSSAtRuleApply = 1249, // Removed kCSSSelectorPseudoAny = 1250, kHTMLLabelElementControlForNonFormAssociatedElement = 1263, @@ -864,7 +845,6 @@ enum WebFeature { kFormValidationAbortedSubmission = 1293, kFormValidationShowedMessage = 1294, // The above items are available in M51 branch - kV8Document_Images_AttributeGetter = 1297, kV8Document_Embeds_AttributeGetter = 1298, kV8Document_Plugins_AttributeGetter = 1299, @@ -925,7 +905,6 @@ enum WebFeature { kCSSSelectorPseudoReadOnly = 1377, kCSSSelectorPseudoReadWrite = 1378, // The above items are available in M52 branch - kCSSSelectorPseudoDefined = 1383, kRTCPeerConnectionAddIceCandidatePromise = 1384, kRTCPeerConnectionAddIceCandidateLegacy = 1385, @@ -971,7 +950,6 @@ enum WebFeature { kMediaSourceDurationTruncatingBuffered = 1429, kAudioContextCrossOriginIframe = 1430, // The above items are available in M53 branch - kOBSOLETE_PointerEventSetCapture = 1431, kOBSOLETE_PointerEventDispatch = 1432, kMIDIMessageEventReceivedTime = 1433, @@ -1063,7 +1041,6 @@ enum WebFeature { kUsbDeviceIsochronousTransferOut = 1533, kUsbDeviceReset = 1534, // The above items are available in M54 branch - kPointerEnterLeaveFired = 1535, kPointerOverOutFired = 1536, kDraggableAttribute = 1539, @@ -1109,7 +1086,6 @@ enum WebFeature { kLongTaskObserver = 1615, kCSSOffsetInEffect = 1617, // The above items are available in M55 branch - kVRGetDisplaysInsecureOrigin = 1618, kVRRequestPresent = 1619, kVRRequestPresentInsecureOrigin = 1620, @@ -1177,7 +1153,6 @@ enum WebFeature { kCustomElementRegistryDefine = 1689, kLinkHeaderServiceWorker = 1690, // The above items are available in M56 branch. - kCSSFlexibleBox = 1692, kCSSGridLayout = 1693, kFullscreenAllowedByOrientationChange = 1696, @@ -1262,7 +1237,6 @@ enum WebFeature { kOBSOLETE_SelectionAddRangeIntersect = 1786, kPostMessageFromInsecureToSecureToplevel = 1787, // The above items are available in M57 branch. - kV8MediaSession_Metadata_AttributeGetter = 1788, kV8MediaSession_Metadata_AttributeSetter = 1789, kV8MediaSession_PlaybackState_AttributeGetter = 1790, @@ -1305,7 +1279,6 @@ enum WebFeature { kHTMLEmbedElementSetter = 1841, kTransformUsesBoxSizeOnSVG = 1842, // The above items are available in M58 branch. - kScrollByKeyboardArrowKeys = 1843, kScrollByKeyboardPageUpDownKeys = 1844, kScrollByKeyboardHomeEndKeys = 1845, @@ -1411,7 +1384,6 @@ enum WebFeature { kOBSOLETE_MediaStreamConstraintsGoogDAEchoCancellation = 1958, kMediaStreamConstraintsGoogNoiseReduction = 1959, // The above items are available in M59 branch. - kViewportFixedPositionUnderFilter = 1961, kRequestMIDIAccessWithSysExOption_ObscuredByFootprinting = 1962, kRequestMIDIAccessIframeWithSysExOption_ObscuredByFootprinting = 1963, @@ -1451,7 +1423,6 @@ enum WebFeature { kTableRowDirectionDifferentFromTable = 2015, kTableSectionDirectionDifferentFromTable = 2016, // The above items are available in M60 branch. - kClientHintsDeviceMemory_DEPRECATED = 2017, kCSSRegisterProperty = 2018, kRelativeOrientationSensorConstructor = 2019, @@ -1493,7 +1464,6 @@ enum WebFeature { kMediaSourceMuxedSequenceMode = 2061, kPrepareModuleScript = 2062, // The above items are available as of the M61 branch. - kPresentationRequestStartSecureOrigin = 2063, kPresentationRequestStartInsecureOrigin = 2064, kPersistentClientHintHeader = 2065, @@ -1573,7 +1543,6 @@ enum WebFeature { kWebkitBoxLineClampManyChildren = 2143, kWebkitBoxLineClampDoesSomething = 2144, // The above items are available as of the M62 branch. - kFeaturePolicyAllowAttributeDeprecatedSyntax = 2145, kSuppressHistoryEntryWithoutUserGesture = 2146, kPerformanceServerTiming = 2157, @@ -1593,7 +1562,6 @@ enum WebFeature { kCrossOriginTextPlain = 2175, kCrossOriginTextXml = 2176, // The above items are available as of the M63 branch. - kPerformanceObserverForWindow = 2188, kPerformanceObserverForWorker = 2189, kPaintTimingObserved = 2190, @@ -1654,7 +1622,6 @@ enum WebFeature { kLocalCSSFileExtensionRejected = 2257, kUserMediaDisableHardwareNoiseSuppression = 2258, // The above items are available as of the M64 branch. - kCertificateTransparencyRequiredErrorOnResourceLoad = 2259, kCSSSelectorPseudoWebkitAnyLink = 2260, kAudioWorkletAddModule = 2261, @@ -1731,7 +1698,6 @@ enum WebFeature { kCSSTypedOMStylePropertyMap = 2334, kRTCPeerConnectionWithActiveCsp = 2346, // The above items are available as of the M65 branch. - kImageDecodingAttribute = 2347, kImageDecodeAPI = 2348, kV8HTMLElement_Autocapitalize_AttributeGetter = 2349, @@ -1944,7 +1910,6 @@ enum WebFeature { kCursorImageGT32x32 = 2590, kOBSOLETE_RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics = 2591, // The above items are available in M71 branch. - kResizeObserver_Constructor = 2592, kCollator = 2593, kNumberFormat = 2594, @@ -1997,7 +1962,6 @@ enum WebFeature { kSignedExchangeInnerResponseInMainFrame = 2643, kSignedExchangeInnerResponseInSubFrame = 2644, // The above items are available in M72 branch. - kV8IDBFactory_Databases_Method = 2648, kOpenerNavigationDownloadCrossOrigin = 2649, kV8RegExpMatchIsTrueishOnNonJSRegExp = 2650, @@ -2118,7 +2082,6 @@ enum WebFeature { kOBSOLETE_V8RTCQuicStream_WaitForWriteBufferedAmountBelow_Method = 2767, kOBSOLETE_V8RTCQuicStream_WaitForReadable_Method = 2768, // The above items are available in M73 branch. - kHTMLTemplateElement = 2769, kNoSysexWebMIDIWithoutPermission = 2770, kNoSysexWebMIDIOnInsecureOrigin = 2771, @@ -2154,7 +2117,6 @@ enum WebFeature { kOBSOLETE_AdClickNavigation = 2826, kRTCStatsRelativePacketArrivalDelay = 2827, // The above items are available in M74 branch. - kCSSSelectorHostContextInSnapshotProfile = 2829, kCSSSelectorHostContextInLiveProfile = 2830, kImportMap = 2831, @@ -2197,7 +2159,6 @@ enum WebFeature { kOBSOLETE_V8RTCQuicTransport_SendDatagram_Method = 2869, kOBSOLETE_V8RTCQuicTransport_ReceiveDatagrams_Method = 2870, // The above items are available in M75 branch. - kCSSValueContainStyle = 2871, kWebShareSuccessfulContainingFiles = 2872, kWebShareSuccessfulWithoutFiles = 2873, @@ -2245,7 +2206,6 @@ enum WebFeature { kCookieNoSameSite = 2916, kCookieInsecureAndSameSiteNone = 2917, // The above items are available in M76 branch. - kUnsizedMediaPolicy = 2918, kScrollByPrecisionTouchPad = 2919, kPinchZoom = 2920, @@ -2293,7 +2253,6 @@ enum WebFeature { kDownloadInSandbox = 2975, kDownloadWithoutUserGesture = 2976, // The above items are available in M77 branch. - kAutoplayDynamicDelegation = 2977, kToggleEventHandlerDuringParsing = 2978, kFragmentDoubleHash = 2979, @@ -2344,7 +2303,6 @@ enum WebFeature { kDeprecatedFileSystemWrite = 3026, kPointerLockUnadjustedMovement = 3027, // The above items are available in M78 branch. - kCreateObjectBlob = 3028, kQuotaRead = 3029, // available in M78 branch. kDelegateFocus = 3030, @@ -2380,7 +2338,6 @@ enum WebFeature { kV8RTCRtpReceiver_PlayoutDelayHint_AttributeGetter = 3062, kV8RTCRtpReceiver_PlayoutDelayHint_AttributeSetter = 3063, // The above items are available in M79 branch. - kV8RegExpExecCalledOnSlowRegExp = 3064, kV8RegExpReplaceCalledOnSlowRegExp = 3065, kHasMarkerPseudoElement = 3066, @@ -2434,7 +2391,6 @@ enum WebFeature { kV8SharedArrayBufferConstructed = 3114, kScrollSnapCausesScrollOnInitialLayout = 3115, // The above items are available in M80 branch. - kClientHintsUAMobile = 3116, kV8VideoPlaybackQuality_CorruptedVideoFrames_AttributeGetter = 3117, kLongTaskBufferFull = 3118, @@ -2475,7 +2431,6 @@ enum WebFeature { kSameOriginIframeWindowPrompt = 3153, kSameOriginIframeWindowPrint = 3154, // The above items are available in M81 branch. - kLargeStickyAd = 3155, kCSSComparisonFunctions = 3157, kOBSOLETE_FeaturePolicyProposalWouldChangeBehaviour = 3158, @@ -2522,7 +2477,6 @@ enum WebFeature { kCrossOriginEmbedderPolicyRequireCorp = 3199, kCoopAndCoepIsolated = 3200, // The above items are available in M83 branch. - kV8Document_HasTrustToken_Method = 3202, kForceLoadAtTop = 3203, kOBSOLETE_LegacyLayoutByDetailsMarker = 3206, @@ -2647,7 +2601,6 @@ enum WebFeature { kInlineOverflowScrollWithInlineEndPadding = 3336, kSerialPortGetInfo = 3338, // The above items are available in M85 branch. - kFileSystemPickerMethod = 3339, kV8Window_ShowOpenFilePicker_Method = 3340, kV8Window_ShowSaveFilePicker_Method = 3341, @@ -2778,7 +2731,6 @@ enum WebFeature { kOBSOLETE_ElementAttachInternalsBeforeConstructor = 3470, kSMILElementHasRepeatNEventListener = 3471, // The above items are available in M86 branch. - kWebTransport = 3472, kIdleDetectionPermissionRequested = 3477, kIdentifiabilityStudyReserved3478 = 3478, @@ -3002,7 +2954,6 @@ enum WebFeature { kOBSOLETE_AddressSpacePrivateEmbeddedInUnknownSecureContext = 3696, kOBSOLETE_AddressSpacePrivateEmbeddedInUnknownNonSecureContext = 3697, // The items above roughly this point are available in the M87 branch. - kThirdPartyAccess = 3698, kThirdPartyActivation = 3699, kThirdPartyAccessAndActivation = 3700, @@ -3038,7 +2989,6 @@ enum WebFeature { kAddEventListenerWithAbortSignal = 3730, kXRSessionRequestLightProbe = 3731, // The items above roughly this point are available in the M88 branch. - kBeforematchRevealedHiddenMatchable = 3732, kAddSourceBufferUsingConfig = 3733, kChangeTypeUsingConfig = 3734, @@ -3081,7 +3031,6 @@ enum WebFeature { kAddressSpaceUnknownNonSecureContextNavigatedToPrivate = 3772, kOBSOLETE_RTCPeerConnectionSdpSemanticsPlanB = 3773, // The items above roughly this point are available in the M89 branch. - kFetchRespondWithNoResponseWithUsedRequestBody = 3774, kV8TCPSocket_Close_Method = 3775, kV8TCPSocket_Readable_AttributeGetter = 3776, @@ -3137,7 +3086,6 @@ enum WebFeature { kOBSOLETE_StorageFoundationFlushSync = 3828, kUnrestrictedSharedArrayBuffer = 3829, // The items above roughly this point are available in the M90 branch. - kFeaturePolicyJSAPIAllowsFeatureIFrame = 3830, kFeaturePolicyJSAPIAllowsFeatureDocument = 3831, kFeaturePolicyJSAPIAllowsFeatureOriginIFrame = 3832, @@ -3195,7 +3143,6 @@ enum WebFeature { kWebAppManifestProtocolHandlers = 3884, kRTCPeerConnectionOfferAllowExtmapMixedFalse = 3885, // The items above roughly this point are available in the M91 branch. - kOBSOLETE_NewCanvas2DAPI = 3886, kOBSOLETE_ServiceWorkerSubresourceFilterBypassedRequest = 3887, kWebGPURequestAdapter = 3888, @@ -3253,7 +3200,6 @@ enum WebFeature { kOBSOLETE_kWindowOpenNewPopupBehaviorMismatch = 3941, kExplicitPointerCaptureClickTargetDiff = 3942, // The items above roughly this point are available in the M92 branch. - kControlledNonBlobURLWorkerWillBeUncontrolled = 3943, kMediaMetaThemeColor = 3944, kClientHintsUABitness = 3945, @@ -3275,13 +3221,12 @@ enum WebFeature { kV8URLPattern_Exec_Method = 3961, kSameSiteCookieInclusionChangedByCrossSiteRedirect = 3962, // The items above roughly this point are available in the M93 branch. - kBlobStoreAccessAcrossAgentClustersInResolveAsURLLoaderFactory = 3963, kBlobStoreAccessAcrossAgentClustersInResolveForNavigation = 3964, kTapDelayEnabled = 3965, kV8URLPattern_CompareComponent_Method = 3966, kEarlyHintsPreload = 3967, - kClientHintsUAReduced = 3968, //Removed in M116. + kClientHintsUAReduced = 3968, //Removed in M116. kSpeculationRulesPrerender = 3969, kOBSOLETE_ExecCommandWithTrustedTypes = 3970, kOBSOLETE_CSSSelectorPseudoHasInSnapshotProfile = 3971, @@ -3290,7 +3235,6 @@ enum WebFeature { kCanvasRenderingContext2DContextLostEvent = 3974, kCanvasRenderingContext2DContextRestoredEvent = 3975, // The items above roughly this point are available in the M94 branch. - kClientHintsViewportHeight = 3976, kV8NavigatorManagedData_GetDirectoryId_Method = 3977, kV8NavigatorManagedData_GetHostname_Method = 3978, @@ -3337,7 +3281,6 @@ enum WebFeature { kV8SharedArrayBufferConstructedInExtensionWithoutIsolation = 4020, kMediaSourceExtensionsForWebCodecs = 4021, // The items above roughly this point are available in the M95 branch. - kPaymentRequestResponse = 4023, kPaymentRequestComplete = 4024, kHTMLCanvasElement_2D = 4025, @@ -3376,7 +3319,6 @@ enum WebFeature { kExternalProtocolBlockedBySandbox = 4058, kOBSOLETE_WebAssemblyDynamicTiering = 4059, // The items above roughly this point are available in the M96 branch. - kReadOrWriteWebDatabase = 4061, kAutoDarkMode = 4062, kHttpRefreshWhenScriptingDisabled = 4063, @@ -3392,7 +3334,6 @@ enum WebFeature { kOBSOLETE_OpenWebDatabaseInsecureContext = 4073, kScriptWebBundle = 4074, // The items above roughly this point are available in the M97 branch. - kOBSOLETE_kRunAdAuction = 4075, kOBSOLETE_kJoinAdInterestGroup = 4076, kFileSystemUrlNavigation = 4077, @@ -3413,7 +3354,6 @@ enum WebFeature { kOBSOLETE_PrivateNetworkAccessIgnoredPreflightError = 4092, kAbortPaymentRespondWithTrue = 4093, // The items above roughly this point are available in the M98 branch. - kAllowPaymentRequestAttributeHasEffect = 4094, kV8PaymentResponse_Retry_Method = 4095, kOBSOLETE_kWebAppManifestUserPreferences = 4096, @@ -3467,11 +3407,10 @@ enum WebFeature { kWindowProxyCrossOriginAccessFromOtherPageWindow = 4144, kPrivateNetworkAccessFetchedWorkerScript = 4145, // The items above roughly this point are available in the M99 branch. - kFrameNameContainsBrace = 4146, kFrameNameContainsNewline = 4147, kAbortSignalThrowIfAborted = 4148, - kClientHintsUAFull = 4149, // Removed in M116. + kClientHintsUAFull = 4149, // Removed in M116. kPrivateNetworkAccessWithinWorker = 4150, kClientHintsUAWoW64 = 4151, kFetchSetCookieInRequestGuardedHeaders = 4152, @@ -3501,7 +3440,6 @@ enum WebFeature { kUsbDeviceForget = 4176, kPartitionedCookies = 4177, // The items above roughly this point are available in the M100 branch. - kSecureContextIncorrectForSharedWorker = 4178, kV8FunctionPrototypeArguments = 4179, kV8FunctionPrototypeCaller = 4180, @@ -3514,11 +3452,10 @@ enum WebFeature { kPrivacySandboxAdsAPIs = 4187, kFledge = 4188, // The items above roughly this point are available in the M101 branch. - kElementShowPopover = 4189, kElementHidePopover = 4190, kValidPopoverAttribute = 4191, - kDeprecationExample = 4192, // Used as an example Deprecation code pointer. + kDeprecationExample = 4192, // Used as an example Deprecation code pointer. kRTCLocalSdpModificationOpusStereo = 4193, kNavigatorUAData_Mobile = 4194, kNavigatorUAData_Platform = 4195, @@ -3539,7 +3476,6 @@ enum WebFeature { kAudioContextOutputLatency = 4210, kV8Window_QueryLocalFonts_Method = 4211, // The items above roughly this point are available in the M102 branch. - kCSSAtRuleScope = 4212, kOBSOLETE_DeferredShapingDisabledByPositioned = 4213, kCapabilityDelegationOfFullscreenRequest = 4214, @@ -3557,7 +3493,6 @@ enum WebFeature { kOBSOLETE_FedCmLogoutRps = 4226, kV8Navigator_DeprecatedReplaceInURN_Method = 4227, // The items above roughly this point are available in the M103 branch. - kWebAppBorderless = 4228, kPaymentInstruments = 4229, kV8PaymentInstruments_Clear_Method = 4230, @@ -3615,7 +3550,6 @@ enum WebFeature { kOBSOLETE_kV8PendingBeacon_SetData_Method = 4282, kOBSOLETE_kV8PendingBeacon_SendNow_Method = 4283, // The items above roughly this point are available in the M104 branch. - kTabSharingBarSwitchToCapturer = 4284, kTabSharingBarSwitchToCapturee = 4285, kOBSOLATE_AutomaticLazyAds = 4286, @@ -3663,7 +3597,6 @@ enum WebFeature { kContentVisibilityAutoStateChangeHandlerRegistered = 4328, kReplacedElementPaintedWithLargeOverflow = 4329, // The items above roughly this point are available in the M105 branch. - kFlexboxAbsPosJustifyContent = 4330, kMultipleFetchHandlersInServiceWorker = 4331, kStorageAccessAPI_requestStorageAccessFor_Method = 4332, @@ -3671,7 +3604,6 @@ enum WebFeature { kPrivateAggregationApiFledge = 4334, kPrivateAggregationApiSharedStorage = 4335, // The items above roughly this point are available in the M106 branch. - kOBSOLETE_DeferredShaping2ReshapedByComputedStyle = 4336, kOBSOLETE_DeferredShaping2ReshapedByDomContentLoaded = 4337, kOBSOLETE_DeferredShaping2ReshapedByFcp = 4338, @@ -3700,7 +3632,6 @@ enum WebFeature { kOBSOLETE_CSSAtSupportsDropInvalidWhileForgivingParsing = 4361, kPermissionsPolicyUnload = 4362, // The items above roughly this point are available in the M107 branch. - kServiceWorkerSkippedForSubresourceLoad = 4363, kClientHintsPrefersReducedMotion = 4364, kOBSOLETE_WakeLockAcquireScreenLockWithoutActivation = 4365, @@ -3711,7 +3642,6 @@ enum WebFeature { kOBSOLETE_GetDisplayMediaWithoutUserActivation = 4370, kBackForwardCacheNotRestoredReasons = 4371, // The items above roughly this point are available in the M108 branch. - kCSSNesting = 4372, kSandboxIneffectiveAllowOriginAllowScript = 4373, kDocumentOpenDifferentWindow = 4374, @@ -3728,7 +3658,6 @@ enum WebFeature { kOBSOLETE_LayoutMediaInlineChildren = 4385, kOBSOLETE_ReduceAcceptLanguage = 4386, // The items above roughly this point are available in the M109 branch. - kOBSOLETE_UuidInPackageUrlNavigation = 4387, kCSSValueAppearanceMediaSliderRendered = 4388, kCSSValueAppearanceMediaSliderThumbRendered = 4389, @@ -3749,7 +3678,7 @@ enum WebFeature { kCSSAtRuleStylistic = 4404, kCSSAtRuleStyleset = 4405, kCSSAtRuleCharacterVariant = 4406, - kCSSAtRuleSwash = 4407 , + kCSSAtRuleSwash = 4407, kCSSAtRuleOrnaments = 4408, kCSSAtRuleAnnotation = 4409, kOBSOLETE_ServiceWorkerBypassFetchHandlerForMainResource = 4410, @@ -3770,7 +3699,6 @@ enum WebFeature { kNoVarySearch = 4425, kFedCmUserInfo = 4426, // The items above roughly this point are available in the M110 branch. - kOBSOLETE_IDNA2008DeviationCharacterInHostnameOfSubresource = 4427, kOBSOLETE_IDNA2008DeviationCharacterInHostnameOfIFrame = 4428, kWindowOpenPopupOnMobile = 4429, @@ -3783,7 +3711,8 @@ enum WebFeature { kCSSBackgroundClipBorder = 4436, kCSSBackgroundClipContent = 4437, kCSSBackgroundClipPadding = 4438, - kOBSOLETE_DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning = 4439, + kOBSOLETE_DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning + = 4439, kOBSOLETE_kCSSPseudoHasContainsMixOfValidAndInvalid = 4440, kOBSOLETE_kCSSPseudoIsWhereContainsMixOfValidAndInvalid = 4441, kPrivateNetworkAccessFetchedSubFrame = 4442, @@ -3799,7 +3728,6 @@ enum WebFeature { kSameDocumentCrossOriginInitiator = 4452, kServiceWorkerFetchHandlerModifiedAfterInitialization = 4453, // The items above roughly this point are available in the M111 branch. - kOBSOLETE_OptionLabelInQuirksMode = 4454, kParseFromStringIncludeShadows = 4455, kWebAppManifestScopeExtensions = 4456, @@ -3826,7 +3754,6 @@ enum WebFeature { kFencedFrameConfigAttribute = 4477, kURLSearchParams_Has_Delete_MultipleArguments = 4478, // The items above roughly this point are available in the M112 branch. - kPopoverTypeHint = 4480, kOBSOLETE_WebGPUWebCodecs = 4481, kRTCPeerConnectionLegacyGetStatsTrial = 4482, @@ -3875,7 +3802,6 @@ enum WebFeature { kOBSOLETE_WindowOpenFullscreenRequested = 4525, kOBSOLETE_FullscreenAllowedByWindowOpen = 4526, // The items above roughly this point are available in the M113 branch. - kAttributeValueContainsLtOrGt = 4527, kOBSOLETE_V8ImportAssertionDeprecatedSyntax = 4528, kImageCaptureBackgroundBlur = 4529, @@ -3899,7 +3825,6 @@ enum WebFeature { kSecurePaymentConfirmationActivationlessShow = 4547, kOBSOLETE_ServiceWorkerBypassFetchHandlerForAllWithRaceNetworkRequest = 4548, // The items above roughly this point are available in the M114 branch. - kFlexIntrinsicSizesCacheMiss = 4549, kCSSStyleContainerQuery = 4550, kCSSValueAppearanceMediaSlider = 4551, @@ -3910,8 +3835,10 @@ enum WebFeature { kCSSValueAppearanceSliderVertical = 4556, kCSSValueAppearanceSliderthumbHorizontal = 4557, kCSSValueAppearanceSliderthumbVertical = 4558, - kOBSOLETE_ServiceWorkerBypassFetchHandlerForAllWithRaceNetworkRequestByOriginTrial = 4559, - kOBSOLETE_EventTimingPaintedPresentationPromiseResolvedWithEarlierPromiseUnresolved = 4560, + kOBSOLETE_ServiceWorkerBypassFetchHandlerForAllWithRaceNetworkRequestByOriginTrial + = 4559, + kOBSOLETE_EventTimingPaintedPresentationPromiseResolvedWithEarlierPromiseUnresolved + = 4560, kLinkRelPreloadAsFont = 4561, kCrossWindowAccessToBrowserGeneratedDocument = 4562, kSpeculationRulesNoVarySearchHint = 4563, @@ -3931,7 +3858,6 @@ enum WebFeature { kLongAnimationFrameObserver = 4577, kLongAnimationFrameRequested = 4578, // The items above roughly this point are available in the M115 branch. - kFedCmLoginHint = 4579, kFedCmRpContext = 4580, kEventTimingArtificialPointerupOrClick = 4581, @@ -3954,7 +3880,6 @@ enum WebFeature { kGetCoalescedEventsInInsecureContext = 4598, kCSPEESameOriginBlanketEnforcement = 4599, // The items above roughly this point are available in the M116 branch. - kSharedDictionaryUsed = 4601, kSharedDictionaryUsedForNavigation = 4602, kSharedDictionaryUsedForMainFrameNavigation = 4603, @@ -3973,7 +3898,6 @@ enum WebFeature { kV8WasmMultiMemory = 4616, kV8WasmGC = 4617, // The items above roughly this point are available in the M117 branch. - kOBSOLETE_ORBBlockWithoutAnyEventHandler = 4618, kOBSOLETE_ORBBlockWithOnErrorButWithoutOnLoadEventHandler = 4619, kOBSOLETE_ORBBlockWithOnLoadButWithoutOnErrorEventHandler = 4620, @@ -4022,7 +3946,6 @@ enum WebFeature { kViewportFitCover = 4663, kViewportFitCoverOrSafeAreaInsetBottom = 4664, // The items above roughly this point are available in the M118 branch. - kOutOfFlowJustifySelfNoInsets = 4665, kOutOfFlowJustifySelfSingleInset = 4666, kOutOfFlowJustifySelfBothInsets = 4667, @@ -4034,7 +3957,6 @@ enum WebFeature { kTextWrapBalance = 4673, kTextWrapPretty = 4674, // The items above roughly this point are available in the M119 branch. - kSourceMappingUrlMagicCommentAtSign = 4676, kHTMLDetailsElementNameAttribute = 4677, kHTMLDetailsElementNameAttributeClosesSelf = 4678, @@ -4058,7 +3980,8 @@ enum WebFeature { kStorageAccessAPI_requestStorageAccess_BeyondCookies = 4696, kStorageAccessAPI_requestStorageAccess_BeyondCookies_all = 4697, kStorageAccessAPI_requestStorageAccess_BeyondCookies_sessionStorage = 4698, - kStorageAccessAPI_requestStorageAccess_BeyondCookies_sessionStorage_Use = 4699, + kStorageAccessAPI_requestStorageAccess_BeyondCookies_sessionStorage_Use = + 4699, kStorageAccessAPI_requestStorageAccess_BeyondCookies_localStorage = 4700, kStorageAccessAPI_requestStorageAccess_BeyondCookies_localStorage_Use = 4701, kElementCheckVisibilityOptionCheckVisibilityCSS = 4702, @@ -4071,7 +3994,6 @@ enum WebFeature { kOBSOLETE_CSSDeclarationAfterNestedRule = 4709, kThirdPartyCookieAdAccessBlockByExperiment = 4710, // The items above roughly this point are available in the M120 branch. - kServiceWorkerStaticRouter_AddRoutes = 4711, kStorageAccessAPI_requestStorageAccess_BeyondCookies_caches = 4712, kStorageAccessAPI_requestStorageAccess_BeyondCookies_caches_Use = 4713, @@ -4087,11 +4009,14 @@ enum WebFeature { kStorageAccessAPI_requestStorageAccess_BeyondCookies_estimate = 4723, kStorageAccessAPI_requestStorageAccess_BeyondCookies_estimate_Use = 4724, kStorageAccessAPI_requestStorageAccess_BeyondCookies_createObjectURL = 4725, - kStorageAccessAPI_requestStorageAccess_BeyondCookies_createObjectURL_Use = 4726, + kStorageAccessAPI_requestStorageAccess_BeyondCookies_createObjectURL_Use = + 4726, kStorageAccessAPI_requestStorageAccess_BeyondCookies_revokeObjectURL = 4727, - kStorageAccessAPI_requestStorageAccess_BeyondCookies_revokeObjectURL_Use = 4728, + kStorageAccessAPI_requestStorageAccess_BeyondCookies_revokeObjectURL_Use = + 4728, kStorageAccessAPI_requestStorageAccess_BeyondCookies_BroadcastChannel = 4729, - kStorageAccessAPI_requestStorageAccess_BeyondCookies_BroadcastChannel_Use = 4730, + kStorageAccessAPI_requestStorageAccess_BeyondCookies_BroadcastChannel_Use = + 4730, kThirdPartyCookieDeprecation_AllowByExplicitSetting = 4731, kThirdPartyCookieDeprecation_AllowByGlobalSetting = 4732, kThirdPartyCookieDeprecation_AllowBy3PCDMetadata = 4733, @@ -4117,7 +4042,6 @@ enum WebFeature { kTrustedTypesIsCheck = 4753, kOBSOLETE_MouseDragOnCancelledMouseMove = 4754, // The items above roughly this point are available in the M121 branch. - kFedCmDomainHint = 4755, kLCPImageWasLazy = 4756, kEventTargetOnObservable = 4757, @@ -4140,7 +4064,8 @@ enum WebFeature { kEffectiveAlignContentForTableCell = 4774, kUserFeatureNgOptimizedImage = 4775, kCSSAtRulePageMargin = 4776, - kThirdPartyCookieDeprecation_AllowByEnterprisePolicyCookieAllowedForUrls = 4777, + kThirdPartyCookieDeprecation_AllowByEnterprisePolicyCookieAllowedForUrls = + 4777, kUserFeatureNgAfterRender = 4778, kUserFeatureNgHydration = 4779, kCapturedSurfaceControl = 4780, @@ -4227,7 +4152,6 @@ enum WebFeature { kCSSFunctions = 4861, kCSSPageRule = 4862, // The items above roughly this point are available in the M123 branch. - kV8RTCRtpReceiver_JitterBufferTarget_AttributeGetter = 4863, kV8RTCRtpReceiver_JitterBufferTarget_AttributeSetter = 4864, kTrustedTypesIntrospectionAttributeType = 4865, @@ -4287,7 +4211,6 @@ enum WebFeature { kFledgeAuctionReportBuyerDebugModeConfig = 4919, kFedCmButtonMode = 4920, // The items above roughly this point are available in the M124 branch. - kHTMLPermissionElement = 4921, kOBSOLETE_V8ModelGenericSession_Execute_Method = 4922, kOBSOLETE_V8ModelGenericSession_ExecuteStreaming_Method = 4923, @@ -4296,9 +4219,9 @@ enum WebFeature { kV8Animation_OverallProgress_AttributeGetter = 4926, kOBSOLETE_V8ModelManager_DefaultGenericSessionOptions_Method = 4927, kQuirksModeCursorHandApplied = 4928, - kSkippedPreloadScanning = 4929, + kOBSOLETE_SkippedPreloadScanning = 4929, kCSSColor_SpaceRGB = 4930, - kCSSColor_SpaceRGB_outOfRec2020= 4931, + kCSSColor_SpaceRGB_outOfRec2020 = 4931, kCSSColor_SpaceOkLxx = 4932, kCSSColor_SpaceOkLxx_outOfRec2020 = 4933, kSandboxedSrcdocFrameResolvesRelativeURL = 4934, @@ -4308,11 +4231,10 @@ enum WebFeature { kFoldableAPIs = 4938, kSnapEvent = 4939, kStaticPropertyInAnimation = 4940, - kSimplifyLoadingTransparentPlaceholderImage = 4941, + kOBSOLETE_SimplifyLoadingTransparentPlaceholderImage = 4941, kIdentityDigitalCredentialsSuccess = 4942, kOBSOLETE_V8DeviceProperties_UniqueId_AttributeGetter = 4943, // The items above roughly this point are available in the M125 branch. - kSharedStorageAPI_SelectURLOverallPageloadBudgetInsufficient = 4944, kOBSOLETE_V8LanguageTranslator_Translate_Method = 4945, kOBSOLETE_V8Translation_CanTranslate_Method = 4946, @@ -4343,7 +4265,6 @@ enum WebFeature { kDocumentPolicyIncludeJSCallStacksInCrashReports = 4971, kMaximumHTMLParserDOMTreeDepthHit = 4972, // The items above roughly this point are available in the M126 branch. - kV8ModelGenericSession_Destroy_Method = 4973, kUsedDeviceScaleAdjustment = 4974, kOBSOLETE_DisableThirdPartyStoragePartitioning2 = 4975, @@ -4372,7 +4293,6 @@ enum WebFeature { kV8DocumentAllLegacyCall = 4998, kV8DocumentAllLegacyConstruct = 4999, // The items above roughly this point are available in the M127 branch. - kInsideListMarkerPositionQuirk = 5000, kZstdContentEncodingForNavigation = 5001, kZstdContentEncodingForMainFrameNavigation = 5002, @@ -4408,11 +4328,10 @@ enum WebFeature { kButtonTypeAttrInvalid = 5032, kButtonTypeAttrEmptyString = 5033, kProtectedAudienceDirectFromSellerSignals = 5034, - kWebGPUSubgroupsFeatures = 5035, + kOBSOLETE_WebGPUSubgroupsFeatures = 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, @@ -4448,7 +4367,6 @@ enum WebFeature { kOBSOLETE_V8AIRewriter_RewriteStreaming_Method = 5070, kOBSOLETE_V8AIRewriter_Destroy_Method = 5071, // The items above roughly this point are available in the M129 branch. - kFencedFrameCanLoadOpaqueURL = 5072, kV8Performance_Memory_AttributeGetter_NotLockedToSite = 5073, kPartitionedPopin_OpenAttempt = 5074, @@ -4480,7 +4398,6 @@ enum WebFeature { kDocumentPolicyExpectNoLinkedResources = 5100, kOBSOLETE_SelectionIsCollapsedBehaviorChange = 5101, // The items above roughly this point are available in the M130 branch. - kTopicsAPIAll = 5102, kPaymentRequestDeprecatedPaymentMethod = 5103, kV8PublicKeyCredential_SignalUnknownCredential_Method = 5104, @@ -4489,18 +4406,19 @@ enum WebFeature { kOBSOLETE_V8AIAssistant_CountPromptTokens_Method = 5107, kHTMLSearchElement = 5108, kHTMLUnsafeMethods = 5109, - kOBSOLETE_V8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter = 5110, + kOBSOLETE_V8GPUSupportedLimits_MaxInterStageShaderComponents_AttributeGetter + = 5110, kOBSOLETE_MaxInterStageShaderComponentsRequiredLimit = 5111, kShowPickerSelect = 5112, kAudioContextPlayoutStats = 5113, kThirdPartyCookieBlocked = 5114, - kV8PerformanceResourceTiming_WorkerRouterEvaluationStart_AttributeGetter = 5115, + kV8PerformanceResourceTiming_WorkerRouterEvaluationStart_AttributeGetter = + 5115, kV8PerformanceResourceTiming_WorkerCacheLookupStart_AttributeGetter = 5116, 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, @@ -4531,7 +4449,8 @@ enum WebFeature { kOBSOLETE_V8AILanguageModelCapabilities_Available_AttributeGetter = 5147, kOBSOLETE_V8AILanguageModelCapabilities_DefaultTopK_AttributeGetter = 5148, kOBSOLETE_V8AILanguageModelCapabilities_MaxTopK_AttributeGetter = 5149, - kOBSOLETE_V8AILanguageModelCapabilities_DefaultTemperature_AttributeGetter = 5150, + kOBSOLETE_V8AILanguageModelCapabilities_DefaultTemperature_AttributeGetter = + 5150, kOBSOLETE_V8AILanguageModelFactory_Capabilities_Method = 5151, kOBSOLETE_V8AILanguageModelFactory_Create_Method = 5152, kOBSOLETE_V8AILanguageModel_MaxTokens_AttributeGetter = 5153, @@ -4573,7 +4492,6 @@ enum WebFeature { kClipPathGeometryBox = 5189, kActiveViewTransitionPseudo = 5190, // The items above roughly this point are available in the M132 branch. - kScrollFunctionTimeline = 5191, kViewFunctionTimeline = 5192, kV8Animation_Constructor = 5193, @@ -4701,7 +4619,7 @@ enum WebFeature { kV8GeolocationCoordinates_Speed_AttributeGetter = 5315, kCSSEnvironmentVariable_SafeAreaMaxInsetBottom = 5316, kOBSOLETE_V8AILanguageModel_ExpectedInputLanguages_AttributeGetter = 5317, - kV8AnimationTrigger_Constructor= 5318, + kV8AnimationTrigger_Constructor = 5318, kPrivateNetworkAccessInsecureResourceNotKnownPrivate = 5319, kGeolocationGetCurrentPositionHighAccuracy = 5320, kGeolocationWatchPositionHighAccuracy = 5321, @@ -4847,7 +4765,94 @@ enum WebFeature { kLanguageDetector_ExpectedInputLanguages = 5461, kServiceWorkerPushEventListener = 5462, kServiceWorkerPushSubscriptionChangeEventListener = 5463, + kMediaPlaybackWhileNotVisiblePermissionPolicy = 5464, + kFirstLinePseudoElement = 5465, + kFirstLetterPseudoElement = 5466, + kCheckMarkPseudoElement = 5467, + kBeforePseudoElement = 5468, + kAfterPseudoElement = 5469, + kPickerIconPseudoElement = 5470, + kMarkerPseudoElement = 5471, + kBackdropPseudoElement = 5472, + kSelectionPseudoElement = 5473, + kSearchTextPseudoElement = 5474, + kTargetTextPseudoElement = 5475, + kCustomHighlightPseudoElement = 5476, + kSpellingErrorPseudoElement = 5477, + kGrammarErrorPseudoElement = 5478, kSpeculationRulesTags = 5479, + kMLCreateContextGPUDevice = 5480, + kDisallowedSelectChild = 5481, + kDisallowedOptGroupChild = 5482, + kNonPhrasingContentOptionChild = 5483, + kInteractiveContentOptionChild = 5484, + kInteractiveContentLegendChild = 5485, + kPrivateAggregationApiErrorReporting = 5486, + kLanguageModel_Prompt_Input_Image = 5487, + kLanguageModel_Prompt_Input_Audio = 5488, + kHttp3 = 5489, + kCanvasReadbackNoise = 5490, + kCanvasReadbackNoiseMatchesHeuristics = 5491, + kSVGImage = 5492, + kDeviceBoundSessionRequestInScope = 5493, + kDeviceBoundSessionRequestDeferral = 5494, + kRoleAttributeMenu = 5495, + kRoleAttributeMenubar = 5496, + kRoleAttributeMenuitem = 5497, + kRoleAttributeMenuitemcheckbox = 5498, + kRoleAttributeMenuitemradio = 5499, + kRoleAttributeButton = 5500, + kRoleAttributeCell = 5501, + kRoleAttributeCheckbox = 5502, + kRoleAttributeColumnheader = 5503, + kRoleAttributeCombobox = 5504, + kRoleAttributeDialog = 5505, + kRoleAttributeGrid = 5506, + kRoleAttributeGridcell = 5507, + kRoleAttributeHeading = 5508, + kRoleAttributeImg = 5509, + kRoleAttributeInput = 5510, + kRoleAttributeLink = 5511, + kRoleAttributeList = 5512, + kRoleAttributeListbox = 5513, + kRoleAttributeListitem = 5514, + kRoleAttributeMain = 5515, + kRoleAttributeMarquee = 5516, + kRoleAttributeMath = 5517, + kRoleAttributeMeter = 5518, + kRoleAttributeNavigation = 5519, + kRoleAttributeOption = 5520, + kRoleAttributeProgressbar = 5521, + kRoleAttributeRadio = 5522, + kRoleAttributeRadiogroup = 5523, + kRoleAttributeRange = 5524, + kRoleAttributeRow = 5525, + kRoleAttributeRowgroup = 5526, + kRoleAttributeRowheader = 5527, + kRoleAttributeScrollbar = 5528, + kRoleAttributeSearch = 5529, + kRoleAttributeSearchbox = 5530, + kRoleAttributeSelect = 5531, + kRoleAttributeSeparator = 5532, + kRoleAttributeSlider = 5533, + kRoleAttributeSpinbutton = 5534, + kRoleAttributeSwitch = 5535, + kRoleAttributeTab = 5536, + kRoleAttributeTable = 5537, + kRoleAttributeTablist = 5538, + kRoleAttributeTabpanel = 5539, + kRoleAttributeTextbox = 5540, + kRoleAttributeToolbar = 5541, + kRoleAttributeTooltip = 5542, + kRoleAttributeTree = 5543, + kRoleAttributeTreegrid = 5544, + kRoleAttributeTreeitem = 5545, + kInputParsedParentSelect = 5546, + kInputParsedAncestorSelect = 5547, + kCSSSelectorPseudoHasSlotted = 5548, + kSelectMultipleShowPopup = 5549, + kSharedWorkerExtendedLifetimeFeatureEnabled = 5550, + kSharedWorkerExtendedLifetimeIsTrue = 5551, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots. Also don't add extra diff --git a/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom index e7c3bc26..ffd46eb5 100755 --- a/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom +++ b/tools/under-control/src/third_party/blink/public/mojom/webpreferences/web_preferences.mojom @@ -120,6 +120,7 @@ struct WebPreferences { int32 minimum_font_size; int32 minimum_logical_font_size; string default_encoding; + bool always_show_context_menu_on_touch; bool context_menu_on_mouse_up; bool javascript_enabled; bool web_security_enabled; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl index 641f66ed..f01b7c7b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl @@ -9,6 +9,6 @@ dictionary AnimationTriggerOptions { AnimationTimeline? timeline; (DOMString or TimelineRangeOffset) rangeStart = "normal"; (DOMString or TimelineRangeOffset) rangeEnd = "normal"; - (DOMString or TimelineRangeOffset) exitRangeStart = "normal"; - (DOMString or TimelineRangeOffset) exitRangeEnd = "normal"; + (DOMString or TimelineRangeOffset) exitRangeStart = "auto"; + (DOMString or TimelineRangeOffset) exitRangeEnd = "auto"; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/keyframe_animation_options.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/keyframe_animation_options.idl index a58acd10..7f9af957 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/keyframe_animation_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/keyframe_animation_options.idl @@ -14,7 +14,8 @@ enum TimelineRange { "entry", "entry-crossing", "exit", - "exit-crossing" }; + "exit-crossing", + "scroll" }; dictionary TimelineRangeOffset { TimelineRange rangeName; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl index 1196fcb7..014a9ad0 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/document.idl @@ -59,6 +59,11 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [NewObject, RaisesException] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data); [NewObject, CEReactions, RaisesException] Node importNode(Node node, optional boolean deep = false); + + // TODO(https://crbug.com/399124619): Merge all importnode variants, once Scoped Custom Element Registries + // are shipped unflagged + [NewObject, CEReactions, RaisesException, RuntimeEnabled=ScopedCustomElementRegistry] Node importNode(Node node, ImportNodeOptions options); + [RaisesException, CEReactions] Node adoptNode(Node node); [NewObject, RaisesException, MeasureAs=DocumentCreateAttribute] Attr createAttribute(DOMString localName); diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/document_or_shadow_root.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/document_or_shadow_root.idl index 68a6e21e..236d632c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/document_or_shadow_root.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/document_or_shadow_root.idl @@ -26,4 +26,7 @@ interface mixin DocumentOrShadowRoot { // Picture-in-picture API // https://w3c.github.io/picture-in-picture/#documentorshadowroot-extension [Measure] readonly attribute Element? pictureInPictureElement; + + [RuntimeEnabled=ScopedCustomElementRegistry] + readonly attribute CustomElementRegistry? customElementRegistry; }; 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 0ed1a34f..d8c71eb9 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 @@ -175,6 +175,9 @@ dictionary SetHTMLUnsafeOptions { // Heading Offset [CEReactions, RuntimeEnabled=HeadingOffset] attribute unsigned long headingOffset; [CEReactions, RuntimeEnabled=HeadingOffset] attribute boolean headingReset; + + // Scoped Custom Element Registries + [RuntimeEnabled=ScopedCustomElementRegistry] readonly attribute CustomElementRegistry? customElementRegistry; }; Element includes ParentNode; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/element_creation_options.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/element_creation_options.idl index 4527018f..a6fa522a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/element_creation_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/element_creation_options.idl @@ -6,4 +6,5 @@ dictionary ElementCreationOptions { DOMString is; + [RuntimeEnabled=ScopedCustomElementRegistry] CustomElementRegistry customElementRegistry; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/import_node_options.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/import_node_options.idl new file mode 100755 index 00000000..93c1131b --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/import_node_options.idl @@ -0,0 +1,8 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +dictionary ImportNodeOptions { + [RuntimeEnabled=ScopedCustomElementRegistry] CustomElementRegistry customElementRegistry; + boolean selfOnly = false; +}; 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 90403379..40114231 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,7 +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, MeasureAs="WebDXFeature::kMoveBeforeAPI"] void moveBefore(Node node, Node? child); + [CEReactions, PerWorldBindings, RaisesException, MeasureAs="WebDXFeature::kMoveBefore"] 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/shadow_root.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root.idl index f30eaa6b..79492da2 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 @@ -37,9 +37,6 @@ interface ShadowRoot : DocumentFragment { readonly attribute boolean delegatesFocus; readonly attribute SlotAssignmentMode slotAssignment; - [RuntimeEnabled=ScopedCustomElementRegistry] - readonly attribute CustomElementRegistry? registry; - // 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/events/input_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/input_event.idl index 09f05502..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 { - [RaisesException, CallWith=Isolate] 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/html/custom/custom_element_registry.idl b/tools/under-control/src/third_party/blink/renderer/core/html/custom/custom_element_registry.idl index b80004a1..71e441ad 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/custom/custom_element_registry.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/custom/custom_element_registry.idl @@ -12,6 +12,8 @@ interface CustomElementRegistry { DOMString? getName(CustomElementConstructor constructor); [CallWith=ScriptState,RaisesException] Promise whenDefined(DOMString name); [CEReactions] void upgrade(Node root); + + [RuntimeEnabled=ScopedCustomElementRegistry] void initialize((Element or ShadowRoot) root); }; callback CustomElementConstructor = any (); diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_permission_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_permission_element.idl index 90238d0b..fd55ae47 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_permission_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_permission_element.idl @@ -28,4 +28,6 @@ interface HTMLPermissionElement : HTMLElement { attribute EventHandler onpromptaction; attribute EventHandler onpromptdismiss; attribute EventHandler onvalidationstatuschange; + + static boolean isTypeSupported(DOMString type); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_template_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_template_element.idl index 19045256..2ce92a49 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_template_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_template_element.idl @@ -48,4 +48,7 @@ // Used by the DOM Parts API [Reflect, RuntimeEnabled=DOMPartsAPI] attribute boolean parseparts; + + // Used by Scoped Element Registries + [CEReactions, Reflect, RuntimeEnabled=ScopedCustomElementRegistry] attribute DOMString shadowRootCustomElementRegistry; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl index 0cc1b5ff..0cd68a1d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl @@ -8,5 +8,5 @@ RuntimeEnabled=NavigateEventCommitBehavior ] interface NavigationPrecommitController { - [RaisesException] undefined redirect(USVString url); + [RaisesException] undefined redirect(USVString url, optional NavigationReloadOptions options = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_transition.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_transition.idl index 59ece93a..86fcfe95 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_transition.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_transition.idl @@ -2,5 +2,6 @@ interface NavigationTransition { readonly attribute NavigationType navigationType; readonly attribute NavigationHistoryEntry from; + [CallWith=ScriptState, RuntimeEnabled=NavigateEventCommitBehavior] readonly attribute Promise committed; [CallWith=ScriptState] readonly attribute Promise finished; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_script_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_script_element.idl index 59fc666d..3a4f1880 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_script_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_script_element.idl @@ -28,6 +28,8 @@ [Exposed=Window] interface SVGScriptElement : SVGElement { [Reflect] attribute DOMString type; + // See https://github.com/w3c/svgwg/issues/918 + [RuntimeEnabled=SvgScriptElementAsyncAttribute, Reflect] attribute boolean async; }; SVGScriptElement includes SVGURIReference; 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 c25b4041..234abe7d 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 @@ -29,7 +29,7 @@ interface PerformanceScriptTiming : PerformanceEntry { readonly attribute DOMString sourceURL; readonly attribute DOMString sourceFunctionName; readonly attribute long long sourceCharPosition; - [RuntimeEnabled=LongAnimationFrameSourceLineColumn] readonly attribute long long sourceLine; - [RuntimeEnabled=LongAnimationFrameSourceLineColumn] readonly attribute long long sourceColumn; + [RuntimeEnabled=LongAnimationFrameSourceLineColumnInterface] readonly attribute long long sourceLine; + [RuntimeEnabled=LongAnimationFrameSourceLineColumnInterface] readonly attribute long long sourceColumn; [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl index aa7f68f2..a0f3e886 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.idl @@ -43,7 +43,7 @@ // AnimationFrameProvider mixin // https://html.spec.whatwg.org/C/#animation-frames - [RaisesException] long requestAnimationFrame(FrameRequestCallback callback); + [RaisesException, MeasureAs="WebDXFeature::kRequestAnimationFrameWorkers"] long requestAnimationFrame(FrameRequestCallback callback); void cancelAnimationFrame(long handle); attribute EventHandler onmessage; diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl index d0abad49..4263a6fd 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl @@ -30,9 +30,12 @@ */ // SharedWorkers also support the `sameSiteCookies` option outlined in: -// https://privacycg.github.io/saa-non-cookie-storage/shared-workers.html +// https://privacycg.github.io/saa-non-cookie-storage/#shared-worker dictionary SharedWorkerOptions : WorkerOptions { SharedWorkerSameSiteCookies sameSiteCookies; + // Experimental. + // See: https://github.com/whatwg/html/issues/10997 + [RuntimeEnabled=SharedWorkerExtendedLifetime] boolean extendedLifetime; }; enum SharedWorkerSameSiteCookies { "all", "none" }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/storage_interest_group.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/storage_interest_group.idl index 4cf805e2..0124f325 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/storage_interest_group.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/storage_interest_group.idl @@ -6,6 +6,14 @@ typedef (long long or AuctionAd) PreviousWinElement; typedef sequence PreviousWin; +dictionary ViewOrClickCounts { + long pastHour; + long pastDay; + long pastWeek; + long past30Days; + long past90Days; +}; + dictionary StorageInterestGroup : AuctionAdInterestGroup { unsigned long long joinCount; unsigned long long bidCount; @@ -16,4 +24,6 @@ dictionary StorageInterestGroup : AuctionAdInterestGroup { long long timeSinceLastUpdateMs; long long timeUntilNextUpdateMs; unsigned long long estimatedSize; + [RuntimeEnabled=FledgeClickiness] ViewOrClickCounts viewCounts; + [RuntimeEnabled=FledgeClickiness] ViewOrClickCounts clickCounts; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/testing/internals_protected_audience.idl b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/testing/internals_protected_audience.idl new file mode 100755 index 00000000..447a6482 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/ad_auction/testing/internals_protected_audience.idl @@ -0,0 +1,10 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +[ + ImplementedAs=InternalsProtectedAudience +] partial interface Internals { + [CallWith=ScriptState] Promise setProtectedAudienceKAnonymity( + USVString ownerOrigin, USVString name, sequence hashes); +}; 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 9bf191c0..d0247396 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 @@ -7,8 +7,7 @@ // TODO(crbug.com/381969447): remove this and use AIInterfaceProxy // for LanguageModel instead. [ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=BuiltInAIAPI + Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers), + SecureContext ] interface AI {}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_availability.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/availability.idl similarity index 80% rename from tools/under-control/src/third_party/blink/renderer/modules/ai/ai_availability.idl rename to tools/under-control/src/third_party/blink/renderer/modules/ai/availability.idl index 34e226c7..2a487750 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/ai_availability.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/availability.idl @@ -6,4 +6,4 @@ // https://github.com/webmachinelearning/writing-assistance-apis // https://github.com/webmachinelearning/translation-api -enum AIAvailability { "unavailable", "downloadable", "downloading", "available" }; +enum Availability { "unavailable", "downloadable", "downloading", "available" }; 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/create_monitor.idl similarity index 51% rename from tools/under-control/src/third_party/blink/renderer/modules/ai/ai_create_monitor.idl rename to tools/under-control/src/third_party/blink/renderer/modules/ai/create_monitor.idl index 9677924a..5f549f1d 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/create_monitor.idl @@ -3,13 +3,16 @@ // found in the LICENSE file. // https://github.com/webmachinelearning/prompt-api +// https://github.com/webmachinelearning/translation-api +// https://github.com/webmachinelearning/writing-assistance-apis [ Exposed=(Window,Worker), - SecureContext + SecureContext, + RuntimeEnabled=BuiltInAIAPI ] -interface AICreateMonitor : EventTarget { +interface CreateMonitor : EventTarget { attribute EventHandler ondownloadprogress; }; -callback AICreateMonitorCallback = undefined (AICreateMonitor monitor); +callback CreateMonitorCallback = undefined (CreateMonitor monitor); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl index a85be3d5..a55cbed3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model.idl @@ -9,13 +9,13 @@ dictionary LanguageModelCloneOptions { }; dictionary LanguageModelPromptOptions { + object responseConstraint; AbortSignal signal; }; [ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI + Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers), + SecureContext ] interface LanguageModel : EventTarget { [ @@ -31,7 +31,7 @@ interface LanguageModel : EventTarget { CallWith=ScriptState, RaisesException ] - static Promise availability( + static Promise availability( optional LanguageModelCreateCoreOptions options = {} ); [ diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl index ae82d5b7..dedf2019 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_create_options.idl @@ -44,7 +44,7 @@ dictionary LanguageModelCreateCoreOptions { dictionary LanguageModelCreateOptions : LanguageModelCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; DOMString systemPrompt; sequence initialPrompts; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl index 6e2be730..64dc38b6 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_factory.idl @@ -8,9 +8,8 @@ // but we need to keep this IDL for the extension API. [ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI + Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers), + SecureContext ] interface LanguageModelFactory { [ @@ -26,7 +25,7 @@ interface LanguageModelFactory { CallWith=ScriptState, RaisesException ] - Promise availability( + Promise availability( optional LanguageModelCreateCoreOptions options = {} ); [ diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl index b9d988c1..6d0c751a 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/language_model_params.idl @@ -5,9 +5,8 @@ // https://github.com/webmachinelearning/prompt-api [ - Exposed=(Window,Worker), - SecureContext, - RuntimeEnabled=AIPromptAPI + Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers), + SecureContext ] interface LanguageModelParams { readonly attribute unsigned long defaultTopK; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl index acff3258..b0536918 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.idl @@ -11,7 +11,7 @@ dictionary LanguageDetectorCreateCoreOptions { dictionary LanguageDetectorCreateOptions : LanguageDetectorCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; }; dictionary LanguageDetectorDetectOptions { @@ -19,12 +19,12 @@ dictionary LanguageDetectorDetectOptions { }; dictionary LanguageDetectionResult { - DOMString? detectedLanguage; // null represents unknown language + DOMString detectedLanguage; double confidence; }; [ - Exposed=(Window, Worker), + Exposed(Window LanguageDetectionAPI, Worker LanguageDetectionAPIForWorkers), RuntimeEnabled=LanguageDetectionAPI, SecureContext ] @@ -34,7 +34,8 @@ interface LanguageDetector { CallWith=ScriptState, RaisesException ] - static Promise availability(); + static Promise availability( + optional LanguageDetectorCreateCoreOptions options = {}); [ MeasureAs=LanguageDetector_Create, @@ -73,4 +74,4 @@ interface LanguageDetector { readonly attribute FrozenArray? expectedInputLanguages; [MeasureAs=LanguageDetector_InputQuota] readonly attribute unrestricted double inputQuota; -}; \ No newline at end of file +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl index 5734529c..b6d945b8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/on_device_translation/translator.idl @@ -12,7 +12,7 @@ dictionary TranslatorCreateCoreOptions { dictionary TranslatorCreateOptions : TranslatorCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; }; dictionary TranslatorTranslateOptions { @@ -20,7 +20,7 @@ dictionary TranslatorTranslateOptions { }; [ - Exposed=(Window,Worker), + Exposed(Window TranslationAPI, Worker TranslationAPIForWorkers), RuntimeEnabled=TranslationAPI, SecureContext ] @@ -30,7 +30,7 @@ interface Translator { CallWith=ScriptState, RaisesException ] - static Promise availability(TranslatorCreateCoreOptions options); + static Promise availability(TranslatorCreateCoreOptions options); [ MeasureAs=Translator_Create, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl index 86cf013f..b5d41a58 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/rewriter.idl @@ -21,7 +21,7 @@ dictionary RewriterCreateCoreOptions { dictionary RewriterCreateOptions : RewriterCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; DOMString sharedContext; }; @@ -31,7 +31,7 @@ dictionary RewriterRewriteOptions { }; [ - Exposed=(Window,Worker), + Exposed(Window AIRewriterAPI, Worker AIRewriterAPIForWorkers), RuntimeEnabled=AIRewriterAPI, SecureContext ] @@ -41,7 +41,7 @@ interface Rewriter { CallWith=ScriptState, RaisesException ] - static Promise availability( + static Promise availability( optional RewriterCreateCoreOptions options = {} ); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl index a68a7e83..b31a1e58 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/summarizer.idl @@ -20,7 +20,7 @@ dictionary SummarizerCreateCoreOptions { dictionary SummarizerCreateOptions : SummarizerCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; DOMString sharedContext; }; @@ -30,7 +30,7 @@ dictionary SummarizerSummarizeOptions { }; [ - Exposed=(Window,Worker), + Exposed(Window AISummarizationAPI, Worker AISummarizationAPIForWorkers), RuntimeEnabled=AISummarizationAPI, SecureContext ] @@ -40,7 +40,7 @@ interface Summarizer { CallWith=ScriptState, RaisesException ] - static Promise availability( + static Promise availability( optional SummarizerCreateCoreOptions options = {} ); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl b/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl index 357921e7..8ae661df 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ai/writer.idl @@ -21,7 +21,7 @@ dictionary WriterCreateCoreOptions { dictionary WriterCreateOptions : WriterCreateCoreOptions { AbortSignal signal; - AICreateMonitorCallback monitor; + CreateMonitorCallback monitor; DOMString sharedContext; }; @@ -31,7 +31,7 @@ dictionary WriterWriteOptions { }; [ - Exposed=(Window,Worker), + Exposed(Window AIWriterAPI, Worker AIWriterAPIForWorkers), RuntimeEnabled=AIWriterAPI, SecureContext ] @@ -41,7 +41,7 @@ interface Writer { CallWith=ScriptState, RaisesException ] - static Promise availability( + static Promise availability( optional WriterCreateCoreOptions options = {} ); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl index 1a61d266..d0942cdf 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl @@ -12,10 +12,7 @@ enum IdentityCredentialRequestOptionsContext { enum IdentityCredentialRequestOptionsMode { "active", - "passive", - // TODO(crbug.com/372198646): remove the debugging aid enums after shipping active mode. - "button", - "widget" + "passive" }; // https://fedidcg.github.io/FedCM/#dictdef-identitycredentialrequestoptions diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl index a7395516..bf0aec05 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/public_key_credential.idl @@ -17,7 +17,7 @@ typedef record PublicKeyCredentialClientCapabilities; [SameObject] readonly attribute AuthenticatorResponse response; [SameObject] readonly attribute DOMString? authenticatorAttachment; [CallWith=ScriptState] static Promise isUserVerifyingPlatformAuthenticatorAvailable(); - [RuntimeEnabled=WebAuthenticationClientCapabilities, CallWith=ScriptState] static Promise getClientCapabilities(); + [CallWith=ScriptState] static Promise getClientCapabilities(); AuthenticationExtensionsClientOutputs getClientExtensionResults(); [CallWith=ScriptState] static Promise isConditionalMediationAvailable(); [RuntimeEnabled=WebAuthenticationJSONSerialization, CallWith=ScriptState] PublicKeyCredentialJSON toJSON(); 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 62ebaeb0..a72d0ae8 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 @@ -11,7 +11,8 @@ enum MediaKeyStatus { "output-restricted", "output-downscaled", "status-pending", - "internal-error" + "internal-error", + "usable-in-future", }; [ diff --git a/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.idl b/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.idl index 456c8a4b..b58f62c6 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.idl @@ -8,5 +8,5 @@ ImplementedAs=MediaKeysGetStatusForPolicy, SecureContext ] partial interface MediaKeys { - [Measure, CallWith=ScriptState, RaisesException] Promise getStatusForPolicy(MediaKeysPolicy policy); + [Measure, CallWith=ScriptState, RaisesException] Promise getStatusForPolicy(optional MediaKeysPolicy policy = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/imagecapture/image_capture.idl b/tools/under-control/src/third_party/blink/renderer/modules/imagecapture/image_capture.idl index 5594d07c..69116433 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/imagecapture/image_capture.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/imagecapture/image_capture.idl @@ -4,7 +4,7 @@ // https://w3c.github.io/mediacapture-image/#imagecaptureapi -[Exposed=Window] +[Exposed=Window, SecureContext] interface ImageCapture { [CallWith=ExecutionContext, RaisesException, MeasureAs=ImageCaptureConstructor] constructor(MediaStreamTrack track); [ImplementedAs=videoStreamTrack] readonly attribute MediaStreamTrack track; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/launch/launch_params.idl b/tools/under-control/src/third_party/blink/renderer/modules/launch/launch_params.idl index 9317979e..0eb36e48 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/launch/launch_params.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/launch/launch_params.idl @@ -10,5 +10,5 @@ RuntimeEnabled=WebAppLaunchQueue ] interface LaunchParams { readonly attribute USVString targetURL; - [RuntimeEnabled=FileHandling] readonly attribute FrozenArray files; + readonly attribute FrozenArray files; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/managed_device/navigator_managed_data.idl b/tools/under-control/src/third_party/blink/renderer/modules/managed_device/navigator_managed_data.idl index d4e69690..3493145c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/managed_device/navigator_managed_data.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/managed_device/navigator_managed_data.idl @@ -14,14 +14,14 @@ attribute EventHandler onmanagedconfigurationchange; // Device Attributes API. - [CallWith=ScriptState, RuntimeEnabled=DeviceAttributes, Measure] + [CallWith=ScriptState, RaisesException, RuntimeEnabled=DeviceAttributes, Measure] Promise getDirectoryId(); - [CallWith=ScriptState, RuntimeEnabled=DeviceAttributes, Measure] + [CallWith=ScriptState, RaisesException, RuntimeEnabled=DeviceAttributes, Measure] Promise getHostname(); - [CallWith=ScriptState, RuntimeEnabled=DeviceAttributes, Measure] + [CallWith=ScriptState, RaisesException, RuntimeEnabled=DeviceAttributes, Measure] Promise getSerialNumber(); - [CallWith=ScriptState, RuntimeEnabled=DeviceAttributes, Measure] + [CallWith=ScriptState, RaisesException, RuntimeEnabled=DeviceAttributes, Measure] Promise getAnnotatedAssetId(); - [CallWith=ScriptState, RuntimeEnabled=DeviceAttributes, Measure] + [CallWith=ScriptState, RaisesException, RuntimeEnabled=DeviceAttributes, Measure] Promise getAnnotatedLocation(); }; 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 b373c6d8..319e0aa6 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_devices.idl @@ -31,7 +31,7 @@ [ RuntimeEnabled = GetAllScreensMedia, CallWith = ScriptState, RaisesException, - MeasureAs = GetAllScreensMedia, InjectionMitigated + MeasureAs = GetAllScreensMedia, IsolatedContext ] Promise> getAllScreensMedia(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl index eed883fe..61beeab7 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream.idl @@ -39,8 +39,8 @@ sequence getVideoTracks(); sequence getTracks(); MediaStreamTrack? getTrackById(DOMString trackId); - [CallWith=Isolate, RaisesException] void addTrack(MediaStreamTrack track); - [CallWith=Isolate, RaisesException] void removeTrack(MediaStreamTrack track); + [RaisesException] void addTrack(MediaStreamTrack track); + [RaisesException] void removeTrack(MediaStreamTrack track); [CallWith=ScriptState] MediaStream clone(); [Measure] readonly attribute boolean active; attribute EventHandler onaddtrack; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl index e16984b9..cf9ff065 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml.idl @@ -13,4 +13,10 @@ RaisesException, Measure ] Promise createContext(optional MLContextOptions options = {}); + + [ + CallWith=ScriptState, + RaisesException, + MeasureAs=MLCreateContextGPUDevice + ] Promise createContext(GPUDevice gpuDevice); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_request.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_request.idl index a38674a0..86d17e0c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_request.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/payment_request.idl @@ -5,6 +5,15 @@ // https://w3c.github.io/payment-request/#paymentrequest-interface // http://crbug.com/587995 +// https://w3c.github.io/secure-payment-confirmation/#enumdef-securepaymentconfirmationavailability +enum SecurePaymentConfirmationAvailability { + "available", + "unavailable-unknown-reason", + "unavailable-feature-not-enabled", + "unavailable-no-permission-policy", + "unavailable-no-user-verifying-platform-authenticator", +}; + [ RuntimeEnabled=PaymentRequest, SecureContext, @@ -27,5 +36,5 @@ [RuntimeEnabled=PaymentMethodChangeEvent] attribute EventHandler onpaymentmethodchange; // https://w3c.github.io/secure-payment-confirmation/#sctn-secure-payment-confirmation-available-api - [RuntimeEnabled=IsSecurePaymentConfirmationAvailableAPI, CallWith=ScriptState] static Promise isSecurePaymentConfirmationAvailable(); + [RuntimeEnabled=SecurePaymentConfirmationAvailabilityAPI, CallWith=ScriptState] static Promise securePaymentConfirmationAvailability(); }; 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 faa33bd1..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 @@ -142,8 +142,8 @@ enum RTCPeerConnectionState { // Non-standard or removed from the spec: [Measure] sequence getLocalStreams(); [Measure] sequence getRemoteStreams(); - [Measure, CallWith=Isolate, RaisesException] void addStream(MediaStream stream); - [Measure, CallWith=Isolate, RaisesException] void removeStream(MediaStream stream); + [Measure, CallWith=ScriptState, RaisesException] void addStream(MediaStream stream); + [Measure, RaisesException] void removeStream(MediaStream stream); [Measure, RaisesException] RTCDTMFSender createDTMFSender(MediaStreamTrack track); attribute EventHandler onaddstream; attribute EventHandler onremovestream; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl index 571ff59f..af07f3ab 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl @@ -152,6 +152,7 @@ dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats { DOMString mediaSourceId; DOMString remoteId; DOMString rid; + unsigned long encodingIndex; unsigned long long headerBytesSent; unsigned long long retransmittedPacketsSent; unsigned long long retransmittedBytesSent; 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 df6d88b8..ebe12b78 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 @@ -67,17 +67,13 @@ enum AvailabilityStatus { attribute boolean interimResults; attribute unsigned long maxAlternatives; [RuntimeEnabled=OnDeviceWebSpeechAvailable] attribute SpeechRecognitionMode mode; - [RuntimeEnabled=WebSpeechRecognitionContext] attribute SpeechRecognitionContext context; + [RuntimeEnabled=WebSpeechRecognitionContext] attribute SpeechRecognitionPhraseList phrases; // methods to drive the speech interaction [RaisesException, Measure] void start(); [RaisesException, Measure, RuntimeEnabled=MediaStreamTrackWebSpeech] void start(MediaStreamTrack track); [ImplementedAs=stopFunction] void stop(); void abort(); - [ - RaisesException, - RuntimeEnabled=WebSpeechRecognitionContext - ] void updateContext(SpeechRecognitionContext context); [ CallWith=ScriptState, RaisesException, 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 index 4d07c5c5..6cd66004 100755 --- 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 @@ -8,11 +8,7 @@ SecureContext ] interface SpeechRecognitionPhrase { - [ - CallWith=ScriptState, - RaisesException - ] - constructor(DOMString phrase, optional float boost = 1.0); - attribute DOMString phrase; - attribute float boost; + [RaisesException] constructor(DOMString phrase, optional float boost = 1.0); + readonly attribute DOMString phrase; + readonly 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 index d864d6f7..7965fb01 100755 --- 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 @@ -8,8 +8,9 @@ SecureContext ] interface SpeechRecognitionPhraseList { - constructor(); + constructor(sequence phrases); readonly attribute unsigned long length; - getter SpeechRecognitionPhrase item(unsigned long index); + [RaisesException] SpeechRecognitionPhrase item(unsigned long index); void addItem(SpeechRecognitionPhrase item); + [RaisesException] void removeItem(unsigned long index); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/database.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/database.idl deleted file mode 100755 index 15ceea75..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/database.idl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#database -[ - LegacyNoInterfaceObject -] interface Database { - readonly attribute DOMString version; - // TODO(crbug.com/841185): |callback|, |errorCallback|, and - // |successCallback| are not nullable in the spec. - [Measure] void changeVersion(DOMString oldVersion, DOMString newVersion, optional SQLTransactionCallback? callback = null, optional SQLTransactionErrorCallback? errorCallback = null, optional VoidCallback? successCallback = null); - // TODO(crbug.com/841185): |errorCallback| and |successCallback| are not - // nullable in the spec. - [Measure] void transaction(SQLTransactionCallback callback, optional SQLTransactionErrorCallback? errorCallback = null, optional VoidCallback? successCallback = null); - // TODO(crbug.com/841185): |errorCallback| and |successCallback| are not - // nullable in the spec. - [Measure] void readTransaction(SQLTransactionCallback callback, optional SQLTransactionErrorCallback? errorCallback = null, optional VoidCallback? successCallback = null); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_error.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_error.idl deleted file mode 100755 index c5a94690..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_error.idl +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqlerror -[ - LegacyNoInterfaceObject -] interface SQLError { - readonly attribute unsigned long code; - readonly attribute DOMString message; - - // SQLErrorCode: used only in the async DB API - const unsigned short UNKNOWN_ERR = 0; - const unsigned short DATABASE_ERR = 1; - const unsigned short VERSION_ERR = 2; - const unsigned short TOO_LARGE_ERR = 3; - const unsigned short QUOTA_ERR = 4; - const unsigned short SYNTAX_ERR = 5; - const unsigned short CONSTRAINT_ERR = 6; - const unsigned short TIMEOUT_ERR = 7; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set.idl deleted file mode 100755 index 09edf1c0..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set.idl +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqlresultset -[ - LegacyNoInterfaceObject -] interface SQLResultSet { - readonly attribute SQLResultSetRowList rows; - - [RaisesException=Getter] readonly attribute long long insertId; - readonly attribute long long rowsAffected; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set_row_list.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set_row_list.idl deleted file mode 100755 index eefaedd2..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_result_set_row_list.idl +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqlresultsetrowlist -[ - LegacyNoInterfaceObject -] interface SQLResultSetRowList { - readonly attribute unsigned long length; - [RaisesException, CallWith=ScriptState] getter any item(unsigned long index); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_callback.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_callback.idl deleted file mode 100755 index 177ca60f..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_callback.idl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqlstatementcallback -callback interface SQLStatementCallback { - void handleEvent(SQLTransaction transaction, SQLResultSet resultSet); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_error_callback.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_error_callback.idl deleted file mode 100755 index 0c39547b..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_statement_error_callback.idl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqlstatementerrorcallback -callback interface SQLStatementErrorCallback { - boolean handleEvent(SQLTransaction transaction, SQLError error); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction.idl deleted file mode 100755 index c80b21c7..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction.idl +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#objectarray -typedef sequence ObjectArray; - -// https://www.w3.org/TR/webdatabase/#sqltransaction -[ - LegacyNoInterfaceObject -] interface SQLTransaction { - // The spec defines |arguments| to be an "optional ObjectArray" though it defines the - // behavior when null is being passed. - // TODO(crbug.com/841185): |callback| and |errorCallback| are not - // nullable in the spec. - [Measure, RaisesException, CallWith=ScriptState] void executeSql(DOMString sqlStatement, - optional ObjectArray? arguments, - optional SQLStatementCallback? callback = null, - optional SQLStatementErrorCallback? errorCallback = null); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_callback.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_callback.idl deleted file mode 100755 index 60d9bb12..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_callback.idl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqltransactioncallback -callback interface SQLTransactionCallback { - void handleEvent(SQLTransaction transaction); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_error_callback.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_error_callback.idl deleted file mode 100755 index d81c6e51..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/sql_transaction_error_callback.idl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#sqltransactionerrorcallback -callback interface SQLTransactionErrorCallback { - void handleEvent(SQLError error); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/window_web_database.idl b/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/window_web_database.idl deleted file mode 100755 index 6669768a..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/webdatabase/window_web_database.idl +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. - * Copyright (C) 2011 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// https://www.w3.org/TR/webdatabase/#databasecallback -callback DatabaseCallback = void (Database database); - -// https://www.w3.org/TR/webdatabase/#databases -[ - ImplementedAs=DOMWindowWebDatabase, - RuntimeEnabled=Database -] partial interface Window { - // TODO(crbug.com/841185): |creationCallback| is not nullable in the spec. - [DeprecateAs=OpenWebDatabase, LogActivity, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback? creationCallback); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl index 68e019f5..0e61cf42 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl @@ -12,9 +12,8 @@ [HighEntropy] readonly attribute DOMString architecture; [HighEntropy] readonly attribute DOMString device; [HighEntropy] readonly attribute DOMString description; - // Note that WebGPUSubgroupsFeatures is implied by WebGPUExperimentalFeatures. - [RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long subgroupMinSize; - [RuntimeEnabled=WebGPUSubgroupsFeatures] readonly attribute unsigned long subgroupMaxSize; + readonly attribute unsigned long subgroupMinSize; + readonly attribute unsigned long subgroupMaxSize; [RuntimeEnabled=WebGPUAdapterInfoIsFallbackAdapter] readonly attribute boolean isFallbackAdapter; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString driver; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString backend; @@ -22,4 +21,5 @@ [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute FrozenArray memoryHeaps; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute unsigned long? d3dShaderModel; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute unsigned long? vkDriverVersion; + [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString powerPreference; }; 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 ae4a6294..cdada82e 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 @@ -13,6 +13,5 @@ dictionary GPURequestAdapterOptions { [RuntimeEnabled=WebGPUFeatureLevel] DOMString featureLevel = "core"; GPUPowerPreference powerPreference; boolean forceFallbackAdapter = false; - [RuntimeEnabled=WebGPUExperimentalFeatures] boolean compatibilityMode = false; [RuntimeEnabled=WebXRGPUBinding] boolean xrCompatible = 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 02d3861c..ba3358fb 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 @@ -8,6 +8,7 @@ enum GPUFeatureName { "depth-clip-control", "depth32float-stencil8", "texture-compression-bc", + "texture-compression-bc-sliced-3d", "texture-compression-etc2", "texture-compression-astc", "timestamp-query", diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_state_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_state_init.idl index 8c1db67d..0f684a25 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_state_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_state_init.idl @@ -13,7 +13,13 @@ enum XRDepthDataFormat { "unsigned-short", }; +enum XRDepthType { + "raw", + "smooth" +}; + dictionary XRDepthStateInit { required sequence usagePreference; required sequence dataFormatPreference; + sequence depthTypeRequest; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_session.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_session.idl index 6e01a5d8..734f2156 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_session.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_session.idl @@ -87,8 +87,17 @@ enum XRReflectionFormat { [RuntimeEnabled=WebXRImageTracking, CallWith=ScriptState, MeasureAs=XRSessionGetTrackedImageScores, RaisesException] Promise> getTrackedImageScores(); + [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + undefined pauseDepthSensing(); + [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + undefined resumeDepthSensing(); + [RaisesException] readonly attribute XRDepthUsage? depthUsage; [RaisesException] readonly attribute XRDepthDataFormat? depthDataFormat; + [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + readonly attribute XRDepthType? depthType; + [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + readonly attribute boolean? depthActive; }; 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 4211b13a..773ed8ed 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 @@ -292,6 +292,11 @@ implied_by: ["Fledge", "Parakeet"], public: true, }, + // Fix for crbug.com/403358869 + { + name: "AdjustDOMOffsetToLayoutOffsetForSecureText", + status: "stable", + }, // Adjust the end of the next paragraph if the end position for the // paragraph is updated while moving the paragraph. See // https://crbug.com/329121649 @@ -317,7 +322,7 @@ { name: "AIPromptAPI", public: true, - status: "test", + status: "experimental", implied_by: ["AIPromptAPIForWebPlatform", "AIPromptAPIMultimodalInput"], }, { @@ -325,38 +330,79 @@ public: true, origin_trial_feature_name: "AIPromptAPIForExtension", origin_trial_allows_third_party: true, - status: "test", + status: "experimental", base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, { name: "AIPromptAPIForWebPlatform", public: true, - status: "test", + status: "experimental", + }, + { + name: "AIPromptAPIForWorkers", + public: true, + origin_trial_feature_name: "AIPromptAPIForExtension", + origin_trial_allows_third_party: true, + status: "experimental", + base_feature_status: "enabled", + copied_from_base_feature_if: "overridden", }, { name: "AIPromptAPIMultimodalInput", public: true, - status: "test", + status: "experimental", + }, + { + name: "AIPromptAPIStructuredOutput", + origin_trial_feature_name: "AIPromptAPIForExtension", + origin_trial_allows_third_party: true, + status: "experimental", + base_feature_status: "enabled", + copied_from_base_feature_if: "overridden", + implied_by: ["AIPromptAPI"], }, { name: "AIRewriterAPI", public: true, - status: "test", + status: "experimental", + origin_trial_feature_name: "AIRewriterAPI", + origin_trial_allows_third_party: true, + base_feature_status: "enabled", + copied_from_base_feature_if: "overridden", + }, + { + name: "AIRewriterAPIForWorkers", + public: true, + status: "experimental", }, { name: "AISummarizationAPI", public: true, - status: "test", + status: "experimental", origin_trial_feature_name: "AISummarizationAPI", origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, + { + name: "AISummarizationAPIForWorkers", + public: true, + status: "experimental", + }, { name: "AIWriterAPI", public: true, - status: "test", + status: "experimental", + origin_trial_feature_name: "AIWriterAPI", + origin_trial_allows_third_party: true, + base_feature_status: "enabled", + copied_from_base_feature_if: "overridden", + }, + { + name: "AIWriterAPIForWorkers", + public: true, + status: "experimental", }, { name: "AllowContentInitiatedDataUrlNavigations", @@ -385,6 +431,10 @@ name: "AllowSkippingEditingBoundaryToMergeEnd", status: "stable", }, + { + name: "AllowSvgUseToReferenceExternalDocumentRoot", + status: "stable", + }, { name: "AllowSyntheticTimingForCanvasCapture", base_feature: "none", @@ -502,11 +552,6 @@ name: "AudioVideoTracks", status: "experimental", }, - // Killswitch. - { - name: "AuraScrollbarUsesNinePatchTrack", - status: "stable", - }, { name: "AutoDarkMode", base_feature: "none", @@ -622,6 +667,11 @@ public: true, status: "experimental", }, + { + name: "BrowserInitiatedAutomaticPictureInPicture", + public: true, + status: "experimental", + }, { name: "BrowserVerifiedUserActivationKeyboard", base_feature: "none", @@ -638,7 +688,7 @@ }, { name: "BuiltInAIAPI", - status: "test", + status: "experimental", 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 @@ -654,16 +704,6 @@ "TranslationAPI", ] }, - { - // crbug.com/40681980 - name: "ButtonNoAlignItems", - status: "stable", - }, - { - // Enables bypassing CSP checks when we consume a preload. - // https://crbug.com/348442535 - name: "BypassCSPForPreloads", - }, { // Bypasses the enforcement of the Page Embedded Permission Control // security checks. This flag is disabled by default and should only be @@ -709,8 +749,14 @@ status: "test", }, { - name: "CanvasFloatingPoint", + // https://github.com/WICG/canvas-place-element/blob/main/README.md + name: "CanvasElementDrawImage", status: "experimental", + implied_by: ["CanvasPlaceElement"], + }, + { + name: "CanvasFloatingPoint", + status: "stable", }, { // https://crbug.com/394052224 @@ -731,12 +777,6 @@ browser_process_read_write_access: true, base_feature: "none", }, - { - // This allows testing the canvas noise interventions in tests (which in - // most cases don't have a CPU). In practice the interventions are only - // enabled for GPU-rendered canvases. - name: "CanvasInterventionsOnCpuForTesting", - }, { // https://github.com/Igalia/explainers/blob/main/canvas-formatted-text/html-in-canvas.md name: "CanvasPlaceElement", @@ -782,7 +822,7 @@ }, { name: "CapturedSurfaceResolution", - status: { "Win": "stable", "Mac": "stable", "default": ""}, + status: { "Win": "stable", "Mac": "stable", "ChromeOS": "stable", "default": ""}, }, { name: "CaptureHandle", @@ -794,6 +834,13 @@ name: "CaretPositionFromPoint", status: "stable", }, + { + // Changes the caret's affinity to upstream, preventing spaces + // from appearing in the previous line when typing at the start + // of a wrapped line. See https://crbug.com/40677155 + name: "CaretWithTextAffinityUpstream", + status: "stable", + }, { name: "CascadedAfterChangeStyle", status: "stable", @@ -804,6 +851,12 @@ name: "CCTNewRFMPushBehavior", base_feature_status: "enabled", }, + { + // If focus is not at canonical position then spellcheck should be deactivated. + // crbug.com/396485529 + name: "CheckForCanonicalPositionInIdleSpellCheck", + status: "stable", + }, { name: "CheckVisibilityExtraProperties", status: "stable", @@ -1012,6 +1065,11 @@ name: "CSSAdvancedAttrFunction", status: "stable", }, + { + // Enables alignment properties for block and inline out-of-flow elements. + name: "CSSAlignBlockAndInlineOutOfFlows", + status: "test", + }, { // Remember the scroll offset of the default anchor when initially // displaying an anchor-positioned element, and when it switches position @@ -1155,21 +1213,21 @@ // queries support in conditions. // https://drafts.csswg.org/css-values-5/#if-notation. name: "CSSInlineIfForMediaQueries", - status: "experimental", + status: "stable", }, { // CSS if() function for custom properties. Flag is used only for style // queries support in conditions. // https://drafts.csswg.org/css-values-5/#if-notation. name: "CSSInlineIfForStyleQueries", - status: "experimental", + status: "stable", }, { // CSS if() function for custom properties. Flag is used only for supports // queries support in conditions. // https://drafts.csswg.org/css-values-5/#if-notation. name: "CSSInlineIfForSupportsQueries", - status: "experimental", + status: "stable", }, { // https://chromestatus.com/feature/6289894144212992 @@ -1278,17 +1336,20 @@ depends_on: ["PseudoElementsFocusable"], }, { - // TODO(crbug.com/40932006): Non-standard 'reading-flow' keyword - // for reading of grid and flexbox items. + // TODO(crbug.com/40932006): CSS 'reading-flow' property for reading order + // of grid, flexbox and block items. // https://drafts.csswg.org/css-display-4/#reading-flow + // This should ship in M137, and it can be removed after M139. name: "CSSReadingFlow", - status: "experimental", + status: "stable", }, { - // TODO(crbug.com/393550130): Non-standard 'reading-order' keyword - // to overwrite reading-flow order. + // TODO(crbug.com/393550130): CSS 'reading-order' property to overwrite + // reading-flow order. + // https://drafts.csswg.org/css-display-4/#reading-order + // This should ship in M137, and it can be removed after M139. name: "CSSReadingOrder", - status: "experimental", + status: "stable", depends_on: ["CSSReadingFlow"], }, { @@ -1385,9 +1446,13 @@ }, { name: "CSSShapeFunctionCompositeAnimation", - status: "experimental", + status: "stable", depends_on: ["CSSShapeFunction", "CompositeClipPathAnimation"] }, + { + name: "CSSShapeFunctionOffsetPath", + status: "stable", + }, { // sibling-index() and sibling-count() name: "CSSSiblingFunctions", @@ -1462,15 +1527,15 @@ status: "experimental", }, { - // https://chromestatus.com/feature/5064894363992064 + // https://chromestatus.com/feature/4850737974345728 name: "CSSViewTransitionAutoName", status: "experimental", depends_on: ["CSSViewTransitionMatchElement"], }, { - // https://chromestatus.com/feature/5064894363992064 + // https://chromestatus.com/feature/5098745710247936 name: "CSSViewTransitionMatchElement", - status: "experimental" + status: "stable" }, { // Adds the appearance:base-select CSS value which makes doesn't obey the content model, an Issue is reported to DevTools so that web authors get more context on why this can impact the accessibility behavior of the doesn't obey the content + // model, an Issue is reported to DevTools so that web authors get more + // context on why this can impact the accessibility behavior of the + // and