From 106f3bbdd711df6c5e4f77e6f4582177550aaf43 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Wed, 29 Oct 2025 03:26:42 +0000 Subject: [PATCH] [AUTO][FILECONTROL] - version 142.0.7444.60 --- tools/under-control/src/RELEASE | 2 +- .../browser/aw_content_browser_client.cc | 40 - .../browser/aw_field_trials.cc | 22 +- .../chrome/android/java/AndroidManifest.xml | 16 +- .../CustomTabIntentDataProvider.java | 173 +- .../src/chrome/browser/about_flags.cc | 1306 +++--- .../chrome_browsing_data_remover_delegate.cc | 12 +- .../browser/chrome_content_browser_client.cc | 456 +- ...ent_browser_client_navigation_throttles.cc | 13 +- .../browser/flags/ChromeFeatureList.java | 256 +- .../src/chrome/browser/prefs/browser_prefs.cc | 123 +- .../src/chrome/browser/ui/tab_helpers.cc | 21 +- .../extensions/api/autofill_private.idl | 6 + .../extensions/api/autotest_private.idl | 2 +- .../extensions/api/developer_private.idl | 6 + .../extensions/api/experimental_actor.idl | 16 - .../extensions/api/passwords_private.idl | 5 + .../extensions/api/pdf_viewer_private.idl | 45 +- .../common/extensions/api/scripting.idl | 9 - .../common/extensions/api/side_panel.idl | 19 + .../chrome_content_renderer_client.cc | 35 +- .../policy/resources/templates/messages.yaml | 5 + .../policy/resources/templates/policies.yaml | 11 + .../ClipboardAllowedForUrls.yaml | 1 + .../ClipboardBlockedForUrls.yaml | 1 + .../DefaultClipboardSetting.yaml | 1 + .../DefaultNotificationsSetting.yaml | 1 + .../NotificationsAllowedForUrls.yaml | 1 + .../NotificationsBlockedForUrls.yaml | 1 + .../.group.details.yaml | 2 + .../PreferSlowCiphers.yaml | 44 + .../PreferSlowKexAlgorithms.yaml | 46 + .../DefaultSearchProviderEnabled.yaml | 1 + .../Extensions/BlockExternalExtensions.yaml | 2 - .../Extensions/ExtensionAllowedTypes.yaml | 2 - ...roundLifetimeForPortConnectionsToUrls.yaml | 2 - ...nstallWithNonMalwareViolationsEnabled.yaml | 51 + .../Extensions/ExtensionInstallAllowlist.yaml | 1 - .../Extensions/ExtensionInstallBlocklist.yaml | 1 - .../Extensions/ExtensionInstallForcelist.yaml | 1 - .../Extensions/ExtensionInstallSources.yaml | 2 - .../ExtensionManifestV2Availability.yaml | 2 - .../Extensions/ExtensionSettings.yaml | 2 +- ...atoryExtensionsForIncognitoNavigation.yaml | 1 - .../Extensions/policy_atomic_groups.yaml | 1 + .../FirstPartySetsOverrides.yaml | 1 + .../FloatingSso/AutoSignOutEnabled.yaml | 4 +- .../GenerativeAI/DevToolsGenAiSettings.yaml | 12 +- .../GenAILocalFoundationalModelSettings.yaml | 3 +- .../GenAiChromeOsSmartActionsSettings.yaml | 10 +- ...LocalNetworkAccessRestrictionsEnabled.yaml | 2 +- ...workAccessRestrictionsTemporaryOptOut.yaml | 57 + .../policy_atomic_groups.yaml | 1 + .../Miscellaneous/AutoOpenFileTypes.yaml | 1 + .../Miscellaneous/CacheEncryptionEnabled.yaml | 31 + ...ommandLineFlagSecurityWarningsEnabled.yaml | 1 + .../Miscellaneous/DataControlsRules.yaml | 2 + ...leDeveloperProgramProfileAvailability.yaml | 39 + .../DeveloperToolsAvailability.yaml | 20 +- .../DeveloperToolsAvailabilityAllowlist.yaml | 37 + .../DeveloperToolsAvailabilityBlocklist.yaml | 37 + .../EnterpriseCustomLabelForBrowser.yaml | 1 + .../EnterpriseLogoUrlForBrowser.yaml | 1 + .../EnterpriseSearchAggregatorSettings.yaml | 1 + .../Miscellaneous/IncognitoModeAllowlist.yaml | 34 + .../Miscellaneous/IncognitoModeBlocklist.yaml | 32 + .../MetricsReportingEnabled.yaml | 1 + .../NTPFooterManagementNoticeEnabled.yaml | 1 + .../RendererCodeIntegrityEnabled.yaml | 2 +- .../SafeBrowsingForTrustedSourcesEnabled.yaml | 1 + .../Miscellaneous/SilentPrintingEnabled.yaml | 30 + .../Miscellaneous/SiteSearchSettings.yaml | 1 + ...ivateNetworkAccessRestrictionsEnabled.yaml | 2 +- .../PasswordProtectionChangePasswordURL.yaml | 1 + .../PasswordProtectionLoginURLs.yaml | 1 + .../SafeBrowsingAllowlistDomains.yaml | 1 + .../SafeBrowsing/SafeBrowsingEnabled.yaml | 1 + .../SameOriginTabCaptureAllowedByOrigins.yaml | 1 + .../ScreenCapture/ScreenCaptureAllowed.yaml | 1 + .../ScreenCaptureAllowedByOrigins.yaml | 1 + .../TabCaptureAllowedByOrigins.yaml | 1 + .../WindowCaptureAllowedByOrigins.yaml | 1 + .../Startup/HomepageIsNewTabPage.yaml | 1 + .../Startup/HomepageLocation.yaml | 1 + .../Startup/NewTabPageLocation.yaml | 1 + .../Startup/RestoreOnStartup.yaml | 1 + .../Startup/RestoreOnStartupURLs.yaml | 1 + .../browser/web_contents/web_contents_impl.cc | 93 +- .../src/content/child/runtime_features.cc | 12 +- .../public/browser/content_browser_client.cc | 52 +- .../api/app_current_window_internal.idl | 66 - .../src/extensions/common/api/cec_private.idl | 65 - .../src/extensions/common/api/diagnostics.idl | 38 - .../src/extensions/common/api/dns.idl | 28 - .../common/api/extension_options_internal.idl | 24 - .../src/extensions/common/api/system_cpu.idl | 61 - .../extensions/common/api/system_memory.idl | 21 - .../extensions/common/api/system_network.idl | 31 - .../extensions/common/api/system_storage.idl | 86 - .../common/api/virtual_keyboard.idl | 39 - .../extensions/common/api/webcam_private.idl | 101 - .../src/services/network/network_context.cc | 68 +- .../variations/fieldtrial_testing_config.json | 3838 ++++++++--------- .../use_counter/metrics/web_feature.mojom | 31 +- .../webpreferences/web_preferences.mojom | 2 + .../core/animation/animation_trigger.idl | 16 +- .../renderer/core/animation/event_trigger.idl | 14 + .../core/animation/event_trigger_options.idl | 10 + .../animation/timeline_trigger_options.idl | 1 - .../canvas_interventions_test.idl | 13 + .../renderer/core/css/css_route_rule.idl | 8 + .../blink/renderer/core/dom/document.idl | 2 + .../renderer/core/dom/form_control_range.idl | 6 + .../core/dom/global_event_handlers.idl | 2 +- .../blink/renderer/core/dom/shadow_root.idl | 2 +- .../renderer/core/dom/shadow_root_init.idl | 2 +- .../renderer/core/editing/ime/text_format.idl | 5 +- .../events/before_create_policy_event.idl | 10 - .../core/events/email_verified_event.idl | 11 + .../core/events/email_verified_event_init.idl | 7 + .../core/events/event_type_names.json5 | 2 + .../renderer/core/exported/web_view_impl.cc | 40 +- .../blink/renderer/core/fetch/request.idl | 2 + .../blink/renderer/core/fileapi/blob.idl | 8 +- .../navigator_automation_information.idl | 2 +- .../core/html/canvas/html_canvas_element.idl | 4 +- .../html_fenced_frame_element.idl | 3 +- .../core/html/forms/html_button_element.idl | 4 +- .../html/forms/html_data_list_element.idl | 4 +- .../html/forms/html_field_set_element.idl | 4 +- .../core/html/forms/html_form_element.idl | 2 +- .../core/html/forms/html_input_element.idl | 2 +- .../core/html/forms/html_label_element.idl | 4 +- .../core/html/forms/html_legend_element.idl | 4 +- .../html/forms/html_opt_group_element.idl | 4 +- .../core/html/forms/html_output_element.idl | 4 +- .../core/html/forms/html_select_element.idl | 4 +- .../forms/html_selected_content_element.idl | 7 +- .../html/forms/html_text_area_element.idl | 4 +- .../core/html/html_anchor_element.idl | 4 +- .../renderer/core/html/html_area_element.idl | 4 +- .../renderer/core/html/html_base_element.idl | 4 +- .../renderer/core/html/html_body_element.idl | 4 +- .../renderer/core/html/html_br_element.idl | 4 +- .../renderer/core/html/html_data_element.idl | 4 +- .../core/html/html_details_element.idl | 4 +- .../core/html/html_dialog_element.idl | 4 +- .../core/html/html_directory_element.idl | 4 +- .../renderer/core/html/html_div_element.idl | 4 +- .../renderer/core/html/html_dlist_element.idl | 4 +- .../blink/renderer/core/html/html_element.idl | 5 +- .../renderer/core/html/html_embed_element.idl | 4 +- .../renderer/core/html/html_font_element.idl | 4 +- .../renderer/core/html/html_frame_element.idl | 4 +- .../core/html/html_frame_set_element.idl | 2 +- .../renderer/core/html/html_head_element.idl | 4 +- .../core/html/html_heading_element.idl | 4 +- .../renderer/core/html/html_hr_element.idl | 4 +- .../renderer/core/html/html_html_element.idl | 4 +- .../core/html/html_iframe_element.idl | 4 +- .../renderer/core/html/html_li_element.idl | 4 +- .../renderer/core/html/html_link_element.idl | 4 +- .../renderer/core/html/html_map_element.idl | 4 +- .../core/html/html_marquee_element.idl | 4 +- .../core/html/html_menu_bar_element.idl | 5 +- .../renderer/core/html/html_menu_element.idl | 4 +- .../core/html/html_menu_item_element.idl | 2 +- .../core/html/html_menu_list_element.idl | 5 +- .../renderer/core/html/html_meta_element.idl | 4 +- .../renderer/core/html/html_meter_element.idl | 4 +- .../renderer/core/html/html_mod_element.idl | 4 +- .../core/html/html_object_element.idl | 4 +- .../renderer/core/html/html_olist_element.idl | 4 +- .../core/html/html_paragraph_element.idl | 4 +- .../renderer/core/html/html_param_element.idl | 4 +- .../core/html/html_picture_element.idl | 4 +- .../renderer/core/html/html_pre_element.idl | 2 +- .../core/html/html_progress_element.idl | 4 +- .../renderer/core/html/html_quote_element.idl | 4 +- .../core/html/html_script_element.idl | 4 +- .../renderer/core/html/html_slot_element.idl | 4 +- .../core/html/html_source_element.idl | 4 +- .../renderer/core/html/html_span_element.idl | 4 +- .../renderer/core/html/html_style_element.idl | 4 +- .../core/html/html_table_caption_element.idl | 4 +- .../core/html/html_table_cell_element.idl | 4 +- .../core/html/html_table_col_element.idl | 4 +- .../renderer/core/html/html_table_element.idl | 4 +- .../core/html/html_table_row_element.idl | 4 +- .../core/html/html_table_section_element.idl | 4 +- .../core/html/html_template_element.idl | 4 +- .../renderer/core/html/html_time_element.idl | 4 +- .../renderer/core/html/html_title_element.idl | 4 +- .../renderer/core/html/html_ulist_element.idl | 4 +- .../core/html/media/html_video_element.idl | 2 +- .../core/html/track/html_track_element.idl | 4 +- .../navigation_api/navigation_transition.idl | 1 + .../origin_trials/origin_trial_context.cc | 9 - .../renderer/core/route_matching/route.idl | 13 + .../core/route_matching/route_event.idl | 12 + .../core/route_matching/route_map.idl | 12 + .../core/script_tools/automation_delegate.idl | 3 + .../script_tools/tool_registration_params.idl | 4 + .../blink/renderer/core/svg/svg_matrix.idl | 28 +- .../blink/renderer/core/svg/svg_point.idl | 6 +- .../blink/renderer/core/svg/svg_rect.idl | 10 +- .../core/svg/svg_text_content_element.idl | 2 +- .../blink/renderer/core/testing/internals.idl | 1 + .../core/testing/worker_internals.idl | 2 + .../core/timing/performance_observer_init.idl | 1 - .../trusted_type_policy_factory.idl | 4 +- .../renderer/core/url_pattern/url_pattern.idl | 4 +- .../canvas_2d_draw_element_option.idl | 11 - .../canvas2d/canvas_rendering_context_2d.idl | 16 +- .../htmlcanvas/html_canvas_element_module.idl | 2 +- .../renderer/modules/clipboard/clipboard.idl | 10 +- .../clipboard/clipboard_change_event.idl | 21 +- ...uthentication_extensions_client_inputs.idl | 2 +- ...tication_extensions_client_inputs_json.idl | 2 +- ...thentication_extensions_client_outputs.idl | 2 +- ...ication_extensions_client_outputs_json.idl | 2 +- .../identity_credential.idl | 2 +- .../identity_credential_error.idl | 4 +- .../public_key_credential.idl | 12 +- .../direct_sockets/multicast_controller.idl | 15 + .../direct_sockets/socket_connection.idl | 4 +- .../modules/direct_sockets/socket_options.idl | 5 + ...nter_picture_in_picture_action_details.idl | 13 + .../mediastream/capture_controller.idl | 1 - .../blink/renderer/modules/ml/ml_context.idl | 53 +- ...obal_scope_rtc_rtp_transport_processor.idl | 8 - .../peerconnection/rtc_peer_connection.idl | 2 - .../modules/peerconnection/rtc_rtp_ack.idl | 8 - .../modules/peerconnection/rtc_rtp_acks.idl | 23 - .../rtc_rtp_header_extension_init.idl | 8 - .../peerconnection/rtc_rtp_packet_init.idl | 13 - .../peerconnection/rtc_rtp_send_result.idl | 9 - .../peerconnection/rtc_rtp_send_stream.idl | 18 - .../modules/peerconnection/rtc_rtp_sender.idl | 4 - .../modules/peerconnection/rtc_rtp_sent.idl | 12 - .../peerconnection/rtc_rtp_transport.idl | 27 - .../peerconnection/rtc_stats_report.idl | 5 + .../rtc_transport/rtc_received_packet.idl | 11 + .../rtc_transport/rtc_transport.idl | 41 + .../modules/printing/web_print_job.idl | 2 +- .../renderer/modules/printing/web_printer.idl | 4 +- .../printing/web_printer_attributes.idl | 19 +- .../modules/printing/web_printing_manager.idl | 2 +- ...gator_printing.idl => window_printing.idl} | 2 +- .../webgl/webgl_rendering_context_base.idl | 6 +- .../modules/webgpu/gpu_supported_features.idl | 4 +- .../webgpu/gpu_texture_view_descriptor.idl | 18 +- .../navigator_window_controls_overlay.idl | 2 +- .../window_controls_overlay.idl | 3 +- ...controls_overlay_geometry_change_event.idl | 3 +- .../renderer/modules/xr/xr_cylinder_layer.idl | 19 + .../modules/xr/xr_depth_information.idl | 8 +- .../renderer/modules/xr/xr_equirect_layer.idl | 21 + .../renderer/modules/xr/xr_layer_event.idl | 13 + .../modules/xr/xr_layer_event_init.idl | 8 + .../renderer/modules/xr/xr_layer_init.idl | 51 + .../renderer/modules/xr/xr_quad_layer.idl | 18 + .../blink/renderer/modules/xr/xr_session.idl | 8 +- .../renderer/modules/xr/xr_webgl_binding.idl | 20 +- .../platform/runtime_enabled_features.json5 | 528 ++- .../global-interface-listing-expected.txt | 29 +- 266 files changed, 4914 insertions(+), 4593 deletions(-) create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/.group.details.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowCiphers.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowKexAlgorithms.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionForceInstallWithNonMalwareViolationsEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CacheEncryptionEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevToolsGoogleDeveloperProgramProfileAvailability.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityAllowlist.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityBlocklist.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAllowlist.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeBlocklist.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SilentPrintingEnabled.yaml delete mode 100755 tools/under-control/src/extensions/common/api/app_current_window_internal.idl delete mode 100755 tools/under-control/src/extensions/common/api/cec_private.idl delete mode 100755 tools/under-control/src/extensions/common/api/diagnostics.idl delete mode 100755 tools/under-control/src/extensions/common/api/dns.idl delete mode 100755 tools/under-control/src/extensions/common/api/extension_options_internal.idl delete mode 100755 tools/under-control/src/extensions/common/api/system_cpu.idl delete mode 100755 tools/under-control/src/extensions/common/api/system_memory.idl delete mode 100755 tools/under-control/src/extensions/common/api/system_network.idl delete mode 100755 tools/under-control/src/extensions/common/api/system_storage.idl delete mode 100755 tools/under-control/src/extensions/common/api/virtual_keyboard.idl delete mode 100755 tools/under-control/src/extensions/common/api/webcam_private.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger_options.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_test.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/css/css_route_rule.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/core/events/before_create_policy_event.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event_init.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/route_matching/route.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/route_matching/route_event.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/route_matching/route_map.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/multicast_controller.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/mediasession/media_session_enter_picture_in_picture_action_details.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/dedicated_worker_global_scope_rtc_rtp_transport_processor.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_ack.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_acks.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_init.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_packet_init.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_result.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_stream.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sent.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_received_packet.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_transport.idl rename tools/under-control/src/third_party/blink/renderer/modules/printing/{navigator_printing.idl => window_printing.idl} (87%) create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_cylinder_layer.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_equirect_layer.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event_init.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_init.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/xr/xr_quad_layer.idl diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE index 09da6219..7ced7168 100644 --- a/tools/under-control/src/RELEASE +++ b/tools/under-control/src/RELEASE @@ -1 +1 @@ -141.0.7390.127 +142.0.7444.60 diff --git a/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc b/tools/under-control/src/android_webview/browser/aw_content_browser_client.cc index 90937945..56fccea0 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 @@ -172,37 +172,6 @@ bool g_created_network_context_params = false; // On apps targeting API level O or later, check cleartext is enforced. bool g_check_cleartext_permitted = false; -BASE_FEATURE(WebViewOptimizeXrwNavigationFlow, - base::FEATURE_ENABLED_BY_DEFAULT); - -// A throttle which checks if the XRW origin trial is enabled for this -// navigation, and forwards it to the proxying loader factory. -class XrwNavigationThrottle : public content::NavigationThrottle { - public: - explicit XrwNavigationThrottle(content::NavigationThrottleRegistry& registry) - : NavigationThrottle(registry) {} - ~XrwNavigationThrottle() override { - AwProxyingURLLoaderFactory::ClearXrwResultForNavigation( - navigation_handle()->GetNavigationId()); - } - - ThrottleCheckResult WillStartRequest() override { - auto* handle = navigation_handle(); - content::OriginTrialsControllerDelegate* delegate = - handle->GetWebContents() - ->GetBrowserContext() - ->GetOriginTrialsControllerDelegate(); - AwProxyingURLLoaderFactory::SetXrwResultForNavigation( - delegate, handle->GetURL(), - handle->IsInOutermostMainFrame() - ? blink::mojom::ResourceType::kMainFrame - : blink::mojom::ResourceType::kSubFrame, - handle->GetFrameTreeNodeId(), handle->GetNavigationId()); - return content::NavigationThrottle::PROCEED; - } - - const char* GetNameForLogging() override { return "XrwNavigationThrottle"; } -}; // Get async check tracker to make Safe Browsing v5 check asynchronous base::WeakPtr GetAsyncCheckTracker( @@ -699,9 +668,6 @@ void AwContentBrowserClient::CreateThrottlesForNavigation( AwBrowserContext::FromWebContents(navigation_handle.GetWebContents()))); AwSafeBrowsingNavigationThrottle::MaybeCreateAndAdd(registry); - if (base::FeatureList::IsEnabled(kWebViewOptimizeXrwNavigationFlow)) { - registry.AddThrottle(std::make_unique(registry)); - } if ((navigation_handle.GetNavigatingFrameType() == FrameType::kPrimaryMainFrame || @@ -998,7 +964,6 @@ bool AwContentBrowserClient::HandleExternalProtocol( mojo::NullRemote(), /* intercept_only=*/true, /* security_options=*/std::nullopt, - /* xrw_allowlist_matcher=*/nullptr, /* origin_matched_headers=*/{}, std::move(browser_context_handle), /* navigation_id=*/std::nullopt); @@ -1181,9 +1146,6 @@ void AwContentBrowserClient::WillCreateURLLoaderFactory( std::optional web_contents_key; web_contents_key = GetWebContentsKey(*web_contents); - auto xrw_allowlist_matcher = - AwSettings::FromWebContents(web_contents)->xrw_allowlist_matcher(); - content::GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&AwProxyingURLLoaderFactory::CreateProxy, @@ -1191,7 +1153,6 @@ void AwContentBrowserClient::WillCreateURLLoaderFactory( isolation_info, web_contents_key, frame->GetFrameTreeNodeId(), std::move(proxied_receiver), std::move(target_factory_remote), security_options, - std::move(xrw_allowlist_matcher), aw_browser_context->GetOriginMatchedHeaders(), std::move(browser_context_handle), navigation_id)); } else { @@ -1206,7 +1167,6 @@ void AwContentBrowserClient::WillCreateURLLoaderFactory( /*web_contents_key=*/std::nullopt, content::FrameTreeNodeId(), std::move(proxied_receiver), std::move(target_factory_remote), std::nullopt /* security_options */, - aw_browser_context->service_worker_xrw_allowlist_matcher(), aw_browser_context->GetOriginMatchedHeaders(), std::move(browser_context_handle), navigation_id)); } 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 df9c51d8..d97f8c90 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 @@ -27,6 +27,7 @@ #include "mojo/public/cpp/bindings/features.h" #include "net/base/features.h" #include "services/network/public/cpp/features.h" +#include "services/tracing/public/cpp/tracing_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" @@ -60,6 +61,11 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( ::features::kBlockCrossPartitionBlobUrlFetching); + // TODO(crbug.com/445202443): There are some test cases need to be + // fixed before enabling this feature flag for android. + aw_feature_overrides.DisableFeature( + blink::features::kAboutBlankPageRespectsDarkModeOnUserAction); + // Disable enforcing `noopener` on Blob URL navigations on WebView. aw_feature_overrides.DisableFeature( blink::features::kEnforceNoopenerOnBlobURLNavigation); @@ -84,6 +90,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature(blink::features::kFencedFrames); // Disable FLEDGE on WebView. + aw_feature_overrides.DisableFeature(network::features::kInterestGroupStorage); aw_feature_overrides.DisableFeature(blink::features::kAdInterestGroupAPI); aw_feature_overrides.DisableFeature(blink::features::kFledge); @@ -284,11 +291,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // handled correctly when WebView is drawing edge-to-edge. aw_feature_overrides.DisableFeature(features::kDrawCutoutEdgeToEdge); - // This is enabled for WebView to improve crbug.com/418159642. - // TODO(crbug.com/422161917): Revert this for the ablation study. - aw_feature_overrides.EnableFeature( - features::kServiceWorkerBackgroundUpdateForRegisteredStorageKeys); - // Explicitly disable PrefetchProxy instead of relying only on passing an // empty URL. aw_feature_overrides.DisableFeature(features::kPrefetchProxy); @@ -301,16 +303,12 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( features::kAAudioPerStreamDeviceSelection); - // Disable background media. This is not used in WebView, and also it - // side-steps an issue where JNI calls in renderer does not reliably work. - // Long-term fix is to plumb this info to the renderer and remove Java calls - // there. crbug.com/438910961 - aw_feature_overrides.DisableFeature( - features::kAndroidEnableBackgroundMediaLargeFormFactors); - // Local Network Access restrictions should not be enforced in WebView. // The LNA permission is auto-granted in WebView, but the permission // policy currently blocks iframes from using it. crbug.com/442879527 aw_feature_overrides.DisableFeature( network::features::kLocalNetworkAccessChecks); + + // SystemTracing is enabled by default only in WebView for now. + aw_feature_overrides.EnableFeature(features::kEnablePerfettoSystemTracing); } diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml index 50519bab..44297dfd 100755 --- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml +++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml @@ -402,8 +402,6 @@ by a child template that "extends" this file. images in that case. --> @@ -656,6 +654,12 @@ by a child template that "extends" this file. android:label="@string/storage_management_activity_label" android:exported="false"> + + + android:exported="false"> + android:label="@string/webapp_activity_title"> mSession; + private final @Nullable SessionHolder mSession; private final boolean mIsTrustedIntent; - private final Intent mKeepAliveServiceIntent; - private final Bundle mAnimationBundle; + private final @Nullable Intent mKeepAliveServiceIntent; + private final @Nullable Bundle mAnimationBundle; private final int mUiType; private final int mTitleVisibilityState; - private final String mMediaViewerUrl; + private final @Nullable String mMediaViewerUrl; private final boolean mEnableEmbeddedMediaExperience; private final boolean mIsFromMediaLauncherActivity; private final boolean mDisableStar; private final boolean mDisableDownload; private final @ActivityType int mActivityType; - @Nullable private final List mTrustedWebActivityAdditionalOrigins; - @Nullable private Set mAllTrustedWebActivityOrigins; - @Nullable private final TrustedWebActivityDisplayMode mTrustedWebActivityDisplayMode; - @Nullable private String mUrlToLoad; + private final @Nullable List mTrustedWebActivityAdditionalOrigins; + private @Nullable Set mAllTrustedWebActivityOrigins; + private final @Nullable TrustedWebActivityDisplayMode mTrustedWebActivityDisplayMode; + private final List mTrustedWebActivityDisplayOverrideMode; + private @Nullable String mUrlToLoad; private final boolean mEnableUrlBarHiding; private boolean mInteractWithBackground; private List mCustomButtonParams; - private Drawable mCloseButtonIcon; + private @Nullable Drawable mCloseButtonIcon; private final boolean mIsCloseButtonEnabled; private final List> mMenuEntries = new ArrayList<>(); private boolean mShowShareItemInMenu; private final List mToolbarButtons = new ArrayList<>(1); private final List mBottombarButtons = new ArrayList<>(2); private final List mGoogleBottomBarButtons = new ArrayList<>(); - private final RemoteViews mRemoteViews; + private final @Nullable RemoteViews mRemoteViews; @ActivitySideSheetDecorationType private final int mSideSheetDecorationType; @ActivitySideSheetRoundedCornersPosition private final int mSideSheetRoundedCornersPosition; - private final int[] mClickableViewIds; - private final PendingIntent mRemoteViewsPendingIntent; - private final PendingIntent mSecondaryToolbarSwipeUpPendingIntent; - private PendingIntent.OnFinished mOnFinishedForTesting; + private final int @Nullable [] mClickableViewIds; + private final @Nullable PendingIntent mRemoteViewsPendingIntent; + private final @Nullable PendingIntent mSecondaryToolbarSwipeUpPendingIntent; + private PendingIntent.@Nullable OnFinished mOnFinishedForTesting; private @DisplayMode.EnumType int mResolvedDisplayMode = DisplayMode.UNDEFINED; private final @OpenInBrowserState int mOpenInBrowserState; private final int mShareState; @@ -357,16 +360,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid private final boolean mIsOpenedByChrome; /** ISO 639 language code */ - @Nullable private final String mTranslateLanguage; + private final @Nullable String mTranslateLanguage; /** ISO 639 language code, overrides {@link mTranslateLanguage} if non-null. */ - @Nullable private final String mAutoTranslateLanguage; + private final @Nullable String mAutoTranslateLanguage; private final int mDefaultOrientation; - @Nullable private final int[] mGsaExperimentIds; + private final int @Nullable [] mGsaExperimentIds; - @NonNull private final ColorProvider mColorProvider; + private final ColorProvider mColorProvider; private final int mBreakPointDp; private final @Px int mInitialActivityHeight; @@ -379,7 +382,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid /** * {@link Network} to be bound when launching a custom tab or tabs that have been pre-created. */ - @Nullable private final Network mNetwork; + private final @Nullable Network mNetwork; /** Add extras to customize menu items for opening Reader Mode UI custom tab from Chrome. */ public static void addReaderModeUiExtras(Intent intent) { @@ -395,14 +398,14 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid * @param session The connected session for the custom tabs activity, or null. * @return True if the intent or session are trusted. */ - public static boolean isTrustedCustomTab(Intent intent, SessionHolder session) { + public static boolean isTrustedCustomTab(Intent intent, @Nullable SessionHolder session) { if (IntentHandler.wasIntentSenderChrome(intent)) return true; String packageName = getClientPackageNameFromSessionOrCallingActivity(intent, session); return CustomTabsConnection.getInstance().isFirstParty(packageName); } static @Nullable String getClientPackageNameFromSessionOrCallingActivity( - Intent intent, SessionHolder session) { + Intent intent, @Nullable SessionHolder session) { String packageNameFromSession = CustomTabsConnection.getInstance().getClientPackageNameForSession(session); if (!TextUtils.isEmpty(packageNameFromSession)) return packageNameFromSession; @@ -439,7 +442,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } private static @Px int getInitialActivityHeight( - boolean isTrustedIntent, @Px int initialActivityHeight, String packageName) { + boolean isTrustedIntent, @Px int initialActivityHeight, @Nullable String packageName) { boolean enabledDueToThirdParty = ChromeFeatureList.sCctResizableForThirdParties.isEnabled() && isAllowedThirdParty(packageName); @@ -447,7 +450,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } private static @Px int getInitialActivityWidth( - boolean isTrustedIntent, @Px int initialActivityWidth, String packageName) { + boolean isTrustedIntent, @Px int initialActivityWidth, @Nullable String packageName) { boolean enabledDueToThirdParty = isAllowedThirdParty(packageName); return (isTrustedIntent || enabledDueToThirdParty) ? initialActivityWidth : 0; } @@ -509,7 +512,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid */ static String getAppIdFromReferrer(Activity activity) { String referrer = - CustomTabActivityLifecycleUmaTracker.getReferrerUriString(activity) + assumeNonNull(CustomTabActivityLifecycleUmaTracker.getReferrerUriString(activity)) .toLowerCase(Locale.US); if (TextUtils.isEmpty(referrer)) return ""; @@ -634,6 +637,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid // until native is loaded. mTrustedWebActivityDisplayMode = resolveTwaDisplayMode(); + mTrustedWebActivityDisplayOverrideMode = resolveTwaDisplayOverrideMode(); int intentVisibilityState = IntentUtils.safeGetIntExtra( @@ -733,7 +737,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return defaultRadius; } - private static PendingIntent getSecondaryToolbarSwipeUpGesture(Intent intent) { + private static @Nullable PendingIntent getSecondaryToolbarSwipeUpGesture(Intent intent) { PendingIntent pendingIntent = CustomTabsIntent.getSecondaryToolbarSwipeUpGesture(intent); if (pendingIntent == null) { pendingIntent = @@ -744,7 +748,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return pendingIntent; } - private static String getTranslateLanguage(Intent intent) { + private static @Nullable String getTranslateLanguage(Intent intent) { String translateLanguage = null; Locale locale = CustomTabsIntent.getTranslateLocale(intent); if (locale != null) translateLanguage = LocaleUtils.toLanguageTag(locale); @@ -754,7 +758,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return translateLanguage; } - private void updateExtraMenuItems(List menuItems) { + private void updateExtraMenuItems(@Nullable List menuItems) { if (menuItems == null) return; for (int i = 0; i < Math.min(MAX_CUSTOM_MENU_ITEMS, menuItems.size()); i++) { Bundle bundle = menuItems.get(i); @@ -1003,7 +1007,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } } - private String resolveUrlToLoad(Intent intent) { + private @Nullable String resolveUrlToLoad(Intent intent) { String url = IntentHandler.getUrlFromIntent(intent); // Intents fired for media viewers have an additional file:// URI passed along so that the @@ -1034,11 +1038,31 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } } + private List resolveTwaDisplayOverrideMode() { + // display-override, if present and containing a supported mode, takes precedence over + // display-mode. + List displayOverrideBundle = + IntentUtils.getParcelableArrayListExtra( + mIntent, TrustedWebActivityIntentBuilder.EXTRA_DISPLAY_OVERRIDE); + List displayOverride = new ArrayList<>(); + if (displayOverrideBundle != null) { + for (Bundle b : displayOverrideBundle) { + try { + displayOverride.add(TrustedWebActivityDisplayMode.fromBundle(b)); + } catch (Throwable e) { + // If the given value isn't a valid display mode, skip it. + } + } + } + return displayOverride; + } + /** * Returns the {@link ScreenOrientationLockType} which matches {@link ScreenOrientation}. + * * @param orientation {@link ScreenOrientation} * @return The matching ScreenOrientationLockType. {@link ScreenOrientationLockType#DEFAULT} if - * there is no match. + * there is no match. */ private static int convertOrientationType(@ScreenOrientation.LockType int orientation) { switch (orientation) { @@ -1274,7 +1298,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } /** Returns client package name for finishing animation. */ - public String getInsecureClientPackageNameForOnFinishAnimation() { + public @Nullable String getInsecureClientPackageNameForOnFinishAnimation() { // The package name may come from the insecure info contained in the animation // bundle which won't do any harm in the operation. if (mAnimationBundle == null) return null; @@ -1294,14 +1318,14 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public int getAnimationEnterRes() { return shouldAnimateOnFinish() - ? mAnimationBundle.getInt(BUNDLE_ENTER_ANIMATION_RESOURCE) + ? assumeNonNull(mAnimationBundle).getInt(BUNDLE_ENTER_ANIMATION_RESOURCE) : 0; } @Override public int getAnimationExitRes() { return shouldAnimateOnFinish() && !isPartialCustomTab() - ? mAnimationBundle.getInt(BUNDLE_EXIT_ANIMATION_RESOURCE) + ? assumeNonNull(mAnimationBundle).getInt(BUNDLE_EXIT_ANIMATION_RESOURCE) : 0; } @@ -1311,7 +1335,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } @Override - public String getUrlToLoad() { + public @Nullable String getUrlToLoad() { if (mUrlToLoad == null) { mUrlToLoad = resolveUrlToLoad(getIntent()); } @@ -1369,8 +1393,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } @Override - @Nullable - public int[] getClickableViewIDs() { + public int @Nullable [] getClickableViewIDs() { if (mClickableViewIds == null) return null; return mClickableViewIds.clone(); } @@ -1380,9 +1403,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return mRemoteViewsPendingIntent; } - @Nullable @Override - public PendingIntent getSecondaryToolbarSwipeUpPendingIntent() { + public @Nullable PendingIntent getSecondaryToolbarSwipeUpPendingIntent() { return mSecondaryToolbarSwipeUpPendingIntent; } @@ -1448,28 +1470,30 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return !mDisableDownload; } - @Nullable @Override - public TrustedWebActivityDisplayMode getProvidedTwaDisplayMode() { + public @Nullable TrustedWebActivityDisplayMode getProvidedTwaDisplayMode() { return mTrustedWebActivityDisplayMode; } + public List getProvidedTwaDisplayOverrideMode() { + return mTrustedWebActivityDisplayOverrideMode; + } + @Override - @Nullable - public List getTrustedWebActivityAdditionalOrigins() { + public @Nullable List getTrustedWebActivityAdditionalOrigins() { return mTrustedWebActivityAdditionalOrigins; } @Override - @Nullable - public Set getAllTrustedWebActivityOrigins() { + public @Nullable Set getAllTrustedWebActivityOrigins() { // Lazily compute this, since `getUrlToLoad()` requires native to be loaded. if (mAllTrustedWebActivityOrigins != null) { return mAllTrustedWebActivityOrigins; } mAllTrustedWebActivityOrigins = new HashSet<>(); - Origin initialOrigin = Origin.create(getUrlToLoad()); + String url = getUrlToLoad(); + Origin initialOrigin = Origin.create(url == null ? "" : url); if (initialOrigin != null) mAllTrustedWebActivityOrigins.add(initialOrigin); if (mTrustedWebActivityAdditionalOrigins != null) { for (String originAsString : mTrustedWebActivityAdditionalOrigins) { @@ -1493,7 +1517,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return mAutoTranslateLanguage != null && isAllowedToAutoTranslate(); } - private static boolean isPackageNameInList(String packageName, String pipeDelimitedList) { + private static boolean isPackageNameInList( + @Nullable String packageName, String pipeDelimitedList) { if (packageName == null || TextUtils.isEmpty(pipeDelimitedList)) return false; for (String p : pipeDelimitedList.split("\\|")) { if (packageName.equals(p)) return true; @@ -1568,8 +1593,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid } @Override - @Nullable - public int[] getGsaExperimentIds() { + public int @Nullable [] getGsaExperimentIds() { return mGsaExperimentIds; } @@ -1590,7 +1614,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return mBreakPointDp; } - static boolean isAllowedThirdParty(String packageName) { + static boolean isAllowedThirdParty(@Nullable String packageName) { if (packageName == null) return false; String defaultPolicy = ChromeFeatureList.sCctResizableForThirdPartiesDefaultPolicy.getValue(); @@ -1753,8 +1777,47 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid && mUiType == CustomTabsUiType.DEFAULT; } + private static boolean isDisplayModeSupported( + @Nullable TrustedWebActivityDisplayMode displayMode, boolean isDisplayOverride) { + if (displayMode == null) { + return false; + } + if (displayMode instanceof TrustedWebActivityDisplayMode.ImmersiveMode) { + return true; + } + if (displayMode instanceof TrustedWebActivityDisplayMode.BrowserMode) { + return !isDisplayOverride; + } + if (WebAppHeaderUtils.isMinimalUiFlagEnabled() + && displayMode instanceof TrustedWebActivityDisplayMode.MinimalUiMode) { + return true; + } + + if (WebAppHeaderUtils.isWindowControlsOverlayFlagEnabled() + && displayMode instanceof TrustedWebActivityDisplayMode.WindowControlsOverlayMode) { + return isDisplayOverride; + } + + return false; + } + private @DisplayMode.EnumType int resolveDisplayMode() { - TrustedWebActivityDisplayMode displayMode = getProvidedTwaDisplayMode(); + TrustedWebActivityDisplayMode displayMode = null; + + List displayOverride = getProvidedTwaDisplayOverrideMode(); + for (TrustedWebActivityDisplayMode override : displayOverride) { + if (isDisplayModeSupported(override, /* isDisplayOverride= */ true)) { + displayMode = override; + break; + } + } + + if (displayMode == null + && isDisplayModeSupported( + getProvidedTwaDisplayMode(), /* isDisplayOverride= */ false)) { + displayMode = getProvidedTwaDisplayMode(); + } + if (displayMode == null) { return DisplayMode.STANDALONE; } @@ -1774,6 +1837,11 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return DisplayMode.MINIMAL_UI; } + if (WebAppHeaderUtils.isWindowControlsOverlayFlagEnabled() + && displayMode instanceof TrustedWebActivityDisplayMode.WindowControlsOverlayMode) { + return DisplayMode.WINDOW_CONTROLS_OVERLAY; + } + return DisplayMode.STANDALONE; } @@ -1790,13 +1858,12 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid private boolean isCpaOnlyOpenInBrowserDefault() { return ChromeFeatureList.sCctAdaptiveButtonContextualOnly.getValue() - && ChromeFeatureList.sCctAdaptiveButtonEnableOpenInBrowser.getValue() && ChromeFeatureList.sCctAdaptiveButtonDefaultVariant.getValue() == AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER; } @Override - public WindowFeatures getRequestedWindowFeatures() { + public @Nullable WindowFeatures getRequestedWindowFeatures() { if (mUiType != CustomTabsUiType.POPUP) { return null; } diff --git a/tools/under-control/src/chrome/browser/about_flags.cc b/tools/under-control/src/chrome/browser/about_flags.cc index 0e35753a..e80a06d6 100755 --- a/tools/under-control/src/chrome/browser/about_flags.cc +++ b/tools/under-control/src/chrome/browser/about_flags.cc @@ -98,12 +98,14 @@ #include "components/content_settings/core/common/features.h" #include "components/contextual_search/core/browser/contextual_search_field_trial.h" #include "components/contextual_search/core/browser/public.h" +#include "components/contextual_tasks/public/features.h" #include "components/data_sharing/public/features.h" #include "components/data_sharing/public/switches.h" #include "components/dom_distiller/core/dom_distiller_features.h" #include "components/dom_distiller/core/dom_distiller_switches.h" #include "components/download/public/common/download_features.h" #include "components/enterprise/buildflags/buildflags.h" +#include "components/enterprise/client_certificates/core/features.h" #include "components/enterprise/data_controls/core/browser/features.h" #include "components/enterprise/obfuscation/core/utils.h" #include "components/error_page/common/error_page_switches.h" @@ -139,7 +141,6 @@ #include "components/optimization_guide/core/optimization_guide_switches.h" #include "components/page_content_annotations/core/page_content_annotations_features.h" #include "components/page_content_annotations/core/page_content_annotations_switches.h" -#include "components/page_image_service/features.h" #include "components/page_info/core/features.h" #include "components/paint_preview/buildflags/buildflags.h" #include "components/paint_preview/features/features.h" @@ -149,6 +150,7 @@ #include "components/performance_manager/public/features.h" #include "components/permissions/features.h" #include "components/plus_addresses/core/common/features.h" +#include "components/policy/core/common/features.h" #include "components/power_bookmarks/core/power_bookmark_features.h" #include "components/privacy_sandbox/privacy_sandbox_features.h" #include "components/regional_capabilities/regional_capabilities_switches.h" @@ -177,6 +179,7 @@ #include "components/soda/soda_features.h" #include "components/spellcheck/common/spellcheck_features.h" #include "components/spellcheck/spellcheck_buildflags.h" +#include "components/strike_database/strike_database_features.h" #include "components/supervised_user/core/common/features.h" #include "components/supervised_user/core/common/supervised_user_constants.h" #include "components/sync/base/command_line_switches.h" @@ -238,7 +241,6 @@ #include "services/network/public/cpp/network_switches.h" #include "services/tracing/public/cpp/tracing_features.h" #include "services/webnn/public/mojom/features.mojom-features.h" -#include "skia/rusty_png_feature.h" #include "storage/browser/blob/features.h" #include "storage/browser/quota/quota_features.h" #include "third_party/blink/public/common/features.h" @@ -341,6 +343,7 @@ #include "chrome/browser/contextual_cueing/contextual_cueing_features.h" // nogncheck #include "chrome/browser/enterprise/profile_management/profile_management_features.h" #include "chrome/browser/enterprise/webstore/features.h" +#include "components/services/on_device_translation/public/cpp/features.h" #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) @@ -541,44 +544,22 @@ const FeatureEntry::Choice KWebXrHandAnonymizationChoices[] = { #endif // ENABLE_VR #if BUILDFLAG(IS_ANDROID) -const FeatureEntry::FeatureParam kCCTAdaptiveButtonEnable[] = { - {"open_in_browser", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonCPAOnly[] = { - {"contextual_only", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonOpenInBrowserCPA[] = { - {"open_in_browser", "true"}, +const FeatureEntry::FeatureParam kCCTAdaptiveButton_CPA[] = { {"default_variant", "15"}, // 15 == Open In Browser {"contextual_only", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonMenuOpenInBrowserTop[] = { - {"open_in_browser", "true"}, +const FeatureEntry::FeatureParam kCCTAdaptiveButton_CPA_RMFallbackMenu[] = { + {"default_variant", "15"}, + {"contextual_only", "true"}, + {"reader_mode_fallback_menu", "true"}}; +const FeatureEntry::FeatureParam kCCTAdaptiveButton_MenuOIB[] = { {"show_open_in_browser_menu_top", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonMenuRemoval[] = { - {"open_in_browser", "true"}, - {"remove_find_in_page_menu_item", "true"}, - {"remove_desktop_site_menu_item", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonMenuCombo[] = { - {"open_in_browser", "true"}, - {"show_open_in_browser_menu_top", "true"}, - {"remove_find_in_page_menu_item", "true"}, - {"remove_desktop_site_menu_item", "true"}}; -const FeatureEntry::FeatureParam kCCTAdaptiveButtonMLTraining[] = { - {"ml_training", "true"}, - {"open_in_browser", "true"}}; const FeatureEntry::FeatureVariation kCCTAdaptiveButtonVariations[] = { - {"+OpenInBrowser", kCCTAdaptiveButtonEnable, - std::size(kCCTAdaptiveButtonEnable), nullptr}, - {"CPA only", kCCTAdaptiveButtonCPAOnly, - std::size(kCCTAdaptiveButtonCPAOnly), nullptr}, - {"CPA+OpenInBrowser", kCCTAdaptiveButtonOpenInBrowserCPA, - std::size(kCCTAdaptiveButtonOpenInBrowserCPA), nullptr}, - {"Menu: OpenInBrowser at Top", kCCTAdaptiveButtonMenuOpenInBrowserTop, - std::size(kCCTAdaptiveButtonMenuOpenInBrowserTop), nullptr}, - {"Menu: Remove FineInPage/DesktopSite", kCCTAdaptiveButtonMenuRemoval, - std::size(kCCTAdaptiveButtonMenuRemoval), nullptr}, - {"Menu: Combine above 2", kCCTAdaptiveButtonMenuCombo, - std::size(kCCTAdaptiveButtonMenuCombo), nullptr}, - {"for ML training", kCCTAdaptiveButtonMLTraining, - std::size(kCCTAdaptiveButtonMLTraining), nullptr}, + {"Menu OIB moved up", kCCTAdaptiveButton_MenuOIB, + std::size(kCCTAdaptiveButton_MenuOIB), nullptr}, + {"CPA+OIB", kCCTAdaptiveButton_CPA, std::size(kCCTAdaptiveButton_CPA), + nullptr}, + {"CPA+OIB+RMFallbackMenu", kCCTAdaptiveButton_CPA_RMFallbackMenu, + std::size(kCCTAdaptiveButton_CPA_RMFallbackMenu), nullptr}, }; const FeatureEntry::FeatureParam kCCTAdaptiveButtonTestSwitchHide[] = { @@ -684,6 +665,26 @@ const FeatureEntry::FeatureVariation std::size(kCCTSingleDeckerBottomBarWithButtonsOnRightParam), nullptr}, }; +const FeatureEntry::FeatureParam + kAndroidBottomToolbarV2ForceBottomForFocusedOmniboxParam[] = { + {"force_bottom_for_focused_omnibox", "true"}}; +const FeatureEntry::FeatureParam kAndroidBottomToolbarV2ReverseListParam[] = { + {"reverse_order_suggestions_list", "true"}}; +const FeatureEntry::FeatureParam kAndroidBottomToolbarV2ReverseAndForce[] = { + {"force_bottom_for_focused_omnibox", "true"}, + {"reverse_order_suggestions_list", "true"}}; + +const FeatureEntry::FeatureVariation kAndroidBottomToolbarV2Variations[] = { + {"Force bottom for focused omnibox", + kAndroidBottomToolbarV2ForceBottomForFocusedOmniboxParam, + std::size(kAndroidBottomToolbarV2ForceBottomForFocusedOmniboxParam), + nullptr}, + {"Reverse List", kAndroidBottomToolbarV2ReverseListParam, + std::size(kAndroidBottomToolbarV2ReverseListParam), nullptr}, + {"Reverse list and force bottom for focused omnibox", + kAndroidBottomToolbarV2ReverseAndForce, + std::size(kAndroidBottomToolbarV2ReverseAndForce), nullptr}}; + const FeatureEntry::Choice kReaderModeHeuristicsChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kReaderModeHeuristicsMarkup, @@ -944,6 +945,12 @@ const FeatureEntry::FeatureVariation {"with holdback", kSearchPrefetchWithHoldback, std::size(kSearchPrefetchWithHoldback), nullptr}}; +const FeatureEntry::FeatureParam kWebUIOmniboxPopupDebugSxS[] = { + {"SxS", "true"}}; +const FeatureEntry::FeatureVariation kWebUIOmniboxPopupDebugVariations[] = { + {"Side by Side", kWebUIOmniboxPopupDebugSxS, + std::size(kWebUIOmniboxPopupDebugSxS), nullptr}}; + #if BUILDFLAG(IS_CHROMEOS) const FeatureEntry::FeatureParam kArcVmMemorySizeShift_200[] = { {"shift_mib", "-200"}}; @@ -1010,26 +1017,6 @@ const FeatureEntry::Choice kTopChromeTouchUiChoices[] = { {flags_ui::kGenericExperimentChoiceEnabled, switches::kTopChromeTouchUi, switches::kTopChromeTouchUiEnabled}}; -#if BUILDFLAG(IS_ANDROID) -const FeatureEntry::FeatureParam kCctSignInPromptAlways[] = { - {"cadence_day", "0"}, - {"show_limit", "10000"}, - {"user_act_count", "10000"}, - {"if_allowed_by_embedder", "true"}, - {"if_enabled_by_embedder", "true"}}; -const FeatureEntry::FeatureParam kCctSignInTestOnly[] = { - {"cadence_day", "0"}, - {"show_limit", "4"}, - {"user_act_count", "2"}, - {"if_allowed_by_embedder", "true"}, - {"if_enabled_by_embedder", "true"}}; - -const FeatureEntry::FeatureVariation kCctSignInPromptVariations[] = { - {"always show", kCctSignInPromptAlways, std::size(kCctSignInPromptAlways), - nullptr}, - {"for test", kCctSignInTestOnly, std::size(kCctSignInTestOnly), nullptr}}; -#endif - #if BUILDFLAG(IS_CHROMEOS) const FeatureEntry::FeatureParam kZinkEnableRecommended[] = { @@ -1196,6 +1183,8 @@ const FeatureEntry::FeatureVariation kTextSafetyClassifierVariations[] = { const FeatureEntry::FeatureParam kPageActionsMigrationParams[] = { {"autofill_address", "true"}, + {"click_to_call", "true"}, + {"collaboration_messaging", "true"}, {"discounts", "true"}, {"file_system_access", "true"}, {"find", "true"}, @@ -1208,6 +1197,7 @@ const FeatureEntry::FeatureParam kPageActionsMigrationParams[] = { {"price_insights", "true"}, {"price_tracking", "true"}, {"pwa_install", "true"}, + {"sharing_hub", "true"}, {"translate", "true"}, {"zoom", "true"}, }; @@ -1270,11 +1260,6 @@ const FeatureEntry::FeatureVariation kJourneysVariations[] = { std::size(kJourneysAllLocalesParams), nullptr}, }; -const FeatureEntry::FeatureVariation - kImageServiceOptimizationGuideSalientImagesVariations[] = { - {"High Performance Canonicalization", nullptr, 0, "3362133"}, -}; - const FeatureEntry::FeatureVariation kRemotePageMetadataVariations[] = { {"High Performance Canonicalization", nullptr, 0, "3362133"}, }; @@ -1321,47 +1306,6 @@ const FeatureEntry::FeatureVariation kOmniboxStarterPackExpansionVariations[] = {"staging url", kOmniboxStarterPackExpansionStagingUrl, std::size(kOmniboxStarterPackExpansionStagingUrl), nullptr}}; -const FeatureEntry::FeatureParam kOmniboxSearchAggregatorProdParams[] = { - {"name", "Agentspace"}, - {"shortcut", "agentspace"}, - {"search_url", - "https://vertexaisearch.cloud.google.com/home/cid/" - "8884f744-aae1-4fbc-8a64-b8bf7cbf270e?q={searchTerms}"}, - {"suggest_url", - "https://discoveryengine.googleapis.com/v1alpha/projects/862721868538/" - "locations/global/collections/default_collection/engines/" - "teamfood-v11_1720671063545/completionConfig:completeQuery"}}; -const FeatureEntry::FeatureParam kOmniboxSearchAggregatorStagingParams[] = { - {"name", "Agentspace (staging)"}, - {"shortcut", "agentspace"}, - {"icon_url", "https://gstatic.com/vertexaisearch/favicon.png"}, - {"search_url", - "https://vertexaisearch.cloud.google.com/home/cid/" - "3abd7045-7845-4f83-b204-e39fcbca3494?q={searchTerms}&mods=widget_staging_" - "api_mod"}, - {"suggest_url", - "https://staging-discoveryengine.sandbox.googleapis.com/v1alpha/projects/" - "862721868538/locations/global/collections/default_collection/engines/" - "teamfood-v11/completionConfig:completeQuery"}}; -const FeatureEntry::FeatureParam kOmniboxSearchAggregatorDemoParams[] = { - {"name", "Neuravibe"}, - {"shortcut", "neura"}, - {"icon_url", "https://gstatic.com/vertexaisearch/favicon.png"}, - {"search_url", - "https://vertexaisearch.cloud.google.com/home/cid/" - "8e21c7cd-cbfe-4162-baf4-3381fc43546e?q={searchTerms}"}, - {"suggest_url", - "https://discoveryengine.googleapis.com/v1alpha/projects/977834784893/" - "locations/global/collections/default_collection/engines/" - "neuravibeenterprisesearch_1732204320742/completionConfig:completeQuery"}}; -const FeatureEntry::FeatureVariation kOmniboxSearchAggregatorVariations[] = { - {"prod", kOmniboxSearchAggregatorProdParams, - std::size(kOmniboxSearchAggregatorProdParams), nullptr}, - {"staging", kOmniboxSearchAggregatorStagingParams, - std::size(kOmniboxSearchAggregatorStagingParams), nullptr}, - {"demo", kOmniboxSearchAggregatorDemoParams, - std::size(kOmniboxSearchAggregatorDemoParams), nullptr}}; - const FeatureEntry::FeatureParam kOmniboxUrlSuggestionsOnFocusTwoDayWindow[] = { {"OnFocusMostVisitedRecencyWindow", "1"}, }; @@ -1511,6 +1455,13 @@ const FeatureEntry::FeatureVariation nullptr}, }; +const FeatureEntry::Choice kContextualSuggestionsUiImprovementsChoices[] = { + {flags_ui::kGenericExperimentChoiceDefault, "", ""}, + {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, + "LoadingSuggestionsAnimation,SuggestionsFulfilledByLensSupported," + "OpenLensActionUITweaks"}, +}; + const FeatureEntry::FeatureParam kOmniboxToolbeltLensActionsZeroInputs[] = { {"KeepToolbeltAfterInput", "false"}, {"ShowLensActionOnNonNtp", "true"}, @@ -1657,15 +1608,56 @@ const FeatureEntry::FeatureParam kComposeboxNoEscClosure[] = { }; const FeatureEntry::FeatureParam kComposeboxShowContextMenu[] = { {"ShowContextMenu", "true"}, + {"ShowRecentTabChip", "true"}, }; const FeatureEntry::FeatureParam kComposeboxShowContextMenuAndZps[] = { {"ShowComposeboxZps", "true"}, {"ShowContextMenu", "true"}, + {"ShowRecentTabChip", "true"}, }; const FeatureEntry::FeatureParam kComposeboxShowContextMenuAndZpsMultiFile[] = { {"MaxNumFiles", "5"}, {"ShowComposeboxZps", "true"}, {"ShowContextMenu", "true"}, + {"ShowRecentTabChip", "true"}, +}; +const FeatureEntry::FeatureParam + kComposeboxShowContextMenuAndZpsMultiFileNoViewport[] = { + {"MaxNumFiles", "5"}, + {"ShowComposeboxZps", "true"}, + {"ShowContextMenu", "true"}, + {"ShowRecentTabChip", "true"}, + {"EnableViewportImages", "false"}, +}; +const FeatureEntry::FeatureParam + kComposeboxShowContextMenuAndZpsMultiFileAndTabPreviews[] = { + {"MaxNumFiles", "5"}, + {"ShowComposeboxZps", "true"}, + {"ShowContextMenu", "true"}, + {"ShowRecentTabChip", "true"}, + {"ShowContextMenuTabPreviews", "true"}, +}; +const FeatureEntry::FeatureParam kShowToolsAndModels[] = { + {"ShowContextMenu", "true"}, + {"ShowToolsAndModels", "true"}, + {"ShowComposeboxZps", "true"}, + {"ForceToolsAndModels", "true"}, +}; +const FeatureEntry::FeatureParam kShowCreateImageTool[] = { + {"ShowContextMenu", "true"}, + {"ShowToolsAndModels", "true"}, + {"ShowCreateImageTool", "true"}, + {"ShowComposeboxZps", "true"}, + {"ForceToolsAndModels", "true"}, +}; +const FeatureEntry::FeatureParam kComposeboxNext[] = { + {"MaxNumFiles", "5"}, + {"ShowContextMenu", "true"}, + {"ShowContextMenuTabPreviews", "true"}, + {"ShowComposeboxZps", "true"}, + {"ShowToolsAndModels", "true"}, + {"ShowCreateImageTool", "true"}, + {"ForceToolsAndModels", "true"}, }; const FeatureEntry::FeatureVariation kNtpComposeboxVariations[] = { @@ -1683,6 +1675,39 @@ const FeatureEntry::FeatureVariation kNtpComposeboxVariations[] = { {"- Show Contextual Input Menu and ZPS 5 File Limit", kComposeboxShowContextMenuAndZpsMultiFile, std::size(kComposeboxShowContextMenuAndZpsMultiFile), nullptr}, + {"- Show Contextual Input Menu and ZPS 5 File Limit, no viewport uploading", + kComposeboxShowContextMenuAndZpsMultiFileNoViewport, + std::size(kComposeboxShowContextMenuAndZpsMultiFileNoViewport), nullptr}, + {"- Show Contextual Input Menu, ZPS 5 File Limit and Tab Previews", + kComposeboxShowContextMenuAndZpsMultiFileAndTabPreviews, + std::size(kComposeboxShowContextMenuAndZpsMultiFileAndTabPreviews), + nullptr}, + {"- Show Context Menu with Tools and Models, ZPS", kShowToolsAndModels, + std::size(kShowToolsAndModels), nullptr}, + {"- Show Create Image in Context Menu, ZPS", kShowCreateImageTool, + std::size(kShowCreateImageTool), nullptr}, + {"- Next Experience", kComposeboxNext, std::size(kComposeboxNext), nullptr}, +}; + +const FeatureEntry::FeatureParam kShowNextRealboxTallBottomContext[] = { + {"RealboxLayoutMode", ntp_realbox::kRealboxLayoutModeTallBottomContext}, +}; +const FeatureEntry::FeatureParam kShowNextRealboxTallTopContext[] = { + {"RealboxLayoutMode", ntp_realbox::kRealboxLayoutModeTallTopContext}, +}; +const FeatureEntry::FeatureParam kShowNextRealboxCompact[] = { + {"RealboxLayoutMode", ntp_realbox::kRealboxLayoutModeCompact}, +}; + +const FeatureEntry::FeatureVariation kNtpRealboxNextVariations[] = { + {"- Show Next Realbox with Bottom Context Button (TallBottomContext)", + kShowNextRealboxTallBottomContext, + std::size(kShowNextRealboxTallBottomContext), nullptr}, + {"- Show Next Realbox with Top Context Button (TallTopContext)", + kShowNextRealboxTallTopContext, std::size(kShowNextRealboxTallTopContext), + nullptr}, + {"- Show Next Realbox (Compact)", kShowNextRealboxCompact, + std::size(kShowNextRealboxCompact), nullptr}, }; #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || @@ -1926,52 +1951,6 @@ const FeatureEntry::FeatureVariation }; #if BUILDFLAG(IS_ANDROID) -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsCounterfactual[] = { - {OmniboxFieldTrial::kAnswerActionsCounterfactual.name, "true"}}; -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsTreatment1[] = { - {OmniboxFieldTrial::kAnswerActionsShowAboveKeyboard.name, "true"}, - {OmniboxFieldTrial::kAnswerActionsShowIfUrlsPresent.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowRichCard.name, "false"}}; - -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsTreatment2[] = { - {OmniboxFieldTrial::kAnswerActionsShowAboveKeyboard.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowIfUrlsPresent.name, "true"}, - {OmniboxFieldTrial::kAnswerActionsShowRichCard.name, "false"}}; - -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsTreatment3[] = { - {OmniboxFieldTrial::kAnswerActionsShowAboveKeyboard.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowIfUrlsPresent.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowRichCard.name, "false"}}; - -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsTreatment4[] = { - {OmniboxFieldTrial::kAnswerActionsShowAboveKeyboard.name, "true"}, - {OmniboxFieldTrial::kAnswerActionsShowIfUrlsPresent.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowRichCard.name, "true"}}; - -constexpr FeatureEntry::FeatureParam kOmniboxAnswerActionsTreatment5[] = { - {OmniboxFieldTrial::kAnswerActionsShowAboveKeyboard.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowIfUrlsPresent.name, "false"}, - {OmniboxFieldTrial::kAnswerActionsShowRichCard.name, "true"}}; - -constexpr FeatureEntry::FeatureVariation kOmniboxAnswerActionsVariants[] = { - {"Counterfactual: fetch without rendering ", - kOmniboxAnswerActionsCounterfactual, - std::size(kOmniboxAnswerActionsCounterfactual), "t3379046"}, - {"T1: Show chips above keyboard when there are no url matches", - kOmniboxAnswerActionsTreatment1, - std::size(kOmniboxAnswerActionsTreatment1), "t3379047"}, - {"T2: Show chips at position 0", kOmniboxAnswerActionsTreatment2, - std::size(kOmniboxAnswerActionsTreatment2), "t3379048"}, - {"T3: Show chips at position 0 when there are no url matches", - kOmniboxAnswerActionsTreatment3, - std::size(kOmniboxAnswerActionsTreatment3), "t3379049"}, - {"T4: Show rich card above keyboard when there are no url matches", - kOmniboxAnswerActionsTreatment4, - std::size(kOmniboxAnswerActionsTreatment4), "t3379050"}, - {"T5: Show rich card at position 0 when there are no url matches", - kOmniboxAnswerActionsTreatment5, - std::size(kOmniboxAnswerActionsTreatment5), "t3379051"}, -}; constexpr FeatureEntry::FeatureParam kOmniboxDiagInputConnection[]{ {OmniboxFieldTrial::kAndroidDiagInputConnection.name, "true"}}; @@ -1991,6 +1970,26 @@ const FeatureEntry::FeatureVariation kOmniboxMobileParityV2Variants[] = { std::size(kOmniboxMobileParityV2RetrieveBuiltinFavicon)}}; // <-- Omnibox Mobile Parity Update V2 +#if !IS_OFFICIAL_BUILD +const FeatureEntry::FeatureParam + kOmniboxRemoveSearchReadyOmniboxNoMatchParam[] = { + {"remove_sro_including_verbatim_match", "true"}}; + +const FeatureEntry::FeatureVariation + kOmniboxRemoveSearchReadyOmniboxVariations[] = { + {"No Match", kOmniboxRemoveSearchReadyOmniboxNoMatchParam, + std::size(kOmniboxRemoveSearchReadyOmniboxNoMatchParam), nullptr}}; +#endif + +const FeatureEntry::FeatureParam + kOmniboxImprovementForLFFVariationsSwitchToTabChip[] = { + {OmniboxFieldTrial::kOmniboxImprovementForLFFSwitchToTabChip.name, + "true"}}; + +const FeatureEntry::FeatureVariation kOmniboxImprovementForLFFVariations[] = { + {"Switch to Tab Chip", kOmniboxImprovementForLFFVariationsSwitchToTabChip, + std::size(kOmniboxImprovementForLFFVariationsSwitchToTabChip), nullptr}}; + #endif // BUILDFLAG(IS_ANDROID) const FeatureEntry::FeatureParam kMaxZeroSuggestMatches5[] = { @@ -2872,57 +2871,6 @@ const FeatureEntry::FeatureVariation std::size(kPhotoPickerAdoptionStudyChromePickerWithoutBrowse), nullptr}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_UseLargeFavicon[] = { - {"use_large_favicon", "true"}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceCheck[] = { - {"skip_device_check", "true"}, - {"use_large_favicon", "true"}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipSchemaCheck[] = { - {"skip_schema_check", "true"}, - {"use_large_favicon", "true"}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceAndSchemaChecks - [] = {{"skip_device_check", "true"}, - {"skip_schema_check", "true"}, - {"use_large_favicon", "true"}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_DelayTime200Ms[] = { - {"schedule_delay_time_ms", "200"}}; -const FeatureEntry::FeatureParam - kAndroidAppIntegrationWithFavicon_DelayTime200Ms_UseLargeFavicon[] = { - {"schedule_delay_time_ms", "200"}, - {"use_large_favicon", "true"}}; - -const FeatureEntry::FeatureVariation kAndroidAppIntegrationWithFaviconVariations[] = - {{"Use large favicon (no delay)", - kAndroidAppIntegrationWithFavicon_UseLargeFavicon, - std::size(kAndroidAppIntegrationWithFavicon_UseLargeFavicon), nullptr}, - {"Skip device check + use large favicon (no delay)", - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceCheck, - std::size( - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceCheck), - nullptr}, - {"Skip schema check + use large favicon (no delay)", - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipSchemaCheck, - std::size( - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipSchemaCheck), - nullptr}, - {"Skip both device and schema checks + use large favicon (no delay)", - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceAndSchemaChecks, - std::size( - kAndroidAppIntegrationWithFavicon_UseLargeFavicon_SkipDeviceAndSchemaChecks), - nullptr}, - {"200ms delay", kAndroidAppIntegrationWithFavicon_DelayTime200Ms, - std::size(kAndroidAppIntegrationWithFavicon_DelayTime200Ms), nullptr}, - {"200ms delay with large favicon", - kAndroidAppIntegrationWithFavicon_DelayTime200Ms_UseLargeFavicon, - std::size( - kAndroidAppIntegrationWithFavicon_DelayTime200Ms_UseLargeFavicon), - nullptr}}; - const FeatureEntry::FeatureParam kAndroidAppIntegrationModule_ForceCardShown_Pixel[] = { {"force_card_shown", "true"}}; @@ -2941,6 +2889,13 @@ const FeatureEntry::FeatureVariation kAndroidAppIntegrationModuleVariations[] = std::size(kAndroidAppIntegrationModule_ForceCardShown_NonPixel), nullptr}}; +const FeatureEntry::FeatureParam kNewTabPageCustomizationV2_ShowColorPicker[] = + {{"show_color_picker", "true"}}; + +const FeatureEntry::FeatureVariation kNewTabPageCustomizationV2Variations[] = { + {"Show color picker", kNewTabPageCustomizationV2_ShowColorPicker, + std::size(kNewTabPageCustomizationV2_ShowColorPicker), nullptr}}; + const FeatureEntry::FeatureParam kAndroidComposeplate_V2Enabled[] = { {"v2_enabled", "true"}}; const FeatureEntry::FeatureParam kAndroidComposeplate_HideIncognitoButton[] = { @@ -3034,31 +2989,21 @@ const FeatureEntry::FeatureVariation kBoardingPassDetectorVariations[] = { #if BUILDFLAG(IS_ANDROID) const FeatureEntry::FeatureParam kShowNewTabAnimationsLogs[] = { - {"logs", "true"}, - {"listeners", "false"}}; -const FeatureEntry::FeatureParam kShowNewTabAnimationsListeners[] = { - {"logs", "true"}, - {"listeners", "true"}}; + {"logs", "true"}}; const FeatureEntry::FeatureVariation kShowNewTabAnimationsVariations[] = { {"- Add logs", kShowNewTabAnimationsLogs, - std::size(kShowNewTabAnimationsLogs), nullptr}, - {"- Add logs and listeners", kShowNewTabAnimationsListeners, - std::size(kShowNewTabAnimationsListeners), nullptr}, -}; + std::size(kShowNewTabAnimationsLogs), nullptr}}; + +const FeatureEntry::FeatureParam + kTabStorageSqlitePrototypeAuthoritativeReads[] = { + {"authoritative_read_source", "true"}}; +const FeatureEntry::FeatureVariation kTabStorageSqlitePrototypeVariations[] = { + {"- Authoritative Read Source", + kTabStorageSqlitePrototypeAuthoritativeReads, + std::size(kTabStorageSqlitePrototypeAuthoritativeReads), nullptr}}; #endif // BUILDFLAG(IS_ANDROID) -// TODO(crbug.com/991082,1015377): Remove after proper support for back/forward -// cache is implemented. -const FeatureEntry::FeatureParam kBackForwardCache_ForceCaching[] = { - {"TimeToLiveInBackForwardCacheInSeconds", "300"}, - {"should_ignore_blocklists", "true"}}; - -const FeatureEntry::FeatureVariation kBackForwardCacheVariations[] = { - {"force caching all pages (experimental)", kBackForwardCache_ForceCaching, - std::size(kBackForwardCache_ForceCaching), nullptr}, -}; - const FeatureEntry::FeatureParam kRenderDocument_Subframe[] = { {"level", "subframe"}}; const FeatureEntry::FeatureParam kRenderDocument_AllFrames[] = { @@ -4194,27 +4139,6 @@ const FeatureEntry::FeatureVariation kSensitiveContentVariations[] = { }; #endif // BUILDFLAG(IS_ANDROID) -// Feature variations for kSubframeProcessReuseThresholds. -const FeatureEntry::FeatureParam kSubframeProcessReuseMemoryThreshold512MB{ - "SubframeProcessReuseMemoryThreshold", "536870912"}; -const FeatureEntry::FeatureParam kSubframeProcessReuseMemoryThreshold1GB{ - "SubframeProcessReuseMemoryThreshold", "1073741824"}; -const FeatureEntry::FeatureParam kSubframeProcessReuseMemoryThreshold2GB{ - "SubframeProcessReuseMemoryThreshold", "2147483648"}; -const FeatureEntry::FeatureParam kSubframeProcessReuseMemoryThreshold4GB{ - "SubframeProcessReuseMemoryThreshold", "4294967296"}; -const FeatureEntry::FeatureVariation - kSubframeProcessReuseThresholdsVariations[] = { - {"with 512MB memory threshold", - &kSubframeProcessReuseMemoryThreshold512MB, 1, nullptr}, - {"with 1GB memory threshold", &kSubframeProcessReuseMemoryThreshold1GB, - 1, nullptr}, - {"with 2GB memory threshold", &kSubframeProcessReuseMemoryThreshold2GB, - 1, nullptr}, - {"with 4GB memory threshold", &kSubframeProcessReuseMemoryThreshold4GB, - 1, nullptr}, -}; - #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) const FeatureEntry::FeatureParam kContextualCueingEnabledNoEngagementCap[] = { {"BackoffTime", "0h"}, @@ -4456,23 +4380,37 @@ const FeatureEntry::FeatureVariation kHistoryOptInEducationalTipVariations[] = { std::size(kHistoryOptInEducationalTipContinue), nullptr}}; #endif // BUILDFLAG(IS_ANDROID) -const FeatureEntry::FeatureParam kStandardBoundSessionCredentialsStandard[] = { - {"RequireOriginTrialTokens", "true"}, - {"RefreshQuota", "true"}, - {"CheckSubdomainRegistration", "true"}}; const FeatureEntry::FeatureParam kStandardBoundSessionCredentialsForDevelopers[] = { {"RequireOriginTrialTokens", "false"}, {"RefreshQuota", "false"}, - {"CheckSubdomainRegistration", "false"}}; + {"CheckSubdomainRegistration", "false"}, + {"OriginTrialFeedback", "true"}, + {"SchemaVersion", "2"}}; const FeatureEntry::FeatureVariation kStandardBoundSessionCredentialsVariations[] = { - {"- Standard", kStandardBoundSessionCredentialsStandard, - std::size(kStandardBoundSessionCredentialsStandard), nullptr}, {"- For developers", kStandardBoundSessionCredentialsForDevelopers, std::size(kStandardBoundSessionCredentialsForDevelopers), nullptr}}; +const FeatureEntry::FeatureParam + kStandardBoundSessionCredentialsFederatedSessionsForDevelopers[] = { + {"CheckWellKnown", "false"}}; + +const FeatureEntry::FeatureVariation + kStandardBoundSessionCredentialsFederatedSessionsVariations[] = { + {"- For developers", + kStandardBoundSessionCredentialsFederatedSessionsForDevelopers, + std::size( + kStandardBoundSessionCredentialsFederatedSessionsForDevelopers), + nullptr}}; + +const FeatureEntry::FeatureParam kEnableBlockCanvasReadbackInAllModes[] = { + {"enable_in_regular_mode", "true"}}; +const FeatureEntry::FeatureVariation kEnableBlockCanvasReadbackVariations[] = { + {" - In all browsing modes", kEnableBlockCanvasReadbackInAllModes, + std::size(kEnableBlockCanvasReadbackInAllModes), nullptr}}; + const FeatureEntry::FeatureParam kEnableCanvasNoiseInAllModes[] = { {"enable_in_regular_mode", "true"}}; const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { @@ -4585,6 +4523,54 @@ const FeatureEntry::FeatureParam kGlicWarmingShorterDelays[] = { const FeatureEntry::FeatureVariation kGlicWarmingVariations[] = { {"with shorter delays", kGlicWarmingShorterDelays, std::size(kGlicWarmingShorterDelays), nullptr}}; + +const char kGlicEntrypointVariationsShowLabel[] = + "glic-entrypoint-variations-show-label"; +const char kGlicEntrypointVariationsAltIcon[] = + "glic-entrypoint-variations-alt-icon"; +const char kGlicEntrypointVariationsHighlightNudge[] = + "glic-entrypoint-variations-highlight-nudge"; +const FeatureEntry::FeatureParam kGlicEntrypointVariationsHighlightOnly[] = { + {kGlicEntrypointVariationsHighlightNudge, "true"}, + {kGlicEntrypointVariationsAltIcon, "false"}, + {kGlicEntrypointVariationsShowLabel, "false"}, +}; +const FeatureEntry::FeatureParam kGlicEntrypointVariationsLabelOnly[] = { + {kGlicEntrypointVariationsHighlightNudge, "false"}, + {kGlicEntrypointVariationsAltIcon, "false"}, + {kGlicEntrypointVariationsShowLabel, "true"}, +}; +const FeatureEntry::FeatureParam kGlicEntrypointVariationsLabelAndHighlight[] = + { + {kGlicEntrypointVariationsHighlightNudge, "true"}, + {kGlicEntrypointVariationsAltIcon, "false"}, + {kGlicEntrypointVariationsShowLabel, "true"}, +}; +const FeatureEntry::FeatureParam kGlicEntrypointVariationsLabelAndIcon[] = { + {kGlicEntrypointVariationsHighlightNudge, "false"}, + {kGlicEntrypointVariationsAltIcon, "true"}, + {kGlicEntrypointVariationsShowLabel, "true"}, +}; +const FeatureEntry::FeatureParam + kGlicEntrypointVariationsLabelAndIconAndHighlight[] = { + {kGlicEntrypointVariationsHighlightNudge, "true"}, + {kGlicEntrypointVariationsAltIcon, "true"}, + {kGlicEntrypointVariationsShowLabel, "true"}, +}; + +const FeatureEntry::FeatureVariation kGlicEntrypointVariations[] = { + {"highlight nudge only", kGlicEntrypointVariationsHighlightOnly, + std::size(kGlicEntrypointVariationsHighlightOnly), nullptr}, + {"label only", kGlicEntrypointVariationsLabelOnly, + std::size(kGlicEntrypointVariationsLabelOnly), nullptr}, + {"label, highlight nudge", kGlicEntrypointVariationsLabelAndHighlight, + std::size(kGlicEntrypointVariationsLabelAndHighlight), nullptr}, + {"label, alt icon", kGlicEntrypointVariationsLabelAndIcon, + std::size(kGlicEntrypointVariationsLabelAndIcon), nullptr}, + {"label, icon, highlight nudge", + kGlicEntrypointVariationsLabelAndIconAndHighlight, + std::size(kGlicEntrypointVariationsLabelAndIconAndHighlight), nullptr}, +}; #endif // BUILDFLAG(ENABLE_GLIC) const FeatureEntry::FeatureParam kAutofillShowTypePredictionsAsTitle[] = { @@ -4842,11 +4828,27 @@ const FeatureEntry::FeatureVariation kAndroidTabHighlightingVariations[] = { std::size(kAndroidTabHighlightingForceCtrlClick), nullptr}, {"Force Shift Click", kAndroidTabHighlightingForceShiftClick, std::size(kAndroidTabHighlightingForceShiftClick), nullptr}}; + +const FeatureEntry::FeatureParam kAndroidTipsNotificationsTrustAndSafety[] = { + {"trust_and_safety", "true"}}; +const FeatureEntry::FeatureParam kAndroidTipsNotificationsEssential[] = { + {"essential", "true"}}; +const FeatureEntry::FeatureParam kAndroidTipsNotificationsNewFeatures[] = { + {"new_features", "true"}}; + +const FeatureEntry::FeatureVariation kAndroidTipsNotificationsVariations[] = { + {" - Trust and Safety", kAndroidTipsNotificationsTrustAndSafety, + std::size(kAndroidTipsNotificationsTrustAndSafety), nullptr}, + {" - Essential", kAndroidTipsNotificationsEssential, + std::size(kAndroidTipsNotificationsEssential), nullptr}, + {" - New Features", kAndroidTipsNotificationsNewFeatures, + std::size(kAndroidTipsNotificationsNewFeatures), nullptr}}; #endif // BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID) constexpr char kWebiumFlag[] = "webium"; -constexpr char kWebiumFeatures[] = "Webium,AttachUnownedInnerWebContents"; +constexpr char kWebiumFeatures[] = + "Webium,AttachUnownedInnerWebContents,ExtensionsMenuAccessControl"; #endif // !BUILDFLAG(IS_ANDROID) const FeatureEntry::FeatureParam kMobilePromoOnDesktopLens[] = { @@ -4895,6 +4897,75 @@ const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ // BUILDFLAG(IS_CHROMEOS) +const FeatureEntry::FeatureParam kPolicyRegistrationDelay2m[] = { + {"PolicyRegistrationDelay", "2m"}}; +const FeatureEntry::FeatureParam kPolicyRegistrationDelay1h[] = { + {"PolicyRegistrationDelay", "1h"}}; +const FeatureEntry::FeatureParam kPolicyRegistrationDelay6h[] = { + {"PolicyRegistrationDelay", "6h"}}; +const FeatureEntry::FeatureParam kPolicyRegistrationDelay12h[] = { + {"PolicyRegistrationDelay", "12h"}}; +const FeatureEntry::FeatureParam kPolicyRegistrationDelay24h[] = { + {"PolicyRegistrationDelay", "24h"}}; + +const FeatureEntry::FeatureVariation kPolicyRegistrationDelayVariations[] = { + {"2 minutes", kPolicyRegistrationDelay2m, + std::size(kPolicyRegistrationDelay2m), nullptr}, + {"1 hour", kPolicyRegistrationDelay1h, + std::size(kPolicyRegistrationDelay1h), nullptr}, + {"6 hours", kPolicyRegistrationDelay6h, + std::size(kPolicyRegistrationDelay6h), nullptr}, + {"12 hours", kPolicyRegistrationDelay12h, + std::size(kPolicyRegistrationDelay12h), nullptr}, + {"24 hours", kPolicyRegistrationDelay24h, + std::size(kPolicyRegistrationDelay24h), nullptr}, +}; + +#if BUILDFLAG(ENABLE_DICE_SUPPORT) +const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay2m[] = { + {"PolicyDisclaimerRegistrationRetryDelay", "2m"}}; +const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay1h[] = { + {"PolicyDisclaimerRegistrationRetryDelay", "1h"}}; +const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay6h[] = { + {"PolicyDisclaimerRegistrationRetryDelay", "6h"}}; +const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay12h[] = + {{"PolicyDisclaimerRegistrationRetryDelay", "12h"}}; +const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay24h[] = + {{"PolicyDisclaimerRegistrationRetryDelay", "24h"}}; + +const FeatureEntry::FeatureVariation + kPolicyDisclaimerRegistrationRetryDelayVariations[] = { + {"Enabled - Retry every 2 minutes", + kPolicyDisclaimerRegistrationRetryDelay2m, + std::size(kPolicyDisclaimerRegistrationRetryDelay2m), nullptr}, + {"Enabled - Retry every 1 hour", + kPolicyDisclaimerRegistrationRetryDelay1h, + std::size(kPolicyDisclaimerRegistrationRetryDelay1h), nullptr}, + {"Enabled - Retry every 6 hours", + kPolicyDisclaimerRegistrationRetryDelay6h, + std::size(kPolicyDisclaimerRegistrationRetryDelay6h), nullptr}, + {"Enabled - Retry every 12 hours", + kPolicyDisclaimerRegistrationRetryDelay12h, + std::size(kPolicyDisclaimerRegistrationRetryDelay12h), nullptr}, + {"Enabled - Retry every 24 hours", + kPolicyDisclaimerRegistrationRetryDelay24h, + std::size(kPolicyDisclaimerRegistrationRetryDelay24h), nullptr}, +}; +#endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + +#if BUILDFLAG(IS_ANDROID) +const FeatureEntry::FeatureParam kSeamlessSigninPromoTypeCompact[] = { + {"seamless-signin-promo-type", "compact"}}; +const FeatureEntry::FeatureParam kSeamlessSigninPromoTypeTwoButtons[] = { + {"seamless-signin-promo-type", "twoButtons"}}; + +const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { + {"with compact layout", kSeamlessSigninPromoTypeCompact, + std::size(kSeamlessSigninPromoTypeCompact), nullptr}, + {"with two buttons layout", kSeamlessSigninPromoTypeTwoButtons, + std::size(kSeamlessSigninPromoTypeTwoButtons), nullptr}}; +#endif // BUILDFLAG(IS_ANDROID) + // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. @@ -5090,6 +5161,12 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOverlayScrollbarsFlashWhenMouseEnterDescription, kOsAura, FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashWhenMouseEnter)}, + {"overlay-scrollbars-flash-once-visible-on-viewport", + flag_descriptions::kOverlayScrollbarsFlashOnceVisibleOnViewportName, + flag_descriptions::kOverlayScrollbarsFlashOnceVisibleOnViewportDescription, + kOsAura, + FEATURE_VALUE_TYPE( + features::kOverlayScrollbarFlashOnlyOnceVisibleOnViewport)}, #endif // USE_AURA {"enable-lazy-load-image-for-invisible-pages", flag_descriptions::kEnableLazyLoadImageForInvisiblePageName, @@ -5127,10 +5204,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kExperimentalWebAssemblyFeaturesName, flag_descriptions::kExperimentalWebAssemblyFeaturesDescription, kOsAll, SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebAssemblyFeatures)}, - {"enable-experimental-webassembly-jspi", - flag_descriptions::kExperimentalWebAssemblyJSPIName, - flag_descriptions::kExperimentalWebAssemblyJSPIDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kEnableExperimentalWebAssemblyJSPI)}, {"enable-experimental-webassembly-shared-everything", flag_descriptions::kExperimentalWebAssemblySharedEverythingName, flag_descriptions::kExperimentalWebAssemblySharedEverythingDescription, @@ -5509,6 +5582,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(media::kMediaFoundationD3D11VideoCapture), }, #endif // BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_ANDROID) + {"zero-copy-video-encoding", flag_descriptions::kZeroCopyVideoEncodingName, + flag_descriptions::kZeroCopyVideoEncodingDescription, kOsAndroid, + FEATURE_VALUE_TYPE(media::kEnableSurfaceInputForAndroidVEA)}, +#endif // BUILDFLAG(IS_ANDROID) {"enable-show-autofill-signatures", flag_descriptions::kShowAutofillSignaturesName, flag_descriptions::kShowAutofillSignaturesDescription, kOsAll, @@ -5810,10 +5888,6 @@ const FeatureEntry kFeatureEntries[] = { {"enable-desktop-pwas-sub-apps", flag_descriptions::kDesktopPWAsSubAppsName, flag_descriptions::kDesktopPWAsSubAppsDescription, kOsDesktop, FEATURE_VALUE_TYPE(blink::features::kDesktopPWAsSubApps)}, - {"enable-desktop-pwas-scope-extensions", - flag_descriptions::kDesktopPWAsScopeExtensionsName, - flag_descriptions::kDesktopPWAsScopeExtensionsDescription, kOsDesktop, - FEATURE_VALUE_TYPE(blink::features::kWebAppEnableScopeExtensions)}, {"enable-desktop-pwas-borderless", flag_descriptions::kDesktopPWAsBorderlessName, flag_descriptions::kDesktopPWAsBorderlessDescription, kOsDesktop, @@ -5837,13 +5911,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kMediaRouterCastAllowAllIPsName, flag_descriptions::kMediaRouterCastAllowAllIPsDescription, kOsDesktop, FEATURE_VALUE_TYPE(media_router::kCastAllowAllIPsFeature)}, - {"media-remoting-without-fullscreen", - flag_descriptions::kMediaRemotingWithoutFullscreenName, - flag_descriptions::kMediaRemotingWithoutFullscreenDescription, kOsDesktop, - FEATURE_VALUE_TYPE(media::kMediaRemotingWithoutFullscreen)}, - {"remote-playback-backend", flag_descriptions::kRemotePlaybackBackendName, - flag_descriptions::kRemotePlaybackBackendDescription, kOsDesktop, - FEATURE_VALUE_TYPE(blink::features::kRemotePlaybackBackend)}, {"allow-all-sites-to-initiate-mirroring", flag_descriptions::kAllowAllSitesToInitiateMirroringName, flag_descriptions::kAllowAllSitesToInitiateMirroringDescription, @@ -5853,14 +5920,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kDialMediaRouteProviderName, flag_descriptions::kDialMediaRouteProviderDescription, kOsDesktop, FEATURE_VALUE_TYPE(media_router::kDialMediaRouteProvider)}, - {"delay-media-sink-discovery", - flag_descriptions::kDelayMediaSinkDiscoveryName, - flag_descriptions::kDelayMediaSinkDiscoveryDescription, kOsDesktop, - FEATURE_VALUE_TYPE(media_router::kDelayMediaSinkDiscovery)}, - {"show-cast-permission-rejected-error", - flag_descriptions::kShowCastPermissionRejectedErrorName, - flag_descriptions::kShowCastPermissionRejectedErrorDescription, kOsDesktop, - FEATURE_VALUE_TYPE(media_router::kShowCastPermissionRejectedError)}, {"cast-message-logging", flag_descriptions::kCastMessageLoggingName, flag_descriptions::kCastMessageLoggingDescription, kOsDesktop, FEATURE_VALUE_TYPE(media_router::kCastMessageLogging)}, @@ -5994,6 +6053,11 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_LINUX) #if BUILDFLAG(ENABLE_VR) +#if BUILDFLAG(ENABLE_OPENXR) + {"openxr-spatial-entities", flag_descriptions::kOpenXrSpatialEntitiesName, + flag_descriptions::kOpenXrSpatialEntitiesDescription, kOsWin | kOsAndroid, + FEATURE_VALUE_TYPE(device::features::kOpenXrSpatialEntities)}, +#endif // BUILDFLAG(ENABLE_OPENXR) {"webxr-projection-layers", flag_descriptions::kWebXrProjectionLayersName, flag_descriptions::kWebXrProjectionLayersDescription, kOsWin | kOsAndroid, FEATURE_VALUE_TYPE(device::features::kWebXrLayers)}, @@ -6013,9 +6077,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebXrHandAnonymizationStrategyName, flag_descriptions::kWebXrHandAnonymizationStrategyDescription, kOsDesktop | kOsAndroid, MULTI_VALUE_TYPE(KWebXrHandAnonymizationChoices)}, - {"webxr-depth-performance", flag_descriptions::kWebXRDepthPerformanceName, - flag_descriptions::kWebXRDepthPerformanceDescription, kOsAndroid, - FEATURE_VALUE_TYPE(blink::features::kWebXRDepthPerformance)}, #if BUILDFLAG(IS_ANDROID) {"webxr-shared-buffers", flag_descriptions::kWebXrSharedBuffersName, flag_descriptions::kWebXrSharedBuffersDescription, kOsAndroid, @@ -6031,7 +6092,7 @@ const FeatureEntry kFeatureEntries[] = { {"enable-openxr-extended", flag_descriptions::kOpenXRExtendedFeaturesName, flag_descriptions::kOpenXRExtendedFeaturesDescription, kOsAndroid, FEATURE_VALUE_TYPE(device::features::kOpenXrExtendedFeatureSupport)}, -#endif +#endif // BUILDFLAG(ENABLE_OPENXR) #endif // BUILDFLAG(IS_ANDROID) #endif // ENABLE_VR #if BUILDFLAG(IS_CHROMEOS) @@ -6125,6 +6186,12 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidPinnedTabsDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kAndroidPinnedTabs)}, + // Pinned tabs on tablet tab strip. + {"android-pinned-tabs-tablet-tab-strip", + flag_descriptions::kAndroidPinnedTabsTabletTabStripName, + flag_descriptions::kAndroidPinnedTabsTabletTabStripDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kAndroidPinnedTabsTabletTabStrip)}, + {"hub-back-button", flag_descriptions::kHubBackButtonName, flag_descriptions::kHubBackButtonDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kHubBackButton)}, @@ -6343,10 +6410,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAutocorrectByDefaultName, flag_descriptions::kAutocorrectByDefaultDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kAutocorrectByDefault)}, - {"enable-cros-first-party-vietnamese-input", - flag_descriptions::kFirstPartyVietnameseInputName, - flag_descriptions::kFirstPartyVietnameseInputDescription, kOsCrOS, - FEATURE_VALUE_TYPE(ash::features::kFirstPartyVietnameseInput)}, {"enable-cros-hindi-inscript-layout", flag_descriptions::kHindiInscriptLayoutName, flag_descriptions::kHindiInscriptLayoutDescription, kOsCrOS, @@ -6359,9 +6422,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kImeFstDecoderParamsUpdateName, flag_descriptions::kImeFstDecoderParamsUpdateDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kImeFstDecoderParamsUpdate)}, - {"enable-cros-ime-manifest-v3", flag_descriptions::kImeManifestV3Name, - flag_descriptions::kImeManifestV3Description, kOsCrOS, - FEATURE_VALUE_TYPE(ash::features::kImeManifestV3)}, {"enable-cros-ime-system-emoji-picker-gif-support", flag_descriptions::kImeSystemEmojiPickerGIFSupportName, flag_descriptions::kImeSystemEmojiPickerGIFSupportDescription, kOsCrOS, @@ -6383,10 +6443,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kImeUsEnglishModelUpdateName, flag_descriptions::kImeUsEnglishModelUpdateDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kImeUsEnglishModelUpdate)}, - {"enable-cros-ime-korean-only-mode-switch-on-right-alt", - flag_descriptions::kImeKoreanOnlyModeSwitchOnRightAltName, - flag_descriptions::kImeKoreanOnlyModeSwitchOnRightAltDescription, kOsCrOS, - FEATURE_VALUE_TYPE(ash::features::kImeKoreanOnlyModeSwitchOnRightAlt)}, {"enable-cros-ime-switch-check-connection-status", flag_descriptions::kImeSwitchCheckConnectionStatusName, flag_descriptions::kImeSwitchCheckConnectionStatusDescription, kOsCrOS, @@ -6395,15 +6451,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kJapaneseOSSettingsName, flag_descriptions::kJapaneseOSSettingsDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kJapaneseOSSettings)}, - {"enable-cros-system-japanese-physical-typing", - flag_descriptions::kSystemJapanesePhysicalTypingName, - flag_descriptions::kSystemJapanesePhysicalTypingDescription, kOsCrOS, - FEATURE_VALUE_TYPE(ash::features::kSystemJapanesePhysicalTyping)}, - {"enable-cros-virtual-keyboard-global-emoji-preferences", - flag_descriptions::kVirtualKeyboardGlobalEmojiPreferencesName, - flag_descriptions::kVirtualKeyboardGlobalEmojiPreferencesDescription, - kOsCrOS, - FEATURE_VALUE_TYPE(ash::features::kVirtualKeyboardGlobalEmojiPreferences)}, {"enable-accessibility-bounce-keys", flag_descriptions::kAccessibilityBounceKeysName, flag_descriptions::kAccessibilityBounceKeysDescription, kOsCrOS, @@ -6461,6 +6508,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAndroidSpellcheckFullApiBlinkName, flag_descriptions::kAndroidSpellcheckFullApiBlinkDescription, kOsAndroid, FEATURE_VALUE_TYPE(blink::features::kAndroidSpellcheckFullApiBlink)}, + {"search-in-settings", flag_descriptions::kSearchInSettingsName, + flag_descriptions::kSearchInSettingsDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kAndroidSearchInSettings)}, #endif // BUILDFLAG(IS_ANDROID) {"enable-cros-touch-text-editing-redesign", flag_descriptions::kTouchTextEditingRedesignName, @@ -6484,10 +6534,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAppStoreBillingDebugName, flag_descriptions::kAppStoreBillingDebugDescription, kOsAll, FEATURE_VALUE_TYPE(payments::features::kAppStoreBillingDebug)}, - {"enable-debug-for-secure-payment-confirmation", - flag_descriptions::kSecurePaymentConfirmationDebugName, - flag_descriptions::kSecurePaymentConfirmationDebugDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kSecurePaymentConfirmationDebug)}, {"enable-secure-payment-confirmation-browser-bound-key", flag_descriptions::kSecurePaymentConfirmationBrowserBoundKeysName, flag_descriptions::kSecurePaymentConfirmationBrowserBoundKeysDescription, @@ -6699,10 +6745,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_ANDROID) - {"android-app-integration", flag_descriptions::kAndroidAppIntegrationName, - flag_descriptions::kAndroidAppIntegrationDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidAppIntegration)}, - {"android-app-integration-module", flag_descriptions::kAndroidAppIntegrationModuleName, flag_descriptions::kAndroidAppIntegrationModuleDescription, kOsAndroid, @@ -6720,11 +6762,6 @@ const FeatureEntry kFeatureEntries[] = { kAndroidAppIntegrationMultiDataSourceVariations, "AndroidAppIntegrationMultiDataSource")}, - {"android-app-integration-v2", - flag_descriptions::kAndroidAppIntegrationV2Name, - flag_descriptions::kAndroidAppIntegrationV2Description, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidAppIntegrationV2)}, - {"new-tab-page-customization", flag_descriptions::kNewTabPageCustomizationName, flag_descriptions::kNewTabPageCustomizationDescription, kOsAndroid, @@ -6733,7 +6770,9 @@ const FeatureEntry kFeatureEntries[] = { {"new-tab-page-customization-v2", flag_descriptions::kNewTabPageCustomizationV2Name, flag_descriptions::kNewTabPageCustomizationV2Description, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kNewTabPageCustomizationV2)}, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kNewTabPageCustomizationV2, + kNewTabPageCustomizationV2Variations, + "NewTabPageCustomizationV2")}, {"android-composeplate", flag_descriptions::kAndroidComposeplateName, flag_descriptions::kAndroidComposeplateDescription, kOsAndroid, @@ -6753,15 +6792,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( chrome::android::kNewTabPageCustomizationToolbarButton)}, - {"android-app-integration-with-favicon", - flag_descriptions::kAndroidAppIntegrationWithFaviconName, - flag_descriptions::kAndroidAppIntegrationWithFaviconDescription, - kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE( - chrome::android::kAndroidAppIntegrationWithFavicon, - kAndroidAppIntegrationWithFaviconVariations, - "AndroidAppIntegrationWithFavicon")}, - {"android-bottom-toolbar", flag_descriptions::kAndroidBottomToolbarName, flag_descriptions::kAndroidBottomToolbarDescription, kOsAndroid, FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidBottomToolbar, @@ -6771,7 +6801,9 @@ const FeatureEntry kFeatureEntries[] = { {"android-bottom-toolbar-v2", flag_descriptions::kAndroidBottomToolbarV2Name, flag_descriptions::kAndroidBottomToolbarV2Description, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidBottomToolbarV2)}, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidBottomToolbarV2, + kAndroidBottomToolbarV2Variations, + "BottomToolbarV2")}, {"auxiliary-search-donation", flag_descriptions::kAuxiliarySearchDonationName, @@ -7025,11 +7057,8 @@ const FeatureEntry kFeatureEntries[] = { {"omnibox-enterprise-search-aggregator", flag_descriptions::kOmniboxSearchAggregatorName, flag_descriptions::kOmniboxSearchAggregatorDescription, kOsDesktop, - FEATURE_WITH_PARAMS_VALUE_TYPE( - omnibox_feature_configs::SearchAggregatorProvider:: - kSearchAggregatorProvider, - kOmniboxSearchAggregatorVariations, - "SearchAggregatorProvider")}, + FEATURE_VALUE_TYPE(omnibox_feature_configs::SearchAggregatorProvider:: + kSearchAggregatorProvider)}, {"omnibox-adjust-indentation", flag_descriptions::kOmniboxAdjustIndentationName, @@ -7046,12 +7075,6 @@ const FeatureEntry kFeatureEntries[] = { kOsAndroid, FEATURE_VALUE_TYPE(omnibox::kAnimateSuggestionsListAppearance)}, - {"omnibox-answer-actions", flag_descriptions::kOmniboxAnswerActionsName, - flag_descriptions::kOmniboxAnswerActionsDescription, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxAnswerActions, - kOmniboxAnswerActionsVariants, - "OmniboxBundledExperimentV1")}, - {"omnibox-asynchronous-view-inflation", flag_descriptions::kOmniboxAsyncViewInflationName, flag_descriptions::kOmniboxAsyncViewInflationDescription, kOsAndroid, @@ -7066,6 +7089,17 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOmniboxMultimodalInputDescription, kOsAndroid, FEATURE_VALUE_TYPE(omnibox::kOmniboxMultimodalInput)}, + {"omnibox-remove-search-ready-omnibox", + flag_descriptions::kOmniboxRemoveSearchReadyOmniboxName, + flag_descriptions::kOmniboxRemoveSearchReadyOmniboxDescription, kOsAndroid, +#if IS_OFFICIAL_BUILD + FEATURE_VALUE_TYPE(omnibox::kRemoveSearchReadyOmnibox)}, +#else + FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kRemoveSearchReadyOmnibox, + kOmniboxRemoveSearchReadyOmniboxVariations, + "RemoveSearchReadyOmnibox")}, +#endif + {"omnibox-site-search", flag_descriptions::kOmniboxSiteSearchName, flag_descriptions::kOmniboxSiteSearchDescription, kOsAndroid, FEATURE_VALUE_TYPE(omnibox::kOmniboxSiteSearch)}, @@ -7083,6 +7117,12 @@ const FeatureEntry kFeatureEntries[] = { kOmniboxMobileParityV2Variants, "OmniboxMobileParityUpdateV2")}, + {"omnibox-improvement-for-lff", + flag_descriptions::kOmniboxImprovementForLFFName, + flag_descriptions::kOmniboxImprovementForLFFDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxImprovementForLFF, + kOmniboxImprovementForLFFVariations, + "OmniboxImprovementForLFF")}, #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) {"omnibox-on-device-head-suggestions", @@ -7100,12 +7140,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOmniboxOnDeviceTailSuggestionsDescription, kOsAll, FEATURE_VALUE_TYPE(omnibox::kOnDeviceTailModel)}, - {"omnibox-restore-invisible-focus-only", - flag_descriptions::kOmniboxRestoreInvisibleFocusOnlyName, - flag_descriptions::kOmniboxRestoreInvisibleFocusOnlyDescription, - kOsDesktop, - FEATURE_VALUE_TYPE(omnibox::kOmniboxRestoreInvisibleFocusOnly)}, - #if BUILDFLAG(IS_CHROMEOS) {"scheduler-configuration", flag_descriptions::kSchedulerConfigurationName, flag_descriptions::kSchedulerConfigurationDescription, kOsCrOS, @@ -7117,6 +7151,12 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableCommandLineOnNonRootedName, flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kCommandLineOnNonRooted)}, + {"enable-escape-handling-for-secondary-activities", + flag_descriptions::kEnableEscapeHandlingForSecondaryActivitiesName, + flag_descriptions::kEnableEscapeHandlingForSecondaryActivitiesDescription, + kOsAndroid, + FEATURE_VALUE_TYPE( + chrome::android::kEnableEscapeHandlingForSecondaryActivities)}, #endif // BUILDFLAG(IS_ANDROID) {"force-color-profile", flag_descriptions::kForceColorProfileName, @@ -7208,7 +7248,7 @@ const FeatureEntry kFeatureEntries[] = { {"optimization-guide-model-execution", flag_descriptions::kOptimizationGuideModelExecutionName, - flag_descriptions::kOptimizationGuideModelExecutionDescription, kOsDesktop, + flag_descriptions::kOptimizationGuideModelExecutionDescription, kOsAndroid, FEATURE_VALUE_TYPE( optimization_guide::features::kOptimizationGuideModelExecution)}, @@ -7220,6 +7260,13 @@ const FeatureEntry kFeatureEntries[] = { kOptimizationGuideOnDeviceModelVariations, "OptimizationGuideOnDeviceModel")}, + {"optimization-guide-on-device-model-android", + flag_descriptions::kOptimizationGuideOnDeviceModelAndroidName, + flag_descriptions::kOptimizationGuideOnDeviceModelAndroidDescription, + kOsAndroid, + FEATURE_VALUE_TYPE( + optimization_guide::features::kOptimizationGuideOnDeviceModel)}, + {"text-safety-classifier", flag_descriptions::kTextSafetyClassifierName, flag_descriptions::kTextSafetyClassifierDescription, kOsDesktop, FEATURE_WITH_PARAMS_VALUE_TYPE( @@ -7304,22 +7351,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(page_content_annotations::features:: kExtractRelatedSearchesFromPrefetchedZPSResponse)}, - {"page-image-service-optimization-guide-salient-images", - flag_descriptions::kPageImageServiceOptimizationGuideSalientImagesName, - flag_descriptions:: - kPageImageServiceOptimizationGuideSalientImagesDescription, - kOsDesktop | kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE( - page_image_service::kImageServiceOptimizationGuideSalientImages, - kImageServiceOptimizationGuideSalientImagesVariations, - "PageImageService")}, - - {"page-image-service-suggest-powered-images", - flag_descriptions::kPageImageServiceSuggestPoweredImagesName, - flag_descriptions::kPageImageServiceSuggestPoweredImagesDescription, - kOsDesktop, - FEATURE_VALUE_TYPE(page_image_service::kImageServiceSuggestPoweredImages)}, - {"page-content-annotations", flag_descriptions::kPageContentAnnotationsName, flag_descriptions::kPageContentAnnotationsDescription, kOsDesktop | kOsAndroid, @@ -7417,7 +7448,9 @@ const FeatureEntry kFeatureEntries[] = { {"tab-storage-sqlite-prototype", flag_descriptions::kTabStorageSqlitePrototypeName, flag_descriptions::kTabStorageSqlitePrototypeDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kTabStorageSqlitePrototype)}, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabStorageSqlitePrototype, + kTabStorageSqlitePrototypeVariations, + "TabStorageSqlitePrototype")}, #endif // BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID) @@ -7444,11 +7477,6 @@ const FeatureEntry kFeatureEntries[] = { commerce::flag_descriptions::kProductSpecificationsDescription, kOsDesktop, FEATURE_VALUE_TYPE(commerce::kProductSpecifications)}, - {"compare-confirmation-toast", - commerce::flag_descriptions::kCompareConfirmationToastName, - commerce::flag_descriptions::kCompareConfirmationToastDescription, - kOsDesktop, FEATURE_VALUE_TYPE(commerce::kCompareConfirmationToast)}, - {"shopping-list", commerce::flag_descriptions::kShoppingListName, commerce::flag_descriptions::kShoppingListDescription, kOsAndroid | kOsDesktop, FEATURE_VALUE_TYPE(commerce::kShoppingList)}, @@ -7476,13 +7504,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( commerce::kPriceTrackingSubscriptionServiceProductVersion)}, -#if BUILDFLAG(IS_ANDROID) - {"track-by-default-mobile", - commerce::flag_descriptions::kTrackByDefaultOnMobileName, - commerce::flag_descriptions::kTrackByDefaultOnMobileDescription, - kOsAndroid, FEATURE_VALUE_TYPE(commerce::kTrackByDefaultOnMobile)}, -#endif // BUILDFLAG(IS_ANDROID) - #if !BUILDFLAG(IS_ANDROID) {"ntp-alpha-background-collections", flag_descriptions::kNtpAlphaBackgroundCollectionsName, @@ -7512,6 +7533,12 @@ const FeatureEntry kFeatureEntries[] = { kNtpComposeboxVariations, "NtpComposebox")}, + {"ntp-realbox-next", flag_descriptions::kNtpRealboxNextName, + flag_descriptions::kNtpRealboxNextDescription, kOsDesktop, + FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_realbox::kNtpRealboxNext, + kNtpRealboxNextVariations, + "NtpRealboxNext")}, + {"composebox-uses-chrome-compose-client", flag_descriptions::kNtpComposeboxUsesChromeComposeClientName, flag_descriptions::kNtpComposeboxUsesChromeComposeClientDescription, @@ -7558,11 +7585,11 @@ const FeatureEntry kFeatureEntries[] = { "DesktopNtpModules")}, {"ntp-mobile-promo", flag_descriptions::kNtpMobilePromoName, - flag_descriptions::kNtpMobilePromoName, kOsDesktop, + flag_descriptions::kNtpMobilePromoDescription, kOsDesktop, FEATURE_VALUE_TYPE(ntp_features::kNtpMobilePromo)}, {"force-ntp-mobile-promo", flag_descriptions::kForceNtpMobilePromoName, - flag_descriptions::kForceNtpMobilePromoName, kOsDesktop, + flag_descriptions::kForceNtpMobilePromoDescription, kOsDesktop, SINGLE_VALUE_TYPE(switches::kForceNtpMobilePromo)}, {"ntp-module-sign-in-requirement", @@ -7688,10 +7715,15 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnablePixelCanvasRecordingDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kEnablePixelCanvasRecording)}, +#if BUILDFLAG(IS_ANDROID) + {"fluid-resize", flag_descriptions::kFluidResizeName, + flag_descriptions::kFluidResizeDescription, kOsAndroid, + FEATURE_VALUE_TYPE(features::kFluidResize)}, +#endif // BUILDFLAG(IS_ANDROID) + {"enable-parallel-downloading", flag_descriptions::kParallelDownloadingName, flag_descriptions::kParallelDownloadingDescription, kOsAll, FEATURE_VALUE_TYPE(download::features::kParallelDownloading)}, - {"download-notification-service-unified-api", flag_descriptions::kDownloadNotificationServiceUnifiedAPIName, flag_descriptions::kDownloadNotificationServiceUnifiedAPIDescription, @@ -7907,6 +7939,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kSearchInCCTAlternateTapHandlingDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kSearchInCCTAlternateTapHandling)}, + {"settings-multi-column", flag_descriptions::kSettingsMultiColumnName, + flag_descriptions::kSettingsMultiColumnDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kSettingsMultiColumn)}, + {"settings-single-activity", flag_descriptions::kSettingsSingleActivityName, flag_descriptions::kSettingsSingleActivityDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kSettingsSingleActivity)}, @@ -8008,14 +8044,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kDisableProcessReuseDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kDisableProcessReuse)}, - {"subframe-process-reuse-thresholds", - flag_descriptions::kSubframeProcessReuseThresholds, - flag_descriptions::kSubframeProcessReuseThresholdsDescription, kOsAll, - FEATURE_WITH_PARAMS_VALUE_TYPE( - features::kSubframeProcessReuseThresholds, - kSubframeProcessReuseThresholdsVariations, - "SubframeProcessReuseThresholds" /* trial name */)}, - #if BUILDFLAG(IS_WIN) {"stylus-handwriting-win", flag_descriptions::kStylusHandwritingWinName, flag_descriptions::kStylusHandwritingWinDescription, kOsWin, @@ -8443,6 +8471,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kLockTopControlsOnLargeTabletsName, flag_descriptions::kLockTopControlsOnLargeTabletsDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kLockTopControlsOnLargeTablets)}, + {"lock-controls-on-tablets-v2", + flag_descriptions::kLockTopControlsOnLargeTabletsV2Name, + flag_descriptions::kLockTopControlsOnLargeTabletsV2Description, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kLockTopControlsOnLargeTabletsV2)}, {"enable-logging-js-console-messages", flag_descriptions::kLogJsConsoleMessagesName, flag_descriptions::kLogJsConsoleMessagesDescription, kOsAndroid, @@ -8796,11 +8828,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_ANDROID) - {"back-forward-cache", flag_descriptions::kBackForwardCacheName, - flag_descriptions::kBackForwardCacheDescription, kOsAll, - FEATURE_WITH_PARAMS_VALUE_TYPE(features::kBackForwardCache, - kBackForwardCacheVariations, - "BackForwardCache")}, #if BUILDFLAG(IS_ANDROID) {"back-forward-transitions", flag_descriptions::kBackForwardTransitionsName, flag_descriptions::kBackForwardTransitionsDescription, kOsAndroid, @@ -9146,6 +9173,10 @@ const FeatureEntry kFeatureEntries[] = { {"text-in-shelf", flag_descriptions::kTextInShelfName, flag_descriptions::kTextInShelfDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kHomeButtonWithText)}, + {"hybrid-charger-notifications", + flag_descriptions::kHybridChargerNotificationsName, + flag_descriptions::kHybridChargerNotificationsDescription, kOsCrOS, + FEATURE_VALUE_TYPE(ash::features::kHybridChargerNotifications)}, {"launcher-local-image-search", flag_descriptions::kLauncherLocalImageSearchName, flag_descriptions::kLauncherLocalImageSearchDescription, kOsCrOS, @@ -9217,16 +9248,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPwaUpdateDialogForAppIconDescription, kOsAll, FEATURE_VALUE_TYPE(features::kPwaUpdateDialogForIcon)}, - {"keyboard-lock-prompt", flag_descriptions::kKeyboardLockPromptName, - flag_descriptions::kKeyboardLockPromptDescription, kOsDesktop, - FEATURE_VALUE_TYPE(permissions::features::kKeyboardLockPrompt)}, - - {"press-and-hold-esc-to-exit-browser-fullscreen", - flag_descriptions::kPressAndHoldEscToExitBrowserFullscreenName, - flag_descriptions::kPressAndHoldEscToExitBrowserFullscreenDescription, - kOsDesktop, - FEATURE_VALUE_TYPE(features::kPressAndHoldEscToExitBrowserFullscreen)}, - #if BUILDFLAG(ENABLE_OOP_PRINTING) {"enable-oop-print-drivers", flag_descriptions::kEnableOopPrintDriversName, flag_descriptions::kEnableOopPrintDriversDescription, kOsDesktop, @@ -9247,11 +9268,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPrivacySandboxInternalsDescription, kOsAll, FEATURE_VALUE_TYPE(privacy_sandbox::kPrivacySandboxInternalsDevUI)}, - {"align-surface-layer-impl-to-pixel-grid", - flag_descriptions::kAlignSurfaceLayerImplToPixelGridName, - flag_descriptions::kAlignSurfaceLayerImplToPixelGridDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kAlignSurfaceLayerImplToPixelGrid)}, - #if !BUILDFLAG(IS_ANDROID) {"sct-auditing", flag_descriptions::kSCTAuditingName, flag_descriptions::kSCTAuditingDescription, kOsDesktop, @@ -9266,11 +9282,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(chrome::android::kIncognitoScreenshot)}, #endif - {"enable-speculation-rules-prerendering-target-hint", - flag_descriptions::kSpeculationRulesPrerenderingTargetHintName, - flag_descriptions::kSpeculationRulesPrerenderingTargetHintDescription, - kOsAll, FEATURE_VALUE_TYPE(blink::features::kPrerender2InNewTab)}, - {"prerender-early-document-lifecycle-update", flag_descriptions::kPrerender2EarlyDocumentLifecycleUpdateName, flag_descriptions::kPrerender2EarlyDocumentLifecycleUpdateDescription, @@ -9402,7 +9413,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kFedCmIdPRegistration)}, {"fedcm-iframe-origin", flag_descriptions::kFedCmIframeOriginName, - flag_descriptions::kFedCmIframeOriginDescription, kOsDesktop, + flag_descriptions::kFedCmIframeOriginDescription, kOsAll, FEATURE_VALUE_TYPE(features::kFedCmIframeOrigin)}, {"fedcm-lightweight-mode", flag_descriptions::kFedCmLightweightModeName, @@ -9509,6 +9520,15 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE(switches::kEnableUnsafeSwiftShader)}, #endif // BUILDFLAG(ENABLE_SWIFTSHADER) + // The entry in kFeatureEntries + {"policy-registration-delay", + flag_descriptions::kPolicyRegistrationDelayName, + flag_descriptions::kPolicyRegistrationDelayDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE( + policy::features::kCustomPolicyRegistrationDelay, + kPolicyRegistrationDelayVariations, + "CustomPolicyRegistrationDelay")}, + #if BUILDFLAG(IS_CHROMEOS) {"focus-follows-cursor", flag_descriptions::kFocusFollowsCursorName, flag_descriptions::kFocusFollowsCursorDescription, kOsCrOS, @@ -9847,6 +9867,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kDocumentPatchingDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kDocumentPatching)}, + {"route-matching", flag_descriptions::kRouteMatchingName, + flag_descriptions::kRouteMatchingDescription, kOsAll, + FEATURE_VALUE_TYPE(blink::features::kRouteMatching)}, + {"dse-preload2", flag_descriptions::kDsePreload2Name, flag_descriptions::kDsePreload2Description, kOsAll, FEATURE_VALUE_TYPE(features::kDsePreload2)}, @@ -10070,19 +10094,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPwaRestoreUiAtStartupDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kPwaRestoreUiAtStartup)}, #endif // BUILDFLAG(IS_ANDROID) - {"autofill-enable-ranking-formula-address-profiles", - flag_descriptions::kAutofillEnableRankingFormulaAddressProfilesName, - flag_descriptions::kAutofillEnableRankingFormulaAddressProfilesDescription, - kOsAll, - FEATURE_VALUE_TYPE( - autofill::features::kAutofillEnableRankingFormulaAddressProfiles)}, - - {"autofill-enable-ranking-formula-credit-cards", - flag_descriptions::kAutofillEnableRankingFormulaCreditCardsName, - flag_descriptions::kAutofillEnableRankingFormulaCreditCardsDescription, - kOsAll, - FEATURE_VALUE_TYPE( - autofill::features::kAutofillEnableRankingFormulaCreditCards)}, {"safe-browsing-local-lists-use-sbv5", flag_descriptions::kSafeBrowsingLocalListsUseSBv5Name, @@ -10233,6 +10244,17 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebUIOmniboxPopupDescription, kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxPopup)}, + {"webui-omnibox-full-popup", flag_descriptions::kWebUIOmniboxFullPopupName, + flag_descriptions::kWebUIOmniboxFullPopupDescription, kOsDesktop, + FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxFullPopup)}, + + {"webui-omnibox-popup-debug", + flag_descriptions::kWebUIOmniboxPopupDebugName, + flag_descriptions::kWebUIOmniboxPopupDebugDescription, kOsDesktop, + FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kWebUIOmniboxPopupDebug, + kWebUIOmniboxPopupDebugVariations, + "WebUIOmniboxPopupDebugVariations")}, + #if BUILDFLAG(IS_CHROMEOS) {"arc-vm-memory-size", flag_descriptions::kArcVmMemorySizeName, flag_descriptions::kArcVmMemorySizeDesc, kOsCrOS, @@ -10405,34 +10427,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kCompressionDictionaryTransportDescription, kOsAll, FEATURE_VALUE_TYPE(network::features::kCompressionDictionaryTransport)}, - {"enable-compression-dictionary-transport-backend", - flag_descriptions::kCompressionDictionaryTransportBackendName, - flag_descriptions::kCompressionDictionaryTransportBackendDescription, - kOsAll, - FEATURE_VALUE_TYPE( - network::features::kCompressionDictionaryTransportBackend)}, - - {"enable-compression-dictionary-transport-allow-http1", - flag_descriptions::kCompressionDictionaryTransportOverHttp1Name, - flag_descriptions::kCompressionDictionaryTransportOverHttp1Description, - kOsAll, - FEATURE_VALUE_TYPE( - net::features::kCompressionDictionaryTransportOverHttp1)}, - - {"enable-compression-dictionary-transport-allow-http2", - flag_descriptions::kCompressionDictionaryTransportOverHttp2Name, - flag_descriptions::kCompressionDictionaryTransportOverHttp2Description, - kOsAll, - FEATURE_VALUE_TYPE( - net::features::kCompressionDictionaryTransportOverHttp2)}, - - {"enable-compression-dictionary-transport-require-known-root-cert", - flag_descriptions::kCompressionDictionaryTransportRequireKnownRootCertName, - flag_descriptions:: - kCompressionDictionaryTransportRequireKnownRootCertDescription, - kOsAll, - FEATURE_VALUE_TYPE( - net::features::kCompressionDictionaryTransportRequireKnownRootCert)}, + {"enable-compression-dictionary-ttl", + flag_descriptions::kCompressionDictionaryTTLName, + flag_descriptions::kCompressionDictionaryTTLDescription, kOsAll, + FEATURE_VALUE_TYPE(network::features::kCompressionDictionaryTTL)}, {"enable-container-type-no-layout-containment", flag_descriptions::kContainerTypeNoLayoutContainmentName, @@ -10446,13 +10444,6 @@ const FeatureEntry kFeatureEntries[] = { kOsAndroid, FEATURE_VALUE_TYPE(ui::kDeprecatedExternalPickerFunction)}, #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_ANDROID) - {"android-native-pages-in-new-tab", - flag_descriptions::kAndroidNativePagesInNewTabName, - flag_descriptions::kAndroidNativePagesInNewTabDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidNativePagesInNewTab)}, -#endif // BUILDFLAG(IS_ANDROID) - #if BUILDFLAG(IS_ANDROID) {"android-progress-bar-visual-update", flag_descriptions::kAndroidProgressBarVisualUpdateName, @@ -10498,11 +10489,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kCameraMicEffectsDescription, static_cast(kOsMac | kOsWin | kOsLinux), FEATURE_VALUE_TYPE(media::kCameraMicEffects)}, - - {"camera-mic-preview", flag_descriptions::kCameraMicPreviewName, - flag_descriptions::kCameraMicPreviewDescription, - static_cast(kOsMac | kOsWin | kOsLinux), - FEATURE_VALUE_TYPE(blink::features::kCameraMicPreview)}, +#endif #if !BUILDFLAG(IS_ANDROID) {"get-display-media-confers-activation", @@ -10511,14 +10498,6 @@ const FeatureEntry kFeatureEntries[] = { kOsDesktop, FEATURE_VALUE_TYPE(media::kGetDisplayMediaConfersActivation)}, #endif - {"get-user-media-deferred-device-settings-selection", - flag_descriptions::kGetUserMediaDeferredDeviceSettingsSelectionName, - flag_descriptions::kGetUserMediaDeferredDeviceSettingsSelectionDescription, - static_cast(kOsMac | kOsWin | kOsLinux), - FEATURE_VALUE_TYPE( - blink::features::kGetUserMediaDeferredDeviceSettingsSelection)}, -#endif - {"render-document", flag_descriptions::kRenderDocumentName, flag_descriptions::kRenderDocumentDescription, kOsAll, FEATURE_WITH_PARAMS_VALUE_TYPE(features::kRenderDocument, @@ -10694,14 +10673,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(switches::kProfilesReordering)}, #endif -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - {"enable-history-sync-optin-expansion-pill", - flag_descriptions::kEnableHistorySyncOptinExpansionPillName, - flag_descriptions::kEnableHistorySyncOptinExpansionPillDescription, - kOsWin | kOsMac | kOsLinux, - FEATURE_VALUE_TYPE(switches::kEnableHistorySyncOptinExpansionPill)}, -#endif - #if BUILDFLAG(IS_WIN) {"avatar-button-sync-promo", flag_descriptions::kAvatarButtonSyncPromoName, flag_descriptions::kAvatarButtonSyncPromoDescription, kOsWin, @@ -10710,14 +10681,6 @@ const FeatureEntry kFeatureEntries[] = { "AvatarButtonSyncPromo")}, #endif -#if BUILDFLAG(ENABLE_DICE_SUPPORT) && BUILDFLAG(ENABLE_EXTENSIONS) - {"enable-extensions-explicit-browser-signin", - flag_descriptions::kEnableExtensionsExplicitBrowserSigninName, - flag_descriptions::kEnableExtensionsExplicitBrowserSigninDescription, - kOsMac | kOsWin | kOsLinux | kOsCrOS, - FEATURE_VALUE_TYPE(switches::kEnableExtensionsExplicitBrowserSignin)}, -#endif // BUILDFLAG(ENABLE_DICE_SUPPORT) && BUILDFLAG(ENABLE_EXTENSIONS) - #if BUILDFLAG(ENABLE_HLS_DEMUXER) {"enable-hls-playback", flag_descriptions::kEnableHlsPlaybackName, flag_descriptions::kEnableHlsPlaybackDescription, @@ -11036,10 +10999,17 @@ const FeatureEntry kFeatureEntries[] = { kAndroidTabHighlightingVariations, "AndroidTabHighlightingVariations")}, + {"android-zoom-indicator", flag_descriptions::kAndroidZoomIndicatorName, + flag_descriptions::kAndroidZoomIndicatorDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kAndroidZoomIndicator)}, + {"android-tips-notifications", flag_descriptions::kAndroidTipsNotificationsName, flag_descriptions::kAndroidTipsNotificationsDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidTipsNotifications)}, + FEATURE_WITH_PARAMS_VALUE_TYPE( + segmentation_platform::features::kAndroidTipsNotifications, + kAndroidTipsNotificationsVariations, + "AndroidTipsNotifications")}, {"history-pane-android", flag_descriptions::kHistoryPaneAndroidName, flag_descriptions::kHistoryPaneAndroidDescription, kOsAndroid, @@ -11107,6 +11077,11 @@ const FeatureEntry kFeatureEntries[] = { kOsAndroid, FEATURE_VALUE_TYPE( payments::facilitated::kEnablePixPaymentsInLandscapeMode)}, + + {"enable-static-qr-code-for-pix", + flag_descriptions::kEnableStaticQrCodeForPixName, + flag_descriptions::kEnableStaticQrCodeForPixDescription, kOsAndroid, + FEATURE_VALUE_TYPE(payments::facilitated::kEnableStaticQrCodeForPix)}, #endif // BUILDFLAG(IS_ANDROID) {"autofill-enable-card-benefits-for-american-express", @@ -11126,12 +11101,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kLinkedServicesSettingDescription, kOsAll, FEATURE_VALUE_TYPE(features::kLinkedServicesSetting)}, -#if BUILDFLAG(IS_CHROMEOS) - {"cros-mall", flag_descriptions::kCrosMallName, - flag_descriptions::kCrosMallDescription, kOsCrOS, - FEATURE_VALUE_TYPE(chromeos::features::kCrosMall)}, -#endif // BUILDFLAG(IS_CHROMEOS) - #if BUILDFLAG(IS_MAC) {"reduce-ip-address-change-notification", flag_descriptions::kReduceIPAddressChangeNotificationName, @@ -11174,6 +11143,16 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableStandardBoundSessionPersistenceDescription, kOsMac | kOsWin | kOsLinux, FEATURE_VALUE_TYPE(net::features::kPersistDeviceBoundSessions)}, + {"enable-standard-device-bound-session-credentials-federated-sessions", + flag_descriptions:: + kEnableStandardBoundSessionCredentialsFederatedSessionsName, + flag_descriptions:: + kEnableStandardBoundSessionCredentialsFederatedSessionsDescription, + kOsMac | kOsWin | kOsLinux, + FEATURE_WITH_PARAMS_VALUE_TYPE( + net::features::kDeviceBoundSessionsFederatedRegistration, + kStandardBoundSessionCredentialsFederatedSessionsVariations, + "standard-device-bound-sessions-federated-sessions")}, #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) {"replace-sync-promos-with-sign-in-promos-desktop", @@ -11231,7 +11210,8 @@ const FeatureEntry kFeatureEntries[] = { kWebAuthnUsePasskeyFromAnotherDeviceInContextMenu)}, {"web-authentication-passkey-upgrade", flag_descriptions::kWebAuthnPasskeyUpgradeName, - flag_descriptions::kWebAuthnPasskeyUpgradeDescription, kOsDesktop, + flag_descriptions::kWebAuthnPasskeyUpgradeDescription, + kOsDesktop | kOsAndroid, FEATURE_VALUE_TYPE(device::kWebAuthnPasskeyUpgrade)}, #endif @@ -11335,11 +11315,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(blink::features::kCanvas2DHibernation)}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) - {"enable-history-sync-optin", - flag_descriptions::kEnableHistorySyncOptinName, - flag_descriptions::kEnableHistorySyncOptinDescription, - kOsWin | kOsMac | kOsLinux, - FEATURE_VALUE_TYPE(switches::kEnableHistorySyncOptin)}, {"sync-enable-bookmarks-in-transport-mode", flag_descriptions::kSyncEnableBookmarksInTransportModeName, flag_descriptions::kSyncEnableBookmarksInTransportModeDescription, @@ -11530,6 +11505,15 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kDevToolsPrivacyUIDescription, kOsAll, FEATURE_VALUE_TYPE(features::kDevToolsPrivacyUI)}, + {"devtools-individual-request-throttling", + flag_descriptions::kDevToolsIndividualRequestThrottlingName, + flag_descriptions::kDevToolsIndividualRequestThrottlingDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kDevToolsIndividualRequestThrottling)}, + + {"devtools-live-edit", flag_descriptions::kDevToolsLiveEditName, + flag_descriptions::kDevToolsLiveEditDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kDevToolsLiveEdit)}, + {"permissions-ai-v1", flag_descriptions::kPermissionsAIv1Name, flag_descriptions::kPermissionsAIv1Description, kOsDesktop, FEATURE_VALUE_TYPE(permissions::features::kPermissionsAIv1)}, @@ -11542,6 +11526,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPermissionsAIv4Description, kOsDesktop, FEATURE_VALUE_TYPE(permissions::features::kPermissionsAIv4)}, + {"permissions-ai-p92", flag_descriptions::kPermissionsAIP92Name, + flag_descriptions::kPermissionsAIP92Description, kOsAll, + FEATURE_VALUE_TYPE(permissions::features::kPermissionsAIP92)}, + #if BUILDFLAG(IS_CHROMEOS) {"exclude-display-in-mirror-mode", flag_descriptions::kExcludeDisplayInMirrorModeName, @@ -11567,11 +11555,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kCertVerificationNetworkTime)}, #if !BUILDFLAG(IS_ANDROID) - {"enable-lens-overlay-simplified-selection", - flag_descriptions::kLensOverlaySimplifiedSelectionName, - flag_descriptions::kLensOverlaySimplifiedSelectionDescription, kOsDesktop, - FEATURE_VALUE_TYPE(lens::features::kLensOverlaySimplifiedSelection)}, - {"enable-lens-overlay-translate-button", flag_descriptions::kLensOverlayTranslateButtonName, flag_descriptions::kLensOverlayTranslateButtonDescription, kOsDesktop, @@ -11655,13 +11638,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( autofill::features:: kAutofillEnableCvcStorageAndFillingStandaloneFormEnhancement)}, -#if BUILDFLAG(IS_ANDROID) - {"cct-sign-in-prompt", flag_descriptions::kCCTSignInPromptName, - flag_descriptions::kCCTSignInPromptDescription, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kCctSignInPrompt, - kCctSignInPromptVariations, - "CctSignInPrompt")}, -#endif {"enable-bookmarks-selected-type-on-signin-for-testing", flag_descriptions::kEnableBookmarksSelectedTypeOnSigninForTestingName, @@ -11696,12 +11672,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(chrome::android::kDesktopUAOnConnectedDisplay)}, #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_CHROMEOS) - {"cros-mall-url", flag_descriptions::kCrosMallUrlName, - flag_descriptions::kCrosMallUrlDescription, kOsCrOS, - STRING_VALUE_TYPE(ash::switches::kMallUrl, "")}, -#endif // BUILDFLAG(IS_CHROMEOS) - {"autofill-enable-card-benefits-iph", flag_descriptions::kAutofillEnableCardBenefitsIphName, flag_descriptions::kAutofillEnableCardBenefitsIphDescription, kOsDesktop, @@ -11716,10 +11686,6 @@ const FeatureEntry kFeatureEntries[] = { payments::facilitated::kSupportMultipleServerRequestsForPixPayments)}, #endif // BUILDFLAG(IS_ANDROID) - {"rusty-png", flag_descriptions::kRustyPngName, - flag_descriptions::kRustyPngDescription, kOsAll, - FEATURE_VALUE_TYPE(skia::kRustyPngFeature)}, - {"autofill-enable-card-info-runtime-retrieval", flag_descriptions::kAutofillEnableCardInfoRuntimeRetrievalName, flag_descriptions::kAutofillEnableCardInfoRuntimeRetrievalDescription, @@ -11733,6 +11699,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kTranslationAPI, kTranslationAPIVariations, "TranslationAPI")}, + + {"translation-api-streaming-by-sentence", + flag_descriptions::kTranslationAPIStreamingBySentenceName, + flag_descriptions::kTranslationAPIStreamingBySentenceDescription, + kOsMac | kOsWin | kOsLinux, + FEATURE_VALUE_TYPE(on_device_translation::kTranslateStreamingBySentence)}, #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) {"password-form-grouped-affiliations", @@ -11786,18 +11758,21 @@ const FeatureEntry kFeatureEntries[] = { "PartitionAllocWithAdvancedChecks")}, #endif // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) - {"partition-visited-link-database-with-self-links", - flag_descriptions::kPartitionVisitedLinkDatabaseWithSelfLinksName, - flag_descriptions::kPartitionVisitedLinkDatabaseWithSelfLinksDescription, - kOsAll, - FEATURE_VALUE_TYPE( - blink::features::kPartitionVisitedLinkDatabaseWithSelfLinks)}, - {"predictable-reported-quota", flag_descriptions::kPredictableReportedQuotaName, flag_descriptions::kPredictableReportedQuotaDescription, kOsAll, FEATURE_VALUE_TYPE(storage::features::kStaticStorageQuota)}, + {"prefetch-bookmarkbar-trigger", + flag_descriptions::kBookmarkBarPrefetchName, + flag_descriptions::kBookmarkBarPrefetchDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kBookmarkTriggerForPrefetch)}, + + {"prefetch-new-tab-page-trigger", + flag_descriptions::kNewTabPagePrefetchName, + flag_descriptions::kNewTabPagePrefetchDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kNewTabPageTriggerForPrefetch)}, + #if BUILDFLAG(IS_ANDROID) {"use-ahardwarebuffer-usage-flags-from-vulkan", flag_descriptions::kUseHardwareBufferUsageFlagsFromVulkanName, @@ -11885,9 +11860,19 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicWarming, kGlicWarmingVariations, "GlicWarming")}, + {"glic-side-panel", flag_descriptions::kGlicSidePanelName, + flag_descriptions::kGlicSidePanelDescription, kOsMac | kOsWin | kOsLinux, + FEATURE_VALUE_TYPE(features::kGlicMultiInstance)}, {"glic-fre-pre-warming", flag_descriptions::kGlicFreWarmingName, flag_descriptions::kGlicFreWarmingDescription, kOsMac | kOsWin | kOsLinux, FEATURE_VALUE_TYPE(features::kGlicFreWarming)}, + {"glic-entrypoint-variations", + flag_descriptions::kGlicEntrypointVariationsName, + flag_descriptions::kGlicEntrypointVariationsDescription, + kOsMac | kOsWin | kOsLinux, + FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicEntrypointVariations, + kGlicEntrypointVariations, + "GlicEntrypointVariations")}, #endif // BUILDFLAG(ENABLE_GLIC) #if BUILDFLAG(IS_ANDROID) @@ -11898,6 +11883,14 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( enterprise_connectors::kEnterpriseSecurityEventReportingOnAndroid)}, + {"enable-client-certificate-provisioning-on-android", + flag_descriptions::kEnableClientCertificateProvisioningOnAndroidName, + flag_descriptions:: + kEnableClientCertificateProvisioningOnAndroidDescription, + kOsAndroid, + FEATURE_VALUE_TYPE(client_certificates::features:: + kEnableClientCertificateProvisioningOnAndroid)}, + #endif // BUILDFLAG(IS_ANDROID) {"service-worker-auto-preload", @@ -11929,12 +11922,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(chrome::android::kAndroidBookmarkBar)}, #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_CHROMEOS) - {"cros-mall-managed", flag_descriptions::kCrosMallManagedName, - flag_descriptions::kCrosMallManagedDescription, kOsCrOS, - FEATURE_VALUE_TYPE(chromeos::features::kCrosMallManaged)}, -#endif // BUILDFLAG(IS_CHROMEOS) - {"happy-eyeballs-v3", flag_descriptions::kHappyEyeballsV3Name, flag_descriptions::kHappyEyeballsV3Description, kOsAll, FEATURE_VALUE_TYPE(net::features::kHappyEyeballsV3)}, @@ -11973,6 +11960,15 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsWin | kOsLinux, FEATURE_VALUE_TYPE(switches::kEnableOAuthMultiloginCookiesBinding)}, + {"enable-oauth-multilogin-cookies-binding-server-experiment", + flag_descriptions:: + kEnableOAuthMultiloginCookiesBindingServerExperimentName, + flag_descriptions:: + kEnableOAuthMultiloginCookiesBindingServerExperimentDescription, + kOsMac | kOsWin | kOsLinux, + FEATURE_VALUE_TYPE( + switches::kEnableOAuthMultiloginCookiesBindingServerExperiment)}, + {"enable-chrome-refresh-token-binding", flag_descriptions::kEnableChromeRefreshTokenBindingName, flag_descriptions::kEnableChromeRefreshTokenBindingDescription, @@ -11980,14 +11976,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(switches::kEnableChromeRefreshTokenBinding)}, #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) -#if BUILDFLAG(IS_CHROMEOS) - {"use-managed-print-job-options-in-print-preview", - flag_descriptions::kUseManagedPrintJobOptionsInPrintPreviewName, - flag_descriptions::kUseManagedPrintJobOptionsInPrintPreviewDescription, - kOsCrOS, - FEATURE_VALUE_TYPE(features::kUseManagedPrintJobOptionsInPrintPreview)}, -#endif // BUILDFLAG(IS_CHROMEOS) - #if BUILDFLAG(IS_ANDROID) {"autofill-third-party-mode-content-provider", flag_descriptions::kAutofillThirdPartyModeContentProviderName, @@ -12117,14 +12105,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(lens::features::kLensOverlaySidePanelOpenInNewTab)}, #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) - {"enforce-system-echo-cancellation", - flag_descriptions::kEnforceSystemEchoCancellationName, - flag_descriptions::kEnforceSystemEchoCancellationDescription, - kOsWin | kOsMac, - FEATURE_VALUE_TYPE(media::kEnforceSystemEchoCancellation)}, -#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) - #if !BUILDFLAG(IS_ANDROID) {"improved-password-change-service", flag_descriptions::kImprovedPasswordChangeServiceName, @@ -12166,22 +12146,15 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kClipboardChangeEventDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kClipboardChangeEvent)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) - {"autofill-enable-amount-extraction-allowlist", - flag_descriptions::kAutofillEnableAmountExtractionAllowlistName, - flag_descriptions::kAutofillEnableAmountExtractionAllowlistDescription, - kOsDesktop | kOsAndroid, - FEATURE_VALUE_TYPE( - autofill::features::kAutofillEnableAmountExtractionAllowlist)}, -#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || - // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) - #if !BUILDFLAG(IS_ANDROID) {"devtools-project-settings", flag_descriptions::kDevToolsProjectSettingsName, flag_descriptions::kDevToolsProjectSettingsDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kDevToolsWellKnown)}, + {"devtools-starting-style-debugging", + flag_descriptions::kDevToolsStartingStyleDebuggingName, + flag_descriptions::kDevToolsStartingStyleDebuggingDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kDevToolsStartingStyleDebugging)}, #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) @@ -12232,7 +12205,7 @@ const FeatureEntry kFeatureEntries[] = { {"enable-android-window-controls-overlay", flag_descriptions::kAndroidWindowControlsOverlayName, flag_descriptions::kAndroidWindowControlsOverlayDescription, kOsAndroid, - FEATURE_VALUE_TYPE(webapps::features::kAndroidWindowControlsOverlay)}, + FEATURE_VALUE_TYPE(blink::features::kAndroidWindowControlsOverlay)}, {"credential-management-third-party-web-api-request-forwarding", flag_descriptions:: @@ -12388,6 +12361,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kLocalNetworkAccessChecksWebRTCName, flag_descriptions::kLocalNetworkAccessChecksWebRTCDescription, kOsAll, FEATURE_VALUE_TYPE(network::features::kLocalNetworkAccessChecksWebRTC)}, + {"local-network-access-check-websockets", + flag_descriptions::kLocalNetworkAccessChecksWebSocketsName, + flag_descriptions::kLocalNetworkAccessChecksWebSocketsDescription, kOsAll, + FEATURE_VALUE_TYPE( + network::features::kLocalNetworkAccessChecksWebSockets)}, #if BUILDFLAG(IS_CHROMEOS) {"notebook-lm-app-preinstall", @@ -12589,10 +12567,15 @@ const FeatureEntry kFeatureEntries[] = { payments::features::kSecurePaymentConfirmationFallback)}, #if BUILDFLAG(IS_ANDROID) + {"android-use-display-topology", + flag_descriptions::kAndroidUseDisplayTopologyName, + flag_descriptions::kAndroidUseDisplayTopologyDescription, kOsAndroid, + FEATURE_VALUE_TYPE(ui::kAndroidUseDisplayTopology)}, + {"android-window-management-web-api", flag_descriptions::kAndroidWindowManagementWebApiName, flag_descriptions::kAndroidWindowManagementWebApiDescription, kOsAndroid, - FEATURE_VALUE_TYPE(ui::kAndroidWindowManagementWebApi)}, + FEATURE_VALUE_TYPE(permissions::features::kAndroidWindowManagementWebApi)}, {"browser-controls-debugging", flag_descriptions::kBrowserControlsDebuggingName, @@ -12767,23 +12750,10 @@ const FeatureEntry kFeatureEntries[] = { chrome::android::kAndroidShowRestoreTabsPromoOnFREBypassedKillSwitch)}, #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_MAC) - {"web-authentication-large-blob-for-icloudkeychain", - flag_descriptions::kWebAuthnLargeBlobForICloudKeychainName, - flag_descriptions::kWebAuthnLargeBlobForICloudKeychainDescription, kOsMac, - FEATURE_VALUE_TYPE(device::kWebAuthnLargeBlobForICloudKeychain)}, -#endif // BUILDFLAG(IS_MAC) - - {"autofill-require-cvc-for-possible-card-update", - flag_descriptions::kAutofillRequireCvcForPossibleCardUpdateName, - flag_descriptions::kAutofillRequireCvcForPossibleCardUpdateDescription, - kOsAll, - FEATURE_VALUE_TYPE( - autofill::features::kAutofillRequireCvcForPossibleCardUpdate)}, {"disable-autofill-strike-system", flag_descriptions::kDisableAutofillStrikeSystemName, flag_descriptions::kDisableAutofillStrikeSystemDescription, kOsAll, - FEATURE_VALUE_TYPE(autofill::features::kDisableAutofillStrikeSystem)}, + FEATURE_VALUE_TYPE(strike_database::features::kDisableStrikeSystem)}, #if BUILDFLAG(IS_ANDROID) {"allow-non-family-link-url-filter-mode", @@ -12828,23 +12798,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(blink::features::kWebAppInstallation)}, #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) - {"lens-search-side-panel-default-width-change", - flag_descriptions::kLensSearchSidePanelDefaultWidthChangeName, - flag_descriptions::kLensSearchSidePanelDefaultWidthChangeDescription, - kOsDesktop, - FEATURE_VALUE_TYPE( - lens::features::kLensSearchSidePanelDefaultWidthChange)}, -#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || - // BUILDFLAG(IS_WIN) - - {"transferable-resource-pass-alpha-type-directly", - flag_descriptions::kTransferableResourcePassAlphaTypeDirectlyName, - flag_descriptions::kTransferableResourcePassAlphaTypeDirectlyDescription, - kOsAll, - FEATURE_VALUE_TYPE(features::kTransferableResourcePassAlphaTypeDirectly)}, - #if BUILDFLAG(IS_ANDROID) {"enable-exclusive-access-manager-on-android", flag_descriptions::kEnableExclusiveAccessManagerName, @@ -12897,15 +12850,6 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( autofill::features::kAutofillEnableDownstreamCardAwarenessIph)}, -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) - {"enable-lens-overlay-back-to-page", - flag_descriptions::kLensOverlayBackToPageName, - flag_descriptions::kLensOverlayBackToPageDescription, kOsDesktop, - FEATURE_VALUE_TYPE(lens::features::kLensOverlayBackToPage)}, -#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || - // BUILDFLAG(IS_WIN) - #if BUILDFLAG(IS_ANDROID) {"supervised-user-interstitial-without-approvals", flag_descriptions::kSupervisedUserInterstitialWithoutApprovalsName, @@ -12925,14 +12869,6 @@ const FeatureEntry kFeatureEntries[] = { "EnableNtpBrowserPromos")}, #endif -#if BUILDFLAG(IS_CHROMEOS) - {"enable-multi-capture-notification-update", - flag_descriptions::kMultiCaptureUsageIndicatorUpdateName, - flag_descriptions::kMultiCaptureUsageIndicatorUpdateDescription, kOsCrOS, - FEATURE_VALUE_TYPE( - chromeos::features::kMultiCaptureReworkedUsageIndicators)}, -#endif // BUILDFLAG(IS_CHROMEOS) - #if !BUILDFLAG(IS_ANDROID) {"enable-devtools-deep-link-via-extensibility-api", flag_descriptions::kEnableDevtoolsDeepLinkViaExtensibilityApiName, @@ -12972,7 +12908,7 @@ const FeatureEntry kFeatureEntries[] = { {"android-open-incognito-as-window", flag_descriptions::kAndroidOpenIncognitoAsWindowName, flag_descriptions::kAndroidOpenIncognitoAsWindowDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidOpenIncognitoAsWindow)}, + FEATURE_VALUE_TYPE(feed::kAndroidOpenIncognitoAsWindow)}, {"android-desktop-webprefs-large-display", flag_descriptions::kAndroidDesktopWebPrefsLargeDisplaysName, @@ -12981,6 +12917,14 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(blink::features::kAndroidDesktopWebPrefsLargeDisplays)}, #endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) + {"enable-seamless-signin", flag_descriptions::kEnableSeamlessSigninName, + flag_descriptions::kEnableSeamlessSigninDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kEnableSeamlessSignin, + kSeamlessSigninPromoTypes, + "SeamlessSigninPromoTypes")}, +#endif // BUILDFLAG(IS_ANDROID) + #if BUILDFLAG(IS_ANDROID) {"force-history-opt-in-screen", flag_descriptions::kForceHistoryOptInScreenName, @@ -13020,7 +12964,8 @@ const FeatureEntry kFeatureEntries[] = { kSafetyHubUnusedPermissionRevocationForAllSurfacesDescription, kOsAll, FEATURE_VALUE_TYPE( - features::kSafetyHubUnusedPermissionRevocationForAllSurfaces)}, + permissions::features:: + kSafetyHubUnusedPermissionRevocationForAllSurfaces)}, #if BUILDFLAG(IS_ANDROID) {"android-data-importer-service", @@ -13124,7 +13069,10 @@ const FeatureEntry kFeatureEntries[] = { {"enforce-management-disclaimer", flag_descriptions::kEnforceManagementDisclaimerName, flag_descriptions::kEnforceManagementDisclaimerDescription, kOsDesktop, - FEATURE_VALUE_TYPE(switches::kEnforceManagementDisclaimer)}, + FEATURE_WITH_PARAMS_VALUE_TYPE( + switches::kEnforceManagementDisclaimer, + kPolicyDisclaimerRegistrationRetryDelayVariations, + "PolicyDisclaimerRegistrationRetryDelayVariations")}, #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -13277,12 +13225,19 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(blink::features::kMulticastInDirectSockets)}, #endif // !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) + {"enable-minimal-ui-menu-button", + flag_descriptions::kAndroidWebAppMenuButtonName, + flag_descriptions::kAndroidWebAppMenuButtonDescription, kOsAndroid, + FEATURE_VALUE_TYPE(webapps::features::kAndroidWebAppMenuButton)}, +#endif // BUILDFLAG(IS_ANDROID) + #if BUILDFLAG(IS_ANDROID) {"android-animated-progress-bar-in-browser", flag_descriptions::kAndroidAnimatedProgressBarInBrowserName, flag_descriptions::kAndroidAnimatedProgressBarInBrowserDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kAndroidAnimatedProgressBarInBrowser)}, + FEATURE_VALUE_TYPE(features::kAndroidAnimatedProgressBarInBrowser)}, #endif // BUILDFLAG(IS_ANDROID) {"enable-cross-device-pref-tracker", @@ -13291,6 +13246,139 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( sync_preferences::features::kEnableCrossDevicePrefTracker)}, +#if BUILDFLAG(IS_WIN) + { + "enable-d3d12-video-encoder", + flag_descriptions::kD3D12VideoEncoderName, + flag_descriptions::kD3D12VideoEncoderDescription, + kOsWin, + FEATURE_VALUE_TYPE(media::kD3D12VideoEncodeAccelerator), + }, +#endif // BUILDFLAG(IS_WIN) + +#if BUILDFLAG(IS_ANDROID) + {"media-codec-low-delay-mode", + flag_descriptions::kMediaCodecLowDelayModeName, + flag_descriptions::kMediaCodecLowDelayModeDescription, kOsAndroid, + FEATURE_VALUE_TYPE(media::kMediaCodecLowDelayMode)}, +#endif + + {"autofill-and-passwords-in-same-surface", + flag_descriptions::kAutofillAndPasswordsInSameSurfaceName, + flag_descriptions::kAutofillAndPasswordsInSameSurfaceDescription, kOsAll, + FEATURE_VALUE_TYPE( + autofill::features::kAutofillAndPasswordsInSameSurface)}, + +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ + BUILDFLAG(IS_WIN) + {"contextual-suggestion-ui-improvements", + flag_descriptions::kContextualSuggestionsUiImprovementsName, + flag_descriptions::kContextualSuggestionsUiImprovementsDescription, + kOsDesktop, MULTI_VALUE_TYPE(kContextualSuggestionsUiImprovementsChoices)}, +#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + + {"verify-qwacs", flag_descriptions::kVerifyQWACsName, + flag_descriptions::kVerifyQWACsDescription, kOsAll, + FEATURE_VALUE_TYPE(net::features::kVerifyQWACs)}, + + {"autofill-prefer-buy-now-pay-later-blocklists", + flag_descriptions::kAutofillPreferBuyNowPayLaterBlocklistsName, + flag_descriptions::kAutofillPreferBuyNowPayLaterBlocklistsDescription, + kOsAll, + FEATURE_VALUE_TYPE( + autofill::features::kAutofillPreferBuyNowPayLaterBlocklists)}, + + {"enable-block-canvas-readback", + flag_descriptions::kEnableBlockCanvasReadbackName, + flag_descriptions::kEnableBlockCanvasReadbackDescription, kOsAll, + FEATURE_WITH_PARAMS_VALUE_TYPE(fingerprinting_protection_interventions:: + features::kBlockCanvasReadback, + kEnableBlockCanvasReadbackVariations, + "EnableBlockCanvasReadback")}, + +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) + {"autofill-enable-ai-based-amount-extraction", + flag_descriptions::kAutofillEnableAiBasedAmountExtractionName, + flag_descriptions::kAutofillEnableAiBasedAmountExtractionDescription, + kOsDesktop, + FEATURE_VALUE_TYPE( + autofill::features::kAutofillEnableAiBasedAmountExtraction)}, +#endif + + {"contextual-tasks", + contextual_tasks::flag_descriptions::kContextualTasksName, + contextual_tasks::flag_descriptions::kContextualTasksDescription, + kOsDesktop, FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasks)}, + +#if !BUILDFLAG(IS_ANDROID) + {"create-new-tab-group-app-menu-top-level", + flag_descriptions::kCreateNewTabGroupAppMenuTopLevelName, + flag_descriptions::kCreateNewTabGroupAppMenuTopLevelDescription, + kOsDesktop, + FEATURE_VALUE_TYPE(features::kCreateNewTabGroupAppMenuTopLevel)}, +#endif // !BUILDFLAG(IS_ANDROID) + +#if BUILDFLAG(IS_CHROMEOS) + {"enable-unicorn-chrome-activity-reporting", + flag_descriptions::kUnicornChromeActivityReportingName, + flag_descriptions::kUnicornChromeActivityReportingDescription, kOsCrOS, + FEATURE_VALUE_TYPE(features::kUnicornChromeActivityReporting)}, +#endif // BUILDFLAG(IS_CHROMEOS) + + {"autofill-enable-buy-now-pay-later-updated-suggestion-second-line-string", + flag_descriptions:: + kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineStringName, + flag_descriptions:: + kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineStringDescription, + kOsAll, + FEATURE_VALUE_TYPE( + autofill::features:: + kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineString)}, + + {"cryptography-compliance-cnsa", + flag_descriptions::kCryptographyComplianceCnsaName, + flag_descriptions::kCryptographyComplianceCnsaDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kCryptographyComplianceCnsa)}, + +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) + {"lens-reinvocation-affordance", + flag_descriptions::kLensSearchReinvocationAffordanceName, + flag_descriptions::kLensSearchReinvocationAffordanceDescription, + kOsDesktop, + FEATURE_VALUE_TYPE(lens::features::kLensSearchReinvocationAffordance)}, + + {"lens-search-zero-state-csb", + flag_descriptions::kLensSearchZeroStateCsbName, + flag_descriptions::kLensSearchZeroStateCsbDescription, kOsDesktop, + FEATURE_VALUE_TYPE(lens::features::kLensSearchZeroStateCsb)}, + + {"lens-updated-feedback-entrypoint", + flag_descriptions::kLensUpdatedFeedbackEntrypointName, + flag_descriptions::kLensUpdatedFeedbackEntrypointDescription, kOsDesktop, + FEATURE_VALUE_TYPE(lens::features::kLensUpdatedFeedbackEntrypoint)}, + + {"lens-video-citations", flag_descriptions::kLensVideoCitationsName, + flag_descriptions::kLensVideoCitationsDescription, kOsDesktop, + FEATURE_VALUE_TYPE(lens::features::kLensVideoCitations)}, +#endif + + {"autofill-prioritize-save-card-over-mandatory-reauth", + flag_descriptions::kAutofillPrioritizeSaveCardOverMandatoryReauthName, + flag_descriptions:: + kAutofillPrioritizeSaveCardOverMandatoryReauthDescription, + kOsMac | kOsWin | kOsAndroid, + FEATURE_VALUE_TYPE( + autofill::features::kAutofillPrioritizeSaveCardOverMandatoryReauth)}, + +#if BUILDFLAG(IS_ANDROID) + {"migrate-account-manager-delegate", + flag_descriptions::kMigrateAccountManagerDelegateName, + flag_descriptions::kMigrateAccountManagerDelegateDescription, kOsAndroid, + FEATURE_VALUE_TYPE(switches::kMigrateAccountManagerDelegate)}, +#endif // Add new entries above this line. // NOTE: Adding a new flag requires adding a corresponding entry to enum diff --git a/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index 2608d027..a292c76c 100755 --- a/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc @@ -784,6 +784,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ContentSettingsType::PERMISSION_AUTOREVOCATION_DATA, delete_begin, delete_end, website_settings_filter); + host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( + ContentSettingsType::PERMISSION_ACTIONS_HISTORY, delete_begin, + delete_end, website_settings_filter); + if (auto* privacy_sandbox_settings = PrivacySandboxSettingsFactory::GetForProfile(profile_)) { privacy_sandbox_settings->ClearFledgeJoiningAllowedSettings(delete_begin_, @@ -930,6 +934,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ContentSettingsType::SUSPICIOUS_NOTIFICATION_IDS, delete_begin_, delete_end_, website_settings_filter); + host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( + ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, + delete_begin_, delete_end_, website_settings_filter); + PermissionDecisionAutoBlockerFactory::GetForProfile(profile_) ->RemoveEmbargoAndResetCounts(filter); } @@ -1075,7 +1083,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // TODO(crbug.com/40594007): Respect |delete_begin_| and |delete_end_| and // only clear out entries whose last strikes were created in that // timeframe. - autofill::StrikeDatabase* strike_database = + strike_database::StrikeDatabase* strike_database = autofill::StrikeDatabaseFactory::GetForProfile(profile_); if (strike_database) strike_database->ClearAllStrikes(); @@ -1133,7 +1141,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (render_process_host->GetBrowserContext() == profile_ && render_process_host->IsInitializedAndNotDead()) { web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess( - render_process_host->GetDeprecatedID()); + render_process_host->GetID()); } } } 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 b8acad00..0ab10486 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 @@ -53,9 +53,6 @@ #include "build/build_config.h" #include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM #include "chrome/browser/preloading/search_preload/search_preload_features.h" -#if !BUILDFLAG(IS_ANDROID) -#include "chrome/browser/actor/actor_keyed_service.h" -#endif // !BUILDFLAG(IS_ANDROID) #include "chrome/browser/after_startup_task_utils.h" #include "chrome/browser/ai/ai_manager.h" #include "chrome/browser/app_mode/app_mode_utils.h" @@ -80,6 +77,7 @@ #include "chrome/browser/defaults.h" #include "chrome/browser/device_api/device_service_impl.h" #include "chrome/browser/device_api/managed_configuration_service.h" +#include "chrome/browser/devtools/features.h" #include "chrome/browser/download/chrome_download_manager_delegate.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/browser/enterprise/browser_management/management_service_factory.h" @@ -109,7 +107,6 @@ #include "chrome/browser/memory/chrome_browser_main_extra_parts_memory.h" #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" #include "chrome/browser/metrics/chrome_feature_list_creator.h" -#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "chrome/browser/navigation_predictor/anchor_element_preloader.h" #include "chrome/browser/net/chrome_network_delegate.h" #include "chrome/browser/net/profile_network_context_service.h" @@ -268,6 +265,8 @@ #include "components/payments/content/payment_request_display_manager.h" #include "components/payments/content/secure_payment_confirmation_service_factory.h" #include "components/pdf/common/pdf_util.h" +#include "components/performance_manager/public/graph/frame_node.h" +#include "components/performance_manager/public/performance_manager.h" #include "components/permissions/content_setting_permission_context_base.h" #include "components/policy/content/policy_blocklist_service.h" #include "components/policy/core/common/management/management_service.h" @@ -387,7 +386,6 @@ #include "services/network/public/mojom/network_service.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" #include "services/network/public/mojom/web_transport.mojom.h" -#include "services/video_effects/public/cpp/buildflags.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/url_loader_throttle.h" #include "third_party/blink/public/common/navigation/navigation_policy.h" @@ -427,11 +425,11 @@ #include "chrome/services/util_win/public/mojom/util_win.mojom.h" #include "content/public/browser/tracing_service.h" #include "sandbox/win/src/sandbox_policy.h" -#include "ui/accessibility/accessibility_features.h" #elif BUILDFLAG(IS_MAC) #include "chrome/browser/browser_process_platform_part_mac.h" #include "chrome/browser/chrome_browser_main_mac.h" #include "chrome/browser/mac/chrome_browser_main_extra_parts_mac.h" +#include "chrome/common/chrome_version.h" #include "components/soda/constants.h" #include "sandbox/mac/sandbox_serializer.h" #include "sandbox/policy/mac/params.h" @@ -516,19 +514,51 @@ #endif #if !BUILDFLAG(IS_ANDROID) +#include "chrome/browser/actor/actor_keyed_service.h" +#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" +#include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/digital_credentials/digital_identity_provider_desktop.h" +#include "chrome/browser/direct_sockets/chrome_direct_sockets_delegate.h" +#include "chrome/browser/headless/chrome_browser_main_extra_parts_headless.h" +#include "chrome/browser/media/unified_autoplay_config.h" +#include "chrome/browser/metrics/usage_scenario/chrome_responsiveness_calculator_delegate.h" +#include "chrome/browser/new_tab_page/new_tab_page_util.h" #include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h" +#include "chrome/browser/screen_ai/screen_ai_install_state.h" +#include "chrome/browser/search/instant_service.h" +#include "chrome/browser/search/instant_service_factory.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_dialogs.h" +#include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/chrome_pages.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/webui/chrome_content_browser_client_webui_part.h" +#include "chrome/browser/ui/webui/webui_util_desktop.h" #include "chrome/browser/web_applications/isolated_web_apps/chrome_content_browser_client_isolated_web_apps_part.h" +#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_error_page.h" #include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h" #include "chrome/browser/web_applications/locks/app_lock.h" +#include "chrome/browser/web_applications/policy/web_app_policy_manager.h" #include "chrome/browser/web_applications/proto/web_app_install_state.pb.h" #include "chrome/browser/web_applications/web_app_helpers.h" +#include "chrome/browser/web_applications/web_app_provider.h" +#include "chrome/browser/web_applications/web_app_registrar.h" +#include "chrome/browser/web_applications/web_app_utils.h" +#include "chrome/browser/webauthn/authenticator_request_scheduler.h" +#include "chrome/browser/webauthn/chrome_authenticator_request_delegate.h" +#include "chrome/browser/webauthn/chrome_web_authentication_delegate.h" +#include "chrome/grit/chrome_unscaled_resources.h" // nogncheck crbug.com/1125897 +#include "components/commerce/core/commerce_feature_list.h" #include "components/keep_alive_registry/keep_alive_registry.h" +#include "components/password_manager/content/common/web_ui_constants.h" +#include "components/password_manager/core/common/password_manager_features.h" +#include "components/webapps/isolated_web_apps/url_loading/url_loader_factory.h" +#include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" #include "third_party/blink/public/mojom/installedapp/related_application.mojom.h" #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS) -#include "ash/multi_capture/multi_capture_service.h" #include "ash/shell.h" #include "base/debug/leak_annotations.h" #include "chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate.h" @@ -547,40 +577,6 @@ #include "third_party/cros_system_api/switches/chrome_switches.h" #endif // BUILDFLAG(IS_CHROMEOS) -#if !BUILDFLAG(IS_ANDROID) -#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" -#include "chrome/browser/devtools/devtools_window.h" -#include "chrome/browser/direct_sockets/chrome_direct_sockets_delegate.h" -#include "chrome/browser/headless/chrome_browser_main_extra_parts_headless.h" -#include "chrome/browser/media/unified_autoplay_config.h" -#include "chrome/browser/metrics/usage_scenario/chrome_responsiveness_calculator_delegate.h" -#include "chrome/browser/new_tab_page/new_tab_page_util.h" -#include "chrome/browser/search/instant_service.h" -#include "chrome/browser/search/instant_service_factory.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/browser_dialogs.h" -#include "chrome/browser/ui/browser_finder.h" -#include "chrome/browser/ui/browser_list.h" -#include "chrome/browser/ui/chrome_pages.h" -#include "chrome/browser/ui/tabs/tab_strip_model.h" -#include "chrome/browser/ui/webui/chrome_content_browser_client_webui_part.h" -#include "chrome/browser/ui/webui/webui_util_desktop.h" -#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_error_page.h" -#include "chrome/browser/web_applications/policy/web_app_policy_manager.h" -#include "chrome/browser/web_applications/web_app_helpers.h" -#include "chrome/browser/web_applications/web_app_provider.h" -#include "chrome/browser/web_applications/web_app_registrar.h" -#include "chrome/browser/web_applications/web_app_utils.h" -#include "chrome/browser/webauthn/authenticator_request_scheduler.h" -#include "chrome/browser/webauthn/chrome_authenticator_request_delegate.h" -#include "chrome/grit/chrome_unscaled_resources.h" // nogncheck crbug.com/1125897 -#include "components/commerce/core/commerce_feature_list.h" -#include "components/password_manager/content/common/web_ui_constants.h" -#include "components/password_manager/core/common/password_manager_features.h" -#include "components/webapps/isolated_web_apps/url_loading/url_loader_factory.h" -#include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" -#endif // !BUILDFLAG(IS_ANDROID) - #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/crash/core/app/crash_switches.h" #include "components/crash/core/app/crashpad.h" @@ -595,6 +591,12 @@ #include "chrome/browser/enterprise/chrome_browser_main_extra_parts_enterprise.h" #endif +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) +#include "components/webapps/isolated_web_apps/scheme.h" +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + #if defined(TOOLKIT_VIEWS) #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h" #endif @@ -660,12 +662,6 @@ #include "chrome/browser/media/cast_remoting_connector.h" #endif -#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) -#include "chrome/browser/media_effects/media_effects_manager_binder.h" -#include "media/capture/mojom/video_effects_manager.mojom-forward.h" -#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h" -#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) - #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) #include "chrome/browser/enterprise/connectors/connectors_service.h" #include "chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service_factory.h" @@ -703,11 +699,6 @@ #include "components/enterprise/common/files_scan_data.h" #endif -#if !BUILDFLAG(IS_ANDROID) -#include "chrome/browser/screen_ai/screen_ai_install_state.h" -#include "chrome/browser/webauthn/chrome_web_authentication_delegate.h" -#endif - #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) #include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h" #include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h" @@ -778,17 +769,21 @@ namespace { const char kAIManagerUserDataKey[] = "ai_manager"; +#if BUILDFLAG(IS_MAC) +constexpr char kSecurePaymentConfirmationKeychainAccessGroup[] = + MAC_TEAM_IDENTIFIER_STRING "." MAC_BUNDLE_IDENTIFIER_STRING + ".secure-payment-confirmation"; +#endif // BUILDFLAG(IS_MAC) + // 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); // Warm up the ServiceWorker registration for DSE. BASE_FEATURE(kPrewarmServiceWorkerRegistrationForDSE, - "PrewarmServiceWorkerRegistrationForDSE", base::FEATURE_DISABLED_BY_DEFAULT); // A small ChromeBrowserMainExtraParts that invokes a callback when threads are @@ -1249,36 +1244,18 @@ void NotifyMultiCaptureStarted(const std::string& label, content::BrowserContext* browser_context) { const url::Origin origin = url::Origin::Create(web_contents->GetLastCommittedURL()); - if (app_id) { - CHECK_DEREF(ash::Shell::Get()) - .multi_capture_service() - ->NotifyMultiCaptureStartedFromApp( - label, *app_id, - web_app::WebAppProvider::GetForWebContents(web_contents) - ->registrar_unsafe() - .GetAppShortName(*app_id), - origin); + CHECK(app_id); - if (base::FeatureList::IsEnabled( - chromeos::features::kMultiCaptureReworkedUsageIndicators)) { - CHECK_DEREF(multi_capture::MultiCaptureUsageIndicatorServiceFactory:: - GetForBrowserContext(web_contents->GetBrowserContext())) - .MultiCaptureStarted(label, *app_id); - } - } + CHECK_DEREF(multi_capture::MultiCaptureUsageIndicatorServiceFactory:: + GetForBrowserContext(web_contents->GetBrowserContext())) + .MultiCaptureStarted(label, *app_id); } void NotifyMultiCaptureStopped(const std::string& label, content::BrowserContext* browser_context) { - CHECK_DEREF(ash::Shell::Get()) - .multi_capture_service() - ->NotifyMultiCaptureStopped(label); - if (base::FeatureList::IsEnabled( - chromeos::features::kMultiCaptureReworkedUsageIndicators)) { - CHECK_DEREF(multi_capture::MultiCaptureUsageIndicatorServiceFactory:: - GetForBrowserContext(browser_context)) - .MultiCaptureStopped(label); - } + CHECK_DEREF(multi_capture::MultiCaptureUsageIndicatorServiceFactory:: + GetForBrowserContext(browser_context)) + .MultiCaptureStopped(label); } bool IsSubAppsPermissionGrantedByAdmins(content::WebContents* contents) { @@ -1609,6 +1586,7 @@ void ChromeContentBrowserClient::MaybeProxyNetworkBoundRequest( context_params->bound_network = bound_network; context_params->cert_verifier_params = content::GetCertVerifierParams( cert_verifier::mojom::CertVerifierCreationParams::New()); + context_params->enable_domain_reliability = false; ConfigureNetworkContextParams( browser_context, true, base::FilePath(), context_params.get(), cert_verifier::mojom::CertVerifierCreationParams::New().get()); @@ -1810,9 +1788,11 @@ ChromeContentBrowserClient::GetStoragePartitionConfigForSite( #endif #if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) if (content::SiteIsolationPolicy::ShouldUrlUseApplicationIsolationLevel( browser_context, site)) { - CHECK(url::Origin::Create(site).scheme() == chrome::kIsolatedAppScheme); + CHECK(url::Origin::Create(site).scheme() == webapps::kIsolatedAppScheme); ASSIGN_OR_RETURN(const auto iwa_url_info, web_app::IsolatedWebAppUrlInfo::Create(site), [&](auto) { LOG(ERROR) << "Invalid isolated-app URL: " << site; @@ -1821,6 +1801,8 @@ ChromeContentBrowserClient::GetStoragePartitionConfigForSite( return iwa_url_info.storage_partition_config(browser_context); } +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #endif return default_storage_partition_config; @@ -1885,12 +1867,12 @@ void ChromeContentBrowserClient::RenderProcessWillLaunch( } } -GURL ChromeContentBrowserClient::GetEffectiveURL( +std::optional ChromeContentBrowserClient::GetEffectiveURL( content::BrowserContext* browser_context, const GURL& url) { Profile* profile = Profile::FromBrowserContext(browser_context); if (!profile) { - return url; + return std::nullopt; } #if !BUILDFLAG(IS_ANDROID) @@ -1906,13 +1888,13 @@ GURL ChromeContentBrowserClient::GetEffectiveURL( #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (ChromeContentBrowserClientExtensionsPart::AreExtensionsDisabledForProfile( profile)) { - return url; + return std::nullopt; } return ChromeContentBrowserClientExtensionsPart::GetEffectiveURL(profile, url); #else - return url; + return std::nullopt; #endif } @@ -2197,54 +2179,6 @@ void ChromeContentBrowserClient::OverrideURLLoaderFactoryParams( #endif } -bool IsURLAccessibleByHistoryNavigationFromWebContents( - const GURL& url, - content::WebContents* web_contents) { - if (!web_contents) { - return false; - } - content::NavigationController& controller = web_contents->GetController(); - for (int j = 0; j < controller.GetEntryCount(); ++j) { - content::NavigationEntry* entry = controller.GetEntryAtIndex(j); - if (entry && entry->GetURL().EqualsIgnoringRef(url)) { - return true; - } - } - return false; -} - -bool ChromeContentBrowserClient::IsURLAccessibleByHistoryNavigation( - const GURL& url) { -#if BUILDFLAG(IS_ANDROID) - for (const TabModel* model : TabModelList::models()) { - if (!model) { - continue; - } - for (int i = 0; i < model->GetTabCount(); ++i) { - if (IsURLAccessibleByHistoryNavigationFromWebContents( - url, model->GetWebContentsAt(i))) { - return true; - } - } - } - return false; -#else - for (Browser* browser : *BrowserList::GetInstance()) { - TabStripModel* model = browser->tab_strip_model(); - if (!model) { - continue; - } - for (int i = 0; i < model->count(); ++i) { - if (IsURLAccessibleByHistoryNavigationFromWebContents( - url, model->GetWebContentsAt(i))) { - return true; - } - } - } - return false; -#endif // BUILDFLAG(IS_ANDROID) -} - // These are treated as WebUI schemes but do not get WebUI bindings. Also, // view-source is allowed for these schemes. void ChromeContentBrowserClient::GetAdditionalWebUISchemes( @@ -2366,6 +2300,14 @@ void ChromeContentBrowserClient::OverrideNavigationParams( } } +void ChromeContentBrowserClient::CrossProcessSubframeRenderProcessGone( + content::RenderFrameHost* render_frame_host) { + if (auto frame_node = performance_manager::PerformanceManager:: + GetFrameNodeForRenderFrameHost(render_frame_host)) { + frame_node->CrossProcessSubframeRenderProcessGone(); + } +} + bool ChromeContentBrowserClient::ShouldStayInParentProcessForNTP( const GURL& url, const GURL& parent_site_url) { @@ -2720,6 +2662,8 @@ bool ChromeContentBrowserClient::ShouldUrlUseApplicationIsolationLevel( content::BrowserContext* browser_context, const GURL& url) { #if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) if (!content::AreIsolatedWebAppsEnabled(browser_context)) { return false; @@ -2727,9 +2671,11 @@ bool ChromeContentBrowserClient::ShouldUrlUseApplicationIsolationLevel( // Convert |url| to an origin to resolve blob: URLs. auto origin = url::Origin::Create(url); - if (origin.scheme() == chrome::kIsolatedAppScheme) { + if (origin.scheme() == webapps::kIsolatedAppScheme) { return true; } +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #endif return false; } @@ -4145,8 +4091,7 @@ bool ShouldDisableForcedColorsForWebContent(content::WebContents* contents, return false; } -blink::mojom::PreferredContrast GetPreferredContrast( - const ui::NativeTheme* native_theme) { +blink::mojom::PreferredContrast GetPreferredContrast() { using NC = ui::NativeTheme::PreferredContrast; using BC = blink::mojom::PreferredContrast; static constexpr auto kContrastMap = @@ -4154,13 +4099,14 @@ blink::mojom::PreferredContrast GetPreferredContrast( {NC::kMore, BC::kMore}, {NC::kLess, BC::kLess}, {NC::kCustom, BC::kCustom}}); - return kContrastMap.at(native_theme->GetPreferredContrast()); + return kContrastMap.at( + ui::NativeTheme::GetInstanceForWeb()->preferred_contrast()); } -std::tuple GetForcedColorsForWebContent( - WebContents* web_contents, - const ui::NativeTheme* native_theme) { - const bool in_forced_colors = native_theme->InForcedColorsMode(); +std::tuple GetForcedColorsForWebContent(WebContents* web_contents) { + const bool in_forced_colors = + ui::NativeTheme::GetInstanceForWeb()->forced_colors() != + ui::ColorProviderKey::ForcedColors::kNone; const bool is_forced_colors_disabled = ShouldDisableForcedColorsForWebContent(web_contents, in_forced_colors); return {in_forced_colors && !is_forced_colors_disabled, @@ -4170,6 +4116,7 @@ std::tuple GetForcedColorsForWebContent( #if !BUILDFLAG(IS_ANDROID) blink::mojom::PreferredColorScheme ToBlinkPreferredColorScheme( ui::NativeTheme::PreferredColorScheme native_theme_scheme) { + // Web content treats "no preference" as light mode. return (native_theme_scheme == ui::NativeTheme::PreferredColorScheme::kDark) ? blink::mojom::PreferredColorScheme::kDark : blink::mojom::PreferredColorScheme::kLight; @@ -4180,8 +4127,7 @@ std::tuple GetPreferredColorScheme(const WebPreferences& web_prefs, const GURL& url, - WebContents* web_contents, - const ui::NativeTheme* native_theme) { + WebContents* web_contents) { #if BUILDFLAG(IS_ANDROID) if (TabAndroid::FromWebContents(web_contents)) { if (auto* delegate = static_cast( @@ -4201,8 +4147,8 @@ GetPreferredColorScheme(const WebPreferences& web_prefs, ->IsIncognitoProfile() && !content::HasWebUIScheme(url)) { // Incognito contents follow the device color mode. - preferred_color_scheme = - ToBlinkPreferredColorScheme(native_theme->GetPreferredColorScheme()); + preferred_color_scheme = ToBlinkPreferredColorScheme( + ui::NativeTheme::GetInstanceForWeb()->preferred_color_scheme()); } else { // WebUI and regular pages follow the browser theme color mode, provided by // the color provider. @@ -4853,15 +4799,15 @@ void ChromeContentBrowserClient::OverrideWebPreferences( SubAppsAPIsRequireUserGestureAndAuthorization(web_contents); #endif // BUILDFLAG(IS_CHROMEOS) - web_prefs->preferred_contrast = GetPreferredContrast(GetWebTheme()); + web_prefs->preferred_contrast = GetPreferredContrast(); std::tie(web_prefs->in_forced_colors, web_prefs->is_forced_colors_disabled) = - GetForcedColorsForWebContent(web_contents, GetWebTheme()); + GetForcedColorsForWebContent(web_contents); std::tie(web_prefs->preferred_color_scheme, web_prefs->preferred_root_scrollbar_color_scheme) = GetPreferredColorScheme(*web_prefs, main_frame_site.GetSiteURL(), - web_contents, GetWebTheme()); + web_contents); web_prefs->root_scrollbar_theme_color = GetRootScrollbarThemeColor(web_contents); @@ -4918,6 +4864,11 @@ void ChromeContentBrowserClient::OverrideWebPreferences( IsFingerprintingProtectionEnabledForIncognitoState( Profile::FromBrowserContext(web_contents->GetBrowserContext()) ->IsIncognitoProfile()); + + if (base::FeatureList::IsEnabled(::features::kDevToolsAiPromptApi) && + web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) { + web_prefs->ai_prompt_api_enabled = true; + } } bool ChromeContentBrowserClientParts::OverrideWebPreferencesAfterNavigation( @@ -4966,7 +4917,7 @@ bool ChromeContentBrowserClient::OverrideWebPreferencesAfterNavigation( const auto old_is_forced_colors_disabled = web_prefs->is_forced_colors_disabled; std::tie(web_prefs->in_forced_colors, web_prefs->is_forced_colors_disabled) = - GetForcedColorsForWebContent(web_contents, GetWebTheme()); + GetForcedColorsForWebContent(web_contents); prefs_changed |= web_prefs->in_forced_colors != old_in_forced_colors || web_prefs->is_forced_colors_disabled != old_is_forced_colors_disabled; @@ -4977,7 +4928,7 @@ bool ChromeContentBrowserClient::OverrideWebPreferencesAfterNavigation( std::tie(web_prefs->preferred_color_scheme, web_prefs->preferred_root_scrollbar_color_scheme) = GetPreferredColorScheme(*web_prefs, main_frame_site.GetSiteURL(), - web_contents, GetWebTheme()); + web_contents); prefs_changed |= web_prefs->preferred_color_scheme != old_preferred_color_scheme || web_prefs->preferred_root_scrollbar_color_scheme != @@ -5012,12 +4963,12 @@ bool ChromeContentBrowserClient:: WebContents& web_contents, const SiteInstance& main_frame_site) const { const WebPreferences& prefs = web_contents.GetOrCreateWebPreferences(); - return GetPreferredContrast(GetWebTheme()) != prefs.preferred_contrast || - GetForcedColorsForWebContent(&web_contents, GetWebTheme()) != + return GetPreferredContrast() != prefs.preferred_contrast || + GetForcedColorsForWebContent(&web_contents) != std::tie(prefs.in_forced_colors, prefs.is_forced_colors_disabled) || GetPreferredColorScheme(prefs, main_frame_site.GetSiteURL(), - &web_contents, GetWebTheme()) != + &web_contents) != std::tie(prefs.preferred_color_scheme, prefs.preferred_root_scrollbar_color_scheme) || GetRootScrollbarThemeColor(&web_contents) != @@ -5119,7 +5070,11 @@ void ChromeContentBrowserClient::GetAdditionalAllowedSchemesForFileSystem( additional_allowed_schemes->push_back(content::kChromeDevToolsScheme); additional_allowed_schemes->push_back(content::kChromeUIScheme); additional_allowed_schemes->push_back(content::kChromeUIUntrustedScheme); - additional_allowed_schemes->push_back(chrome::kIsolatedAppScheme); +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) + additional_allowed_schemes->push_back(webapps::kIsolatedAppScheme); +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) for (auto& extra_part : extra_parts_) { extra_part->GetAdditionalAllowedSchemesForFileSystem( additional_allowed_schemes); @@ -5317,8 +5272,7 @@ bool ChromeContentBrowserClient::PreSpawnChild( switch (sandbox_type) { case sandbox::mojom::Sandbox::kRenderer: - enforce_code_integrity = - (flags & ChildSpawnFlags::kChildSpawnFlagRendererCodeIntegrity); + enforce_code_integrity = true; break; case sandbox::mojom::Sandbox::kNetwork: enforce_code_integrity = base::FeatureList::IsEnabled( @@ -5380,23 +5334,6 @@ bool ChromeContentBrowserClient::PreSpawnChild( return true; } -bool ChromeContentBrowserClient::IsRendererCodeIntegrityEnabled() { - // Emergency 'on switch' to re-enable the policy if force-disabling it causes - // issues. - if (base::FeatureList::IsEnabled( - sandbox::policy::features::kWinSboxForceRendererCodeIntegrity)) { - return true; - } - - PrefService* local_state = g_browser_process->local_state(); - - // If kWinSboxForceRendererCodeIntegrity is set to disabled, then code - // integrity defaults to enabled, unless specifically overridden by a policy - // controlled pref being set to false. - return !local_state->HasPrefPath(prefs::kRendererCodeIntegrityEnabled) || - local_state->GetBoolean(prefs::kRendererCodeIntegrityEnabled); -} - // Note: Only use sparingly to add Chrome specific sandbox functionality here. // Other code should reside in the content layer. Changes to this function // should be reviewed by the security team. @@ -6064,8 +6001,9 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory( profile, content::ChildProcessHost::kInvalidUniqueID); } #endif // BUILDFLAG(IS_CHROMEOS) -#if !BUILDFLAG(IS_ANDROID) - if (scheme == chrome::kIsolatedAppScheme) { +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) + if (scheme == webapps::kIsolatedAppScheme) { if (content::AreIsolatedWebAppsEnabled(browser_context) && !browser_context->ShutdownStarted()) { return web_app::IsolatedWebAppURLLoaderFactory::CreateForFrame( @@ -6074,7 +6012,8 @@ ChromeContentBrowserClient::CreateNonNetworkNavigationURLLoaderFactory( return {}; } -#endif // !BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) || BUILDFLAG(IS_CHROMEOS) || // !BUILDFLAG(IS_ANDROID) @@ -6088,14 +6027,16 @@ void ChromeContentBrowserClient:: DCHECK(browser_context); DCHECK(factories); -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) if (content::AreIsolatedWebAppsEnabled(browser_context) && !browser_context->ShutdownStarted()) { - factories->emplace(chrome::kIsolatedAppScheme, + factories->emplace(webapps::kIsolatedAppScheme, web_app::IsolatedWebAppURLLoaderFactory::Create( browser_context, /*app_origin=*/std::nullopt)); } -#endif // !BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) DCHECK(!ChromeContentBrowserClientExtensionsPart:: @@ -6115,14 +6056,16 @@ void ChromeContentBrowserClient:: DCHECK(browser_context); DCHECK(factories); -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) if (content::AreIsolatedWebAppsEnabled(browser_context) && !browser_context->ShutdownStarted()) { - factories->emplace(chrome::kIsolatedAppScheme, + factories->emplace(webapps::kIsolatedAppScheme, web_app::IsolatedWebAppURLLoaderFactory::Create( browser_context, /*app_origin=*/std::nullopt)); } -#endif // !BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (ChromeContentBrowserClientExtensionsPart::AreExtensionsDisabledForProfile( @@ -6388,30 +6331,32 @@ void ChromeContentBrowserClient:: } #endif // BUILDFLAG(IS_CHROMEOS) -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) { auto* rph = content::RenderProcessHost::FromID(render_process_id); content::BrowserContext* browser_context = rph->GetBrowserContext(); DCHECK(browser_context); bool is_initiator_iwa = request_initiator_origin.has_value() && - request_initiator_origin->scheme() == chrome::kIsolatedAppScheme; + request_initiator_origin->scheme() == webapps::kIsolatedAppScheme; if (content::AreIsolatedWebAppsEnabled(browser_context) && !browser_context->ShutdownStarted() && is_initiator_iwa) { if (frame_host != nullptr) { factories->emplace( - chrome::kIsolatedAppScheme, + webapps::kIsolatedAppScheme, web_app::IsolatedWebAppURLLoaderFactory::CreateForFrame( browser_context, request_initiator_origin, frame_host->GetFrameTreeNodeId())); } else { - factories->emplace(chrome::kIsolatedAppScheme, + factories->emplace(webapps::kIsolatedAppScheme, web_app::IsolatedWebAppURLLoaderFactory::Create( browser_context, request_initiator_origin)); } } } -#endif +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) content::BrowserContext* browser_context = @@ -6891,8 +6836,13 @@ void ChromeContentBrowserClient::CreateSecurePaymentConfirmationService( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver receiver) { - payments::CreateSecurePaymentConfirmationService(render_frame_host, - std::move(receiver)); + std::string spc_keychain_access_group; +#if BUILDFLAG(IS_MAC) + spc_keychain_access_group = kSecurePaymentConfirmationKeychainAccessGroup; +#endif // BUILDFLAG(IS_MAC) + payments::CreateSecurePaymentConfirmationService( + render_frame_host, std::move(receiver), + std::move(spc_keychain_access_group)); } std::unique_ptr @@ -6980,7 +6930,7 @@ bool ChromeContentBrowserClient::HandleExternalProtocol( // If actor is active, bail out early to prevent it from launching external // applications. if (tab_interface && actor_service && - actor_service->IsAnyTaskActingOnTab(*tab_interface)) { + actor_service->IsActiveOnTab(*tab_interface)) { return false; } } @@ -7187,13 +7137,9 @@ bool ChromeContentBrowserClient::HandleWebUIReverse( url->host() == chrome::kChromeUISettingsHost; } -const ui::NativeTheme* ChromeContentBrowserClient::GetWebTheme() const { - return ui::NativeTheme::GetInstanceForWeb(); -} - void ChromeContentBrowserClient::AddExtraPart( - ChromeContentBrowserClientParts* part) { - extra_parts_.push_back(base::WrapUnique(part)); + std::unique_ptr part) { + extra_parts_.push_back(std::move(part)); } std::unique_ptr @@ -7778,15 +7724,17 @@ bool ChromeContentBrowserClient:: void ChromeContentBrowserClient:: GrantAdditionalRequestPrivilegesToWorkerProcess(int child_id, const GURL& script_url) { -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) // IWA Service Workers need to be explicitly granted access to their origin // because isolated-app: isn't a web-safe scheme that can be accessed by // default. - if (script_url.SchemeIs(chrome::kIsolatedAppScheme)) { + if (script_url.SchemeIs(webapps::kIsolatedAppScheme)) { ChildProcessSecurityPolicy::GetInstance()->GrantRequestOrigin( child_id, url::Origin::Create(script_url)); } -#endif // !BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) } content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride @@ -7807,6 +7755,12 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( kBlockInsteadOfWarn; } + if (profile->GetPrefs()->GetBoolean( + prefs::kManagedLocalNetworkAccessRestrictionsTemporaryOptOut)) { + return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride:: + kWarnInsteadOfBlock; + } + return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride:: kDefault; } @@ -8147,9 +8101,10 @@ ChromeContentBrowserClient::GetAlternativeErrorPageOverrideInfo( content::RenderFrameHost* render_frame_host, content::BrowserContext* browser_context, int32_t error_code) { -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) if (content::AreIsolatedWebAppsEnabled(browser_context) && - url.SchemeIs(chrome::kIsolatedAppScheme)) { + url.SchemeIs(webapps::kIsolatedAppScheme)) { content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_override_info = web_app::MaybeGetIsolatedWebAppErrorPageInfo( @@ -8160,7 +8115,8 @@ ChromeContentBrowserClient::GetAlternativeErrorPageOverrideInfo( return alternative_error_page_override_info; } } -#endif +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) if (error_code == net::ERR_INTERNET_DISCONNECTED) { content::mojom::AlternativeErrorPageOverrideInfoPtr @@ -8497,26 +8453,6 @@ bool ChromeContentBrowserClient:: #endif } -#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) -void ChromeContentBrowserClient::BindReadonlyVideoEffectsManager( - const std::string& device_id, - content::BrowserContext* browser_context, - mojo::PendingReceiver - readonly_video_effects_manager) { - media_effects::BindReadonlyVideoEffectsManager( - device_id, browser_context, std::move(readonly_video_effects_manager)); -} - -void ChromeContentBrowserClient::BindVideoEffectsProcessor( - const std::string& device_id, - content::BrowserContext* browser_context, - mojo::PendingReceiver - video_effects_processor) { - media_effects::BindVideoEffectsProcessor(device_id, browser_context, - std::move(video_effects_processor)); -} -#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) - void ChromeContentBrowserClient::PreferenceRankAudioDeviceInfos( content::BrowserContext* browser_context, blink::WebMediaDeviceInfoArray& infos) { @@ -8759,81 +8695,6 @@ void ChromeContentBrowserClient::QueryInstalledWebAppsByManifestId( } #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_WIN) -void ChromeContentBrowserClient::OnUiaProviderRequested( - bool uia_provider_enabled) { - if (handled_uia_provider_request_) { - return; - } - 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; - } - - // The "Control_NNNN" and "Enabled_NNNN" groups in the UiaProviderWin study - // are equal-sized arms for which the UiaProvider feature is disabled and - // enabled, respectively. (The feature may also be disabled in other groups, - // such as "Default_NNNN" or preperiod groups.) Analyzing data from users in - // these two groups alone does not provide an accurate picture of the impact - // of the feature, because the browser must check whether or not the feature - // is enable during startup regardless of whether or not a UI automation - // client connects to the browser. Filtering data by whether or not - // accessibility is enabled is also insufficient, as this will include - // browsers for which an MSAA/IAccessible2 client connects. To measure the - // impact of the UiaProvider feature, we only want to consider clients where a - // UI automation client connected and said connection was either refused - // because the client is in the control group, or was accepted because the - // client is in the enabled group. We do this by enrolling the client in one - // of two groups of a synthetic field trial in only these two situations. - if (auto* trial = base::FeatureList::GetFieldTrial(features::kUiaProvider)) { - static constexpr std::string_view kControl = "Control"; - static constexpr std::string_view kEnabled = "Enabled"; - const auto& trial_group_name = trial->GetGroupNameWithoutActivation(); - std::string_view group_name; - - if (base::StartsWith(trial_group_name, "Control")) { - group_name = kControl; - } else if (base::StartsWith(trial_group_name, "Enabled")) { - group_name = kEnabled; - } - if (!group_name.empty()) { - ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( - "UiaProviderActiveSynthetic", group_name, - variations::SyntheticTrialAnnotationMode::kCurrentLog); - } - } -} - -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( std::unique_ptr sampling_profiler) { sampling_profiler_ = std::move(sampling_profiler); @@ -8841,8 +8702,7 @@ void ChromeContentBrowserClient::SetSamplingProfiler( void ChromeContentBrowserClient::AddExtraPartForTesting( std::unique_ptr part) { - // AddExtraPart takes ownership of a raw pointer. - AddExtraPart(part.release()); + AddExtraPart(std::move(part)); } bool ChromeContentBrowserClient::ShouldDispatchPagehideDuringCommit( diff --git a/tools/under-control/src/chrome/browser/chrome_content_browser_client_navigation_throttles.cc b/tools/under-control/src/chrome/browser/chrome_content_browser_client_navigation_throttles.cc index ac7d01de..0fa6dc40 100755 --- a/tools/under-control/src/chrome/browser/chrome_content_browser_client_navigation_throttles.cc +++ b/tools/under-control/src/chrome/browser/chrome_content_browser_client_navigation_throttles.cc @@ -31,11 +31,11 @@ #include "chrome/browser/ui/passwords/password_manager_navigation_throttle.h" #include "chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h" #include "chrome/browser/ui/web_applications/navigation_capturing_redirection_throttle.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "components/captive_portal/content/captive_portal_service.h" #include "components/captive_portal/core/buildflags.h" #include "components/dom_distiller/content/browser/distiller_page_web_contents.h" -#include "components/embedder_support/switches.h" #include "components/error_page/content/browser/net_error_auto_reloader.h" #include "components/fingerprinting_protection_filter/browser/throttle_manager.h" #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h" @@ -53,6 +53,7 @@ #include "components/security_interstitials/content/ssl_error_handler.h" #include "components/security_interstitials/content/ssl_error_navigation_throttle.h" #include "components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h" +#include "components/tabs/public/tab_interface.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/navigation_throttle_registry.h" #include "content/public/browser/web_contents.h" @@ -201,8 +202,10 @@ void HandleSSLErrorWrapper( // Returns whether `web_contents` is within a hosted app. bool IsInHostedApp(content::WebContents* web_contents) { #if BUILDFLAG(ENABLE_EXTENSIONS) - Browser* browser = chrome::FindBrowserWithTab(web_contents); - return web_app::AppBrowserController::IsWebApp(browser); + tabs::TabInterface* tab = + tabs::TabInterface::MaybeGetFromContents(web_contents); + return tab && web_app::AppBrowserController::IsWebApp( + tab->GetBrowserWindowInterface()); #else return false; #endif @@ -214,10 +217,10 @@ bool IsErrorPageAutoReloadEnabled() { if (command_line.HasSwitch(switches::kEnableAutomation)) { return false; } - if (command_line.HasSwitch(embedder_support::kEnableAutoReload)) { + if (command_line.HasSwitch(switches::kEnableAutoReload)) { return true; } - if (command_line.HasSwitch(embedder_support::kDisableAutoReload)) { + if (command_line.HasSwitch(switches::kDisableAutoReload)) { return false; } return true; 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 125057be..9f9e077a 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,6 +154,8 @@ public abstract class ChromeFeatureList { // Feature names. // keep-sorted start group_prefixes=["public static final String"] + public static final String ACCESSIBILITY_MAGNIFICATION_FOLLOWS_INPUT_FOCUS = + "AccessibilityMagnificationFollowsInputFocus"; public static final String ACCOUNT_FOR_SUPPRESSED_KEYBOARD_INSETS = "AccountForSuppressedKeyboardInsets"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = @@ -167,13 +169,11 @@ public abstract class ChromeFeatureList { public static final String ANDROID_ANIMATED_PROGRESS_BAR_IN_VIZ = "AndroidAnimatedProgressBarInViz"; 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_MULTI_DATA_SOURCE = "AndroidAppIntegrationMultiDataSource"; - public static final String ANDROID_APP_INTEGRATION_V2 = "AndroidAppIntegrationV2"; - public static final String ANDROID_APP_INTEGRATION_WITH_FAVICON = - "AndroidAppIntegrationWithFavicon"; + public static final String ANDROID_AUTOFILL_SUPPORT_FOR_HTTP_AUTH = + "AndroidAutofillSupportForHttpAuth"; public static final String ANDROID_BOOKMARK_BAR = "AndroidBookmarkBar"; public static final String ANDROID_BOTTOM_TOOLBAR = "AndroidBottomToolbar"; public static final String ANDROID_BOTTOM_TOOLBAR_V2 = "AndroidBottomToolbarV2"; @@ -183,7 +183,6 @@ public abstract class ChromeFeatureList { public static final String ANDROID_ELEGANT_TEXT_HEIGHT = "AndroidElegantTextHeight"; public static final String ANDROID_FIRST_RUN_LAUNCH_BOUNDS = "AndroidFirstRunLaunchBounds"; 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 = @@ -192,6 +191,8 @@ public abstract class ChromeFeatureList { public static final String ANDROID_OPEN_PDF_INLINE_BACKPORT = "AndroidOpenPdfInlineBackport"; public static final String ANDROID_PDF_ASSIST_CONTENT = "AndroidPdfAssistContent"; public static final String ANDROID_PINNED_TABS = "AndroidPinnedTabs"; + public static final String ANDROID_PINNED_TABS_TABLET_TAB_STRIP = + "AndroidPinnedTabsTabletTabStrip"; public static final String ANDROID_PROGRESS_BAR_VISUAL_UPDATE = "AndroidProgressBarVisualUpdate"; public static final String ANDROID_SETTINGS_CONTAINMENT = "AndroidSettingsContainment"; @@ -222,7 +223,9 @@ public abstract class ChromeFeatureList { public static final String ANDROID_USE_ADMINS_FOR_ENTERPRISE_INFO = "AndroidUseAdminsForEnterpriseInfo"; public static final String ANDROID_WEB_APP_LAUNCH_HANDLER = "AndroidWebAppLaunchHandler"; + public static final String ANDROID_WEB_APP_MENU_BUTTON = "AndroidWebAppMenuButton"; public static final String ANDROID_WINDOW_CONTROLS_OVERLAY = "AndroidWindowControlsOverlay"; + public static final String ANDROID_WINDOW_MANAGEMENT_WEB_API = "AndroidWindowManagementWebApi"; public static final String ANDROID_WINDOW_POPUP_LARGE_SCREEN = "AndroidWindowPopupLargeScreen"; public static final String ANDROID_WINDOW_POPUP_PREDICT_FINAL_BOUNDS = "AndroidWindowPopupPredictFinalBounds"; @@ -230,6 +233,7 @@ public abstract class ChromeFeatureList { "AndroidWindowPopupResizeAfterSpawn"; public static final String ANDROID_XR_USES_SURFACE_CONTROL = "AndroidWindowPopupResizeAfterSpawn"; + public static final String ANDROID_ZOOM_INDICATOR = "AndroidZoomIndicator"; public static final String ANIMATED_GIF_REFACTOR = "AnimatedGifRefactor"; public static final String ANIMATED_IMAGE_DRAG_SHADOW = "AnimatedImageDragShadow"; public static final String ANNOTATED_PAGE_CONTENTS_VIRTUAL_STRUCTURE = @@ -254,15 +258,13 @@ public abstract class ChromeFeatureList { public static final String AUTOFILL_ENABLE_CVC_STORAGE = "AutofillEnableCvcStorageAndFilling"; public static final String AUTOFILL_ENABLE_FLAT_RATE_CARD_BENEFITS_FROM_CURINOS = "AutofillEnableFlatRateCardBenefitsFromCurinos"; + public static final String AUTOFILL_ENABLE_KEYBOARD_ACCESSORY_CHIP_REDESIGN = + "AutofillEnableKeyboardAccessoryChipRedesign"; public static final String AUTOFILL_ENABLE_LOCAL_IBAN = "AutofillEnableLocalIban"; public static final String AUTOFILL_ENABLE_LOYALTY_CARDS_FILLING = "AutofillEnableLoyaltyCardsFilling"; public static final String AUTOFILL_ENABLE_NEW_CARD_BENEFITS_TOGGLE_TEXT = "AutofillEnableNewCardBenefitsToggleText"; - public static final String AUTOFILL_ENABLE_RANKING_FORMULA_ADDRESS_PROFILES = - "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_SEPARATE_PIX_PREFERENCE_ITEM = @@ -346,6 +348,7 @@ public abstract class ChromeFeatureList { public static final String CCT_TAB_MODAL_DIALOG = "CCTTabModalDialog"; public static final String CCT_TOOLBAR_REFACTOR = "CCTToolbarRefactor"; public static final String CHANGE_UNFOCUSED_PRIORITY = "ChangeUnfocusedPriority"; + public static final String CHROME_ITEM_PICKER_UI = "ChromeItemPickerUi"; public static final String CHROME_NATIVE_URL_OVERRIDING = "ChromeNativeUrlOverriding"; public static final String CHROME_SURVEY_NEXT_ANDROID = "ChromeSurveyNextAndroid"; public static final String CLAMP_AUTOMOTIVE_SCALING = "ClampAutomotiveScaling"; @@ -356,8 +359,6 @@ public abstract class ChromeFeatureList { "ClearBrowsingDataAndroidSurvey"; public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY = "ClearInstanceInfoWhenClosedIntentionally"; - public static final String COLLECT_ANDROID_FRAME_TIMELINE_METRICS = - "CollectAndroidFrameTimelineMetrics"; public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted"; public static final String COMMERCE_MERCHANT_VIEWER = "CommerceMerchantViewer"; public static final String CONTEXTUAL_PAGE_ACTIONS = "ContextualPageActions"; @@ -413,6 +414,8 @@ public abstract class ChromeFeatureList { public static final String ENABLE_CLIPBOARD_DATA_CONTROLS_ANDROID = "EnableClipboardDataControlsAndroid"; public static final String ENABLE_DISCOUNT_INFO_API = "EnableDiscountInfoApi"; + public static final String ENABLE_ESCAPE_HANDLING_FOR_SECONDARY_ACTIVITIES = + "EnableEscapeHandlingForSecondaryActivities"; public static final String ENABLE_EXCLUSIVE_ACCESS_MANAGER = "EnableExclusiveAccessManager"; public static final String ENABLE_FULLSCREEN_TO_ANY_SCREEN_ANDROID = "EnableFullscreenToAnyScreenAndroid"; @@ -432,8 +435,6 @@ public abstract class ChromeFeatureList { public static final String FILLING_PASSWORDS_FROM_ANY_ORIGIN = "FillingPasswordsFromAnyOrigin"; public static final String FINGERPRINTING_PROTECTION_UX = "FingerprintingProtectionUx"; public static final String FLOATING_SNACKBAR = "FloatingSnackbar"; - public static final String FORCE_BROWSER_CONTROLS_UPON_EXITING_FULLSCREEN = - "ForceBrowserControlsUponExitingFullscreen"; public static final String FORCE_LIST_TAB_SWITCHER = "ForceListTabSwitcher"; public static final String FORCE_TRANSLUCENT_NOTIFICATION_TRAMPOLINE = "ForceTranslucentNotificationTrampoline"; @@ -456,6 +457,7 @@ public abstract class ChromeFeatureList { public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String HUB_BACK_BUTTON = "HubBackButton"; public static final String HUB_SLIDE_ANIMATION = "HubSlideAnimation"; + public static final String INCOGNITO_NTP_SMALL_ICON = "IncognitoNtpSmallIcon"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting"; public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; @@ -470,6 +472,8 @@ public abstract class ChromeFeatureList { public static final String LOCAL_NETWORK_ACCESS = "LocalNetworkAccessChecks"; public static final String LOCK_BACK_PRESS_HANDLER_AT_START = "LockBackPressHandlerAtStart"; public static final String LOCK_TOP_CONTROLS_ON_LARGE_TABLETS = "LockTopControlsOnLargeTablets"; + public static final String LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2 = + "LockTopControlsOnLargeTabletsV2"; public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; @@ -570,11 +574,14 @@ public abstract class ChromeFeatureList { public static final String RENAME_JOURNEYS = "RenameJourneys"; public static final String REPORT_NOTIFICATION_CONTENT_DETECTION_DATA = "ReportNotificationContentDetectionData"; + public static final String RESTRICT_LEGACY_SEARCH_ENGINE_PROMO_ON_FORM_FACTORS = + "RestrictLegacySearchEnginePromoOnFormFactors"; public static final String RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV = "RightEdgeGoesForwardGestureNav"; public static final String ROBUST_WINDOW_MANAGEMENT = "RobustWindowManagement"; public static final String ROBUST_WINDOW_MANAGEMENT_EXPERIMENTAL = "RobustWindowManagementExperimental"; + public static final String ROLL_BACK_MODE_B = "RollBackModeB"; 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"; @@ -598,6 +605,7 @@ public abstract class ChromeFeatureList { "SearchInCCTAlternateTapHandlingIfEnabledByEmbedder"; public static final String SEARCH_IN_CCT_IF_ENABLED_BY_EMBEDDER = "SearchInCCTIfEnabledByEmbedder"; + public static final String SEARCH_IN_SETTINGS = "SearchInSettings"; 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 = @@ -609,6 +617,7 @@ public abstract class ChromeFeatureList { public static final String SENSITIVE_CONTENT = "SensitiveContent"; public static final String SENSITIVE_CONTENT_WHILE_SWITCHING_TABS = "SensitiveContentWhileSwitchingTabs"; + public static final String SETTINGS_MULTI_COLUMN = "SettingsMultiColumn"; public static final String SETTINGS_SINGLE_ACTIVITY = "SettingsSingleActivity"; public static final String SHARED_DATA_TYPES_KILL_SWITCH = "SharedDataTypesKillSwitch"; public static final String SHARE_CUSTOM_ACTIONS_IN_CCT = "ShareCustomActionsInCCT"; @@ -673,6 +682,7 @@ public abstract class ChromeFeatureList { public static final String TOOLBAR_PHONE_ANIMATION_REFACTOR = "ToolbarPhoneAnimationRefactor"; public static final String TOOLBAR_SCROLL_ABLATION = "AndroidToolbarScrollAblation"; public static final String TOOLBAR_SNAPSHOT_REFACTOR = "ToolbarSnapshotRefactor"; + public static final String TOOLBAR_STALE_CAPTURE_BUG_FIX = "ToolbarStaleCaptureBugFix"; public static final String TOOLBAR_TABLET_RESIZE_REFACTOR = "ToolbarTabletResizeRefactor"; public static final String TOP_CONTROLS_REFACTOR = "TopControlsRefactor"; public static final String TOUCH_TO_SEARCH_CALLOUT = "TouchToSearchCallout"; @@ -718,23 +728,17 @@ public abstract class ChromeFeatureList { /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sAndroidAnimatedProgressBarInBrowser = - newCachedFlag(ANDROID_ANIMATED_PROGRESS_BAR_IN_BROWSER, false); + newCachedFlag(ANDROID_ANIMATED_PROGRESS_BAR_IN_BROWSER, true); public static final CachedFlag sAndroidAnimatedProgressBarInViz = newCachedFlag(ANDROID_ANIMATED_PROGRESS_BAR_IN_VIZ, false); - public static final CachedFlag sAndroidAppIntegration = - newCachedFlag(ANDROID_APP_INTEGRATION, true); public static final CachedFlag sAndroidAppIntegrationModule = newCachedFlag(ANDROID_APP_INTEGRATION_MODULE, true); public static final CachedFlag sAndroidAppIntegrationMultiDataSource = newCachedFlag(ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE, true); - 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, true, true); public static final CachedFlag sAndroidBottomToolbarV2 = - newCachedFlag(ANDROID_BOTTOM_TOOLBAR_V2, false, false); + newCachedFlag(ANDROID_BOTTOM_TOOLBAR_V2, false, true); public static final CachedFlag sAndroidComposeplate = newCachedFlag(ANDROID_COMPOSEPLATE, false, true); public static final CachedFlag sAndroidDataImporterService = @@ -746,7 +750,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidMinimalUiLargeScreen = newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, true); public static final CachedFlag sAndroidOpenIncognitoAsWindow = - newCachedFlag(ANDROID_OPEN_INCOGNITO_AS_WINDOW, false); + newCachedFlag(ANDROID_OPEN_INCOGNITO_AS_WINDOW, BuildConfig.IS_DESKTOP_ANDROID); public static final CachedFlag sAndroidProgressBarVisualUpdate = newCachedFlag( ANDROID_PROGRESS_BAR_VISUAL_UPDATE, @@ -777,14 +781,21 @@ public abstract class ChromeFeatureList { /* defaultValueInTests= */ true); public static final CachedFlag sAndroidWebAppLaunchHandler = newCachedFlag(ANDROID_WEB_APP_LAUNCH_HANDLER, false, true); + public static final CachedFlag sAndroidWebAppMenuButton = + newCachedFlag(ANDROID_WEB_APP_MENU_BUTTON, false); public static final CachedFlag sAndroidWindowControlsOverlay = newCachedFlag(ANDROID_WINDOW_CONTROLS_OVERLAY, false); + public static final CachedFlag sAndroidWindowManagementWebApi = + newCachedFlag( + ANDROID_WINDOW_MANAGEMENT_WEB_API, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sAndroidWindowPopupLargeScreen = newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false, true); public static final CachedFlag sAndroidWindowPopupPredictFinalBounds = - newCachedFlag(ANDROID_WINDOW_POPUP_PREDICT_FINAL_BOUNDS, false); + newCachedFlag(ANDROID_WINDOW_POPUP_PREDICT_FINAL_BOUNDS, false, true); public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = - newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); + newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); public static final CachedFlag sAppSpecificHistoryViewIntent = newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); @@ -825,7 +836,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sCctBlockTouchesDuringEnterAnimation = newCachedFlag(CCT_BLOCK_TOUCHES_DURING_ENTER_ANIMATION, true); public static final CachedFlag sCctContextualMenuItems = - newCachedFlag(CCT_CONTEXTUAL_MENU_ITEMS, false); + newCachedFlag(CCT_CONTEXTUAL_MENU_ITEMS, true); public static final CachedFlag sCctDestroyTabWhenModelIsEmpty = newCachedFlag(CCT_DESTROY_TAB_WHEN_MODEL_IS_EMPTY, true); public static final CachedFlag sCctFixWarmup = @@ -867,6 +878,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sCctTabModalDialog = newCachedFlag(CCT_TAB_MODAL_DIALOG, true); public static final CachedFlag sCctToolbarRefactor = newCachedFlag(CCT_TOOLBAR_REFACTOR, false, true); + public static final CachedFlag sChromeItemPickerUi = + newCachedFlag(CHROME_ITEM_PICKER_UI, /* defaultValue= */ false); public static final CachedFlag sClampAutomotiveScaling = newCachedFlag(CLAMP_AUTOMOTIVE_SCALING, true); public static final CachedFlag sClankStartupLatencyInjection = @@ -876,11 +889,6 @@ public abstract class ChromeFeatureList { CLEANUP_LEGACY_TABSTATE, /* defaultValue= */ false, /* defaultValueInTests= */ true); - public static final CachedFlag sCollectAndroidFrameTimelineMetrics = - newCachedFlag( - COLLECT_ANDROID_FRAME_TIMELINE_METRICS, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); public static final CachedFlag sCommandLineOnNonRooted = newCachedFlag(COMMAND_LINE_ON_NON_ROOTED, false); public static final CachedFlag sContextMenuPictureInPictureAndroid = @@ -900,11 +908,6 @@ public abstract class ChromeFeatureList { DESKTOP_UA_ON_CONNECTED_DISPLAY, /* defaultValue= */ false, /* defaultValueInTests= */ false); - public static final CachedFlag sDisableInstanceLimit = - newCachedFlag( - DISABLE_INSTANCE_LIMIT, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); public static final CachedFlag sDisplayEdgeToEdgeFullscreen = newCachedFlag(DISPLAY_EDGE_TO_EDGE_FULLSCREEN, false, true); public static final CachedFlag sDrawChromePagesEdgeToEdge = @@ -914,21 +917,17 @@ public abstract class ChromeFeatureList { public static final CachedFlag sEdgeToEdgeEverywhere = newCachedFlag( EDGE_TO_EDGE_EVERYWHERE, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); + /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeMonitorConfigurations = newCachedFlag(EDGE_TO_EDGE_MONITOR_CONFIGURATIONS, /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeTablet = - newCachedFlag( - EDGE_TO_EDGE_TABLET, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); + newCachedFlag(EDGE_TO_EDGE_TABLET, /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeUseBackupNavbarInsets = newCachedFlag(EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS, true); public static final CachedFlag sEducationalTipDefaultBrowserPromoCard = newCachedFlag(EDUCATIONAL_TIP_DEFAULT_BROWSER_PROMO_CARD, false); public static final CachedFlag sEducationalTipModule = - newCachedFlag(EDUCATIONAL_TIP_MODULE, false, true); + newCachedFlag(EDUCATIONAL_TIP_MODULE, true); public static final CachedFlag sEnableExclusiveAccessManager = newCachedFlag(ENABLE_EXCLUSIVE_ACCESS_MANAGER, false); public static final CachedFlag sEnableFullscreenToAnyScreenAndroid = @@ -970,8 +969,9 @@ public abstract class ChromeFeatureList { LOAD_NATIVE_EARLY, /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sLockBackPressHandlerAtStart = newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); - public static final CachedFlag sLockTopControlsOnLargeTablets = - newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS, false); + // TODO(https://crbug.com/438970923): Remove the use of BuildConfig by 2025 EoY. + public static final CachedFlag sLockTopControlsOnLargeTabletsV2 = + newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, BuildConfig.IS_DESKTOP_ANDROID); public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); public static final CachedFlag sMaliciousApkDownloadCheck = newCachedFlag( @@ -1036,6 +1036,12 @@ public abstract class ChromeFeatureList { newCachedFlag(SEARCH_IN_CCT_ALTERNATE_TAP_HANDLING_IF_ENABLED_BY_EMBEDDER, true); public static final CachedFlag sSearchInCCTIfEnabledByEmbedder = newCachedFlag(SEARCH_IN_CCT_IF_ENABLED_BY_EMBEDDER, true); + public static final CachedFlag sSearchInSettings = newCachedFlag(SEARCH_IN_SETTINGS, false); + public static final CachedFlag sSettingsMultiColumn = + newCachedFlag( + SETTINGS_MULTI_COLUMN, + /* defaultValue= */ false, + /* defaultValueInTests= */ false); public static final CachedFlag sSettingsSingleActivity = newCachedFlag( SETTINGS_SINGLE_ACTIVITY, @@ -1057,15 +1063,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sTabStripDensityChangeAndroid = newCachedFlag(TAB_STRIP_DENSITY_CHANGE_ANDROID, true); public static final CachedFlag sTabStripIncognitoMigration = - newCachedFlag( - TAB_STRIP_INCOGNITO_MIGRATION, - /* defaultValue= */ false, - /* defaultValueInTests= */ false); - public static final CachedFlag sTabStripLayoutOptimization = - newCachedFlag( - TAB_STRIP_LAYOUT_OPTIMIZATION, - /* defaultValue= */ true, - /* defaultValueInTests= */ true); + newCachedFlag(TAB_STRIP_INCOGNITO_MIGRATION, BuildConfig.IS_DESKTOP_ANDROID); public static final CachedFlag sTabWindowManagerReportIndicesMismatch = newCachedFlag(TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH, true); public static final CachedFlag sTabletTabStripAnimation = @@ -1086,6 +1084,8 @@ public abstract class ChromeFeatureList { TOOLBAR_SNAPSHOT_REFACTOR, /* defaultValue= */ false, /* defaultValueInTests= */ true); + public static final CachedFlag sToolbarTabletResizeRefactor = + newCachedFlag(TOOLBAR_TABLET_RESIZE_REFACTOR, /* defaultValue= */ false); public static final CachedFlag sTopControlsRefactor = newCachedFlag( TOP_CONTROLS_REFACTOR, @@ -1118,11 +1118,8 @@ public abstract class ChromeFeatureList { sAllowTabClosingUponMinimization, sAndroidAnimatedProgressBarInBrowser, sAndroidAnimatedProgressBarInViz, - sAndroidAppIntegration, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, - sAndroidAppIntegrationV2, - sAndroidAppIntegrationWithFavicon, sAndroidBottomToolbar, sAndroidBottomToolbarV2, sAndroidComposeplate, @@ -1141,7 +1138,9 @@ public abstract class ChromeFeatureList { sAndroidThemeResourceProvider, sAndroidUseAdminsForEnterpriseInfo, sAndroidWebAppLaunchHandler, + sAndroidWebAppMenuButton, sAndroidWindowControlsOverlay, + sAndroidWindowManagementWebApi, sAndroidWindowPopupLargeScreen, sAndroidWindowPopupPredictFinalBounds, sAndroidWindowPopupResizeAfterSpawn, @@ -1179,17 +1178,16 @@ public abstract class ChromeFeatureList { sCctRevampedBranding, sCctTabModalDialog, sCctToolbarRefactor, + sChromeItemPickerUi, sClampAutomotiveScaling, sClankStartupLatencyInjection, sCleanupLegacyTabState, - sCollectAndroidFrameTimelineMetrics, sCommandLineOnNonRooted, sContextMenuPictureInPictureAndroid, sCpaSpecUpdate, sCpaTabGroupingButton, sCrossDeviceTabPaneAndroid, sDesktopUAOnConnectedDisplay, - sDisableInstanceLimit, sDisplayEdgeToEdgeFullscreen, sDrawChromePagesEdgeToEdge, sEdgeToEdgeBottomChin, @@ -1215,7 +1213,7 @@ public abstract class ChromeFeatureList { sLegacyTabStateDeprecation, sLoadNativeEarly, sLockBackPressHandlerAtStart, - sLockTopControlsOnLargeTablets, + sLockTopControlsOnLargeTabletsV2, sMagicStackAndroid, sMaliciousApkDownloadCheck, sMiniOriginBar, @@ -1244,6 +1242,8 @@ public abstract class ChromeFeatureList { sSearchInCCTAlternateTapHandling, sSearchInCCTAlternateTapHandlingIfEnabledByEmbedder, sSearchInCCTIfEnabledByEmbedder, + sSearchInSettings, + sSettingsMultiColumn, sSettingsSingleActivity, sShowHomeButtonPolicyAndroid, sSmallerTabStripTitleLimit, @@ -1252,11 +1252,11 @@ public abstract class ChromeFeatureList { sTabModelInitFixes, sTabStripDensityChangeAndroid, sTabStripIncognitoMigration, - sTabStripLayoutOptimization, sTabWindowManagerReportIndicesMismatch, sTabletTabStripAnimation, sToolbarPhoneAnimationRefactor, sToolbarSnapshotRefactor, + sToolbarTabletResizeRefactor, sTopControlsRefactor, sTouchToSearchCallout, sTraceBinderIpc, @@ -1289,10 +1289,10 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(ANDROID_APPEARANCE_SETTINGS, false); public static final MutableFlagWithSafeDefault sAndroidBookmarkBar = newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR, false); - public static final MutableFlagWithSafeDefault sAndroidNativePagesInNewTab = - newMutableFlagWithSafeDefault(ANDROID_NATIVE_PAGES_IN_NEW_TAB, true); public static final MutableFlagWithSafeDefault sAndroidPinnedTabs = newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS, false); + public static final MutableFlagWithSafeDefault sAndroidPinnedTabsTabletTabStrip = + newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS_TABLET_TAB_STRIP, false); public static final MutableFlagWithSafeDefault sAndroidShowRestoreTabsPromoOnFreBypassedKillSwitch = newMutableFlagWithSafeDefault( @@ -1300,9 +1300,9 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveTabGroups = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS, false); + newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterAutoDelete = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_AUTO_DELETE, false); + newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_AUTO_DELETE, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterAutoDeleteKillSwitch = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_AUTO_DELETE_KILL_SWITCH, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterPerformanceImprovements = @@ -1313,6 +1313,8 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(ANDROID_TAB_HIGHLIGHTING, false); public static final MutableFlagWithSafeDefault sAndroidTipsNotifications = newMutableFlagWithSafeDefault(ANDROID_TIPS_NOTIFICATIONS, false); + public static final MutableFlagWithSafeDefault sAndroidZoomIndicator = + newMutableFlagWithSafeDefault(ANDROID_ZOOM_INDICATOR, false); public static final MutableFlagWithSafeDefault sBcivBottomControls = newMutableFlagWithSafeDefault(BCIV_BOTTOM_CONTROLS, true); public static final MutableFlagWithSafeDefault sBrowserControlsEarlyResize = @@ -1325,18 +1327,22 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(CLEAR_BROWSING_DATA_ANDROID_SURVEY, false); public static final MutableFlagWithSafeDefault sControlsVisibilityFromNavigations = newMutableFlagWithSafeDefault(CONTROLS_VISIBILITY_FROM_NAVIGATIONS, true); + public static final MutableFlagWithSafeDefault sDisableInstanceLimit = + newMutableFlagWithSafeDefault(DISABLE_INSTANCE_LIMIT, false); // 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 = newMutableFlagWithSafeDefault(EMPTY_TAB_LIST_ANIMATION_KILL_SWITCH, false); - public static final MutableFlagWithSafeDefault sForceBrowserControlsUponExitingFullscreen = - newMutableFlagWithSafeDefault(FORCE_BROWSER_CONTROLS_UPON_EXITING_FULLSCREEN, true); public static final MutableFlagWithSafeDefault sHubBackButton = newMutableFlagWithSafeDefault(HUB_BACK_BUTTON, false); public static final MutableFlagWithSafeDefault sHubSlideAnimation = newMutableFlagWithSafeDefault(HUB_SLIDE_ANIMATION, true); + public static final MutableFlagWithSafeDefault sIncognitoNtpSmallIcon = + newMutableFlagWithSafeDefault(INCOGNITO_NTP_SMALL_ICON, false); public static final MutableFlagWithSafeDefault sIncognitoScreenshot = newMutableFlagWithSafeDefault(INCOGNITO_SCREENSHOT, false); + public static final MutableFlagWithSafeDefault sLockTopControlsOnLargeTablets = + newMutableFlagWithSafeDefault(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS, false); public static final MutableFlagWithSafeDefault sMediaIndicatorsAndroid = newMutableFlagWithSafeDefault(MEDIA_INDICATORS_ANDROID, false); public static final MutableFlagWithSafeDefault sNoVisibleHintForDifferentTLD = @@ -1376,6 +1382,8 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID, true); public static final MutableFlagWithSafeDefault sTabStorageSqlitePrototype = newMutableFlagWithSafeDefault(TAB_STORAGE_SQLITE_PROTOTYPE, false); + public static final MutableFlagWithSafeDefault sTabStripLayoutOptimization = + newMutableFlagWithSafeDefault(TAB_STRIP_LAYOUT_OPTIMIZATION, true); public static final MutableFlagWithSafeDefault sTabSwitcherForeignFaviconSupport = newMutableFlagWithSafeDefault(TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT, true); public static final MutableFlagWithSafeDefault sTabSwitcherGroupSuggestionsAndroid = @@ -1384,8 +1392,6 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(TAB_SWITCHER_GROUP_SUGGESTIONS_TEST_MODE_ANDROID, false); public static final MutableFlagWithSafeDefault sToolbarScrollAblation = newMutableFlagWithSafeDefault(TOOLBAR_SCROLL_ABLATION, false); - public static final MutableFlagWithSafeDefault sToolbarTabletResizeRefactor = - newMutableFlagWithSafeDefault(TOOLBAR_TABLET_RESIZE_REFACTOR, false); // keep-sorted end // CachedFeatureParam instances. @@ -1396,49 +1402,18 @@ public abstract class ChromeFeatureList { public static final BooleanCachedFeatureParam sAndroidThemeResourceProviderForceLight = newBooleanCachedFeatureParam( ANDROID_THEME_RESOURCE_PROVIDER, "force_light_theme", false); - public static final BooleanCachedFeatureParam sCctAdaptiveButtonEnableOpenInBrowser = - newBooleanCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "open_in_browser", false); public static final BooleanCachedFeatureParam sCctAdaptiveButtonEnableVoice = newBooleanCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "voice", false); public static final BooleanCachedFeatureParam sCctAdaptiveButtonContextualOnly = newBooleanCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "contextual_only", false); public static final IntCachedFeatureParam sCctAdaptiveButtonDefaultVariant = newIntCachedFeatureParam(CCT_ADAPTIVE_BUTTON, "default_variant", 0); - public static final IntCachedFeatureParam sAndroidAppIntegrationV2ContentTtlHours = - newIntCachedFeatureParam(ANDROID_APP_INTEGRATION_V2, "content_ttl_hours", 168); - - public static final IntCachedFeatureParam - sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours = - newIntCachedFeatureParam( - ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE, - "history_content_ttl_hours", - 24); - - public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconSkipDeviceCheck = - newBooleanCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "skip_device_check", false); public static final BooleanCachedFeatureParam sAndroidAppIntegrationModuleForceCardShow = newBooleanCachedFeatureParam(ANDROID_APP_INTEGRATION_MODULE, "force_card_shown", false); public static final BooleanCachedFeatureParam sAndroidAppIntegrationModuleShowThirdPartyCard = newBooleanCachedFeatureParam( ANDROID_APP_INTEGRATION_MODULE, "show_third_party_card", false); - - public static final IntCachedFeatureParam sAndroidAppIntegrationWithFaviconScheduleDelayTimeMs = - newIntCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "schedule_delay_time_ms", 0); - public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconUseLargeFavicon = - newBooleanCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "use_large_favicon", true); - public static final IntCachedFeatureParam - sAndroidAppIntegrationWithFaviconZeroStateFaviconNumber = - newIntCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "zero_state_favicon_number", 5); - - public static final BooleanCachedFeatureParam sAndroidAppIntegrationWithFaviconSkipSchemaCheck = - newBooleanCachedFeatureParam( - ANDROID_APP_INTEGRATION_WITH_FAVICON, "skip_schema_check", false); - public static final BooleanCachedFeatureParam sAndroidAppIntegrationMultiDataSourceSkipSchemaCheck = newBooleanCachedFeatureParam( @@ -1452,6 +1427,9 @@ public abstract class ChromeFeatureList { "multi_data_source_skip_device_check", false); + public static final BooleanCachedFeatureParam sAndroidBookmarkBarShowBookmarkBar = + newBooleanCachedFeatureParam(ANDROID_BOOKMARK_BAR, "show_bookmark_bar", false); + public static final BooleanCachedFeatureParam sAndroidComposeplateSkipLocaleCheck = newBooleanCachedFeatureParam(ANDROID_COMPOSEPLATE, "skip_locale_check", false); @@ -1463,6 +1441,15 @@ public abstract class ChromeFeatureList { public static final BooleanCachedFeatureParam sAndroidBottomToolbarDefaultToTop = newBooleanCachedFeatureParam(ANDROID_BOTTOM_TOOLBAR, "default_to_top", true); + public static final BooleanCachedFeatureParam + sAndroidBottomToolbarV2ForceBottomForFocusedOmnibox = + newBooleanCachedFeatureParam( + ANDROID_BOTTOM_TOOLBAR_V2, "force_bottom_for_focused_omnibox", false); + public static final BooleanCachedFeatureParam + sAndroidBottomToolbarV2ReverseOrderSuggestionsList = + newBooleanCachedFeatureParam( + ANDROID_BOTTOM_TOOLBAR_V2, "reverse_order_suggestions_list", false); + public static final IntCachedFeatureParam sBackgroundThreadPoolFieldTrialConfig = newIntCachedFeatureParam(BACKGROUND_THREAD_POOL_FIELD_TRIAL, "config", 4); @@ -1570,19 +1557,6 @@ public abstract class ChromeFeatureList { newIntCachedFeatureParam( CLANK_STARTUP_LATENCY_INJECTION, "latency_injection_amount_millis", 0); - /** - * The parameter to control how quickly the JankTracker should be enabled. Some JankTracker - * implementations can be quite heavy (including thread creation and the link). To avoid - * impacting start up we support delaying the construction of the JankTracker. - * - *

3000ms is enough to push us past the median start up time without losing to much of feed - * interactions. - */ - public static final IntCachedFeatureParam - sCollectAndroidFrameTimelineMetricsJankTrackerDelayedStartMs = - newIntCachedFeatureParam( - COLLECT_ANDROID_FRAME_TIMELINE_METRICS, "delayed_start_ms", 3000); - /** Batch size for number of legacy TabState files that should be deleted in a batch. */ public static final IntCachedFeatureParam sCleanupLegacyTabStateBatchSize = newIntCachedFeatureParam( @@ -1595,12 +1569,6 @@ public abstract class ChromeFeatureList { "max_legacy_tab_state_files_cleaned_up_per_session", 100); - public static final IntCachedFeatureParam sDisableInstanceLimitMemoryThresholdMb = - newIntCachedFeatureParam( - DISABLE_INSTANCE_LIMIT, "max_instance_limit_memory_threshold_mb", 6500); - public static final IntCachedFeatureParam sDisableInstanceLimitMaxCount = - newIntCachedFeatureParam(DISABLE_INSTANCE_LIMIT, "max_instance_limit", 20); - /** * Cached param whether we disable animations for color changes to the edge-to-edge bottom chin. */ @@ -1620,6 +1588,9 @@ public abstract class ChromeFeatureList { "disable_edge_to_edge_layout_color_animation", false); + public static final BooleanCachedFeatureParam sNewTabPageCustomizationV2ShowColorPicker = + newBooleanCachedFeatureParam(NEW_TAB_PAGE_CUSTOMIZATION_V2, "show_color_picker", false); + /** * Param for the OEMs that need an exception for min versions. Its value should be a comma * separated list of integers, and its index should match {@link #sEdgeToEdgeBottomChinOemList}. @@ -1630,7 +1601,7 @@ public abstract class ChromeFeatureList { public static final StringCachedFeatureParam sEdgeToEdgeEverywhereOemMinVersions = newStringCachedFeatureParam( - EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_min_versions", ""); + EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_min_versions", "35"); public static final StringCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsOemMinVersions = newStringCachedFeatureParam( @@ -1648,7 +1619,8 @@ public abstract class ChromeFeatureList { 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", ""); + newStringCachedFeatureParam( + EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_list", "realme"); public static final StringCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsOemList = newStringCachedFeatureParam( @@ -1721,6 +1693,12 @@ public abstract class ChromeFeatureList { "read_aloud_audio_overviews_speed_addition_percentage", 20); + public static final IntCachedFeatureParam sReadAloudReadabilityDelayMsAfterPageLoad = + newIntCachedFeatureParam( + READALOUD, + "read_aloud_readability_delay_ms_after_page_load", + 3000); + public static final BooleanCachedFeatureParam sShouldConsiderLanguageInOverviewReadability = newBooleanCachedFeatureParam( READALOUD_AUDIO_OVERVIEWS, @@ -1791,16 +1769,12 @@ public abstract class ChromeFeatureList { // keep-sorted start sAndroidAppIntegrationModuleForceCardShow, sAndroidAppIntegrationModuleShowThirdPartyCard, - sAndroidAppIntegrationMultiDataSourceHistoryContentTtlHours, sAndroidAppIntegrationMultiDataSourceSkipDeviceCheck, sAndroidAppIntegrationMultiDataSourceSkipSchemaCheck, - sAndroidAppIntegrationV2ContentTtlHours, - sAndroidAppIntegrationWithFaviconScheduleDelayTimeMs, - sAndroidAppIntegrationWithFaviconSkipDeviceCheck, - sAndroidAppIntegrationWithFaviconSkipSchemaCheck, - sAndroidAppIntegrationWithFaviconUseLargeFavicon, - sAndroidAppIntegrationWithFaviconZeroStateFaviconNumber, + sAndroidBookmarkBarShowBookmarkBar, sAndroidBottomToolbarDefaultToTop, + sAndroidBottomToolbarV2ForceBottomForFocusedOmnibox, + sAndroidBottomToolbarV2ReverseOrderSuggestionsList, sAndroidComposeplateHideIncognitoButton, sAndroidComposeplateSkipLocaleCheck, sAndroidComposeplateV2Enabled, @@ -1810,7 +1784,6 @@ public abstract class ChromeFeatureList { sBatchTabRestoreBatchSize, sCctAdaptiveButtonContextualOnly, sCctAdaptiveButtonDefaultVariant, - sCctAdaptiveButtonEnableOpenInBrowser, sCctAdaptiveButtonEnableVoice, sCctAuthTabEnableHttpsRedirectsVerificationTimeoutMs, sCctAutoTranslateAllowAllFirstParties, @@ -1828,9 +1801,6 @@ public abstract class ChromeFeatureList { sClampAutomotiveScalingMaxScalingPercentage, sClankStartupLatencyInjectionAmountMs, sCleanupLegacyTabStateBatchSize, - sCollectAndroidFrameTimelineMetricsJankTrackerDelayedStartMs, - sDisableInstanceLimitMaxCount, - sDisableInstanceLimitMemoryThresholdMb, sEdgeToEdgeBottomChinOemList, sEdgeToEdgeBottomChinOemMinVersions, sEdgeToEdgeEverywhereOemList, @@ -1851,6 +1821,7 @@ public abstract class ChromeFeatureList { sMostVisitedTilesReselectLaxSchemeHost, sNavBarColorAnimationDisableBottomChinColorAnimation, sNavBarColorAnimationDisableEdgeToEdgeLayoutColorAnimation, + sNewTabPageCustomizationV2ShowColorPicker, sNotificationTrampolineImmediateJobDurationMs, sNotificationTrampolineLongJobDurationMs, sNotificationTrampolineNormalJobDurationMs, @@ -1860,6 +1831,7 @@ public abstract class ChromeFeatureList { sPCctMinimumHeightRatio, sPriceChangeModuleSkipShoppingPersistedTabDataDelayedInit, sReadAloudAudioOverviewsSpeedAdditionPercentage, + sReadAloudReadabilityDelayMsAfterPageLoad, sSearchinCctApplyReferrerId, sSearchinCctOmniboxAllowedPackageNames, sShouldConsiderLanguageInOverviewReadability, @@ -1879,26 +1851,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 - sAndroidNativePagesInNewTabHistoryEnabled = - sAndroidNativePagesInNewTab.newBooleanParam( - "android_native_pages_in_new_tab_history_enabled", true); - public static final MutableBooleanParamWithSafeDefault - sAndroidNativePagesInNewTabRecentTabsEnabled = - sAndroidNativePagesInNewTab.newBooleanParam( - "android_native_pages_in_new_tab_recent_tabs_enabled", true); public static final MutableIntParamWithSafeDefault sAndroidTabDeclutterAutoDeleteTimeDeltaHours = sAndroidTabDeclutterAutoDelete.newIntParam( "android_tab_declutter_auto_delete_time_delta_hours", 90 * 24); + public static final MutableIntParamWithSafeDefault sDisableInstanceLimitMemoryThresholdMb = + sDisableInstanceLimit.newIntParam("max_instance_limit_memory_threshold_mb", 6500); + public static final MutableIntParamWithSafeDefault sDisableInstanceLimitMaxCount = + sDisableInstanceLimit.newIntParam("max_instance_limit", 20); public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterAutoDeletePromoTest = sAndroidTabDeclutterAutoDelete.newBooleanParam( @@ -1906,8 +1866,6 @@ public abstract class ChromeFeatureList { public static final MutableBooleanParamWithSafeDefault sShowNewTabAnimationsLogs = sShowNewTabAnimations.newBooleanParam("logs", false); - public static final MutableBooleanParamWithSafeDefault sShowNewTabAnimationsListeners = - sShowNewTabAnimations.newBooleanParam("listeners", false); public static final MutableBooleanParamWithSafeDefault sAndroidTabHighlightingForceCtrlClick = sAndroidTabHighlighting.newBooleanParam("force_ctrl_click", false); 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 1bb09be7..12845dd2 100755 --- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc +++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc @@ -9,6 +9,8 @@ #include #include +#include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/android_buildflags.h" @@ -186,6 +188,7 @@ #include "components/sync/service/glue/sync_transport_data_prefs.h" #include "components/sync/service/sync_prefs.h" #include "components/sync_device_info/device_info_prefs.h" +#include "components/sync_preferences/cross_device_pref_tracker/prefs/cross_device_pref_registry.h" #include "components/sync_preferences/pref_service_syncable.h" #include "components/sync_sessions/session_sync_prefs.h" #include "components/tpcd/metadata/browser/prefs.h" @@ -264,8 +267,6 @@ #include "chrome/browser/media/android/cdm/media_drm_origin_id_manager.h" #include "chrome/browser/notifications/notification_channels_provider_android.h" #include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h" -#include "chrome/browser/password_manager/android/password_manager_android_util.h" -#include "chrome/browser/password_manager/android/password_manager_util_bridge.h" #include "chrome/browser/readaloud/android/prefs.h" #include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h" #include "components/cdm/browser/media_drm_storage_impl.h" // nogncheck crbug.com/1125897 @@ -365,7 +366,7 @@ #include "chrome/browser/ash/child_accounts/time_limits/app_time_controller.h" #include "chrome/browser/ash/crostini/crostini_pref_names.h" #include "chrome/browser/ash/cryptauth/client_app_metadata_provider_service.h" -#include "chrome/browser/ash/cryptauth/cryptauth_device_id_provider_impl.h" +#include "chrome/browser/ash/cryptauth/cryptauth_device_id_provider.h" #include "chrome/browser/ash/customization/customization_document.h" #include "chrome/browser/ash/file_manager/file_manager_pref_names.h" #include "chrome/browser/ash/file_manager/file_tasks.h" @@ -465,6 +466,7 @@ #include "chromeos/ash/services/device_sync/public/cpp/device_sync_prefs.h" #include "chromeos/ash/services/multidevice_setup/multidevice_setup_service.h" #include "chromeos/components/quick_answers/public/cpp/quick_answers_prefs.h" +#include "chromeos/constants/pref_names.h" #include "chromeos/ui/wm/fullscreen/pref_names.h" #include "components/account_manager_core/chromeos/account_manager.h" #include "components/onc/onc_pref_names.h" // nogncheck @@ -1143,10 +1145,38 @@ constexpr char kDesksLacrosProfileIdList[] = "ash.desks.desks_lacros_profile_id_list"; #endif // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_ANDROID) +// Deprecated 09/2025. +constexpr char kObsoleteUpmUnmigratedPasswordsExported[] = + "profile.upm_unmigrated_passwords_exported"; +constexpr char kObsoletePasswordsUseUPMLocalAndSeparateStores[] = + "passwords_use_upm_local_and_separate_stores"; +constexpr char kObsoleteEmptyProfileStoreLoginDatabase[] = + "password_manager.empty_profile_store_login_database"; +constexpr char kObsoleteUpmAutoExportCsvNeedsDeletion[] = + "profile.upm_auto_export_csv_needs_deletion"; +#endif // BUILDFLAG(IS_ANDROID) + +// Deprecated 09/2025. +constexpr char kGaiaCookieLastListAccountsData[] = + "gaia_cookie.last_list_accounts_data"; + // Deprecated 09/2025. constexpr char kLensOverlayEduActionChipShownCount[] = "lens.edu_action_chip.shown_count"; +constexpr char kRendererCodeIntegrityEnabledNeedsDeletion[] = + "renderer_code_integrity_enabled"; + +// Deprecated 10/2025. +constexpr char kSessionRestoreTurnOffFromRestartInfoBarTimesShown[] = + "browser.session_restore_turn_off_from_restart_infobar_times_shown"; + +constexpr char kSessionRestoreTurnOffFromSessionInfoBarTimesShown[] = + "browser.session_restore_turn_off_from_session_infobar_times_shown"; + +constexpr char kSessionRestorePrefChanged[] = "session.restore_pref_changed"; + // Register local state used only for migration (clearing or moving to a new // key). void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { @@ -1271,6 +1301,10 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { registry->RegisterIntegerPref( kAutoScreenBrightnessMetricsUnsupportedAlsUserAdjustmentCount, 0); #endif + + // Deprecated 09/2025. + registry->RegisterBooleanPref(kRendererCodeIntegrityEnabledNeedsDeletion, + false); } // Register prefs used only for migration (clearing or moving to a new key). @@ -1653,8 +1687,31 @@ void RegisterProfilePrefsForMigration( registry->RegisterListPref(kDesksLacrosProfileIdList); #endif // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_ANDROID) + // Deprecated 09/2025. + registry->RegisterBooleanPref(kObsoleteUpmUnmigratedPasswordsExported, false); + registry->RegisterIntegerPref(kObsoletePasswordsUseUPMLocalAndSeparateStores, + 0); + registry->RegisterBooleanPref(kObsoleteEmptyProfileStoreLoginDatabase, false); + registry->RegisterBooleanPref(kObsoleteUpmAutoExportCsvNeedsDeletion, false); +#endif // BUILDFLAG(IS_ANDROID) + + // Deprecated 09/2025. + registry->RegisterStringPref(kGaiaCookieLastListAccountsData, std::string()); + // Deprecated 09/2025. registry->RegisterIntegerPref(kLensOverlayEduActionChipShownCount, 0); + + // Deprecated 10/2025. + registry->RegisterIntegerPref( + kSessionRestoreTurnOffFromRestartInfoBarTimesShown, 0); + + // Deprecated 10/2025. + registry->RegisterIntegerPref( + kSessionRestoreTurnOffFromSessionInfoBarTimesShown, 0); + + // Deprecated 10/2025. + registry->RegisterBooleanPref(kSessionRestorePrefChanged, false); } } // namespace @@ -1703,6 +1760,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { metrics::RegisterDemographicsLocalStatePrefs(registry); metrics::TabStatsTracker::RegisterPrefs(registry); network_time::NetworkTimeTracker::RegisterPrefs(registry); + omnibox::RegisterLocalStatePrefs(registry); optimization_guide::prefs::RegisterLocalStatePrefs(registry); optimization_guide::model_execution::prefs::RegisterLocalStatePrefs(registry); password_manager::PasswordManager::RegisterLocalPrefs(registry); @@ -1850,7 +1908,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { ash::UserImageManagerImpl::RegisterPrefs(registry); ash::UserSessionManager::RegisterPrefs(registry); component_updater::MetadataTable::RegisterPrefs(registry); - ash::CryptAuthDeviceIdProviderImpl::RegisterLocalPrefs(registry); + ash::cryptauth_device_id::RegisterLocalPrefs(registry); extensions::ExtensionAssetsManagerChromeOS::RegisterPrefs(registry); extensions::ExtensionsPermissionsTracker::RegisterLocalStatePrefs(registry); extensions::login_api::RegisterLocalStatePrefs(registry); @@ -1890,7 +1948,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) { #if BUILDFLAG(IS_WIN) OSCrypt::RegisterLocalPrefs(registry); - registry->RegisterBooleanPref(prefs::kRendererCodeIntegrityEnabled, true); registry->RegisterBooleanPref(prefs::kRendererAppContainerEnabled, true); registry->RegisterBooleanPref(prefs::kBlockBrowserLegacyExtensionPoints, true); @@ -1992,6 +2049,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, chrome_prefs::RegisterProfilePrefs(registry); collaboration::prefs::RegisterProfilePrefs(registry); commerce::RegisterPrefs(registry); + cross_device::RegisterProfilePrefs(registry); enterprise::RegisterIdentifiersProfilePrefs(registry); enterprise_connectors::RegisterProfilePrefs(registry); enterprise_reporting::RegisterProfilePrefs(registry); @@ -2204,7 +2262,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, chromeos::cloud_upload::RegisterProfilePrefs(registry); policy::NetworkAnnotationBlocklistHandler::RegisterPrefs(registry); quickoffice::RegisterProfilePrefs(registry); - registry->RegisterBooleanPref(prefs::kAutoSignOutEnabled, false); + registry->RegisterBooleanPref(chromeos::prefs::kAutoSignOutEnabled, false); registry->RegisterBooleanPref(prefs::kDeskAPIThirdPartyAccessEnabled, false); registry->RegisterBooleanPref(prefs::kDeskAPIDeskSaveAndShareEnabled, false); registry->RegisterListPref(prefs::kDeskAPIThirdPartyAllowlist); @@ -2219,7 +2277,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref(policy::policy_prefs::kFloatingWorkspaceEnabled, false); ::reporting::RegisterProfilePrefs(registry); - registry->RegisterBooleanPref(prefs::kFloatingSsoEnabled, false); + registry->RegisterBooleanPref(chromeos::prefs::kFloatingSsoEnabled, false); registry->RegisterListPref(prefs::kFloatingSsoDomainBlocklist); registry->RegisterListPref(prefs::kFloatingSsoDomainBlocklistExceptions); registry->RegisterBooleanPref(prefs::kFloatingSsoSessionCookiesIncluded, @@ -2387,6 +2445,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kManagedLocalNetworkAccessRestrictionsEnabled, false); + registry->RegisterBooleanPref( + prefs::kManagedLocalNetworkAccessRestrictionsTemporaryOptOut, false); + #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, false); @@ -2415,11 +2476,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref(prefs::kViewSourceLineWrappingEnabled, false); -#if BUILDFLAG(IS_ANDROID) - registry->RegisterBooleanPref( - omnibox::kIsOmniboxInBottomPosition, false, - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); -#endif + // TODO(crbug.com/442891187): Move these to appropriate manager files when + // the policies logic is implemented. + registry->RegisterListPref(policy::policy_prefs::kIncognitoModeBlocklist); + registry->RegisterListPref(policy::policy_prefs::kIncognitoModeAllowlist); } void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -2592,6 +2652,9 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) { local_state->ClearPref(kAutoScreenBrightnessMetricsKohakuUserAdjustmentCount); #endif // BUILDFLAG(IS_CHROMEOS) + // Added 09/2025 + local_state->ClearPref(kRendererCodeIntegrityEnabledNeedsDeletion); + // Please don't delete the following line. It is used by PRESUBMIT.py. // END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS @@ -2617,6 +2680,11 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, // BEGIN_MIGRATE_OBSOLETE_PROFILE_PREFS // Please don't delete the preceding line. It is used by PRESUBMIT.py. + // Added 10/2025. + profile_prefs->ClearPref(kSessionRestoreTurnOffFromRestartInfoBarTimesShown); + profile_prefs->ClearPref(kSessionRestoreTurnOffFromSessionInfoBarTimesShown); + profile_prefs->ClearPref(kSessionRestorePrefChanged); + // Added 05/2025. profile_prefs->ClearPref(kPrivacySandboxFakeNoticePromptShownTimeSync); profile_prefs->ClearPref(kPrivacySandboxFakeNoticePromptShownTime); @@ -2641,16 +2709,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, MigrateDefaultBrowserLastDeclinedPref(profile_prefs); #endif -#if BUILDFLAG(IS_ANDROID) - // Added 11/2023, but DO NOT REMOVE after the usual year! - // TODO(crbug.com/378653046): This call should be removed once enough time - // has passed. - password_manager_android_util::MaybeDeleteLoginDatabases( - profile_prefs, profile_path, - std::make_unique< - password_manager_android_util::PasswordManagerUtilBridge>()); -#endif - #if !BUILDFLAG(IS_ANDROID) // Added 07/2024. profile_prefs->ClearPref(kNtpRecipesDismissedTasks); @@ -3000,9 +3058,30 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, profile_prefs->ClearPref(kDesksLacrosProfileIdList); #endif // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_ANDROID) + // Added 09/2025. + profile_prefs->ClearPref(kObsoleteUpmUnmigratedPasswordsExported); + profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores); + profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase); + profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion); + base::DeleteFile(profile_path.Append(FILE_PATH_LITERAL("Login Data"))); + base::DeleteFile( + profile_path.Append(FILE_PATH_LITERAL("Login Data For Account"))); + base::DeleteFile( + profile_path.Append(FILE_PATH_LITERAL("Login Data-journal"))); + base::DeleteFile( + profile_path.Append(FILE_PATH_LITERAL("Login Data For Account-journal"))); +#endif // BUILDFLAG(IS_ANDROID) + + // Added 09/2025. + PageColorsController::MigrateObsoleteProfilePrefs(profile_prefs); + profile_prefs->ClearPref(kGaiaCookieLastListAccountsData); + // Added 09/2025. profile_prefs->ClearPref(kLensOverlayEduActionChipShownCount); + SigninPrefs(*profile_prefs).MigrateObsoleteSigninPrefs(); + // 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 43e893f4..32421686 100755 --- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc +++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc @@ -180,6 +180,8 @@ #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h" #include "components/facilitated_payments/core/features/features.h" #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h" +#include "components/fingerprinting_protection_filter/interventions/browser/interventions_web_contents_helper.h" +#include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h" #include "components/ip_protection/common/ip_protection_status.h" #include "components/page_load_metrics/browser/features.h" #include "components/sensitive_content/android/android_sensitive_content_client.h" @@ -236,7 +238,6 @@ #endif #if BUILDFLAG(ENABLE_EXTENSIONS) -#include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" #include "chrome/browser/extensions/app_tab_helper.h" #include "chrome/browser/extensions/navigation_extension_enabler.h" #include "chrome/browser/ui/extensions/extension_side_panel_utils.h" @@ -248,6 +249,7 @@ #endif #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) +#include "chrome/browser/extensions/api/web_navigation/web_navigation_tab_observer.h" #include "chrome/browser/extensions/tab_helper.h" #include "extensions/browser/view_type_utils.h" #endif @@ -379,6 +381,13 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { profile->IsIncognitoProfile()); } + if (fingerprinting_protection_interventions::features:: + ShouldBlockCanvasReadbackForIncognitoState( + profile->IsIncognitoProfile())) { + fingerprinting_protection_interventions::InterventionsWebContentsHelper:: + CreateForWebContents(web_contents, profile->IsIncognitoProfile()); + } + // Only create the IpProtectionStatus if the User Bypass feature is enabled. if (net::features::kIpPrivacyEnableUserBypass.Get()) { ip_protection::IpProtectionStatus::CreateForWebContents(web_contents); @@ -464,13 +473,11 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { CreateForWebContents(web_contents); #if BUILDFLAG(IS_ANDROID) - // If enabled, save sensitivity data for each non-incognito non-custom - // android tab + // If enabled, save sensitivity data for each non-incognito android tab. // TODO(crbug.com/40276584): Consider moving check conditions or the // registration logic to sensitivity_persisted_tab_data_android.* if (!profile->IsOffTheRecord()) { - if (auto* tab = TabAndroid::FromWebContents(web_contents); - (tab && !tab->IsCustomTab())) { + if (auto* tab = TabAndroid::FromWebContents(web_contents); tab) { SensitivityPersistedTabDataAndroid::From( tab, base::BindOnce( @@ -761,13 +768,13 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::AppTabHelper::CreateForWebContents(web_contents); extensions::NavigationExtensionEnabler::CreateForWebContents(web_contents); - extensions::WebNavigationTabObserver::CreateForWebContents(web_contents); web_app::WindowManagementContentSettingObserver::CreateForWebContents( web_contents); #endif #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) - // extensions::TabHelper is used on Win/Mac/Linux and desktop Android. + // These helpers are used on Win/Mac/Linux and also desktop Android. + extensions::WebNavigationTabObserver::CreateForWebContents(web_contents); extensions::TabHelper::CreateForWebContents(web_contents); #endif diff --git a/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl b/tools/under-control/src/chrome/common/extensions/api/autofill_private.idl index 26470970..0b112183 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 @@ -151,6 +151,12 @@ namespace autofillPrivate { REDRESS_NUMBER, ADDRESS_HOME_ZIP_PREFIX, ADDRESS_HOME_ZIP_SUFFIX, + FLIGHT_RESERVATION_FLIGHT_NUMBER, + FLIGHT_RESERVATION_TICKET_NUMBER, + FLIGHT_RESERVATION_CONFIRMATION_CODE, + FLIGHT_RESERVATION_PASSENGER_NAME, + FLIGHT_RESERVATION_DEPARTURE_AIRPORT, + FLIGHT_RESERVATION_ARRIVAL_AIRPORT, MAX_VALID_FIELD_TYPE }; diff --git a/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl b/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl index dfd57ec2..ee303f5e 100755 --- a/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/autotest_private.idl @@ -464,7 +464,7 @@ namespace autotestPrivate { long id; // The name of the window object -- typically internal class name of the - // window (like 'BrowserFrame'). + // window (like 'BrowserWidget'). DOMString name; AppWindowType windowType; diff --git a/tools/under-control/src/chrome/common/extensions/api/developer_private.idl b/tools/under-control/src/chrome/common/extensions/api/developer_private.idl index b9c4ce84..0a9e404c 100755 --- a/tools/under-control/src/chrome/common/extensions/api/developer_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/developer_private.idl @@ -820,6 +820,12 @@ namespace developerPrivate { static void uploadExtensionToAccount(DOMString extensionId, BoolCallback callback); + // Shows the site settings for the extension. + [platforms=("desktop_android")] + static void showSiteSettings( + DOMString extensionId + ); + [nocompile, deprecated="Use openDevTools"] static void inspect(InspectOptions options, optional VoidCallback callback); diff --git a/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl b/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl index 7f836ea1..df720337 100755 --- a/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl +++ b/tools/under-control/src/chrome/common/extensions/api/experimental_actor.idl @@ -10,22 +10,6 @@ namespace experimentalActor { callback TaskIdCallback = void(long taskId); interface Functions { - // Creates and starts a new task. By default, opens a new tab to - // about:blank that is ready for actions. The startTaskProto can - // optionally specify a tab_id to use an existing tab instead of creating - // a new one. - // startTaskProto: encoded optimization_guide.proto.BrowserStartTask - // startTaskcallback: - // encoded optimization_guide.proto.BrowserStartTaskResult - [deprecated="Use createTask instead"] 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 - [deprecated="Use performActions instead"] 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. diff --git a/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl b/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl index c8c56f65..fe6e3b18 100755 --- a/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/passwords_private.idl @@ -280,6 +280,11 @@ namespace passwordsPrivate { // passkey. Specified in milliseconds since the UNIX epoch. Intended to be // passed to the JavaScript Date() constructor. double? creationTime; + + // Indicates that the credential was marked for deletion (e.g. by a website) + // and should be marked as such in management surfaces. Used for passkeys + // only. Always false for other credential types. + boolean hidden; }; // Group representing affiliated PasswordUiEntries. diff --git a/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl b/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl index df879af1..b9b5a133 100755 --- a/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl +++ b/tools/under-control/src/chrome/common/extensions/api/pdf_viewer_private.idl @@ -16,7 +16,9 @@ namespace pdfViewerPrivate { }; // Enumeration of save to drive error types. Must match `SaveToDriveErrorType` - // in tools/typescript/definitions/pdf_viewer_private.d.ts. + // in tools/typescript/definitions/pdf_viewer_private.d.ts and + // `PdfSaveToDriveErrorType` in + // tools/metrics/histograms/metadata/pdf/enums.xml. enum SaveToDriveErrorType { NO_ERROR, UNKNOWN_ERROR, @@ -28,7 +30,9 @@ namespace pdfViewerPrivate { }; // Enumeration of save to drive status. Must match `SaveToDriveStatus` in - // tools/typescript/definitions/pdf_viewer_private.d.ts. + // tools/typescript/definitions/pdf_viewer_private.d.ts and + // `PdfSaveToDriveStatus` in + // tools/metrics/histograms/metadata/pdf/enums.xml. enum SaveToDriveStatus { NOT_STARTED, INITIATED, @@ -53,17 +57,40 @@ namespace pdfViewerPrivate { // The error type of the upload. SaveToDriveErrorType errorType; - // The ID of the drive item that was uploaded. + // The ID of the drive item that was uploaded. It is only set if the upload + // was successful, i.e. if `status` is `UPLOAD_COMPLETED`. DOMString? driveItemId; - // The total size of the file in bytes. + // The total size of the file in bytes. It is only set if the upload is in + // progress or completed, i.e. if `status` is `UPLOAD_STARTED`, + // `UPLOAD_IN_PROGRESS`, or `UPLOAD_COMPLETED`. long? fileSizeBytes; - // The number of bytes that have been uploaded. + // The number of bytes that have been uploaded. It is only set if the upload + // is in progress or completed, i.e. if `status` is `UPLOAD_STARTED`, + // `UPLOAD_IN_PROGRESS`, or `UPLOAD_COMPLETED`. long? uploadedBytes; - // The localized metadata and progress of the file. + // The localized metadata and progress of the file. It is only set if the + // upload is in progress or completed, i.e. if `status` is `UPLOAD_STARTED`, + // `UPLOAD_IN_PROGRESS`, or `UPLOAD_COMPLETED`. DOMString? fileMetadata; + + // The name of the file. It is only set if the upload was successful, i.e. + // if `status` is `UPLOAD_COMPLETED`. + DOMString? fileName; + + // The name of the parent folder. It is only set if the upload was + // successful, i.e. if `status` is `UPLOAD_COMPLETED`. + DOMString? parentFolderName; + + // The email of the account that is chosen to save the PDF to Drive. It is + // only set after the account is selected. + DOMString? accountEmail; + + // Whether the account is a managed account. It is only set after the + // account is selected. + boolean? accountIsManaged; }; // Nearly identical to mimeHandlerPrivate.StreamInfo, but without a mime type @@ -112,9 +139,11 @@ namespace pdfViewerPrivate { DOMString url, IsAllowedLocalFileAccessCallback callback); - // Sends a request to save the PDF to Google Drive. + // Sends a request to save the PDF to Google Drive if `saveRequestType` is + // set. Otherwise, if `saveRequestType` is not set, the default action is + // to cancel the existing upload. static void saveToDrive( - SaveRequestType saveRequestType, + optional SaveRequestType saveRequestType, optional VoidCallback callback); // Sets the current tab title to `title` for a full-page PDF. diff --git a/tools/under-control/src/chrome/common/extensions/api/scripting.idl b/tools/under-control/src/chrome/common/extensions/api/scripting.idl index f029ede3..e8924d63 100755 --- a/tools/under-control/src/chrome/common/extensions/api/scripting.idl +++ b/tools/under-control/src/chrome/common/extensions/api/scripting.idl @@ -182,15 +182,6 @@ namespace scripting { callback UpdateContentScriptsCallback = void(); - interface Properties { - // An object available for content scripts running in isolated worlds to use - // and modify as a JS object. One instance exists per frame and is shared - // between all content scripts for a given extension. This object is - // initialized when the frame is created, before document_start. - // TODO(crbug.com/40119604): Enable this once implementation is complete. - [nodoc, nocompile] static long globalParams(); - }; - interface Functions { // Injects a script into a target context. By default, the script will be run // at document_idle, or immediately if the page has already diff --git a/tools/under-control/src/chrome/common/extensions/api/side_panel.idl b/tools/under-control/src/chrome/common/extensions/api/side_panel.idl index c0c89373..7d41beb7 100755 --- a/tools/under-control/src/chrome/common/extensions/api/side_panel.idl +++ b/tools/under-control/src/chrome/common/extensions/api/side_panel.idl @@ -108,6 +108,22 @@ namespace sidePanel { DOMString path; }; + // Information about the closed side panel. It is fired when the extension's + // side panel is closed. + dictionary PanelClosedInfo { + // The ID of the window where the side panel was closed. This is available + // for both global and tab-specific panels. + long windowId; + + // The optional ID of the tab where the side panel was closed. This is + // provided only when the panel is tab-specific. + long? tabId; + + // The path of the local resource within the extension package whose content + // is displayed in the panel. + DOMString path; + }; + callback VoidCallback = void(); callback PanelOptionsCallback = void(PanelOptions options); callback PanelBehaviorCallback = void(PanelBehavior behavior); @@ -165,5 +181,8 @@ namespace sidePanel { interface Events { // Fired when the extension's side panel is opened. static void onOpened(PanelOpenedInfo info); + + // Fired when the extension's side panel is closed. + [nodoc] static void onClosed(PanelClosedInfo info); }; }; 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 a2e75788..58e46669 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 @@ -127,6 +127,8 @@ #include "components/variations/variations_switches.h" #include "components/version_info/version_info.h" #include "components/visitedlink/renderer/visitedlink_reader.h" +#include "components/wallet/content/renderer/image_extractor.h" +#include "components/wallet/core/common/wallet_features.h" #include "components/web_cache/renderer/web_cache_impl.h" #include "components/webapps/renderer/web_page_metadata_agent.h" #include "content/public/common/content_constants.h" @@ -185,6 +187,12 @@ #include "url/origin.h" #include "v8/include/v8-isolate.h" +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) +#include "components/webapps/isolated_web_apps/scheme.h" +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) + #if BUILDFLAG(IS_ANDROID) #include "chrome/renderer/sandbox_status_extension_android.h" #include "chrome/renderer/wallet/boarding_pass_extractor.h" @@ -415,8 +423,12 @@ void ChromeContentRendererClient::RenderThreadStarted() { extensions_renderer_client->RenderThreadStarted(); WebSecurityPolicy::RegisterURLSchemeAsExtension( WebString::FromASCII(extensions::kExtensionScheme)); +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) WebSecurityPolicy::RegisterURLSchemeAsIsolatedApp( - WebString::FromASCII(chrome::kIsolatedAppScheme)); + WebString::FromASCII(webapps::kIsolatedAppScheme)); +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) WebSecurityPolicy::RegisterURLSchemeAsCodeCacheWithHashing( WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -487,6 +499,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString chrome_search_scheme( WebString::FromASCII(chrome::kChromeSearchScheme)); +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) // IWAs can be enabled by either the feature flag or by enterprise // policy. In either case the kEnableIsolatedWebAppsInRenderer flag is passed // to the renderer process. @@ -495,7 +509,7 @@ void ChromeContentRendererClient::RenderThreadStarted() { // isolated-app: is the scheme used for Isolated Web Apps, which are web // applications packaged in Signed Web Bundles. WebString isolated_app_scheme( - WebString::FromASCII(chrome::kIsolatedAppScheme)); + WebString::FromASCII(webapps::kIsolatedAppScheme)); // Resources contained in Isolated Web Apps are HTTP-like and safe to expose // to the fetch API. WebSecurityPolicy::RegisterURLSchemeAsSupportingFetchAPI( @@ -505,6 +519,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebSecurityPolicy::RegisterURLSchemeAsAllowedForReferrer( isolated_app_scheme); } +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) // The Instant process can only display the content but not read it. Other // processes can't display it or read it. (see http://crbug.com/40309067 for @@ -707,6 +723,11 @@ void ChromeContentRendererClient::RenderFrameCreated( subresource_filter_agent->Initialize(); } + if (!render_frame->IsInFencedFrameTree()) { + content_based_fingerprinting_protection_enabled_for_metrics_ = + render_frame->GetBlinkPreferences() + .content_based_fingerprinting_protection_enabled; + } if (render_frame->IsMainFrame() && !render_frame->IsInFencedFrameTree()) { // This web pref applies at the level of the current browser session and may // change when settings are modified, so we copy the latest value every time @@ -763,6 +784,11 @@ void ChromeContentRendererClient::RenderFrameCreated( } #endif + if (base::FeatureList::IsEnabled(wallet::kWalletablePassDetection) && + render_frame->IsMainFrame()) { + wallet::ImageExtractor::Create(render_frame, registry); + } + #if !BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled(features::kWebium)) { WebUIBrowserRendererExtension::Create(render_frame); @@ -1656,6 +1682,11 @@ bool ChromeContentRendererClient:: return content_based_fingerprinting_protection_enabled_; } +bool ChromeContentRendererClient:: + IsContentBasedFingerprintingProtectionEnabledForMetrics() { + return content_based_fingerprinting_protection_enabled_for_metrics_; +} + scoped_refptr ChromeContentRendererClient::GetFingerprintingProtectionRuleset() { if (fingerprinting_protection_ruleset_dealer_) { diff --git a/tools/under-control/src/components/policy/resources/templates/messages.yaml b/tools/under-control/src/components/policy/resources/templates/messages.yaml index 64d34247..a08946e8 100755 --- a/tools/under-control/src/components/policy/resources/templates/messages.yaml +++ b/tools/under-control/src/components/policy/resources/templates/messages.yaml @@ -183,6 +183,11 @@ doc_schema_description_link: containing the information about schema and formatting. text: See $6https://cloud.google.com/docs/chrome-enterprise/policies/?policy=WallpaperImage for more information about schema and formatting. +doc_sensitive: + desc: A flag that indicates that this policy is only supported for users that + are part of an Active Directory domain on Windows, managed on the Mac, or + enrolled in Chrome Enterprise Core. + text: Sensitive doc_since_version: desc: Text in the summary chart of a policy that specifies the version number in which the policy was introduced. 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 06abbfda..28503f05 100755 --- a/tools/under-control/src/components/policy/resources/templates/policies.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policies.yaml @@ -1389,6 +1389,17 @@ policies: 1388: NTPShortcuts 1389: AutoSignOutEnabled 1390: ExtensionInstallCloudPolicyChecksEnabled + 1391: DevToolsGoogleDeveloperProgramProfileAvailability + 1392: IncognitoModeBlocklist + 1393: IncognitoModeAllowlist + 1394: PreferSlowKexAlgorithms + 1395: ExtensionForceInstallWithNonMalwareViolationsEnabled + 1396: CacheEncryptionEnabled + 1397: SilentPrintingEnabled + 1398: PreferSlowCiphers + 1399: DeveloperToolsAvailabilityAllowlist + 1400: DeveloperToolsAvailabilityBlocklist + 1401: LocalNetworkAccessRestrictionsTemporaryOptOut atomic_groups: 1: Homepage 2: RemoteAccess diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardAllowedForUrls.yaml index 19e786dc..2d388ed9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardAllowedForUrls.yaml @@ -24,5 +24,6 @@ schema: supported_on: - chrome.*:103- - chrome_os:103- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardBlockedForUrls.yaml index 9e148709..b256473c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ClipboardBlockedForUrls.yaml @@ -23,5 +23,6 @@ schema: supported_on: - chrome.*:103- - chrome_os:103- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultClipboardSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultClipboardSetting.yaml index b8bd01e8..4d4fc21c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultClipboardSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultClipboardSetting.yaml @@ -30,5 +30,6 @@ schema: supported_on: - chrome.*:103- - chrome_os:103- +- android:142- tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultNotificationsSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultNotificationsSetting.yaml index 187d7324..2f19ec9d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultNotificationsSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultNotificationsSetting.yaml @@ -32,5 +32,6 @@ schema: supported_on: - chrome.*:10- - chrome_os:11- +- android:142- tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsAllowedForUrls.yaml index b2110727..b1bbf9e7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsAllowedForUrls.yaml @@ -23,5 +23,6 @@ schema: supported_on: - chrome.*:16- - chrome_os:16- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsBlockedForUrls.yaml index 3e175e45..ece6b3c3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/NotificationsBlockedForUrls.yaml @@ -23,5 +23,6 @@ schema: supported_on: - chrome.*:16- - chrome_os:16- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/.group.details.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/.group.details.yaml new file mode 100755 index 00000000..47077e7c --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/.group.details.yaml @@ -0,0 +1,2 @@ +caption: Cryptography compliance policies +desc: Configures user and device policies related to specific cryptographic compliance regimes diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowCiphers.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowCiphers.yaml new file mode 100755 index 00000000..f53f2a0a --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowCiphers.yaml @@ -0,0 +1,44 @@ +caption: Prefer specific encryption cipher algorithms for TLS +desc: |- + This policy configures $1Google Chrome to order its preferred encryption ciphers in TLS 1.3 to reflect a preference for algorithms that have been approved by a specific compliance regime. + + Setting this policy does not guarantee that any specific algorithms will be negotiated. + + This policy exists to allow server operators who wish to support clients with and without compliance requirements to differentiate between those clients, and only use certain non-default algorithms with increased cryptographic strength for those explicitly configured to prefer them. + + Setting the policy to 'cnsa' configures $1Google Chrome to prefer ciphers required for compliance with the Commercial National Security Algorithm Suite versions 1.0 and 2.0 (CNSA 1.0 and 2.0). + + Not setting the policy, or setting it to 'default', configures $1Google Chrome to use its default ciphers. + + Setting this policy is not required for security. The default cryptography used by $1Google Chrome is strong enough to withstand a brute force attack using the entire power of the Sun. + + Setting this policy will cause $1Google Chrome to be slower when accessing websites. + + This policy only affects TLS 1.3 and QUIC; it does not affect earlier versions of TLS. + +example_value: cnsa +features: + dynamic_refresh: true + per_profile: false +items: +- caption: Prefer ciphers satisfying the requirements of CNSA 1.0 and 2.0 + name: CNSA + value: cnsa +- caption: Use $1Google Chrome's default cipher order + name: Default + value: default +owners: +- file://crypto/OWNERS +- trusty-transport@chromium.org +future_on: +- android +- chrome.* +- chrome_os +schema: + enum: + - cnsa + - default + type: string +tags: +- system-security +type: string-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowKexAlgorithms.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowKexAlgorithms.yaml new file mode 100755 index 00000000..bb825026 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CryptographyCompliance/PreferSlowKexAlgorithms.yaml @@ -0,0 +1,46 @@ +caption: Prefer specific key exchange algorithms for TLS +desc: |- + This policy configures $1Google Chrome to order its preferred key agreement algorithms (supported groups) in TLS 1.3 to reflect a preference for algorithms that have been approved by a specific compliance regime. + + Setting this policy does not guarantee that any specific algorithms will be negotiated. + + This policy exists to allow server operators who wish to support clients with and without compliance requirements to differentiate between those clients, and only use certain non-default algorithms with increased cryptographic strength for those explicitly configured to prefer them. + + Setting the policy to 'cnsa2' configures $1Google Chrome to prefer key exchange methods required for compliance with the Commercial National Security Algorithm Suite 2.0 (CNSA 2.0). + + Not setting the policy, or setting it to 'default', configures $1Google Chrome to use its default key exchange methods. + + If this policy is set to a value that would configure $1Google Chrome to prefer a post-quantum key agreement algorithm but PostQuantumKeyAgreementEnabled is Disabled, the setting of PostQuantumKeyAgreementEnabled takes precedence. + + Setting this policy is not required for security. The default cryptography used by $1Google Chrome is strong enough to withstand a brute force attack using the entire power of the Sun. + + Setting this policy will cause $1Google Chrome to be slower when accessing websites. + + This policy only affects TLS 1.3 and QUIC; it does not affect earlier versions of TLS. + +example_value: cnsa2 +features: + dynamic_refresh: true + per_profile: false +items: +- caption: Prefer key exchange methods satisfying the requirements of CNSA 2.0 + name: CNSA2.0 + value: cnsa2 +- caption: Use $1Google Chrome's default supported groups + name: Default + value: default +owners: +- file://crypto/OWNERS +- trusty-transport@chromium.org +future_on: +- android +- chrome.* +- chrome_os +schema: + enum: + - cnsa2 + - default + type: string +tags: +- system-security +type: string-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml index fcb99848..69b09136 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DefaultSearchProvider/DefaultSearchProviderEnabled.yaml @@ -28,6 +28,7 @@ owners: - rsorokin@chromium.org schema: type: boolean +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/BlockExternalExtensions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/BlockExternalExtensions.yaml index a06e3c2c..ca369341 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/BlockExternalExtensions.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/BlockExternalExtensions.yaml @@ -13,8 +13,6 @@ example_value: true features: dynamic_refresh: false per_profile: true -future_on: -- fuchsia items: - caption: Block installation of external extensions value: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionAllowedTypes.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionAllowedTypes.yaml index f7f6039a..e3d92463 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionAllowedTypes.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionAllowedTypes.yaml @@ -28,8 +28,6 @@ example_value: features: dynamic_refresh: true per_profile: true -future_on: -- fuchsia items: - caption: Extension name: extension diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionExtendedBackgroundLifetimeForPortConnectionsToUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionExtendedBackgroundLifetimeForPortConnectionsToUrls.yaml index cfe942cc..8fa5a17c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionExtendedBackgroundLifetimeForPortConnectionsToUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionExtendedBackgroundLifetimeForPortConnectionsToUrls.yaml @@ -24,8 +24,6 @@ features: supported_on: - chrome.*:112- - chrome_os:112- -future_on: -- fuchsia owners: - mpetrisor@chromium.org - chromeos-commercial-identity@google.com diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionForceInstallWithNonMalwareViolationsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionForceInstallWithNonMalwareViolationsEnabled.yaml new file mode 100755 index 00000000..3f1e7994 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionForceInstallWithNonMalwareViolationsEnabled.yaml @@ -0,0 +1,51 @@ +caption: Enable Force-installed Extensions With Non-Malware Violations + +desc: |- + Controls whether extensions that are taken down due to non-malware violations can still be force installed in low-trust environments. + + More information about non-malware violations and taken down can be found here. https://developer.chrome.com/docs/webstore/review-process#warning + + Once the non-malware violation has been resolved, the extension will remain enabled and cannot be disabled or removed. + + On Microsoft® Windows®, this policy is not available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core`. + + On macOS, this policy is not available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core. + + Force-installed extensions with non-malware violations will remain enabled in these instances. + + Currently, a force-installed extension with non-malware violations remains installed and enabled in Chrome. + + Setting the policy to Enabled will cause force-installed extensions to behave the same (i.e., remain enabled) regardless of non-malware violations. + + Setting the policy to Disabled or not setting the policy will cause force-installed extensions with non-malware violations to be disabled. + + This policy will be available for 3 milestones. + +owners: +- richche@google.com +- file://extensions/OWNERS + +supported_on: +- chrome.mac:142- +- chrome.win:142- + +features: + dynamic_refresh: true + per_profile: true + +type: main + +schema: + type: boolean + +items: +- caption: Enable force-installed extensions with non-malware violations. + value: true +- caption: Disable force-installed extensions with non-malware violations. + value: false + +default: false + +example_value: false + +tags: [] 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 20a826c5..68d09b62 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 @@ -13,7 +13,6 @@ features: per_profile: true future_on: - android -- fuchsia label: Extension IDs to exempt from the blocklist owners: - rdevlin.cronin@chromium.org 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 58db0d85..771d0455 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 @@ -13,7 +13,6 @@ features: per_profile: true future_on: - android -- fuchsia label: Extension IDs the user should be prevented from installing (or * for all) owners: - lazyboy@chromium.org 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 4b7aacfa..4bc3f295 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 @@ -27,7 +27,6 @@ features: per_profile: true future_on: - android -- fuchsia label: Extension/App IDs and update URLs to be silently installed owners: - karandeepb@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallSources.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallSources.yaml index b72ca784..47ef3289 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallSources.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionInstallSources.yaml @@ -10,8 +10,6 @@ example_value: features: dynamic_refresh: true per_profile: true -future_on: -- fuchsia label: URL patterns to allow extension, app, and user script installs from owners: - dbertoni@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionManifestV2Availability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionManifestV2Availability.yaml index 7077a777..ebc2a63a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionManifestV2Availability.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionManifestV2Availability.yaml @@ -20,8 +20,6 @@ supported_on: - chrome.*:110-138 - chrome_os:110-138 deprecated: true -future_on: -- fuchsia features: dynamic_refresh: true per_profile: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml index 7b2d947d..f16b6bb8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/ExtensionSettings.yaml @@ -62,7 +62,6 @@ features: per_profile: true future_on: - android -- fuchsia owners: - finnur@chromium.org - file://extensions/OWNERS @@ -101,6 +100,7 @@ schema: enum: - force_pinned - default_unpinned + - default_pinned type: string update_url: type: string 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 8dd7ffd9..709f9659 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,7 +14,6 @@ features: per_profile: true future_on: - android -- fuchsia - chrome.* supported_on: - chrome_os:114- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/policy_atomic_groups.yaml index d5b9dbee..dd0cf04c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Extensions/policy_atomic_groups.yaml @@ -11,3 +11,4 @@ Extensions: - ExtensionManifestV2Availability - ExtensionUnpublishedAvailability - ExtensionExtendedBackgroundLifetimeForPortConnectionsToUrls + - ExtensionForceInstallWithNonMalwareViolationsEnabled diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml index 743bd486..7c65bc15 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FirstPartySets/FirstPartySetsOverrides.yaml @@ -121,5 +121,6 @@ schema: type: object type: array type: object +sensitive: true tags: [] type: dict diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/AutoSignOutEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/AutoSignOutEnabled.yaml index 4b4c436e..f1f94384 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/AutoSignOutEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/AutoSignOutEnabled.yaml @@ -10,8 +10,8 @@ example_value: true features: dynamic_refresh: true per_profile: true -future_on: -- chrome_os +supported_on: +- chrome_os:142- items: - caption: Sign out user from previous session upon sign-in to a new device value: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml index d7acda05..8ac89c54 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/DevToolsGenAiSettings.yaml @@ -1,7 +1,7 @@ -caption: Settings for DevTools Generative AI Features +caption: Settings for Chrome DevTools Generative AI Features desc: |- - These features in $1Google Chrome's DevTools employ generative AI models to provide additional debugging information. To use these features, $1Google Chrome has to collect data such as error messages, stack traces, code snippets, and network requests and send them to a server owned by Google, which runs a generative AI model. Response body or authentication and cookie headers in network requests are not included in the data sent to the server. + These features in Chrome DevTools employ generative AI models to provide additional debugging information. To use these features, $1Google Chrome has to collect data such as error messages, stack traces, code snippets, and network requests and send them to a server owned by Google, which runs a generative AI model. Response body or authentication and cookie headers in network requests are not included in the data sent to the server. 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. @@ -11,7 +11,7 @@ desc: |- If the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. - DevTools Generative AI features include: + Chrome DevTools Generative AI features include: - Console Insights: explains console messages and offers suggestions on how to fix console errors. @@ -24,13 +24,13 @@ features: dynamic_refresh: true per_profile: true items: -- caption: Allow DevTools Generative AI Features and improve AI models. +- caption: Allow Chrome DevTools Generative AI Features and improve AI models. name: Allowed value: 0 -- caption: Allow DevTools Generative AI Features without improving AI models. +- caption: Allow Chrome DevTools Generative AI Features without improving AI models. name: AllowedWithoutLogging value: 1 -- caption: Do not allow DevTools Generative AI Features. +- caption: Do not allow Chrome DevTools Generative AI Features. name: Disabled value: 2 owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAILocalFoundationalModelSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAILocalFoundationalModelSettings.yaml index d165ff51..91867884 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAILocalFoundationalModelSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAILocalFoundationalModelSettings.yaml @@ -7,7 +7,7 @@ desc: |- When the policy is set to Disabled (1), the model will not be downloaded. - Model downloading can also be disabled by ComponentUpdatesEnabled. + On desktop platforms, model downloading can also be disabled by ComponentUpdatesEnabled. default: 0 example_value: 1 @@ -32,5 +32,6 @@ schema: type: integer tags: [] supported_on: +- android:142- - chrome.*:124- type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml index 8d1624d5..1db89452 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiChromeOsSmartActionsSettings.yaml @@ -1,6 +1,6 @@ -caption: Settings for Scanner feature +caption: Settings for the Text Capture feature desc: |- - This policy controls the settings of the Scanner feature for $1Google ChromeOS. + This policy controls the settings of the Text Capture feature for $1Google ChromeOS. 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. @@ -20,13 +20,13 @@ features: owners: - file://ash/scanner/OWNERS items: -- caption: Allow Scanner and improve AI models. +- caption: Allow Text Capture and improve AI models. name: Allowed value: 0 -- caption: Allow Scanner without improving AI models. +- caption: Allow Text Capture without improving AI models. name: AllowedWithoutLogging value: 1 -- caption: Do not allow Scanner. +- caption: Do not allow Text Capture. name: Disabled value: 2 schema: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsEnabled.yaml index 2bb4de61..ebc90914 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsEnabled.yaml @@ -8,7 +8,7 @@ caption: Specifies whether to apply restrictions to requests to local desc: |- When this policy is set to Enabled, any time when a warning is supposed to be - displayed in the DevTools due to Chrome DevTools due to Local Network Access checks failing, the main request will be blocked instead. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml new file mode 100755 index 00000000..5a29914d --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessRestrictionsTemporaryOptOut.yaml @@ -0,0 +1,57 @@ +owners: +- hchao@chromium.org +- cthomp@chromium.org +- chrome-secure-web-and-net@chromium.org + +caption: Specifies whether to (temporarily) opt out of Local Network Access + restrictions + +desc: |- + When this policy is set to Enabled, Local Network Access + requests will only display warnings in Chrome DevTools due to Local Network Access checks failing. + + When this policy is set to Disabled or unset, Local Network Access requests will use the + default handling of these requests. + + See https://wicg.github.io/local-network-access/ for Local Network Access restrictions. + + This enterprise policy is temporary, and will be removed after M146. + + Long term, the policy LocalNetworkAccessAllowedForUrls + can be used to allowlist URL patterns that should be automatically granted + the Local Network Access permission. + + Note that if the policy LocalNetworkAccessRestrictionsEnabled + is enabled, it will take precedence over this policy. +default: false + +supported_on: +- chrome.*:142- +- chrome_os:142- +- android:142- + +features: + dynamic_refresh: true + per_profile: true + +type: main + +schema: + type: boolean + +items: +- caption: Temporarily opt out of restrictions on requests to local network endpoints + value: true +- caption: Use default behavior when determining if websites can make requests + to local network endpoints + value: false + +example_value: true + +tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml index 9b5c40fd..3bbda7fb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/policy_atomic_groups.yaml @@ -4,3 +4,4 @@ LocalNetworkAccessSettings: - LocalNetworkAccessAllowedForUrls - LocalNetworkAccessBlockedForUrls - LocalNetworkAccessRestrictionsEnabled + - LocalNetworkAccessRestrictionsTemporaryOptOut diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml index 0d4b4c31..9a7b2905 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoOpenFileTypes.yaml @@ -23,6 +23,7 @@ schema: items: type: string type: array +sensitive: true supported_on: - chrome.*:84- - chrome_os:84- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CacheEncryptionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CacheEncryptionEnabled.yaml new file mode 100755 index 00000000..f9f38ac3 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CacheEncryptionEnabled.yaml @@ -0,0 +1,31 @@ +caption: This policy allows administrators to encrypt http cache on disk. +desc: |- + This policy allows the administrators to encrypt browser http cache on disk. + http cache on supported platforms. + + When this policy is Enabled, browser cache will be encrypted. + + When this policy is Disabled or not set, browser cache + will not be encrypted. + + Browser cache encryption may result in a performance impact. +owners: +- haihan@google.com +- valadkevich@google.com +- cbe-cep-eng@google.com +future_on: +- chrome.* +features: + dynamic_refresh: true + per_profile: true +type: main +schema: + type: boolean +items: +- caption: Use the cache encryption. + value: true +- caption: Do not use the cache encryption. + value: false +default: false +example_value: true +tags: [] \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml index 85af4013..cf368390 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CommandLineFlagSecurityWarningsEnabled.yaml @@ -25,6 +25,7 @@ owners: - proberge@chromium.org schema: type: boolean +sensitive: true supported_on: - chrome.*:76- tags: 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 99062d3c..6d5ef024 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 @@ -189,6 +189,8 @@ schema: type: object type: object type: array +future_on: +- ios supported_on: - android:140- - chrome.*:128- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevToolsGoogleDeveloperProgramProfileAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevToolsGoogleDeveloperProgramProfileAvailability.yaml new file mode 100755 index 00000000..143a1f07 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevToolsGoogleDeveloperProgramProfileAvailability.yaml @@ -0,0 +1,39 @@ +caption: Enable Google Developer Program Profiles in Chrome DevTools +desc: |- + This policy controls the integration of the Google Developer Program with Chrome DevTools. The user's Google Developer Program profile is shown in Chrome DevTools, and users receive badges for performing specific actions within Chrome DevTools. + + Setting the policy to 0 - 'Enabled', or not setting any policy value, allows the integration of the Google Developer Program with Chrome DevTools, and allows sharing of Chrome DevTools tool usage in order to be able to award badges. + + Setting the policy to 1 - 'Enabled without badges', allows the integration of the Google Developer Program with Chrome DevTools, but does not allow sharing Chrome DevTools tool usage with the Google Developer Program. No badges will be awarded. + + Setting the policy to 2 - 'Disabled', does not allow the integration of the Google Developer Program with Chrome DevTools. +owners: +- ergunsh@chromium.org +- wolfi@chromium.org +- chrome-devtools@google.com +supported_on: +- chrome.*:142- +- chrome_os:142- +features: + dynamic_refresh: true + per_profile: true +type: int-enum +schema: + enum: + - 0 + - 1 + - 2 + type: integer +items: +- caption: Enable Google Developer Program integration in Chrome DevTools. + name: Enabled + value: 0 +- caption: Enable Google Developer Program integration in Chrome DevTools, but without sharing tool usage (for awarding badges). + name: EnabledWithoutBadges + value: 1 +- caption: Do not enable Google Developer Program integration in Chrome DevTools. + name: Disabled + value: 2 +default: 0 +example_value: 2 +tags: [] 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 579ab951..e3521a5d 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 @@ -1,19 +1,21 @@ -arc_support: This policy also controls access to Android Developer Options. If you - set this policy to 'DeveloperToolsDisallowed' (value 2), users cannot access Developer - Options. If you set this policy to another value or leave it unset, users can access - Developer Options by tapping seven times on the build number in the Android settings - app. +arc_support: This policy also controls access to Android Developer Options. If you set + this policy to 'DeveloperToolsDisallowed' (value 2), users cannot access + Developer Options. If you set this policy to another value or leave it + unset, users can access Developer Options by tapping seven times on the + build number in the Android settings app. caption: Control where Developer Tools can be used desc: |- Setting the policy to 0 (the default) means you can access the developer tools and the JavaScript console, but not in the context of extensions installed by enterprise policy or, since version 114 and if this is a managed user, extensions built into the browser. Setting the policy to 1 means you can access the developer tools and the JavaScript console in all contexts, including that of extensions installed by enterprise policy. Setting the policy to 2 means you can't access developer tools, and you can't inspect website elements. - This setting also turns off keyboard shortcuts and menu or context menu entries to open developer tools or the JavaScript console. + This setting also turns off keyboard shortcuts and menu or context menu entries to open developer tools or the JavaScript console. - As of $1Google Chrome version 99, this setting also controls entry points for the 'View page source' feature. If you set this policy to 'DeveloperToolsDisallowed' (value 2), users cannot access source viewing via keyboard shortcut or the context menu. To fully block source viewing, you must also add 'view-source:*' to the URLBlocklist policy. + As of $1Google Chrome version 99, this setting also controls entry points for the 'View page source' feature. If you set this policy to 'DeveloperToolsDisallowed' (value 2), users cannot access source viewing via keyboard shortcut or the context menu. To fully block source viewing, you must also add 'view-source:*' to the URLBlocklist policy. - As of $1Google Chrome version 119, this setting also controls whether developer mode for Isolated Web Apps can be activated and used. + As of $1Google Chrome version 119, this setting also controls whether developer mode for Isolated Web Apps can be activated and used. - As of $1Google Chrome version 128, this setting will not control developer mode on extensions page if ExtensionDeveloperModeSettings policy is set. + As of $1Google Chrome version 128, this setting will not control developer mode on extensions page if ExtensionDeveloperModeSettings policy is set. + + If you want to restrict Developer Tools access based on the page URL, use the DeveloperToolsAvailabilityBlocklist and DeveloperToolsAvailabilityAllowlist policies. default: 0 example_value: 2 features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityAllowlist.yaml new file mode 100755 index 00000000..39cb8173 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityAllowlist.yaml @@ -0,0 +1,37 @@ +caption: List of URL patterns for which Chrome DevTools are allowed to be opened +desc: |- + This policy can be used to allow Chrome DevTools on specific URLs. + + URL patterns are matched against the URL of the page being inspected. If a match is found, the Chrome DevTools are allowed. This applies even if the URL also matches the DeveloperToolsAvailabilityBlocklist policy, even if the DeveloperToolsAvailability policy is set to disallow (value 2). For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. + + Leaving the policy unset means this allowlist has no effect. Since Chrome DevTools are available by default, they will only be blocked if specified in the DeveloperToolsAvailabilityBlocklist policy. + + Unmatched URLs will follow the DeveloperToolsAvailability policy. + + This policy also applies to Chrome DevTools opened for extensions and web applications. + + This policy is limited to 1,000 entries. + +example_value: +- example.com +- https://ssl.server.com +- hosting.com/bad_path +- https://server:8080/path +- .exact.hostname.com +- file://* +future_on: +- chrome.* +- chrome_os +features: + dynamic_refresh: true + per_profile: true +owners: +- file://extensions/OWNERS +- mickaczmarczyk@google.com +schema: + items: + type: string + type: array +tags: +- filtering +type: list \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityBlocklist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityBlocklist.yaml new file mode 100755 index 00000000..e1182cec --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsAvailabilityBlocklist.yaml @@ -0,0 +1,37 @@ +caption: List of URL patterns for which Chrome DevTools are blocked +desc: |- + URL patterns are matched against the URL of the page being inspected. If a match is found, the Chrome DevTools are blocked. For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. + + The DeveloperToolsAvailabilityAllowlist policy takes precedence over DeveloperToolsAvailabilityBlocklist. + + Unmatched URLs will follow the DeveloperToolsAvailability policy. + + This policy also applies to Chrome DevTools opened for extensions and web applications. + + This policy is limited to 1,000 entries. + +example_value: +- 'https://example.com' +- example.com +- https://ssl.server.com +- hosting.com/bad_path +- https://server:8080/path +- .exact.hostname.com +- '*' +- file://* +future_on: +- chrome.* +- chrome_os +features: + dynamic_refresh: true + per_profile: true +owners: +- file://extensions/OWNERS +- mickaczmarczyk@google.com +schema: + items: + type: string + type: array +tags: +- filtering +type: list \ No newline at end of file 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 index 5e41fac9..525d0ce0 100755 --- 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 @@ -19,5 +19,6 @@ owners: - esalma@google.com schema: type: string +sensitive: true tags: [] type: string 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 index 92bb69a3..bb505435 100755 --- 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 @@ -21,5 +21,6 @@ owners: - esalma@google.com schema: type: string +sensitive: true 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 9b1f1e8e..b0eca795 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 @@ -57,6 +57,7 @@ schema: - shortcut - suggest_url - search_url +sensitive: true supported_on: - chrome.*:135- - chrome_os:135- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAllowlist.yaml new file mode 100755 index 00000000..be709ed3 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAllowlist.yaml @@ -0,0 +1,34 @@ +caption: Allow access to a list of URLs in Incognito mode. +desc: |- + Setting the policy provides access to the listed URLs in Incognito mode, as exceptions to IncognitoModeBlocklist. For example, setting IncognitoModeBlocklist to * will block all requests in Incognito mode, and you can use this policy to allow access to a limited list of URLs. Use it to open exceptions to certain schemes, subdomains of other domains, ports, or specific paths, using the format specified at ( https://support.google.com/chrome/a?p=url_blocklist_filter_format ). The IncognitoModeAllowlist policy takes precedence over IncognitoModeBlocklist. This policy is limited to 1,000 entries. + + Leaving the policy unset allows no exceptions to IncognitoModeBlocklist. + + This policy only affects Incognito mode. To allow URLs for all user profiles, please use the URLAllowlist policy. +example_value: +- example.com +- https://ssl.server.com +- hosting.com/bad_path +- https://server:8080/path +- .exact.hostname.com +- file://* +- custom_scheme:* +- '*' +future_on: +- chrome.* +- chrome_os +- ios +- android +owners: +- file://components/policy/OWNERS +- mwalachowski@google.com +features: + dynamic_refresh: true + per_profile: true +schema: + items: + type: string + type: array +tags: +- filtering +type: list \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeBlocklist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeBlocklist.yaml new file mode 100755 index 00000000..3917a7b0 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeBlocklist.yaml @@ -0,0 +1,32 @@ +caption: Block access to a list of URLs in Incognito mode. +desc: |- + Setting the IncognitoModeBlocklist policy stops web pages with prohibited URLs from loading in Incognito mode. Administrators can specify the list of URL patterns to be blocked. If left unset, no URLs are blocked in the Incognito mode. Up to 1,000 exceptions can be defined in IncognitoModeAllowlist. See how to format a URL pattern ( https://support.google.com/chrome/a?p=url_blocklist_filter_format ). + + This policy only affects Incognito mode. To block URLs for all user profiles, please use the URLBlocklist policy. +example_value: +- example.com +- https://ssl.server.com +- hosting.com/bad_path +- https://server:8080/path +- .exact.hostname.com +- file://* +- custom_scheme:* +- '*' +future_on: +- chrome.* +- chrome_os +- ios +- android +owners: +- file://components/policy/OWNERS +- mwalachowski@google.com +features: + dynamic_refresh: true + per_profile: true +schema: + items: + type: string + type: array +tags: +- filtering +type: list \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml index e854605e..a27f3514 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/MetricsReportingEnabled.yaml @@ -31,6 +31,7 @@ owners: - zmin@chromium.org schema: type: boolean +sensitive: true supported_on: - chrome.*:8- - ios:88- 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 index c0f54fa8..6e664238 100755 --- 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 @@ -28,5 +28,6 @@ owners: - esalma@google.com schema: type: boolean +sensitive: true tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RendererCodeIntegrityEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RendererCodeIntegrityEnabled.yaml index 74acf4a4..6e61f92b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RendererCodeIntegrityEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RendererCodeIntegrityEnabled.yaml @@ -24,7 +24,7 @@ owners: schema: type: boolean supported_on: -- chrome.win:78- +- chrome.win:78-117 tags: - system-security type: main 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 aafcd873..2b5d6314 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 @@ -23,6 +23,7 @@ owners: - zmin@chromium.org schema: type: boolean +sensitive: true supported_on: - chrome.win:61- tags: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SilentPrintingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SilentPrintingEnabled.yaml new file mode 100755 index 00000000..d6b4ea56 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SilentPrintingEnabled.yaml @@ -0,0 +1,30 @@ +caption: Enable Silent Printing +desc: |- + Setting this policy to true enables silent printing, which immediately closes + print preview window when opened and prints to the default printer with + default options. If the default printer is 'Save as PDF', the file will be + saved to the Downloads folder. + + Not setting this policy or setting this policy to false disables silent + printing, which doesn't automatically close print preview window and requires + the user to make a selection as usual. +features: + dynamic_refresh: true + per_profile: false +items: +- caption: Enable Silent Printing + value: true +- caption: Disable Silent Printing + value: false +default: false +example_value: false +owners: +- file://components/policy/OWNERS +- poromov@chromium.org +- orko@igalia.com +schema: + type: boolean +future_on: +- chrome_os +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml index 840ce684..fc52d1f0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SiteSearchSettings.yaml @@ -59,6 +59,7 @@ schema: - shortcut - name - url +sensitive: true supported_on: - chrome.*:128- - chrome_os:128- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/PrivateNetworkAccessRestrictionsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/PrivateNetworkAccessRestrictionsEnabled.yaml index 6a0872bf..51846203 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/PrivateNetworkAccessRestrictionsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/PrivateNetworkAccessRestrictionsEnabled.yaml @@ -9,7 +9,7 @@ deprecated: true desc: |- When this policy is set to Enabled, any time when a warning is supposed to be - displayed in the DevTools due to Chrome DevTools due to Private Network Access checks failing, the main request will be blocked instead. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml index 77debe61..6e1dc806 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionChangePasswordURL.yaml @@ -18,6 +18,7 @@ owners: - nparker@chromium.org schema: type: string +sensitive: true supported_on: - chrome.*:69- - chrome_os:69- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml index 072dfdd5..41555365 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionLoginURLs.yaml @@ -23,6 +23,7 @@ schema: items: type: string type: array +sensitive: true supported_on: - chrome.*:69- - chrome_os:69- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml index 84ce3d85..7be21c56 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingAllowlistDomains.yaml @@ -24,6 +24,7 @@ schema: items: type: string type: array +sensitive: true supported_on: - chrome.*:86- - chrome_os:86- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml index d9ed9081..25a7288c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingEnabled.yaml @@ -32,6 +32,7 @@ owners: - pastarmovj@chromium.org schema: type: boolean +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/SameOriginTabCaptureAllowedByOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/SameOriginTabCaptureAllowedByOrigins.yaml index 62fe5d55..66715692 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/SameOriginTabCaptureAllowedByOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/SameOriginTabCaptureAllowedByOrigins.yaml @@ -27,5 +27,6 @@ schema: supported_on: - chrome_os:94- - chrome.*:95- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowed.yaml index cd09246d..6f22d82f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowed.yaml @@ -31,5 +31,6 @@ schema: supported_on: - chrome.*:81- - chrome_os:81- +- android:142- tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowedByOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowedByOrigins.yaml index d042585a..1d00c1ab 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowedByOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/ScreenCaptureAllowedByOrigins.yaml @@ -27,5 +27,6 @@ schema: supported_on: - chrome_os:94- - chrome.*:95- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/TabCaptureAllowedByOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/TabCaptureAllowedByOrigins.yaml index bcef6f0c..33106777 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/TabCaptureAllowedByOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/TabCaptureAllowedByOrigins.yaml @@ -29,5 +29,6 @@ schema: supported_on: - chrome_os:94- - chrome.*:95- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/WindowCaptureAllowedByOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/WindowCaptureAllowedByOrigins.yaml index 8a0112e4..9f1a4036 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/WindowCaptureAllowedByOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ScreenCapture/WindowCaptureAllowedByOrigins.yaml @@ -27,5 +27,6 @@ schema: supported_on: - chrome_os:94- - chrome.*:95- +- android:142- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml index be4ac14e..d579f4c1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageIsNewTabPage.yaml @@ -27,6 +27,7 @@ owners: - chrome-desktop-ntp@google.com schema: type: boolean +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml index ec5ecb94..28d1c812 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/HomepageLocation.yaml @@ -23,6 +23,7 @@ owners: - chrome-desktop-ntp@google.com schema: type: string +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml index 87f49a99..dfa754d0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/NewTabPageLocation.yaml @@ -24,6 +24,7 @@ owners: - chrome-desktop-ntp@google.com schema: type: string +sensitive: true supported_on: - chrome.*:58- - chrome_os:58- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml index b6783218..1a6dfcaf 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartup.yaml @@ -46,6 +46,7 @@ schema: - 4 - 5 type: integer +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml index fdd2d563..817d081f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/RestoreOnStartupURLs.yaml @@ -21,6 +21,7 @@ schema: items: type: string type: array +sensitive: true supported_on: - chrome.*:8- - chrome_os:11- 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 c1cd8903..b014cd48 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 @@ -93,6 +93,7 @@ #include "content/browser/media/media_web_contents_observer.h" #include "content/browser/permissions/permission_controller_impl.h" #include "content/browser/permissions/permission_util.h" +#include "content/browser/preloading/prefetch/prefetch_request.h" #include "content/browser/preloading/prefetch/prefetch_service.h" #include "content/browser/preloading/prefetch/prefetch_type.h" #include "content/browser/preloading/preloading.h" @@ -296,7 +297,7 @@ enum class CrashRepHandlingOutcome { constexpr auto kUpdateLoadStatesInterval = base::Milliseconds(250); // Kill switch for inner WebContents visibility updates. -BASE_FEATURE(UpdateInnerWebContentsVisibility, +BASE_FEATURE(kUpdateInnerWebContentsVisibility, base::FEATURE_ENABLED_BY_DEFAULT); using LifecycleState = RenderFrameHost::LifecycleState; @@ -1428,7 +1429,7 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context) slow_web_preference_cache_observation_.Observe( SlowWebPreferenceCache::GetInstance()); renderer_preferences_.caret_blink_interval = - native_theme->GetCaretBlinkInterval(); + native_theme->caret_blink_interval(); #if BUILDFLAG(IS_CHROMEOS) renderer_preferences_.use_overlay_scrollbar = native_theme->use_overlay_scrollbar(); @@ -2027,10 +2028,21 @@ std::vector WebContentsImpl::GetOutermostMainFrames() { // In the case of inner WebContents, we still allow this method to be called, // but the semantics of the values being returned are "outermost - // within this WebContents" as opposed to truly outermost. We would not expect - // any other outermost pages besides the primary page in the case of inner - // WebContents. - DCHECK(!GetOuterWebContents() || (result.size() == 1)); + // within this WebContents" as opposed to truly outermost. When this method is + // called for an inner WebContents in a normal browser, we would not expect + // any other outermost pages besides the primary page. + // + // Note that for an inner WebContents in a WebUIBrowser (detectable here when + // the AttachUnownedInnerWebContents feature is enabled), `result.size()` may + // sometimes exceed 1. For example, for WebUIBrowser, when a prerendering code + // path is triggered, a prerender frame tree is generated, but the path to + // activate or discard it does not run before this point. + // + // TODO(webium): Fix prerendering and bfcache for WebUIBrowser, which are not + // yet fully enabled. + DCHECK( + !GetOuterWebContents() || (result.size() == 1) || + base::FeatureList::IsEnabled(features::kAttachUnownedInnerWebContents)); return result; } @@ -2636,6 +2648,11 @@ void WebContentsImpl::Discard(base::OnceClosure on_discarded_cb) { if (!base::FeatureList::IsEnabled(features::kWebContentsDiscard)) { NOTREACHED(); } + if (WasDiscarded()) { + // TODO(crbug.com/441841249): Consider updating `on_discarded_cb` to return + // a bool to indicate whether the operation completed successfully. + return; + } AboutToBeDiscarded(this); notify_disconnection_ = false; @@ -2834,6 +2851,7 @@ bool WebContentsImpl::IsCrashed() { case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: case base::TERMINATION_STATUS_PROCESS_WAS_KILLED: case base::TERMINATION_STATUS_OOM: + case base::TERMINATION_STATUS_EVICTED_FOR_MEMORY: case base::TERMINATION_STATUS_LAUNCH_FAILED: #if BUILDFLAG(IS_CHROMEOS) case base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM: @@ -3700,8 +3718,8 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( prefs.prefers_reduced_motion = gfx::Animation::PrefersReducedMotion(); const auto* const theme = ui::NativeTheme::GetInstanceForWeb(); - prefers_reduced_transparency_ = theme->GetPrefersReducedTransparency(); - inverted_colors_ = theme->GetInvertedColors(); + prefers_reduced_transparency_ = theme->prefers_reduced_transparency(); + inverted_colors_ = theme->inverted_colors(); prefs.prefers_reduced_transparency = prefers_reduced_transparency_; prefs.inverted_colors = inverted_colors_; @@ -4336,7 +4354,10 @@ void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) { std::set WebContentsImpl::GetRenderWidgetHostViewsInWebContentsTree() { std::set result; - GetPrimaryMainFrame()->ForEachRenderFrameHostImpl( + // Views for speculative render frame host could also be frame sink id owner + // and should move frame sink id registration from inner WebContents to outer + // WebContents when WebContents is attached/detached. + GetPrimaryMainFrame()->ForEachRenderFrameHostImplIncludingSpeculative( [&result](RenderFrameHostImpl* rfh) { if (auto* view = static_cast(rfh->GetView())) { @@ -5320,8 +5341,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( // TODO(crbug.com/40234240): Instead of filtering out the guest case here, // check it and drop prerender requests before starting prerendering. std::unique_ptr new_contents; - if (base::FeatureList::IsEnabled(blink::features::kPrerender2InNewTab) && - !is_guest) { + if (!is_guest) { new_contents = GetPrerenderHostRegistry()->TakePreCreatedWebContentsForNewTabIfExists( params, create_params); @@ -8003,7 +8023,7 @@ blink::ColorProviderColorMaps WebContentsImpl::GetColorProviderColorMaps() ui::ColorProviderKey::ForcedColors forced_colors = forced_colors_source->GetForcedColors(); if (forced_colors == ui::ColorProviderKey::ForcedColors::kNone) { - forced_colors = ui::ColorProviderKey::ForcedColors::kActive; + forced_colors = ui::ColorProviderKey::ForcedColors::kSystem; } return blink::ColorProviderColorMaps{ @@ -9115,6 +9135,14 @@ std::vector WebContentsImpl::GetInnerWebContents() { } WebContentsImpl* WebContentsImpl::GetResponsibleWebContents() { + if (delegate_) { + WebContentsImpl* responsible_from_delegate = static_cast( + delegate_->GetResponsibleWebContents(this)); + if (responsible_from_delegate) { + return responsible_from_delegate; + } + } + return FromRenderFrameHostImpl( GetPrimaryMainFrame()->GetOutermostMainFrameOrEmbedder()); } @@ -10085,10 +10113,11 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( bounds_in_screen); FocusedNodeDetails details = {frame->has_focused_editable_element(), - bounds_in_screen, focus_type}; + bounds_in_screen, bounds_in_root_view, + focus_type}; BrowserAccessibilityStateImpl::GetInstance()->OnFocusChangedInPage(details); observers_.NotifyObservers(&WebContentsObserver::OnFocusChangedInPage, - &details); + details); } bool WebContentsImpl::DidAddMessageToConsole( @@ -11604,6 +11633,24 @@ void WebContentsImpl::SetVisibilityForChildViews(bool visible) { } void WebContentsImpl::HandleColorRelatedStateChanges() { + if (const auto* const theme = ui::NativeTheme::GetInstanceForWeb(); + prefers_reduced_transparency_ != theme->prefers_reduced_transparency() || + inverted_colors_ != theme->inverted_colors() || + GetContentClient() + ->browser() + ->WebPreferencesNeedUpdateForColorRelatedStateChanges( + *this, *GetPrimaryMainFrame()->GetSiteInstance())) { + NotifyPreferencesChanged(); + } + + // Update color providers after applying any pending WebPreferences changes. + // This is done because WebPreferences changes (e.g. `in_forced_colors`) might + // not trigger an invalidation in Blink, but color provider changes will + // always trigger invalidation. Therefore, we want to update color providers + // after we have the right states for the web preferences so we can use the + // right color providers in Blink to paint. This also handles scenarios where + // the forced colors state remains the same, but the `forced_colors_map` is + // updated due to changes in the forced colors mode theme. if (blink::ColorProviderColorMaps color_maps = GetColorProviderColorMaps(); color_maps_ != color_maps) { color_maps_.swap(color_maps); @@ -11613,16 +11660,6 @@ void WebContentsImpl::HandleColorRelatedStateChanges() { } }); } - - if (const auto* const theme = ui::NativeTheme::GetInstanceForWeb(); - prefers_reduced_transparency_ != theme->GetPrefersReducedTransparency() || - inverted_colors_ != theme->GetInvertedColors() || - GetContentClient() - ->browser() - ->WebPreferencesNeedUpdateForColorRelatedStateChanges( - *this, *GetPrimaryMainFrame()->GetSiteInstance())) { - NotifyPreferencesChanged(); - } } void WebContentsImpl::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) { @@ -11631,7 +11668,7 @@ void WebContentsImpl::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) { HandleColorRelatedStateChanges(); - const auto caret_blink_interval = observed_theme->GetCaretBlinkInterval(); + const auto caret_blink_interval = observed_theme->caret_blink_interval(); #if BUILDFLAG(IS_CHROMEOS) const auto use_overlay_scrollbar = observed_theme->use_overlay_scrollbar(); #endif @@ -11981,7 +12018,7 @@ std::unique_ptr WebContentsImpl::StartPrefetch( std::optional priority, scoped_refptr preload_pipeline_info, base::WeakPtr attempt, - std::optional holdback_status_override, + PreloadingHoldbackStatus holdback_status_override, std::optional ttl) { PrefetchService* prefetch_service = BrowserContextImpl::From(GetBrowserContext())->GetPrefetchService(); @@ -11991,13 +12028,13 @@ std::unique_ptr WebContentsImpl::StartPrefetch( PrefetchType prefetch_type(PreloadingTriggerType::kEmbedder, use_prefetch_proxy); - auto container = std::make_unique( + auto request = PrefetchRequest::CreateBrowserInitiated( *this, prefetch_url, prefetch_type, embedder_histogram_suffix, referrer, referring_origin, std::move(no_vary_search_hint), std::move(priority), std::move(preload_pipeline_info), std::move(attempt), holdback_status_override, std::move(ttl)); - return prefetch_service->AddPrefetchContainerWithHandle(std::move(container)); + return prefetch_service->AddPrefetchRequestWithHandle(std::move(request)); } std::unique_ptr WebContentsImpl::StartPrerendering( diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc index f5dace05..ea1c36e8 100755 --- a/tools/under-control/src/content/child/runtime_features.cc +++ b/tools/under-control/src/content/child/runtime_features.cc @@ -47,7 +47,7 @@ #include "ui/gfx/switches.h" #include "ui/gl/gl_switches.h" #include "ui/native_theme/features/native_theme_features.h" -#include "ui/native_theme/native_theme_utils.h" +#include "ui/native_theme/native_theme.h" #if BUILDFLAG(IS_ANDROID) #include "base/android/android_info.h" @@ -218,6 +218,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kFedCmIdPRegistration), kDefault}, {wf::EnableFedCmLightweightMode, raw_ref(features::kFedCmLightweightMode), kDefault}, + {wf::EnableFedCmErrorAttribute, + raw_ref(features::kFedCmErrorAttribute), kDefault}, {wf::EnableGamepadMultitouch, raw_ref(features::kEnableGamepadMultitouch)}, {wf::EnableSharedStorageAPI, @@ -288,8 +290,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kWebBluetoothNewPermissionsBackend), kSetOnlyIfOverridden}, {wf::EnableWebIdentityDigitalCredentials, - raw_ref(features::kWebIdentityDigitalCredentials), - kDefault}, + raw_ref(features::kWebIdentityDigitalCredentials), kDefault}, {wf::EnableWebIdentityDigitalCredentialsCreation, raw_ref(features::kWebIdentityDigitalCredentialsCreation), kSetOnlyIfOverridden}, @@ -356,8 +357,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { #endif {"CompressionDictionaryTransport", raw_ref(network::features::kCompressionDictionaryTransport)}, - {"CompressionDictionaryTransportBackend", - raw_ref(network::features::kCompressionDictionaryTransportBackend)}, {"CookieDeprecationFacilitatedTesting", raw_ref(features::kCookieDeprecationFacilitatedTesting)}, {"DocumentPolicyIncludeJSCallStacksInCrashReports", @@ -523,7 +522,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( // These checks are custom wrappers around base::FeatureList::IsEnabled // They're moved here to distinguish them from actual base checks #if !BUILDFLAG(IS_CHROMEOS) - WebRuntimeFeatures::EnableOverlayScrollbars(ui::IsOverlayScrollbarEnabled()); + WebRuntimeFeatures::EnableOverlayScrollbars( + ui::NativeTheme::GetInstanceForWeb()->use_overlay_scrollbar()); #endif WebRuntimeFeatures::EnableFluentScrollbars(ui::IsFluentScrollbarEnabled()); WebRuntimeFeatures::EnableFluentOverlayScrollbars( 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 051c38eb..68bafbcd 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 @@ -27,6 +27,7 @@ #include "components/language_detection/core/browser/language_detection_model_provider.h" #include "content/browser/ai/echo_ai_manager_impl.h" #include "content/browser/renderer_host/render_frame_host_impl.h" +#include "content/browser/webauth/default_authenticator_request_client_delegate.h" #include "content/public/browser/anchor_element_preconnect_delegate.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_main_parts.h" @@ -43,6 +44,7 @@ #include "content/public/browser/page_navigator.h" #include "content/public/browser/prefetch_service_delegate.h" #include "content/public/browser/prerender_web_contents_delegate.h" +#include "content/public/browser/process_selection_deferring_condition.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/responsiveness_calculator_delegate.h" #include "content/public/browser/sms_fetcher.h" @@ -76,7 +78,6 @@ #include "services/network/public/mojom/network_context.mojom.h" #include "services/network/public/mojom/network_service.mojom.h" #include "services/network/public/mojom/web_transport.mojom.h" -#include "services/video_effects/public/cpp/buildflags.h" #include "storage/browser/quota/quota_manager.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/features_generated.h" @@ -101,10 +102,6 @@ #include "third_party/blink/public/mojom/installedapp/related_application.mojom.h" #endif -#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) -#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h" -#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) - using AttributionReportType = content::ContentBrowserClient::AttributionReportingOsRegistrar; @@ -152,10 +149,11 @@ bool ContentBrowserClient::CanShutdownGpuProcessNowOnIOThread() { return false; } -GURL ContentBrowserClient::GetEffectiveURL(BrowserContext* browser_context, - const GURL& url) { +std::optional ContentBrowserClient::GetEffectiveURL( + BrowserContext* browser_context, + const GURL& url) { DCHECK(browser_context); - return url; + return std::nullopt; } bool ContentBrowserClient::ShouldCompareEffectiveURLsForSiteInstanceSelection( @@ -259,13 +257,6 @@ void ContentBrowserClient::OverrideURLLoaderFactoryParams( bool is_for_service_worker, network::mojom::URLLoaderFactoryParams* factory_params) {} -// Returns true if the given URL is in any of the NavigationEntries for the -// given |browser_context|. This is used to determine if a URL is already -// in the navigation history of any of the tabs in a given browser context. -bool ContentBrowserClient::IsURLAccessibleByHistoryNavigation(const GURL& url) { - return false; -} - void ContentBrowserClient::GetAdditionalViewSourceSchemes( std::vector* additional_schemes) { GetAdditionalWebUISchemes(additional_schemes); @@ -1021,6 +1012,12 @@ ContentBrowserClient::CreateCommitDeferringConditionsForNavigation( return std::vector>(); } +std::vector> +ContentBrowserClient::CreateProcessSelectionDeferringConditionsForNavigation( + NavigationHandle& navigation_handle) { + return std::vector>(); +} + std::unique_ptr ContentBrowserClient::GetNavigationUIData( NavigationHandle* navigation_handle) { return nullptr; @@ -1062,10 +1059,6 @@ std::wstring ContentBrowserClient::GetLPACCapabilityNameForNetworkService() { return std::wstring(L"lpacContentNetworkService"); } -bool ContentBrowserClient::IsRendererCodeIntegrityEnabled() { - return false; -} - bool ContentBrowserClient::ShouldEnableAudioProcessHighPriority() { // TODO(crbug.com/40242320): Delete this method when the // kAudioProcessHighPriorityEnabled enterprise policy is deprecated. @@ -1323,7 +1316,7 @@ ContentBrowserClient::GetWebAuthenticationDelegate() { std::unique_ptr ContentBrowserClient::GetWebAuthenticationRequestDelegate( RenderFrameHost* render_frame_host) { - return std::make_unique(); + return std::make_unique(); } #endif @@ -1817,20 +1810,6 @@ bool ContentBrowserClient::UseOutermostMainFrameOrEmbedderForSubCaptureTargets() return false; } -#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) -void ContentBrowserClient::BindReadonlyVideoEffectsManager( - const std::string& device_id, - BrowserContext* browser_context, - mojo::PendingReceiver - readonly_video_effects_manager) {} - -void ContentBrowserClient::BindVideoEffectsProcessor( - const std::string& device_id, - BrowserContext* browser_context, - mojo::PendingReceiver - video_effects_processor) {} -#endif // BUILDFLAG(ENABLE_VIDEO_EFFECTS) - void ContentBrowserClient::PreferenceRankAudioDeviceInfos( BrowserContext* browser_context, blink::WebMediaDeviceInfoArray& infos) {} @@ -1943,11 +1922,6 @@ void ContentBrowserClient::QueryInstalledWebAppsByManifestId( } #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_WIN) -void ContentBrowserClient::OnUiaProviderRequested(bool uia_provider_enabled) {} -void ContentBrowserClient::OnUiaProviderDisabled() {} -#endif - bool ContentBrowserClient::AllowNonActivatedCrossOriginPaintHolding() { return false; } diff --git a/tools/under-control/src/extensions/common/api/app_current_window_internal.idl b/tools/under-control/src/extensions/common/api/app_current_window_internal.idl deleted file mode 100755 index cfda8c43..00000000 --- a/tools/under-control/src/extensions/common/api/app_current_window_internal.idl +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2012 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This is used by the app window API internally to pass through messages to -// the shell window. -namespace app.currentWindowInternal { - - // Null or undefined indicates that a value should not change. - dictionary Bounds { - long? left; - long? top; - long? width; - long? height; - }; - - // Null or undefined indicates that a value should not change. A value of 0 - // will clear the constraints. - dictionary SizeConstraints { - long? minWidth; - long? minHeight; - long? maxWidth; - long? maxHeight; - }; - - dictionary RegionRect { - long left; - long top; - long width; - long height; - }; - - dictionary Region { - RegionRect[]? rects; - }; - - interface Functions { - static void focus(); - static void fullscreen(); - static void minimize(); - static void maximize(); - static void restore(); - static void drawAttention(); - static void clearAttention(); - static void show(optional boolean focused); - static void hide(); - static void setBounds(DOMString boundsType, Bounds bounds); - static void setSizeConstraints(DOMString boundsType, - SizeConstraints constraints); - static void setIcon(DOMString icon_url); - static void setShape(Region region); - static void setAlwaysOnTop(boolean always_on_top); - static void setVisibleOnAllWorkspaces(boolean always_visible); - static void setActivateOnPointer(boolean activate_on_pointer); - }; - - interface Events { - static void onClosed(); - static void onBoundsChanged(); - static void onFullscreened(); - static void onMinimized(); - static void onMaximized(); - static void onRestored(); - static void onAlphaEnabledChanged(); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/cec_private.idl b/tools/under-control/src/extensions/common/api/cec_private.idl deleted file mode 100755 index c4079629..00000000 --- a/tools/under-control/src/extensions/common/api/cec_private.idl +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Private API for HDMI CEC functionality. -[platforms=("chromeos")] -namespace cecPrivate { - - enum DisplayCecPowerState { - // There was an error querying the power state of the display. - error, - - // The kernel adapter for the CEC endpoint isn't configured (no EDID set). - adapterNotConfigured, - - // No device ACKed the request on the CEC bus. - noDevice, - - // The display is a powered on state. - on, - - // The display is in standby mode. - standby, - - // The display is currently transitioning to an awake state. It can't be - // relied on to show any output yet. - transitioningToOn, - - // The display is currently transitioning to standby. - transitioningToStandby, - - // Found a CEC endpoint but unable to determine the power state. - unknown - }; - - callback DisplayCecPowerStateCallback = - void(DisplayCecPowerState[] powerStates); - - callback ChangePowerStateCallback = void(); - - interface Functions { - // Attempt to put all HDMI CEC compatible devices in standby. - // - // This is not guaranteed to have any effect on the connected displays. - // Displays that do not support HDMI CEC will not be affected. - // - // |callback| will be run as soon as all displays have been requested to - // change their power state. - static void sendStandBy( - optional ChangePowerStateCallback callback); - - // Attempt to announce this device as the active input source towards all - // HDMI CEC enabled displays connected, waking them from standby if - // necessary. - // - // |callback| will be run as soon as all displays have been requested to - // change their power state. - static void sendWakeUp( - optional ChangePowerStateCallback callback); - - // Queries all HDMI CEC capable displays for their current power state. - static void queryDisplayCecPowerState( - DisplayCecPowerStateCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/diagnostics.idl b/tools/under-control/src/extensions/common/api/diagnostics.idl deleted file mode 100755 index 1f0ceaf2..00000000 --- a/tools/under-control/src/extensions/common/api/diagnostics.idl +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Use the chrome.diagnostics API to query various properties of -// the environment that may be useful for diagnostics. -namespace diagnostics { - dictionary SendPacketOptions { - // Target IP address. - DOMString ip; - // Packet time to live value. If omitted, the system default value will be - // used. - long? ttl; - // Packet timeout in seconds. If omitted, the system default value will be - // used. - long? timeout; - // Size of the payload. If omitted, the system default value will be used. - long? size; - }; - - dictionary SendPacketResult { - // The IP of the host which we receives the ICMP reply from. - // The IP may differs from our target IP if the packet's ttl is used up. - DOMString ip; - - // Latency in millisenconds. - double latency; - }; - - callback SendPacketCallback = void(SendPacketResult result); - - interface Functions { - // Send a packet of the given type with the given parameters. - static void sendPacket( - SendPacketOptions options, - SendPacketCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/dns.idl b/tools/under-control/src/extensions/common/api/dns.idl deleted file mode 100755 index 9f008e13..00000000 --- a/tools/under-control/src/extensions/common/api/dns.idl +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2014 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Use the chrome.dns API for dns resolution. -namespace dns { - - dictionary ResolveCallbackResolveInfo { - // The result code. Zero indicates success. - long resultCode; - - // A string representing the IP address literal. Supplied only if resultCode - // indicates success. - DOMString? address; - }; - - callback ResolveCallback = void (ResolveCallbackResolveInfo resolveInfo); - - interface Functions { - // Resolves the given hostname or IP address literal. - // |hostname| : The hostname to resolve. - // |callback| : Called when the resolution operation completes. - static void resolve( - DOMString hostname, - ResolveCallback callback); - }; - -}; diff --git a/tools/under-control/src/extensions/common/api/extension_options_internal.idl b/tools/under-control/src/extensions/common/api/extension_options_internal.idl deleted file mode 100755 index f2af7995..00000000 --- a/tools/under-control/src/extensions/common/api/extension_options_internal.idl +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2014 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Internal API for the <extensiontoptions> tag -namespace extensionOptionsInternal { - dictionary SizeChangedOptions { - long oldWidth; - long oldHeight; - long newWidth; - long newHeight; - }; - - dictionary PreferredSizeChangedOptions { - double width; - double height; - }; - - interface Events { - static void onClose(); - static void onLoad(); - static void onPreferredSizeChanged(PreferredSizeChangedOptions options); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/system_cpu.idl b/tools/under-control/src/extensions/common/api/system_cpu.idl deleted file mode 100755 index 875e98e1..00000000 --- a/tools/under-control/src/extensions/common/api/system_cpu.idl +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Use the system.cpu API to query CPU metadata. -namespace system.cpu { - - // Counters for assessing CPU utilization. Each field is monotonically - // increasing while the processor is powered on. Values are in milliseconds. - dictionary CpuTime { - // The cumulative time used by userspace programs on this processor. - double user; - - // The cumulative time used by kernel programs on this processor. - double kernel; - - // The cumulative time spent idle by this processor. - double idle; - - // The total cumulative time for this processor. This value is equal to - // user + kernel + idle. - double total; - }; - - dictionary ProcessorInfo { - // Cumulative usage info for this logical processor. - CpuTime usage; - }; - - dictionary CpuInfo { - // The number of logical processors. - long numOfProcessors; - - // The architecture name of the processors. - DOMString archName; - - // The model name of the processors. - DOMString modelName; - - // A set of feature codes indicating some of the processor's capabilities. - // The currently supported codes are "mmx", "sse", "sse2", "sse3", "ssse3", - // "sse4_1", "sse4_2", and "avx". - DOMString[] features; - - // Information about each logical processor. - ProcessorInfo[] processors; - - // List of CPU temperature readings from each thermal zone of the CPU. - // Temperatures are in degrees Celsius. - // - // Currently supported on Chrome OS only. - double[] temperatures; - }; - - callback CpuInfoCallback = void (CpuInfo info); - - interface Functions { - // Queries basic CPU information of the system. - static void getInfo(CpuInfoCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/system_memory.idl b/tools/under-control/src/extensions/common/api/system_memory.idl deleted file mode 100755 index fb31ae85..00000000 --- a/tools/under-control/src/extensions/common/api/system_memory.idl +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// The chrome.system.memory API. -namespace system.memory { - - dictionary MemoryInfo { - // The total amount of physical memory capacity, in bytes. - double capacity; - // The amount of available capacity, in bytes. - double availableCapacity; - }; - - callback MemoryInfoCallback = void (MemoryInfo info); - - interface Functions { - // Get physical memory information. - static void getInfo(MemoryInfoCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/system_network.idl b/tools/under-control/src/extensions/common/api/system_network.idl deleted file mode 100755 index b6a83e59..00000000 --- a/tools/under-control/src/extensions/common/api/system_network.idl +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Use the chrome.system.network API. -namespace system.network { - dictionary NetworkInterface { - // The underlying name of the adapter. On *nix, this will typically be - // "eth0", "wlan0", etc. - DOMString name; - - // The available IPv4/6 address. - DOMString address; - - // The prefix length - long prefixLength; - }; - - // Callback from the getNetworkInterfaces method. - // |networkInterfaces| : Array of object containing network interfaces - // information. - callback GetNetworkInterfacesCallback = - void (NetworkInterface[] networkInterfaces); - - interface Functions { - // Retrieves information about local adapters on this system. - // |callback| : Called when local adapter information is available. - static void getNetworkInterfaces( - GetNetworkInterfacesCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/system_storage.idl b/tools/under-control/src/extensions/common/api/system_storage.idl deleted file mode 100755 index f4f9bf19..00000000 --- a/tools/under-control/src/extensions/common/api/system_storage.idl +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2013 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Use the chrome.system.storage API to query storage device -// information and be notified when a removable storage device is attached and -// detached. -namespace system.storage { - - enum StorageUnitType { - // The storage has fixed media, e.g. hard disk or SSD. - fixed, - // The storage is removable, e.g. USB flash drive. - removable, - // The storage type is unknown. - unknown - }; - - dictionary StorageUnitInfo { - // The transient ID that uniquely identifies the storage device. - // This ID will be persistent within the same run of a single application. - // It will not be a persistent identifier between different runs of an - // application, or between different applications. - DOMString id; - // The name of the storage unit. - DOMString name; - // The media type of the storage unit. - StorageUnitType type; - // The total amount of the storage space, in bytes. - double capacity; - }; - - dictionary StorageAvailableCapacityInfo { - // A copied |id| of getAvailableCapacity function parameter |id|. - DOMString id; - // The available capacity of the storage device, in bytes. - double availableCapacity; - }; - - enum EjectDeviceResultCode { - // The ejection command is successful -- the application can prompt the user - // to remove the device. - success, - // The device is in use by another application. The ejection did not - // succeed; the user should not remove the device until the other - // application is done with the device. - in_use, - // There is no such device known. - no_such_device, - // The ejection command failed. - failure - }; - - callback EjectDeviceCallback = void (EjectDeviceResultCode result); - - callback StorageInfoCallback = void (StorageUnitInfo[] info); - - callback GetAvailableCapacityCallback = void ( - StorageAvailableCapacityInfo info); - - interface Functions { - // Get the storage information from the system. The argument passed to the - // callback is an array of StorageUnitInfo objects. - static void getInfo(StorageInfoCallback callback); - - // Ejects a removable storage device. - static void ejectDevice( - DOMString id, - EjectDeviceCallback callback); - - // Get the available capacity of a specified |id| storage device. - // The |id| is the transient device ID from StorageUnitInfo. - static void getAvailableCapacity( - DOMString id, - GetAvailableCapacityCallback callback); - }; - - interface Events { - // Fired when a new removable storage is attached to the system. - static void onAttached(StorageUnitInfo info); - - // Fired when a removable storage is detached from the system. - static void onDetached(DOMString id); - }; - -}; diff --git a/tools/under-control/src/extensions/common/api/virtual_keyboard.idl b/tools/under-control/src/extensions/common/api/virtual_keyboard.idl deleted file mode 100755 index 6f8c35f3..00000000 --- a/tools/under-control/src/extensions/common/api/virtual_keyboard.idl +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// The chrome.virtualKeyboard API is a kiosk only API used to -// configure virtual keyboard layout and behavior in kiosk sessions. -[platforms=("chromeos")] -namespace virtualKeyboard { - //

Determines whether advanced virtual keyboard features should be enabled - // or not. They are enabled by default.

- //

On Chrome 58 all properties are expected to have the same value. - //

- //

From Chrome 63 the properties can be distinct and are optional. - // If omitted, the current value is preserved.

- dictionary FeatureRestrictions { - // Whether virtual keyboards can provide auto-complete. - boolean? autoCompleteEnabled; - // Whether virtual keyboards can provide auto-correct. - boolean? autoCorrectEnabled; - // Whether virtual keyboards can provide input via handwriting recognition. - boolean? handwritingEnabled; - // Whether virtual keyboards can provide spell-check. - boolean? spellCheckEnabled; - // Whether virtual keyboards can provide voice input. - boolean? voiceInputEnabled; - }; - - callback RestrictFeaturesCallback = void(FeatureRestrictions update); - - interface Functions { - // Sets restrictions on features provided by the virtual keyboard. - // |restrictions|: the preferences to enabled/disabled virtual keyboard - // features. - // |callback|: Invoked with the values which were updated. - void restrictFeatures( - FeatureRestrictions restrictions, - optional RestrictFeaturesCallback callback); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/webcam_private.idl b/tools/under-control/src/extensions/common/api/webcam_private.idl deleted file mode 100755 index d4b3d8d7..00000000 --- a/tools/under-control/src/extensions/common/api/webcam_private.idl +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2014 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Webcam Private API. -namespace webcamPrivate { - enum PanDirection { stop, right, left }; - enum TiltDirection { stop, up, down }; - enum Protocol { visca }; - enum AutofocusState { on, off }; - - dictionary ProtocolConfiguration { - Protocol? protocol; - }; - - dictionary WebcamConfiguration { - double? pan; - double? panSpeed; - PanDirection? panDirection; - double? tilt; - double? tiltSpeed; - TiltDirection? tiltDirection; - double? zoom; - AutofocusState? autofocusState; - double? focus; - }; - - dictionary Range { double min; double max; }; - - dictionary WebcamCurrentConfiguration { - double pan; - double tilt; - double zoom; - double focus; - - // Supported range of pan, tilt and zoom values. - Range? panRange; - Range? tiltRange; - Range? zoomRange; - Range? focusRange; - }; - - callback WebcamIdCallback = void(DOMString webcamId); - callback WebcamConfigurationCallback = - void(WebcamCurrentConfiguration configuration); - - interface Functions { - // Open a serial port that controls a webcam. - static void openSerialWebcam( - DOMString path, - ProtocolConfiguration protocol, - WebcamIdCallback callback); - - // Close a serial port connection to a webcam. - static void closeWebcam(DOMString webcamId); - - // Retrieve webcam parameters. Will respond with a config holding the - // requested values that are available, or default values for those that - // aren't. If none of the requests succeed, will respond with an error. - static void get( - DOMString webcamId, - WebcamConfigurationCallback callback); - - // A callback is included here which is invoked when the function responds. - // No configuration is returned through it. - static void set( - DOMString webcamId, - WebcamConfiguration config, - WebcamConfigurationCallback callback); - - // Reset a webcam. Note: the value of the parameter have no effect, it's the - // presence of the parameter that matters. E.g.: reset(webcamId, {pan: 0, - // tilt: 1}); will reset pan & tilt, but not zoom. - // A callback is included here which is invoked when the function responds. - // No configuration is returned through it. - static void reset( - DOMString webcamId, - WebcamConfiguration config, - WebcamConfigurationCallback callback); - - // Set home preset for a webcam. A callback is included here which is - // invoked when the function responds. - static void setHome( - DOMString webcamId, - WebcamConfigurationCallback callback); - - // Restore the camera's position to that of the specified preset. A callback - // is included here which is invoked when the function responds. - static void restoreCameraPreset( - DOMString webcamId, - double presetNumber, - WebcamConfigurationCallback callback); - - // Set the current camera's position to be stored for the specified preset. - // A callback is included here which is invoked when the function responds. - static void setCameraPreset( - DOMString webcamId, - double presetNumber, - WebcamConfigurationCallback callback); - }; -}; diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc index 26019db9..ec828e8f 100755 --- a/tools/under-control/src/services/network/network_context.cc +++ b/tools/under-control/src/services/network/network_context.cc @@ -111,7 +111,7 @@ #include "services/network/devtools_durable_msg_collector.h" #include "services/network/disk_cache/mojo_backend_file_operations_factory.h" #include "services/network/host_resolver.h" -#include "services/network/http_auth_cache_copier.h" +#include "services/network/http_auth_cache_proxy_copier.h" #include "services/network/http_server_properties_pref_delegate.h" #include "services/network/ignore_errors_cert_verifier.h" #include "services/network/is_browser_initiated.h" @@ -1026,7 +1026,7 @@ void NetworkContext::CreateURLLoaderFactory( mojom::URLLoaderFactoryParamsPtr params) { scoped_refptr resource_scheduler_client = base::MakeRefCounted( - ResourceScheduler::ClientId::Create(params->top_frame_id), + ResourceScheduler::ClientId::Create(), IsBrowserInitiated(params->process_id == mojom::kBrowserProcessId), resource_scheduler_.get(), url_request_context_->network_quality_estimator()); @@ -1387,6 +1387,19 @@ void NetworkContext::ComputeHttpCacheSize( base::Unretained(this), std::move(callback)))); } +void NetworkContext::NotifyBrowserIdle() { + net::HttpCache* htp_cache = + url_request_context_->http_transaction_factory()->GetCache(); + if (!htp_cache) { + return; + } + disk_cache::Backend* backend = htp_cache->GetCurrentBackend(); + if (!backend) { + return; + } + backend->OnBrowserIdle(); +} + void NetworkContext::ClearCorsPreflightCache( mojom::ClearDataFilterPtr filter, ClearCorsPreflightCacheCallback callback) { @@ -1740,14 +1753,19 @@ void NetworkContext::CloseIdleConnections( void NetworkContext::SetNetworkConditions( const base::UnguessableToken& throttling_profile_id, - mojom::NetworkConditionsPtr conditions) { - std::unique_ptr network_conditions; - if (conditions) { - network_conditions = std::make_unique( - conditions->offline, conditions->latency.InMillisecondsF(), - conditions->download_throughput, conditions->upload_throughput, - conditions->packet_loss, conditions->packet_queue_length, - conditions->packet_reordering); + std::vector conditions) { + std::vector network_conditions; + for (auto& condition : conditions) { + network_conditions.emplace_back( + std::move(condition->pattern), + NetworkConditions{condition->conditions->offline, + condition->conditions->latency.InMillisecondsF(), + condition->conditions->download_throughput, + condition->conditions->upload_throughput, + condition->conditions->packet_loss, + condition->conditions->packet_queue_length, + condition->conditions->packet_reordering, + condition->conditions->rule_id}); } ThrottlingController::SetConditions(throttling_profile_id, std::move(network_conditions)); @@ -1844,11 +1862,12 @@ void NetworkContext::CreateRestrictedUDPSocket( mojom::RestrictedUDPSocketParamsPtr params, mojo::PendingReceiver receiver, mojo::PendingRemote listener, + bool allow_multicast, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. socket_factory_->CreateRestrictedUDPSocket( addr, mode, traffic_annotation, std::move(params), std::move(receiver), - std::move(listener), SimpleHostResolver::Create(this), + std::move(listener), SimpleHostResolver::Create(this), allow_multicast, std::move(callback)); } @@ -1941,6 +1960,7 @@ void NetworkContext::CreateWebSocket( std::vector additional_headers, int32_t process_id, const url::Origin& origin, + network::mojom::ClientSecurityStatePtr client_security_state, uint32_t options, const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingRemote handshake_client, @@ -1959,7 +1979,7 @@ void NetworkContext::CreateWebSocket( websocket_factory_->CreateWebSocket( url, requested_protocols, site_for_cookies, storage_access_api_status, isolation_info, std::move(additional_headers), process_id, origin, - options, + std::move(client_security_state), options, static_cast(traffic_annotation), std::move(handshake_client), std::move(url_loader_network_observer), std::move(auth_handler), std::move(header_client), throttling_profile_id); @@ -2472,7 +2492,7 @@ void NetworkContext::SaveHttpAuthCacheProxyEntries( ->GetSession() ->http_auth_cache(); base::UnguessableToken cache_key = - network_service_->http_auth_cache_copier()->SaveHttpAuthCache( + network_service_->http_auth_cache_proxy_copier()->SaveHttpAuthCache( *http_auth_cache); std::move(callback).Run(cache_key); } @@ -2484,7 +2504,7 @@ void NetworkContext::LoadHttpAuthCacheProxyEntries( url_request_context_->http_transaction_factory() ->GetSession() ->http_auth_cache(); - network_service_->http_auth_cache_copier()->LoadHttpAuthCache( + network_service_->http_auth_cache_proxy_copier()->LoadHttpAuthCache( cache_key, http_auth_cache); std::move(callback).Run(); } @@ -2686,7 +2706,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( auto* mdl_manager = network_service_->masked_domain_list_manager(); auto* prt_registry = network_service_->probabilistic_reveal_token_registry(); bool requires_ipp_proxy_delegate = - mdl_manager->IsEnabled() && + (mdl_manager->IsEnabled() || + !net::features::kIpPrivacyUnconditionalProxyDomainList.Get().empty()) && (params_->ip_protection_core_host || net::features::kIpPrivacyAlwaysCreateCore.Get()); if (requires_ipp_proxy_delegate) { @@ -2702,10 +2723,15 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(params_->ip_protection_control), core_host_remote, mdl_manager, prt_registry, params_->enable_ip_protection, params_->ip_protection_incognito, + std::move(params_->initial_ip_protection_tokens), params_->ip_protection_data_directory); builder.set_proxy_delegate( std::make_unique( ip_protection_core_impl.get())); + // Set tracking protection content settings if there are any provided. + ip_protection_core_impl->SetTrackingProtectionContentSetting( + params_->tracking_protection_content_settings); + ip_protection_core_ = std::move(ip_protection_core_impl); } else if (params_->initial_custom_proxy_config || params_->custom_proxy_config_client_receiver) { @@ -3413,12 +3439,6 @@ void NetworkContext::HasPreloadedSharedDictionaryInfoForTesting( shared_dictionary_manager_->HasPreloadedSharedDictionaryInfo()); } -void NetworkContext::ResourceSchedulerClientVisibilityChanged( - const base::UnguessableToken& client_token, - bool visible) { - resource_scheduler_->OnClientVisibilityChanged(client_token, visible); -} - void NetworkContext::FlushCachedClientCertIfNeeded( const net::HostPortPair& host, const scoped_refptr& certificate) { @@ -3553,6 +3573,12 @@ void NetworkContext::GetIpProxyStatus(GetIpProxyStatusCallback callback) { std::move(callback).Run(status); } +void NetworkContext::SetBypassIpProtectionProxy(bool bypass_proxy) { + if (ip_protection_core()) { + ip_protection_core()->SetBypassProxy(bypass_proxy); + } +} + bool NetworkContext::IsNetworkForNonceAndUrlAllowed( const base::UnguessableToken& nonce, const GURL& url) const { diff --git a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json index 99b089f4..0fa02e6a 100755 --- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json +++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json @@ -232,96 +232,6 @@ ] } ], - "AccessibilityManifestV3BrailleIme": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3BrailleIme" - ] - } - ] - } - ], - "AccessibilityManifestV3EnhancedNetworkTts": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3EnhancedNetworkTts" - ] - } - ] - } - ], - "AccessibilityManifestV3EspeakNGTts": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3EspeakNGTts" - ] - } - ] - } - ], - "AccessibilityManifestV3GoogleTts": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3GoogleTts" - ] - } - ] - } - ], - "AccessibilityManifestV3SelectToSpeak": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3SelectToSpeak" - ] - } - ] - } - ], - "AccessibilityManifestV3SwitchAccess": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AccessibilityManifestV3SwitchAccess" - ] - } - ] - } - ], "AccessibilityPageZoomV2": [ { "platforms": [ @@ -530,6 +440,21 @@ ] } ], + "AllowChangingSelectedContent": [ + { + "platforms": [ + "mac" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AllowChangingSelectedContent" + ] + } + ] + } + ], "AllowDatapipeDrainedAsBytesConsumerInBFCache": [ { "platforms": [ @@ -613,6 +538,36 @@ ] } ], + "AndroidAnimatedProgressBarInBrowser": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_20250903", + "enable_features": [ + "AndroidAnimatedProgressBarInBrowser" + ] + } + ] + } + ], + "AndroidAudioDeviceListener": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidAudioDeviceListener" + ] + } + ] + } + ], "AndroidAutofillForwardIframeOrigin": [ { "platforms": [ @@ -651,7 +606,20 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_DefaultDevicePref_False", + "params": { + "show_bookmark_bar": "false" + }, + "enable_features": [ + "AndroidAppearanceSettings", + "AndroidBookmarkBar" + ] + }, + { + "name": "Enabled_DefaultDevicePref_True", + "params": { + "show_bookmark_bar": "true" + }, "enable_features": [ "AndroidAppearanceSettings", "AndroidBookmarkBar" @@ -690,6 +658,24 @@ ] } ], + "AndroidBottomToolbarV2": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "force_bottom_for_focused_omnibox": "true" + }, + "enable_features": [ + "AndroidBottomToolbarV2" + ] + } + ] + } + ], "AndroidComposeplate": [ { "platforms": [ @@ -879,21 +865,6 @@ ] } ], - "AndroidPdfSummarization": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidPdfAssistContent" - ] - } - ] - } - ], "AndroidRaiseDisplayCriticalThreadPriority": [ { "platforms": [ @@ -993,20 +964,20 @@ ], "experiments": [ { - "name": "CreateWithLowestRanking", + "name": "WithMemoryThreshold", "params": { "kill_when_backgrounded": "true", "lowest-ranking": "true", "not-perceptible-binding": "false", "omnibox_spare_renderer_delay_ms": "500", - "spare_renderer_creation_delay_ms": "2000", + "remove-binding-no-timeout": "true", + "spare_renderer_available_memory_threshold_enabled": "true", "spare_renderer_creation_timing": "after-loading", "spare_renderer_timeout_seconds": "60" }, "enable_features": [ "AndroidWarmUpSpareRendererWithTimeout", "OverrideAndroidOmniboxSpareRendererDelay", - "ServiceGroupImportance", "SpareRendererProcessPriority" ] } @@ -1059,36 +1030,6 @@ ] } ], - "AndroidTabDeclutterArchiveTabGroups": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidTabDeclutterArchiveTabGroups" - ] - } - ] - } - ], - "AndroidTabDeclutterAutoDeletePromo": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidTabDeclutterAutoDelete" - ] - } - ] - } - ], "AndroidTabDeclutterPerformanceImprovements": [ { "platforms": [ @@ -1172,6 +1113,51 @@ ] } ], + "AndroidUseCorrectDisplayWorkArea": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidUseCorrectDisplayWorkArea" + ] + } + ] + } + ], + "AndroidUseCorrectWindowBounds": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidUseCorrectWindowBounds" + ] + } + ] + } + ], + "AndroidUseDisplayTopology": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidUseDisplayTopology" + ] + } + ] + } + ], "AndroidUseFrameIntervalDeciderAdaptiveFrameRate": [ { "platforms": [ @@ -1205,14 +1191,14 @@ "AndroidWindowManagementWebApi": [ { "platforms": [ - "android", - "android_weblayer", - "android_webview" + "android" ], "experiments": [ { "name": "Enabled", "enable_features": [ + "AndroidUseCorrectDisplayWorkArea", + "AndroidUseDisplayTopology", "AndroidWindowManagementWebApi" ] } @@ -1245,7 +1231,9 @@ { "name": "Enabled", "enable_features": [ - "AndroidWindowPopupLargeScreen" + "AndroidWindowPopupLargeScreen", + "AndroidWindowPopupPredictFinalBounds", + "AndroidWindowPopupResizeAfterSpawn" ] } ] @@ -1305,14 +1293,28 @@ "AnnotatedPageContentExtraction": [ { "platforms": [ - "android" + "android", + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Glic", "params": { "capture_delay": "5s", - "include_inner_text": "true", + "on_critical_path": "true" + }, + "enable_features": [ + "AnnotatedPageContentExtraction" + ] + }, + { + "name": "Actionable", + "params": { + "capture_delay": "5s", + "mode": "actionable", "on_critical_path": "true" }, "enable_features": [ @@ -1337,6 +1339,21 @@ ] } ], + "AnnotatorMode": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AnnotatorMode" + ] + } + ] + } + ], "ApiPrintingMarginsAndScale": [ { "platforms": [ @@ -1367,21 +1384,6 @@ ] } ], - "AppBoundDataReencrypt": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AppBoundDataReencrypt" - ] - } - ] - } - ], "AppBundlePromoMagicStackStudy": [ { "platforms": [ @@ -1752,6 +1754,21 @@ ] } ], + "AskGeminiChip": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "AskGeminiChip" + ] + } + ] + } + ], "AssistMultiWord": [ { "platforms": [ @@ -1919,21 +1936,16 @@ ] } ], - "AttributionReportingInBrowserMigration": [ + "AttributionReportObserveAppState": [ { "platforms": [ - "android", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "AttributionReportingInBrowserMigration" + "AttributionReportObserveAppState" ] } ] @@ -2040,24 +2052,6 @@ ] } ], - "AutoPictureInPictureForVideoPlayback": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutoPictureInPictureForVideoPlayback" - ] - } - ] - } - ], "AutoSpeculationRules": [ { "platforms": [ @@ -2167,30 +2161,6 @@ } ], "AutofillAiI18n": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillAiIgnoreCapabilityCheck", - "AutofillAiIgnoreGeoIp", - "AutofillAiIgnoreLocale", - "AutofillAiIgnoreSignInState", - "AutofillAiIgnoreWhetherUserHasAddressOrPaymentsDataForIph", - "AutofillAiKnownTravelerNumber", - "AutofillAiNationalIdCard", - "AutofillAiRedressNumber" - ] - } - ] - } - ], - "AutofillAiIPHString": [ { "platforms": [ "chromeos", @@ -2200,9 +2170,18 @@ ], "experiments": [ { - "name": "Enabled_SeeHow", + "name": "Enabled", + "params": { + "autofill_ai_geo_ip_blocklist": "IN" + }, "enable_features": [ - "IPH_AutofillAiOptIn" + "AutofillAiIgnoreCapabilityCheck", + "AutofillAiIgnoreGeoIp", + "AutofillAiIgnoreLocale", + "AutofillAiIgnoreWhetherUserHasAddressOrPaymentsDataForIph", + "AutofillAiKnownTravelerNumber", + "AutofillAiNationalIdCard", + "AutofillAiRedressNumber" ] } ] @@ -2382,6 +2361,25 @@ ] } ], + "AutofillEnableBuyNowPayLaterForExternallyLinked": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableBuyNowPayLaterForExternallyLinked" + ] + } + ] + } + ], "AutofillEnableBuyNowPayLaterForKlarna": [ { "platforms": [ @@ -2404,12 +2402,7 @@ "AutofillEnableCardBenefitsForBmo": [ { "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { @@ -2467,12 +2460,7 @@ "AutofillEnableFlatRateCardBenefitsFromCurinos": [ { "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { @@ -2538,6 +2526,7 @@ "enable_features": [ "AutofillEnableEmailOrLoyaltyCardsFilling", "AutofillEnableLoyaltyCardsFilling", + "IPH_AutofillEnableLoyaltyCards", "SyncAutofillLoyaltyCard" ] } @@ -2565,27 +2554,6 @@ ] } ], - "AutofillEnableNewCardProfileRankingAlgorithm": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableRankingFormulaAddressProfiles", - "AutofillEnableRankingFormulaCreditCards" - ] - } - ] - } - ], "AutofillEnableNewFopDisplayDesktop": [ { "platforms": [ @@ -2605,6 +2573,46 @@ ] } ], + "AutofillEnableSaveAndFill": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableSaveAndFill" + ] + } + ] + } + ], + "AutofillEnableSupportForHomeAndWork": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableSupportForHomeAndWork", + "IPH_AutofillHomeWorkProfileSuggestion" + ] + } + ] + } + ], "AutofillEnableSupportForParsingWithSharedLabels": [ { "platforms": [ @@ -2934,26 +2942,6 @@ ] } ], - "AutofillRequireCvcForPossibleCardUpdate": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillRequireCvcForPossibleCardUpdate" - ] - } - ] - } - ], "AutofillServerExperimentalSignatures": [ { "platforms": [ @@ -2974,26 +2962,6 @@ ] } ], - "AutofillServerUploadMoreData": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillServerUploadMoreData" - ] - } - ] - } - ], "AutofillSharedStorageServerCardData": [ { "platforms": [ @@ -3092,6 +3060,7 @@ { "name": "Enabled", "enable_features": [ + "AutofillDisallowMoreHyphenLikeLabels", "AutofillSupportSplitZipCode" ] } @@ -3251,8 +3220,14 @@ "experiments": [ { "name": "Enabled", + "params": { + "PasswordChangeCanceledSurveyTriggerId": "yMCuP6M4o0ugnJ3q1cK0PhQKJ1tX", + "PasswordChangeDelayedSurveyTriggerId": "h68mSmrgL0ugnJ3q1cK0R6FWDDMV", + "PasswordChangeErrorSurveyTriggerId": "QA4ECrqpN0ugnJ3q1cK0U1jrufAq", + "PasswordChangeSuccessSurveyTriggerId": "JkkpCGkZT0ugnJ3q1cK0W48wvGnr", + "probability": "1.0" + }, "enable_features": [ - "ApplyClientsideModelPredictionsForPasswordTypes", "CheckLoginStateBeforePasswordChange", "ImprovedPasswordChangeService", "PasswordChangeSubmissionMqlsLogging" @@ -3351,26 +3326,19 @@ ] } ], - "AvoidUnnecessaryBeforeUnloadCheckSync": [ + "AvoidTrustedParamsCopies": [ { "platforms": [ "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", "linux", "mac", "windows" ], "experiments": [ { - "name": "WithSendBeforeUnload", - "params": { - "AvoidUnnecessaryBeforeUnloadCheckSyncMode": "WithSendBeforeUnload" - }, + "name": "Enabled", "enable_features": [ - "AvoidUnnecessaryBeforeUnloadCheckSync" + "AvoidTrustedParamsCopies" ] } ] @@ -3572,29 +3540,6 @@ ] } ], - "BackForwardCachePrioritizedEntry": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "PrioritizeUnlessShouldClearAllAndNoEviction_20250520", - "params": { - "level": "prioritize-unless-should-clear-all-and-no-eviction" - }, - "enable_features": [ - "BackForwardCachePrioritizedEntry" - ] - } - ] - } - ], "BackForwardCacheWithSharedWorker": [ { "platforms": [ @@ -3948,6 +3893,24 @@ ] } ], + "BocaConfigureMaxStudents": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "BocaMaxNumStudentsAllowed": "100" + }, + "enable_features": [ + "BocaConfigureMaxStudents" + ] + } + ] + } + ], "BocaMigrateSpeechRecongnizerClient": [ { "platforms": [ @@ -3978,6 +3941,36 @@ ] } ], + "BocaScreenSharingStudent": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BocaScreenSharingStudent" + ] + } + ] + } + ], + "BocaScreenSharingTeacher": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BocaScreenSharingTeacher" + ] + } + ] + } + ], "BookmarksImportOnFirstRun": [ { "platforms": [ @@ -3995,6 +3988,24 @@ ] } ], + "BookmarksTreeView": [ + { + "platforms": [ + "linux", + "mac", + "windows", + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BookmarksTreeView" + ] + } + ] + } + ], "BookmarksUseBinaryTreeInTitledUrlIndex": [ { "platforms": [ @@ -4016,28 +4027,18 @@ ] } ], - "BoostRenderProcessForLoading": [ + "BoostClosingTabs": [ { "platforms": [ - "android", "chromeos", - "fuchsia", "linux", - "mac", - "windows" + "mac" ], "experiments": [ { "name": "Enabled", - "params": { - "prioritize_prerendering": "false", - "prioritize_prerendering_only": "false", - "prioritize_renderer_initiated": "true", - "prioritize_restore": "false", - "target_urls": "[]" - }, "enable_features": [ - "BoostRenderProcessForLoading" + "BoostClosingTabs" ] } ] @@ -4532,6 +4533,25 @@ ] } ], + "Canvas2DHibernationNoSmallCanvas": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "Canvas2DHibernationNoSmallCanvas" + ] + } + ] + } + ], "Canvas2DReclaimUnusedResources": [ { "platforms": [ @@ -4576,7 +4596,7 @@ ] } ], - "CanvasNoise": [ + "CanvasInterventions": [ { "platforms": [ "android_webview", @@ -4588,9 +4608,9 @@ ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_20250527_NonDogfood", "params": { - "enable_in_regular_mode": "true" + "enable_in_regular_mode": "false" }, "enable_features": [ "CanvasNoise" @@ -4784,28 +4804,6 @@ ] } ], - "CctSignInPrompt": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "cadence_day": "14", - "if_allowed_by_embedder": "true", - "if_enabled_by_embedder": "true", - "show_limit": "2", - "user_act_count": "2" - }, - "enable_features": [ - "CctSignInPrompt" - ] - } - ] - } - ], "ChangeGeneratedCodeCacheSize": [ { "platforms": [ @@ -5890,6 +5888,7 @@ { "name": "Enabled", "params": { + "contextualize-on-focus": "true", "enable-client-side-header": "true" }, "enable_features": [ @@ -5947,65 +5946,7 @@ ] } ], - "ChromnientFetchSrp": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "FetchSrpEnabled" - } - ] - } - ], - "ChromnientLatencyOptimizations": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "AllOptimizationsEnabled", - "params": { - "enable-cluster-info-optimization": "true", - "enable-early-interaction-optimization": "true", - "enable-early-start-query-flow-optimization": "true" - }, - "enable_features": [ - "LensOverlayLatencyOptimizations" - ] - } - ] - } - ], - "ChromnientNewFeedback": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "NewFeedbackEnabled", - "enable_features": [ - "LensSearchSidePanelNewFeedback" - ] - } - ] - } - ], - "ChromnientPermissionBubbleAlt": [ + "ChromnientReinvocationAffordance": [ { "platforms": [ "chromeos", @@ -6017,7 +5958,7 @@ { "name": "Enabled", "enable_features": [ - "LensOverlayPermissionBubbleAlt" + "LensSearchReinvocationAffordance" ] } ] @@ -6041,6 +5982,24 @@ ] } ], + "ChromnientStraightToSrp": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensOverlayStraightToSrp" + ] + } + ] + } + ], "ChromnientSurvey": [ { "platforms": [ @@ -6103,6 +6062,24 @@ ] } ], + "ChromnientUpdatedFeedbackEntrypoint": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensUpdatedFeedbackEntrypoint" + ] + } + ] + } + ], "ChromnientUpdatedVisuals": [ { "platforms": [ @@ -6121,6 +6098,60 @@ ] } ], + "ChromnientUploadChunking": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensOverlayUploadChunking" + ] + } + ] + } + ], + "ChromnientVideoCitations": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensVideoCitations" + ] + } + ] + } + ], + "ChromnientZeroStateCsb": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LensSearchZeroStateCsb" + ] + } + ] + } + ], "ClampAutoScaling": [ { "platforms": [ @@ -6330,6 +6361,28 @@ ] } ], + "ClientSideDetectionCreditCardForm": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "HCAcceptanceRate": "1.0", + "SampleRate": "0.0" + }, + "enable_features": [ + "ClientSideDetectionCreditCardForm" + ] + } + ] + } + ], "ClientSideDetectionOnlyExtractVisualFeatures": [ { "platforms": [ @@ -6390,6 +6443,22 @@ ] } ], + "ClientSideDetectionSendIntelligentScanInfoAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ClientSideDetectionSendIntelligentScanInfoAndroid", + "OptimizationGuideOnDeviceModel" + ] + } + ] + } + ], "ClientSideDetectionSendLlamaForcedTriggerInfo": [ { "platforms": [ @@ -6409,30 +6478,6 @@ ] } ], - "ClientSideDetectionShowLlamaScamVerdictWarning": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "EnabledWithWarning", - "enable_features": [ - "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection", - "ClientSideDetectionShowLlamaScamVerdictWarning" - ] - }, - { - "name": "EnabledMetricsCollection", - "enable_features": [ - "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection" - ] - } - ] - } - ], "ClipboardDeemphasisAndroid": [ { "platforms": [ @@ -6492,36 +6537,6 @@ ] } ], - "CollectAndroidFrameTimelineMetricsStudy": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20230926", - "enable_features": [ - "CollectAndroidFrameTimelineMetrics" - ] - } - ] - } - ], - "CollectAndroidFrameTimelineMetricsWebviewStudy": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled_20240320", - "enable_features": [ - "CollectAndroidFrameTimelineMetrics" - ] - } - ] - } - ], "Collections": [ { "platforms": [ @@ -6703,31 +6718,93 @@ ] } ], - "CommitAvailableMemoryPressureThresholds": [ + "CommitBasedMemoryPressureWin": [ { "platforms": [ "windows" ], "experiments": [ { - "name": "MediumThresholds", - "params": { - "CommitAvailableCriticalThresholdMB": "750", - "CommitAvailableModerateThresholdMB": "1500" - }, - "enable_features": [ - "CommitAvailableMemoryPressureThresholds" - ] - }, - { - "name": "HigherThresholds", + "name": "All", "params": { "CommitAvailableCriticalThresholdMB": "1000", "CommitAvailableModerateThresholdMB": "2000" }, "enable_features": [ + "BoostClosingTabs", + "CommitAvailableMemoryPressureThresholds", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ], + "disable_features": [ + "CompressParkableStrings" + ] + }, + { + "name": "All_ExceptParkableStrings", + "params": { + "CommitAvailableCriticalThresholdMB": "1000", + "CommitAvailableModerateThresholdMB": "2000" + }, + "enable_features": [ + "BoostClosingTabs", + "CommitAvailableMemoryPressureThresholds", + "CompressParkableStrings", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ] + }, + { + "name": "CommitBasedMemoryPressure", + "params": { + "CommitAvailableCriticalThresholdMB": "1000", + "CommitAvailableModerateThresholdMB": "2000" + }, + "enable_features": [ + "CommitAvailableMemoryPressureThresholds", + "CompressParkableStrings" + ], + "disable_features": [ + "BoostClosingTabs", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ] + }, + { + "name": "BoostClosingTab", + "enable_features": [ + "BoostClosingTabs", + "CompressParkableStrings" + ], + "disable_features": [ + "CommitAvailableMemoryPressureThresholds", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ] + }, + { + "name": "TerminateRendererOnCommitExhaustion", + "enable_features": [ + "CompressParkableStrings", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ], + "disable_features": [ + "BoostClosingTabs", "CommitAvailableMemoryPressureThresholds" ] + }, + { + "name": "DisableParkableStrings", + "enable_features": [ + "BoostClosingTabs", + "CommitAvailableMemoryPressureThresholds", + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ], + "disable_features": [ + "CompressParkableStrings" + ] } ] } @@ -6887,33 +6964,6 @@ ] } ], - "CompositeBackgroundColorAnimation": [ - { - "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "frames": "4" - }, - "enable_features": [ - "CompositeBGColorAnimation", - "DeferImplInvalidation" - ] - } - ] - } - ], "CompositeClipPathAnimation": [ { "platforms": [ @@ -7176,25 +7226,6 @@ ] } ], - "CookieDeprecationFacilitatedTestingFledgeTrustedSignalsHeaders": [ - { - "platforms": [ - "chromeos", - "windows", - "mac", - "linux", - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FledgeFacilitatedTestingSignalsHeaders" - ] - } - ] - } - ], "CookieSameSiteConsidersRedirectChainDesktop": [ { "platforms": [ @@ -7811,23 +7842,6 @@ ] } ], - "CreateProfileIfNoneExists": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CreateProfileIfNoneExists" - ] - } - ] - } - ], "CreateTabHelperOnlyForRealizedWebStates": [ { "platforms": [ @@ -7878,21 +7892,6 @@ ] } ], - "CredentialProviderAutomaticPasskeyUpgrade": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CredentialProviderAutomaticPasskeyUpgrade" - ] - } - ] - } - ], "CreditCardInfobarDisplayLength": [ { "platforms": [ @@ -8128,13 +8127,14 @@ ], "experiments": [ { - "name": "EnabledWithFullPrewarmPage", + "name": "EnabledWithRPHReuse", "params": { "reuse_search_host": "true", "url": "https://www.google.com/warmup.html", "zero_suggest_trigger": "true" }, "enable_features": [ + "CheckHitEligibility", "Prerender2ReuseHost", "Prewarm", "ReusePrerenderingProcessForMainFrames" @@ -8443,21 +8443,6 @@ ] } ], - "DescribeIt": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20240924", - "enable_features": [ - "ReadAloudServerExperiments" - ] - } - ] - } - ], "DeskButton": [ { "platforms": [ @@ -8488,24 +8473,6 @@ ] } ], - "DesktopMediaPickerMultiLineTitle": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DesktopMediaPickerMultiLineTitle" - ] - } - ] - } - ], "DesktopNtpDriveCache": [ { "platforms": [ @@ -8646,6 +8613,44 @@ ] } ], + "DesktopNtpModulesTabGroups": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Control_20250918", + "disable_features": [ + "NtpTabGroupsModule", + "NtpTabGroupsModuleZeroState" + ] + }, + { + "name": "SteadyState_20250918", + "enable_features": [ + "NtpTabGroupsModule" + ], + "disable_features": [ + "NtpTabGroupsModuleZeroState" + ] + }, + { + "name": "ZeroState_20250918", + "enable_features": [ + "NtpTabGroupsModule", + "NtpTabGroupsModuleZeroState" + ] + }, + { + "name": "Default_20250918" + } + ] + } + ], "DesktopNtpOneGoogleBarAsyncBarParts": [ { "platforms": [ @@ -8796,6 +8801,24 @@ ] } ], + "DesktopUAOnConnectedDisplays": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "ext_display_desktop_ua_oem_allowlist": "samsung" + }, + "enable_features": [ + "DesktopUAOnConnectedDisplays" + ] + } + ] + } + ], "DestroySystemProfiles": [ { "platforms": [ @@ -8835,27 +8858,6 @@ ] } ], - "DeviceBoundSessionAccessObserverSharedRemote": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enable", - "enable_features": [ - "DeviceBoundSessionAccessObserverSharedRemote" - ] - } - ] - } - ], "DeviceBoundSessionCredentials": [ { "platforms": [ @@ -8902,26 +8904,6 @@ ] } ], - "DidObserveNewFeatureUsageImprovement": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DidObserveNewFeatureUsageImprovement" - ] - } - ] - } - ], "DipsForWebView": [ { "platforms": [ @@ -8992,7 +8974,19 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnabledAfterLoading", + "params": { + "mode": "AfterLoading" + }, + "enable_features": [ + "DisableBoostPriority" + ] + }, + { + "name": "EnabledAtStartup", + "params": { + "mode": "AtStartup" + }, "enable_features": [ "DisableBoostPriority" ] @@ -9016,25 +9010,6 @@ ] } ], - "DisableCompressParkableStrings": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Disabled", - "disable_features": [ - "CompressParkableStrings" - ] - } - ] - } - ], "DisableGeoLanguageModel": [ { "platforms": [ @@ -9050,24 +9025,6 @@ ] } ], - "DisableGles2ForOopR": [ - { - "platforms": [ - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "disable_features": [ - "UseGles2ForOopR" - ] - } - ] - } - ], "DisableInstanceLimitWithV2Switcher": [ { "platforms": [ @@ -9207,6 +9164,22 @@ ] } ], + "DiscardPageWithCrashedSubframePolicy": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DiscardPageWithCrashedSubframePolicy", + "WebContentsDiscard" + ] + } + ] + } + ], "DiscountAutoPopup": [ { "platforms": [ @@ -9291,7 +9264,7 @@ ] } ], - "DisplayMediaRejectLongDomains": [ + "DisplayMediaPickerLongDomains": [ { "platforms": [ "chromeos", @@ -9303,6 +9276,7 @@ { "name": "Enabled", "enable_features": [ + "DesktopMediaPickerMultiLineTitle", "DisplayMediaRejectLongDomains" ] } @@ -9580,92 +9554,17 @@ ] } ], - "EdgeToEdgeEverywhere": [ + "EffectiveBindingState": [ { "platforms": [ - "android" + "android", + "android_webview" ], "experiments": [ { - "name": "Enabled_134", + "name": "Enabled", "enable_features": [ - "EdgeToEdgeEverywhere" - ] - } - ] - } - ], - "EdgeToEdgeTablet": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_20250709", - "enable_features": [ - "EdgeToEdgeTablet" - ] - } - ] - } - ], - "EducationalTipModule": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "EnabledWithEducationalTipPerDay", - "enable_features": [ - "EducationalTipModule" - ] - }, - { - "name": "EnabledWithOnlyQuickDeletePromo", - "params": { - "names_of_ephemeral_cards_to_show": "QuickDeletePromo" - }, - "enable_features": [ - "EducationalTipModule" - ] - }, - { - "name": "EnabledWithOnlyHistorySyncPromo", - "params": { - "names_of_ephemeral_cards_to_show": "HistorySyncPromo" - }, - "enable_features": [ - "EducationalTipModule" - ] - }, - { - "name": "EnabledWithEducationalTipPerThreeDays", - "params": { - "days_to_show_ephemeral_card_once": "3" - }, - "enable_features": [ - "EducationalTipModule" - ] - }, - { - "name": "EnabledWithEducationalTipPerThreeDaysExceptHistorySyncPromo", - "params": { - "days_to_show_ephemeral_card_once": "3", - "names_of_ephemeral_cards_to_show": "TabGroupPromo,TabGroupSyncPromo,QuickDeletePromo" - }, - "enable_features": [ - "EducationalTipModule" - ] - }, - { - "name": "EnabledWithEducationalTipPerDayExceptHistorySyncPromo", - "params": { - "names_of_ephemeral_cards_to_show": "TabGroupPromo,TabGroupSyncPromo,QuickDeletePromo" - }, - "enable_features": [ - "EducationalTipModule" + "EffectiveBindingState" ] } ] @@ -9718,6 +9617,21 @@ ] } ], + "EnableADPFWorkloadReset": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableADPFWorkloadReset" + ] + } + ] + } + ], "EnableASWebAuthenticationSession": [ { "platforms": [ @@ -9769,6 +9683,21 @@ ] } ], + "EnableClientCertificateProvisioningOnAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableClientCertificateProvisioningOnAndroid" + ] + } + ] + } + ], "EnableClipboardDataControlsAndroid": [ { "platforms": [ @@ -9904,23 +9833,6 @@ ] } ], - "EnableExtensionsExplicitBrowserSignin": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnableExtensionsExplicitBrowserSignin" - ] - } - ] - } - ], "EnableFallbackFontsCrashReporting": [ { "platforms": [ @@ -9975,6 +9887,29 @@ ] } ], + "EnableHangWatcherOnGpuProcess": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "gpu_process_compositor_thread_log_level": "2", + "gpu_process_io_thread_log_level": "2", + "gpu_process_main_thread_log_level": "2" + }, + "enable_features": [ + "EnableHangWatcherOnGpuProcess" + ] + } + ] + } + ], "EnableLazyLoadImageForInvisiblePage": [ { "platforms": [ @@ -10266,6 +10201,26 @@ ] } ], + "EnforceManagementDisclaimer": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "PolicyDisclaimerRegistrationRetryDelay": "6h" + }, + "enable_features": [ + "EnforceManagementDisclaimer" + ] + } + ] + } + ], "EnhancedFieldsForSecOps": [ { "platforms": [ @@ -10382,12 +10337,7 @@ "EsbAsASyncedSetting": [ { "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { @@ -10488,7 +10438,6 @@ "android", "chromeos", "chromeos_lacros", - "ios", "linux", "mac", "windows" @@ -10516,6 +10465,21 @@ ] } ], + "ExtendedReportingRemovePrefDependencyIos": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "EnabledRemovePrefDependencyIos", + "enable_features": [ + "ExtendedReportingRemovePrefDependencyIos" + ] + } + ] + } + ], "ExtensionManifestV2Deprecation": [ { "platforms": [ @@ -10684,24 +10648,6 @@ ] } ], - "FRESignInSecondaryActionLabelUpdate": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "FRESignInSecondaryActionLabelUpdateParam": "StaySignedOut" - }, - "enable_features": [ - "FRESignInSecondaryActionLabelUpdate" - ] - } - ] - } - ], "FastPairAdvertisingFormat2025": [ { "platforms": [ @@ -10777,26 +10723,6 @@ ] } ], - "FastPathNoRaster": [ - { - "platforms": [ - "windows", - "mac", - "chromeos", - "linux", - "android", - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FastPathNoRaster" - ] - } - ] - } - ], "FasterBackgroundFreezing": [ { "platforms": [ @@ -10834,24 +10760,6 @@ ] } ], - "FeedHeaderRemoval": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "EnabledWithNoHeader", - "params": { - "treatment": "none" - }, - "enable_features": [ - "FeedHeaderRemoval" - ] - } - ] - } - ], "FeedLoadingPlaceholder": [ { "platforms": [ @@ -11195,6 +11103,21 @@ ] } ], + "ForceMigrateSyncingUserToSignedIn": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ForceMigrateSyncingUserToSignedIn" + ] + } + ] + } + ], "ForceOffTextAutosizing": [ { "platforms": [ @@ -11424,9 +11347,9 @@ "GlicAppendModelQualityClientId": [ { "platforms": [ + "linux", "mac", - "windows", - "linux" + "windows" ], "experiments": [ { @@ -11507,6 +11430,72 @@ ] } ], + "GlicEntrypointVariations": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Arm2_LabelOnly", + "params": { + "glic-entrypoint-variations-alt-icon": "false", + "glic-entrypoint-variations-highlight-nudge": "false", + "glic-entrypoint-variations-show-label": "true" + }, + "enable_features": [ + "GlicEntrypointVariations" + ] + }, + { + "name": "Arm1_HighlightOnly", + "params": { + "glic-entrypoint-variations-alt-icon": "false", + "glic-entrypoint-variations-highlight-nudge": "true", + "glic-entrypoint-variations-show-label": "false" + }, + "enable_features": [ + "GlicEntrypointVariations" + ] + }, + { + "name": "Arm3_LabelAndHighlight", + "params": { + "glic-entrypoint-variations-alt-icon": "false", + "glic-entrypoint-variations-highlight-nudge": "true", + "glic-entrypoint-variations-show-label": "true" + }, + "enable_features": [ + "GlicEntrypointVariations" + ] + }, + { + "name": "Arm4_LabelAndIcon", + "params": { + "glic-entrypoint-variations-alt-icon": "true", + "glic-entrypoint-variations-highlight-nudge": "false", + "glic-entrypoint-variations-show-label": "true" + }, + "enable_features": [ + "GlicEntrypointVariations" + ] + }, + { + "name": "Arm5_LabelAndIconAndHighlight", + "params": { + "glic-entrypoint-variations-alt-icon": "true", + "glic-entrypoint-variations-highlight-nudge": "true", + "glic-entrypoint-variations-show-label": "true" + }, + "enable_features": [ + "GlicEntrypointVariations" + ] + } + ] + } + ], "GlicExplicitBackgroundColor": [ { "platforms": [ @@ -11538,6 +11527,41 @@ ] } ], + "GlicGA": [ + { + "platforms": [ + "mac", + "windows", + "linux" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GlicRollout" + ] + } + ] + } + ], + "GlicMediaData": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AnnotatedPageContentWithMediaData", + "HeadlessLiveCaption" + ] + } + ] + } + ], "GlicMultitabContext": [ { "platforms": [ @@ -11555,27 +11579,6 @@ ] } ], - "GlicResetPanelPositionOnNewThread": [ - { - "platforms": [ - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "glic-panel-reset-session-timeout-delay-h": "1" - }, - "enable_features": [ - "GlicPanelResetOnSessionTimeout", - "GlicPanelResetOnStart", - "GlicPanelSetPositionOnDrag" - ] - } - ] - } - ], "GlicResetPanelSizeAndLocationOnOpen": [ { "platforms": [ @@ -11592,23 +11595,6 @@ ] } ], - "GlicRolloutDogfood": [ - { - "platforms": [ - "mac", - "windows", - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "GlicRollout" - ] - } - ] - } - ], "GlicScrollTo": [ { "platforms": [ @@ -11664,6 +11650,22 @@ ] } ], + "GlicWarming": [ + { + "platforms": [ + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GlicWarming" + ] + } + ] + } + ], "GlicZeroStateSuggestionsDogfood": [ { "platforms": [ @@ -12456,7 +12458,7 @@ ] } ], - "HeapProfilerMultiKeyHashSet": [ + "HeapProfilerBloomFilter": [ { "platforms": [ "chromeos", @@ -12468,9 +12470,9 @@ ], "experiments": [ { - "name": "EnabledMultiKey_20250708", + "name": "EnabledBloomFilter_20250925", "enable_features": [ - "HeapProfilerMultiKeyHashSet" + "UseLockFreeBloomFilter" ] } ] @@ -12674,10 +12676,7 @@ "android_weblayer", "android_webview", "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "fuchsia" ], "experiments": [ { @@ -12703,6 +12702,9 @@ }, { "name": "Enabled_DsePreload2", + "params": { + "kDsePreload2UsePreloadServingMetrics": "true" + }, "enable_features": [ "DsePreload2", "HttpCacheNoVarySearch", @@ -12799,21 +12801,6 @@ ] } ], - "IOSAIHubNewBadge": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AIHubNewBadge" - ] - } - ] - } - ], "IOSAIModeNTPEntryPoint": [ { "platforms": [ @@ -12868,6 +12855,24 @@ ] } ], + "IOSAutofillAcrossIframesV2": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAcrossIframesIosThrottling", + "AutofillAcrossIframesIosTriggerFormExtraction", + "AutofillThrottleDocumentFormScanForceFirstScanIos", + "AutofillThrottleDocumentFormScanIos" + ] + } + ] + } + ], "IOSAutofillBadgeRemoval": [ { "platforms": [ @@ -12883,51 +12888,6 @@ ] } ], - "IOSAutofillDedupeFormSubmission": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillDedupeFormSubmission" - ] - } - ] - } - ], - "IOSAutofillFormSubmissionEventsInCaptureMode": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillFormSubmissionEventsInCaptureMode" - ] - } - ] - } - ], - "IOSAutofillInIsolatedWorld": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillIsolatedWorldForJavascriptIos" - ] - } - ] - } - ], "IOSAutofillRefillForForms": [ { "platforms": [ @@ -12958,43 +12918,6 @@ ] } ], - "IOSAutofillThrottleDocumentFormScan": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled_With500msPeriod", - "params": { - "period-ms": "500" - }, - "enable_features": [ - "AutofillThrottleDocumentFormScanForceFirstScanIos", - "AutofillThrottleDocumentFormScanIos" - ] - } - ] - } - ], - "IOSAutofillThrottleFilteredDocumentFormScan": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled_With250msPeriod", - "params": { - "period-ms": "250" - }, - "enable_features": [ - "AutofillThrottleFilteredDocumentFormScan" - ] - } - ] - } - ], "IOSBackgroundPasteboardAccess": [ { "platforms": [ @@ -13089,6 +13012,33 @@ ] } ], + "IOSDefaultBrowserPromoMagicStackCard": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_TapToDeviceSettings", + "params": { + "DefaultBrowserMagicStackIosVariationType": "1" + }, + "enable_features": [ + "DefaultBrowserMagicStackIos" + ] + }, + { + "name": "Enabled_TapToInAppSettings", + "params": { + "DefaultBrowserMagicStackIosVariationType": "2" + }, + "enable_features": [ + "DefaultBrowserMagicStackIos" + ] + } + ] + } + ], "IOSDefaultBrowserPromoPropensityStudy": [ { "platforms": [ @@ -13380,6 +13330,25 @@ ] } ], + "IOSHelios": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AIHubNewBadge", + "GeminiCrossTab", + "GeminiForManagedAccounts", + "PageActionMenu", + "PageContextAnchorTags" + ] + } + ] + } + ], "IOSHomeMemoryImprovements": [ { "platforms": [ @@ -13455,6 +13424,21 @@ ] } ], + "IOSLensStrokesAPI": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_v1", + "enable_features": [ + "LensStrokesAPIEnabled" + ] + } + ] + } + ], "IOSLensUnification": [ { "platforms": [ @@ -13491,21 +13475,6 @@ ] } ], - "IOSLogInstallAttribution": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "IOSLogInstallAttribution" - ] - } - ] - } - ], "IOSManageAccountStorage": [ { "platforms": [ @@ -13622,8 +13591,12 @@ "experiments": [ { "name": "Enabled", + "params": { + "reactivation_order": "" + }, "enable_features": [ - "IOSOneTimeDefaultBrowserNotification" + "IOSOneTimeDefaultBrowserNotification", + "IOSReactivationNotifications" ] } ] @@ -13695,49 +13668,6 @@ ] } ], - "IOSProactiveTipsNotifications": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "LensFirst_7day", - "enable_features": [ - "IOSReactivationNotifications" - ] - }, - { - "name": "LensFirst_3Day", - "params": { - "reactivation_trigger_time": "72h" - }, - "enable_features": [ - "IOSReactivationNotifications" - ] - }, - { - "name": "ESBFirst_7Day", - "params": { - "reactivation_order": "8,7,1" - }, - "enable_features": [ - "IOSReactivationNotifications" - ] - }, - { - "name": "ESBFirst_3Day", - "params": { - "reactivation_order": "8,7,1", - "reactivation_trigger_time": "72h" - }, - "enable_features": [ - "IOSReactivationNotifications" - ] - } - ] - } - ], "IOSReaderMode": [ { "platforms": [ @@ -13750,6 +13680,7 @@ "EnableReadabilityHeuristic", "EnableReaderMode", "EnableReaderModeDefaultBrowserPromo", + "EnableReaderModeTranslation", "ReaderModeUseReadability" ], "disable_features": [ @@ -13813,7 +13744,7 @@ { "name": "Enabled", "enable_features": [ - "kShareExtensionForMultiprofile" + "ShareExtensionForMultiprofile" ] } ] @@ -13949,6 +13880,42 @@ ] } ], + "IOSTabResumptionShopCard": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled_20251013", + "params": { + "ShopCardVariant": "arm_3" + }, + "enable_features": [ + "TabResumptionShopCard" + ] + }, + { + "name": "Enabled_20251013", + "params": { + "ShopCardVariant": "arm_4" + }, + "enable_features": [ + "TabResumptionShopCard" + ] + }, + { + "name": "Enabled_20251013", + "params": { + "ShopCardVariant": "arm_6" + }, + "enable_features": [ + "TabResumptionShopCard" + ] + } + ] + } + ], "IOSTabResumptionThumbnails": [ { "platforms": [ @@ -13967,21 +13934,6 @@ ] } ], - "IOSTailoredNonModalDBPromo": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TailoredNonModalDBPromo" - ] - } - ] - } - ], "IOSTrustedVaultNotification": [ { "platforms": [ @@ -14015,6 +13967,21 @@ ] } ], + "IOSUseDefaultAppsDestinationForPromos": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSUseDefaultAppsDestinationForPromos" + ] + } + ] + } + ], "IOSUseUserDefaultsForExitedCleanlyBeacon": [ { "platforms": [ @@ -14154,6 +14121,49 @@ ] } ], + "IgnoreDuplicateNavs": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_threshold_3s", + "params": { + "duplicate_nav_threshold": "3s" + }, + "enable_features": [ + "IgnoreDuplicateNavs" + ] + } + ] + } + ], + "IgnoreDuplicateNavsOnlyWithUserGesture": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IgnoreDuplicateNavsOnlyWithUserGesture" + ] + } + ] + } + ], "ImageDescriptionsAlternateRouting": [ { "platforms": [ @@ -14218,9 +14228,19 @@ ], "experiments": [ { - "name": "Enabled", + "name": "NoPurge", + "disable_features": [ + "InfiniteTabsFreezingOnMemoryPressure", + "MemoryPurgeOnFreeze" + ] + }, + { + "name": "NoPurgeAndFreeze", "enable_features": [ "InfiniteTabsFreezingOnMemoryPressure" + ], + "disable_features": [ + "MemoryPurgeOnFreeze" ] } ] @@ -14255,6 +14275,28 @@ "enable_features": [ "InputOnViz" ] + }, + { + "name": "InputOnVizPredictionAtDeadlineEnabled", + "params": { + "mode": "UseScrollPredictorForDeadline" + }, + "enable_features": [ + "InputOnViz", + "WaitForLateScrollEvents" + ] + }, + { + "name": "InputOnVizDisabledPredictionAtDeadlineEnabled", + "params": { + "mode": "UseScrollPredictorForDeadline" + }, + "enable_features": [ + "WaitForLateScrollEvents" + ], + "disable_features": [ + "InputOnViz" + ] } ] } @@ -14425,20 +14467,28 @@ "name": "EnabledDSEKeepAlive", "enable_features": [ "KeepDefaultSearchEngineRendererAlive", + "ProcessPerSiteSkipDevtoolsUsers", "TrackEmptyRendererProcessesForReuse" ], "disable_features": [ - "ProcessPerSiteForDSE" + "ProcessPerSiteForDSE", + "ProcessPerSiteUpToMainFrameThreshold" ] }, { "name": "EnabledDSEKeepAliveWithProcessSharing", + "params": { + "ProcessPerSiteMainFrameThreshold": "15" + }, "enable_features": [ "KeepDefaultSearchEngineRendererAlive", "ProcessPerSiteForDSE", + "ProcessPerSiteUpToMainFrameThreshold", "TrackEmptyRendererProcessesForReuse" ], - "disable_features": [] + "disable_features": [ + "ProcessPerSiteSkipDevtoolsUsers" + ] } ] } @@ -14877,37 +14927,30 @@ ] } ], - "LensOverlayBackToLivePage": [ + "LibraryPrefetcherMadvise": [ { "platforms": [ - "chromeos", - "linux", - "mac", - "windows" + "android_webview" ], "experiments": [ { - "name": "LensOverlayBackToLivePageEnabled", + "name": "Enabled_64K", + "params": { + "fallback": "true", + "length": "65536" + }, "enable_features": [ - "LensOverlayBackToPage" + "LibraryPrefetcherMadvise" ] - } - ] - } - ], - "LensSearchSidePanelDefaultWidth": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ + }, { - "name": "LensSearchSidePanelDefaultWidthEnabled", + "name": "Enabled_1", + "params": { + "fallback": "true", + "length": "1" + }, "enable_features": [ - "LensSearchSidePanelDefaultWidthChange" + "LibraryPrefetcherMadvise" ] } ] @@ -14949,6 +14992,21 @@ ] } ], + "LinkedServicesSettingIos": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LinkedServicesSettingIos" + ] + } + ] + } + ], "LiveCaptionChromeOS2": [ { "platforms": [ @@ -15142,6 +15200,25 @@ ] } ], + "LocalNetworkAccessChecksWebSockets": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LocalNetworkAccessChecksWebSockets" + ] + } + ] + } + ], "LofnPermissiveUsbPassthrough": [ { "platforms": [ @@ -15397,6 +15474,27 @@ ] } ], + "MakeMemoryPressureListenerSync": [ + { + "platforms": [ + "android_webview", + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "MakeMemoryPressureListenerSync" + ] + } + ] + } + ], "MaliciousApkDownloadCheck": [ { "platforms": [ @@ -15590,6 +15688,7 @@ "MemoryCacheStrongRefPruningTuneUp": [ { "platforms": [ + "android", "chromeos", "linux", "mac", @@ -15612,6 +15711,22 @@ "ReleaseResourceStrongReferencesOnMemoryPressure" ] }, + { + "name": "DefaultsX3", + "params": { + "memory_cache_strong_ref_resource_size_threshold": "9437184", + "memory_cache_strong_ref_total_size_threshold": "47185920", + "strong_reference_prune_delay": "15m" + }, + "enable_features": [ + "MemoryCacheChangeStrongReferencePruneDelay", + "MemoryCacheStrongReference" + ], + "disable_features": [ + "ReleaseResourceDecodedDataOnMemoryPressure", + "ReleaseResourceStrongReferencesOnMemoryPressure" + ] + }, { "name": "MaxLimits1HourDelay", "params": { @@ -15636,8 +15751,7 @@ "platforms": [ "chromeos", "linux", - "mac", - "windows" + "mac" ], "experiments": [ { @@ -15701,6 +15815,42 @@ ] } ], + "MetricsRenderFrameObserverImprovement": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DidObserveNewFeatureUsageImprovement", + "DidObserveSubresourceLoadImprovement" + ] + } + ] + } + ], + "MigrateAccountManagerDelegate": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "MigrateAccountManagerDelegate" + ] + } + ] + } + ], "MigrateAccountPrefs": [ { "platforms": [ @@ -16105,24 +16255,6 @@ "windows" ], "experiments": [ - { - "name": "Enabled", - "params": { - "http_proxy_connect_job": "true", - "http_stream_factory_job": "true", - "http_stream_factory_job_controller": "true", - "resource_scheduler": "true", - "url_loader": "true", - "url_request_error_job": "true", - "url_request_http_job": "true", - "url_request_job": "true", - "url_request_redirect_job": "true" - }, - "enable_features": [ - "NetTaskScheduler", - "NetworkServiceTaskScheduler" - ] - }, { "name": "Enabled2", "params": { @@ -16152,7 +16284,7 @@ ] } ], - "NewContentForCheckerboardedScrolls": [ + "NewContentForCheckerboardedScrollsPerFrame": [ { "platforms": [ "android_webview", @@ -16165,12 +16297,6 @@ "experiments": [ { "name": "Enabled", - "enable_features": [ - "NewContentForCheckerboardedScrolls" - ] - }, - { - "name": "per_frame", "params": { "mode": "per_frame" }, @@ -16283,21 +16409,6 @@ ] } ], - "NonModalSignInPromo": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "NonModalSignInPromo" - ] - } - ] - } - ], "NonStandardAppearanceValueSliderVertical": [ { "platforms": [ @@ -16480,6 +16591,29 @@ ] } ], + "NtpRealboxNextDesktop": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "CyclingPlaceholders": "true", + "RealboxLayoutMode": "TallBottomContext" + }, + "enable_features": [ + "NtpRealboxNext" + ] + } + ] + } + ], "OcclusionCullingQuadSplitLimit": [ { "platforms": [ @@ -16580,6 +16714,21 @@ ] } ], + "OfferPinToTaskbarInSettings": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OfferPinToTaskbarInSettings" + ] + } + ] + } + ], "OfferPinToTaskbarInfoBar": [ { "platforms": [ @@ -16709,36 +16858,14 @@ "mac", "windows" ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AiModeOmniboxEntryPoint", - "AllowAiModeMatches", - "OmniboxHideAimEntrypointOnUserInput", - "OmniboxToolbelt", - "OpenLensActionUITweaks" - ] - } - ] - } - ], - "OmniboxAnswerActions": [ - { - "platforms": [ - "android" - ], "experiments": [ { "name": "Enabled", "params": { - "ShowAboveKeyboard": "false", - "ShowIfUrlsPresent": "false", - "ShowRichCard": "true" + "HideAimHintTextOnNtpOpen": "true" }, "enable_features": [ - "OmniboxAnswerActions", - "OmniboxSuggestionAnswerMigration" + "AiModeOmniboxEntryPoint" ] } ] @@ -16875,6 +17002,7 @@ { "name": "Enabled", "enable_features": [ + "MlUrlScoreCaching", "MlUrlScoring", "UrlScoringModel" ] @@ -16901,22 +17029,6 @@ ] } ], - "OmniboxMobileParityUpdateV2": [ - { - "platforms": [ - "android", - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OmniboxMobileParityUpdateV2" - ] - } - ] - } - ], "OmniboxMobileParityUpdateV3": [ { "platforms": [ @@ -16990,24 +17102,6 @@ ] } ], - "OmniboxRestoreInvisibleFocusOnly": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "OmniboxRestoreInvisibleFocusOnly" - ] - } - ] - } - ], "OmniboxSiteSearchAndroid": [ { "platforms": [ @@ -17286,6 +17380,26 @@ ] } ], + "OverscrollBehaviorRespectedOnAllScrollContainers": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OverscrollBehaviorRespectedOnAllScrollContainers" + ] + } + ] + } + ], "OzonePlatformAuto": [ { "platforms": [ @@ -17385,6 +17499,7 @@ "price_insights": "true", "price_tracking": "true", "pwa_install": "true", + "sharing_hub": "true", "translate": "true", "zoom": "true" }, @@ -17525,21 +17640,6 @@ ] } ], - "PartitionAllocFewerMemoryRegionsMac": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PartitionAllocFewerMemoryRegions" - ] - } - ] - } - ], "PartitionAllocLargeThreadCacheSizeAndroid": [ { "platforms": [ @@ -17785,22 +17885,27 @@ { "platforms": [ "android", + "android_webview", "chromeos", + "ios", "linux", "mac", "windows" ], "experiments": [ { - "name": "enabled_1M_20250822", + "name": "enabled_512K_20250912", "params": { - "PartitionAllocSchedulerLoopQuarantineConfig": "{\"browser\":{\"main\":{\"branch-capacity-in-bytes\":1048576,\"enable-quarantine\":true,\"enable-zapping\":true,\"leak-on-destruction\":false}}}", + "PartitionAllocSchedulerLoopQuarantineConfig": "{\"browser\":{\"main\":{\"branch-capacity-in-bytes\":524288,\"enable-quarantine\":true,\"enable-zapping\":true,\"leak-on-destruction\":false}}}", "enabled-processes": "browser-only" }, "enable_features": [ "PartitionAllocSchedulerLoopQuarantine", "PartitionAllocSchedulerLoopQuarantineTaskObserverForBrowserUIThread", "PartitionAllocWithAdvancedChecks" + ], + "disable_features": [ + "ScreenAIPartitionAllocAdvancedChecksEnabled" ] } ] @@ -17980,6 +18085,24 @@ ] } ], + "PdfGetSaveDataInBlocks": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PdfGetSaveDataInBlocks" + ] + } + ] + } + ], "PdfInfoBar": [ { "platforms": [ @@ -18016,6 +18139,23 @@ ] } ], + "PdfSaveToDrive": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PdfSaveToDrive" + ] + } + ] + } + ], "PdfUseShowSaveFilePicker": [ { "platforms": [ @@ -18183,45 +18323,6 @@ ] } ], - "PerformanceInterventionString": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "EnabledString1_20250630", - "params": { - "string_version": "1" - }, - "enable_features": [ - "PerformanceInterventionNotificationStringImprovements" - ] - }, - { - "name": "EnabledString2_20250630", - "params": { - "string_version": "2" - }, - "enable_features": [ - "PerformanceInterventionNotificationStringImprovements" - ] - }, - { - "name": "EnabledString3_20250630", - "params": { - "string_version": "3" - }, - "enable_features": [ - "PerformanceInterventionNotificationStringImprovements" - ] - } - ] - } - ], "PermissionElementPromptPositioning": [ { "platforms": [ @@ -18298,6 +18399,25 @@ ] } ], + "PermissionsAIP92": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows", + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PermissionsAIP92" + ] + } + ] + } + ], "PermissionsAIv1": [ { "platforms": [ @@ -18352,6 +18472,21 @@ ] } ], + "PersistentDefaultBrowserPromo": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PersistentDefaultBrowserPromo" + ] + } + ] + } + ], "PickerUI": [ { "platforms": [ @@ -18413,6 +18548,24 @@ ] } ], + "PlatformExperienceHelperNotificationText": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled_5", + "params": { + "UseNotificationTextIndex": "5" + }, + "enable_features": [ + "ShouldUseSpecificPEHNotificationText" + ] + } + ] + } + ], "PlayReadyHardwareSecureDecryption": [ { "platforms": [ @@ -18716,9 +18869,10 @@ ], "experiments": [ { - "name": "Enabled", + "name": "PrefetchEnabled_PreconnectEnabled", "enable_features": [ - "BookmarkTriggerForPreconnect" + "BookmarkTriggerForPreconnect", + "BookmarkTriggerForPrefetch" ] } ] @@ -19005,40 +19159,13 @@ ], "experiments": [ { - "name": "5ms", - "params": { - "hover_dwell_time": "5ms" - }, - "enable_features": [ - "PreloadingEagerHeuristics" - ] - }, - { - "name": "10ms", + "name": "Enabled", "params": { "hover_dwell_time": "10ms" }, "enable_features": [ "PreloadingEagerHeuristics" ] - }, - { - "name": "20ms", - "params": { - "hover_dwell_time": "20ms" - }, - "enable_features": [ - "PreloadingEagerHeuristics" - ] - }, - { - "name": "35ms", - "params": { - "hover_dwell_time": "35ms" - }, - "enable_features": [ - "PreloadingEagerHeuristics" - ] } ] } @@ -19075,7 +19202,8 @@ "name": "Enabled_NoTimeout_Burst", "params": { "kPrerender2FallbackPrefetchSchedulerPolicy": "Burst", - "kPrerender2FallbackPrefetchUseBlockUntilHeadTimetout": "false" + "kPrerender2FallbackPrefetchUseBlockUntilHeadTimetout": "false", + "kPrerender2FallbackUsePreloadServingMetrics": "true" }, "enable_features": [ "Prerender2FallbackPrefetchSpecRules" @@ -19104,27 +19232,6 @@ ] } ], - "PrewarmServiceWorkerRegistrationForDSE": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrewarmServiceWorkerRegistrationForDSE" - ] - } - ] - } - ], "PriceInsightsDesktopExpansionStudy": [ { "platforms": [ @@ -19332,21 +19439,6 @@ ] } ], - "PrivacySandboxAttestationsDefaultDeny": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Disabled", - "disable_features": [ - "DefaultAllowPrivacySandboxAttestations" - ] - } - ] - } - ], "PrivacySandboxGetPromptFromNoticeService": [ { "platforms": [ @@ -19486,6 +19578,21 @@ ] } ], + "ProbeStylusWritingInBackground": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ProbeStylusWritingInBackground" + ] + } + ] + } + ], "ProcessBoundStringEncryption": [ { "platforms": [ @@ -19544,28 +19651,6 @@ ] } ], - "ProcessPerSiteUpToMainFrameThreshold": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "ProcessPerSiteMainFrameThreshold": "15" - }, - "enable_features": [ - "DevToolsSharedProcessInfobar", - "ProcessPerSiteUpToMainFrameThreshold" - ] - } - ] - } - ], "ProcessRankPolicyAndroid": [ { "platforms": [ @@ -19653,31 +19738,6 @@ ] } ], - "ProgrammaticScrollAnimationOverride": [ - { - "platforms": [ - "chromeos", - "mac", - "windows", - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "cubic_bezier_x1": "0.4", - "cubic_bezier_x2": "0.0", - "cubic_bezier_y1": "0.0", - "cubic_bezier_y2": "1.0", - "max_animation_duration": "1.5s" - }, - "enable_features": [ - "ProgrammaticScrollAnimationOverride" - ] - } - ] - } - ], "ProgressiveAccessibility": [ { "platforms": [ @@ -19873,28 +19933,6 @@ ] } ], - "ProtectedAudienceMultiThreadedSellerWorklet": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "TwoThreads", - "params": { - "seller_worklet_thread_pool_size": "2" - }, - "enable_features": [ - "FledgeSellerWorkletThreadPool" - ] - } - ] - } - ], "ProtectedAudienceNoWasmLazyCompilationStudy": [ { "platforms": [ @@ -20268,6 +20306,26 @@ ] } ], + "QuicLongerIdleConnectionTimeout": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "QuicLongerIdleConnectionTimeout" + ] + } + ] + } + ], "QuickDeleteAndroidSurvey": [ { "platforms": [ @@ -20395,30 +20453,34 @@ ], "experiments": [ { - "name": "Enabled_Dogfood", + "name": "Enabled_2025_09_09", + "params": { + "read_aloud_audio_overviews_should_consider_language_in_overview_readability": "true", + "read_aloud_audio_overviews_speed_addition_percentage": "10" + }, "enable_features": [ "ReadAloudAudioOverviews", - "ReadAloudAudioOverviewsFeedback" + "ReadAloudAudioOverviewsFeedback", + "ReadAloudAudioOverviewsSkipDisclaimerWhenPossible", + "ReadAloudServerExperiments" ] } ] } ], - "ReadAloudClankStudy": [ + "ReadAloudReadabilityDelay": [ { "platforms": [ "android" ], "experiments": [ { - "name": "Enabled_20240623", + "name": "Enabled", "params": { - "voices_override": "CiMKA3ZmehIQzqHOv8+FzrzPgM6vzr3OuRoCZWwiAkdSKAIwCQoXCgNpdGISBEFyaWEaAml0IgJJVCgCMAoKGAoDaXRjEgVDb3N0YRoCaXQiAklUKAEwCAoaCgNpdGQSB0NvcmFsbG8aAml0IgJJVCgBMAsKGQoDa2RhEgZPY2Vhbm8aAml0IgJJVCgCMAYKGQoDaGViEgbXoNeU16gaAml3IgJJTCgBMAwKHwoDaGVjEgzXkNeV1rnXk9a2150aAml3IgJJTCgCMAsKGQoDaGVkEgbXkNeS150aAml3IgJJTCgBMAkKHwoDaGVlEgzXkNa115bXlda515EaAml3IgJJTCgCMAcKIgoDbWxjEg/gtKHgtYbgtK/gtY3gtb0aAm1sIgJJTigCMAkKIgoDbWxlEg/gtKTgtJ/gtL7gtJXgtIIaAm1sIgJJTigBMAIKHwoDbWxmEgzgtLXgtL7gtK/gtYEaAm1sIgJJTigCMAwKHwoDbWxtEgzgtKTgtYDgtLDgtIIaAm1sIgJJTigBMAsKHwoDbXJhEgzgpJXgpYvgpLDgpLIaAm1yIgJJTigCMAoKKAoDbXJjEhXgpK7gpLngpL7gpLjgpL7gpJfgpLAaAm1yIgJJTigBMAUKHAoDbXJkEgngpKjgpKbgpYAaAm1yIgJJTigCMAsKHwoDbXJmEgzgpLDgpYHgpKzgpYAaAm1yIgJJTigCMAwKGQoDYWZiEgbFgcSFa2EaAnBsIgJQTCgCMAIKFwoDYm1nEgRNZWNoGgJwbCICUEwoATAMChkKA2ptaxIGQ2htdXJhGgJwbCICUEwoATAKChgKA29kYRIFT2NlYW4aAnBsIgJQTCgCMAgKGgoDemZnEgdKZXppb3JvGgJwbCICUEwoAjAJChYKA3ZmdhIDQWVyGgJybyICUk8oAjAHCigKA3RhYxIV4K6V4K6f4K6x4K+N4K6V4K6w4K+IGgJ0YSICSU4oAjAFCiIKA3RhZBIP4K6q4K614K6z4K6u4K+NGgJ0YSICSU4oATAMCjEKA3RhZhIe4K6q4K+G4K6w4K+B4K6Z4K+N4K6V4K6f4K6y4K+NGgJ0YSICSU4oAjALChwKA3RhZxIJ4K6o4K6k4K6/GgJ0YSICSU4oATAJCh8KA3RlZhIM4LCw4LGC4LCs4LGAGgJ0ZSICSU4oAjAKCiUKA3RlbRIS4LCr4LGA4LCy4LGN4LCh4LGNGgJ0ZSICSU4oATABCisKA21vbBIY4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijGgJ0aCICVEgoAjAFChgKA2FtYRIFQnVsdXQaAnRyIgJUUigBMAwKFwoDY2ZzEgRWYWRpGgJ0ciICVFIoAjAHChcKA2VmdRIER8O2bBoCdHIiAlRSKAIwCQoXCgNtZm0SBEhhdmEaAnRyIgJUUigCMAUKGAoDdG1jEgVTYWhpbBoCdHIiAlRSKAEwBgodCgNoZmQSCtCe0LrQtdCw0L0aAnVrIgJVQSgCMAkKIAoDdmljEg1I4buTbmcgbmfhu41jGgJ2aSICVk4oAjAHCiAKA3ZpZBINQ8OhbmggxJHhu5NuZxoCdmkiAlZOKAEwBgoXCgN2aWUSBFLDqnUaAnZpIgJWTigCMAEKHQoDdmlmEgrEkMOhbSBtw6J5GgJ2aSICVk4oATAF" + "read_aloud_readability_delay_ms_after_page_load": "1500" }, "enable_features": [ - "ReadAloud", - "ReadAloudInOverflowMenuInCCT", - "ReadAloudPlayback" + "ReadAloud" ] } ] @@ -20770,21 +20832,6 @@ ] } ], - "RegenerateKeyForCatastrophicFailures": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RegenerateKeyForCatastrophicFailures" - ] - } - ] - } - ], "RegisterOsUpdateHandlerWin": [ { "platforms": [ @@ -20816,24 +20863,6 @@ ] } ], - "ReloadSelectionModel": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ReloadSelectionModel" - ] - } - ] - } - ], "RemotePageMetadataAndroid": [ { "platforms": [ @@ -20847,6 +20876,7 @@ "supported_locales": "*" }, "enable_features": [ + "PageContentAnnotationsPersistSalientImageMetadata", "RemotePageMetadata" ] } @@ -20889,6 +20919,7 @@ "supported_locales": "*" }, "enable_features": [ + "PageContentAnnotationsPersistSalientImageMetadata", "RemotePageMetadata" ] } @@ -20962,6 +20993,21 @@ ] } ], + "RemoveSearchReadyOmnibox": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RemoveSearchReadyOmnibox" + ] + } + ] + } + ], "RenderArcNotificationsByChrome": [ { "platforms": [ @@ -21009,67 +21055,12 @@ "RenderDocumentWithNavigationQueueing": [ { "platforms": [ + "android", "chromeos", - "fuchsia", - "ios", "linux", "mac", "windows" ], - "experiments": [ - { - "name": "EnabledSubframeWithQueueing", - "params": { - "level": "subframe", - "queueing_level": "full" - }, - "enable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", - "QueueNavigationsWhileWaitingForCommit", - "RenderDocument" - ], - "disable_features": [ - "RenderDocumentCompositorReuse" - ] - }, - { - "name": "EnabledCrashedFrameWithQueueing", - "params": { - "level": "crashed-frame", - "queueing_level": "full" - }, - "enable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", - "QueueNavigationsWhileWaitingForCommit", - "RenderDocument" - ], - "disable_features": [ - "RenderDocumentCompositorReuse" - ] - }, - { - "name": "EnabledAllFramesWithQueueing", - "params": { - "level": "all-frames", - "queueing_level": "full" - }, - "enable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", - "QueueNavigationsWhileWaitingForCommit", - "RenderDocument" - ], - "disable_features": [ - "RenderDocumentCompositorReuse" - ] - } - ] - } - ], - "RenderDocumentWithNavigationQueueing_Android": [ - { - "platforms": [ - "android" - ], "experiments": [ { "name": "EnabledAllFramesWithQueueing", @@ -21281,6 +21272,26 @@ ] } ], + "RestrictPendingInputEventTypeToBlockMainThread": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RestrictPendingInputEventType" + ] + } + ] + } + ], "RetrieveTrustedVaultKeyKeyboardAccessoryAction": [ { "platforms": [ @@ -21481,31 +21492,6 @@ ] } ], - "SafetyCheckNotificationsWithInterstitial": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "SafetyCheckAllowPasswordsNotifications": "true", - "SafetyCheckAllowSafeBrowsingNotifications": "true", - "SafetyCheckAllowUpdateChromeNotifications": "true", - "SafetyCheckNotificationsExperimentType": "1", - "SafetyCheckNotificationsImpressionLimit": "0", - "SafetyCheckNotificationsImpressionTrigger": "1", - "SafetyCheckNotificationsProvisionalEnabled": "true" - }, - "enable_features": [ - "OmahaServiceRefactor", - "SafetyCheckNotifications" - ] - } - ] - } - ], "SafetyCheckUnusedSitePermissions": [ { "platforms": [ @@ -21525,28 +21511,6 @@ ] } ], - "SafetyHub": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "background-password-check-interval": "30d" - }, - "enable_features": [ - "SafetyHub" - ] - } - ] - } - ], "SafetyHubDisruptiveNotificationRevocation": [ { "platforms": [ @@ -21598,6 +21562,28 @@ ] } ], + "SafetyHubIncreasePasswordCheckFrequency": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows", + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "background-password-check-interval": "10d" + }, + "enable_features": [ + "SafetyHub" + ] + } + ] + } + ], "SafetyHubOneOffHats": [ { "platforms": [ @@ -22599,21 +22585,6 @@ ] } ], - "ScannerDogfood": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled_Dogfood", - "enable_features": [ - "ScannerDogfood" - ] - } - ] - } - ], "SchedQoS": [ { "platforms": [ @@ -22769,21 +22740,6 @@ ] } ], - "ScreenAIPartitionAllocAdvancedChecksEnabled": [ - { - "platforms": [ - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ScreenAIPartitionAllocAdvancedChecksEnabled" - ] - } - ] - } - ], "ScreenCaptureKitMacScreen": [ { "platforms": [ @@ -22829,42 +22785,6 @@ ] } ], - "ScrimForBrowserWindowModal": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ScrimForBrowserWindowModal" - ] - } - ] - } - ], - "ScrimForTabModal": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ScrimForTabModal" - ] - } - ] - } - ], "ScriptBlockingDryRunIOS": [ { "platforms": [ @@ -23078,24 +22998,6 @@ ] } ], - "SearchPrefetchAndroidInIncognito": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_INCOGNITO_STABLE", - "params": { - "allow_incognito": "true" - }, - "enable_features": [ - "SearchNavigationPrefetch" - ] - } - ] - } - ], "SearchPrefetchHighPriorityPrefetches": [ { "platforms": [ @@ -23176,25 +23078,6 @@ ] } ], - "SegmentationPlatformUmaFromSqlDb": [ - { - "platforms": [ - "android", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SegmentationPlatformUmaFromSqlDb" - ] - } - ] - } - ], "SelectFileOpenDocument": [ { "platforms": [ @@ -23316,6 +23199,27 @@ ] } ], + "SeparateDeferModuleScriptTasks": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SeparateDeferModuleScriptTasks" + ] + } + ] + } + ], "ServerBasedTranscriptionForScreencast": [ { "platforms": [ @@ -23359,43 +23263,61 @@ ] } ], - "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl": [ + "ServiceWorkerBackgroundUpdate": [ { "platforms": [ "android", "android_webview", "chromeos", - "chromeos_lacros", - "fuchsia", "linux", "mac", "windows" ], "experiments": [ { - "name": "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl", + "name": "PreflightForDSE", + "params": { + "AvoidUnnecessaryBeforeUnloadCheckSyncMode": "WithSendBeforeUnload" + }, "enable_features": [ + "AvoidUnnecessaryBeforeUnloadCheckSync", + "PrewarmServiceWorkerRegistrationForDSE", + "ReduceCallingServiceWorkerRegisteredStorageKeysOnStartup", + "ServiceWorkerBackgroundUpdateForRegisteredStorageKeys", + "ServiceWorkerMergeFindRegistrationForClientUrl" + ], + "disable_features": [ + "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl", + "ServiceWorkerBackgroundUpdateForServiceWorkerScopeCache" + ] + }, + { + "name": "BackgroundUpdateForScopeCache", + "params": { + "AvoidUnnecessaryBeforeUnloadCheckSyncMode": "WithSendBeforeUnload" + }, + "enable_features": [ + "AvoidUnnecessaryBeforeUnloadCheckSync", + "PrewarmServiceWorkerRegistrationForDSE", + "ReduceCallingServiceWorkerRegisteredStorageKeysOnStartup", + "ServiceWorkerBackgroundUpdateForRegisteredStorageKeys", + "ServiceWorkerBackgroundUpdateForServiceWorkerScopeCache", + "ServiceWorkerMergeFindRegistrationForClientUrl" + ], + "disable_features": [ "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl" ] - } - ] - } - ], - "ServiceWorkerBackgroundUpdateForRegisteredStorageKeys": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ + }, { - "name": "ServiceWorkerBackgroundUpdateForRegisteredStorageKeys", + "name": "BackgroundUpdateForRegistration", + "params": { + "AvoidUnnecessaryBeforeUnloadCheckSyncMode": "WithSendBeforeUnload" + }, "enable_features": [ + "AvoidUnnecessaryBeforeUnloadCheckSync", + "PrewarmServiceWorkerRegistrationForDSE", + "ReduceCallingServiceWorkerRegisteredStorageKeysOnStartup", + "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl", "ServiceWorkerBackgroundUpdateForRegisteredStorageKeys", "ServiceWorkerBackgroundUpdateForServiceWorkerScopeCache" ], @@ -23406,21 +23328,6 @@ ] } ], - "ServiceWorkerBackgroundUpdateForRegisteredStorageKeysForWebView": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "ServiceWorkerBackgroundUpdateForRegisteredStorageKeysForWebView", - "enable_features": [ - "ServiceWorkerBackgroundUpdateForRegisteredStorageKeysFieldTrialControlled" - ] - } - ] - } - ], "ServiceWorkerStaticRouterRaceNetworkRequestPerformanceImprovement": [ { "platforms": [ @@ -23806,6 +23713,25 @@ ] } ], + "ShowManualNotificationRevocationsSafetyHub": [ + { + "platforms": [ + "android", + "windows", + "mac", + "linux", + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ShowManualNotificationRevocationsSafetyHub" + ] + } + ] + } + ], "ShowNewTabAnimationsAndroid": [ { "platforms": [ @@ -23836,24 +23762,25 @@ ] } ], - "SideBySideDogfood": [ + "SideBySide": [ { "platforms": [ "linux", "mac", - "windows" + "windows", + "chromeos" ], "experiments": [ { - "name": "SideBySide_Dogfood", + "name": "Enabled_WithMenu", "params": { - "drop_target_max_width": "360", - "drop_target_min_width": "88", - "drop_target_show_delay": "700ms", - "drop_target_width_percentage": "20", - "mini_toolbar_active_config": "hide" + "mini_toolbar_active_config": "showmenu" }, "enable_features": [ + "CloseActiveTabInSplitViewViaHotkey", + "IPH_SideBySidePinnableFeature", + "IPH_SideBySideTabSwitchFeature", + "ReloadSelectionModel", "SideBySide", "SideBySideLinkMenuNewBadge", "SideBySideSessionRestore" @@ -23943,23 +23870,6 @@ ] } ], - "SignInPromoMaterialNextUI": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SignInPromoMaterialNextUI" - ] - } - ] - } - ], "SimpleCachePrioritizedCaching": [ { "platforms": [ @@ -24196,21 +24106,6 @@ ] } ], - "SlimDirectReceiverIpc": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SlimDirectReceiverIpc" - ] - } - ] - } - ], "SlopBucket": [ { "platforms": [ @@ -24261,6 +24156,29 @@ ] } ], + "SocketPoolSizePerTopLevelSiteTrial": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "SocketPoolSizePerTopLevelSiteTrialNormalProfileLimit": "513", + "SocketPoolSizePerTopLevelSiteTrialWebSocketProfileLimit": "513" + }, + "enable_features": [ + "SocketPoolSizePerTopLevelSiteTrial" + ] + } + ] + } + ], "SoftNavigationDetectionAdvancedPaintAttribution": [ { "platforms": [ @@ -24581,6 +24499,24 @@ ] } ], + "StringWidthCache": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "StringWidthCache" + ] + } + ] + } + ], "SubframePriorityContribution": [ { "platforms": [ @@ -24600,28 +24536,6 @@ ] } ], - "SunfishFeature": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Launch", - "enable_features": [ - "ScannerUpdate", - "SunfishFeature" - ] - }, - { - "name": "Enabled_Dogfood", - "enable_features": [ - "SunfishFeature" - ] - } - ] - } - ], "SupportMultipleServerRequestsForPixPayments": [ { "platforms": [ @@ -24646,9 +24560,9 @@ ], "experiments": [ { - "name": "Enabled_empty", + "name": "Enabled_HangWatcher", "params": { - "suppress_memory_listeners_mask": "" + "suppress_memory_listeners_mask": "0200000000000000000000000000000000000000000000000" }, "enable_features": [ "SuppressMemoryListeners" @@ -24657,26 +24571,6 @@ ] } ], - "SuppressMemoryMonitor": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_empty", - "params": { - "suppress_memory_monitor_mask": "" - }, - "enable_features": [ - "SuppressMemoryMonitor" - ] - } - ] - } - ], "SuppressesNetworkActivitiesOnSlowNetwork": [ { "platforms": [ @@ -24767,6 +24661,28 @@ ] } ], + "SyncMoveValuablesToProfileDb": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SyncMoveValuablesToProfileDb" + ] + } + ] + } + ], "SyncPointGraphValidation": [ { "platforms": [ @@ -24789,6 +24705,26 @@ ] } ], + "SyncUseOsCryptAsync": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SyncUseOsCryptAsync" + ] + } + ] + } + ], "SysPkJPandVKMv3": [ { "platforms": [ @@ -24956,6 +24892,21 @@ ] } ], + "TabGridEmptyThumbnail": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TabGridEmptyThumbnail" + ] + } + ] + } + ], "TabGridNewTransitions": [ { "platforms": [ @@ -25175,6 +25126,24 @@ ] } ], + "TaiyakiFreOnly": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "choice_screen_surface": "fre_only" + }, + "enable_features": [ + "Taiyaki" + ] + } + ] + } + ], "TaskManagerDesktopRefresh": [ { "platforms": [ @@ -25193,84 +25162,6 @@ ] } ], - "TcpConnectionPoolSizeTrial": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_255", - "params": { - "TcpConnectionPoolSizeTrialNormal": "255", - "TcpConnectionPoolSizeTrialWebSocket": "255" - }, - "enable_features": [ - "TcpConnectionPoolSizeTrial" - ] - }, - { - "name": "Enabled_257", - "params": { - "TcpConnectionPoolSizeTrialNormal": "257", - "TcpConnectionPoolSizeTrialWebSocket": "257" - }, - "enable_features": [ - "TcpConnectionPoolSizeTrial" - ] - }, - { - "name": "Enabled_512", - "params": { - "TcpConnectionPoolSizeTrialNormal": "512", - "TcpConnectionPoolSizeTrialWebSocket": "512" - }, - "enable_features": [ - "TcpConnectionPoolSizeTrial" - ] - }, - { - "name": "Enabled_1024", - "params": { - "TcpConnectionPoolSizeTrialNormal": "1024", - "TcpConnectionPoolSizeTrialWebSocket": "1024" - }, - "enable_features": [ - "TcpConnectionPoolSizeTrial" - ] - } - ] - } - ], - "TerminateRendererOnBrowserCommitExhaustion": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "RetryOnly", - "enable_features": [ - "PageAllocatorRetryOnCommitFailure" - ], - "disable_features": [ - "TerminationTargetPolicy" - ] - }, - { - "name": "RetryAndTerminate", - "enable_features": [ - "PageAllocatorRetryOnCommitFailure", - "TerminationTargetPolicy" - ] - } - ] - } - ], "TextInputHostMojoCapabilityControlWorkaround": [ { "platforms": [ @@ -25536,25 +25427,6 @@ ] } ], - "TrackingProtection3pcd": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TrackingProtection3pcd" - ] - } - ] - } - ], "TranslateBubbleOpenSettings": [ { "platforms": [ @@ -25923,7 +25795,7 @@ ] } ], - "UnoDesktopBookmarksAndReadingList": [ + "UnoPhase2Desktop": [ { "platforms": [ "linux", @@ -25934,8 +25806,10 @@ { "name": "Enabled", "enable_features": [ - "ReadingListEnableSyncTransportModeUponSignIn", - "SyncEnableBookmarksInTransportMode" + "ForcedDiceMigration", + "IPH_SignInBenefits", + "ReplaceSyncPromosWithSignInPromos", + "SyncEnableContactInfoDataTypeForCustomPassphraseUsers" ] } ] @@ -25944,7 +25818,6 @@ "UpdateStateBeforeUnbinding": [ { "platforms": [ - "android", "android_webview" ], "experiments": [ @@ -26166,6 +26039,39 @@ ] } ], + "UseIsUnboundCheck": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseIsUnboundCheck" + ] + } + ] + } + ], + "UseIssueTokenToFetchAccessTokens": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseIssueTokenToFetchAccessTokens" + ] + } + ] + } + ], "UseSCContentSharingPicker": [ { "platforms": [ @@ -26253,7 +26159,10 @@ ], "experiments": [ { - "name": "Enabled", + "name": "EnabledWithMediumIdleTimeout", + "params": { + "idle_before_heavyweight": "2s" + }, "enable_features": [ "UserEducationExperienceVersion2Point5" ] @@ -26389,6 +26298,30 @@ ] } ], + "V8IneffectiveMarkCompact": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "HighSizeAndCpuThreshold", + "params": { + "ineffective_gc_mutator_utilization_threshold": "0.2", + "ineffective_gc_size_threshold": "0.95" + }, + "enable_features": [ + "V8Flag_detect_ineffective_gcs_near_heap_limit" + ] + } + ] + } + ], "V8LargePagePool": [ { "platforms": [ @@ -26520,7 +26453,7 @@ { "name": "Enabled", "params": { - "V8PreconfigureOldGenSize": "32" + "V8PreconfigureOldGenSize": "16" }, "enable_features": [ "V8PreconfigureOldGen" @@ -26941,29 +26874,6 @@ ] } ], - "WaitForLateScrollEvents": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "DeadlineRatio0_5", - "params": { - "deadline_ratio": "0.5" - }, - "enable_features": [ - "WaitForLateScrollEvents" - ] - } - ] - } - ], "WasmTtsComponentUpdaterV3Enabled": [ { "platforms": [ @@ -27045,6 +26955,24 @@ ] } ], + "WebAuthenticationNewRefreshFlow": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebAuthenticationNewRefreshFlow" + ] + } + ] + } + ], "WebContentsDiscard": [ { "platforms": [ @@ -27063,21 +26991,6 @@ ] } ], - "WebFeedDeprecation": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebFeedKillSwitch" - ] - } - ] - } - ], "WebGPU": [ { "platforms": [ @@ -27414,11 +27327,7 @@ "platforms": [ "android", "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "chromeos" ], "experiments": [ { @@ -27883,6 +27792,21 @@ ] } ], + "WebViewCacheBoundaryInterfaceMethods": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewCacheBoundaryInterfaceMethods" + ] + } + ] + } + ], "WebViewCacheSizeLimitDerivedFromAppCacheQuota": [ { "platforms": [ @@ -27958,7 +27882,7 @@ ] } ], - "WebViewFieldSystemTracing": [ + "WebViewEarlyStartupTracing": [ { "platforms": [ "android_webview" @@ -27967,8 +27891,8 @@ { "name": "Enabled", "enable_features": [ - "EnablePerfettoSystemBackgroundTracing", - "EnablePerfettoSystemTracing" + "WebViewEarlyPerfettoInit", + "WebViewEarlyStartupTracing" ] } ] @@ -28019,6 +27943,21 @@ ] } ], + "WebViewOptInToGmsBindServiceOptimization": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewOptInToGmsBindServiceOptimization" + ] + } + ] + } + ], "WebViewPrefetchHighestPrefetchPriority": [ { "platforms": [ @@ -28055,51 +27994,6 @@ ] } ], - "WebViewQuicConnectionTimeout": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled_100s", - "params": { - "WebViewQuicConnectionTimeoutSeconds": "100" - }, - "enable_features": [ - "WebViewQuicConnectionTimeout" - ] - }, - { - "name": "Enabled_200s", - "params": { - "WebViewQuicConnectionTimeoutSeconds": "200" - }, - "enable_features": [ - "WebViewQuicConnectionTimeout" - ] - }, - { - "name": "Enabled_300s", - "params": { - "WebViewQuicConnectionTimeoutSeconds": "300" - }, - "enable_features": [ - "WebViewQuicConnectionTimeout" - ] - }, - { - "name": "Enabled_400s", - "params": { - "WebViewQuicConnectionTimeoutSeconds": "400" - }, - "enable_features": [ - "WebViewQuicConnectionTimeout" - ] - } - ] - } - ], "WebViewRecordAppCacheHistograms": [ { "platforms": [ @@ -28257,21 +28151,6 @@ ] } ], - "WebViewSurfaceControl": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebViewNewInvalidateHeuristic" - ] - } - ] - } - ], "WebViewSurfaceControlForTV": [ { "platforms": [ @@ -28356,21 +28235,6 @@ ] } ], - "WebViewUseBackgroundThreadForGms": [ - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebViewUseBackgroundThreadForGms" - ] - } - ] - } - ], "WebViewUseMetricsUploadServiceOnlySdkRuntime": [ { "platforms": [ @@ -28472,6 +28336,26 @@ ] } ], + "WhatsNewRefresh": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "en_site_id": "p5xavcMU50ugnJ3q1cK0R26c3Tsi" + }, + "enable_features": [ + "WhatsNewDesktopRefresh" + ] + } + ] + } + ], "WhatsNewSparkEdition": [ { "platforms": [ @@ -28557,6 +28441,21 @@ ] } ], + "WinSboxNoDbghelpWarmup": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WinSboxNoDbghelpWarmup" + ] + } + ] + } + ], "WinSboxNoFakeGdiInit": [ { "platforms": [ @@ -28572,6 +28471,21 @@ ] } ], + "WinSboxStrictHandleChecks": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WinSboxStrictHandleChecks" + ] + } + ] + } + ], "WindowsSystemTracing": [ { "platforms": [ diff --git a/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/tools/under-control/src/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom index c1ee0c11..2758d78f 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 @@ -3804,7 +3804,7 @@ enum WebFeature { kOBSOLETE_WindowOpenFullscreenRequested = 4525, kOBSOLETE_FullscreenAllowedByWindowOpen = 4526, // The items above roughly this point are available in the M113 branch. - kAttributeValueContainsLtOrGt = 4527, + kOBSOLETE_AttributeValueContainsLtOrGt = 4527, kOBSOLETE_V8ImportAssertionDeprecatedSyntax = 4528, kImageCaptureBackgroundBlur = 4529, kPrivateNetworkAccessPreflightError = 4530, @@ -3879,7 +3879,7 @@ enum WebFeature { kOBSOLETE_TextWrapPrettyFail = 4595, kContainerQueryEvalUnknown = 4596, kOBSOLETE_EventTimingPresentationPromiseResolvedAfterReport = 4597, - kGetCoalescedEventsInInsecureContext = 4598, + kOBSOLETE_GetCoalescedEventsInInsecureContext = 4598, kCSPEESameOriginBlanketEnforcement = 4599, // The items above roughly this point are available in the M116 branch. kSharedDictionaryUsed = 4601, @@ -4429,8 +4429,8 @@ enum WebFeature { kV8PaymentManager_UserHint_AttributeGetter = 5125, kV8PaymentManager_UserHint_AttributeSetter = 5126, kPerformanceNavigationTimingConfidence = 5127, - kHttpParsersParseDateFromUTCStringDifferent = 5128, - kHttpParsersParseDateFromStringDifferent = 5129, + kOBSOLETE_HttpParsersParseDateFromUTCStringDifferent = 5128, + kOBSOLETE_HttpParsersParseDateFromStringDifferent = 5129, kMediaQueryRangeSyntax = 5130, kParseHTMLSafe = 5131, kSetHTMLSafe = 5132, @@ -4901,10 +4901,12 @@ enum WebFeature { kSchedulerYieldNonTrivialInherit = 5590, kSchedulerYieldNonTrivialInheritCrossFrameIgnored = 5591, kLocalNetworkAccessPrivateAliasUse = 5592, + // The items above roughly this point are available in the M138 branch. kV8URLPattern_Generate_Method = 5593, kSelectMultipleSizeOne = 5594, kWebGPUFeatureLevelCompatibility = 5595, kOverscrollBehaviorOnNonScrollableScrollContainer = 5596, + // The items above roughly this point are available in the M139 branch. kInteractiveContentSummaryDescendant = 5597, kSpeculationRulesEagernessEager = 5598, kCSSSelectorPseudoNot = 5599, @@ -4937,6 +4939,7 @@ enum WebFeature { kSharedWorkerStartOnAndroid = 5626, kLocalNetworkAccessWithinSharedWorker = 5627, kLocalNetworkAccessWithinDedicatedWorker = 5628, + // The items above roughly this point are available in the M140 branch. kCSSPseudoParentInScope = 5629, kInterestHintPseudoElement = 5630, kCookieStoreEmptyPath = 5631, @@ -4962,6 +4965,26 @@ enum WebFeature { kV8WasmCustomDescriptors = 5651, kSRIIntegrityAttributeOnInlineScript = 5652, kCredentialsGetImmediateMediationWithPasswordsOnly = 5653, + // The items above roughly this point are available in the M141 branch. + kCSSAtRuleRoute = 5654, + kAbsposPositionTryFallbacksChange = 5655, + kMulticastControllerJoinGroupFunction = 5656, + kMulticastControllerLeaveGroupFunction = 5657, + kMulticastControllerJoinedGroupsAttribute = 5658, + kContainerNameQueryFailedTreeScope = 5659, + kLocalNetworkAccessWebSocketResourceNotKnownPrivate = 5660, + kCSSPseudoElementUsesImplicitAnchor = 5661, + kLineClampByLinesOverflows = 5662, + kPointerRawUpdateEventsInInsecureContext = 5663, + kReportToHeader = 5664, + kReportingEndpointsHeader = 5665, + kOverscrollBehaviorWithOverflowHidden = 5666, + kWebCodecsAv1EncodingWithQP = 5667, + kExternalSVGDocumentResources = 5668, + kIndexedDBGetAllRecords = 5669, + kResolvedColumnRuleWidthWithNoneOrHiddenStyle = 5670, + kResolvedOutlineWidthWithNoneOrHiddenStyle = 5671, + kContextMenuEventDefaultPrevented = 5672, // 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 dd6185b0..9827715a 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 @@ -510,6 +510,8 @@ struct WebPreferences { bool content_based_fingerprinting_protection_enabled = false; + bool ai_prompt_api_enabled = false; + [EnableIf=is_android] bool increment_local_surface_id_for_mainframe_same_doc_navigation = true; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl index 845d72fb..e23919af 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger.idl @@ -4,13 +4,23 @@ // https://drafts.csswg.org/web-animations-2/#the-animationtrigger-interface -enum AnimationTriggerBehavior { "once", "repeat", "alternate", "state" }; +// https://github.com/w3c/csswg-drafts/issues/12611#issue-3326243729 +enum AnimationTriggerBehavior { + "play", + "pause", + "reset", + "play-once", + "play-alternate", + "play-forwards", + "play-backwards", + "play-pause", + "replay", +}; [ Exposed=Window, RuntimeEnabled=AnimationTrigger ] interface AnimationTrigger { - readonly attribute AnimationTriggerBehavior behavior; - [RaisesException] void addAnimation(Animation animation); + [RaisesException] void addAnimation(Animation animation, DOMString action, AnimationTriggerBehavior behavior); void removeAnimation(Animation animation); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger.idl new file mode 100755 index 00000000..7d47eef0 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger.idl @@ -0,0 +1,14 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://drafts.csswg.org/web-animations-2/#the-animationtrigger-interface + +[ + Exposed=Window, + RuntimeEnabled=AnimationTrigger +] interface EventTrigger : AnimationTrigger { + [CallWith=ExecutionContext, RaisesException] constructor(optional EventTriggerOptions options = {}); + readonly attribute DOMString eventType; + readonly attribute EventTarget eventTarget; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger_options.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger_options.idl new file mode 100755 index 00000000..519345dd --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/event_trigger_options.idl @@ -0,0 +1,10 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://drafts.csswg.org/web-animations-2/#the-animationtriggeroptions-dictionary + +dictionary EventTriggerOptions { + DOMString eventType; + EventTarget eventTarget; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/timeline_trigger_options.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/timeline_trigger_options.idl index 76c86cfe..df3fdbdd 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/timeline_trigger_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/timeline_trigger_options.idl @@ -5,7 +5,6 @@ // https://drafts.csswg.org/web-animations-2/#the-animationtriggeroptions-dictionary dictionary TimelineTriggerOptions { - AnimationTriggerBehavior behavior = "once"; AnimationTimeline? timeline; (DOMString or TimelineRangeOffset) rangeStart = "normal"; (DOMString or TimelineRangeOffset) rangeEnd = "normal"; diff --git a/tools/under-control/src/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_test.idl b/tools/under-control/src/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_test.idl new file mode 100755 index 00000000..2071cd91 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_test.idl @@ -0,0 +1,13 @@ +// 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. + +// Interface to retrieve the canvas noise token associated with the +// ExecutionContext. It's not enabled outside of test environments. +[ + Exposed=(Window, Worker), + RuntimeEnabled=CanvasInterventionsTest +] +interface CanvasInterventionsTest { + [CallWith=ExecutionContext] static DOMString? getCanvasNoiseToken(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/css_route_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_route_rule.idl new file mode 100755 index 00000000..fc18fb11 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_route_rule.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. + +// TODO(crbug.com/436805487): Link to spec, once it surfaces. + +[Exposed=Window, RuntimeEnabled=RouteMatching] +interface CSSRouteRule : CSSConditionRule {}; 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 f791b314..26b6e09a 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 @@ -223,6 +223,8 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; // The (experimental) DOM Parts API. [RuntimeEnabled=DOMPartsAPI] DocumentPartRoot getPartRoot(); + [RuntimeEnabled=RouteMatching] readonly attribute RouteMap routeMap; + // Event handler attributes attribute EventHandler onbeforecopy; attribute EventHandler onbeforecut; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/form_control_range.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/form_control_range.idl index 3e9b1411..9a50f607 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/form_control_range.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/form_control_range.idl @@ -7,4 +7,10 @@ RuntimeEnabled=FormControlRange ] interface FormControlRange : AbstractRange { [CallWith=Document] constructor(); + + [RaisesException] void setFormControlRange(Node element, + unsigned long start, + unsigned long end); + + stringifier; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl index 673246e1..fbc97b3b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/global_event_handlers.idl @@ -120,7 +120,7 @@ interface mixin GlobalEventHandlers { attribute EventHandler onlostpointercapture; attribute EventHandler onpointerdown; attribute EventHandler onpointermove; - attribute EventHandler onpointerrawupdate; + [SecureContext] attribute EventHandler onpointerrawupdate; attribute EventHandler onpointerup; attribute EventHandler onpointercancel; attribute EventHandler onpointerover; 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 52cc2ab3..f99027b1 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 @@ -52,7 +52,7 @@ interface ShadowRoot : DocumentFragment { // When the host element is the target of an IDREF attribute like // aria-activedescendant, the reference resolves to the referenceTarget. // See https://crbug.com/346835896 - [RuntimeEnabled=ShadowRootReferenceTarget] attribute DOMString referenceTarget; + [RuntimeEnabled=ShadowRootReferenceTarget] attribute DOMString? referenceTarget; [RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) string); [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) html, SetHTMLUnsafeOptions options); diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root_init.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root_init.idl index deede3d5..2076b397 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/shadow_root_init.idl @@ -14,7 +14,7 @@ dictionary ShadowRootInit { [RuntimeEnabled=ScopedCustomElementRegistry] CustomElementRegistry? customElementRegistry; boolean serializable; boolean clonable; - [RuntimeEnabled=ShadowRootReferenceTarget] DOMString referenceTarget; + [RuntimeEnabled=ShadowRootReferenceTarget] DOMString? referenceTarget; // Note: if you add a parameter here, be sure to add it to the list of checks // in Element::attachShadow() for existing declarative shadow roots. }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/editing/ime/text_format.idl b/tools/under-control/src/third_party/blink/renderer/core/editing/ime/text_format.idl index 586ff58b..48f60982 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/editing/ime/text_format.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/editing/ime/text_format.idl @@ -13,7 +13,10 @@ enum UnderlineThickness { "none", "thin", "thick" }; [ Exposed=Window ] interface TextFormat { - constructor(optional TextFormatInit options = {}); + // TODO(crbug.com/354497121): Remove "RaisesException" when the `underlineStyle` + // and `underlineThickness` attributes are converted to enums as per the spec [1]. + // [1]: https://w3c.github.io/edit-context/#textformatupdateevent + [RaisesException] constructor(optional TextFormatInit options = {}); readonly attribute unsigned long rangeStart; readonly attribute unsigned long rangeEnd; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/before_create_policy_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/before_create_policy_event.idl deleted file mode 100755 index 716ef110..00000000 --- a/tools/under-control/src/third_party/blink/renderer/core/events/before_create_policy_event.idl +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://github.com/w3c/webappsec-trusted-types/issues/270#issue-579152412 - -[RuntimeEnabled=TrustedTypeBeforePolicyCreationEvent, Exposed=Window] -interface BeforeCreatePolicyEvent : Event { - attribute DOMString policyName; -}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event.idl new file mode 100755 index 00000000..e7e44c4c --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event.idl @@ -0,0 +1,11 @@ +// 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. + +[ + Exposed=Window, + RuntimeEnabled=FedCmDelegation +] interface EmailVerifiedEvent : Event { + constructor(DOMString type, optional EmailVerifiedEventInit eventInitDict = {}); + readonly attribute DOMString presentationToken; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event_init.idl b/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event_init.idl new file mode 100755 index 00000000..fc3c4861 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/events/email_verified_event_init.idl @@ -0,0 +1,7 @@ +// 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 EmailVerifiedEventInit : EventInit { + DOMString presentationToken = ""; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 b/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 index 9b3fb549..ecf2ec53 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 +++ b/tools/under-control/src/third_party/blink/renderer/core/events/event_type_names.json5 @@ -261,6 +261,7 @@ "reading", "readingerror", "readystatechange", + "redraw", "reflectionchange", "rejectionhandled", "release", @@ -276,6 +277,7 @@ "resourcetimingbufferfull", "result", "resume", + "route", "rtcrtptransportprocessor", "rtctransform", "samplebufferfull", diff --git a/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc b/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc index 714b713c..c5428102 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -49,7 +49,7 @@ #include "media/base/media_switches.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/common/features.h" -#include "third_party/blink/public/common/fingerprinting_protection/canvas_noise_token.h" +#include "third_party/blink/public/common/fingerprinting_protection/noise_token.h" #include "third_party/blink/public/common/history/session_history_constants.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/common/input/web_menu_source_type.h" @@ -63,6 +63,7 @@ #include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h" #include "third_party/blink/public/mojom/page/draggable_region.mojom-blink.h" #include "third_party/blink/public/mojom/page/prerender_page_param.mojom.h" +#include "third_party/blink/public/mojom/page/widget.mojom-blink.h" #include "third_party/blink/public/mojom/partitioned_popins/partitioned_popin_params.mojom.h" #include "third_party/blink/public/mojom/window_features/window_features.mojom-blink.h" #include "third_party/blink/public/platform/interface_registry.h" @@ -503,7 +504,7 @@ WebView* WebView::Create( blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, int32_t history_index, int32_t history_length, - const std::optional& canvas_noise_token) { + const std::optional& canvas_noise_token) { return WebViewImpl::Create( client, is_hidden ? mojom::blink::PageVisibilityState::kHidden @@ -534,7 +535,7 @@ WebViewImpl* WebViewImpl::Create( blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, int32_t history_index, int32_t history_length, - const std::optional& canvas_noise_token) { + const std::optional& canvas_noise_token) { return new WebViewImpl( client, visibility, std::move(prerender_param), fenced_frame_mode, compositing_enabled, widgets_never_composited, opener, @@ -610,7 +611,7 @@ WebViewImpl::WebViewImpl( blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, int32_t history_index, int32_t history_length, - const std::optional& canvas_noise_token) + const std::optional& canvas_noise_token) : widgets_never_composited_(widgets_never_composited), web_view_client_(client), chrome_client_(MakeGarbageCollected(this)), @@ -720,9 +721,11 @@ bool WebViewImpl::StartPageScaleAnimation(const gfx::Point& target_position, LocalFrameView* view = MainFrameImpl()->GetFrameView(); if (view && view->GetScrollableArea()) { + // TODO(crbug.com/414556050): Pass the correct `ScrollSourceType`. view->GetScrollableArea()->SetScrollOffset( ScrollOffset(gfx::Vector2dF(clamped_point.OffsetFromOrigin())), - mojom::blink::ScrollType::kProgrammatic); + mojom::blink::ScrollType::kProgrammatic, + cc::ScrollSourceType::kNone); } return false; @@ -1936,6 +1939,10 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, RuntimeEnabledFeatures::SetReduceHardwareConcurrencyEnabled(true); RuntimeEnabledFeatures::SetReduceScreenSizeEnabled(true); } + + if (prefs.ai_prompt_api_enabled) { + RuntimeEnabledFeatures::SetAIPromptAPIEnabled(true); + } } void WebViewImpl::ThemeChanged() { @@ -3245,8 +3252,10 @@ void WebViewImpl::ResetScrollAndScaleState() { ScrollableArea* scrollable_area = frame_view->LayoutViewport(); if (!scrollable_area->GetScrollOffset().IsZero()) { + // TODO(crbug.com/414556050): Pass the correct `ScrollSourceType`. scrollable_area->SetScrollOffset(ScrollOffset(), - mojom::blink::ScrollType::kProgrammatic); + mojom::blink::ScrollType::kProgrammatic, + cc::ScrollSourceType::kNone); } } @@ -3313,13 +3322,15 @@ gfx::Transform WebViewImpl::GetDeviceEmulationTransform() const { } void WebViewImpl::EnableDeviceEmulation(const DeviceEmulationParams& params) { - web_widget_->EnableDeviceEmulation(params); + web_widget_->EnableDeviceEmulation( + params, mojom::blink::DeviceEmulationCacheBehavior::kClearCache); } void WebViewImpl::ActivateDevToolsTransform( - const DeviceEmulationParams& params) { + const DeviceEmulationParams& params, + const mojom::blink::DeviceEmulationCacheBehavior& cache_behavior) { gfx::Transform device_emulation_transform = - dev_tools_emulator_->EnableDeviceEmulation(params); + dev_tools_emulator_->EnableDeviceEmulation(params, cache_behavior); SetDeviceEmulationTransform(device_emulation_transform); } @@ -3477,11 +3488,11 @@ void WebViewImpl::UpdateUseOverlayScrollbar(bool use_overlay_scrollbar) { #endif void WebViewImpl::UpdateCanvasNoiseToken( - std::optional canvas_noise_token) { + std::optional canvas_noise_token) { GetPage()->SetCanvasNoiseToken(canvas_noise_token); } -std::optional WebViewImpl::CanvasNoiseTokenForTesting() { +std::optional WebViewImpl::CanvasNoiseTokenForTesting() { return GetPage()->CanvasNoiseToken(); } @@ -3516,11 +3527,10 @@ void WebViewImpl::ActivatePrerenderedPage( } } - // A null `activation_start` is sent to the WebViewImpl that does not host the - // main frame, in which case we expect that it does not have any documents - // since cross-origin documents are not loaded during prerendering. + // Valid `activation_start` should be sent to only prerendered frames hosted + // by this WebViewImpl. DCHECK((!main_frame_document && child_frame_documents.size() == 0) || - !prerender_page_activation_params->activation_start.is_null()); + prerender_page_activation_params->activation_start.has_value()); // We also only send view_transition_state to the main frame. DCHECK(main_frame_document || !prerender_page_activation_params->view_transition_state); diff --git a/tools/under-control/src/third_party/blink/renderer/core/fetch/request.idl b/tools/under-control/src/third_party/blink/renderer/core/fetch/request.idl index cbf6c54d..bd6904c6 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/fetch/request.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/fetch/request.idl @@ -75,6 +75,8 @@ enum ReferrerPolicy { [MeasureAs=RequestIsHistoryNavigation] readonly attribute boolean isHistoryNavigation; [RaisesException, CallWith=ScriptState, NewObject] Request clone(); + [RuntimeEnabled=FetchRetry] RetryOptions? getRetryOptions(); + [Affects=Everything, RuntimeEnabled=FetchUploadStreaming] readonly attribute ReadableStream? body; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/fileapi/blob.idl b/tools/under-control/src/third_party/blink/renderer/core/fileapi/blob.idl index 9ae17a23..fe447921 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/fileapi/blob.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/fileapi/blob.idl @@ -48,8 +48,8 @@ typedef (ArrayBuffer or ArrayBufferView or Blob or USVString) BlobPart; // This is slightly different from the spec but matches the expected // behavior. [RaisesException] Blob slice(optional [Clamp] long long start = 0, optional [Clamp] long long end = 0x7FFFFFFFFFFFFFFF, optional DOMString contentType = ""); - [CallWith=ScriptState] ReadableStream stream(); - [CallWith=ScriptState] Promise text(); - [CallWith=ScriptState] Promise arrayBuffer(); - [RuntimeEnabled=BlobBytes, CallWith=ScriptState] Promise bytes(); + [CallWith=ScriptState, NewObject] ReadableStream stream(); + [CallWith=ScriptState, NewObject] Promise text(); + [CallWith=ScriptState, NewObject] Promise arrayBuffer(); + [RuntimeEnabled=BlobBytes, CallWith=ScriptState, NewObject] Promise bytes(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/navigator_automation_information.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/navigator_automation_information.idl index 909497fe..31bf37cb 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/navigator_automation_information.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/navigator_automation_information.idl @@ -5,5 +5,5 @@ // https://w3c.github.io/webdriver/#interface interface mixin NavigatorAutomationInformation { - readonly attribute boolean webdriver; + [HighEntropy] readonly attribute boolean webdriver; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl index 86a02053..c93d109e 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl @@ -38,10 +38,10 @@ dictionary CanvasElementHitTestRegion { // https://html.spec.whatwg.org/C/canvas.html#htmlcanvaselement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLCanvasElement : HTMLElement { + [HTMLConstructor] constructor(); // Note: Due to dependecies on modules, getContext is defined in a partial // interface in html_canvas_element_module.idl diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl index a931f4a2..f7a7064b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.idl @@ -4,8 +4,9 @@ // https://github.com/WICG/fenced-frame -[Exposed=Window, HTMLConstructor, RuntimeEnabled=FencedFrames] +[Exposed=Window, RuntimeEnabled=FencedFrames] interface HTMLFencedFrameElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, RuntimeEnabled=FencedFramesAPIChanges, MeasureAs=FencedFrameConfigAttribute] attribute FencedFrameConfig? config; [CEReactions, Reflect] attribute DOMString width; [CEReactions, Reflect] attribute DOMString height; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl index fb7d6c3e..b2fc9e70 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_button_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-button-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLButtonElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean disabled; // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. // https://github.com/whatwg/html/pull/10995 diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_data_list_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_data_list_element.idl index 29c77147..369b2ae6 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_data_list_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_data_list_element.idl @@ -30,8 +30,8 @@ // https://html.spec.whatwg.org/C/#the-datalist-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDataListElement : HTMLElement { + [HTMLConstructor] constructor(); readonly attribute HTMLCollection options; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl index 2f5c94c6..fe1ef35e 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_field_set_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-fieldset-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLFieldSetElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean disabled; // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. // https://github.com/whatwg/html/pull/10995 diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_form_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_form_element.idl index 9d5e25b2..cbc2e823 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_form_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_form_element.idl @@ -22,9 +22,9 @@ [ Exposed=Window, - HTMLConstructor, LegacyOverrideBuiltIns ] interface HTMLFormElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect=accept_charset] attribute DOMString acceptCharset; [CEReactions, URL] attribute USVString action; [CEReactions, Reflect, ReflectOnly=("on","off"), ReflectMissing="on", ReflectInvalid="on"] attribute DOMString autocomplete; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl index d6c7366a..40e9141f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_input_element.idl @@ -25,9 +25,9 @@ enum SelectionMode { "select", "start", "end", "preserve" }; [ Exposed=Window, - HTMLConstructor, ActiveScriptWrappable ] interface HTMLInputElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString accept; [CEReactions, Reflect] attribute DOMString alt; [CEReactions, ImplementedAs=IDLExposedAutofillValue] attribute DOMString autocomplete; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl index 30eca45a..43614071 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_label_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-label-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLLabelElement : HTMLElement { + [HTMLConstructor] constructor(); // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. // https://github.com/whatwg/html/pull/10995 [ImplementedAs=formForBinding] readonly attribute HTMLElement? form; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl index a1071e6f..59de8711 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_legend_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-legend-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLLegendElement : HTMLElement { + [HTMLConstructor] constructor(); // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. // https://github.com/whatwg/html/pull/10995 [ImplementedAs=formForBinding] readonly attribute HTMLElement? form; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_opt_group_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_opt_group_element.idl index a4c96c36..0154699b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_opt_group_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_opt_group_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-optgroup-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLOptGroupElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean disabled; [CEReactions, Reflect] attribute DOMString label; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl index 9002e2a4..7c53726f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_output_element.idl @@ -25,9 +25,9 @@ // https://html.spec.whatwg.org/C/#the-output-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLOutputElement : HTMLElement { + [HTMLConstructor] constructor(); [PutForwards=value] readonly attribute DOMTokenList htmlFor; // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. // https://github.com/whatwg/html/pull/10995 diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl index b4b5ab34..478a6fa8 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_select_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/C/#the-select-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLSelectElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, ImplementedAs=IDLExposedAutofillValue] attribute DOMString autocomplete; [CEReactions, Reflect] attribute boolean disabled; // Until ReferenceTarget is enabled, this will only ever return HTMLFormElement. diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_selected_content_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_selected_content_element.idl index 1b381b8f..5d4fefb7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_selected_content_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_selected_content_element.idl @@ -3,6 +3,7 @@ // found in the LICENSE file. [ - Exposed=Window, - HTMLConstructor -] interface HTMLSelectedContentElement : HTMLElement {}; + Exposed=Window +] interface HTMLSelectedContentElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl index 79fca97a..47ab3c5d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/forms/html_text_area_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/C/#the-textarea-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTextAreaElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, ImplementedAs=IDLExposedAutofillValue] attribute DOMString autocomplete; [CEReactions] attribute unsigned long cols; [CEReactions, Reflect] attribute DOMString dirName; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_anchor_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_anchor_element.idl index 93356670..103e545d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_anchor_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_anchor_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-a-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLAnchorElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString target; [CEReactions, Reflect] attribute DOMString download; [CEReactions, Reflect] attribute USVString ping; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl index 75f7b45b..973e6bad 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_area_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-area-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLAreaElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString alt; [CEReactions, Reflect] attribute DOMString coords; [CEReactions, Reflect] attribute DOMString download; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_base_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_base_element.idl index c9ec7874..10c7c859 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_base_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_base_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-base-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLBaseElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute USVString href; [CEReactions, Reflect] attribute DOMString target; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_body_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_body_element.idl index 40c70da7..87a386a2 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_body_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_body_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-body-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLBodyElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLBodyElement-partial [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString text; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_br_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_br_element.idl index 2751dd6a..bde95346 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_br_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_br_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-br-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLBRElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLBRElement-partial [CEReactions, Reflect] attribute DOMString clear; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_data_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_data_element.idl index 72e6484c..c3e4eef2 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_data_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_data_element.idl @@ -5,8 +5,8 @@ // https://html.spec.whatwg.org/C/#the-data-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDataElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString value; }; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_details_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_details_element.idl index 5c56d6d7..b1571c32 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_details_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_details_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-details-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDetailsElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean open; [CEReactions, Reflect] attribute DOMString name; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl index e1b4adbe..2c5e2ca9 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_dialog_element.idl @@ -25,9 +25,9 @@ // https://html.spec.whatwg.org/C/#the-dialog-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDialogElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean open; attribute DOMString returnValue; [CEReactions] attribute DOMString closedBy; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_directory_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_directory_element.idl index fe91d06e..87a2e31d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_directory_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_directory_element.idl @@ -19,8 +19,8 @@ // https://html.spec.whatwg.org/C/#htmldirectoryelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDirectoryElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean compact; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_div_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_div_element.idl index 3ae69647..c43bc4e7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_div_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_div_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-div-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDivElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLDivElement-partial [CEReactions, Reflect] attribute DOMString align; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_dlist_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_dlist_element.idl index bf5e720c..61ade700 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_dlist_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_dlist_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-dl-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLDListElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLDListElement-partial [CEReactions, Reflect] attribute boolean compact; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_element.idl index 25305b06..cae17682 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#htmlelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLElement : Element { + [HTMLConstructor] constructor(); // metadata attributes [CEReactions, Reflect] attribute DOMString title; [CEReactions, Reflect] attribute DOMString lang; @@ -35,6 +35,7 @@ [RuntimeCallStatsCounter=HTMLElementClick] void click(); [CEReactions, Reflect] attribute boolean inert; [CEReactions, Reflect] attribute DOMString accessKey; + [RuntimeEnabled=AccessKeyLabel] readonly attribute DOMString accessKeyLabel; [CEReactions] attribute boolean draggable; [CEReactions] attribute boolean spellcheck; [Measure] attribute DOMString autocapitalize; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_embed_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_embed_element.idl index c553162f..08b57889 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_embed_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_embed_element.idl @@ -24,9 +24,9 @@ [ Exposed=Window, LegacyOverrideBuiltIns, - ActiveScriptWrappable, - HTMLConstructor + ActiveScriptWrappable ] interface HTMLEmbedElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, RaisesException=Setter, URL] attribute (TrustedScriptURL or USVString) src; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute DOMString width; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_font_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_font_element.idl index f105016e..f94e6c5e 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_font_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_font_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#htmlfontelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLFontElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString color; [CEReactions, Reflect] attribute DOMString face; [CEReactions, Reflect] attribute DOMString size; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_element.idl index 1400b0a6..3c9e9d8b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/C/#htmlframeelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLFrameElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString name; [CEReactions, Reflect] attribute DOMString scrolling; [CEReactions, Reflect, URL] attribute USVString src; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_set_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_set_element.idl index e76a621c..f2cc51ef 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_set_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_frame_set_element.idl @@ -23,9 +23,9 @@ // FIXME: HTMLFrameSetElement should not have [LegacyOverrideBuiltIns]. [ Exposed=Window, - HTMLConstructor, LegacyOverrideBuiltIns ] interface HTMLFrameSetElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString cols; [CEReactions, Reflect] attribute DOMString rows; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_head_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_head_element.idl index f19f5010..7764d48b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_head_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_head_element.idl @@ -19,7 +19,7 @@ // https://html.spec.whatwg.org/C/#the-head-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLHeadElement : HTMLElement { + [HTMLConstructor] constructor(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_heading_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_heading_element.idl index b4e427da..0a65dd36 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_heading_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_heading_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLHeadingElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLHeadingElement-partial [CEReactions, Reflect] attribute DOMString align; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_hr_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_hr_element.idl index 51538318..7c062c77 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_hr_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_hr_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-hr-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLHRElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLHRElement-partial [CEReactions, Reflect] attribute DOMString align; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_html_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_html_element.idl index cd5f7112..e5428920 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_html_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_html_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-html-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLHtmlElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLHtmlElement-partial [CEReactions, Reflect] attribute DOMString version; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_iframe_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_iframe_element.idl index c53a110f..83722106 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_iframe_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_iframe_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmliframeelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLIFrameElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect, URL] attribute USVString src; [CEReactions, RaisesException=Setter] attribute (DOMString or TrustedHTML) srcdoc; [CEReactions, Reflect] attribute DOMString name; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_li_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_li_element.idl index c6052354..27bc5375 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_li_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_li_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-li-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLLIElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute long value; // obsolete members diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_link_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_link_element.idl index e166d6d0..388e7554 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_link_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_link_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/C/#the-link-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLLinkElement : HTMLElement { + [HTMLConstructor] constructor(); // FIXME: The disabled attribute has been removed from the spec: // https://www.w3.org/Bugs/Public/show_bug.cgi?id=14703 [Reflect, Measure] attribute boolean disabled; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_map_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_map_element.idl index 9c8fe9fd..528c69c7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_map_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_map_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-map-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLMapElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString name; readonly attribute HTMLCollection areas; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_marquee_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_marquee_element.idl index 54e6d4db..63f64baf 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_marquee_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_marquee_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#htmlmarqueeelement [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLMarqueeElement : HTMLElement { + [HTMLConstructor] constructor(); [Reflect] attribute DOMString behavior; [Reflect] attribute DOMString bgColor; [Reflect] attribute DOMString direction; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_bar_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_bar_element.idl index 42fb8ebf..01b37b8c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_bar_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_bar_element.idl @@ -4,6 +4,7 @@ [ Exposed=Window, - HTMLConstructor, RuntimeEnabled=MenuElements -] interface HTMLMenuBarElement : HTMLElement {}; +] interface HTMLMenuBarElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_element.idl index 40c701c3..5bc5340b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-menu-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLMenuElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLMenuElement-partial [CEReactions, Reflect] attribute boolean compact; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_item_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_item_element.idl index dc8fe94e..c69007db 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_item_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_item_element.idl @@ -4,9 +4,9 @@ [ Exposed=Window, - HTMLConstructor, RuntimeEnabled=MenuElements ] interface HTMLMenuItemElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean disabled; [CEReactions] attribute boolean checked; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_list_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_list_element.idl index 82e118ee..f0a762af 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_list_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_menu_list_element.idl @@ -4,6 +4,7 @@ [ Exposed=Window, - HTMLConstructor, RuntimeEnabled=MenuElements -] interface HTMLMenuListElement : HTMLElement {}; +] interface HTMLMenuListElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_meta_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_meta_element.idl index 7e1d9e13..2f0295de 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_meta_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_meta_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-meta-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLMetaElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString name; [CEReactions, Reflect=http_equiv] attribute DOMString httpEquiv; [CEReactions, Reflect] attribute DOMString content; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_meter_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_meter_element.idl index 14e99617..3c38b8d4 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_meter_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_meter_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-meter-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLMeterElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute double value; [CEReactions] attribute double min; [CEReactions] attribute double max; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_mod_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_mod_element.idl index 472717bd..2017e68a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_mod_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_mod_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-ins-element // https://html.spec.whatwg.org/C/#the-del-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLModElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect, URL] attribute DOMString cite; [CEReactions, Reflect] attribute DOMString dateTime; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl index 9a58fc67..7872c7ca 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_object_element.idl @@ -24,9 +24,9 @@ [ Exposed=Window, LegacyOverrideBuiltIns, - ActiveScriptWrappable, - HTMLConstructor + ActiveScriptWrappable ] interface HTMLObjectElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, RaisesException=Setter, URL] attribute (TrustedScriptURL or USVString) data; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute DOMString name; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_olist_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_olist_element.idl index bc6ab713..13cc0d1c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_olist_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_olist_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-ol-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLOListElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean reversed; [CEReactions] attribute long start; [CEReactions, Reflect] attribute DOMString type; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_paragraph_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_paragraph_element.idl index 804adcc4..dbcc3162 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_paragraph_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_paragraph_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-p-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLParagraphElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLParagraphElement-partial [CEReactions, Reflect] attribute DOMString align; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_param_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_param_element.idl index 5ed4a3a6..03d36620 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_param_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_param_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-param-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLParamElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString name; [CEReactions, Reflect] attribute DOMString value; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_picture_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_picture_element.idl index 6e8adcf2..e3e5e9d5 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_picture_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_picture_element.idl @@ -4,7 +4,7 @@ // https://html.spec.whatwg.org/C/#the-picture-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLPictureElement : HTMLElement { + [HTMLConstructor] constructor(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_pre_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_pre_element.idl index 80ba7878..359cdbf1 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_pre_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_pre_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-pre-element [ - HTMLConstructor, Exposed=Window ] interface HTMLPreElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLPreElement-partial [CEReactions, Reflect] attribute long width; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_progress_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_progress_element.idl index 4c2c66df..8731ea72 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_progress_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_progress_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-progress-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLProgressElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute double value; [CEReactions] attribute double max; readonly attribute double position; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_quote_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_quote_element.idl index 7b6e62dd..befea15f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_quote_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_quote_element.idl @@ -20,8 +20,8 @@ // https://html.spec.whatwg.org/C/#the-blockquote-element // https://html.spec.whatwg.org/C/#the-q-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLQuoteElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect, URL] attribute DOMString cite; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_script_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_script_element.idl index 50501cdd..009ebbcb 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_script_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_script_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-script-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLScriptElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, URL, RaisesException=Setter] attribute (TrustedScriptURL or USVString) src; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute boolean noModule; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_slot_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_slot_element.idl index 6a27f3fe..bd71aba7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_slot_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_slot_element.idl @@ -26,9 +26,9 @@ // https://html.spec.whatwg.org/C/#the-slot-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLSlotElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString name; [ImplementedAs=AssignedNodesForBinding] sequence assignedNodes(optional AssignedNodesOptions options = {}); [ImplementedAs=AssignedElementsForBinding] sequence assignedElements(optional AssignedNodesOptions options = {}); diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_source_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_source_element.idl index 88adafc4..6c0c8943 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_source_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_source_element.idl @@ -25,9 +25,9 @@ // https://html.spec.whatwg.org/C/#the-source-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLSourceElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect, URL] attribute USVString src; [CEReactions] attribute DOMString type; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_span_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_span_element.idl index 1cb60a27..187d5962 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_span_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_span_element.idl @@ -25,7 +25,7 @@ // https://html.spec.whatwg.org/C/#the-span-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLSpanElement : HTMLElement { + [HTMLConstructor] constructor(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_style_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_style_element.idl index b60f3eb2..3edafef3 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_style_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_style_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-style-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLStyleElement : HTMLElement { + [HTMLConstructor] constructor(); [Measure] attribute boolean disabled; [CEReactions, Reflect] attribute DOMString media; [CEReactions, Reflect] attribute DOMString type; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_caption_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_caption_element.idl index 386b675e..5a5ee7cc 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_caption_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_caption_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-caption-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableCaptionElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLTableCaptionElement-partial [CEReactions, Reflect] attribute DOMString align; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_cell_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_cell_element.idl index 2faa15f1..0004d43c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_cell_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_cell_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#attributes-common-to-td-and-th-elements [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableCellElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute unsigned long colSpan; [CEReactions] attribute unsigned long rowSpan; // TODO(foolip): headers should be a [PutForwards=value] readonly attribute diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_col_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_col_element.idl index 32295d37..bc56ab3b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_col_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_col_element.idl @@ -21,9 +21,9 @@ // https://html.spec.whatwg.org/C/#the-colgroup-element // https://html.spec.whatwg.org/C/#the-col-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableColElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute unsigned long span; // obsolete attributes diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_element.idl index 35dd51f7..58006f29 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-table-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, RaisesException=Setter] attribute HTMLTableCaptionElement? caption; [CEReactions] HTMLTableCaptionElement createCaption(); [CEReactions] void deleteCaption(); diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_row_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_row_element.idl index 1402d5c4..ddecaa7a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_row_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_row_element.idl @@ -20,9 +20,9 @@ // https://html.spec.whatwg.org/C/#the-tr-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableRowElement : HTMLElement { + [HTMLConstructor] constructor(); readonly attribute long rowIndex; readonly attribute long sectionRowIndex; readonly attribute HTMLCollection cells; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_section_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_section_element.idl index 4859cd27..15a8ee46 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_table_section_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_table_section_element.idl @@ -22,9 +22,9 @@ // https://html.spec.whatwg.org/C/#the-thead-element // https://html.spec.whatwg.org/C/#the-tfoot-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTableSectionElement : HTMLElement { + [HTMLConstructor] constructor(); readonly attribute HTMLCollection rows; [CEReactions, RaisesException] HTMLElement insertRow(optional long index = -1); [CEReactions, RaisesException] void deleteRow(long index); 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 2ce92a49..1858dac6 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 @@ -30,9 +30,9 @@ // https://html.spec.whatwg.org/C/#the-template-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTemplateElement : HTMLElement { + [HTMLConstructor] constructor(); readonly attribute DocumentFragment content; // These are the declarative Shadow DOM IDL attributes, which reflect the diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_time_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_time_element.idl index f27fabc0..e4862519 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_time_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_time_element.idl @@ -5,8 +5,8 @@ // https://html.spec.whatwg.org/C/#the-time-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTimeElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute DOMString dateTime; }; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_title_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_title_element.idl index 191b831c..a00e982f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_title_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_title_element.idl @@ -19,8 +19,8 @@ // https://html.spec.whatwg.org/C/#the-title-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTitleElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute DOMString text; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_ulist_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_ulist_element.idl index 3a16e709..e20e1130 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/html_ulist_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_ulist_element.idl @@ -19,9 +19,9 @@ // https://html.spec.whatwg.org/C/#the-ul-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLUListElement : HTMLElement { + [HTMLConstructor] constructor(); // obsolete members // https://html.spec.whatwg.org/C/#HTMLUListElement-partial [CEReactions, Reflect] attribute boolean compact; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl index 48a46723..8c3905bf 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/media/html_video_element.idl @@ -27,9 +27,9 @@ [ Exposed=Window, - HTMLConstructor, ActiveScriptWrappable ] interface HTMLVideoElement : HTMLMediaElement { + [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute unsigned long width; [CEReactions, Reflect] attribute unsigned long height; readonly attribute unsigned long videoWidth; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/track/html_track_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/track/html_track_element.idl index ff4c807d..0fe5fb36 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/track/html_track_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/track/html_track_element.idl @@ -26,9 +26,9 @@ // https://html.spec.whatwg.org/C/#the-track-element [ - Exposed=Window, - HTMLConstructor + Exposed=Window ] interface HTMLTrackElement : HTMLElement { + [HTMLConstructor] constructor(); [CEReactions] attribute DOMString kind; [CEReactions, Reflect, URL] attribute USVString src; [CEReactions, Reflect] attribute DOMString srclang; 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 86fcfe95..08ba52b2 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,6 +2,7 @@ interface NavigationTransition { readonly attribute NavigationType navigationType; readonly attribute NavigationHistoryEntry from; + [RuntimeEnabled=NavigationTransitionDestination] readonly attribute NavigationDestination to; [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/origin_trials/origin_trial_context.cc b/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc index fbf97606..fb334a2c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc @@ -533,11 +533,6 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) { features::kBackForwardCacheSendNotRestoredReasons); } - if (trial_name == "CompressionDictionaryTransport") { - return base::FeatureList::IsEnabled( - network::features::kCompressionDictionaryTransportBackend); - } - if (trial_name == "SoftNavigationHeuristics") { return base::FeatureList::IsEnabled(features::kSoftNavigationDetection); } @@ -563,10 +558,6 @@ bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) { return base::FeatureList::IsEnabled(features::kLanguageDetectionAPI); } - if (trial_name == "SpeculationRulesTargetHint") { - return base::FeatureList::IsEnabled(features::kPrerender2InNewTab); - } - if (trial_name == "TranslationAPI") { #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) return base::FeatureList::IsEnabled(features::kTranslationAPI); diff --git a/tools/under-control/src/third_party/blink/renderer/core/route_matching/route.idl b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route.idl new file mode 100755 index 00000000..04271d5e --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route.idl @@ -0,0 +1,13 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/WICG/declarative-partial-updates?tab=readme-ov-file#part-2-route-matching +// +// TODO(crbug.com/436805487): Link to spec when it starts to exist. + +[Exposed=Window, RuntimeEnabled=RouteMatching] +interface Route : EventTarget { + readonly attribute URLPattern pattern; + readonly attribute boolean matches; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_event.idl b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_event.idl new file mode 100755 index 00000000..9f4133dd --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_event.idl @@ -0,0 +1,12 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/WICG/declarative-partial-updates?tab=readme-ov-file#part-2-route-matching +// +// TODO(crbug.com/436805487): Link to spec when it starts to exist. + +[Exposed=Window, RuntimeEnabled=RouteMatching] +interface RouteEvent : Event { + constructor(DOMString type); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_map.idl b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_map.idl new file mode 100755 index 00000000..a303fd1c --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/route_matching/route_map.idl @@ -0,0 +1,12 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/WICG/declarative-partial-updates?tab=readme-ov-file#part-2-route-matching +// +// TODO(crbug.com/436805487): Link to spec when it starts to exist. + +[Exposed=Window, RuntimeEnabled=RouteMatching] +interface RouteMap { + Route get(CSSOMString entry); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.idl b/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.idl index d048ab05..7637b880 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.idl @@ -9,4 +9,7 @@ ] interface AutomationDelegate { [CallWith=ScriptState, RaisesException] undefined registerTool(ToolRegistrationParams params); [CallWith=ScriptState, RaisesException] undefined unregisterTool(DOMString tool_name); + + [CallWith=ScriptState, RaisesException] undefined provideContext(ProvideContextParams params); + [CallWith=ScriptState, RaisesException] undefined clearContext(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.idl b/tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.idl index 5b86a5fa..692c1915 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.idl @@ -17,3 +17,7 @@ dictionary ToolRegistrationParams { object inputSchema; AnnotationsDict annotations; }; + +dictionary ProvideContextParams { + required sequence tools; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_matrix.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_matrix.idl index 664fe2e4..17fbebc5 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_matrix.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_matrix.idl @@ -22,30 +22,28 @@ // http://www.w3.org/TR/SVG11/coords.html#InterfaceSVGMatrix -// TODO(foolip): SVGMatrix is gone from SVG 2, replaced by DOMMatrix. -// https://crbug.com/709001 [ Exposed=Window, ImplementedAs=SVGMatrixTearOff ] interface SVGMatrix { // FIXME: these attributes should all be floats but since we implement // AffineTransform with doubles setting these as doubles makes more sense. - [RaisesException=Setter] attribute unrestricted double a; - [RaisesException=Setter] attribute unrestricted double b; - [RaisesException=Setter] attribute unrestricted double c; - [RaisesException=Setter] attribute unrestricted double d; - [RaisesException=Setter] attribute unrestricted double e; - [RaisesException=Setter] attribute unrestricted double f; + [RaisesException=Setter] attribute double a; + [RaisesException=Setter] attribute double b; + [RaisesException=Setter] attribute double c; + [RaisesException=Setter] attribute double d; + [RaisesException=Setter] attribute double e; + [RaisesException=Setter] attribute double f; SVGMatrix multiply(SVGMatrix secondMatrix); [RaisesException] SVGMatrix inverse(); - SVGMatrix translate(unrestricted float x, unrestricted float y); - SVGMatrix scale(unrestricted float scaleFactor); - SVGMatrix scaleNonUniform(unrestricted float scaleFactorX, unrestricted float scaleFactorY); - SVGMatrix rotate(unrestricted float angle); - [RaisesException] SVGMatrix rotateFromVector(unrestricted float x, unrestricted float y); + SVGMatrix translate(float x, float y); + SVGMatrix scale(float scaleFactor); + SVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY); + SVGMatrix rotate(float angle); + [RaisesException] SVGMatrix rotateFromVector(float x, float y); SVGMatrix flipX(); SVGMatrix flipY(); - SVGMatrix skewX(unrestricted float angle); - SVGMatrix skewY(unrestricted float angle); + SVGMatrix skewX(float angle); + SVGMatrix skewY(float angle); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_point.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_point.idl index 1c8a6a95..0fcc51a8 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_point.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_point.idl @@ -22,14 +22,12 @@ // http://www.w3.org/TR/SVG11/coords.html#InterfaceSVGPoint -// TODO(foolip): SVGPoint is gone from SVG 2, replaced by DOMPoint. -// https://crbug.com/709001 [ Exposed=Window, ImplementedAs=SVGPointTearOff ] interface SVGPoint { - [RaisesException=Setter] attribute unrestricted float x; - [RaisesException=Setter] attribute unrestricted float y; + [RaisesException=Setter] attribute float x; + [RaisesException=Setter] attribute float y; [MeasureAs=SVGPointMatrixTransform] SVGPoint matrixTransform(SVGMatrix matrix); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_rect.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_rect.idl index 4950068b..327b36ee 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_rect.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_rect.idl @@ -22,14 +22,12 @@ // http://www.w3.org/TR/SVG11/types.html#InterfaceSVGRect -// TODO(foolip): SVGRect is gone from SVG 2, replaced by DOMRect. -// https://crbug.com/709001 [ Exposed=Window, ImplementedAs=SVGRectTearOff ] interface SVGRect { - [RaisesException=Setter] attribute unrestricted float x; - [RaisesException=Setter] attribute unrestricted float y; - [RaisesException=Setter] attribute unrestricted float width; - [RaisesException=Setter] attribute unrestricted float height; + [RaisesException=Setter] attribute float x; + [RaisesException=Setter] attribute float y; + [RaisesException=Setter] attribute float width; + [RaisesException=Setter] attribute float height; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl index 49676f57..535e7543 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/svg/svg_text_content_element.idl @@ -42,6 +42,6 @@ interface SVGTextContentElement : SVGGraphicsElement { [HighEntropy, Measure, RaisesException] SVGPoint getEndPositionOfChar(unsigned long charnum); [HighEntropy, Measure, RaisesException] SVGRect getExtentOfChar(unsigned long charnum); [RaisesException] float getRotationOfChar(unsigned long charnum); - [RaisesException] long getCharNumAtPosition(optional DOMPointInit point = {}); + long getCharNumAtPosition(optional DOMPointInit point = {}); [RaisesException] void selectSubString(unsigned long charnum, unsigned long nchars); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl b/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl index 6156fe1a..950ee808 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/testing/internals.idl @@ -201,6 +201,7 @@ interface Internals { [RaisesException] DOMString layerTreeAsText(Document document, optional unsigned short flags); [RaisesException] DOMString dumpContentNodeTree(Document document); + [RaisesException] DOMString dumpContentNode(Node node); [RaisesException] DOMString mainThreadScrollingReasons(Document document); diff --git a/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl b/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl index 3a95ef8e..9d1ea79c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/testing/worker_internals.idl @@ -15,4 +15,6 @@ interface WorkerInternals { void forceLoseCanvasContext(OffscreenCanvasRenderingContext2D ctx); boolean isCanvasImageSourceAccelerated(HTMLCanvasElement imageSource); boolean isCanvasImageSourceAccelerated(OffscreenCanvas imageSource); + + [CallWith=ScriptState] DOMString? getCanvasNoiseToken(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_observer_init.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_observer_init.idl index 8ac65f29..be1ae10d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_observer_init.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_observer_init.idl @@ -9,5 +9,4 @@ dictionary PerformanceObserverInit { DOMString type; boolean buffered = false; DOMHighResTimeStamp durationThreshold; - boolean includeSoftNavigationObservations = false; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.idl b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.idl index f44ed10e..a80b6fbc 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.idl @@ -6,7 +6,7 @@ [ Exposed=(Window, Worker) -] interface TrustedTypePolicyFactory : EventTarget { +] interface TrustedTypePolicyFactory { [RaisesException] TrustedTypePolicy createPolicy(DOMString policyName, optional TrustedTypePolicyOptions policyOptions); // All the policy object names that have been created [CallWith=ScriptState, MeasureAs=TrustedTypesIsCheck] boolean isHTML(any checkedObject); @@ -26,6 +26,4 @@ readonly attribute TrustedTypePolicy defaultPolicy; [CallWith=ScriptState, MeasureAs=TrustedTypesIntrospectionTypeMapping] object? getTypeMapping(optional DOMString ns); - - [RuntimeEnabled=TrustedTypeBeforePolicyCreationEvent] attribute EventHandler onbeforecreatepolicy; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl b/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl index a6dd54cf..e82a9bb8 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/url_pattern/url_pattern.idl @@ -18,10 +18,10 @@ enum URLPatternComponent { "protocol", "username", "password", "hostname", [RaisesException, CallWith=Isolate, Measure] constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {}); - [RaisesException, CallWith=ScriptState, Measure] + [RaisesException, CallWith=Isolate, Measure] boolean test(optional URLPatternInput input = {}, optional USVString baseURL); - [RaisesException, CallWith=ScriptState, Measure] + [RaisesException, CallWith=Isolate, Measure] URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL); [RuntimeEnabled=URLPatternGenerate, RaisesException, Measure] diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl deleted file mode 100755 index b790dcfd..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl +++ /dev/null @@ -1,11 +0,0 @@ -// 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. - -// Used by method `drawHTMLElement` as defined in -// canvas_rendering_context_2d.idl -dictionary Canvas2DDrawElementOption { - // The element should be drawn in a way that allows readback in - // `getImageData`. - boolean allowReadback = false; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index a96e5ca4..9e87dbd8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl @@ -56,25 +56,21 @@ interface CanvasRenderingContext2D { [RuntimeEnabled=CanvasDrawElement, RaisesException] void drawElement(Element element, - unrestricted double x, unrestricted double y, - optional Canvas2DDrawElementOption options = {}); + unrestricted double x, unrestricted double y); [RuntimeEnabled=CanvasDrawElement, RaisesException] void drawElement(Element element, unrestricted double x, unrestricted double y, - unrestricted double dwidth, unrestricted double dheight, - optional Canvas2DDrawElementOption options = {}); + unrestricted double dwidth, unrestricted double dheight); [RuntimeEnabled=CanvasDrawElement, RaisesException] - void drawHTMLElement(Element element, - unrestricted double x, unrestricted double y, - optional Canvas2DDrawElementOption options = {}); + void drawElementImage(Element element, + unrestricted double x, unrestricted double y); [RuntimeEnabled=CanvasDrawElement, RaisesException] - void drawHTMLElement(Element element, + void drawElementImage(Element element, unrestricted double x, unrestricted double y, - unrestricted double dwidth, unrestricted double dheight, - optional Canvas2DDrawElementOption options = {}); + unrestricted double dwidth, unrestricted double dheight); [RuntimeEnabled=CanvasDrawElement, RaisesException] void setHitTestRegions(sequence hitTestRegions); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module.idl index 261e9ad4..1df9c745 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module.idl @@ -16,7 +16,7 @@ typedef (CanvasRenderingContext2D or ImplementedAs=HTMLCanvasElementModule ] partial interface HTMLCanvasElement { - [HighEntropy, MeasureAs=HTMLCanvasGetContext, RaisesException] RenderingContext? getContext(DOMString contextId, optional CanvasContextCreationAttributesModule attributes = {}); + [CallWith=ScriptState, HighEntropy, MeasureAs=HTMLCanvasGetContext, RaisesException] RenderingContext? getContext(DOMString contextId, optional CanvasContextCreationAttributesModule attributes = {}); [CallWith=ScriptState, RaisesException, MeasureAs=OffscreenCanvas] OffscreenCanvas transferControlToOffscreen(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard.idl b/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard.idl index 631a0e14..88af71aa 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard.idl @@ -4,7 +4,13 @@ // https://w3c.github.io/clipboard-apis/#clipboard-interface -dictionary ClipboardUnsanitizedFormats { +dictionary ClipboardReadOptions { + // https://chromestatus.com/feature/5203433409871872 + // If types is provided, only the specified MIME types will be fetched. + // If `types` is an empty sequence (e.g. []), no clipboard read operation will be + // performed. If `types` is undefined, all available MIME types will be + // read. + [RuntimeEnabled=SelectiveClipboardFormatRead] sequence? types; sequence unsanitized; }; @@ -20,7 +26,7 @@ dictionary ClipboardUnsanitizedFormats { [MeasureAs=AsyncClipboardAPIUnsanitizedRead, CallWith=ScriptState, RaisesException - ] Promise> read(ClipboardUnsanitizedFormats formats); + ] Promise> read(ClipboardReadOptions options); [MeasureAs=AsyncClipboardAPIReadText, CallWith=ScriptState, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard_change_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard_change_event.idl index af5f515b..e77b6790 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard_change_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/clipboard/clipboard_change_event.idl @@ -1,21 +1,6 @@ -/* - * Copyright (C) 2025 Microsoft Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ +// 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. [ Exposed=Window, diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl index a6b8d2b7..40bbb491 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl @@ -52,6 +52,6 @@ dictionary AuthenticationExtensionsClientInputs { // Pseudo-random function support. // https://w3c.github.io/webauthn/#prf-extension - [RuntimeEnabled=WebAuthenticationPRF] AuthenticationExtensionsPRFInputs prf; + AuthenticationExtensionsPRFInputs prf; }; // LINT.ThenChange(//third_party/blink/renderer/modules/credentialmanagement/public_key_credential.cc) diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl index 93385f46..4c886124 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs_json.idl @@ -34,5 +34,5 @@ dictionary AuthenticationExtensionsClientInputsJSON { [RuntimeEnabled=SecurePaymentConfirmation] AuthenticationExtensionsPaymentInputs payment; [RuntimeEnabled=WebAuthenticationRemoteDesktopSupport] RemoteDesktopClientOverride remoteDesktopClientOverride; [RuntimeEnabled=WebAuthenticationSupplementalPubKeys] AuthenticationExtensionsSupplementalPubKeysInputs supplementalPubKeys; - [RuntimeEnabled=WebAuthenticationPRF] AuthenticationExtensionsPRFInputsJSON prf; + AuthenticationExtensionsPRFInputsJSON prf; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl index 5fb79875..7d86b461 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs.idl @@ -32,5 +32,5 @@ dictionary AuthenticationExtensionsClientOutputs { // Pseudo-random function support. // https://w3c.github.io/webauthn/#prf-extension - [RuntimeEnabled=WebAuthenticationPRF] AuthenticationExtensionsPRFOutputs prf; + AuthenticationExtensionsPRFOutputs prf; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl index 0c91acd2..c1cdd9d4 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_outputs_json.idl @@ -24,5 +24,5 @@ dictionary AuthenticationExtensionsClientOutputsJSON { [RuntimeEnabled=WebAuthenticationSupplementalPubKeys] object supplementalPubKeys; // https://w3c.github.io/webauthn/#prf-extension - [RuntimeEnabled=WebAuthenticationPRF] object prf; + object prf; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl index 1a6a8eb2..9515ee4c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl @@ -14,7 +14,7 @@ dictionary IdentityCredentialDisconnectOptions : IdentityProviderConfig { RuntimeEnabled=FedCm ] interface IdentityCredential : Credential { // https://fedidcg.github.io/FedCM/#dom-identitycredential-token - readonly attribute USVString token; + [CallWith=ScriptState] readonly attribute any token; // Whether an account was automatically selected in the FedCM flow. readonly attribute boolean isAutoSelected; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_error.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_error.idl index 14658039..614d4023 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_error.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/identity_credential_error.idl @@ -6,6 +6,7 @@ dictionary IdentityCredentialErrorInit { DOMString code; + [RuntimeEnabled=FedCmErrorAttribute] DOMString error; DOMString url; }; @@ -17,7 +18,8 @@ dictionary IdentityCredentialErrorInit { constructor(optional DOMString message = "", optional IdentityCredentialErrorInit options = {}); // Type of error which resulted in an IdentityCredential not being created. - readonly attribute DOMString code; + [RaisesException] readonly attribute DOMString code; + [RuntimeEnabled=FedCmErrorAttribute] readonly attribute DOMString error; // URL where the user can learn more information about the error. readonly attribute DOMString url; 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 bf0aec05..ffa1f02a 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 @@ -20,10 +20,10 @@ typedef record PublicKeyCredentialClientCapabilities; [CallWith=ScriptState] static Promise getClientCapabilities(); AuthenticationExtensionsClientOutputs getClientExtensionResults(); [CallWith=ScriptState] static Promise isConditionalMediationAvailable(); - [RuntimeEnabled=WebAuthenticationJSONSerialization, CallWith=ScriptState] PublicKeyCredentialJSON toJSON(); - [RuntimeEnabled=WebAuthenticationJSONSerialization, CallWith=ScriptState, RaisesException] static PublicKeyCredentialCreationOptions parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON options); - [RuntimeEnabled=WebAuthenticationJSONSerialization, CallWith=ScriptState, RaisesException] static PublicKeyCredentialRequestOptions parseRequestOptionsFromJSON(PublicKeyCredentialRequestOptionsJSON options); - [CallWith=ScriptState, RaisesException, RuntimeEnabled=CredentialManagerReport, Measure] static Promise signalUnknownCredential(UnknownCredentialOptions options); - [CallWith=ScriptState, RaisesException, RuntimeEnabled=CredentialManagerReport, Measure] static Promise signalAllAcceptedCredentials(AllAcceptedCredentialsOptions options); - [CallWith=ScriptState, RaisesException, RuntimeEnabled=CredentialManagerReport, Measure] static Promise signalCurrentUserDetails(CurrentUserDetailsOptions options); + [CallWith=ScriptState] PublicKeyCredentialJSON toJSON(); + [CallWith=ScriptState, RaisesException] static PublicKeyCredentialCreationOptions parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON options); + [CallWith=ScriptState, RaisesException] static PublicKeyCredentialRequestOptions parseRequestOptionsFromJSON(PublicKeyCredentialRequestOptionsJSON options); + [CallWith=ScriptState, RaisesException, Measure] static Promise signalUnknownCredential(UnknownCredentialOptions options); + [CallWith=ScriptState, RaisesException, Measure] static Promise signalAllAcceptedCredentials(AllAcceptedCredentialsOptions options); + [CallWith=ScriptState, RaisesException, Measure] static Promise signalCurrentUserDetails(CurrentUserDetailsOptions options); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/multicast_controller.idl b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/multicast_controller.idl new file mode 100755 index 00000000..1c27b61e --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/multicast_controller.idl @@ -0,0 +1,15 @@ +[ + RuntimeEnabled=MulticastInDirectSockets, + Exposed=(Window, DedicatedWorker, SharedWorker, ServiceWorker), + SecureContext, + IsolatedContext +] +interface MulticastController { + [CallWith=ScriptState, RaisesException, MeasureAs=MulticastControllerJoinGroupFunction] + Promise joinGroup(DOMString ipAddress); + [CallWith=ScriptState, RaisesException, MeasureAs=MulticastControllerLeaveGroupFunction] + Promise leaveGroup(DOMString ipAddress); + + [MeasureAs=MulticastControllerJoinedGroupsAttribute] + readonly attribute FrozenArray joinedGroups; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_connection.idl b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_connection.idl index f70bf1a7..1339ff27 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_connection.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_connection.idl @@ -11,7 +11,9 @@ dictionary SocketOpenInfo { dictionary TCPSocketOpenInfo : SocketOpenInfo {}; -dictionary UDPSocketOpenInfo : SocketOpenInfo {}; +dictionary UDPSocketOpenInfo : SocketOpenInfo { + [RuntimeEnabled=MulticastInDirectSockets] MulticastController multicastController; +}; dictionary TCPServerSocketOpenInfo { ReadableStream readable; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_options.idl index c9c00499..69851416 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/direct_sockets/socket_options.idl @@ -29,6 +29,11 @@ dictionary UDPSocketOptions : SocketOptions { // TODO(crbug.com/1413161): Implement ipv6Only support. boolean ipv6Only; + + [RuntimeEnabled=MulticastInDirectSockets] boolean multicastAllowAddressSharing; + + [RuntimeEnabled=MulticastInDirectSockets, EnforceRange] octet multicastTimeToLive; + [RuntimeEnabled=MulticastInDirectSockets] boolean multicastLoopback; }; dictionary TCPServerSocketOptions { diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediasession/media_session_enter_picture_in_picture_action_details.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediasession/media_session_enter_picture_in_picture_action_details.idl new file mode 100755 index 00000000..fce82b98 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediasession/media_session_enter_picture_in_picture_action_details.idl @@ -0,0 +1,13 @@ +// 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. + +enum MediaSessionEnterPictureInPictureReason { + "other", + "useraction", + "contentoccluded" +}; + +dictionary MediaSessionEnterPictureInPictureActionDetails : MediaSessionActionDetails { + MediaSessionEnterPictureInPictureReason enterPictureInPictureReason; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl index 780a4418..6a2569f5 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/capture_controller.idl @@ -6,7 +6,6 @@ // For APIs marked as RuntimeEnabled = CapturedSurfaceControl, see the spec at: // https://screen-share.github.io/captured-surface-control/ -// TODO(crbug.com/1466247): Measure these APIs. enum CaptureStartFocusBehavior { "focus-capturing-application", diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl index 834699e0..2eb13eb7 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/ml_context.idl @@ -16,23 +16,20 @@ dictionary MLContextLostInfo { DOMString message; }; -dictionary MLDataTypeLimits { - sequence dataTypes; -}; - dictionary MLRankRange { unsigned long min; unsigned long max; }; -dictionary MLTensorLimits : MLDataTypeLimits { +dictionary MLTensorLimits { + sequence dataTypes; MLRankRange rankRange; }; dictionary MLBinarySupportLimits { MLTensorLimits a; MLTensorLimits b; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLBatchNormalizationSupportLimits { @@ -41,32 +38,32 @@ dictionary MLBatchNormalizationSupportLimits { MLTensorLimits variance; MLTensorLimits scale; MLTensorLimits bias; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLConcatSupportLimits { MLTensorLimits inputs; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLConv2dSupportLimits { MLTensorLimits input; MLTensorLimits filter; MLTensorLimits bias; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLGatherSupportLimits { MLTensorLimits input; MLTensorLimits indices; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLGemmSupportLimits { MLTensorLimits a; MLTensorLimits b; MLTensorLimits c; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLGruSupportLimits { @@ -76,7 +73,8 @@ dictionary MLGruSupportLimits { MLTensorLimits bias; MLTensorLimits recurrentBias; MLTensorLimits initialHiddenState; - MLDataTypeLimits outputs; + MLTensorLimits output0; + MLTensorLimits output1; }; dictionary MLGruCellSupportLimits { @@ -86,7 +84,7 @@ dictionary MLGruCellSupportLimits { MLTensorLimits hiddenState; MLTensorLimits bias; MLTensorLimits recurrentBias; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLLstmSupportLimits { @@ -98,7 +96,9 @@ dictionary MLLstmSupportLimits { MLTensorLimits peepholeWeight; MLTensorLimits initialHiddenState; MLTensorLimits initialCellState; - MLDataTypeLimits outputs; + MLTensorLimits output0; + MLTensorLimits output1; + MLTensorLimits output2; }; dictionary MLLstmCellSupportLimits { @@ -110,64 +110,65 @@ dictionary MLLstmCellSupportLimits { MLTensorLimits bias; MLTensorLimits recurrentBias; MLTensorLimits peepholeWeight; - MLDataTypeLimits outputs; + MLTensorLimits output0; + MLTensorLimits output1; }; dictionary MLNormalizationSupportLimits { MLTensorLimits input; MLTensorLimits scale; MLTensorLimits bias; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLPreluSupportLimits { MLTensorLimits input; MLTensorLimits slope; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLQuantizeDequantizeLinearSupportLimits { MLTensorLimits input; MLTensorLimits scale; MLTensorLimits zeroPoint; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLLogicalNotSupportLimits { MLTensorLimits a; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLSingleInputSupportLimits { MLTensorLimits input; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLScatterSupportLimits { MLTensorLimits input; MLTensorLimits indices; MLTensorLimits updates; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLSplitSupportLimits { MLTensorLimits input; - MLDataTypeLimits outputs; + MLTensorLimits outputs; }; dictionary MLWhereSupportLimits { MLTensorLimits condition; MLTensorLimits trueValue; MLTensorLimits falseValue; - MLDataTypeLimits output; + MLTensorLimits output; }; dictionary MLOpSupportLimits { MLInputOperandLayout preferredInputLayout; [EnforceRange] unsigned long long maxTensorByteLength; - MLDataTypeLimits input; - MLDataTypeLimits constant; - MLDataTypeLimits output; + MLTensorLimits input; + MLTensorLimits constant; + MLTensorLimits output; MLSingleInputSupportLimits argMin; MLSingleInputSupportLimits argMax; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/dedicated_worker_global_scope_rtc_rtp_transport_processor.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/dedicated_worker_global_scope_rtc_rtp_transport_processor.idl deleted file mode 100755 index 6f6b2981..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/dedicated_worker_global_scope_rtc_rtp_transport_processor.idl +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -[ImplementedAs=DedicatedWorkerGlobalScopeRTCRtpTransportProcessor, RuntimeEnabled=RTCRtpTransport] -partial interface DedicatedWorkerGlobalScope { - attribute EventHandler onrtcrtptransportprocessor; -}; \ No newline at end of file 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 72713912..688bfad1 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 @@ -137,8 +137,6 @@ enum RTCPeerConnectionState { // https://w3c.github.io/webrtc-pc/#sec.cert-mgmt [RaisesException, CallWith=ScriptState] static Promise generateCertificate(AlgorithmIdentifier keygenAlgorithm); - [SameObject, RuntimeEnabled=RTCRtpTransport] readonly attribute RTCRtpTransport rtpTransport; - // Non-standard or removed from the spec: [Measure] sequence getLocalStreams(); [Measure] sequence getRemoteStreams(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_ack.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_ack.idl deleted file mode 100755 index 4b8ed4b7..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_ack.idl +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary RTCRtpAck { - unsigned long long ackId; - unsigned long long remoteReceiveTimestamp; -}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_acks.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_acks.idl deleted file mode 100755 index b3f6073e..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_acks.idl +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - - -enum ExplicitCongestionNotification { - // ECT = ECN-Capable Transport - "unset", // AKA "Not-ECT"; Bits: 00 - "scalable-congestion-not-experienced", // AKA "ECT(1)" or "Scalable" or "L4S" ; Bits: 01 - "classic-congestion-not-experienced", // AKA "ECT(0)" or "Classic" or "not L4S"; Bits: 10 - "congestion-experienced" // AKA "CE" or "ECN-marked" or "marked"; Bits: 11 -}; - -// Collection of RTP packet remote feedback, delivered in a single RTCP message. -// TODO: crbug.com/345101934 - Improve name as the explainer evolves, https://github.com/w3c/webrtc-rtptransport/blob/main/explainer-use-case-2.md -[ - Exposed=(Window,Worker), RuntimeEnabled=RTCRtpTransport -] interface RTCRtpAcks { - sequence acks(); - readonly attribute unsigned long long remoteSendTimestamp; - readonly attribute DOMHighResTimeStamp receivedTime; - readonly attribute ExplicitCongestionNotification explicitCongestionNotification; // AKA "ECN" -}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_init.idl deleted file mode 100755 index c551480c..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_init.idl +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary RTCRtpHeaderExtensionInit { - required DOMString uri; - required AllowSharedBufferSource value; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_packet_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_packet_init.idl deleted file mode 100755 index c8d17de5..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_packet_init.idl +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary RTCRtpPacketInit { - boolean marker = false; - required octet payloadType; - required unsigned long timestamp; - sequence csrcs = []; - - sequence headerExtensions = []; - required AllowSharedBufferSource payload; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_result.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_result.idl deleted file mode 100755 index b6fd5465..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_result.idl +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -[Exposed=(Window,Worker), RuntimeEnabled=RTCRtpTransport] -interface RTCRtpSendResult { - readonly attribute RTCRtpSent? sent; - readonly attribute RTCRtpUnsentReason? unsent; -}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_stream.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_stream.idl deleted file mode 100755 index 063be019..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_stream.idl +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary RTCRtpSendOptions { - DOMHighResTimeStamp sendTime; -}; - -enum RTCRtpUnsentReason { - "overuse", - "transport-unavailable", -}; - -[Exposed=(Window,Worker), RuntimeEnabled=RTCRtpTransport] -interface RTCRtpSendStream { - [CallWith=ScriptState] Promise sendRtp(RTCRtpPacketInit packet, RTCRtpSendOptions options); -}; - diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl index 88168a42..58cf99c8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl @@ -19,10 +19,6 @@ interface RTCRtpSender { [Measure, CallWith=ScriptState, RaisesException] RTCInsertableStreams createEncodedStreams(); - - [RuntimeEnabled=RTCRtpTransport] - Promise> replaceSendStreams(); - [RuntimeEnabled=RTCRtpScriptTransform, RaisesException=Setter] attribute RTCRtpScriptTransform? transform; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sent.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sent.idl deleted file mode 100755 index e1b22533..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sent.idl +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -[Exposed=(Window,Worker), RuntimeEnabled=RTCRtpTransport] -interface RTCRtpSent { - readonly attribute DOMHighResTimeStamp time; - - // Can be correlated with acks - readonly attribute unsigned long long? ackId; - readonly attribute unsigned long long size; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.idl deleted file mode 100755 index a168c63b..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.idl +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2024 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -[Exposed=Window, RuntimeEnabled=RTCRtpTransport] -interface RTCRtpTransport { - [CallWith=ScriptState, RaisesException] - undefined createProcessor(Worker worker, optional any options, optional sequence transfer); -}; - -[Exposed=DedicatedWorker, RuntimeEnabled=RTCRtpTransport] -interface RTCRtpTransportProcessor { - sequence readReceivedAcks(long maxCount); - sequence readSentRtp(long maxCount); - - attribute unsigned long customMaxBandwidth; // bps -}; - -[Exposed=DedicatedWorker, RuntimeEnabled=RTCRtpTransport] -interface RTCRtpTransportProcessorEvent : Event { - readonly attribute RTCRtpTransportProcessor processor; -}; - -[ImplementedAs=DedicatedWorkerGlobalScopeRTCRtpTransportProcessor, RuntimeEnabled=RTCRtpTransport] -partial interface DedicatedWorkerGlobalScope { - attribute EventHandler onrtcrtptransportprocessor; -}; \ No newline at end of file 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 89afa006..a8eebda7 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 @@ -63,6 +63,8 @@ dictionary RTCRtpStreamStats : RTCStats { // https://w3c.github.io/webrtc-stats/#receivedrtpstats-dict* dictionary RTCReceivedRtpStreamStats : RTCRtpStreamStats { unsigned long long packetsReceived; + unsigned long long packetsReceivedWithEct1; + unsigned long long packetsReceivedWithCe; long long packetsLost; double jitter; }; @@ -183,6 +185,8 @@ dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats { DOMString scalabilityMode; // https://w3c.github.io/webrtc-provisional-stats/#RTCOutboundRtpStreamStats-dict* DOMString contentType; + + unsigned long long packetsSentWithEct1; }; // https://w3c.github.io/webrtc-stats/#rtcqualitylimitationreason-enum @@ -276,6 +280,7 @@ dictionary RTCTransportStats : RTCStats { RTCDtlsRole dtlsRole; DOMString srtpCipher; unsigned long selectedCandidatePairChanges; + unsigned long ccbfMessagesReceived; // https://w3c.github.io/webrtc-provisional-stats/#RTCTransportStats-dict* DOMString rtcpTransportStatsId; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_received_packet.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_received_packet.idl new file mode 100755 index 00000000..74957a73 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_received_packet.idl @@ -0,0 +1,11 @@ +// 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. + +[ + Exposed=(Window,Worker), + RuntimeEnabled=RTCRtpTransport +] interface RtcReceivedPacket { + // TODO(crbug.com/443019066): Change to support BYOB. + readonly attribute ArrayBuffer data; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_transport.idl b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_transport.idl new file mode 100755 index 00000000..77ed2d36 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/peerconnection/rtc_transport/rtc_transport.idl @@ -0,0 +1,41 @@ +// 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 RtcTransportConfig { + DOMString name; + + // ICE configuration. + sequence iceServers; + boolean iceControlling; +}; + +dictionary RtcSendPacketParameters { + // The `id` is used by the app to map packets sent with `sendPackets` to + // information received in `RtcPacketSentInfo` and `RtcPacketFeedbackInfo`. + long long id; + + // TODO(crbug.com/443019066): Change to support BYOB. + ArrayBuffer data; + + DOMHighResTimeStamp desiredSendTime; +}; + +[ + Exposed=(Window,Worker), + SecureContext, + RuntimeEnabled=RTCRtpTransport +] interface RtcTransport { + [CallWith=ExecutionContext] constructor(RtcTransportConfig name); + + void sendPackets(sequence packets); + sequence getReceivedPackets(); + + attribute EventHandler onicecandidate; + + // TODO(crbug.com/443019066): Add connection state events once they're discussed in the + // W3C WebRTC packet-level API design group. + + // TODO(crbug.com/443019066): Add methods for providing remote ICE config and candidates + // that the app has received via app-level signalling. +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_print_job.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_print_job.idl index 3eb32dc6..d29be654 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_print_job.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_print_job.idl @@ -14,7 +14,7 @@ enum WebPrintJobState { }; dictionary WebPrintJobAttributes { - DOMString jobName; + USVString jobName; unsigned long jobPages; unsigned long jobPagesCompleted; WebPrintJobState jobState; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer.idl index c3416352..b8dff0ba 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer.idl @@ -17,7 +17,7 @@ interface WebPrinter { [CallWith=ScriptState, RaisesException, MeasureAs=WebPrinterPrintJobFunction] Promise submitPrintJob( - DOMString job_name, - WebPrintDocumentDescription document, + USVString job_name, + Blob document_data, WebPrintJobTemplateAttributes attributes); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl index 8b9ba368..012745b3 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printer_attributes.idl @@ -13,10 +13,6 @@ dictionary WebPrintingResolution { WebPrintingResolutionUnits units; }; -dictionary WebPrintDocumentDescription { - required Blob data; -}; - typedef (WebPrintingRange or unsigned long) WebPrintingMediaSizeDimension; dictionary WebPrintingMediaSize { @@ -25,7 +21,7 @@ dictionary WebPrintingMediaSize { }; dictionary WebPrintingMediaCollection { - DOMString mediaSizeName; + USVString mediaSizeName; WebPrintingMediaSize mediaSize; }; @@ -42,17 +38,20 @@ dictionary WebPrintJobTemplateAttributes { unsigned long copies; WebPrintingMediaCollectionRequested mediaCol; - DOMString mediaSource; + USVString mediaSource; WebPrintingMultipleDocumentHandling multipleDocumentHandling; WebPrintingOrientationRequested orientationRequested; WebPrintingResolution printerResolution; WebPrintColorMode printColorMode; WebPrintQuality printQuality; WebPrintingSides sides; + + AbortSignal signal; }; dictionary WebPrinterAttributes { - DOMString printerName; + USVString printerName; + USVString printerId; unsigned long copiesDefault; WebPrintingRange copiesSupported; @@ -60,8 +59,8 @@ dictionary WebPrinterAttributes { WebPrintingMediaCollection mediaColDefault; sequence mediaColDatabase; - DOMString mediaSourceDefault; - sequence mediaSourceSupported; + USVString mediaSourceDefault; + sequence mediaSourceSupported; WebPrintingMimeMediaType documentFormatDefault; sequence documentFormatSupported; @@ -79,7 +78,7 @@ dictionary WebPrinterAttributes { sequence printColorModeSupported; WebPrinterState printerState; - DOMString printerStateMessage; + USVString printerStateMessage; sequence printerStateReasons; WebPrintQuality printQualityDefault; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printing_manager.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printing_manager.idl index 6941ba34..7b48d2da 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printing_manager.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/web_printing_manager.idl @@ -3,7 +3,7 @@ // found in the LICENSE file. [ - Exposed=Window, + Exposed=(Window,Worker), RuntimeEnabled=WebPrinting, SecureContext, IsolatedContext diff --git a/tools/under-control/src/third_party/blink/renderer/modules/printing/navigator_printing.idl b/tools/under-control/src/third_party/blink/renderer/modules/printing/window_printing.idl similarity index 87% rename from tools/under-control/src/third_party/blink/renderer/modules/printing/navigator_printing.idl rename to tools/under-control/src/third_party/blink/renderer/modules/printing/window_printing.idl index 5ef3bb09..a6541cf1 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/printing/navigator_printing.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/printing/window_printing.idl @@ -8,7 +8,7 @@ RuntimeEnabled=WebPrinting, SecureContext, IsolatedContext -] partial interface Navigator { +] partial interface mixin WindowOrWorkerGlobalScope { [SameObject, ImplementedAs=GetWebPrintingManager] readonly attribute WebPrintingManager printing; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.idl index f924e7de..8b3b9465 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.idl @@ -468,8 +468,8 @@ interface mixin WebGLRenderingContextBase { readonly attribute GLsizei drawingBufferWidth; readonly attribute GLsizei drawingBufferHeight; [RuntimeEnabled=WebGLDrawingBufferStorage] readonly attribute GLenum drawingBufferFormat; - [RaisesException=Setter] attribute PredefinedColorSpace drawingBufferColorSpace; - [RaisesException=Setter] attribute PredefinedColorSpace unpackColorSpace; + [CallWith=ScriptState, RaisesException=Setter] attribute PredefinedColorSpace drawingBufferColorSpace; + [CallWith=ScriptState, RaisesException=Setter] attribute PredefinedColorSpace unpackColorSpace; void activeTexture(GLenum texture); void attachShader(WebGLProgram program, WebGLShader shader); @@ -646,7 +646,7 @@ interface mixin WebGLRenderingContextBase { GLenum format, GLenum type, VideoFrame frame); [RuntimeEnabled=CanvasDrawElement, RaisesException] - void texHTMLElement2D(GLenum target, GLint level, GLint internalformat, + void texElementImage2D(GLenum target, GLint level, GLint internalformat, GLenum format, GLenum type, Element element); [RuntimeEnabled=CanvasDrawElement, RaisesException] void texElement2D(GLenum target, GLint level, GLint internalformat, 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 bf412aed..fb775843 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 @@ -24,13 +24,13 @@ enum GPUFeatureName { "dual-source-blending", "subgroups", "texture-component-swizzle", + "texture-formats-tier1", + "texture-formats-tier2", "primitive-index", // Non-standard (not currently in the spec). "chromium-experimental-timestamp-query-inside-passes", "chromium-experimental-multi-draw-indirect", - "chromium-experimental-unorm16-texture-formats", - "chromium-experimental-snorm16-texture-formats", "chromium-experimental-subgroup-matrix", }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl index e48686a6..cad0430e 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.idl @@ -13,14 +13,7 @@ dictionary GPUTextureViewDescriptor : GPUObjectDescriptorBase { GPUIntegerCoordinate baseArrayLayer = 0; GPUIntegerCoordinate arrayLayerCount; GPUTextureUsageFlags usage = 0; - [RuntimeEnabled=WebGPUExperimentalFeatures] GPUTextureComponentSwizzle swizzle; -}; - -dictionary GPUTextureComponentSwizzle { - GPUComponentSwizzle r = "r"; - GPUComponentSwizzle g = "g"; - GPUComponentSwizzle b = "b"; - GPUComponentSwizzle a = "a"; + [RuntimeEnabled=WebGPUExperimentalFeatures] DOMString swizzle = "rgba"; }; enum GPUTextureViewDimension { @@ -37,12 +30,3 @@ enum GPUTextureAspect { "stencil-only", "depth-only" }; - -enum GPUComponentSwizzle { - "zero", - "one", - "r", - "g", - "b", - "a", -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/navigator_window_controls_overlay.idl b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/navigator_window_controls_overlay.idl index 9e96b6cb..5a1e3e7c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/navigator_window_controls_overlay.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/navigator_window_controls_overlay.idl @@ -7,5 +7,5 @@ [ ImplementedAs=WindowControlsOverlay ] partial interface Navigator { - [SameObject] readonly attribute WindowControlsOverlay windowControlsOverlay; + [SameObject, RuntimeEnabled=WindowControlsOverlay] readonly attribute WindowControlsOverlay windowControlsOverlay; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay.idl b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay.idl index fe3f57d3..d51af663 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay.idl @@ -5,7 +5,8 @@ // https://github.com/WICG/window-controls-overlay/blob/master/explainer.md [ - Exposed=Window + Exposed=Window, + RuntimeEnabled=WindowControlsOverlay ] interface WindowControlsOverlay : EventTarget { readonly attribute boolean visible; DOMRect getTitlebarAreaRect(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay_geometry_change_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay_geometry_change_event.idl index c0475be4..90d2d5da 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay_geometry_change_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/window_controls_overlay/window_controls_overlay_geometry_change_event.idl @@ -5,7 +5,8 @@ // https://github.com/WICG/window-controls-overlay/blob/master/explainer.md [ - Exposed=Window + Exposed=Window, + RuntimeEnabled=WindowControlsOverlay ] interface WindowControlsOverlayGeometryChangeEvent : Event { constructor(DOMString type, WindowControlsOverlayGeometryChangeEventInit eventInitDict); [SameObject] readonly attribute DOMRect titlebarAreaRect; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_cylinder_layer.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_cylinder_layer.idl new file mode 100755 index 00000000..bab0b9f5 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_cylinder_layer.idl @@ -0,0 +1,19 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.w3.org/TR/webxrlayers-1/#xrcylinderlayertype +[ + SecureContext, + Exposed=Window, + RuntimeEnabled=WebXRLayers +] interface XRCylinderLayer : XRCompositionLayer { + attribute XRSpace space; + attribute XRRigidTransform transform; + + attribute float radius; + attribute float centralAngle; + attribute float aspectRatio; + + attribute EventHandler onredraw; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_information.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_information.idl index 52ea4f1c..534af0ab 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_information.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_depth_information.idl @@ -13,12 +13,6 @@ [SameObject, SaveSameObject] readonly attribute XRRigidTransform normDepthBufferFromNormView; readonly attribute float rawValueToMeters; - - // These properties should be taken from XRViewGeometry - [RuntimeEnabled=WebXRDepthPerformance] readonly attribute Float32Array projectionMatrix; - [SameObject, RuntimeEnabled=WebXRDepthPerformance, ImplementedAs=viewGeometryTransform] readonly attribute XRRigidTransform transform; }; -// Enable use of the mixin once WebXRDepthPerformance is enabled/cleaned up. -// We cannot use it at the present time, as otherwise it will be stable-exposed. -// XRDepthInformation includes XRViewGeometry; +XRDepthInformation includes XRViewGeometry; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_equirect_layer.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_equirect_layer.idl new file mode 100755 index 00000000..0df50c63 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_equirect_layer.idl @@ -0,0 +1,21 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.w3.org/TR/webxrlayers-1/#XREquirectlayertype +[ + SecureContext, + Exposed=Window, + RuntimeEnabled=WebXRLayers +] interface XREquirectLayer : XRCompositionLayer { + attribute XRSpace space; + attribute XRRigidTransform transform; + + attribute float radius; + attribute float centralHorizontalAngle; + attribute float upperVerticalAngle; + attribute float lowerVerticalAngle; + + // Events + attribute EventHandler onredraw; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event.idl new file mode 100755 index 00000000..00960f68 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event.idl @@ -0,0 +1,13 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.w3.org/TR/webxrlayers-1/#xrlayerevent +[ + RuntimeEnabled=WebXRLayers, + SecureContext, + Exposed=Window +] interface XRLayerEvent : Event { + constructor(DOMString type, XRLayerEventInit eventInitDict); + [SameObject] readonly attribute XRLayer layer; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event_init.idl new file mode 100755 index 00000000..d984303b --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_event_init.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. + +// https://www.w3.org/TR/webxrlayers-1/#xrlayerevent +dictionary XRLayerEventInit : EventInit { + required XRLayer layer; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_init.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_init.idl new file mode 100755 index 00000000..73bac35b --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_layer_init.idl @@ -0,0 +1,51 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.w3.org/TR/webxrlayers-1/#xrprojectionlayerinittype +dictionary XRProjectionLayerInit { + XRTextureType textureType = "texture"; + GLenum colorFormat = 0x1908; // RGBA + GLenum depthFormat = 0x1902; // DEPTH_COMPONENT + double scaleFactor = 1.0; +}; + +// https://www.w3.org/TR/webxrlayers-1/#xrlayerinittype +dictionary XRLayerInit { + required XRSpace space; + GLenum colorFormat = 0x1908; // RGBA + GLenum? depthFormat; // optional + unsigned long mipLevels = 1; + required unsigned long viewPixelWidth; + required unsigned long viewPixelHeight; + XRLayerLayout layout = "mono"; + boolean isStatic = false; + boolean clearOnAccess = true; +}; + +// https://www.w3.org/TR/webxrlayers-1/#xrquadlayerinit +dictionary XRQuadLayerInit : XRLayerInit { + XRTextureType textureType = "texture"; + XRRigidTransform? transform; + float width = 1.0; + float height = 1.0; +}; + +// https://www.w3.org/TR/webxrlayers-1/#xrcylinderlayerinit +dictionary XRCylinderLayerInit : XRLayerInit { + XRTextureType textureType = "texture"; + XRRigidTransform? transform; + float radius = 2.0; + float centralAngle = 0.78539; + float aspectRatio = 2.0; +}; + +// https://www.w3.org/TR/webxrlayers-1/#xrequirectlayerinit +dictionary XREquirectLayerInit : XRLayerInit { + XRTextureType textureType = "texture"; + XRRigidTransform? transform; + float radius = 0; + float centralHorizontalAngle = 6.28318; + float upperVerticalAngle = 1.570795; + float lowerVerticalAngle = -1.570795; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_quad_layer.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_quad_layer.idl new file mode 100755 index 00000000..cfb8a186 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_quad_layer.idl @@ -0,0 +1,18 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.w3.org/TR/webxrlayers-1/#xrquadlayertype +[ + SecureContext, + Exposed=Window, + RuntimeEnabled=WebXRLayers +] interface XRQuadLayer : XRCompositionLayer { + attribute XRSpace space; + attribute XRRigidTransform transform; + + attribute float width; + attribute float height; + + attribute EventHandler onredraw; +}; 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 734f2156..5be13aea 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,17 +87,17 @@ enum XRReflectionFormat { [RuntimeEnabled=WebXRImageTracking, CallWith=ScriptState, MeasureAs=XRSessionGetTrackedImageScores, RaisesException] Promise> getTrackedImageScores(); - [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + [RaisesException] undefined pauseDepthSensing(); - [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + [RaisesException] undefined resumeDepthSensing(); [RaisesException] readonly attribute XRDepthUsage? depthUsage; [RaisesException] readonly attribute XRDepthDataFormat? depthDataFormat; - [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + [RaisesException] readonly attribute XRDepthType? depthType; - [RuntimeEnabled=WebXRDepthPerformance, RaisesException] + [RaisesException] readonly attribute boolean? depthActive; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_webgl_binding.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_webgl_binding.idl index 45fc35d5..44413e1b 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_webgl_binding.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_webgl_binding.idl @@ -8,14 +8,6 @@ enum XRTextureType { "texture-array" }; -// https://www.w3.org/TR/webxrlayers-1/#xrprojectionlayerinittype -dictionary XRProjectionLayerInit { - XRTextureType textureType = "texture"; - GLenum colorFormat = 0x1908; // RGBA - GLenum depthFormat = 0x1902; // DEPTH_COMPONENT - double scaleFactor = 1.0; -}; - // https://immersive-web.github.io/layers/#XRWebGLBindingtype [ SecureContext, @@ -31,9 +23,21 @@ dictionary XRProjectionLayerInit { [RuntimeEnabled=WebXRLayers, RaisesException] XRProjectionLayer createProjectionLayer(optional XRProjectionLayerInit init = {}); + [RuntimeEnabled=WebXRLayers, RaisesException] + XRQuadLayer createQuadLayer(XRQuadLayerInit init); + + [RuntimeEnabled=WebXRLayers, RaisesException] + XRCylinderLayer createCylinderLayer(XRCylinderLayerInit init); + + [RuntimeEnabled=WebXRLayers, RaisesException] + XREquirectLayer createEquirectLayer(XREquirectLayerInit init); + [RuntimeEnabled=WebXRLayers, RaisesException] XRWebGLSubImage getViewSubImage(XRProjectionLayer layer, XRView view); + [RuntimeEnabled=WebXRLayers, RaisesException] + XRWebGLSubImage getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = "none"); + [RuntimeEnabled=WebXR, RaisesException, MeasureAs=XRWebGLBindingGetReflectionCubeMap] WebGLTexture? getReflectionCubeMap(XRLightProbe lightProbe); 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 0091f253..b10b1fe3 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 @@ -214,6 +214,16 @@ }, data: [ + { + // crbug.com/439682405 + name: "AbortByPlaceholderLayout", + status: "stable", + }, + { + // This flag changes about:blank to dark in dark mode on user action. + name: "AboutBlankPageRespectsDarkModeOnUserAction", + status: "stable", + }, { name: "Accelerated2dCanvas", settable_from_internals: true, @@ -278,6 +288,12 @@ base_feature: "none", public: true, }, + { + // https://chromestatus.com/feature/5113389252739072 + // https://issues.chromium.org/issues/41119923 + name: "AccessKeyLabel", + status: "experimental", + }, { name: "AddressSpace", status: "experimental", @@ -432,10 +448,6 @@ name: "AIWriterAPIForWorkers", public: true, }, - { - name: "AliasWebkitFillAvailable", - status: "stable", - }, { name: "AlignZoomToCenter", status: "stable", @@ -498,6 +510,12 @@ name: "AnchorPositionAdjustmentWithoutOverflow", status: "stable", }, + { + // Switch for https://crbug.com/445371140 which changes the initial value + // for position-visibility to 'anchors-visible' per current spec. + name: "AnchorsVisibleInitialValue", + status: "stable", + }, { name: "AndroidDownloadableFontsMatching", base_feature: "none", @@ -567,10 +585,6 @@ name: "AsyncSetCookie", status: "stable", }, - { - name: "AttributeDirectionality", - status: "stable", - }, { name: "AttributionReporting", status: "stable", @@ -633,11 +647,10 @@ name: "AvoidNormalizingVisiblePositionsWhenStartEqualsEnd", status: "stable", }, - // When enabled, clicking on canvas element will not update the selection. - // See crbug.com/40130450. { - name: "AvoidSelectionChangeOnCanvasClick", - status: "stable" + // Killswitch for https://crbug.com/40947850. + name: "BackdropRootForClipPathWithBackdropFilter", + status: "stable", }, // When enabled, enforces new interoperable semantics for 3D transforms. // See crbug.com/1008483. @@ -733,6 +746,16 @@ name: "BlobBytes", status: "experimental", }, + { + // No status because this blink runtime feature doesn't work by itself. + // It's controlled by the corresponding Chromium feature, + // fingerprinting_protection_interventions::features::kBlockCanvasReadback + // through modified_runtime_features and setting its status in the browser + // process. + name: "BlockCanvasReadback", + browser_process_read_write_access: true, + base_feature: "none", + }, { name: "BlockingFocusWithoutUserActivation", status: "experimental", @@ -830,12 +853,13 @@ }, { // https://github.com/WICG/html-in-canvas/blob/main/README.md + // Note the API name has changed to `drawElementImage`. name: "CanvasDrawElement", status: "test", }, { - // Remove the restriction that drawHTMLElement can only draw immediate - // children of the canvas, and allow drawing canvas descendants. + // Remove the restriction that drawElementImage can only draw immediate children + // of the canvas, and allow drawing canvas descendants. name: "CanvasDrawElementInSubtree", depends_on: ["CanvasDrawElement"], }, @@ -858,15 +882,11 @@ name: "CanvasHDR", status: "experimental", }, + // This flag exists only for testing and should not be changed to stable. + // Used for canvas noising tests. { - // No status because this blink runtime feature doesn't work by itself. - // It's controlled by the corresponding Chromium feature, - // fingerprinting_protection_interventions::features::kCanvasNoise through - // modified_runtime_features and setting its status in the browser - // process. - name: "CanvasInterventions", - browser_process_read_write_access: true, - base_feature: "none", + name: "CanvasInterventionsTest", + is_protected_feature: "true", }, { // crbug.com/389726691. @@ -879,6 +899,11 @@ origin_trial_feature_name: "CanvasTextNg", status: "stable", }, + { + // crbug.com/450531794. + name: "CanvasTextTexImage2DFix", + status: "stable", + }, { // Kill switch for https://crbug.com/330506337. name: "CanvasUsesArcPaintOp", @@ -915,6 +940,11 @@ depends_on: ["GetDisplayMedia"], status: {"Android": "", "default": "stable"}, }, + { + // crbug.com/446475645 + name: "CaretPositionFromPointTextareaFix", + status: "stable", + }, { // Changes the caret's affinity to upstream, preventing spaces // from appearing in the previous line when typing at the start @@ -970,14 +1000,6 @@ name: "ClipboardItemWithDOMStringSupport", status: "stable", }, - { - // Enables the ability to reset the clipboard snapshot when clipboard write - // operations are performed. This feature ensures that stale clipboard data - // is cleared and a fresh snapshot is created when necessary. - // See crbug.com/388081043 - name: "ClipboardSnapshotResetOnWrite", - status: "stable", - }, { // TODO(crbug.com/440374239): Disabled due to https://crbug.com/440374239. name: "ClipElementVisibleBoundsInLocalRoot", @@ -1001,11 +1023,6 @@ name: "CollapseZeroWidthSpaceWhenReuseItem", status: "stable", }, - { - // Killswitch for https://crbug.com/414827239 - name: "ColorInputDatalistLooksNormal", - status: "stable", - }, // Enable the rec2100-linear color space in CSS and PredefinedColorSpace. { name: "ColorSpaceRec2100Linear", @@ -1018,10 +1035,18 @@ name: "CommandEventNotComposed", status: "stable", }, + { + // Return an empty list from composedPath() when the event + // path is empty. + // This was added in M142 and can be removed after M144. + // https://issues.chromium.org/issues/444932649 + name: "ComposedPathEmptyAfterDispatch", + status: "stable", + }, { name: "CompositeBGColorAnimation", public: true, - status: "experimental", + status: "stable", base_feature: "none", }, { @@ -1057,11 +1082,6 @@ base_feature: "none", public: true, }, - { - name: "CompressionDictionaryTransportBackend", - base_feature: "none", - public: true, - }, { name: "ComputedAccessibilityInfo", status: "experimental", @@ -1147,10 +1167,7 @@ origin_trial_feature_name: "CrashReportingStorageAPI", }, { - // Allow WebAuthn relying parties to report information about existing - // credentials back to credential storage providers. - // Enabled by default on M132. Remove flag on or after M135. - name: "CredentialManagerReport", + name: "CreateInlineContentsExcludeOutOfFlow", status: "stable", }, { @@ -1260,6 +1277,11 @@ name: "CSSColorTypedOM", status: "experimental", }, + { + // https://github.com/w3c/csswg-drafts/issues/12090#issuecomment-3204775586 + name: "CSSContainerNameNotTreeScoped", + status: "experimental", + }, // https://drafts.csswg.org/css-values-5/#progress // container-progress() { @@ -1267,9 +1289,9 @@ status: "experimental", }, { - // https://github.com/w3c/csswg-drafts/issues/8376#issuecomment-2751161553 + // https://drafts.csswg.org/css-conditional-5/#typedef-style-range name: "CSSContainerStyleQueriesRange", - status: "test", + status: "stable", }, { // https://drafts.csswg.org/css-borders-4/#corner-shaping @@ -1319,10 +1341,6 @@ name: "CssFitWidthText", status: "experimental", }, - { - // crbug.com/417306102 - name: "CssFitWidthTextConsistent", - }, { name: "CSSFontSizeAdjust", status: "stable", @@ -1337,10 +1355,6 @@ name: "CSSGapDecoration", status: "experimental", }, - { - // https://issues.chromium.org/issues/436140061 - name: "CSSGapDecorationOptimized", - }, { // This needs to be kept as a runtime flag as long as we need to forcibly // disable it for WebView on Android versions older than P. See @@ -1379,25 +1393,11 @@ name: "CSSInlineIfForSupportsQueries", status: "stable", }, - { - // Support for the interest-delay shorthand property. - // The longhands are controlled by HTMLInterestForAttribute. The - // shorthand is controlled separately since shorthands can not be enabled - // by an origin trial. - name: "CSSInterestDelayShorthand", - status: "experimental", - }, { // https://chromestatus.com/feature/6289894144212992 name: "CSSKeyframesRuleLength", status: "stable", }, - { - // Support for extended language ranges in :lang() - // https://chromestatus.com/feature/5071058079055872 - name: "CSSLangExtendedRanges", - status: "experimental", - }, { name: "CSSLayoutAPI", status: "experimental", @@ -1414,6 +1414,13 @@ name: "CSSLineClampLineBreakingEllipsis", depends_on: ["CSSLineClamp"], }, + { + // Allows pseudo-element selectors within logical combination pseudo- + // classes, e.g. :is(div::before). + // + // https://crbug.com/444386484 + name: "CSSLogicalCombinationPseudo", + }, { name: "CSSMarkerNestedPseudoElement", status: "stable", @@ -1442,6 +1449,11 @@ name: "CSSNestedPseudoElements", status: "stable", }, + { + // https://chromestatus.com/feature/5261280285949952 + name: "CSSOverscrollGestures", + status: "test", + }, { name: "CSSPaintAPIArguments", status: "experimental", @@ -1516,6 +1528,10 @@ name: "CSSRevertRule", status: "experimental", }, + { + name: "CSSRubyOverhang", + status: "experimental", + }, { name: "CSSSafePrintableInset", status: "experimental", @@ -1541,10 +1557,10 @@ status: "experimental", }, { - // https://github.com/w3c/csswg-drafts/issues/11600 + // https://drafts.csswg.org/css-overflow-5/#active-before-after-scroll-markers // :target-before and :target-after pseudo classes for scroll markers. name: "CSSScrollMarkerTargetBeforeAfter", - status: "experimental", + status: "stable", }, { // https://drafts.csswg.org/css-scroll-snap-2/#scrollsnapchange @@ -1684,6 +1700,11 @@ status: "experimental", depends_on: ["CustomizableSelectInPage"], }, + // see crbug.com/341313078 + { + name: "CustomScrollbarApplyMinimumThumbLength", + status: "stable", + }, { // Replaces \r\n and \r with \n in setCustomValidity. // https://github.com/whatwg/html/pull/10350 @@ -1701,6 +1722,22 @@ public: true, status: "experimental", }, + { + // https://crbug.com/393631108 + name: "DecoupleResolvedColumnRuleWidthFromStyle", + public: true, + status: "experimental", + }, + { + // Killswitch for https://crbug.com/400317114 fix. + // This lands in M142, and the flag can be removed in M144. + name: "DelegatesFocusTextControlInputFix", + status: "stable", + }, + { + name: "DeprecateCursorMovementIterator", + status: "stable", + }, // This allows pages to opt out of the unload deprecation. Enabling this // allows unload event handers to be used in the frame regardless of any // Permissions-Policy setting. @@ -1875,7 +1912,7 @@ { // https://chromestatus.com/feature/5067126381215744 name: "DocumentActiveViewTransition", - status: "experimental", + status: "stable", }, { name: "DocumentCookie", @@ -1961,6 +1998,12 @@ base_feature: "none", }, // Enables the ability to use Document Policy header to control feature + // NetworkEfficiencyGuardrails. https://chromestatus.com/feature/5156240166223872 + { + name: "DocumentPolicyNetworkEfficiencyGuardrails", + status: "experimental", + }, + // Enables the ability to use Document Policy header to control feature // SyncXHR. { name: "DocumentPolicySyncXHR", @@ -1983,11 +2026,9 @@ name: "DynamicSafeAreaInsets", status: {"Android": "stable"}, }, - // Dynamically change the safe area insets as browser controls scrolls. { - name: "DynamicSafeAreaInsetsOnScroll", - depends_on: ["DynamicSafeAreaInsets"], - status: {"Android": "stable"}, + name: "EditEmojiUnicode11", + status: "stable", }, { public: true, @@ -2008,11 +2049,6 @@ name: "ElementInternalsDotType", status: "experimental", }, - { - // crbug.com/40118302 - name: "EmptyReferenceFilterInvalidation", - status: "stable", - }, { name: "EnforceAnonymityExposure", status: "stable", @@ -2022,13 +2058,6 @@ name: "EnterInOpenShadowRoots", status: "stable", }, - { - // Escapes "<" and ">" in attribute values. This was launched - // in M139, and this flag can be removed in M141. - // See: crbug.com/1175016 - name: "EscapeLtGtInAttributes", - status: "stable", - }, { name: "EventTimingInteractionCount", status: "experimental", @@ -2113,6 +2142,12 @@ status: "test", base_feature: "none", }, + { + name: "FedCmErrorAttribute", + depends_on: ["FedCm"], + public: true, + base_feature: "none", + }, { name: "FedCmIdPRegistration", depends_on: ["FedCm"], @@ -2406,25 +2441,37 @@ { name: "FluentOverlayScrollbars", // The associated base feature is defined in - // ui/native_theme/native_theme_features.cc. + // ui/native_theme/features/native_theme_features.cc. base_feature: "none", }, { name: "FluentScrollbars", // The associated base feature is defined in - // ui/native_theme/native_theme_features.cc. + // ui/native_theme/features/native_theme_features.cc. base_feature: "none", }, { + // https://open-ui.org/components/scoped-focusgroup.explainer/ name: "Focusgroup", status: "experimental", - base_feature: "none", origin_trial_feature_name: "Focusgroup", }, + { + // 2-D grid navigation functionality of focusgroup is considered out of + // scope for the initial implementation. + // crbug.com/445992558 + name: "FocusgroupGrid", + depends_on: ["Focusgroup"], + status: "experimental", + }, { name: "FontAccess", status: {"Android": "", "default": "stable"}, }, + { + name: "FontFallbackForTabSize", + status: "stable", + }, { name: "FontFamilyPostscriptMatchingCTMigration", }, @@ -2436,6 +2483,11 @@ name: "FontFeatureSettingsDescriptor", status: "stable", }, + { + // crbug.com/41170551 + name: "FontLanguageOverride", + status: "experimental", + }, { name: "FontMatchAliasesAsLastResort", status: "stable", @@ -2616,6 +2668,10 @@ name: "HighlightsFromPoint", status: "stable", }, + { + name: "HitTestBorderRadiusForStackingContext", + status: "stable", + }, { name: "HrefTranslate", depends_on: ["TranslateService"], @@ -2669,14 +2725,12 @@ name: "HTMLImageElementActualNaturalSize", status: "test", }, - // Adds support for the experimental `interestfor` - // attributes, as specified in the open-ui "Interest Invokers" explainer. + // Adds support for the `interestfor` attribute. See crbug.com/326681249. // https://open-ui.org/components/interest-invokers.explainer/ + // This shipped in M142 and the flag can be removed in M144. { name: "HTMLInterestForAttribute", - status: "experimental", - origin_trial_feature_name: "HTMLInterestForAttribute", - origin_trial_allows_third_party: true, + status: "stable", }, // Adds support for the `::interest-hint` pseudo element, which is a sub- // feature of the HTMLInterestForAttribute feature. @@ -2720,11 +2774,6 @@ name: "IgnoreLetterSpacingInCursiveScripts", status: "stable", }, - { - // crbug.com/40602913 - name: "IgnoreOutOfFlowPositionForPreviousText", - status: "stable", - }, { name: "ImageDataPixelFormat", status: "stable", @@ -2736,16 +2785,12 @@ status: {"Android": "stable"}, base_feature: "none", }, - { // Improved retargeting behavior of ToggleEvent.source and // CommandEvent.source to match Event.relatedTarget. // crbug.com/420639769 + // Enabled in M142, can be removed in M144. name: "ImprovedSourceRetargeting", - status: "experimental", - }, - { - name: "IncludeTransformsForLayerXandLayerY", status: "stable", }, { @@ -2838,6 +2883,14 @@ base_feature: "none", public: true, }, + { + // Adds `!important` to `[inert] {interactivity: auto}` in the UA + // stylesheet. Resolved in the CSSWG here: + // https://github.com/w3c/csswg-drafts/issues/12049#issuecomment-3303716541 + // This killswitch is shipping in M142, and can ge removed in M144. + name: "InteractivityInertImportant", + status: "stable", + }, { name: "InterestGroupsInSharedStorageWorklet", public: true, @@ -2869,6 +2922,13 @@ status: "experimental", base_feature: "none", }, + { + // Fixes a bug after find-in-page tries to return focus to + // the page. This change shipped in M142, and this flag can + // be removed in M144. + name: "KeyboardFocusabilityAfterFindInPage", + status: "stable", + }, { name: "LangAttributeAwareFormControlUI", settable_from_internals: true, @@ -2898,10 +2958,6 @@ { name: "LayoutIgnoreMarginsForSticky", }, - { - name: "LayoutMinSizeAutoIndefinite", - status: "stable", - }, { name: "LayoutNGShapeCache", status: "stable", @@ -2913,6 +2969,14 @@ public: true, // This is enabled by features::kLazyInitializeMediaControls. }, + { + // Allow triggering the word suggestion from left click. + // From crbug.com/433209485 + name: "LeftClickToHandleSuggestion", + status: { + "Android": "stable" + } + }, { name: "LimitThirdPartyCookies", origin_trial_feature_name: "LimitThirdPartyCookies", @@ -2921,12 +2985,17 @@ }, { // Stop emitting U+FFFC Object Replacement Character for out-of-flow - // objects such as floating or out-of-flow positioned. crbgu.com/40658609 + // objects such as floating or out-of-flow positioned. crbug.com/40658609 name: "LineBreakOofNoOrc", status: "stable", }, { - name: "ListItemWithCounterSetNotSetExplicitValue", + // Improves the logic for removing focus from a currently focused + // element when its href attribute is removed by considering other ways + // that an may be focusable. Shipped in M142, should be safe to + // remove in M144. + // https://issues.chromium.org/issues/443585794 + name: "LinkBlurImprovement", status: "stable", }, { @@ -3121,12 +3190,6 @@ status: "test", origin_trial_feature_name: "MediaPlaybackWhileNotVisiblePermissionPolicy", }, - { - name: "MediaPreviewsOptOut", - base_feature: "none", - origin_trial_feature_name: "MediaPreviewsOptOutPersistent", - origin_trial_allows_third_party: true, - }, { name: "MediaQueryNavigationControls", }, @@ -3200,6 +3263,13 @@ name: "ModifyParagraphCrossEditingoundary", status: "stable", }, + // ModulePreloadReferrer enables modulepreload to send proper referrer + // headers as specified in the HTML spec. Behind a flag for safer rollout. + // https://crbug.com/441933555 + { + name: "ModulePreloadReferrer", + status: "experimental", + }, { name: "MojoJS", status: "test", @@ -3255,6 +3325,10 @@ origin_trial_feature_name: "SoftNavigationHeuristics", implied_by: ["SoftNavigationHeuristics"], }, + { + name: "NavigationTransitionDestination", + status: "experimental", + }, { name: "NavigatorContentUtils", // Android does not yet support NavigatorContentUtils. @@ -3384,6 +3458,13 @@ name: "OriginAPI", status: "experimental", }, + { + // Originating elements are implicit anchors for pseudo elements. + // This is a spec change since anchor positioning was shipped in Blink. + // https://issues.chromium.org/issues/408223892 + name: "OriginatingElementIsImplicitAnchor", + status: "experimental", + }, { name: "OriginIsolationHeader", status: "stable", @@ -3541,6 +3622,12 @@ name: "PaintOffsetTranslationForBackdropFilterWithInlineElement", status: "stable", }, + { + // Killswitch M142. Overrides the above to enable PaintOffsetTranslation + // for all composited LayoutObjects. + name: "PaintOffsetTranslationForComposited", + status: "stable", + }, { name: "PaintTimingMixin", status: "experimental", @@ -3554,12 +3641,6 @@ name: "Parakeet", origin_trial_feature_name: "Parakeet", }, - { - // Uses base::Time::FromUTCString() in ParseDate() instead of code from - // ParseDateFromNullTerminatedCharacters() from date_math.cc. - name: "ParseDateUsesBaseTimeFromUtcString", - status: "stable", - }, { name: "PartialCompletionNotAllowedInMoveParagraphs", status: "stable", @@ -3681,10 +3762,21 @@ // Flag for enabling the pointer lock API on Android name: "PointerLockOnAndroid", }, + { + // https://crbug.com/404479704 + name: "PointerRawUpdateOnlyInSecureContext", + status: "stable", + }, { name: "PositionOutsideTabSpanCheckSiblingNode", status: "stable", }, + { + // Kill switch for https://crbug.com/448173938 which changes position + // visibility to ignore non-clipping ancestors. + name: "PositionVisibilityIgnoreNonClipAncestors", + status: "stable", + }, { name: "PotentialPermissionsPolicyReporting", status: "stable", @@ -4055,13 +4147,6 @@ // https://github.com/WICG/display-locking/blob/main/explainers/update-rendering.md name: "RenderPriorityAttribute", }, - { - // Allocates a render surface for 2D scale transforms, to prevent - // composited pixel alignment issues. See - // https://crbug.com/40084005 - name: "RenderSurfaceFor2DScaleTransform", - status: "stable", - }, { name: "ReportFirstFrameTimeAsRenderTime", status: "test", @@ -4118,9 +4203,7 @@ // https://chromestatus.com/feature/4771962874363904 { name: "RouteMatching", - status: { - "default": "test", - }, + status: "test", }, { name: "RtcAudioJitterBufferMaxPackets", @@ -4198,6 +4281,20 @@ name: "RubyShortHeuristics", status: "stable", }, + { + // HTML event loop invoking 'Run snapshot post-layout state steps' from + // the CSSOM View per spec proposal. + name: "RunSnapshotPostLayoutStateSteps", + }, + { + // This flag is for fixing validation error + // for valid email address using IDN. + // This may ship in M142, and this flag can be + // removed in M144 pending no issues. + // See https://issues.chromium.org/issues/429490608 + name: "SanitizeIDNEmailFormInput", + status: "stable", + }, { // Spec: https://wicg.github.io/sanitizer-api/ // Tracking bug: crbug.com/356601280 @@ -4392,6 +4489,11 @@ name: "SelectionUpdateToInitialSelectionInListify", status: "stable", }, + { + // See https://chromestatus.com/feature/5203433409871872 + name: "SelectiveClipboardFormatRead", + status: "test", + }, { // See https://chromestatus.com/feature/4811835974615040 name: "SelectivePermissionsIntervention", @@ -4402,8 +4504,10 @@ // (dropdown) select element modes the same between mobile and desktop. // Without this flag, mobile will always use MenuList and desktop always // makes