From 82fe6e28908b8aefa208b6475cf475cfa408d752 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Wed, 3 Sep 2025 03:03:56 +0000 Subject: [PATCH] [AUTO][FILECONTROL] - version 140.0.7339.81 --- tools/under-control/src/RELEASE | 2 +- .../browser/aw_content_browser_client.cc | 66 +- .../browser/aw_field_trials.cc | 22 +- .../chrome/android/java/AndroidManifest.xml | 44 +- .../chrome_browsing_data_remover_delegate.cc | 45 +- .../chrome_browser_interface_binders.cc | 97 +- .../browser/chrome_content_browser_client.cc | 290 +- ...ent_browser_client_navigation_throttles.cc | 9 +- .../browser/flags/ChromeFeatureList.java | 364 +- .../src/chrome/browser/prefs/browser_prefs.cc | 610 +-- .../src/chrome/browser/ui/tab_helpers.cc | 7 +- .../extensions/api/autofill_private.idl | 14 +- .../extensions/api/autotest_private.idl | 42 - .../extensions/api/enterprise_login.idl | 6 +- .../extensions/api/experimental_actor.idl | 25 +- .../extensions/api/passwords_private.idl | 24 +- .../extensions/api/pdf_viewer_private.idl | 69 + .../common/extensions/api/processes.idl | 4 +- .../common/extensions/api/side_panel.idl | 16 + .../chrome_content_renderer_client.cc | 343 +- .../policy/resources/templates/policies.yaml | 23 +- .../Accessibility/LiveCaptionEnabled.yaml | 33 + .../Accessibility/LiveTranslateEnabled.yaml | 2 + .../Arc/ArcAppToWebAppSharingEnabled.yaml | 2 +- .../Arc/ArcGoogleLocationServicesEnabled.yaml | 1 + .../Arc/ArcOpenLinksInBrowserByDefault.yaml | 2 +- .../BrowserIdle/IdleTimeoutActions.yaml | 2 + .../CastReceiver/CastReceiverEnabled.yaml | 1 + .../CloudProfileReportingEnabled.yaml | 1 + .../UserSecurityAuthenticatedReporting.yaml | 2 + .../UserSecuritySignalsReporting.yaml | 2 + .../AutoSelectCertificateForUrls.yaml | 2 +- .../DefaultCookiesSetting.yaml | 1 + .../DefaultDeviceAttributesSetting.yaml | 33 + .../DefaultSerialGuardSetting.yaml | 2 +- ...tThirdPartyStoragePartitioningSetting.yaml | 1 + .../DeviceAttributesAllowedForOrigins.yaml | 9 +- .../DeviceAttributesBlockedForOrigins.yaml | 27 + .../LegacyCookieScopeEnabled.yaml | 47 + ...LegacyCookieScopeEnabledForDomainList.yaml | 34 + ...iteCookieBehaviorEnabledForDomainList.yaml | 2 - .../SerialAllowAllPortsForUrls.yaml | 2 +- .../ContentSettings/SerialAskForUrls.yaml | 2 +- .../ContentSettings/SerialBlockedForUrls.yaml | 2 +- ...yStoragePartitioningBlockedForOrigins.yaml | 1 + .../ContentSettings/policy_atomic_groups.yaml | 11 + .../DeviceAutoUpdateP2PEnabled.yaml | 4 +- .../FloatingSsoSessionCookiesIncluded.yaml | 25 + .../FloatingSso/policy_atomic_groups.yaml | 1 + .../AutofillPredictionSettings.yaml | 8 +- .../GenerativeAI/GeminiSettings.yaml | 2 +- .../GenerativeAI/GenAiDefaultSettings.yaml | 2 +- .../GenAiLensOverlaySettings.yaml | 48 - .../AssistantOnboardingMode.yaml | 3 +- .../AssistantVoiceMatchEnabledDuringOobe.yaml | 3 +- .../VoiceInteractionContextEnabled.yaml | 3 +- .../VoiceInteractionHotwordEnabled.yaml | 3 +- .../Kiosk/DeviceLocalAccounts.yaml | 48 +- .../Kiosk/KioskVisionTelemetryEnabled.yaml | 24 - .../LocalNetworkAccessAllowedForUrls.yaml | 3 +- .../LocalNetworkAccessBlockedForUrls.yaml | 3 +- ...LocalNetworkAccessRestrictionsEnabled.yaml | 3 +- .../AllowedInputMethodsForceEnabled.yaml | 1 + ...ntAuthenticationInPrivateModesEnabled.yaml | 1 + .../Miscellaneous/AudioCaptureAllowed.yaml | 1 + .../Miscellaneous/AudioOutputAllowed.yaml | 1 + .../Miscellaneous/AutoFillEnabled.yaml | 1 + .../Miscellaneous/AutofillAddressEnabled.yaml | 1 + .../AutofillCreditCardEnabled.yaml | 1 + .../Miscellaneous/AutoplayAllowed.yaml | 7 +- .../BrowserAddPersonEnabled.yaml | 1 + .../BrowserGuestModeEnabled.yaml | 1 + .../BrowserGuestModeEnforced.yaml | 1 + .../Miscellaneous/BrowsingDataLifetime.yaml | 2 + ...ptivePortalAuthenticationIgnoresProxy.yaml | 1 + .../ChromeOsMultiProfileUserBehavior.yaml | 1 + .../ClearBrowsingDataOnExitList.yaml | 2 + .../CloudManagementEnrollmentMandatory.yaml | 1 + .../CloudPolicyOverridesPlatformPolicy.yaml | 1 + .../ComponentUpdatesEnabled.yaml | 1 + .../CreatePasskeysInICloudKeychain.yaml | 3 + .../Miscellaneous/DataControlsRules.yaml | 3 +- .../DefaultBrowserSettingEnabled.yaml | 3 + ...earchProviderContextMenuAccessAllowed.yaml | 1 + .../DeveloperToolsAvailability.yaml | 1 + .../Miscellaneous/DeveloperToolsDisabled.yaml | 1 + .../Miscellaneous/DeviceAllowBluetooth.yaml | 1 + .../Miscellaneous/DeviceBlockDevmode.yaml | 1 + ...eviceBluetoothJustWorksPairingEnabled.yaml | 27 + ...ginScreenSecurityKeyPermitAttestation.yaml | 25 + .../DevicePciPeripheralDataAccessEnabled.yaml | 3 + .../DevicePostQuantumKeyAgreementEnabled.yaml | 6 +- .../Miscellaneous/DevicePowerwashAllowed.yaml | 1 + .../DeviceRebootOnUserSignout.yaml | 1 + ...iatedFlexSystemFirmwareUpdatesEnabled.yaml | 30 + .../Miscellaneous/Disable3DAPIs.yaml | 5 +- .../Miscellaneous/DiskCacheSize.yaml | 1 + .../Miscellaneous/DnsOverHttpsMode.yaml | 1 + .../Miscellaneous/DownloadBubbleEnabled.yaml | 4 +- .../Miscellaneous/DownloadRestrictions.yaml | 1 + .../Miscellaneous/EasyUnlockAllowed.yaml | 1 + .../Miscellaneous/EditBookmarksEnabled.yaml | 1 + .../Miscellaneous/EmojiSuggestionEnabled.yaml | 1 + .../EnableOnlineRevocationChecks.yaml | 1 + .../Miscellaneous/EnableSyncConsent.yaml | 1 + .../EnterpriseCustomLabelForBrowser.yaml | 2 - .../EnterpriseHardwarePlatformAPIEnabled.yaml | 1 + .../ExternalStorageDisabled.yaml | 1 + .../ExternalStorageReadOnly.yaml | 1 + .../Miscellaneous/F11KeyModifier.yaml | 1 + .../Miscellaneous/FocusModeSoundsEnabled.yaml | 1 + .../Miscellaneous/ForceBrowserSignin.yaml | 1 + .../Miscellaneous/ForceEphemeralProfiles.yaml | 1 + .../Miscellaneous/ForceGoogleSafeSearch.yaml | 1 + ...ForceLogoutUnauthenticatedUserEnabled.yaml | 4 +- .../ForceMaximizeOnFirstRun.yaml | 1 + .../Miscellaneous/ForceSafeSearch.yaml | 1 + .../Miscellaneous/ForceYouTubeRestrict.yaml | 1 + .../Miscellaneous/ForceYouTubeSafetyMode.yaml | 1 + .../Miscellaneous/FullscreenAllowed.yaml | 1 + .../GloballyScopeHTTPAuthCacheEnabled.yaml | 1 + .../GoogleLocationServicesEnabled.yaml | 2 +- .../HardwareAccelerationModeEnabled.yaml | 1 + .../Miscellaneous/HideWebStoreIcon.yaml | 1 + .../Miscellaneous/ImportAutofillFormData.yaml | 1 + .../Miscellaneous/ImportHomepage.yaml | 1 + .../Miscellaneous/ImportSearchEngine.yaml | 1 + .../Miscellaneous/IncognitoEnabled.yaml | 1 + .../IncognitoModeAvailability.yaml | 1 + .../InstantTetheringAllowed.yaml | 1 + .../Miscellaneous/JavascriptEnabled.yaml | 1 + .../Miscellaneous/LensOverlaySettings.yaml | 17 +- .../LoginDisplayPasswordButtonEnabled.yaml | 1 + .../ManagedConfigurationPerOrigin.yaml | 4 +- ...gedGuestSessionPrivacyWarningsEnabled.yaml | 1 + .../Miscellaneous/NearbyShareAllowed.yaml | 1 + .../NetworkPredictionOptions.yaml | 1 + .../NetworkServiceSandboxEnabled.yaml | 3 + .../OriginKeyedProcessesEnabled.yaml | 34 + .../PaymentMethodQueryEnabled.yaml | 1 + .../Miscellaneous/PhoneHubAllowed.yaml | 1 + .../PhoneHubNotificationsAllowed.yaml | 1 + .../PhoneHubTaskContinuationAllowed.yaml | 1 + .../PhysicalKeyboardAutocorrect.yaml | 1 + .../PhysicalKeyboardPredictiveWriting.yaml | 1 + .../PolicyAtomicGroupsEnabled.yaml | 1 + .../Miscellaneous/PolicyRefreshRate.yaml | 1 + .../PostQuantumKeyAgreementEnabled.yaml | 6 +- .../Miscellaneous/PromotionalTabsEnabled.yaml | 1 + .../Miscellaneous/QRCodeGeneratorEnabled.yaml | 59 +- .../Miscellaneous/QuicAllowed.yaml | 1 + .../Miscellaneous/RelaunchFastIfOutdated.yaml | 1 + .../Miscellaneous/RelaunchNotification.yaml | 1 + .../RelaunchNotificationPeriod.yaml | 1 + .../RendererCodeIntegrityEnabled.yaml | 1 + .../ReportCrostiniUsageEnabled.yaml | 1 + .../RestrictCoreSharingOnRenderer.yaml | 28 + .../RoamingProfileSupportEnabled.yaml | 1 + .../SSLErrorOverrideAllowed.yaml | 1 + .../SafeSitesFilterBehavior.yaml | 1 + .../SavingBrowserHistoryDisabled.yaml | 1 + .../Miscellaneous/SearchSuggestEnabled.yaml | 3 + .../SecondaryGoogleAccountSigninAllowed.yaml | 1 + .../SecurityKeyPermitAttestation.yaml | 2 + .../SecurityTokenSessionBehavior.yaml | 1 + .../ServiceWorkerAutoPreloadEnabled.yaml | 33 + .../Miscellaneous/SharedClipboardEnabled.yaml | 1 + .../Miscellaneous/ShelfAlignment.yaml | 1 + .../Miscellaneous/ShelfAutoHideBehavior.yaml | 1 + .../Miscellaneous/ShowLogoutButtonInTray.yaml | 1 + .../Miscellaneous/SigninAllowed.yaml | 1 + .../Miscellaneous/SitePerProcess.yaml | 1 + .../Miscellaneous/SmsMessagesAllowed.yaml | 1 + .../StartupBrowserWindowLaunchSuppressed.yaml | 1 + .../SuggestedContentEnabled.yaml | 1 + .../SuppressUnsupportedOSWarning.yaml | 1 + .../Miscellaneous/SyncDisabled.yaml | 1 + .../TaskManagerEndProcessEnabled.yaml | 1 + .../UnifiedDesktopEnabledByDefault.yaml | 1 + ...erAgentClientHintsGREASEUpdateEnabled.yaml | 2 - .../Miscellaneous/UserAgentReduction.yaml | 16 +- .../Miscellaneous/VideoCaptureAllowed.yaml | 1 + .../Miscellaneous/VmManagementCliAllowed.yaml | 1 + .../Miscellaneous/VpnConfigAllowed.yaml | 1 + .../WebRtcEventLogCollectionAllowed.yaml | 1 + .../WebRtcTextLogCollectionAllowed.yaml | 1 + .../Miscellaneous/WifiSyncAndroidAllowed.yaml | 1 + .../NativeMessagingUserLevelHosts.yaml | 1 + .../Network/DeviceDataRoamingEnabled.yaml | 1 + .../Network/DeviceDockMacAddressSource.yaml | 1 + .../Network/DeviceWiFiAllowed.yaml | 1 + .../DeviceWiFiFastTransitionEnabled.yaml | 1 + .../Network/HappyEyeballsV3Enabled.yaml | 3 + .../NTLMShareAuthenticationEnabled.yaml | 1 + .../NetBiosShareDiscoveryEnabled.yaml | 1 + .../NetworkFileSharesAllowed.yaml | 1 + .../EduCoexistenceToSVersion.yaml | 5 +- .../ParentAccessCodeConfig.yaml | 3 +- .../ParentalSupervision/PerAppTimeLimits.yaml | 3 +- .../PerAppTimeLimitsAllowlist.yaml | 3 +- .../AutomatedPasswordChangeSettings.yaml | 47 + .../PasswordLeakDetectionEnabled.yaml | 3 + .../PluginVm/PluginVmAllowed.yaml | 1 + .../PluginVmDataCollectionAllowed.yaml | 1 + .../DeviceRebootOnShutdown.yaml | 1 + ...eviceAdvancedBatteryChargeModeEnabled.yaml | 1 + .../DeviceBatteryChargeMode.yaml | 1 + .../DeviceBootOnAcEnabled.yaml | 1 + .../DevicePowerPeakShiftEnabled.yaml | 1 + .../DeviceUsbPowerShareEnabled.yaml | 1 + .../PowerManagement/LidCloseAction.yaml | 1 + .../PowerManagementUsesAudioActivity.yaml | 1 + .../PowerManagementUsesVideoActivity.yaml | 1 + .../PowerManagement/PowerSmartDimEnabled.yaml | 1 + .../PresentationScreenDimDelayScale.yaml | 1 + .../UserActivityScreenDimDelayScale.yaml | 1 + .../WaitForInitialUserActivity.yaml | 1 + .../Printing/CloudPrintProxyEnabled.yaml | 1 + .../Printing/DisablePrintPreview.yaml | 1 + .../Printing/PrintingEnabled.yaml | 1 + ...rintingSendUsernameAndFilenameEnabled.yaml | 1 + .../Printing/UserPrintersAllowed.yaml | 1 + ...andboxFingerprintingProtectionEnabled.yaml | 23 +- .../PrivacySandboxIpProtectionEnabled.yaml | 4 + ...InsecurePrivateNetworkRequestsAllowed.yaml | 3 +- ...ePrivateNetworkRequestsAllowedForUrls.yaml | 2 - .../ProjectorDogfoodForFamilyLinkEnabled.yaml | 3 +- .../ProtectedContent/.group.details.yaml | 2 + .../ProtectedContentIdentifiersAllowed.yaml | 27 + .../policy_atomic_groups.yaml | 4 + .../PinUnlockAutosubmitEnabled.yaml | 1 + .../QuickUnlock/PinUnlockMaximumLength.yaml | 1 + .../QuickUnlock/PinUnlockMinimumLength.yaml | 1 + .../QuickUnlock/QuickUnlockTimeout.yaml | 1 + .../RemoteAccessHostAllowClientPairing.yaml | 1 + .../RemoteAccessHostAllowGnubbyAuth.yaml | 1 + ...emoteAccessHostAllowPinAuthentication.yaml | 3 + ...emoteAccessHostAllowRelayedConnection.yaml | 1 + .../RemoteAccessHostFirewallTraversal.yaml | 1 + .../RemoteAccessHostMatchUsername.yaml | 1 + .../RemoteAccessHostRequireCurtain.yaml | 1 + .../LockScreenReauthenticationEnabled.yaml | 1 + .../SAML/SAMLOfflineSigninTimeLimit.yaml | 1 + .../DisableSafeBrowsingProceedAnyway.yaml | 1 + .../PasswordProtectionWarningTrigger.yaml | 1 + .../SafeBrowsing/SafeBrowsingEnabled.yaml | 3 + .../SafeBrowsingProtectionLevel.yaml | 1 + .../Sharing/TabGroupSharingSettings.yaml | 10 +- .../Signin/DeviceAllowNewUsers.yaml | 1 + .../Signin/DeviceEphemeralUsersEnabled.yaml | 1 + .../Signin/DeviceGuestModeEnabled.yaml | 1 + ...ginScreenAutoSelectCertificateForUrls.yaml | 3 +- .../DeviceShowNumericKeyboardForPassword.yaml | 1 + .../Signin/DeviceShowUserNamesOnSignin.yaml | 1 + .../Signin/DeviceTransferSAMLCookies.yaml | 1 + .../Startup/RestoreOnStartup.yaml | 1 + .../Startup/ShowHomeButton.yaml | 3 + .../DeviceMetricsReportingEnabled.yaml | 5 +- .../HeartbeatEnabled.yaml | 1 + .../LogUploadEnabled.yaml | 1 + .../ReportArcStatusEnabled.yaml | 1 + .../ReportDeviceActivityTimes.yaml | 1 + .../ReportDeviceAppInfo.yaml | 1 + .../ReportDeviceBacklightInfo.yaml | 1 + .../ReportDeviceBluetoothInfo.yaml | 1 + .../ReportDeviceBoardStatus.yaml | 1 + .../ReportDeviceBootMode.yaml | 1 + .../ReportDeviceCpuInfo.yaml | 1 + .../ReportDeviceCrashReportInfo.yaml | 1 + .../ReportDeviceFanInfo.yaml | 1 + .../ReportDeviceGraphicsStatus.yaml | 1 + .../ReportDeviceHardwareStatus.yaml | 1 + .../ReportDeviceLocation.yaml | 1 + .../ReportDeviceMemoryInfo.yaml | 1 + .../ReportDeviceNetworkInterfaces.yaml | 1 + .../ReportDeviceOsUpdateStatus.yaml | 1 + .../ReportDevicePowerStatus.yaml | 1 + .../ReportDeviceSessionStatus.yaml | 1 + .../ReportDeviceStorageStatus.yaml | 1 + .../ReportDeviceSystemInfo.yaml | 1 + .../ReportDeviceTimezoneInfo.yaml | 1 + .../ReportDeviceUsers.yaml | 1 + .../ReportDeviceVersionInfo.yaml | 1 + .../ReportDeviceVpdInfo.yaml | 1 + .../WebRtc/WebRtcPostQuantumKeyAgreement.yaml | 48 + .../WebRtc/policy_atomic_groups.yaml | 3 +- .../browser/web_contents/web_contents_impl.cc | 349 +- .../src/content/child/runtime_features.cc | 12 +- .../public/browser/content_browser_client.cc | 72 +- .../src/extensions/common/api/alarms.idl | 104 - .../src/extensions/common/api/automation.idl | 6 +- .../common/api/protocol_handlers.idl | 27 + tools/under-control/src/gin/v8_initializer.cc | 51 +- .../src/services/network/network_context.cc | 21 +- .../variations/fieldtrial_testing_config.json | 4285 +++++++++-------- .../use_counter/metrics/web_feature.mojom | 62 +- .../webpreferences/web_preferences.mojom | 2 - .../core/animation/animation_trigger.idl | 4 +- .../animation/animation_trigger_options.idl | 2 +- .../core/css/css_custom_media_rule.idl | 10 + .../core/css/cssom/caret_position.idl | 1 - .../blink/renderer/core/css/font_face.idl | 1 + .../core/css/font_face_descriptors.idl | 1 + .../core/css/parser/media_query_parser.cc | 16 +- .../renderer/core/dom/css_pseudo_element.idl | 14 + .../blink/renderer/core/dom/document.idl | 6 +- .../blink/renderer/core/dom/element.idl | 31 +- .../renderer/core/dom/events/event_target.idl | 2 +- .../core/dom/global_event_handlers.idl | 4 +- .../core/dom/interest_invoker_element.idl | 4 +- .../blink/renderer/core/dom/observable.idl | 2 +- .../blink/renderer/core/dom/parent_node.idl | 5 + .../blink/renderer/core/dom/range.idl | 2 +- .../blink/renderer/core/dom/shadow_root.idl | 8 +- .../renderer/core/dom/shadow_root_init.idl | 2 +- .../blink/renderer/core/dom/subscriber.idl | 2 +- .../renderer/core/events/command_event.idl | 1 - .../core/events/event_type_names.json5 | 3 + .../renderer/core/events/interest_event.idl | 2 +- .../renderer/core/events/message_event.idl | 5 +- .../renderer/core/exported/web_view_impl.cc | 65 +- .../core/frame/crash_report_storage.idl | 13 + .../blink/renderer/core/frame/settings.json5 | 4 - .../blink/renderer/core/frame/window.idl | 16 +- .../core/frame/window_event_handlers.idl | 2 +- .../geolocation/geolocation.idl | 0 .../geolocation/geolocation_coordinates.idl | 0 .../geolocation/geolocation_position.idl | 0 .../geolocation_position_error.idl | 0 .../geolocation/navigator_geolocation.idl | 0 .../geolocation/position_options.idl | 0 .../core/html/custom/element_internals.idl | 2 + .../core/html/forms/html_button_element.idl | 4 +- .../core/html/forms/html_select_element.idl | 2 +- .../renderer/core/html/html_embed_element.idl | 2 +- .../core/html/html_geolocation_element.idl | 19 + .../core/html/html_iframe_element.idl | 5 +- .../core/html/html_menu_item_element.idl | 4 +- .../core/html/html_object_element.idl | 4 +- .../core/html/html_script_element.idl | 4 +- .../core/inspector/dev_tools_host.idl | 1 + .../navigation_precommit_controller.idl | 2 +- .../origin_trials/origin_trial_context.cc | 2 +- .../renderer/core/patching/patch_event.idl | 11 + .../core/patching/patch_event_init.idl | 8 + .../renderer/core/patching/patch_status.idl | 5 + .../resize_observer_options.idl | 1 + .../renderer/core/scheduler/scheduler.idl | 2 +- .../scheduler/script_wrappable_task_state.idl | 8 - .../window_or_worker_global_scope_timers.idl | 4 +- .../core/script_tools/automation_delegate.idl | 12 + .../automation_delegate_supplement.idl | 10 + .../script_tools/tool_registration_params.idl | 19 + .../renderer/core/streams/readable_stream.idl | 2 +- .../core/timing/performance_entry.idl | 2 +- .../timing/performance_resource_timing.idl | 1 - .../core/trustedtypes/trusted_html.idl | 2 - .../core/trustedtypes/trusted_script.idl | 2 - .../core/trustedtypes/trusted_script_url.idl | 2 - .../blink/renderer/core/url/origin.idl | 23 + .../renderer/core/workers/shared_worker.idl | 2 +- .../blink/renderer/core/workers/worker.idl | 2 +- .../blink/renderer/core/xml/dom_parser.idl | 2 +- .../canvas2d/base_rendering_context_2d.idl | 2 +- .../canvas_2d_draw_element_option.idl | 10 + .../canvas2d/canvas_2d_recorder_context.idl | 3 +- .../canvas2d/canvas_rendering_context_2d.idl | 10 +- .../digital_credential.idl | 12 +- .../digital_credential_creation_options.idl | 5 +- .../digital_credential_request_options.idl | 14 +- .../navigator_identity.idl | 11 - .../constrain_dom_string_parameters.idl | 5 + .../mediastream/media_stream_constraints.idl | 6 + .../mediastream/media_track_capabilities.idl | 3 +- .../media_track_constraint_set.idl | 3 +- .../mediastream/media_track_settings.idl | 2 +- .../modules/ml/webnn/ml_graph_builder.idl | 8 +- .../notifications/notification_options.idl | 2 +- .../secure_payment_confirmation_request.idl | 17 - .../screen_details/screen_detailed.idl | 17 +- .../modules/service_worker/service_worker.idl | 6 +- .../service_worker_container.idl | 6 +- .../worker_navigator_service_worker.idl | 13 + .../modules/speech/speech_recognition.idl | 2 +- .../speech/speech_recognition_context.idl | 13 - .../speech/speech_recognition_phrase_list.idl | 16 - .../storage_access/storage_access_handle.idl | 4 +- .../web_install/navigator_web_install.idl | 6 +- .../webgl/webgl_rendering_context_base.idl | 2 - .../renderer/modules/webgpu/gpu_adapter.idl | 1 - .../modules/webgpu/gpu_adapter_info.idl | 2 +- .../modules/webgpu/gpu_bind_group_entry.idl | 7 +- .../gpu_render_pass_color_attachment.idl | 4 +- ...u_render_pass_depth_stencil_attachment.idl | 2 +- .../modules/webgpu/gpu_supported_features.idl | 2 + .../webgpu/gpu_texture_view_descriptor.idl | 17 + .../blink/renderer/modules/xr/xr_frame.idl | 6 +- .../blink/renderer/modules/xr/xr_hand.idl | 2 +- .../renderer/modules/xr/xr_input_source.idl | 2 +- .../renderer/modules/xr/xr_joint_pose.idl | 2 +- .../renderer/modules/xr/xr_joint_space.idl | 2 +- .../platform/runtime_enabled_features.json5 | 995 ++-- .../global-interface-listing-expected.txt | 9 +- 403 files changed, 5202 insertions(+), 4689 deletions(-) create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveCaptionEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultDeviceAttributesSetting.yaml rename tools/under-control/src/components/policy/resources/templates/policy_definitions/{Miscellaneous => ContentSettings}/DeviceAttributesAllowedForOrigins.yaml (54%) create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesBlockedForOrigins.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabledForDomainList.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/FloatingSsoSessionCookiesIncluded.yaml delete mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiLensOverlaySettings.yaml delete mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskVisionTelemetryEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBluetoothJustWorksPairingEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenSecurityKeyPermitAttestation.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFlexSystemFirmwareUpdatesEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OriginKeyedProcessesEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RestrictCoreSharingOnRenderer.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ServiceWorkerAutoPreloadEnabled.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/AutomatedPasswordChangeSettings.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/.group.details.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/ProtectedContentIdentifiersAllowed.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/policy_atomic_groups.yaml create mode 100755 tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcPostQuantumKeyAgreement.yaml delete mode 100755 tools/under-control/src/extensions/common/api/alarms.idl create mode 100755 tools/under-control/src/extensions/common/api/protocol_handlers.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/css/css_custom_media_rule.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/dom/css_pseudo_element.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/frame/crash_report_storage.idl rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/geolocation.idl (100%) rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/geolocation_coordinates.idl (100%) rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/geolocation_position.idl (100%) rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/geolocation_position_error.idl (100%) rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/navigator_geolocation.idl (100%) rename tools/under-control/src/third_party/blink/renderer/{modules => core}/geolocation/position_options.idl (100%) create mode 100755 tools/under-control/src/third_party/blink/renderer/core/html/html_geolocation_element.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/patching/patch_event.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/patching/patch_event_init.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/patching/patch_status.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/core/scheduler/script_wrappable_task_state.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate_supplement.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/core/url/origin.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/navigator_identity.idl create mode 100755 tools/under-control/src/third_party/blink/renderer/modules/service_worker/worker_navigator_service_worker.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl delete mode 100755 tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl diff --git a/tools/under-control/src/RELEASE b/tools/under-control/src/RELEASE index b921225b..72041c5c 100644 --- a/tools/under-control/src/RELEASE +++ b/tools/under-control/src/RELEASE @@ -1 +1 @@ -139.0.7258.158 +140.0.7339.81 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 bff0c537..39762ba3 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 @@ -50,6 +50,7 @@ #include "android_webview/common/url_constants.h" #include "base/android/build_info.h" #include "base/android/locale_utils.h" +#include "base/android/yield_to_looper_checker.h" #include "base/base_paths_android.h" #include "base/base_switches.h" #include "base/command_line.h" @@ -142,6 +143,7 @@ #include "ui/gfx/image/image_skia.h" #include "ui/resources/grit/ui_resources.h" +using base::android::YieldToLooperChecker; using content::BrowserThread; using content::FrameType; using content::WebContents; @@ -334,8 +336,8 @@ void AwContentBrowserClient::ConfigureNetworkContextParams( std::move(cookie_manager_remote)); } -AwBrowserContext* AwContentBrowserClient::InitBrowserContext() { - return AwBrowserContextStore::GetOrCreateInstance()->GetDefault(); +void AwContentBrowserClient::InitBrowserContextStore() { + AwBrowserContextStore::GetOrCreateInstance(); } std::unique_ptr @@ -343,10 +345,10 @@ AwContentBrowserClient::CreateBrowserMainParts(bool /* is_integration_test */) { return std::make_unique(this); } -bool IsStartupTaskExperimentEnabled() { - auto* command_line = base::CommandLine::ForCurrentProcess(); +bool IsAnyStartupTaskExperimentEnabled() { return AwBrowserMainParts::isWebViewStartupTasksExperimentEnabled() || - command_line->HasSwitch(switches::kWebViewUseStartupTasksLogic); + AwBrowserMainParts::isWebViewStartupTasksExperimentEnabledP2() || + AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled(); } void AwContentBrowserClient::PostAfterStartupTask( @@ -354,7 +356,7 @@ void AwContentBrowserClient::PostAfterStartupTask( const scoped_refptr& task_runner, base::OnceClosure task) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - if (!IsStartupTaskExperimentEnabled()) { + if (!IsAnyStartupTaskExperimentEnabled()) { task_runner->PostTask(from_here, std::move(task)); return; } @@ -376,6 +378,10 @@ void AwContentBrowserClient::OnStartupComplete() { DCHECK(!startup_info_.startup_complete); startup_info_.startup_complete = true; + if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { + YieldToLooperChecker::GetInstance().SetStartupRunning(false); + } + // if the native ui task execution isn't enabled already, enable it. if (!startup_info_.enable_native_task_execution_callback.is_null()) { std::move(startup_info_.enable_native_task_execution_callback).Run(); @@ -391,13 +397,17 @@ void AwContentBrowserClient::OnStartupComplete() { void AwContentBrowserClient::OnUiTaskRunnerReady( base::OnceClosure enable_native_task_execution_callback) { - if (!IsStartupTaskExperimentEnabled()) { + if (!IsAnyStartupTaskExperimentEnabled()) { std::move(enable_native_task_execution_callback).Run(); return; } startup_info_.enable_native_task_execution_callback = std::move(enable_native_task_execution_callback); + + if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { + YieldToLooperChecker::GetInstance().SetStartupRunning(true); + } } std::unique_ptr @@ -608,25 +618,6 @@ AwContentBrowserClient::GetLocalTracesDirectory() { return user_data_dir; } -void AwContentBrowserClient::DidCreatePpapiPlugin( - content::BrowserPpapiHost* browser_host) { - NOTREACHED() << "Android WebView does not support plugins"; -} - -bool AwContentBrowserClient::AllowPepperSocketAPI( - content::BrowserContext* browser_context, - const GURL& url, - bool private_api, - const content::SocketPermissionRequest* params) { - NOTREACHED() << "Android WebView does not support plugins"; -} - -bool AwContentBrowserClient::IsPepperVpnProviderAPIAllowed( - content::BrowserContext* browser_context, - const GURL& url) { - NOTREACHED() << "Android WebView does not support plugins"; -} - std::unique_ptr AwContentBrowserClient::CreateTracingDelegate() { return std::make_unique(); @@ -712,7 +703,7 @@ void AwContentBrowserClient::CreateThrottlesForNavigation( if ((navigation_handle.GetNavigatingFrameType() == FrameType::kPrimaryMainFrame || navigation_handle.GetNavigatingFrameType() == FrameType::kSubframe) && - navigation_handle.GetURL().SchemeIsHTTPOrHTTPS()) { + registry.IsHTTPOrHTTPS()) { AwSupervisedUserUrlClassifier* urlClassifier = AwSupervisedUserUrlClassifier::GetInstance(); if (urlClassifier->ShouldCreateThrottle()) { @@ -891,11 +882,14 @@ bool AwContentBrowserClient::SupportsAvoidUnnecessaryBeforeUnloadCheckSync() { return false; } -bool AwContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange( +content::ContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChangeResult +AwContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange( const content::RenderFrameHost& rfh) { if (!base::FeatureList::IsEnabled(features::kWebViewRenderDocument)) { - return false; + return content::ContentBrowserClient:: + ShouldAllowSameSiteRenderFrameHostChangeResult::kNotAllowed; } + content::RenderFrameHost* rfh_ptr = const_cast(&rfh); content::WebContents* web_contents = @@ -904,8 +898,18 @@ bool AwContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange( // Don't allow same-site RFH swap on non-crashed frames if the initial page // scale is non-default. See the comment in `AwSettings` about this for more // details. - return !aw_settings || !rfh_ptr->IsRenderFrameLive() || - !aw_settings->initial_page_scale_is_non_default(); + if (aw_settings && rfh_ptr->IsRenderFrameLive() && + aw_settings->initial_page_scale_is_non_default()) { + return content::ContentBrowserClient:: + ShouldAllowSameSiteRenderFrameHostChangeResult::kNotAllowed; + } + + // The WebViewRenderDocument flag is enabled and we're not in an unsupported + // case. Force the same-site RenderFrameHost change regardless of the state + // of the RenderDocument flag, so that we only need to enable the + // WebViewRenderDocument flag to enable RenderDocument on all frames. + return content::ContentBrowserClient:: + ShouldAllowSameSiteRenderFrameHostChangeResult::kAllowedOverrideLevel; } std::unique_ptr 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 2b193811..849f1814 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 @@ -22,6 +22,7 @@ #include "components/viz/common/features.h" #include "content/public/common/content_features.h" #include "gpu/config/gpu_finch_features.h" +#include "media/audio/audio_features.h" #include "media/base/media_switches.h" #include "mojo/public/cpp/bindings/features.h" #include "net/base/features.h" @@ -63,10 +64,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kEnforceNoopenerOnBlobURLNavigation); - // TODO(crbug.com/421547429): Temporarily disabled to address crashes. - aw_feature_overrides.DisableFeature( - network::features::kMaskedDomainListFlatbufferImpl); - #if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) // Disable the passthrough on WebView. aw_feature_overrides.DisableFeature( @@ -76,6 +73,9 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // HDR does not support webview yet. See crbug.com/1493153 for an explanation. aw_feature_overrides.DisableFeature(ui::kAndroidHDR); + // Disable launch_handler on WebView. + aw_feature_overrides.DisableFeature(::features::kAndroidWebAppLaunchHandler); + // Disable Reducing User Agent minor version on WebView. aw_feature_overrides.DisableFeature( blink::features::kReduceUserAgentMinorVersion); @@ -125,6 +125,9 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kSecurePaymentConfirmationAvailabilityAPI); + // WebView does not support handling payment links. + aw_feature_overrides.DisableFeature(blink::features::kPaymentLinkDetection); + // WebView does not support overlay fullscreen yet for video overlays. aw_feature_overrides.DisableFeature(media::kOverlayFullscreenVideo); @@ -221,9 +224,8 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Disabling the permission element as it needs embedder support in order to // function and the webview permission manager cannot support it. aw_feature_overrides.DisableFeature(blink::features::kPermissionElement); + aw_feature_overrides.DisableFeature(blink::features::kGeolocationElement); - // Feature parameters can only be set via a field trial. - // Note: Performing a field trial here means we cannot include // |kBtmTtl| in the testing config json. { const char kDipsWebViewExperiment[] = "DipsWebViewExperiment"; @@ -290,4 +292,12 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Explicitly disable PrefetchProxy instead of relying only on passing an // empty URL. aw_feature_overrides.DisableFeature(features::kPrefetchProxy); + + // Document Picture-in-Picture API is not supported on WebView. + aw_feature_overrides.DisableFeature( + blink::features::kDocumentPictureInPictureAPI); + + // AAudio per-stream device selection is not supported on WebView. + aw_feature_overrides.DisableFeature( + features::kAAudioPerStreamDeviceSelection); } diff --git a/tools/under-control/src/chrome/android/java/AndroidManifest.xml b/tools/under-control/src/chrome/android/java/AndroidManifest.xml index 40da3e5f..1ede2017 100755 --- a/tools/under-control/src/chrome/android/java/AndroidManifest.xml +++ b/tools/under-control/src/chrome/android/java/AndroidManifest.xml @@ -22,7 +22,7 @@ by a child template that "extends" this file. tools:ignore="MissingVersion"> - + @@ -67,6 +67,7 @@ by a child template that "extends" this file. + {% set is_desktop_android = is_desktop_android|default(0) %} @@ -96,6 +97,12 @@ by a child template that "extends" this file. + + @@ -597,7 +604,7 @@ by a child template that "extends" this file. android:autoRemoveFromRecents="true"> @@ -951,7 +958,7 @@ by a child template that "extends" this file. + + + + + + + @@ -1251,6 +1268,27 @@ by a child template that "extends" this file. android:visibleToInstantApps="true" {% endif %} /> {% endfor %} + {% if javaless_renderers is defined %} + + {% for i in range(2) %} + + + + + + {% endfor %} + {% endif %} {% set num_privileged_services = 10 %} ClearSettingsForOneTypeWithPredicate( ContentSettingsType::INTENT_PICKER_DISPLAY, delete_begin_, delete_end_, website_settings_filter); - - host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( - ContentSettingsType::PRIVATE_NETWORK_GUARD, delete_begin_, delete_end_, - website_settings_filter); - host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( - ContentSettingsType::PRIVATE_NETWORK_CHOOSER_DATA, delete_begin_, - delete_end_, website_settings_filter); #endif host_content_settings_map_->ClearSettingsForOneTypeWithPredicate( @@ -1134,10 +1115,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::FeatureList::IsEnabled(browsing_data::features::kDbdRevampDesktop)) #endif // !BUILDFLAG(IS_ANDROID) ) { - scoped_refptr + scoped_refptr payment_web_data_service = webdata_services::WebDataServiceWrapperFactory:: - GetPaymentManifestWebDataServiceForBrowserContext( + GetWebPaymentsWebDataServiceForBrowserContext( profile_, ServiceAccessType::EXPLICIT_ACCESS); if (payment_web_data_service) { payment_web_data_service->ClearSecurePaymentConfirmationCredentials( @@ -1171,18 +1152,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } } -#if BUILDFLAG(ENABLE_NACL) - if (filter_builder->MatchesMostOriginsAndDomains()) { - nacl::NaClBrowser::GetInstance()->ClearValidationCache(UIThreadTrampoline( - CreateTaskCompletionClosure(TracingDataType::kNaclCache))); - - pnacl::PnaclHost::GetInstance()->ClearTranslationCacheEntriesBetween( - delete_begin_, delete_end_, - UIThreadTrampoline( - CreateTaskCompletionClosure(TracingDataType::kPnaclCache))); - } -#endif - if (filter_builder->MatchesMostOriginsAndDomains()) { browsing_data::RemovePrerenderCacheData( prerender::NoStatePrefetchManagerFactory::GetForBrowserContext( @@ -1661,10 +1630,6 @@ const char* ChromeBrowsingDataRemoverDelegate::GetHistogramSuffix( return "Synchronous"; case TracingDataType::kHistory: return "History"; - case TracingDataType::kNaclCache: - return "NaclCache"; - case TracingDataType::kPnaclCache: - return "PnaclCache"; case TracingDataType::kAutofillData: return "AutofillData"; case TracingDataType::kAutofillOrigins: @@ -1827,8 +1792,8 @@ void ChromeBrowsingDataRemoverDelegate::DisablePasswordsAutoSignin( CreateTaskCompletionClosure( TracingDataType::kDisableAutoSigninForProfilePasswords)); } - if (account_store && password_manager::features_util::IsAccountStorageEnabled( - profile_->GetPrefs(), sync_service)) { + if (account_store && + password_manager::features_util::IsAccountStorageEnabled(sync_service)) { account_store->DisableAutoSignInForOrigins( url_filter, CreateTaskCompletionClosure( diff --git a/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc b/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc index 20511f01..61c77dbc 100755 --- a/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc +++ b/tools/under-control/src/chrome/browser/chrome_browser_interface_binders.cc @@ -15,7 +15,6 @@ #include "chrome/browser/buildflags.h" #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" #include "chrome/browser/navigation_predictor/navigation_predictor.h" -#include "chrome/browser/optimization_guide/model_execution/chrome_on_device_model_service_controller.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" @@ -59,6 +58,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/common/content_features.h" #include "content/public/common/url_constants.h" +#include "mojo/public/cpp/bindings/binder_map.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "services/image_annotation/public/mojom/image_annotation.mojom.h" @@ -429,26 +429,25 @@ void BindCredentialManager( void PopulateChromeFrameBinders( mojo::BinderMapWithContext* map, content::RenderFrameHost* render_frame_host) { - map->Add( - base::BindRepeating(&BindImageAnnotator)); + map->Add(&BindImageAnnotator); map->Add( - base::BindRepeating(&NavigationPredictor::Create)); + &NavigationPredictor::Create); map->Add( - base::BindRepeating(&predictors::LCPCriticalPathPredictorHost::Create)); + &predictors::LCPCriticalPathPredictorHost::Create); map->Add( - base::BindRepeating(&BindDistillabilityService)); + &BindDistillabilityService); map->Add( - base::BindRepeating(&BindDistillerJavaScriptService)); + &BindDistillerJavaScriptService); map->Add( - base::BindRepeating(&BindNoStatePrefetchCanceler)); + &BindNoStatePrefetchCanceler); map->Add( - base::BindRepeating(&BindNoStatePrefetchProcessor)); + &BindNoStatePrefetchProcessor); auto* pm_registry = performance_manager::PerformanceManagerRegistry::GetInstance(); @@ -457,10 +456,9 @@ void PopulateChromeFrameBinders( } map->Add( - base::BindRepeating(&translate::BindContentTranslateDriver)); + &translate::BindContentTranslateDriver); - map->Add( - base::BindRepeating(&BindModelBroker)); + map->Add(&BindModelBroker); if (!base::FeatureList::IsEnabled(blink::features::kLanguageDetectionAPI)) { // When the feature is enabled, the driver is bound by @@ -470,82 +468,78 @@ void PopulateChromeFrameBinders( // // TODO(https://crbug.com/354069716): Remove this when the flag is removed. map->Add( - base::BindRepeating(&translate::BindContentLanguageDetectionDriver)); + &translate::BindContentLanguageDetectionDriver); } - map->Add( - base::BindRepeating(&BindCredentialManager)); + map->Add(&BindCredentialManager); map->Add( base::BindRepeating( &SearchEngineTabHelper::BindOpenSearchDescriptionDocumentHandler)); #if BUILDFLAG(IS_ANDROID) - map->Add(base::BindRepeating( - &ForwardToJavaFrame)); - map->Add(base::BindRepeating( - &ForwardToJavaFrame)); + map->Add( + &ForwardToJavaFrame); + map->Add( + &ForwardToJavaFrame); #if defined(BROWSER_MEDIA_CONTROLS_MENU) - map->Add(base::BindRepeating( - &ForwardToJavaFrame)); + map->Add( + &ForwardToJavaFrame); #endif map->Add( - base::BindRepeating(&offline_pages::OfflinePageAutoFetcher::Create)); + &offline_pages::OfflinePageAutoFetcher::Create); if (base::FeatureList::IsEnabled(features::kWebPayments)) { - map->Add(base::BindRepeating( - &ForwardToJavaFrame)); + map->Add( + &ForwardToJavaFrame); } #if BUILDFLAG(ENABLE_UNHANDLED_TAP) map->Add( - base::BindRepeating(&BindUnhandledTapWebContentsObserver)); + &BindUnhandledTapWebContentsObserver); #endif // BUILDFLAG(ENABLE_UNHANDLED_TAP) #else map->Add( - base::BindRepeating(&badging::BadgeManager::BindFrameReceiverIfAllowed)); + &badging::BadgeManager::BindFrameReceiverIfAllowed); map->Add( - base::BindRepeating(&PersistentRendererPrefsManager::BindFrameReceiver)); + &PersistentRendererPrefsManager::BindFrameReceiver); if (base::FeatureList::IsEnabled(features::kWebPayments)) { - map->Add( - base::BindRepeating(&payments::CreatePaymentRequest)); + map->Add(&payments::CreatePaymentRequest); } if (base::FeatureList::IsEnabled(blink::features::kWebAppInstallation) && !render_frame_host->GetParentOrOuterDocument()) { map->Add( - base::BindRepeating(&web_app::WebInstallServiceImpl::CreateIfAllowed)); + &web_app::WebInstallServiceImpl::CreateIfAllowed); } #endif #if BUILDFLAG(IS_CHROMEOS) - map->Add(base::BindRepeating( - &apps::DigitalGoodsFactoryImpl::BindDigitalGoodsFactory)); + map->Add( + &apps::DigitalGoodsFactoryImpl::BindDigitalGoodsFactory); #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) - map->Add( - base::BindRepeating(&ShareServiceImpl::Create)); + map->Add(&ShareServiceImpl::Create); #endif #if BUILDFLAG(IS_ANDROID) - map->Add(base::BindRepeating( - &ForwardToJavaWebContents)); + map->Add( + &ForwardToJavaWebContents); #endif - map->Add( - base::BindRepeating(&BindNetworkHintsHandler)); + map->Add(&BindNetworkHintsHandler); map->Add( - base::BindRepeating(&BindOnDeviceSpeechRecognitionHandler)); + &BindOnDeviceSpeechRecognitionHandler); #if BUILDFLAG(ENABLE_SPEECH_SERVICE) map->Add( - base::BindRepeating(&BindSpeechRecognitionContextHandler)); + &BindSpeechRecognitionContextHandler); map->Add( - base::BindRepeating(&BindSpeechRecognitionClientBrowserInterfaceHandler)); + &BindSpeechRecognitionClientBrowserInterfaceHandler); map->Add( - base::BindRepeating(&BindSpeechRecognitionRecognizerClientHandler)); + &BindSpeechRecognitionRecognizerClientHandler); #if BUILDFLAG(IS_WIN) map->Add( - base::BindRepeating(&BindMediaFoundationRendererNotifierHandler)); + &BindMediaFoundationRendererNotifierHandler); #endif #endif // BUILDFLAG(ENABLE_SPEECH_SERVICE) @@ -557,40 +551,39 @@ void PopulateChromeFrameBinders( // to register it for them because a non-primary main frame could become a // primary main frame at a later time (eg. a prerendered page). map->Add( - base::BindRepeating(&web_app::SubAppsServiceImpl::CreateIfAllowed)); + &web_app::SubAppsServiceImpl::CreateIfAllowed); } - map->Add( - base::BindRepeating(&BindScreenAIAnnotator)); + map->Add(&BindScreenAIAnnotator); map->Add( - base::BindRepeating(&BindScreen2xMainContentExtractor)); + &BindScreen2xMainContentExtractor); #endif #if BUILDFLAG(IS_WIN) map->Add( - base::BindRepeating(&BindMediaFoundationPreferences)); + &BindMediaFoundationPreferences); #endif #if BUILDFLAG(ENABLE_PRINT_PREVIEW) map->Add( - base::BindRepeating(&printing::CreateWebPrintingServiceForFrame)); + &printing::CreateWebPrintingServiceForFrame); #endif #if BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled(blink::features::kPaymentLinkDetection)) { map->Add( - base::BindRepeating(&BindPaymentLinkHandler)); + &BindPaymentLinkHandler); } #endif #if BUILDFLAG(ENABLE_SPELLCHECK) - map->Add(base::BindRepeating( + map->Add( [](content::RenderFrameHost* frame_host, mojo::PendingReceiver receiver) { SpellCheckHostChromeImpl::Create( frame_host->GetProcess()->GetDeprecatedID(), std::move(receiver)); - })); + }); #endif // BUILDFLAG(ENABLE_SPELLCHECK) } 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 d271eb57..a582e406 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 @@ -63,7 +63,6 @@ #include "chrome/browser/btm/btm_browser_signin_detector.h" #include "chrome/browser/btm/stateful_bounce_counter.h" #include "chrome/browser/child_process_host_flags.h" -#include "chrome/browser/chrome_browser_main_extra_parts_nacl_deprecation.h" #include "chrome/browser/chrome_content_browser_client_binder_policies.h" #include "chrome/browser/chrome_content_browser_client_navigation_throttles.h" #include "chrome/browser/chrome_content_browser_client_parts.h" @@ -109,7 +108,6 @@ #include "chrome/browser/net/profile_network_context_service.h" #include "chrome/browser/net/profile_network_context_service_factory.h" #include "chrome/browser/net/system_network_context_manager.h" -#include "chrome/browser/optimization_guide/chrome_browser_main_extra_parts_optimization_guide.h" #include "chrome/browser/payments/payment_request_display_manager_factory.h" #include "chrome/browser/performance_manager/public/chrome_browser_main_extra_parts_performance_manager.h" #include "chrome/browser/performance_manager/public/chrome_content_browser_client_performance_manager_part.h" @@ -132,7 +130,6 @@ #include "chrome/browser/privacy_budget/identifiability_study_state.h" #include "chrome/browser/privacy_sandbox/privacy_sandbox_settings_factory.h" #include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h" -#include "chrome/browser/private_network_access/chrome_private_network_device_delegate.h" #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_io_data.h" @@ -198,7 +195,6 @@ #include "chrome/common/env_vars.h" #include "chrome/common/google_url_loader_throttle.h" #include "chrome/common/logging_chrome.h" -#include "chrome/common/ppapi_utils.h" #include "chrome/common/pref_names.h" #include "chrome/common/profiler/main_thread_stack_sampling_profiler.h" #include "chrome/common/profiler/process_type.h" @@ -306,7 +302,6 @@ #include "content/public/browser/browser_child_process_host.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_main_parts.h" -#include "content/public/browser/browser_ppapi_host.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_url_handler.h" @@ -333,7 +328,6 @@ #include "content/public/browser/tts_controller.h" #include "content/public/browser/tts_platform.h" #include "content/public/browser/url_loader_request_interceptor.h" -#include "content/public/browser/vpn_service_proxy.h" #include "content/public/browser/weak_document_ptr.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" @@ -365,7 +359,6 @@ #include "net/ssl/ssl_cert_request_info.h" #include "net/ssl/ssl_private_key.h" #include "pdf/buildflags.h" -#include "ppapi/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "sandbox/policy/features.h" #include "sandbox/policy/mojom/sandbox.mojom.h" @@ -527,6 +520,8 @@ #include "chrome/browser/chromeos/policy/dlp/dlp_scoped_file_access_delegate.h" #include "chrome/browser/chromeos/tablet_mode/chrome_content_browser_client_tablet_mode_part.h" #include "chrome/browser/file_system_access/cloud_identifier/cloud_identifier_util_cros.h" +#include "chrome/browser/media/webrtc/multi_capture/multi_capture_usage_indicator_service.h" +#include "chrome/browser/media/webrtc/multi_capture/multi_capture_usage_indicator_service_factory.h" #include "chrome/browser/policy/system_features_disable_list_policy_handler.h" #include "chrome/browser/smart_card/chromeos_smart_card_delegate.h" #include "chrome/browser/web_applications/chromeos_web_app_experiments.h" @@ -555,7 +550,6 @@ #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/isolated_web_apps/isolated_web_app_url_loader_factory.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" @@ -567,6 +561,7 @@ #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) @@ -598,13 +593,6 @@ #include "components/captive_portal/content/captive_portal_url_loader_throttle.h" #endif -#if BUILDFLAG(ENABLE_NACL) -#include "components/nacl/browser/nacl_host_message_filter.h" -#include "components/nacl/browser/nacl_process_host.h" -#include "components/nacl/common/nacl_process_type.h" -#include "components/nacl/common/nacl_switches.h" -#endif - #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h" #include "chrome/browser/extensions/chrome_extension_cookies.h" @@ -1229,7 +1217,8 @@ void MaybeAddCondition( #if BUILDFLAG(IS_CHROMEOS) void NotifyMultiCaptureStarted(const std::string& label, content::WebContents* web_contents, - const webapps::AppId* app_id) { + const webapps::AppId* app_id, + content::BrowserContext* browser_context) { const url::Origin origin = url::Origin::Create(web_contents->GetLastCommittedURL()); if (app_id) { @@ -1241,19 +1230,27 @@ void NotifyMultiCaptureStarted(const std::string& label, ->registrar_unsafe() .GetAppShortName(*app_id), origin); - } else { - // TODO(b/319317165): Remove this case once the pivot to web apps is - // complete. - CHECK_DEREF(ash::Shell::Get()) - .multi_capture_service() - ->NotifyMultiCaptureStarted(label, origin); + + if (base::FeatureList::IsEnabled( + chromeos::features::kMultiCaptureReworkedUsageIndicators)) { + CHECK_DEREF(multi_capture::MultiCaptureUsageIndicatorServiceFactory:: + GetForBrowserContext(web_contents->GetBrowserContext())) + .MultiCaptureStarted(label, *app_id); + } } } -void NotifyMultiCaptureStopped(const std::string& label) { +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); + } } bool IsSubAppsPermissionGrantedByAdmins(content::WebContents* contents) { @@ -1413,6 +1410,9 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( registry->RegisterBooleanPref(prefs::kOutOfProcessSystemDnsResolutionEnabled, true); #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) +#if !BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref(prefs::kOriginKeyedProcessesEnabled, false); +#endif // !BUILDFLAG(IS_ANDROID) } // static @@ -1504,6 +1504,11 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( prefs::kSubAppsAPIsAllowedWithoutGestureAndAuthorizationForOrigins); #endif +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref( + policy::policy_prefs::kProtectedContentIdentifiersAllowed, true); +#endif + registry->RegisterBooleanPref(prefs::kWebAudioOutputBufferingEnabled, false); registry->RegisterBooleanPref(prefs::kSharedWorkerBlobURLFixEnabled, true); registry->RegisterBooleanPref( @@ -1514,6 +1519,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kClearWindowNameForNewBrowsingContextGroup, true); registry->RegisterBooleanPref(prefs::kPrefetchWithServiceWorkerEnabled, true); + registry->RegisterBooleanPref(prefs::kServiceWorkerAutoPreloadEnabled, true); } // static @@ -1707,12 +1713,6 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { main_parts->AddParts( std::make_unique()); - main_parts->AddParts( - std::make_unique()); - - main_parts->AddParts( - std::make_unique()); - return main_parts; } @@ -1816,14 +1816,6 @@ void ChromeContentBrowserClient::RenderProcessWillLaunch( std::make_unique>( audio_debug_recordings_handler)); -#if BUILDFLAG(ENABLE_NACL) - if (IsNaclAllowed() && !profile->IsSystemProfile()) { - host->AddFilter(new nacl::NaClHostMessageFilter(host->GetDeprecatedID(), - profile->IsOffTheRecord(), - profile->GetPath())); - } -#endif - #if BUILDFLAG(IS_ANDROID) // Register CrashMemoryMetricsCollector to report oom related metrics. host->SetUserData( @@ -2165,14 +2157,14 @@ void ChromeContentBrowserClient::GetAdditionalViewSourceSchemes( network::mojom::IPAddressSpace ChromeContentBrowserClient::DetermineAddressSpaceFromURL(const GURL& url) { if (url.SchemeIs(chrome::kChromeSearchScheme)) { - return network::mojom::IPAddressSpace::kLocal; + return network::mojom::IPAddressSpace::kLoopback; } if (url.SchemeIs(dom_distiller::kDomDistillerScheme)) { return network::mojom::IPAddressSpace::kPublic; } #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (url.SchemeIs(extensions::kExtensionScheme)) { - return network::mojom::IPAddressSpace::kLocal; + return network::mojom::IPAddressSpace::kLoopback; } #endif @@ -2540,6 +2532,32 @@ bool ChromeContentBrowserClient::ShouldEnableStrictSiteIsolation() { #endif } +std::optional +ChromeContentBrowserClient::GetOverrideValueForOriginKeyedProcesses() { + // Users can override the enterprise policy. + // Note: This function and + // SiteIsolationPolicy::AreOriginKeyedProcessesEnabledByDefault() are expected + // to be the only places features::kOriginKeyedProcessesByDefault is checked + // outside of tests. + if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( + features::kOriginKeyedProcessesByDefault.name)) { + return base::FeatureList::IsEnabled( + features::kOriginKeyedProcessesByDefault); + } + +#if !BUILDFLAG(IS_ANDROID) + // Enterprise overrides take next priority. + PrefService* local_state = g_browser_process->local_state(); + const PrefService::Preference* pref = + local_state->FindPreference(prefs::kOriginKeyedProcessesEnabled); + if (pref && (pref->IsManaged() || pref->IsRecommended())) { + return pref->GetValue()->GetBool(); + } +#endif // !BUILDFLAG(IS_ANDROID) + + return std::nullopt; +} + bool ChromeContentBrowserClient::ShouldDisableSiteIsolation( content::SiteIsolationMode site_isolation_mode) { return site_isolation::SiteIsolationPolicy:: @@ -2914,10 +2932,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( command_line->AppendSwitch(switches::kEnableDistillabilityService); #endif -#if BUILDFLAG(ENABLE_NACL) - AppendDisableNaclSwitchIfNecessary(command_line); -#endif - // Please keep this in alphabetical order. static const char* const kSwitchNames[] = { autofill::switches::kIgnoreAutocompleteOffForAutofill, @@ -2943,10 +2957,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( variations::switches::kEnableBenchmarking, variations::switches::kEnableBenchmarkingApi, switches::kEnableDistillabilityService, - switches::kEnableNaCl, -#if BUILDFLAG(ENABLE_NACL) - switches::kEnableNaClDebug, -#endif switches::kEnableNetBenchmarking, switches::kExtensionAiDataCollection, switches::kExtensionExperimentalActor, @@ -2954,9 +2964,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( chromeos::switches:: kTelemetryExtensionPwaOriginOverrideForTesting, // For tests only. switches::kForceAppMode, -#endif -#if BUILDFLAG(ENABLE_NACL) - switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, switches::kIgnoreGooglePortNumbers, @@ -2983,21 +2990,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( #endif MaybeAppendSecureOriginsAllowlistSwitch(command_line); } else if (process_type == switches::kZygoteProcess) { - // It would be preferable to call AppendDisableNaclSwitchIfNecessary to - // disable NaCl for the zygote process. Unfortunately that method depends on - // state (including policy) that is determined after the zygote is forked. - // Instead we rely on renderers overriding the zygote state. - - // Load (in-process) Pepper plugins in-process in the zygote pre-sandbox. -#if BUILDFLAG(ENABLE_NACL) - static const char* const kSwitchNames[] = { - switches::kEnableNaClDebug, - switches::kForcePNaClSubzero, - switches::kVerboseLoggingInNacl, - }; - - command_line->CopySwitchesFrom(browser_command_line, kSwitchNames); -#endif #if BUILDFLAG(IS_CHROMEOS) // This is called before feature flags are parsed, so pass them in their raw // form. @@ -3724,6 +3716,13 @@ bool ChromeContentBrowserClient::IsPrefetchWithServiceWorkerAllowed( prefs::kPrefetchWithServiceWorkerEnabled); } +bool ChromeContentBrowserClient::IsServiceWorkerAutoPreloadAllowed( + content::BrowserContext* browser_context) { + Profile* profile = Profile::FromBrowserContext(browser_context); + return profile->GetPrefs()->GetBoolean( + prefs::kServiceWorkerAutoPreloadEnabled); +} + bool ChromeContentBrowserClient::IsServiceWorkerSyntheticResponseAllowed( content::BrowserContext* browser_context, const GURL& url) { @@ -4614,12 +4613,6 @@ void ChromeContentBrowserClient::OverrideWebPreferences( web_prefs->strict_powerful_feature_restrictions = true; } - // See crbug.com/1238157: the Native Client flag (chrome://flags/#enable-nacl) - // can be manually re-enabled. In that case, we also need to return the full - // plugins list, for compat. - web_prefs->allow_non_empty_navigator_plugins |= - base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableNaCl); - web_prefs->data_saver_enabled = IsDataSaverEnabled(profile); if (web_contents) { @@ -4671,6 +4664,17 @@ void ChromeContentBrowserClient::OverrideWebPreferences( web_prefs->web_app_scope = registrar.GetAppScope(app_id); } + // IWA can close windows with window management permission. + if (browser->app_controller()->IsIsolatedWebApp() && + profile->GetPermissionController() + ->GetPermissionStatusForCurrentDocument( + content::PermissionDescriptorUtil:: + CreatePermissionDescriptorForPermissionType( + blink::PermissionType::WINDOW_MANAGEMENT), + web_contents->GetPrimaryMainFrame()) == + blink::mojom::PermissionStatus::GRANTED) { + web_prefs->allow_scripts_to_close_windows = true; + } #if BUILDFLAG(IS_CHROMEOS) auto* system_app = browser->app_controller()->system_app(); if (system_app) { @@ -4962,65 +4966,6 @@ ChromeContentBrowserClient::GetLocalTracesDirectory() { return user_data_dir; } -void ChromeContentBrowserClient::DidCreatePpapiPlugin( - content::BrowserPpapiHost* browser_host) { -#if BUILDFLAG(ENABLE_PLUGINS) - ChromeContentBrowserClientPluginsPart::DidCreatePpapiPlugin(browser_host); -#endif -} - -content::BrowserPpapiHost* -ChromeContentBrowserClient::GetExternalBrowserPpapiHost(int plugin_process_id) { -#if BUILDFLAG(ENABLE_NACL) - content::BrowserChildProcessHostIterator iter(PROCESS_TYPE_NACL_LOADER); - while (!iter.Done()) { - nacl::NaClProcessHost* host = - static_cast(iter.GetDelegate()); - if (host->process() && host->process()->GetData().id == plugin_process_id) { - // Found the plugin. - return host->browser_ppapi_host(); - } - ++iter; - } -#endif - return nullptr; -} - -bool ChromeContentBrowserClient::AllowPepperSocketAPI( - content::BrowserContext* browser_context, - const GURL& url, - bool private_api, - const content::SocketPermissionRequest* params) { -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) - return ChromeContentBrowserClientPluginsPart::AllowPepperSocketAPI( - browser_context, url, private_api, params); -#else - return false; -#endif -} - -bool ChromeContentBrowserClient::IsPepperVpnProviderAPIAllowed( - content::BrowserContext* browser_context, - const GURL& url) { -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) - return ChromeContentBrowserClientPluginsPart::IsPepperVpnProviderAPIAllowed( - browser_context, url); -#else - return false; -#endif -} - -std::unique_ptr -ChromeContentBrowserClient::GetVpnServiceProxy( - content::BrowserContext* browser_context) { -#if BUILDFLAG(ENABLE_EXTENSIONS) - return ChromeContentBrowserClientExtensionsPart::GetVpnServiceProxy( - browser_context); -#else - return nullptr; -#endif -} - std::unique_ptr ChromeContentBrowserClient::CreateSelectFilePolicy(WebContents* web_contents) { return std::make_unique(web_contents); @@ -5322,6 +5267,34 @@ void ChromeContentBrowserClient::SessionEnding( bool ChromeContentBrowserClient::ShouldEnableAudioProcessHighPriority() { return IsAudioProcessHighPriorityEnabled(); } + +bool ChromeContentBrowserClient::ShouldRestrictCoreSharingOnRenderer() { + if (base::win::GetVersion() < base::win::Version::WIN11_24H2) { + return false; + } + + if (base::FeatureList::IsEnabled( + sandbox::policy::features::kWinSboxRestrictCoreSharingOnRenderer)) { + return true; + } + + PrefService* local_state = nullptr; + if (g_browser_process) { + local_state = g_browser_process->local_state(); + } else { + local_state = startup_data_.chrome_feature_list_creator()->local_state(); + } + + const PrefService::Preference* pref = + local_state->FindPreference(prefs::kRestrictCoreSharingOnRenderer); + // CPU core sharing is disabled if managed pref is set to false. + if (pref && pref->IsManaged() && pref->GetValue()->is_bool()) { + return pref->GetValue()->GetBool(); + } + + return false; +} + #endif // BUILDFLAG(IS_WIN) void ChromeContentBrowserClient:: @@ -5542,28 +5515,6 @@ bool ChromeContentBrowserClient::IsSystemWideTracingEnabled() { return ChromeTracingDelegate::IsSystemWideTracingEnabled(); } -bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle( - content::BrowserContext* browser_context, - const GURL& url) { -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) - return ChromeContentBrowserClientPluginsPart:: - IsPluginAllowedToCallRequestOSFileHandle(browser_context, url); -#else - return false; -#endif -} - -bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs( - content::BrowserContext* browser_context, - const GURL& url) { -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) - return ChromeContentBrowserClientPluginsPart:: - IsPluginAllowedToUseDevChannelAPIs(browser_context, url); -#else - return false; -#endif -} - void ChromeContentBrowserClient::InitOnUIThread() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -6702,15 +6653,6 @@ content::SerialDelegate* ChromeContentBrowserClient::GetSerialDelegate() { return serial_delegate_.get(); } -content::PrivateNetworkDeviceDelegate* -ChromeContentBrowserClient::GetPrivateNetworkDeviceDelegate() { - if (!private_network_device_delegate_) { - private_network_device_delegate_ = - std::make_unique(); - } - return private_network_device_delegate_.get(); -} - bool ChromeContentBrowserClient::IsSecurityLevelAcceptableForWebAuthn( content::RenderFrameHost* rfh, const url::Origin& caller_origin) { @@ -6986,7 +6928,7 @@ bool ChromeContentBrowserClient::HandleWebUI( if (IsDisabledInternalWebUI(*url)) { GURL::Replacements replacements; - std::string query("host=" + url->host()); + std::string query("host=" + url->spec()); replacements.SetQueryStr(query); *url = GURL(chrome::kChromeUIInternalDebugPagesDisabledURL) .ReplaceComponents(replacements); @@ -8443,18 +8385,21 @@ void ChromeContentBrowserClient::NotifyMultiCaptureStateChanged( MultiCaptureChanged state) { switch (state) { case MultiCaptureChanged::kStarted: { - content::WebContents* const web_contents = - WebContents::FromRenderFrameHost( - RenderFrameHost::FromID(capturer_rfh_id)); - if (!web_contents) { - return; - } + WebContents* web_contents = WebContents::FromRenderFrameHost( + RenderFrameHost::FromID(capturer_rfh_id)); NotifyMultiCaptureStarted( - label, web_contents, - web_app::WebAppTabHelper::GetAppId(web_contents)); + label, web_contents, web_app::WebAppTabHelper::GetAppId(web_contents), + web_contents->GetBrowserContext()); } break; case MultiCaptureChanged::kStopped: - NotifyMultiCaptureStopped(label); + NotifyMultiCaptureStopped( + label, + // We can't use web contents to get the browser context because by the + // time we reach here, the web contents may be destroyed already (e.g. + // if the user just closes the window). This approach is only + // guaranteed to work well on ChromeOS. + ash::ProfileHelper::Get()->GetProfileByUser( + user_manager::UserManager::Get()->GetPrimaryUser())); break; } } @@ -8526,12 +8471,13 @@ void ChromeContentBrowserClient::BindAIManager( #if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) void ChromeContentBrowserClient::BindTranslationManager( + content::RenderProcessHost* host, content::BrowserContext* browser_context, base::SupportsUserData* context_user_data, const url::Origin& origin, mojo::PendingReceiver receiver) { on_device_translation::TranslationManagerImpl::Bind( - browser_context, context_user_data, origin, std::move(receiver)); + host, browser_context, context_user_data, origin, std::move(receiver)); } #endif 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 b38a980c..ac7d01de 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 @@ -34,6 +34,7 @@ #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" @@ -71,6 +72,7 @@ #endif // BUILDFLAG(DFMIFY_DEV_UI) #else // BUILDFLAG(IS_ANDROID) +#include "chrome/browser/actor/actor_navigation_throttle.h" #include "chrome/browser/apps/link_capturing/link_capturing_navigation_throttle.h" #include "chrome/browser/apps/link_capturing/web_app_link_capturing_delegate.h" #include "chrome/browser/devtools/devtools_window.h" @@ -297,7 +299,7 @@ void CreateAndAddChromeThrottlesForNavigation( // we are attempting to load a google property. if (ash::merge_session_throttling_utils::ShouldAttachNavigationThrottle() && !ash::merge_session_throttling_utils::AreAllSessionMergedAlready() && - handle.GetURL().SchemeIsHTTPOrHTTPS()) { + registry.IsHTTPOrHTTPS()) { ash::MergeSessionNavigationThrottle::CreateAndAdd(registry); } } @@ -559,5 +561,10 @@ void CreateAndAddChromeThrottlesForNavigation( #if !BUILDFLAG(IS_ANDROID) web_app::IsolatedWebAppThrottle::MaybeCreateAndAdd(registry); + + actor::ActorNavigationThrottle::MaybeCreateAndAdd(registry); #endif // !BUILDFLAG(IS_ANDROID) + + dom_distiller::DistillerPageWebContents::MaybeCreateAndAddNavigationThrottle( + registry); } 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 13c2b053..8bcbbd9d 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 @@ -173,31 +173,31 @@ public abstract class ChromeFeatureList { "AndroidAppIntegrationWithFavicon"; 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"; public static final String ANDROID_COMPOSEPLATE = "AndroidComposeplate"; - public static final String ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE = - "AndroidDumpOnScrollWithoutResource"; + public static final String ANDROID_DATA_IMPORTER_SERVICE = "AndroidDataImporterService"; public static final String ANDROID_ELEGANT_TEXT_HEIGHT = "AndroidElegantTextHeight"; - public static final String ANDROID_KEYBOARD_A11Y = "AndroidKeyboardA11y"; - public static final String ANDROID_META_CLICK_HISTORY_NAVIGATION = - "AndroidMetaClickHistoryNavigation"; + public static final String ANDROID_FIRST_RUN_LAUNCH_BOUNDS = "AndroidFirstRunLaunchBounds"; + public static final String ANDROID_GRAMMAR_CHECK = "AndroidGrammarCheck"; public static final String ANDROID_MINIMAL_UI_LARGE_SCREEN = "AndroidMinimalUiLargeScreen"; public static final String ANDROID_NATIVE_PAGES_IN_NEW_TAB = "AndroidNativePagesInNewTab"; public static final String ANDROID_NO_VISIBLE_HINT_FOR_DIFFERENT_TLD = "AndroidNoVisibleHintForDifferentTLD"; public static final String ANDROID_OMNIBOX_FOCUSED_NEW_TAB_PAGE = "AndroidOmniboxFocusedNewTabPage"; + public static final String ANDROID_OPEN_INCOGNITO_AS_WINDOW = "AndroidOpenIncognitoAsWindow"; 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_PROGRESS_BAR_VISUAL_UPDATE = "AndroidProgressBarVisualUpdate"; + public static final String ANDROID_SETTINGS_CONTAINMENT = "AndroidSettingsContainment"; public static final String ANDROID_SHOW_RESTORE_TABS_PROMO_ON_FRE_BYPASSED_KILL_SWITCH = "AndroidShowRestoreTabsPromoOnFREBypassedKillSwitch"; + public static final String ANDROID_SPELLCHECK_NATIVE_UI = "AndroidSpellcheckNativeUi"; public static final String ANDROID_SURFACE_COLOR_UPDATE = "AndroidSurfaceColorUpdate"; public static final String ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE = "AndroidTabDeclutterArchiveAllButActiveTab"; - public static final String ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS = - "AndroidTabDeclutterArchiveDuplicateTabs"; public static final String ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS = "AndroidTabDeclutterArchiveTabGroups"; public static final String ANDROID_TAB_DECLUTTER_AUTO_DELETE = "AndroidTabDeclutterAutoDelete"; @@ -211,18 +211,30 @@ public abstract class ChromeFeatureList { "AndroidTabDeclutterRescueKillswitch"; public static final String ANDROID_TAB_GROUPS_COLOR_UPDATE_GM3 = "AndroidTabGroupsColorUpdateGM3"; + public static final String ANDROID_TAB_HIGHLIGHTING = "AndroidTabHighlighting"; public static final String ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH = "AndroidTabSkipSaveTabsTaskKillswitch"; public static final String ANDROID_THEME_MODULE = "AndroidThemeModule"; public static final String ANDROID_WEB_APP_LAUNCH_HANDLER = "AndroidWebAppLaunchHandler"; + public static final String ANDROID_USE_ADMINS_FOR_ENTERPRISE_INFO = + "AndroidUseAdminsForEnterpriseInfo"; public static final String ANDROID_WINDOW_POPUP_LARGE_SCREEN = "AndroidWindowPopupLargeScreen"; + public static final String ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN = + "AndroidWindowPopupResizeAfterSpawn"; + 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 = + "AnnotatedPageContentsVirtualStructure"; public static final String APP_SPECIFIC_HISTORY = "AppSpecificHistory"; + public static final String APP_SPECIFIC_HISTORY_VIEW_INTENT = "AppSpecificHistoryViewIntent"; public static final String ASYNC_NOTIFICATION_MANAGER = "AsyncNotificationManager"; public static final String ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD = "AsyncNotificationManagerForDownload"; + public static final String AUTO_PICTURE_IN_PICTURE_ANDROID = "AutoPictureInPictureAndroid"; public static final String AUTOFILL_ALLOW_NON_HTTP_ACTIVATION = "AutofillAllowNonHttpActivation"; + public static final String AUTOFILL_ANDROID_DESKTOP_SUPPRESS_ACCESSORY_ON_EMPTY = + "AutofillAndroidDesktopSuppressAccessoryOnEmpty"; public static final String AUTOFILL_DEEP_LINK_AUTOFILL_OPTIONS = "AutofillDeepLinkAutofillOptions"; public static final String AUTOFILL_ENABLE_CARD_BENEFITS_FOR_AMERICAN_EXPRESS = @@ -230,9 +242,13 @@ public abstract class ChromeFeatureList { public static final String AUTOFILL_ENABLE_CARD_BENEFITS_FOR_BMO = "AutofillEnableCardBenefitsForBmo"; 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_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_PAYMENT_SETTINGS_CARD_PROMO_AND_SCAN_CARD = "AutofillEnablePaymentSettingsCardPromoAndScanCard"; public static final String AUTOFILL_ENABLE_PAYMENT_SETTINGS_SERVER_CARD_SAVE = @@ -243,6 +259,8 @@ public abstract class ChromeFeatureList { "AutofillEnableRankingFormulaCreditCards"; public static final String AUTOFILL_ENABLE_SECURITY_TOUCH_EVENT_FILTERING_ANDROID = "AutofillEnableSecurityTouchEventFilteringAndroid"; + public static final String AUTOFILL_ENABLE_SEPARATE_PIX_PREFERENCE_ITEM = + "AutofillEnableSeparatePixPreferenceItem"; public static final String AUTOFILL_ENABLE_SERVER_IBAN = "AutofillEnableServerIban"; public static final String AUTOFILL_ENABLE_SUPPORT_FOR_HOME_AND_WORK = "AutofillEnableSupportForHomeAndWork"; @@ -257,6 +275,8 @@ public abstract class ChromeFeatureList { "AutofillThirdPartyModeContentProvider"; public static final String AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID = "AutofillVirtualViewStructureAndroid"; + public static final String AUTOMOTIVE_BACK_BUTTON_BAR_STREAMLINE = + "AutomotiveBackButtonBarStreamline"; public static final String AVOID_RELAYOUT_DURING_FOCUS_ANIMATION = "AvoidRelayoutDuringFocusAnimation"; public static final String BACKGROUND_THREAD_POOL_FIELD_TRIAL = @@ -266,12 +286,9 @@ public abstract class ChromeFeatureList { public static final String BATCH_TAB_RESTORE = "BatchTabRestore"; public static final String BCIV_BOTTOM_CONTROLS = "AndroidBcivBottomControls"; public static final String BIOMETRIC_AUTH_IDENTITY_CHECK = "BiometricAuthIdentityCheck"; - public static final String BLOCK_INSTALLING_EXTENSIONS_ON_DESKTOP_ANDROID = - "BlockInstallingExtensionsOnDesktopAndroid"; public static final String BLOCK_INTENTS_WHILE_LOCKED = "BlockIntentsWhileLocked"; public static final String BOARDING_PASS_DETECTOR = "BoardingPassDetector"; public static final String BOOKMARK_PANE_ANDROID = "BookmarkPaneAndroid"; - public static final String BOTTOM_BROWSER_CONTROLS_REFACTOR = "BottomBrowserControlsRefactor"; public static final String BROWSER_CONTROLS_DEBUGGING = "BrowserControlsDebugging"; public static final String BROWSER_CONTROLS_EARLY_RESIZE = "BrowserControlsEarlyResize"; public static final String BROWSER_CONTROLS_IN_VIZ = "AndroidBrowserControlsInViz"; @@ -291,10 +308,8 @@ public abstract class ChromeFeatureList { public static final String CCT_BLOCK_TOUCHES_DURING_ENTER_ANIMATION = "CCTBlockTouchesDuringEnterAnimation"; public static final String CCT_CLIENT_DATA_HEADER = "CCTClientDataHeader"; + public static final String CCT_CONTEXTUAL_MENU_ITEMS = "CCTContextualMenuItems"; public static final String CCT_EARLY_NAV = "CCTEarlyNav"; - public static final String CCT_EPHEMERAL_MEDIA_VIEWER_EXPERIMENT = - "CCTEphemeralMediaViewerExperiment"; - public static final String CCT_EPHEMERAL_MODE = "CCTEphemeralMode"; public static final String CCT_EXTEND_TRUSTED_CDN_PUBLISHER = "CCTExtendTrustedCdnPublisher"; public static final String CCT_FIX_WARMUP = "CCTFixWarmup"; public static final String CCT_FRE_IN_SAME_TASK = "CCTFreInSameTask"; @@ -303,8 +318,6 @@ public abstract class ChromeFeatureList { "CCTGoogleBottomBarVariantLayouts"; public static final String CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY = "CCTIncognitoAvailableToThirdParty"; - public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides"; - public static final String CCT_MINIMIZED = "CCTMinimized"; public static final String CCT_MINIMIZED_ENABLED_BY_DEFAULT = "CCTMinimizedEnabledByDefault"; public static final String CCT_NAVIGATIONAL_PREFETCH = "CCTNavigationalPrefetch"; public static final String CCT_NESTED_SECURITY_ICON = "CCTNestedSecurityIcon"; @@ -325,7 +338,9 @@ public abstract class ChromeFeatureList { public static final String CCT_SHOW_TAB_FIX = "CCTShowTabFix"; public static final String CCT_TAB_MODAL_DIALOG = "CCTTabModalDialog"; public static final String CCT_TOOLBAR_REFACTOR = "CCTToolbarRefactor"; + public static final String CCT_RESET_TIMEOUT_ENABLED = "CCTResetTimeoutEnabled"; public static final String CHANGE_UNFOCUSED_PRIORITY = "ChangeUnfocusedPriority"; + 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"; public static final String CLANK_STARTUP_LATENCY_INJECTION = "ClankStartupLatencyInjection"; @@ -348,8 +363,6 @@ public abstract class ChromeFeatureList { public static final String CONTEXTUAL_SEARCH_SUPPRESS_SHORT_VIEW = "ContextualSearchSuppressShortView"; public static final String CONTEXT_MENU_EMPTY_SPACE = "ContextMenuEmptySpace"; - public static final String CONTEXT_MENU_SYS_UI_MATCHES_ACTIVITY = - "ContextMenuSysUiMatchesActivity"; public static final String CONTEXT_MENU_TRANSLATE_WITH_GOOGLE_LENS = "ContextMenuTranslateWithGoogleLens"; public static final String CONTROLS_VISIBILITY_FROM_NAVIGATIONS = @@ -374,17 +387,16 @@ public abstract class ChromeFeatureList { public static final String DISPLAY_EDGE_TO_EDGE_FULLSCREEN = "DisplayEdgeToEdgeFullscreen"; public static final String DISPLAY_WILDCARD_CONTENT_SETTINGS = "DisplayWildcardInContentSettings"; + public static final String DRAW_CHROME_PAGES_EDGE_TO_EDGE = "DrawChromePagesEdgeToEdge"; public static final String DRAW_CUTOUT_EDGE_TO_EDGE = "DrawCutoutEdgeToEdge"; - public static final String DRAW_KEY_NATIVE_EDGE_TO_EDGE = "DrawKeyNativeEdgeToEdge"; - public static final String DYNAMIC_SAFE_AREA_INSETS = "DynamicSafeAreaInsets"; public static final String EDGE_TO_EDGE_BOTTOM_CHIN = "EdgeToEdgeBottomChin"; public static final String EDGE_TO_EDGE_DEBUGGING = "EdgeToEdgeDebugging"; public static final String EDGE_TO_EDGE_EVERYWHERE = "EdgeToEdgeEverywhere"; public static final String EDGE_TO_EDGE_MONITOR_CONFIGURATIONS = "EdgeToEdgeMonitorConfigurations"; - public static final String EDGE_TO_EDGE_SAFE_AREA_CONSTRAINT = "EdgeToEdgeSafeAreaConstraint"; public static final String EDGE_TO_EDGE_TABLET = "EdgeToEdgeTablet"; - public static final String EDGE_TO_EDGE_WEB_OPT_IN = "EdgeToEdgeWebOptIn"; + public static final String EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS = + "EdgeToEdgeUseBackupNavbarInsets"; public static final String EDUCATIONAL_TIP_DEFAULT_BROWSER_PROMO_CARD = "EducationalTipDefaultBrowserPromoCard"; public static final String EDUCATIONAL_TIP_MODULE = "EducationalTipModule"; @@ -394,9 +406,14 @@ public abstract class ChromeFeatureList { "EnableClipboardDataControlsAndroid"; public static final String ENABLE_DISCOUNT_INFO_API = "EnableDiscountInfoApi"; public static final String ENABLE_EXCLUSIVE_ACCESS_MANAGER = "EnableExclusiveAccessManager"; + public static final String ENABLE_FULLSCREEN_TO_ANY_SCREEN_ANDROID = + "EnableFullscreenToAnyScreenAndroid"; + public static final String FACILITATED_PAYMENTS_ENABLE_A2A_PAYMENT = + "FacilitatedPaymentsEnableA2APayment"; public static final String ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD = "EnableSavePackageForOffTheRecord"; public static final String ENABLE_X_AXIS_ACTIVITY_TRANSITION = "EnableXAxisActivityTransition"; + public static final String FEED_AUDIO_OVERVIEWS = "FeedAudioOverviews"; public static final String FEED_CONTAINMENT = "FeedContainment"; public static final String FEED_FOLLOW_UI_UPDATE = "FeedFollowUiUpdate"; public static final String FEED_HEADER_REMOVAL = "FeedHeaderRemoval"; @@ -410,7 +427,6 @@ public abstract class ChromeFeatureList { 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_STARTUP_SIGNIN_PROMO = "ForceStartupSigninPromo"; public static final String FORCE_TRANSLUCENT_NOTIFICATION_TRAMPOLINE = "ForceTranslucentNotificationTrampoline"; public static final String FORCE_WEB_CONTENTS_DARK_MODE = "WebContentsForceDark"; @@ -425,13 +441,13 @@ public abstract class ChromeFeatureList { public static final String HASH_PREFIX_REAL_TIME_LOOKUPS = "SafeBrowsingHashPrefixRealTimeLookups"; public static final String HEADLESS_TAB_MODEL = "HeadlessTabModel"; - public static final String HIDE_TABLET_TOOLBAR_DOWNLOAD_BUTTON = - "HideTabletToolbarDownloadButton"; public static final String HISTORY_JOURNEYS = "Journeys"; public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; public static final String HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_ANDROID = "HomepageIsNewTabPagePolicyAndroid"; 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_SCREENSHOT = "IncognitoScreenshot"; public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; @@ -443,14 +459,16 @@ public abstract class ChromeFeatureList { "LoadingPredictorLimitPreconnectSocketCount"; public static final String LOCAL_NETWORK_ACCESS = "LocalNetworkAccessChecks"; public static final String LOCK_BACK_PRESS_HANDLER_AT_START = "LockBackPressHandlerAtStart"; - public static final String LOGIN_DB_DEPRECATION_ANDROID = "LoginDbDeprecationAndroid"; public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; public static final String MALICIOUS_APK_DOWNLOAD_CHECK = "MaliciousApkDownloadCheck"; public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; + public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; + public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP = + "MitigateLegacySearchEnginePromoOverlap"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = @@ -459,8 +477,6 @@ public abstract class ChromeFeatureList { public static final String NATIVE_PAGE_TRANSITION_HARDWARE_CAPTURE = "NativePageTransitionHardwareCapture"; public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation"; - public static final String NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND = - "NavBarColorMatchesTabBackground"; public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 = "NewTabPageAndroidTriggerForPrerender2"; public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; @@ -527,6 +543,8 @@ public abstract class ChromeFeatureList { public static final String READALOUD_AUDIO_OVERVIEWS = "ReadAloudAudioOverviews"; public static final String READALOUD_AUDIO_OVERVIEWS_FEEDBACK = "ReadAloudAudioOverviewsFeedback"; + public static final String READALOUD_AUDIO_OVERVIEWS_SKIP_DISCLAIMER_WHEN_POSSIBLE = + "ReadAloudAudioOverviewsSkipDisclaimerWhenPossible"; public static final String READALOUD_BACKGROUND_PLAYBACK = "ReadAloudBackgroundPlayback"; public static final String READALOUD_IN_MULTI_WINDOW = "ReadAloudInMultiWindow"; public static final String READALOUD_IN_OVERFLOW_MENU_IN_CCT = "ReadAloudInOverflowMenuInCCT"; @@ -545,6 +563,7 @@ public abstract class ChromeFeatureList { "ReportNotificationContentDetectionData"; public static final String RIGHT_EDGE_GOES_FORWARD_GESTURE_NAV = "RightEdgeGoesForwardGestureNav"; + public static final String ROBUST_WINDOW_MANAGEMENT = "RobustWindowManagement"; 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"; @@ -581,12 +600,13 @@ public abstract class ChromeFeatureList { "SensitiveContentWhileSwitchingTabs"; public static final String SETTINGS_SINGLE_ACTIVITY = "SettingsSingleActivity"; public static final String SHARE_CUSTOM_ACTIONS_IN_CCT = "ShareCustomActionsInCCT"; + public static final String SHOW_CLOSE_ALL_INCOGNITO_TABS_BUTTON = + "ShowCloseAllIncognitoTabsButton"; public static final String SHOW_HOME_BUTTON_POLICY_ANDROID = "ShowHomeButtonPolicyAndroid"; public static final String SHOW_NEW_TAB_ANIMATIONS = "ShowNewTabAnimations"; public static final String SHOW_TAB_LIST_ANIMATIONS = "ShowTabListAnimations"; public static final String SHOW_WARNINGS_FOR_SUSPICIOUS_NOTIFICATIONS = "ShowWarningsForSuspiciousNotifications"; - public static final String SKIP_ISOLATED_SPLIT_PRELOAD = "SkipIsolatedSplitPreload"; public static final String SMALLER_TAB_STRIP_TITLE_LIMIT = "SmallerTabStripTitleLimit"; public static final String SMART_SUGGESTION_FOR_LARGE_DOWNLOADS = "SmartSuggestionForLargeDownloads"; @@ -594,6 +614,8 @@ public abstract class ChromeFeatureList { "SplitCacheByNetworkIsolationKey"; public static final String START_SURFACE_RETURN_TIME = "StartSurfaceReturnTime"; public static final String STOP_APP_INDEXING_REPORT = "StopAppIndexingReport"; + public static final String SUBMENUS_TAB_CONTEXT_MENU_LFF_TAB_STRIP = + "SubmenusTabContextMenuLffTabStrip"; public static final String SUGGESTION_ANSWERS_COLOR_REVERSE = "SuggestionAnswersColorReverse"; public static final String SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END = "SuppressToolbarCapturesAtGestureEnd"; @@ -610,31 +632,36 @@ public abstract class ChromeFeatureList { public static final String TAB_GROUP_ENTRY_POINTS_ANDROID = "TabGroupEntryPointsAndroid"; public static final String TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID = "TabGroupParityBottomSheetAndroid"; - public static final String TAB_STATE_FLAT_BUFFER = "TabStateFlatBuffer"; - public static final String TAB_STRIP_CONTEXT_MENU = "TabStripContextMenuAndroid"; + public static final String TAB_MODEL_INIT_FIXES = "TabModelInitFixes"; + public static final String TAB_STORAGE_SQLITE_PROTOTYPE = "TabStorageSqlitePrototype"; + public static final String TAB_STRIP_AUTO_SELECT_ON_CLOSE_CHANGE = + "TabStripAutoSelectOnCloseChange"; public static final String TAB_STRIP_DENSITY_CHANGE_ANDROID = "TabStripDensityChangeAndroid"; public static final String TAB_STRIP_GROUP_DRAG_DROP_ANDROID = "TabStripGroupDragDropAndroid"; - public static final String TAB_STRIP_GROUP_REORDER = "TabStripGroupReorderAndroid"; public static final String TAB_STRIP_INCOGNITO_MIGRATION = "TabStripIncognitoMigration"; public static final String TAB_STRIP_LAYOUT_OPTIMIZATION = "TabStripLayoutOptimization"; + public static final String TAB_STRIP_MOUSE_CLOSE_RESIZE_DELAY = "TabStripMouseCloseResizeDelay"; public static final String TAB_STRIP_TRANSITION_IN_DESKTOP_WINDOW = "TabStripTransitionInDesktopWindow"; - public static final String TAB_SWITCHER_COLOR_BLEND_ANIMATE = "TabSwitcherColorBlendAnimate"; public static final String TAB_SWITCHER_DRAG_DROP_ANDROID = "TabSwitcherDragDropAndroid"; + public static final String TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT = + "TabSwitcherForeignFaviconSupport"; public static final String TAB_SWITCHER_GROUP_SUGGESTIONS_ANDROID = "TabSwitcherGroupSuggestionsAndroid"; public static final String TAB_SWITCHER_GROUP_SUGGESTIONS_TEST_MODE_ANDROID = "TabSwitcherGroupSuggestionsTestModeAndroid"; - public static final String TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT = - "TabSwitcherForeignFaviconSupport"; public static final String TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH = "TabWindowManagerReportIndicesMismatch"; public static final String TASK_MANAGER_CLANK = "TaskManagerClank"; public static final String TEST_DEFAULT_DISABLED = "TestDefaultDisabled"; public static final String TEST_DEFAULT_ENABLED = "TestDefaultEnabled"; + public static final String THIRD_PARTY_DISABLE_CHROME_AUTOFILL_SETTINGS_SCREEN = + "ThirdPartyDisableChromeAutofillSettingsScreen"; public static final String TINKER_TANK_BOTTOM_SHEET = "TinkerTankBottomSheet"; public static final String TOOLBAR_PHONE_ANIMATION_REFACTOR = "ToolbarPhoneAnimationRefactor"; + public static final String TOOLBAR_TABLET_RESIZE_REFACTOR = "ToolbarTabletResizeRefactor"; public static final String TOOLBAR_SCROLL_ABLATION = "AndroidToolbarScrollAblation"; + public static final String TOOLBAR_SNAPSHOT_REFACTOR = "ToolbarSnapshotRefactor"; public static final String TOP_CONTROLS_REFACTOR = "TopControlsRefactor"; public static final String TOUCH_TO_SEARCH_CALLOUT = "TouchToSearchCallout"; public static final String TRACE_BINDER_IPC = "TraceBinderIpc"; @@ -681,19 +708,25 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidAppIntegrationModule = newCachedFlag(ANDROID_APP_INTEGRATION_MODULE, true); public static final CachedFlag sAndroidAppIntegrationMultiDataSource = - newCachedFlag(ANDROID_APP_INTEGRATION_MULTI_DATA_SOURCE, false, true); + 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, false, true); + newCachedFlag(ANDROID_BOTTOM_TOOLBAR, true, true); + public static final CachedFlag sAndroidBottomToolbarV2 = + newCachedFlag(ANDROID_BOTTOM_TOOLBAR_V2, false, false); public static final CachedFlag sAndroidComposeplate = newCachedFlag(ANDROID_COMPOSEPLATE, false, true); + public static final CachedFlag sAndroidDataImporterService = + newCachedFlag(ANDROID_DATA_IMPORTER_SERVICE, true); public static final CachedFlag sAndroidElegantTextHeight = newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, true); public static final CachedFlag sAndroidMinimalUiLargeScreen = - newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false, true); + newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, true); + public static final CachedFlag sAndroidOpenIncognitoAsWindow = + newCachedFlag(ANDROID_OPEN_INCOGNITO_AS_WINDOW, false); public static final CachedFlag sAndroidProgressBarVisualUpdate = newCachedFlag( ANDROID_PROGRESS_BAR_VISUAL_UPDATE, @@ -713,20 +746,29 @@ public abstract class ChromeFeatureList { newCachedFlag(ANDROID_TAB_SKIP_SAVE_TABS_TASK_KILLSWITCH, true, true); public static final CachedFlag sAndroidThemeModule = newCachedFlag(ANDROID_THEME_MODULE, false, /* defaultValueInTests= */ true); + public static final CachedFlag sAndroidUseAdminsForEnterpriseInfo = + newCachedFlag( + ANDROID_USE_ADMINS_FOR_ENTERPRISE_INFO, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sAndroidWebAppLaunchHandler = newCachedFlag(ANDROID_WEB_APP_LAUNCH_HANDLER, false, true); public static final CachedFlag sAndroidWindowPopupLargeScreen = - newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); + newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false, true); + public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = + newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAppSpecificHistoryViewIntent = + newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = - newCachedFlag(ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD, false, true); + newCachedFlag(ASYNC_NOTIFICATION_MANAGER_FOR_DOWNLOAD, true); + public static final CachedFlag sAutomotiveBackButtonBarStreamline = + newCachedFlag(AUTOMOTIVE_BACK_BUTTON_BAR_STREAMLINE, false); public static final CachedFlag sBackgroundThreadPoolFieldTrial = newCachedFlag(BACKGROUND_THREAD_POOL_FIELD_TRIAL, false); - public static final CachedFlag sBatchTabRestore = - newCachedFlag( - BATCH_TAB_RESTORE, /* defaultValue= */ false, /* defaultValueInTests= */ true); + public static final CachedFlag sBatchTabRestore = newCachedFlag(BATCH_TAB_RESTORE, true); public static final CachedFlag sBlockIntentsWhileLocked = newCachedFlag(BLOCK_INTENTS_WHILE_LOCKED, false); public static final CachedFlag sBookmarkPaneAndroid = @@ -735,7 +777,11 @@ public abstract class ChromeFeatureList { newCachedFlag(BROWSER_CONTROLS_DEBUGGING, false); public static final CachedFlag sCacheIsMultiInstanceApi31Enabled = newCachedFlag(CACHE_IS_MULTI_INSTANCE_API_31_ENABLED, true); - public static final CachedFlag sCctAdaptiveButton = newCachedFlag(CCT_ADAPTIVE_BUTTON, false); + public static final CachedFlag sCctAdaptiveButton = + newCachedFlag( + CCT_ADAPTIVE_BUTTON, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sCctAuthTab = newCachedFlag(CCT_AUTH_TAB, true); public static final CachedFlag sCctAuthTabDisableAllExternalIntents = newCachedFlag(CCT_AUTH_TAB_DISABLE_ALL_EXTERNAL_INTENTS, false); @@ -744,12 +790,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sCctAutoTranslate = newCachedFlag(CCT_AUTO_TRANSLATE, true); public static final CachedFlag sCctBlockTouchesDuringEnterAnimation = newCachedFlag(CCT_BLOCK_TOUCHES_DURING_ENTER_ANIMATION, true); - public static final CachedFlag sCctEphemeralMediaViewerExperiment = - newCachedFlag( - CCT_EPHEMERAL_MEDIA_VIEWER_EXPERIMENT, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); - public static final CachedFlag sCctEphemeralMode = newCachedFlag(CCT_EPHEMERAL_MODE, true); + public static final CachedFlag sCctContextualMenuItems = + newCachedFlag(CCT_CONTEXTUAL_MENU_ITEMS, false); public static final CachedFlag sCctFixWarmup = newCachedFlag( CCT_FIX_WARMUP, /* defaultValue= */ false, /* defaultValueInTests= */ true); @@ -763,9 +805,6 @@ public abstract class ChromeFeatureList { newCachedFlag(CCT_GOOGLE_BOTTOM_BAR_VARIANT_LAYOUTS, false); public static final CachedFlag sCctIncognitoAvailableToThirdParty = newCachedFlag(CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY, false); - public static final CachedFlag sCctIntentFeatureOverrides = - newCachedFlag(CCT_INTENT_FEATURE_OVERRIDES, true); - public static final CachedFlag sCctMinimized = newCachedFlag(CCT_MINIMIZED, true); public static final CachedFlag sCctNavigationalPrefetch = newCachedFlag( CCT_NAVIGATIONAL_PREFETCH, @@ -793,6 +832,8 @@ public abstract class ChromeFeatureList { newCachedFlag(CCT_REVAMPED_BRANDING, true); public static final CachedFlag sCctTabModalDialog = newCachedFlag(CCT_TAB_MODAL_DIALOG, true); public static final CachedFlag sCctToolbarRefactor = newCachedFlag(CCT_TOOLBAR_REFACTOR, false); + public static final CachedFlag sCctResetTimeoutEnabled = + newCachedFlag(CCT_RESET_TIMEOUT_ENABLED, false); public static final CachedFlag sClampAutomotiveScaling = newCachedFlag(CLAMP_AUTOMOTIVE_SCALING, true); public static final CachedFlag sClankStartupLatencyInjection = @@ -821,15 +862,12 @@ public abstract class ChromeFeatureList { /* defaultValueInTests= */ true); public static final CachedFlag sDisplayEdgeToEdgeFullscreen = newCachedFlag(DISPLAY_EDGE_TO_EDGE_FULLSCREEN, false, true); - public static final CachedFlag sDrawKeyNativeEdgeToEdge = - newCachedFlag(DRAW_KEY_NATIVE_EDGE_TO_EDGE, true); + public static final CachedFlag sDrawChromePagesEdgeToEdge = + newCachedFlag(DRAW_CHROME_PAGES_EDGE_TO_EDGE, /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeBottomChin = newCachedFlag(EDGE_TO_EDGE_BOTTOM_CHIN, /* defaultValue= */ true); public static final CachedFlag sEdgeToEdgeDebugging = - newCachedFlag( - EDGE_TO_EDGE_DEBUGGING, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); + newCachedFlag(EDGE_TO_EDGE_DEBUGGING, /* defaultValue= */ false); public static final CachedFlag sEdgeToEdgeEverywhere = newCachedFlag( EDGE_TO_EDGE_EVERYWHERE, @@ -837,9 +875,13 @@ public abstract class ChromeFeatureList { /* defaultValueInTests= */ true); public static final CachedFlag sEdgeToEdgeMonitorConfigurations = newCachedFlag(EDGE_TO_EDGE_MONITOR_CONFIGURATIONS, /* defaultValue= */ true); - public static final CachedFlag sEdgeToEdgeTablet = newCachedFlag(EDGE_TO_EDGE_TABLET, false); - public static final CachedFlag sEdgeToEdgeWebOptIn = - newCachedFlag(EDGE_TO_EDGE_WEB_OPT_IN, true); + public static final CachedFlag sEdgeToEdgeTablet = + newCachedFlag( + EDGE_TO_EDGE_TABLET, + /* defaultValue= */ false, + /* defaultValueInTests= */ 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 = @@ -848,6 +890,8 @@ public abstract class ChromeFeatureList { newCachedFlag(ENABLE_DISCOUNT_INFO_API, false, true); public static final CachedFlag sEnableExclusiveAccessManager = newCachedFlag(ENABLE_EXCLUSIVE_ACCESS_MANAGER, false); + public static final CachedFlag sEnableFullscreenToAnyScreenAndroid = + newCachedFlag(ENABLE_FULLSCREEN_TO_ANY_SCREEN_ANDROID, false); public static final CachedFlag sEnableXAxisActivityTransition = newCachedFlag(ENABLE_X_AXIS_ACTIVITY_TRANSITION, false); public static final CachedFlag sFloatingSnackbar = newCachedFlag(FLOATING_SNACKBAR, true); @@ -864,9 +908,11 @@ public abstract class ChromeFeatureList { /* defaultValueInTests= */ true); public static final CachedFlag sGridTabSwitcherUpdate = newCachedFlag(GRID_TAB_SWITCHER_UPDATE, false, /* defaultValueInTests= */ true); - public static final CachedFlag sHideTabletToolbarDownloadButton = - newCachedFlag(HIDE_TABLET_TOOLBAR_DOWNLOAD_BUTTON, true); - public static final CachedFlag sHistoryPaneAndroid = newCachedFlag(HISTORY_PANE_ANDROID, false); + public static final CachedFlag sHistoryPaneAndroid = + newCachedFlag( + HISTORY_PANE_ANDROID, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sHomepageIsNewTabPagePolicyAndroid = newCachedFlag(HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_ANDROID, false); public static final CachedFlag sKeyboardEscBackNavigation = @@ -884,7 +930,9 @@ public abstract class ChromeFeatureList { MALICIOUS_APK_DOWNLOAD_CHECK, /* defaultValue= */ false, /* defaultValueInTests= */ true); - public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false, true); + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, true, true); + public static final CachedFlag sMitigateLegacySearchEnginePromoOverlap = + newCachedFlag(MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP, false, true); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag( MOST_VISITED_TILES_CUSTOMIZATION, @@ -900,18 +948,13 @@ public abstract class ChromeFeatureList { /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sNavBarColorAnimation = - newCachedFlag( - NAV_BAR_COLOR_ANIMATION, - /* defaultValue= */ false, - /* defaultValueInTests= */ true); - public static final CachedFlag sNavBarColorMatchesTabBackground = - newCachedFlag(NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND, true); + newCachedFlag(NAV_BAR_COLOR_ANIMATION, /* defaultValue= */ true); public static final CachedFlag sNewTabPageAndroidTriggerForPrerender2 = newCachedFlag(NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2, true); public static final CachedFlag sNewTabPageCustomization = newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION, false, true); public static final CachedFlag sNewTabPageCustomizationForMvt = - newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT, false); + newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT, false, true); public static final CachedFlag sNewTabPageCustomizationToolbarButton = newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON, false); public static final CachedFlag sNewTabPageCustomizationV2 = @@ -949,27 +992,25 @@ public abstract class ChromeFeatureList { public static final CachedFlag sSearchInCCTAlternateTapHandlingIfEnabledByEmbedder = newCachedFlag(SEARCH_IN_CCT_ALTERNATE_TAP_HANDLING_IF_ENABLED_BY_EMBEDDER, true); public static final CachedFlag sSettingsSingleActivity = - newCachedFlag(SETTINGS_SINGLE_ACTIVITY, false); - public static final CachedFlag sShowHomeButtonPolicyAndroid = - newCachedFlag(SHOW_HOME_BUTTON_POLICY_ANDROID, false); - public static final CachedFlag sSkipIsolatedSplitPreload = newCachedFlag( - SKIP_ISOLATED_SPLIT_PRELOAD, + SETTINGS_SINGLE_ACTIVITY, /* defaultValue= */ false, /* defaultValueInTests= */ true); + public static final CachedFlag sShowHomeButtonPolicyAndroid = + newCachedFlag(SHOW_HOME_BUTTON_POLICY_ANDROID, true); public static final CachedFlag sSmallerTabStripTitleLimit = newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, true); public static final CachedFlag sStartSurfaceReturnTime = newCachedFlag(START_SURFACE_RETURN_TIME, true); public static final CachedFlag sTabClosureMethodRefactor = newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false); - public static final CachedFlag sTabStateFlatBuffer = + public static final CachedFlag sTabModelInitFixes = newCachedFlag( - TAB_STATE_FLAT_BUFFER, - /* defaultValue= */ true, + TAB_MODEL_INIT_FIXES, + /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sTabStripDensityChangeAndroid = - newCachedFlag(TAB_STRIP_DENSITY_CHANGE_ANDROID, false); + newCachedFlag(TAB_STRIP_DENSITY_CHANGE_ANDROID, true); public static final CachedFlag sTabStripIncognitoMigration = newCachedFlag( TAB_STRIP_INCOGNITO_MIGRATION, @@ -978,7 +1019,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sTabStripLayoutOptimization = newCachedFlag( TAB_STRIP_LAYOUT_OPTIMIZATION, - /* defaultValue= */ false, + /* defaultValue= */ true, /* defaultValueInTests= */ true); public static final CachedFlag sTabWindowManagerReportIndicesMismatch = newCachedFlag(TAB_WINDOW_MANAGER_REPORT_INDICES_MISMATCH, true); @@ -990,6 +1031,11 @@ public abstract class ChromeFeatureList { public static final CachedFlag sTestDefaultDisabled = newCachedFlag(TEST_DEFAULT_DISABLED, false); public static final CachedFlag sTestDefaultEnabled = newCachedFlag(TEST_DEFAULT_ENABLED, true); + public static final CachedFlag sToolbarSnapshotRefactor = + newCachedFlag( + TOOLBAR_SNAPSHOT_REFACTOR, + /* defaultValue= */ false, + /* defaultValueInTests= */ true); public static final CachedFlag sTopControlsRefactor = newCachedFlag( TOP_CONTROLS_REFACTOR, @@ -1000,7 +1046,9 @@ public abstract class ChromeFeatureList { TOUCH_TO_SEARCH_CALLOUT, /* defaultValue= */ false, /* defaultValueInTests= */ true); - public static final CachedFlag sTraceBinderIpc = newCachedFlag(TRACE_BINDER_IPC, false); + public static final CachedFlag sTraceBinderIpc = + newCachedFlag( + TRACE_BINDER_IPC, /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sUseActivityManagerForTabActivation = newCachedFlag(USE_ACTIVITY_MANAGER_FOR_TAB_ACTIVATION, true); public static final CachedFlag sUseChimeAndroidSdk = @@ -1025,19 +1073,26 @@ public abstract class ChromeFeatureList { sAndroidAppIntegrationV2, sAndroidAppIntegrationWithFavicon, sAndroidBottomToolbar, + sAndroidBottomToolbarV2, sAndroidComposeplate, + sAndroidDataImporterService, sAndroidElegantTextHeight, sAndroidMinimalUiLargeScreen, + sAndroidOpenIncognitoAsWindow, sAndroidProgressBarVisualUpdate, sAndroidSurfaceColorUpdate, sAndroidTabDeclutterDedupeTabIdsKillSwitch, sAndroidTabGroupsColorUpdateGm3, sAndroidTabSkipSaveTabsKillswitch, sAndroidThemeModule, + sAndroidUseAdminsForEnterpriseInfo, sAndroidWebAppLaunchHandler, sAndroidWindowPopupLargeScreen, + sAndroidWindowPopupResizeAfterSpawn, sAppSpecificHistory, + sAppSpecificHistoryViewIntent, sAsyncNotificationManager, + sAutomotiveBackButtonBarStreamline, sBackgroundThreadPoolFieldTrial, sBatchTabRestore, sBlockIntentsWhileLocked, @@ -1050,15 +1105,12 @@ public abstract class ChromeFeatureList { sCctAuthTabEnableHttpsRedirects, sCctAutoTranslate, sCctBlockTouchesDuringEnterAnimation, - sCctEphemeralMediaViewerExperiment, - sCctEphemeralMode, + sCctContextualMenuItems, sCctFixWarmup, sCctFreInSameTask, sCctGoogleBottomBar, sCctGoogleBottomBarVariantLayouts, sCctIncognitoAvailableToThirdParty, - sCctIntentFeatureOverrides, - sCctMinimized, sCctNavigationalPrefetch, sCctNestedSecurityIcon, sCctOpenInBrowserButtonIfAllowedByEmbedder, @@ -1069,6 +1121,7 @@ public abstract class ChromeFeatureList { sCctRevampedBranding, sCctTabModalDialog, sCctToolbarRefactor, + sCctResetTimeoutEnabled, sClampAutomotiveScaling, sClankStartupLatencyInjection, sCollectAndroidFrameTimelineMetrics, @@ -1078,17 +1131,18 @@ public abstract class ChromeFeatureList { sCrossDeviceTabPaneAndroid, sDisableInstanceLimit, sDisplayEdgeToEdgeFullscreen, - sDrawKeyNativeEdgeToEdge, + sDrawChromePagesEdgeToEdge, sEdgeToEdgeBottomChin, sEdgeToEdgeDebugging, sEdgeToEdgeEverywhere, sEdgeToEdgeMonitorConfigurations, sEdgeToEdgeTablet, - sEdgeToEdgeWebOptIn, + sEdgeToEdgeUseBackupNavbarInsets, sEducationalTipDefaultBrowserPromoCard, sEducationalTipModule, sEnableDiscountInfoApi, sEnableExclusiveAccessManager, + sEnableFullscreenToAnyScreenAndroid, sEnableXAxisActivityTransition, sFloatingSnackbar, sForceTranslucentNotificationTrampoline, @@ -1096,7 +1150,6 @@ public abstract class ChromeFeatureList { sFullscreenInsetsApiMigrationOnAutomotive, sGridTabSwitcherSurfaceColorUpdate, sGridTabSwitcherUpdate, - sHideTabletToolbarDownloadButton, sHistoryPaneAndroid, sHomepageIsNewTabPagePolicyAndroid, sKeyboardEscBackNavigation, @@ -1105,12 +1158,12 @@ public abstract class ChromeFeatureList { sMagicStackAndroid, sMaliciousApkDownloadCheck, sMiniOriginBar, + sMitigateLegacySearchEnginePromoOverlap, sMostVisitedTilesCustomization, sMostVisitedTilesReselect, sMultiInstanceApplicationStatusCleanup, sMvcUpdateViewWhenModelChanged, sNavBarColorAnimation, - sNavBarColorMatchesTabBackground, sNewTabPageAndroidTriggerForPrerender2, sNewTabPageCustomization, sNewTabPageCustomizationForMvt, @@ -1133,16 +1186,16 @@ public abstract class ChromeFeatureList { sSearchInCCTAlternateTapHandlingIfEnabledByEmbedder, sSettingsSingleActivity, sShowHomeButtonPolicyAndroid, - sSkipIsolatedSplitPreload, sSmallerTabStripTitleLimit, sStartSurfaceReturnTime, sTabClosureMethodRefactor, - sTabStateFlatBuffer, + sTabModelInitFixes, sTabStripDensityChangeAndroid, sTabStripIncognitoMigration, sTabStripLayoutOptimization, sTabWindowManagerReportIndicesMismatch, sTabletTabStripAnimation, + sToolbarSnapshotRefactor, sTopControlsRefactor, sTouchToSearchCallout, sTraceBinderIpc, @@ -1173,8 +1226,6 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(ANDROID_APPEARANCE_SETTINGS, false); public static final MutableFlagWithSafeDefault sAndroidBookmarkBar = newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR, false); - public static final MutableFlagWithSafeDefault sAndroidDumpOnScrollWithoutResource = - newMutableFlagWithSafeDefault(ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE, false); public static final MutableFlagWithSafeDefault sAndroidNativePagesInNewTab = newMutableFlagWithSafeDefault(ANDROID_NATIVE_PAGES_IN_NEW_TAB, true); public static final MutableFlagWithSafeDefault sAndroidPinnedTabs = @@ -1185,8 +1236,6 @@ public abstract class ChromeFeatureList { ANDROID_SHOW_RESTORE_TABS_PROMO_ON_FRE_BYPASSED_KILL_SWITCH, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE, false); - public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveDuplicateTabs = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveTabGroups = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterAutoDelete = @@ -1194,33 +1243,37 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sAndroidTabDeclutterAutoDeleteKillSwitch = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_AUTO_DELETE_KILL_SWITCH, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterPerformanceImprovements = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_PERFORMANCE_IMPROVEMENTS, false); + newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_PERFORMANCE_IMPROVEMENTS, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterRescueKillSwitch = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_RESCUE_KILLSWITCH, true); + public static final MutableFlagWithSafeDefault sAndroidTabHighlighting = + newMutableFlagWithSafeDefault(ANDROID_TAB_HIGHLIGHTING, false); public static final MutableFlagWithSafeDefault sBcivBottomControls = newMutableFlagWithSafeDefault(BCIV_BOTTOM_CONTROLS, true); - public static final MutableFlagWithSafeDefault sBottomBrowserControlsRefactor = - newMutableFlagWithSafeDefault(BOTTOM_BROWSER_CONTROLS_REFACTOR, true); public static final MutableFlagWithSafeDefault sBrowserControlsEarlyResize = newMutableFlagWithSafeDefault(BROWSER_CONTROLS_EARLY_RESIZE, false); public static final MutableFlagWithSafeDefault sBrowserControlsInViz = newMutableFlagWithSafeDefault(BROWSER_CONTROLS_IN_VIZ, true); + public static final MutableFlagWithSafeDefault sChromeNativeUrlOverriding = + newMutableFlagWithSafeDefault(CHROME_NATIVE_URL_OVERRIDING, false); public static final MutableFlagWithSafeDefault sClearBrowsingDataAndroidSurvey = newMutableFlagWithSafeDefault(CLEAR_BROWSING_DATA_ANDROID_SURVEY, false); public static final MutableFlagWithSafeDefault sControlsVisibilityFromNavigations = newMutableFlagWithSafeDefault(CONTROLS_VISIBILITY_FROM_NAVIGATIONS, true); - public static final MutableFlagWithSafeDefault sDynamicSafeAreaInsets = - newMutableFlagWithSafeDefault(DYNAMIC_SAFE_AREA_INSETS, false); - public static final MutableFlagWithSafeDefault sEdgeToEdgeSafeAreaConstraint = - newMutableFlagWithSafeDefault(EDGE_TO_EDGE_SAFE_AREA_CONSTRAINT, true); // Defaulted to true in native, but since it is being used as a kill switch set the default // value pre-native to false as it is safer if the feature needs to be killed via Finch config. public static final MutableFlagWithSafeDefault sEmptyTabListAnimationKillSwitch = 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 sIncognitoScreenshot = newMutableFlagWithSafeDefault(INCOGNITO_SCREENSHOT, false); + public static final MutableFlagWithSafeDefault sMediaIndicatorsAndroid = + newMutableFlagWithSafeDefault(MEDIA_INDICATORS_ANDROID, false); public static final MutableFlagWithSafeDefault sNoVisibleHintForDifferentTLD = newMutableFlagWithSafeDefault(ANDROID_NO_VISIBLE_HINT_FOR_DIFFERENT_TLD, true); public static final MutableFlagWithSafeDefault sQuickDeleteAndroidSurvey = @@ -1258,8 +1311,8 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false); public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid = newMutableFlagWithSafeDefault(TAB_GROUP_PARITY_BOTTOM_SHEET_ANDROID, false); - public static final MutableFlagWithSafeDefault sTabSwitcherColorBlendAnimate = - newMutableFlagWithSafeDefault(TAB_SWITCHER_COLOR_BLEND_ANIMATE, true); + public static final MutableFlagWithSafeDefault sTabStorageSqlitePrototype = + newMutableFlagWithSafeDefault(TAB_STORAGE_SQLITE_PROTOTYPE, false); public static final MutableFlagWithSafeDefault sTabSwitcherGroupSuggestionsAndroid = newMutableFlagWithSafeDefault(TAB_SWITCHER_GROUP_SUGGESTIONS_ANDROID, false); public static final MutableFlagWithSafeDefault sTabSwitcherGroupSuggestionsTestModeAndroid = @@ -1268,6 +1321,8 @@ public abstract class ChromeFeatureList { newMutableFlagWithSafeDefault(TAB_SWITCHER_FOREIGN_FAVICON_SUPPORT, true); public static final MutableFlagWithSafeDefault sToolbarPhoneAnimationRefactor = newMutableFlagWithSafeDefault(TOOLBAR_PHONE_ANIMATION_REFACTOR, false); + public static final MutableFlagWithSafeDefault sToolbarTabletResizeRefactor = + newMutableFlagWithSafeDefault(TOOLBAR_TABLET_RESIZE_REFACTOR, false); public static final MutableFlagWithSafeDefault sToolbarScrollAblation = newMutableFlagWithSafeDefault(TOOLBAR_SCROLL_ABLATION, false); @@ -1372,8 +1427,6 @@ public abstract class ChromeFeatureList { public static final BooleanCachedFeatureParam sCctAutoTranslateAllowAllFirstParties = newBooleanCachedFeatureParam(CCT_AUTO_TRANSLATE, "allow_all_first_parties", false); - public static final IntCachedFeatureParam sCctMinimizedIconVariant = - newIntCachedFeatureParam(CCT_MINIMIZED, "icon_variant", 0); // Devices from this OEM--and potentially others--sometimes crash when we call // `Activity#enterPictureInPictureMode` on Android R. So, we disable the feature on those // devices. See: https://crbug.com/1519164. @@ -1431,6 +1484,9 @@ public abstract class ChromeFeatureList { "google_bottom_bar_variant_is_google_default_search_engine_check_enabled", false); + public static final IntCachedFeatureParam sCctResetMinimumTimeoutMinutes = + newIntCachedFeatureParam(CCT_RESET_TIMEOUT_ENABLED, "minimum_reset_timeout_mins", 1); + public static final StringCachedFeatureParam sCctResizableForThirdPartiesAllowlistEntries = newStringCachedFeatureParam(CCT_RESIZABLE_FOR_THIRD_PARTIES, "allowlist_entries", ""); public static final StringCachedFeatureParam sCctResizableForThirdPartiesDenylistEntries = @@ -1486,29 +1542,6 @@ public abstract class ChromeFeatureList { public static final IntCachedFeatureParam sDisableInstanceLimitMaxCount = newIntCachedFeatureParam(DISABLE_INSTANCE_LIMIT, "max_instance_limit", 20); - /** Cached param whether we disable e2e on the recent tabs page. */ - public static final BooleanCachedFeatureParam sDrawKeyNativeEdgeToEdgeDisableRecentTabsE2e = - newBooleanCachedFeatureParam( - DRAW_KEY_NATIVE_EDGE_TO_EDGE, "disable_recent_tabs_e2e", false); - - /** Cached param whether we disable e2e on the CCT media viewer. */ - public static final BooleanCachedFeatureParam sDrawKeyNativeEdgeToEdgeDisableCctMediaViewerE2e = - newBooleanCachedFeatureParam( - DRAW_KEY_NATIVE_EDGE_TO_EDGE, "disable_cct_media_viewer_e2e", false); - - /** Cached param whether we disable e2e on the hub. */ - public static final BooleanCachedFeatureParam sDrawKeyNativeEdgeToEdgeDisableHubE2e = - newBooleanCachedFeatureParam(DRAW_KEY_NATIVE_EDGE_TO_EDGE, "disable_hub_e2e", false); - - /** Cached param whether we disable e2e on new tab page. */ - public static final BooleanCachedFeatureParam sDrawKeyNativeEdgeToEdgeDisableNtpE2e = - newBooleanCachedFeatureParam(DRAW_KEY_NATIVE_EDGE_TO_EDGE, "disable_ntp_e2e", false); - - /** Cached param whether we disable e2e on incognito new tab page. See crbug.com/368675202 */ - public static final BooleanCachedFeatureParam sDrawKeyNativeEdgeToEdgeDisableIncognitoNtpE2e = - newBooleanCachedFeatureParam( - DRAW_KEY_NATIVE_EDGE_TO_EDGE, "disable_incognito_ntp_e2e", false); - /** * Cached param whether we disable animations for color changes to the edge-to-edge bottom chin. */ @@ -1540,6 +1573,12 @@ public abstract class ChromeFeatureList { newStringCachedFeatureParam( EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_min_versions", ""); + public static final StringCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsOemMinVersions = + newStringCachedFeatureParam( + EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS, + "e2e_backup_navbar_insets_oem_min_versions", + ""); + /** * Param for the OEMs that need an exception for min versions. Its value should be a comma * separated list of manufacturer, and its index should match {@link @@ -1552,6 +1591,18 @@ public abstract class ChromeFeatureList { public static final StringCachedFeatureParam sEdgeToEdgeEverywhereOemList = newStringCachedFeatureParam(EDGE_TO_EDGE_EVERYWHERE, "e2e_field_trial_oem_list", ""); + public static final StringCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsOemList = + newStringCachedFeatureParam( + EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS, "e2e_backup_navbar_insets_oem_list", ""); + + public static final BooleanCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsUseTappable = + newBooleanCachedFeatureParam( + EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS, "use_tappable_element", true); + + public static final BooleanCachedFeatureParam sEdgeToEdgeUseBackupNavbarInsetsUseGestures = + newBooleanCachedFeatureParam( + EDGE_TO_EDGE_USE_BACKUP_NAVBAR_INSETS, "use_gesture_insets", true); + public static final BooleanCachedFeatureParam sEdgeToEdgeEverywhereIsDebugging = newBooleanCachedFeatureParam(EDGE_TO_EDGE_EVERYWHERE, "e2e_everywhere_debug", false); @@ -1578,11 +1629,6 @@ public abstract class ChromeFeatureList { newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_query", false); public static final BooleanCachedFeatureParam sMostVisitedTilesReselectLaxPath = newBooleanCachedFeatureParam(MOST_VISITED_TILES_RESELECT, "lax_path", false); - - public static final BooleanCachedFeatureParam - sNavBarColorMatchesTabBackgroundColorAnimationDisabled = - newBooleanCachedFeatureParam( - NAV_BAR_COLOR_MATCHES_TAB_BACKGROUND, "color_animation_disabled", true); public static final IntCachedFeatureParam sNotificationTrampolineLongJobDurationMs = newIntCachedFeatureParam(NOTIFICATION_TRAMPOLINE, "long_job_duration_millis", 8 * 1000); public static final IntCachedFeatureParam sNotificationTrampolineNormalJobDurationMs = @@ -1630,8 +1676,6 @@ public abstract class ChromeFeatureList { START_SURFACE_RETURN_TIME, "start_surface_return_time_on_tablet_seconds", 14400); // 4 hours - public static final BooleanCachedFeatureParam sTabStateFlatBufferMigrateStaleTabs = - newBooleanCachedFeatureParam(TAB_STATE_FLAT_BUFFER, "migrate_stale_tabs", true); public static final StringCachedFeatureParam sTabStripLayoutOptimizationOemAllowlist = newStringCachedFeatureParam( @@ -1648,7 +1692,9 @@ public abstract class ChromeFeatureList { public static final StringCachedFeatureParam sTabStripLayoutOptimizationOnExternalDisplayOemDenylist = newStringCachedFeatureParam( - TAB_STRIP_LAYOUT_OPTIMIZATION, "external_display_oem_denylist", ""); + TAB_STRIP_LAYOUT_OPTIMIZATION, + "external_display_oem_denylist", + "samsung"); public static final IntCachedFeatureParam sTabWindowManagerReportIndicesMismatchTimeDiffThresholdMs = @@ -1664,8 +1710,11 @@ public abstract class ChromeFeatureList { public static final IntCachedFeatureParam sWebApkMinShellApkVersionValue = newIntCachedFeatureParam(WEB_APK_MIN_SHELL_APK_VERSION, "version", 146); - public static final BooleanCachedFeatureParam sTouchToSearchCalloutTextVariant = - newBooleanCachedFeatureParam(TOUCH_TO_SEARCH_CALLOUT, "text_variant", false); + public static final BooleanCachedFeatureParam sTouchToSearchCalloutIph = + newBooleanCachedFeatureParam(TOUCH_TO_SEARCH_CALLOUT, "iph", false); + + public static final BooleanCachedFeatureParam sTouchToSearchCalloutSnippetAsSubtitle = + newBooleanCachedFeatureParam(TOUCH_TO_SEARCH_CALLOUT, "snippet_as_subtitle", false); /** All {@link CachedFeatureParam}s of features in this FeatureList */ public static final List> sParamsCached = @@ -1700,7 +1749,7 @@ public abstract class ChromeFeatureList { sCctGoogleBottomBarVariantLayoutsSingleDeckerHeightDp, sCctGoogleBottomBarVariantLayoutsVariantLayout, sCctMinimizedEnabledByDefaultManufacturerExcludeList, - sCctMinimizedIconVariant, + sCctResetMinimumTimeoutMinutes, sCctResizableForThirdPartiesAllowlistEntries, sCctResizableForThirdPartiesDefaultPolicy, sCctResizableForThirdPartiesDenylistEntries, @@ -1711,15 +1760,14 @@ public abstract class ChromeFeatureList { sDeleteMigratedLegacyTabStateFilesAfterRestore, sDisableInstanceLimitMaxCount, sDisableInstanceLimitMemoryThresholdMb, - sDrawKeyNativeEdgeToEdgeDisableCctMediaViewerE2e, - sDrawKeyNativeEdgeToEdgeDisableHubE2e, - sDrawKeyNativeEdgeToEdgeDisableIncognitoNtpE2e, - sDrawKeyNativeEdgeToEdgeDisableNtpE2e, - sDrawKeyNativeEdgeToEdgeDisableRecentTabsE2e, sEdgeToEdgeBottomChinOemList, sEdgeToEdgeBottomChinOemMinVersions, + sEdgeToEdgeUseBackupNavbarInsetsOemMinVersions, sEdgeToEdgeEverywhereIsDebugging, sEdgeToEdgeEverywhereOemList, + sEdgeToEdgeUseBackupNavbarInsetsOemList, + sEdgeToEdgeUseBackupNavbarInsetsUseTappable, + sEdgeToEdgeUseBackupNavbarInsetsUseGestures, sEdgeToEdgeEverywhereOemMinVersions, sEdgeToEdgeTabletInvisibleBottomChinMinWidth, sEdgeToEdgeTabletMinWidthThreshold, @@ -1732,7 +1780,6 @@ public abstract class ChromeFeatureList { sMostVisitedTilesReselectLaxSchemeHost, sNavBarColorAnimationDisableBottomChinColorAnimation, sNavBarColorAnimationDisableEdgeToEdgeLayoutColorAnimation, - sNavBarColorMatchesTabBackgroundColorAnimationDisabled, sNotificationTrampolineImmediateJobDurationMs, sNotificationTrampolineLongJobDurationMs, sNotificationTrampolineNormalJobDurationMs, @@ -1745,13 +1792,13 @@ public abstract class ChromeFeatureList { sSearchinCctOmniboxAllowedPackageNames, sStartSurfaceReturnTimeTabletSecs, sTabGroupListContainment, - sTabStateFlatBufferMigrateStaleTabs, sTabStripLayoutOptimizationOemAllowlist, sTabStripLayoutOptimizationOemDenylist, sTabStripLayoutOptimizationOnExternalDisplay, sTabStripLayoutOptimizationOnExternalDisplayOemDenylist, sTabWindowManagerReportIndicesMismatchTimeDiffThresholdMs, - sTouchToSearchCalloutTextVariant, + sTouchToSearchCalloutIph, + sTouchToSearchCalloutSnippetAsSubtitle, sUseChimeAndroidSdkAlwaysRegister, sWebApkMinShellApkVersionValue); @@ -1773,16 +1820,17 @@ public abstract class ChromeFeatureList { sAndroidNativePagesInNewTabRecentTabsEnabled = sAndroidNativePagesInNewTab.newBooleanParam( "android_native_pages_in_new_tab_recent_tabs_enabled", true); - public static final MutableBooleanParamWithSafeDefault - sDisableBottomControlsStackerYOffsetDispatching = - sBottomBrowserControlsRefactor.newBooleanParam( - "disable_bottom_controls_stacker_y_offset", false); public static final MutableIntParamWithSafeDefault sAndroidTabDeclutterAutoDeleteTimeDeltaHours = sAndroidTabDeclutterAutoDelete.newIntParam( "android_tab_declutter_auto_delete_time_delta_hours", 90 * 24); - public static final MutableIntParamWithSafeDefault sTabSwitcherColorBlendAnimateDurationMs = - sTabSwitcherColorBlendAnimate.newIntParam("animation_duration_ms", 240); - public static final MutableIntParamWithSafeDefault sTabSwitcherColorBlendAnimateInterpolator = - sTabSwitcherColorBlendAnimate.newIntParam("animation_interpolator", 0); + + public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterAutoDeletePromoTest = + sAndroidTabDeclutterAutoDelete.newBooleanParam( + "android_tab_declutter_auto_delete_promo_test", false); + + public static final MutableBooleanParamWithSafeDefault sShowNewTabAnimationsLogs = + sShowNewTabAnimations.newBooleanParam("logs", false); + public static final MutableBooleanParamWithSafeDefault sShowNewTabAnimationsListeners = + sShowNewTabAnimations.newBooleanParam("listeners", 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 87e90ea5..d016286d 100755 --- a/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc +++ b/tools/under-control/src/chrome/browser/prefs/browser_prefs.cc @@ -20,6 +20,7 @@ #include "chrome/browser/accessibility/invert_bubble_prefs.h" #include "chrome/browser/accessibility/page_colors.h" #include "chrome/browser/accessibility/prefers_default_scrollbar_styles_prefs.h" +#include "chrome/browser/actor/ui/actor_ui_state_manager_prefs.h" #include "chrome/browser/browser_process_impl.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/component_updater/component_updater_prefs.h" @@ -94,7 +95,6 @@ #include "chrome/browser/ui/webui/policy/policy_ui.h" #include "chrome/browser/ui/webui/print_preview/policy_settings.h" #include "chrome/browser/updates/announcement_notification/announcement_notification_service.h" -#include "chrome/browser/user_education/browser_user_education_storage_service.h" #include "chrome/browser/webauthn/chrome_authenticator_request_delegate.h" #include "chrome/browser/webauthn/webauthn_pref_names.h" #include "chrome/common/buildflags.h" @@ -121,8 +121,6 @@ #include "components/fingerprinting_protection_filter/common/prefs.h" #include "components/history_clusters/core/history_clusters_prefs.h" #include "components/image_fetcher/core/cache/image_cache.h" -#include "components/invalidation/impl/fcm_invalidation_service.h" -#include "components/invalidation/impl/invalidator_registrar_with_memory.h" #include "components/invalidation/impl/per_user_topic_subscription_manager.h" #include "components/language/content/browser/geo_language_provider.h" #include "components/language/content/browser/ulp_language_code_locator/ulp_language_code_locator.h" @@ -136,6 +134,7 @@ #include "components/ntp_tiles/custom_links_manager_impl.h" #include "components/ntp_tiles/most_visited_sites.h" #include "components/offline_pages/buildflags/buildflags.h" +#include "components/omnibox/browser/aim_eligibility_service.h" #include "components/omnibox/browser/document_provider.h" #include "components/omnibox/browser/omnibox_prefs.h" #include "components/omnibox/browser/zero_suggest_provider.h" @@ -202,7 +201,6 @@ #include "extensions/buildflags/buildflags.h" #include "net/http/http_server_properties_manager.h" #include "pdf/buildflags.h" -#include "ppapi/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -279,7 +277,6 @@ #include "components/webapps/browser/android/install_prompt_prefs.h" #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h" -#include "chrome/browser/device_api/device_service_impl.h" #include "chrome/browser/gcm/gcm_product_util.h" #include "chrome/browser/hid/hid_policy_allowed_devices.h" #include "chrome/browser/intranet_redirect_detector.h" @@ -310,6 +307,7 @@ #include "chrome/browser/ui/webui/certificate_manager/certificate_manager_handler.h" #include "chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.h" #include "chrome/browser/ui/webui/history/foreign_session_handler.h" +#include "chrome/browser/ui/webui/management/management_ui.h" #include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer_ui.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h" #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h" @@ -317,6 +315,7 @@ #include "chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.h" #include "chrome/browser/ui/webui/tab_search/tab_search_prefs.h" #include "chrome/browser/upgrade_detector/upgrade_detector.h" +#include "chrome/browser/user_education/browser_user_education_storage_service.h" #include "components/headless/policy/headless_mode_prefs.h" #include "components/lens/lens_overlay_permission_utils.h" #include "components/live_caption/live_caption_controller.h" @@ -551,148 +550,6 @@ namespace { // Please keep the list of deprecated prefs in chronological order. i.e. Add to // the bottom of the list, not here at the top. -#if BUILDFLAG(IS_WIN) -// Deprecated 06/2024 -constexpr char kOsCryptAppBoundFixedData3PrefName[] = - "os_crypt.app_bound_fixed_data3"; -#endif // BUILDFLAG(IS_WIN) - -#if BUILDFLAG(IS_CHROMEOS) -// Deprecated 05/2024. -// A preference to keep track of the device registered time. -constexpr char kDeviceRegisteredTime[] = "DeviceRegisteredTime"; -constexpr char kArcKioskDictionaryName[] = "arc-kiosk"; -#endif // BUILDFLAG(IS_CHROMEOS) - -#if !BUILDFLAG(IS_ANDROID) -// Deprecated 05/2024 -inline constexpr char kSearchEnginesStudyGroup[] = - "search_engines.client_side_study_group"; -#endif - -#if !BUILDFLAG(IS_ANDROID) -// Deprecated 05/2024 -// Pref name for the whether whats new refresh page has been shown -// successfully. -inline constexpr char kHasShownRefreshWhatsNew[] = - "browser.has_shown_refresh_2023_whats_new"; -#endif - -#if BUILDFLAG(IS_CHROMEOS) -// Deprecated 05/2024 -// A boolean pref which determines if you can pause mouse keys with a -// keyboard shortcut. -inline constexpr char kAccessibilityMouseKeysShortcutToPauseEnabled[] = - "settings.a11y.mouse_keys.ctrl_to_pause_enabled"; -// A boolean pref which determines if mouse keys is automatically disabled in -// text fields. -inline constexpr char kAccessibilityMouseKeysDisableInTextFields[] = - "settings.a11y.mouse_keys.disable_in_text_fields"; -// A boolean pref which determines whether screen magnifier should center -// the text input focus. -inline constexpr char kAccessibilityScreenMagnifierCenterFocus[] = - "settings.a11y.screen_magnifier_center_focus"; -#endif // BUILDFLAG(IS_CHROMEOS) - -// Deprecated 05/2024. -constexpr char kBlockTruncatedCookies[] = "profile.cookie_block_truncated"; - -// Deprecated 05/2024 -inline constexpr char kDefaultSearchProviderChoiceLocationPrefName[] = - "default_search_provider_data.choice_location"; - -// Deprecated 05/2024. -inline constexpr char kSyncCachedTrustedVaultAutoUpgradeDebugInfo[] = - "sync.cached_trusted_vault_auto_upgrade_debug_info"; - -// Deprecated 05/2024. -inline constexpr char kAutologinEnabled[] = "autologin.enabled"; -inline constexpr char kReverseAutologinRejectedEmailList[] = - "reverse_autologin.rejected_email_list"; - -// Deprecated 06/2024. -inline constexpr char kTrackingProtectionOnboardingNoticeFirstRequested[] = - "tracking_protection.tracking_protection_onboarding_notice_first_requested"; -inline constexpr char kTrackingProtectionOnboardingNoticeLastRequested[] = - "tracking_protection.tracking_protection_onboarding_notice_last_requested"; - -// Deprecated 06/2024. -#if !BUILDFLAG(IS_ANDROID) -inline constexpr char kAccessibilityReadAnythingOmniboxIconLabelShownCount[] = - "settings.a11y.read_anything.omnibox_icon_label_shown_count"; - -// Deprecated 06/2024. -inline constexpr char kAccessibilityPdfOcrAlwaysActive[] = - "settings.a11y.pdf_ocr_always_active"; -#endif - -// Deprecated 06/2024. -inline constexpr char kTrackingProtectionOffboarded[] = - "tracking_protection.tracking_protection_offboarded"; -inline constexpr char kTrackingProtectionOffboardedSince[] = - "tracking_protection.tracking_protection_offboarded_since"; -inline constexpr char kTrackingProtectionOffboardingAckAction[] = - "tracking_protection.tracking_protection_offboarding_ack_action"; - -#if BUILDFLAG(IS_CHROMEOS) -// Deprecated 06/2024. -constexpr std::array - kHoldingSpaceWallpaperNudgeTimesOfFirstInteraction = { - "ash.holding_space.wallpaper_nudge.interaction_time." - "DroppedFileOnHoldingSpace.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "DroppedFileOnWallpaper.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "DraggedFileOverWallpaper.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time.OpenedHoldingSpace." - "first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromAnySource.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromContextMenu.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromFilesApp.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromHoldingSpaceDrop.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromPinButton.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time." - "PinnedFileFromWallpaperDrop.first_time", - "ash.holding_space.wallpaper_nudge.interaction_time.UsedOtherItem." - "first_time", - "ash.holding_space.wallpaper_nudge.interaction_time.UsedPinnedItem." - "first_time", -}; - -// Deprecated 06/2024. -constexpr char kHoldingSpaceWallpaperNudgeLastTimeNudgeShownCounterfactual[] = - "ash.holding_space.wallpaper_nudge.last_shown_time_counterfactual"; -constexpr char kHoldingSpaceWallpaperNudgeLastTimeNudgeShown[] = - "ash.holding_space.wallpaper_nudge.last_shown_time"; -constexpr char kHoldingSpaceWallpaperNudgeNudgeShownCountCounterfactual[] = - "ash.holding_space.wallpaper_nudge.shown_count_counterfactual"; -constexpr char kHoldingSpaceWallpaperNudgeNudgeShownCount[] = - "ash.holding_space.wallpaper_nudge.shown_count"; -constexpr char kHoldingSpaceWallpaperNudgeUserEligibleForNudge[] = - "ash.holding_space.wallpaper_nudge.user_eligible"; -constexpr char kHoldingSpaceWallpaperNudgeUserFirstEligibleSessionTime[] = - "ash.holding_space.wallpaper_nudge.first_eligible_session_time"; - -// Deprecated 06/2024. -constexpr char kLocalUserFilesMigrationEnabled[] = - "filebrowser.local_user_files_migration_enabled"; - -// Deprecated 06/2024. -constexpr char kBirchUseRecentTabs[] = "ash.birch.use_recent_tabs"; -constexpr char kBirchUseLastActive[] = "ash.birch.use_last_active"; -constexpr char kBirchUseMostVisited[] = "ash.birch.use_most_visited"; -constexpr char kBirchUseSelfShare[] = "ash.birch.use_self_share"; -#endif - -// Deprecated 06/2024 -constexpr char kDefaultSearchProviderChoicePending[] = - "default_search_provider.engine_choice_pending"; - // Deprecated 07/2024 #if BUILDFLAG(ENABLE_DICE_SUPPORT) inline constexpr char kFirstRunStudyGroup[] = "browser.first_run_study_group"; @@ -1153,38 +1010,104 @@ inline constexpr char kDeviceNativeClientForceAllowed[] = "device_native_client_force_allowed"; inline constexpr char kDeviceNativeClientForceAllowedCache[] = "device_native_client_force_allowed_cache"; +inline constexpr char kIsFirstBootForNacl[] = "is_first_boot_for_nacl"; #endif // BUILDFLAG(IS_CHROMEOS) +// Deprecated 06/2025. +inline constexpr char kLastUsedPairingFromSyncPublicKey[] = + "webauthn.last_used_pairing_from_sync_public_key"; +inline constexpr char kWebAuthnCablePairingsPrefName[] = + "webauthn.cablev2_pairings"; +inline constexpr char kSyncedDefaultSearchProviderGUID[] = + "default_search_provider.synced_guid"; + +#if BUILDFLAG(IS_ANDROID) +// Deprecated 07/2025. +constexpr char kObsoletePasswordAccessLossWarningShownAtStartupTimestamp[] = + "password_access_loss_warning_shown_at_startup_timestamp"; +constexpr char kObsoletePasswordAccessLossWarningShownTimestamp[] = + "password_access_loss_warning_shown_timestamp"; +constexpr char kObsoleteTimeOfLastMigrationAttempt[] = + "time_of_last_migration_attempt"; +constexpr char kObsoleteSettingsMigratedToUPMLocal[] = + "profile.settings_migrated_to_upm_local"; +constexpr char kObsoleteShouldShowPostPasswordMigrationSheetAtStartup[] = + "should_show_post_password_migration_sheet_at_startup"; +constexpr char kObsoleteUnenrolledFromGoogleMobileServicesDueToErrors[] = + "unenrolled_from_google_mobile_services_due_to_errors"; +constexpr char kObsoleteCurrentMigrationVersionToGoogleMobileServices[] = + "current_migration_version_to_google_mobile_services"; +#endif // BUILDFLAG(IS_ANDROID) + +// Deprecated 07/2025. +inline constexpr char kFirstSyncCompletedInFullSyncMode[] = + "sync.first_full_sync_completed"; +inline constexpr char kGoogleServicesSecondLastSyncingGaiaId[] = + "google.services.second_last_gaia_id"; + +#if BUILDFLAG(IS_CHROMEOS) +// Deprecated 07/2025. +inline constexpr char kAssistantNumSessionsWhereOnboardingShown[] = + "ash.assistant.num_sessions_where_onboarding_shown"; +inline constexpr char kAssistantTimeOfLastInteraction[] = + "ash.assistant.time_of_last_interaction"; + +// Deprecated 07/2025. +inline constexpr char kAssistantConsentStatus[] = + "settings.voice_interaction.activity_control.consent_status"; +inline constexpr char kAssistantContextEnabled[] = + "settings.voice_interaction.context.enabled"; +inline constexpr char kAssistantDisabledByPolicy[] = + "settings.assistant.disabled_by_policy"; +inline constexpr char kAssistantEnabled[] = + "settings.voice_interaction.enabled"; +inline constexpr char kAssistantHotwordAlwaysOn[] = + "settings.voice_interaction.hotword.always_on"; +inline constexpr char kAssistantHotwordEnabled[] = + "settings.voice_interaction.hotword.enabled"; +inline constexpr char kAssistantLaunchWithMicOpen[] = + "settings.voice_interaction.launch_with_mic_open"; +inline constexpr char kAssistantNotificationEnabled[] = + "settings.voice_interaction.notification.enabled"; +inline constexpr char kAssistantOnboardingMode[] = + "settings.assistant.onboarding_mode"; +inline constexpr char kAssistantVoiceMatchEnabledDuringOobe[] = + "settings.voice_interaction.oobe_voice_match.enabled"; +inline constexpr char kAssistantNumFailuresSinceLastServiceRun[] = + "ash.assistant.num_failures_since_last_service_run"; +#endif + +// Deprecated 07/2025 +constexpr char kOptGuideModelFetcherLastFetchAttempt[] = + "optimization_guide.predictionmodelfetcher.last_fetch_attempt"; +constexpr char kOptGuideModelFetcherLastFetchSuccess[] = + "optimization_guide.predictionmodelfetcher.last_fetch_success"; + +// Deprecated 07/2025 +inline constexpr char kSodaScheduledDeletionTime[] = + "accessibility.captions.soda_scheduled_deletion_time"; + +#if BUILDFLAG(IS_CHROMEOS) +// Deprecated 07/2025. +inline constexpr char kTimeOfFirstFilesAppChipPress[] = + "ash.holding_space.time_of_first_files_app_chip_press"; +#endif // BUILDFLAG(IS_CHROMEOS) + +// Deprecated 07/2025. +inline constexpr char kSyncPromoIdentityPillShownCount[] = + "ChromeSigninSyncPromoIdentityPillShownCount"; +inline constexpr char kSyncPromoIdentityPillUsedCount[] = + "ChromeSigninSyncPromoIdentityPillUsedCount"; + +// Deprecated 08/2025. +inline constexpr char kInvalidationClientIDCache[] = + "invalidation.per_sender_client_id_cache"; +inline constexpr char kInvalidationTopicsToHandler[] = + "invalidation.per_sender_topics_to_handler"; + // Register local state used only for migration (clearing or moving to a new // key). void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { -#if BUILDFLAG(IS_WIN) - // Deprecated 06/2024. - registry->RegisterStringPref(kOsCryptAppBoundFixedData3PrefName, - std::string()); -#endif - -#if BUILDFLAG(IS_CHROMEOS) - // Deprecated 05/2024. - registry->RegisterTimePref(kDeviceRegisteredTime, base::Time()); - registry->RegisterDictionaryPref(kArcKioskDictionaryName); -#endif // BUILDFLAG(IS_CHROMEOS) - -#if !BUILDFLAG(IS_ANDROID) - // Deprecated 05/2024. - registry->RegisterStringPref(kSearchEnginesStudyGroup, std::string()); -#endif - -#if !BUILDFLAG(IS_ANDROID) - // Deprecated 05/2024. - registry->RegisterBooleanPref(kHasShownRefreshWhatsNew, false); -#endif - -#if BUILDFLAG(IS_CHROMEOS) - // Deprecated 06/2024. - registry->RegisterBooleanPref(kLocalUserFilesMigrationEnabled, false); -#endif - #if BUILDFLAG(ENABLE_DICE_SUPPORT) // Deprecated 07/2024. registry->RegisterStringPref(kFirstRunStudyGroup, std::string()); @@ -1281,7 +1204,12 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(kNativeClientForceAllowed, false); registry->RegisterBooleanPref(kDeviceNativeClientForceAllowed, false); registry->RegisterBooleanPref(kDeviceNativeClientForceAllowedCache, false); + registry->RegisterBooleanPref(kIsFirstBootForNacl, true); #endif // BUILDFLAG(IS_CHROMEOS) + + // Deprecated 08/2025. + registry->RegisterDictionaryPref(kInvalidationClientIDCache); + registry->RegisterDictionaryPref(kInvalidationTopicsToHandler); } // Register prefs used only for migration (clearing or moving to a new key). @@ -1299,80 +1227,6 @@ void RegisterProfilePrefsForMigration( chrome_browser_net::secure_dns::RegisterProbesSettingBackupPref(registry); -#if BUILDFLAG(IS_CHROMEOS) - // Deprecated 05/2024. - registry->RegisterBooleanPref(kAccessibilityMouseKeysShortcutToPauseEnabled, - true); - registry->RegisterBooleanPref(kAccessibilityMouseKeysDisableInTextFields, - true); - registry->RegisterBooleanPref(kAccessibilityScreenMagnifierCenterFocus, true); -#endif // BUILDFLAG(IS_CHROMEOS) - - // Deprecated 05/2024. - registry->RegisterBooleanPref(kBlockTruncatedCookies, true); - - // Deprecated 05/2024 - registry->RegisterIntegerPref( - kDefaultSearchProviderChoiceLocationPrefName, - static_cast(search_engines::ChoiceMadeLocation::kOther)); - - // Deprecated 05/2024. - registry->RegisterStringPref(kSyncCachedTrustedVaultAutoUpgradeDebugInfo, ""); - - // Deprecated 05/2024. - registry->RegisterBooleanPref(kAutologinEnabled, true); - registry->RegisterListPref(kReverseAutologinRejectedEmailList); - - // Deprecated 06/2024. - registry->RegisterTimePref(kTrackingProtectionOnboardingNoticeFirstRequested, - base::Time()); - registry->RegisterTimePref(kTrackingProtectionOnboardingNoticeLastRequested, - base::Time()); - -// Deprecated 06/2024. -#if !BUILDFLAG(IS_ANDROID) - registry->RegisterIntegerPref( - kAccessibilityReadAnythingOmniboxIconLabelShownCount, 0); - - // Deprecated 06/2024. - registry->RegisterBooleanPref(kAccessibilityPdfOcrAlwaysActive, true); -#endif - - // Deprecated 06/2024. - registry->RegisterBooleanPref(kTrackingProtectionOffboarded, false); - registry->RegisterTimePref(kTrackingProtectionOffboardedSince, base::Time()); - registry->RegisterIntegerPref(kTrackingProtectionOffboardingAckAction, 0); - -#if BUILDFLAG(IS_CHROMEOS) - // Deprecated 06/2024. - for (const char* pref : kHoldingSpaceWallpaperNudgeTimesOfFirstInteraction) { - registry->RegisterTimePref(pref, base::Time()); - } - - // Deprecated 06/2024. - registry->RegisterBooleanPref(kHoldingSpaceWallpaperNudgeUserEligibleForNudge, - false); - registry->RegisterTimePref( - kHoldingSpaceWallpaperNudgeLastTimeNudgeShownCounterfactual, - base::Time()); - registry->RegisterTimePref(kHoldingSpaceWallpaperNudgeLastTimeNudgeShown, - base::Time()); - registry->RegisterTimePref( - kHoldingSpaceWallpaperNudgeUserFirstEligibleSessionTime, base::Time()); - registry->RegisterUint64Pref( - kHoldingSpaceWallpaperNudgeNudgeShownCountCounterfactual, 0u); - registry->RegisterUint64Pref(kHoldingSpaceWallpaperNudgeNudgeShownCount, 0u); - - // Deprecated 06/2024 - registry->RegisterBooleanPref(kBirchUseRecentTabs, true); - registry->RegisterBooleanPref(kBirchUseLastActive, true); - registry->RegisterBooleanPref(kBirchUseMostVisited, true); - registry->RegisterBooleanPref(kBirchUseSelfShare, true); -#endif // BUILDFLAG(IS_CHROMEOS) - - // Deprecated 06/2024. - registry->RegisterBooleanPref(kDefaultSearchProviderChoicePending, false); - #if !BUILDFLAG(IS_ANDROID) // Deprecated 07/2024 registry->RegisterListPref(kNtpRecipesDismissedTasks); @@ -1649,9 +1503,71 @@ void RegisterProfilePrefsForMigration( registry->RegisterDictionaryPref(kSharingVapidKey); registry->RegisterBooleanPref(kHasSeenWelcomePage, false); - // Deprecated 06/2025 + // Deprecated 06/2025. registry->RegisterBooleanPref(kStorageGarbageCollect, false); registry->RegisterDoublePref(kGaiaCookiePeriodicReportTimeDeprecated, 0); + registry->RegisterListPref(kWebAuthnCablePairingsPrefName); + registry->RegisterStringPref(kLastUsedPairingFromSyncPublicKey, ""); + registry->RegisterStringPref(kSyncedDefaultSearchProviderGUID, std::string()); + +#if BUILDFLAG(IS_ANDROID) + // Deprecated 07/2025. + registry->RegisterTimePref( + kObsoletePasswordAccessLossWarningShownAtStartupTimestamp, base::Time()); + registry->RegisterTimePref(kObsoletePasswordAccessLossWarningShownTimestamp, + base::Time()); + registry->RegisterDoublePref(kObsoleteTimeOfLastMigrationAttempt, 0.0); + registry->RegisterBooleanPref(kObsoleteSettingsMigratedToUPMLocal, false); + registry->RegisterBooleanPref( + kObsoleteShouldShowPostPasswordMigrationSheetAtStartup, false); + registry->RegisterBooleanPref( + kObsoleteUnenrolledFromGoogleMobileServicesDueToErrors, false); + registry->RegisterIntegerPref( + kObsoleteCurrentMigrationVersionToGoogleMobileServices, 0); +#endif // BUILDFLAG(IS_ANDROID) + + // Deprecated 07/2025. + registry->RegisterBooleanPref(kFirstSyncCompletedInFullSyncMode, false); + registry->RegisterStringPref(kGoogleServicesSecondLastSyncingGaiaId, + std::string()); + +#if BUILDFLAG(IS_CHROMEOS) + // Deprecated 07/2025. + registry->RegisterIntegerPref(kAssistantNumSessionsWhereOnboardingShown, 0); + registry->RegisterTimePref(kAssistantTimeOfLastInteraction, base::Time()); + + // Deprecated 07/2025. + registry->RegisterIntegerPref(kAssistantConsentStatus, 0); + registry->RegisterBooleanPref(kAssistantContextEnabled, false); + registry->RegisterBooleanPref(kAssistantDisabledByPolicy, false); + registry->RegisterBooleanPref(kAssistantEnabled, false); + registry->RegisterBooleanPref(kAssistantHotwordAlwaysOn, false); + registry->RegisterBooleanPref(kAssistantHotwordEnabled, false); + registry->RegisterBooleanPref(kAssistantLaunchWithMicOpen, false); + registry->RegisterBooleanPref(kAssistantNotificationEnabled, false); + registry->RegisterBooleanPref(kAssistantVoiceMatchEnabledDuringOobe, false); + registry->RegisterStringPref(kAssistantOnboardingMode, std::string()); + registry->RegisterIntegerPref(kAssistantNumFailuresSinceLastServiceRun, 0); +#endif + + // Deprecated 07/2025 + registry->RegisterInt64Pref(kOptGuideModelFetcherLastFetchAttempt, 0); + registry->RegisterInt64Pref(kOptGuideModelFetcherLastFetchSuccess, 0); + + // Deprecated 07/2025 + registry->RegisterTimePref(kSodaScheduledDeletionTime, base::Time()); + +#if BUILDFLAG(IS_CHROMEOS) + // Deprecated 07/2025. + registry->RegisterTimePref(kTimeOfFirstFilesAppChipPress, base::Time()); +#endif // BUILDFLAG(IS_CHROMEOS) + + registry->RegisterIntegerPref(kSyncPromoIdentityPillShownCount, 0); + registry->RegisterIntegerPref(kSyncPromoIdentityPillUsedCount, 0); + + // Deprecated 08/2025. + registry->RegisterDictionaryPref(kInvalidationClientIDCache); + registry->RegisterDictionaryPref(kInvalidationTopicsToHandler); } } // namespace @@ -1693,8 +1609,6 @@ void RegisterLocalState(PrefRegistrySimple* registry) { flags_ui::PrefServiceFlagsStorage::RegisterPrefs(registry); GpuModeManager::RegisterPrefs(registry); signin::IdentityManager::RegisterLocalStatePrefs(registry); - invalidation::FCMInvalidationService::RegisterPrefs(registry); - invalidation::InvalidatorRegistrarWithMemory::RegisterPrefs(registry); invalidation::PerUserTopicSubscriptionManager::RegisterPrefs(registry); language::GeoLanguageProvider::RegisterLocalStatePrefs(registry); language::UlpLanguageCodeLocator::RegisterLocalStatePrefs(registry); @@ -1902,6 +1816,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kPrintingLPACSandboxEnabled, true); registry->RegisterBooleanPref( policy::policy_prefs::kNativeWindowOcclusionEnabled, true); + registry->RegisterBooleanPref(prefs::kRestrictCoreSharingOnRenderer, false); MediaFoundationServiceMonitor::RegisterPrefs(registry); os_crypt_async::AppBoundEncryptionProviderWin::RegisterLocalPrefs(registry); #endif // BUILDFLAG(IS_WIN) @@ -1963,6 +1878,10 @@ void RegisterLocalState(PrefRegistrySimple* registry) { registry->RegisterIntegerPref(prefs::kToastAlertLevel, 0); +#if !BUILDFLAG(IS_ANDROID) + registry->RegisterStringPref(prefs::kNonMilestoneUpdateToastVersion, ""); +#endif // !BUILDFLAG(IS_ANDROID) + // This is intentionally last. RegisterLocalStatePrefsForMigration(registry); } @@ -1974,6 +1893,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, // User prefs. Please keep this list alphabetized. AccessibilityLabelsService::RegisterProfilePrefs(registry); AccessibilityUIMessageHandler::RegisterProfilePrefs(registry); + AimEligibilityService::RegisterProfilePrefs(registry); AnnouncementNotificationService::RegisterProfilePrefs(registry); autofill::prefs::RegisterProfilePrefs(registry); browsing_data::prefs::RegisterBrowserUserPrefs(registry); @@ -2004,7 +1924,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, site_engagement::ImportantSitesUtil::RegisterProfilePrefs(registry); IncognitoModePrefs::RegisterProfilePrefs(registry); invalidation::PerUserTopicSubscriptionManager::RegisterProfilePrefs(registry); - invalidation::InvalidatorRegistrarWithMemory::RegisterProfilePrefs(registry); language::LanguagePrefs::RegisterProfilePrefs(registry); login_detection::prefs::RegisterProfilePrefs(registry); lookalikes::RegisterProfilePrefs(registry); @@ -2151,7 +2070,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ChromeAuthenticatorRequestDelegate::RegisterProfilePrefs(registry); commerce::CommerceUiTabHelper::RegisterProfilePrefs(registry); contextual_cueing::prefs::RegisterProfilePrefs(registry); - DeviceServiceImpl::RegisterProfilePrefs(registry); DriveService::RegisterProfilePrefs(registry); extensions::TabsCaptureVisibleTabFunction::RegisterProfilePrefs(registry); first_run::RegisterProfilePrefs(registry); @@ -2160,6 +2078,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, HatsServiceDesktop::RegisterProfilePrefs(registry); lens::prefs::RegisterProfilePrefs(registry); NtpCustomBackgroundService::RegisterProfilePrefs(registry); + ManagementUI::RegisterProfilePrefs(registry); media_router::RegisterAccessCodeProfilePrefs(registry); media_router::RegisterProfilePrefs(registry); MicrosoftAuthPageHandler::RegisterProfilePrefs(registry); @@ -2217,9 +2136,12 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref(prefs::kFloatingSsoEnabled, false); registry->RegisterListPref(prefs::kFloatingSsoDomainBlocklist); registry->RegisterListPref(prefs::kFloatingSsoDomainBlocklistExceptions); + registry->RegisterBooleanPref(prefs::kFloatingSsoSessionCookiesIncluded, + false); #if BUILDFLAG(USE_CUPS) extensions::PrintingAPIHandler::RegisterProfilePrefs(registry); #endif // BUILDFLAG(USE_CUPS) + app_list::AppListSyncableService::RegisterProfilePrefs(registry); apps::AlmanacFetcher::RegisterProfilePrefs(registry); apps::AppPlatformMetricsService::RegisterProfilePrefs(registry); @@ -2233,7 +2155,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ash::ApkWebAppService::RegisterProfilePrefs(registry); ash::app_time::AppActivityRegistry::RegisterProfilePrefs(registry); ash::app_time::AppTimeController::RegisterProfilePrefs(registry); - ash::assistant::prefs::RegisterProfilePrefs(registry); ash::auth::AuthFactorConfig::RegisterPrefs(registry); ash::bluetooth::DebugLogsManager::RegisterPrefs(registry); ash::bluetooth_config::BluetoothPowerControllerImpl::RegisterProfilePrefs( @@ -2249,7 +2170,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ash::InlineLoginHandlerImpl::RegisterProfilePrefs(registry); ash::first_run::RegisterProfilePrefs(registry); ash::file_system_provider::RegisterProfilePrefs(registry); - ash::full_restore::RegisterProfilePrefs(registry); + ash::full_restore::RegisterProfilePolicyPrefs(registry); ash::KerberosCredentialsManager::RegisterProfilePrefs(registry); ash::multidevice_setup::MultiDeviceSetupService::RegisterProfilePrefs( registry); @@ -2348,9 +2269,6 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( webauthn::pref_names::kRemoteProxiedRequestsAllowed, false); - registry->RegisterStringPref( - webauthn::pref_names::kLastUsedPairingFromSyncPublicKey, ""); - registry->RegisterIntegerPref( webauthn::pref_names::kEnclaveFailedPINAttemptsCount, 0); @@ -2359,6 +2277,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, tabs::RegisterProfilePrefs(registry); CertificateManagerPageHandler::RegisterProfilePrefs(registry); + + actor::ui::RegisterProfilePrefs(registry); #endif // !BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(webauthn::pref_names::kAllowWithBrokenCerts, @@ -2456,32 +2376,6 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) { // BEGIN_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS // Please don't delete the preceding line. It is used by PRESUBMIT.py. -#if BUILDFLAG(IS_WIN) - // Deprecated 06/2024. - local_state->ClearPref(kOsCryptAppBoundFixedData3PrefName); -#endif - -#if BUILDFLAG(IS_CHROMEOS) - // Added 05/2024. - local_state->ClearPref(kDeviceRegisteredTime); - local_state->ClearPref(kArcKioskDictionaryName); -#endif // BUILDFLAG(IS_CHROMEOS) - -#if !BUILDFLAG(IS_ANDROID) - // Added 05/2024. - local_state->ClearPref(kSearchEnginesStudyGroup); -#endif - -#if !BUILDFLAG(IS_ANDROID) - // Added 05/2024. - local_state->ClearPref(kHasShownRefreshWhatsNew); -#endif - -// Added 06/2024. -#if BUILDFLAG(IS_CHROMEOS) - local_state->ClearPref(kLocalUserFilesMigrationEnabled); -#endif // BUILDFLAG(IS_CHROMEOS) - #if BUILDFLAG(ENABLE_DICE_SUPPORT) // Added 07/2024. local_state->ClearPref(kFirstRunStudyGroup); @@ -2582,8 +2476,13 @@ void MigrateObsoleteLocalStatePrefs(PrefService* local_state) { local_state->ClearPref(kNativeClientForceAllowed); local_state->ClearPref(kDeviceNativeClientForceAllowed); local_state->ClearPref(kDeviceNativeClientForceAllowedCache); + local_state->ClearPref(kIsFirstBootForNacl); #endif + // Added 08/2025. + local_state->ClearPref(kInvalidationClientIDCache); + local_state->ClearPref(kInvalidationTopicsToHandler); + // Please don't delete the following line. It is used by PRESUBMIT.py. // END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS @@ -2635,94 +2534,14 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, #if BUILDFLAG(IS_ANDROID) // Added 11/2023, but DO NOT REMOVE after the usual year! - // TODO(crbug.com/40268177): The pref kPasswordsUseUPMLocalAndSeparateStores - // and this call (to compute said pref) should be removed once - // kUnifiedPasswordManagerLocalPasswordsAndroidWithMigration is launched and - // enough clients have migrated. UsesSplitStoresAndUPMForLocal() should be - // updated to check the GmsCoreVersion directly instead of the pref, or - // might be removed entirely, depending how the outdated GmsCore case is - // handled. - password_manager_android_util::SetUsesSplitStoresAndUPMForLocal( + // 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_CHROMEOS) - // Added 05/2024. - profile_prefs->ClearPref(kAccessibilityMouseKeysShortcutToPauseEnabled); - profile_prefs->ClearPref(kAccessibilityMouseKeysDisableInTextFields); - profile_prefs->ClearPref(kAccessibilityScreenMagnifierCenterFocus); -#endif // BUILDFLAG(IS_CHROMEOS) - - // Added 05/2024. - profile_prefs->ClearPref(kBlockTruncatedCookies); - - // Added 05/2024 - profile_prefs->ClearPref(kDefaultSearchProviderChoiceLocationPrefName); - - // Added 05/2024. - profile_prefs->ClearPref(kSyncCachedTrustedVaultAutoUpgradeDebugInfo); - - // Added 05/2024. - profile_prefs->ClearPref(kAutologinEnabled); - profile_prefs->ClearPref(kReverseAutologinRejectedEmailList); - - // Added 06/2024. - profile_prefs->ClearPref(kTrackingProtectionOnboardingNoticeFirstRequested); - profile_prefs->ClearPref(kTrackingProtectionOnboardingNoticeLastRequested); - - // Added 06/2024. -#if !BUILDFLAG(IS_ANDROID) - profile_prefs->ClearPref( - kAccessibilityReadAnythingOmniboxIconLabelShownCount); - - // Added 06/2024. - profile_prefs->ClearPref(kAccessibilityPdfOcrAlwaysActive); -#endif - - // Added 06/2024. - profile_prefs->ClearPref(kTrackingProtectionOffboarded); - profile_prefs->ClearPref(kTrackingProtectionOffboardedSince); - profile_prefs->ClearPref(kTrackingProtectionOffboardingAckAction); - -#if BUILDFLAG(IS_CHROMEOS) - // Added 06/2024. - for (const char* pref : kHoldingSpaceWallpaperNudgeTimesOfFirstInteraction) { - profile_prefs->ClearPref(pref); - } - - // Added 06/2024. - profile_prefs->ClearPref(kHoldingSpaceWallpaperNudgeUserEligibleForNudge); - profile_prefs->ClearPref( - kHoldingSpaceWallpaperNudgeLastTimeNudgeShownCounterfactual); - profile_prefs->ClearPref(kHoldingSpaceWallpaperNudgeLastTimeNudgeShown); - profile_prefs->ClearPref( - kHoldingSpaceWallpaperNudgeUserFirstEligibleSessionTime); - profile_prefs->ClearPref( - kHoldingSpaceWallpaperNudgeNudgeShownCountCounterfactual); - profile_prefs->ClearPref(kHoldingSpaceWallpaperNudgeNudgeShownCount); - - // Added 06/2024. - profile_prefs->ClearPref(kBirchUseRecentTabs); - profile_prefs->ClearPref(kBirchUseLastActive); - profile_prefs->ClearPref(kBirchUseMostVisited); - profile_prefs->ClearPref(kBirchUseSelfShare); -#endif // BUILDFLAG(IS_CHROMEOS) - -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - // Added 06/2024. - syncer::SyncPrefs::MaybeMigrateAutofillToPerAccountPref(profile_prefs); -#endif // BUILDFLAG(ENABLE_DICE_SUPPORT) - -#if BUILDFLAG(IS_ANDROID) - // Added 06/2024 - feed::prefs::MigrateObsoleteFeedExperimentPref_Jun_2024(profile_prefs); -#endif // BUILDFLAG(IS_ANDROID) - - // Added 06/2024. - profile_prefs->ClearPref(kDefaultSearchProviderChoicePending); - #if !BUILDFLAG(IS_ANDROID) // Added 07/2024. profile_prefs->ClearPref(kNtpRecipesDismissedTasks); @@ -2991,6 +2810,63 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, // Added 06/2025. profile_prefs->ClearPref(kStorageGarbageCollect); profile_prefs->ClearPref(kGaiaCookiePeriodicReportTimeDeprecated); + profile_prefs->ClearPref(kWebAuthnCablePairingsPrefName); + profile_prefs->ClearPref(kLastUsedPairingFromSyncPublicKey); + profile_prefs->ClearPref(kSyncedDefaultSearchProviderGUID); + +#if BUILDFLAG(IS_ANDROID) + // Deprecated 07/2025. + profile_prefs->ClearPref( + kObsoletePasswordAccessLossWarningShownAtStartupTimestamp); + profile_prefs->ClearPref(kObsoletePasswordAccessLossWarningShownTimestamp); + profile_prefs->ClearPref(kObsoleteTimeOfLastMigrationAttempt); + profile_prefs->ClearPref(kObsoleteSettingsMigratedToUPMLocal); + profile_prefs->ClearPref( + kObsoleteShouldShowPostPasswordMigrationSheetAtStartup); + profile_prefs->ClearPref( + kObsoleteUnenrolledFromGoogleMobileServicesDueToErrors); + profile_prefs->ClearPref( + kObsoleteCurrentMigrationVersionToGoogleMobileServices); +#endif // BUILDFLAG(IS_ANDROID) + + // Added 07/2025. + profile_prefs->ClearPref(kFirstSyncCompletedInFullSyncMode); + profile_prefs->ClearPref(kGoogleServicesSecondLastSyncingGaiaId); + +#if BUILDFLAG(IS_CHROMEOS) + // Added 07/2025. + profile_prefs->ClearPref(kAssistantNumSessionsWhereOnboardingShown); + profile_prefs->ClearPref(kAssistantTimeOfLastInteraction); + + // Added 07/2025. + profile_prefs->ClearPref(kAssistantConsentStatus); + profile_prefs->ClearPref(kAssistantContextEnabled); + profile_prefs->ClearPref(kAssistantDisabledByPolicy); + profile_prefs->ClearPref(kAssistantEnabled); + profile_prefs->ClearPref(kAssistantHotwordAlwaysOn); + profile_prefs->ClearPref(kAssistantHotwordEnabled); + profile_prefs->ClearPref(kAssistantLaunchWithMicOpen); + profile_prefs->ClearPref(kAssistantNotificationEnabled); + profile_prefs->ClearPref(kAssistantVoiceMatchEnabledDuringOobe); + profile_prefs->ClearPref(kAssistantOnboardingMode); + profile_prefs->ClearPref(kAssistantNumFailuresSinceLastServiceRun); +#endif + + // Added 07/2025 + profile_prefs->ClearPref(kOptGuideModelFetcherLastFetchAttempt); + profile_prefs->ClearPref(kOptGuideModelFetcherLastFetchSuccess); + +#if BUILDFLAG(IS_CHROMEOS) + // Added 07/2025. + profile_prefs->ClearPref(kTimeOfFirstFilesAppChipPress); +#endif // BUILDFLAG(IS_CHROMEOS) + + profile_prefs->ClearPref(kSyncPromoIdentityPillShownCount); + profile_prefs->ClearPref(kSyncPromoIdentityPillUsedCount); + + // Added 08/2025. + profile_prefs->ClearPref(kInvalidationClientIDCache); + profile_prefs->ClearPref(kInvalidationTopicsToHandler); // 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 b1cd6837..e9f46281 100755 --- a/tools/under-control/src/chrome/browser/ui/tab_helpers.cc +++ b/tools/under-control/src/chrome/browser/ui/tab_helpers.cc @@ -148,11 +148,11 @@ #include "components/webapps/browser/installable/installable_manager.h" #include "components/webapps/browser/installable/ml_installability_promoter.h" #include "content/public/browser/web_contents.h" +#include "content/public/common/buildflags.h" #include "extensions/buildflags/buildflags.h" #include "media/base/media_switches.h" #include "net/base/features.h" #include "pdf/buildflags.h" -#include "ppapi/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" #include "third_party/blink/public/common/features.h" @@ -238,6 +238,7 @@ #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" +#include "chrome/browser/web_applications/isolated_web_apps/window_management/window_management_content_setting_observer.h" #include "chrome/browser/web_applications/policy/pre_redirection_url_observer.h" #include "chrome/browser/web_applications/web_app_utils.h" #include "extensions/common/extension_features.h" @@ -257,7 +258,6 @@ #if BUILDFLAG(ENABLE_PLUGINS) #include "chrome/browser/plugins/plugin_observer.h" -#include "chrome/browser/ui/hung_plugin_tab_helper.h" #endif #if BUILDFLAG(ENABLE_PRINTING) @@ -753,6 +753,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { 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) @@ -767,7 +769,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { #endif #if BUILDFLAG(ENABLE_PLUGINS) - HungPluginTabHelper::CreateForWebContents(web_contents); PluginObserver::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 02e815d9..820cec06 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 @@ -60,7 +60,6 @@ namespace autofillPrivate { CREDIT_CARD_TYPE, CREDIT_CARD_VERIFICATION_CODE, COMPANY_NAME, - FIELD_WITH_DEFAULT_VALUE, MERCHANT_EMAIL_SIGNUP, MERCHANT_PROMO_CODE, PASSWORD, @@ -146,6 +145,15 @@ namespace autofillPrivate { VEHICLE_YEAR, VEHICLE_PLATE_STATE, EMAIL_OR_LOYALTY_MEMBERSHIP_ID, + NATIONAL_ID_CARD_NUMBER, + NATIONAL_ID_CARD_EXPIRATION_DATE, + NATIONAL_ID_CARD_ISSUE_DATE, + NATIONAL_ID_CARD_ISSUING_COUNTRY, + KNOWN_TRAVELER_NUMBER, + KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE, + REDRESS_NUMBER, + ADDRESS_HOME_ZIP_PREFIX, + ADDRESS_HOME_ZIP_SUFFIX, MAX_VALID_FIELD_TYPE }; @@ -158,7 +166,9 @@ namespace autofillPrivate { // to user's account. ACCOUNT, ACCOUNT_HOME, - ACCOUNT_WORK + ACCOUNT_WORK, + // The address is stored locally. Not synced at all. + ACCOUNT_NAME_EMAIL }; // The type of data that can be stored for an attribute 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 117b99ec..dfd57ec2 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 @@ -1098,48 +1098,6 @@ namespace autotestPrivate { // |callback|: Called when the operation has completed. static void loadSmartDimComponent(VoidCallback callback); - // Enables/disables the Google Assistant. - // |callback|: Called when the operation has completed. - static void setAssistantEnabled( - boolean enabled, - long timeout_ms, - VoidCallback callback); - - // Bring up the Assistant service, and wait for the ready signal. - // |callback|: Called when the operation has completed. - static void enableAssistantAndWaitForReady( - VoidCallback callback); - - // Sends a text query via Google Assistant. - // |callback|: Called when response has been received. - static void sendAssistantTextQuery( - DOMString query, - long timeout_ms, - AssistantQueryStatusCallback callback); - - // Invokes |callback| once the current text/voice interaction is completed. - // Responds with the the query status if any valid response was caught - // before the timeout. This API should be called before sending the query. - // To use it for testing a voice query via OKG in Autotest, for example, - // you can do: - // - // // Enable hotword setting for Assistant. - // assistant_util.enable_hotword(); - // - // // Call this API with your callback function. - // chrome.autotestPrivate.waitForAssistantQueryStatus(timeout_s, - // function(status) {...}); - // - // then start Assistant via OKG and send voice query before timeout. - // - // TODO(meilinw@): disable warmer welcome to avoid an unintended early - // return of this API when launching Assistant via hotkey. - // TODO(meilinw@): update the comment above to use Tast instead after - // adding API to enable hotword in Tast. - static void waitForAssistantQueryStatus( - long timeout_s, - AssistantQueryStatusCallback callback); - // Whether the local list of installed ARC packages has been refreshed for // the first time after user login. static void isArcPackageListInitialRefreshed( diff --git a/tools/under-control/src/chrome/common/extensions/api/enterprise_login.idl b/tools/under-control/src/chrome/common/extensions/api/enterprise_login.idl index 1cc6936c..5d4a40b5 100755 --- a/tools/under-control/src/chrome/common/extensions/api/enterprise_login.idl +++ b/tools/under-control/src/chrome/common/extensions/api/enterprise_login.idl @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Use the chrome.enterprise.login API to exit user sessions. -// Note: This API is only available to extensions installed by enterprise -// policy in ChromeOS managed sessions. +// Use the chrome.enterprise.login API to exit Managed Guest +// sessions. Note: This API is only available to extensions installed by +// enterprise policy in ChromeOS Managed Guest sessions. [platforms = ("chromeos"), implemented_in = "chrome/browser/extensions/api/enterprise_login/enterprise_login_api.h"] namespace enterprise.login { 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 629ea273..7f836ea1 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 @@ -7,6 +7,7 @@ namespace experimentalActor { callback DataCallback = void(ArrayBuffer data); callback ClosureCallback = void(); + callback TaskIdCallback = void(long taskId); interface Functions { // Creates and starts a new task. By default, opens a new tab to @@ -16,17 +17,33 @@ namespace experimentalActor { // startTaskProto: encoded optimization_guide.proto.BrowserStartTask // startTaskcallback: // encoded optimization_guide.proto.BrowserStartTaskResult - static void startTask(ArrayBuffer startTaskProto, - DataCallback startTaskcallback); + [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 - static void executeAction(ArrayBuffer browserActionProto, - DataCallback executeActioncallback); + [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. static void stopTask(long taskId, ClosureCallback stopTaskcallback); + + // Creates a new task. The callback will contain the task ID for the newly + // created task. + static void createTask(TaskIdCallback callback); + + // Executes one or more actions according to request. + // actionsProto: encoded optimization_guide.proto.Actions + // callback: encoded optimization_guide.proto.ActionsResult + static void performActions(ArrayBuffer actionsProto, DataCallback callback); + + // Requests a TabObservation for a given tab. + // tabId: The session tabId to observe. + // callback: encoded optimization_guide.proto.TabObservation + static void requestTabObservation(long tabId, DataCallback callback); }; }; 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 4b92daae..c8c56f65 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 @@ -225,6 +225,17 @@ namespace passwordsPrivate { DOMString signonRealm; }; + // Entry that carries the value and the creation timestamp of a recovery + // password. + dictionary BackupPasswordInfo { + // The value of the backup password. + DOMString value; + + // Internationalized date on which the backup password was created. + // e.g. Mar 17. + DOMString creationDate; + }; + // Entry used to display a password in the settings UI. dictionary PasswordUiEntry { // The URL collection corresponding to this saved password entry. @@ -241,7 +252,7 @@ namespace passwordsPrivate { DOMString? password; // Recovery password for the password change flow. - DOMString? backupPassword; + BackupPasswordInfo? backupPassword; // Text shown if the password was obtained via a federated identity. DOMString? federationText; @@ -357,6 +368,7 @@ namespace passwordsPrivate { callback ExportProgressStatusCallback = void(ExportProgressStatus status); callback VoidCallback = void(); callback IsAccountStorageEnabledCallback = void(boolean enabled); + callback ShouldShowAccountStorageSettingToggleCallback = void(boolean show); callback PasswordCheckStatusCallback = void(PasswordCheckStatus status); callback ImportPasswordsCallback = void(ImportResults results); callback FetchFamilyResultsCallback = void(FamilyFetchResults results); @@ -498,6 +510,11 @@ namespace passwordsPrivate { // Triggers the enabling / disabling flow for the account storage. static void setAccountStorageEnabled(boolean enabled); + // Requests whether the account-storage settings toggle should be + // shown. + static void shouldShowAccountStorageSettingToggle( + ShouldShowAccountStorageSettingToggleCallback callback); + // Requests the latest insecure credentials. static void getInsecureCredentials( PasswordListCallback callback); @@ -603,6 +620,11 @@ namespace passwordsPrivate { // |enabled|: The new enabled state. static void onAccountStorageEnabledStateChanged(boolean enabled); + // Fired when the visibility of the account storage toggle in Settings + // should change. + // |show|: The new visibilty state. + static void onShouldShowAccountStorageSettingToggleChanged(boolean show); + // Fired when the insecure credentials changed. // |insecureCredentials|: The updated insecure credentials. static void onInsecureCredentialsChanged( 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 0de5d9f6..798e9e09 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 @@ -6,6 +6,63 @@ // functionality that the PDF Viewer needs from outside the PDF plugin. This API // is exclusively for the PDF Viewer. namespace pdfViewerPrivate { + // Must match `SaveRequestType` in `pdf/mojom/pdf.mojom` and + // `tools/typescript/definitions/pdf_viewer_private.d.ts`. + enum SaveRequestType { + ANNOTATION, + ORIGINAL, + EDITED, + SEARCHIFIED + }; + + // Enumeration of save to drive error types. Must match `SaveToDriveErrorType` + // in tools/typescript/definitions/pdf_viewer_private.d.ts. + enum SaveToDriveErrorType { + NO_ERROR, + UNKNOWN_ERROR, + QUOTA_EXCEEDED, + OFFLINE, + OAUTH_ERROR, + ACCOUNT_CHOOSER_CANCELED, + PARENT_FOLDER_SELECTION_FAILED + }; + + // Enumeration of save to drive status. Must match `SaveToDriveStatus` in + // tools/typescript/definitions/pdf_viewer_private.d.ts. + enum SaveToDriveStatus { + NOT_STARTED, + INITIATED, + ACCOUNT_CHOOSER_SHOWN, + ACCOUNT_SELECTED, + ACCOUNT_ADD_SELECTED, + ACCOUNT_ADDED, + FETCH_OAUTH, + FETCH_PARENT_FOLDER, + UPLOAD_STARTED, + UPLOAD_IN_PROGRESS, + UPLOAD_COMPLETED, + UPLOAD_RETRIED, + UPLOAD_FAILED + }; + + // Progress of a save to drive request. + dictionary SaveToDriveProgress { + // The status of the upload. + SaveToDriveStatus status; + + // The error type of the upload. + SaveToDriveErrorType errorType; + + // The ID of the drive item that was uploaded. + DOMString? driveItemId; + + // The total size of the file in bytes. + long? fileSizeBytes; + + // The number of bytes that have been uploaded. + long? uploadedBytes; + }; + // Nearly identical to mimeHandlerPrivate.StreamInfo, but without a mime type // nor a response header field. Those fields are unused by the PDF viewer. dictionary StreamInfo { @@ -52,6 +109,11 @@ namespace pdfViewerPrivate { DOMString url, IsAllowedLocalFileAccessCallback callback); + // Sends a request to save the PDF to Google Drive. + static void saveToDrive( + SaveRequestType saveRequestType, + optional VoidCallback callback); + // Sets the current tab title to `title` for a full-page PDF. static void setPdfDocumentTitle( DOMString title, @@ -69,6 +131,13 @@ namespace pdfViewerPrivate { // `streamUrl`: Unique ID for the instance that should perform the save. static void onSave(DOMString streamUrl); + // Fired when the browser wants the listener to update the save to drive + // progress. + // `streamUrl`: Unique ID for the instance that should perform the save. + // `progress`: The progress of the save to drive. + static void onSaveToDriveProgress(DOMString streamUrl, + SaveToDriveProgress progress); + // Fired when the browser wants the listener to update the viewport based on // a different PDF URL. // `pdfUrl`: The string of the PDF URL that should update the viewport. diff --git a/tools/under-control/src/chrome/common/extensions/api/processes.idl b/tools/under-control/src/chrome/common/extensions/api/processes.idl index 866a98f5..6a39a9be 100755 --- a/tools/under-control/src/chrome/common/extensions/api/processes.idl +++ b/tools/under-control/src/chrome/common/extensions/api/processes.idl @@ -11,9 +11,9 @@ namespace processes { renderer, extension, notification, - plugin, + plugin, // Obsolete, will never be returned. worker, - nacl, + nacl, // Obsolete, will never be returned. service_worker, utility, gpu, 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 a36f8301..2631e105 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 @@ -14,6 +14,17 @@ namespace sidePanel { SidePanel side_panel; }; + // Defines the possible alignment for the side panel in the browser UI. + enum Side { + left, + right + }; + + // Represents the layout of the side panel, indicating which side it is shown. + dictionary PanelLayout { + Side side; + }; + // The options used when setting a side panel. Omitted properties are // unchanged. dictionary PanelOptions { @@ -69,6 +80,7 @@ namespace sidePanel { callback VoidCallback = void(); callback PanelOptionsCallback = void(PanelOptions options); callback PanelBehaviorCallback = void(PanelBehavior behavior); + callback PanelLayoutCallback = void(PanelLayout layout); interface Functions { // Configures the side panel. @@ -105,5 +117,9 @@ namespace sidePanel { static void open( OpenOptions options, VoidCallback callback); + + // Returns the side panel's current layout. + // |callback|: Called with a $(ref:PanelLayout) containing the side value. + static void getLayout(PanelLayoutCallback callback); }; }; 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 fe8055b5..e6978319 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 @@ -37,8 +37,6 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/crash_keys.h" -#include "chrome/common/pepper_permission_util.h" -#include "chrome/common/ppapi_utils.h" #include "chrome/common/profiler/chrome_thread_group_profiler_client.h" #include "chrome/common/profiler/chrome_thread_profiler_client.h" #include "chrome/common/profiler/core_unwinders.h" @@ -120,6 +118,7 @@ #include "components/subresource_filter/content/renderer/subresource_filter_agent.h" #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h" #include "components/subresource_filter/core/common/common_features.h" +#include "components/subresource_filter/core/common/memory_mapped_ruleset.h" #include "components/variations/net/variations_http_headers.h" #include "components/variations/variations_switches.h" #include "components/version_info/version_info.h" @@ -137,14 +136,12 @@ #include "content/public/renderer/render_frame_visitor.h" #include "extensions/buildflags/buildflags.h" #include "extensions/renderer/extensions_renderer_api_provider.h" -#include "ipc/ipc_sync_channel.h" #include "media/base/media_switches.h" #include "media/media_buildflags.h" #include "mojo/public/cpp/bindings/generic_pending_receiver.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/net_errors.h" #include "pdf/buildflags.h" -#include "ppapi/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "services/network/public/cpp/is_potentially_trustworthy.h" #include "services/service_manager/public/cpp/interface_provider.h" @@ -203,11 +200,6 @@ #include "chrome/renderer/render_frame_font_family_accessor.h" #endif -#if BUILDFLAG(ENABLE_NACL) -#include "components/nacl/common/nacl_constants.h" -#include "components/nacl/renderer/nacl_helper.h" -#endif - #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) #include "chrome/common/initialize_extensions_client.h" #include "chrome/renderer/extensions/api/chrome_extensions_renderer_api_provider.h" @@ -237,11 +229,6 @@ #include "chrome/renderer/plugins/chrome_plugin_placeholder.h" #endif // BUILDFLAG(ENABLE_PLUGINS) -#if BUILDFLAG(ENABLE_PPAPI) -#include "chrome/renderer/pepper/pepper_helper.h" -#include "ppapi/shared_impl/ppapi_switches.h" // nogncheck crbug.com/1125897 -#endif - #if BUILDFLAG(ENABLE_PRINTING) #include "chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h" #include "components/printing/renderer/print_render_frame_helper.h" // nogncheck @@ -300,13 +287,6 @@ using UsesKeyboardAccessoryForSuggestions = namespace { -// Allow PPAPI for Android Runtime for Chromium. (See crbug.com/383937) -#if BUILDFLAG(ENABLE_PLUGINS) -const char* const kPredefinedAllowedCameraDeviceOrigins[] = { - "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", - "4EB74897CB187C7633357C2FE832E0AD6A44883A"}; -#endif - #if BUILDFLAG(ENABLE_PDF) std::vector GetAdditionalPdfInternalPluginAllowedOrigins() { return {url::Origin::Create(GURL(chrome::kChromeUIPrintURL))}; @@ -354,17 +334,6 @@ std::unique_ptr CreateV8Unwinder(v8::Isolate* isolate) { return std::make_unique(isolate); } -#if BUILDFLAG(ENABLE_NACL) && BUILDFLAG(ENABLE_EXTENSIONS) && \ - BUILDFLAG(IS_CHROMEOS) -bool IsTerminalSystemWebAppNaClPage(GURL url) { - GURL::Replacements replacements; - replacements.ClearQuery(); - replacements.ClearRef(); - url = url.ReplaceComponents(replacements); - return url == "chrome-untrusted://terminal/html/terminal_ssh.html"; -} -#endif - } // namespace ChromeContentRendererClient::ChromeContentRendererClient() @@ -388,10 +357,6 @@ ChromeContentRendererClient::ChromeContentRendererClient() EnsureExtensionsClientInitialized(); ChromeExtensionsRendererClient::Create(); #endif -#if BUILDFLAG(ENABLE_PLUGINS) - for (const char* origin : kPredefinedAllowedCameraDeviceOrigins) - allowed_camera_device_origins_.insert(origin); -#endif } ChromeContentRendererClient::~ChromeContentRendererClient() = default; @@ -446,6 +411,8 @@ void ChromeContentRendererClient::RenderThreadStarted() { extensions_renderer_client->RenderThreadStarted(); WebSecurityPolicy::RegisterURLSchemeAsExtension( WebString::FromASCII(extensions::kExtensionScheme)); + WebSecurityPolicy::RegisterURLSchemeAsIsolatedApp( + WebString::FromASCII(chrome::kIsolatedAppScheme)); WebSecurityPolicy::RegisterURLSchemeAsCodeCacheWithHashing( WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -621,14 +588,6 @@ void ChromeContentRendererClient::RenderFrameCreated( registry); #endif -#if BUILDFLAG(ENABLE_PPAPI) - new PepperHelper(render_frame); -#endif - -#if BUILDFLAG(ENABLE_NACL) - new nacl::NaClHelper(render_frame); -#endif - #if BUILDFLAG(SAFE_BROWSING_DB_LOCAL) || BUILDFLAG(SAFE_BROWSING_DB_REMOTE) safe_browsing::ThreatDOMDetails::Create(render_frame, registry); #endif @@ -738,8 +697,7 @@ void ChromeContentRendererClient::RenderFrameCreated( if (content_based_fingerprinting_protection_enabled_ && fingerprinting_protection_ruleset_dealer_) { auto* fingerprinting_protection_renderer_agent = - new fingerprinting_protection_filter::RendererAgent( - render_frame, fingerprinting_protection_ruleset_dealer_.get()); + new fingerprinting_protection_filter::RendererAgent(render_frame); fingerprinting_protection_renderer_agent->Initialize(); } @@ -1034,83 +992,6 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( } case chrome::mojom::PluginStatus::kAllowed: case chrome::mojom::PluginStatus::kPlayImportantContent: { -#if BUILDFLAG(ENABLE_NACL) && BUILDFLAG(ENABLE_EXTENSIONS) - WebLocalFrame* frame = render_frame->GetWebFrame(); - const bool is_nacl_plugin = - info.name == ASCIIToUTF16(nacl::kNaClPluginName); - const bool is_nacl_mime_type = - actual_mime_type == nacl::kNaClPluginMimeType; - const bool is_pnacl_mime_type = - actual_mime_type == nacl::kPnaclPluginMimeType; - if (is_nacl_plugin || is_nacl_mime_type || is_pnacl_mime_type) { - bool has_enable_nacl_switch = - base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableNaCl); - bool is_nacl_unrestricted = - has_enable_nacl_switch || is_pnacl_mime_type; - GURL manifest_url; - GURL app_url; - if (is_nacl_mime_type || is_pnacl_mime_type) { - // Normal NaCl/PNaCl embed. The app URL is the page URL. - manifest_url = url; - app_url = frame->GetDocument().Url(); - } else { - // NaCl is being invoked as a content handler. Look up the NaCl - // module using the MIME type. The app URL is the manifest URL. - manifest_url = GetNaClContentHandlerURL(actual_mime_type, info); - app_url = manifest_url; - } - bool is_module_allowed = false; - const extensions::Extension* extension = - extensions::RendererExtensionRegistry::Get() - ->GetExtensionOrAppByURL(manifest_url); - if (IsNaclAllowed()) { - if (extension) { - is_module_allowed = - IsNativeNaClAllowed(app_url, is_nacl_unrestricted, extension); -#if BUILDFLAG(IS_CHROMEOS) - // Allow Terminal System App to load the SSH extension NaCl - // module. - } else if (IsTerminalSystemWebAppNaClPage(app_url)) { - is_module_allowed = true; -#endif - } else { - WebDocument document = frame->GetDocument(); - is_module_allowed = - has_enable_nacl_switch || - (is_pnacl_mime_type && - blink::WebOriginTrials::IsPNaClEnabled(&document)); - } - } - if (!is_module_allowed) { - WebString error_message; - if (!IsNaclAllowed()) { - error_message = "NaCl is disabled."; - } else if (is_nacl_mime_type) { - error_message = - "Only unpacked extensions and apps installed from the Chrome " - "Web Store can load NaCl modules without enabling Native " - "Client in about:flags."; - } else if (is_pnacl_mime_type) { - error_message = - "PNaCl modules can only be used on the open web (non-app/" - "extension) when the PNaCl Origin Trial is enabled"; - } - frame->AddMessageToConsole(WebConsoleMessage( - blink::mojom::ConsoleMessageLevel::kError, error_message)); - placeholder = create_blocked_plugin( - IDR_BLOCKED_PLUGIN_HTML, -#if BUILDFLAG(IS_CHROMEOS) - l10n_util::GetStringUTF16(IDS_NACL_PLUGIN_BLOCKED)); -#else - l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); -#endif - break; - } - ReportNaClAppType(is_pnacl_mime_type, extension); - } -#endif // BUILDFLAG(ENABLE_NACL) && BUILDFLAG(ENABLE_EXTENSIONS) - if (info.path.value() == ChromeContentClient::kPDFExtensionPluginPath) { // Report PDF load metrics. Since the PDF plugin is comprised of an // extension that loads a second plugin, avoid double counting by @@ -1150,7 +1031,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( } #endif // BUILDFLAG(ENABLE_PDF) - return render_frame->CreatePlugin(info, params); + return nullptr; } case chrome::mojom::PluginStatus::kDisabled: { if (info.path.value() == ChromeContentClient::kPDFExtensionPluginPath) { @@ -1205,25 +1086,6 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( } #endif // BUILDFLAG(ENABLE_PLUGINS) -// For NaCl content handling plugins, the NaCl manifest is stored in an -// additonal 'nacl' param associated with the MIME type. -// static -GURL ChromeContentRendererClient::GetNaClContentHandlerURL( - const std::string& actual_mime_type, - const content::WebPluginInfo& plugin) { - // Look for the manifest URL among the MIME type's additonal parameters. - for (const auto& mime_type : plugin.mime_types) { - if (mime_type.mime_type == actual_mime_type) { - for (const auto& p : mime_type.additional_params) { - if (p.name == u"nacl") - return GURL(p.value); - } - break; - } - } - return GURL(); -} - void ChromeContentRendererClient::GetInterface( const std::string& interface_name, mojo::ScopedMessagePipeHandle interface_pipe) { @@ -1236,117 +1098,6 @@ void ChromeContentRendererClient::GetInterface( mojo::GenericPendingReceiver(interface_name, std::move(interface_pipe))); } -#if BUILDFLAG(ENABLE_NACL) -// static -bool ChromeContentRendererClient::IsNativeNaClAllowed( - const GURL& app_url, - bool is_nacl_unrestricted, - const extensions::Extension* extension) { - bool is_invoked_by_webstore_installed_extension = false; - bool is_extension_unrestricted = false; - bool is_extension_force_installed = false; -#if BUILDFLAG(ENABLE_EXTENSIONS) - bool is_extension_from_webstore = extension && extension->from_webstore(); - - bool is_invoked_by_extension = app_url.SchemeIs(extensions::kExtensionScheme); - bool is_invoked_by_hosted_app = extension && extension->is_hosted_app() && - extension->web_extent().MatchesURL(app_url); - - is_invoked_by_webstore_installed_extension = - is_extension_from_webstore && - (is_invoked_by_extension || is_invoked_by_hosted_app); - - // Allow built-in extensions and developer mode extensions. - is_extension_unrestricted = - extension && - (extensions::Manifest::IsUnpackedLocation(extension->location()) || - extensions::Manifest::IsComponentLocation(extension->location())); - // Allow extensions force installed by admin policy. - is_extension_force_installed = - extension && - extensions::Manifest::IsPolicyLocation(extension->location()); -#endif // BUILDFLAG(ENABLE_EXTENSIONS) - - // Allow NaCl under any of the following circumstances: - // 1) An extension is loaded unpacked or built-in (component) to Chrome. - // 2) An extension is force installed by policy. - // 3) An extension is installed from the webstore, and invoked in that - // context (hosted app URL or chrome-extension:// scheme). - // 4) --enable-nacl is set. - bool is_nacl_allowed_by_location = is_extension_unrestricted || - is_extension_force_installed || - is_invoked_by_webstore_installed_extension; - bool is_nacl_allowed = is_nacl_allowed_by_location || is_nacl_unrestricted; - return is_nacl_allowed; -} - -// static -void ChromeContentRendererClient::ReportNaClAppType( - bool is_pnacl, - const extensions::Extension* extension) { - // These values are persisted to logs. Entries should not be renumbered and - // numeric values should never be reused. - enum class NaClAppType { - kPNaClOpenWeb = 0, - kPNaClHostedApp = 1, - kPNaClPlatformApp = 2, - kPNaClLegacyPackagedApp = 3, - kPNaClMv2Extension = 4, - kPNaClMv3Extension = 5, - kPNaClLoginScreenMv2Extension = 6, - kPNaClLoginScreenMv3Extension = 7, - kNaClOpenWeb = 8, - kNaClHostedApp = 9, - kNaClPlatformApp = 10, - kNaClLegacyPackagedApp = 11, - kNaClMv2Extension = 12, - kNaClMv3Extension = 13, - kNaClLoginScreenMv2Extension = 14, - kNaClLoginScreenMv3Extension = 15, - kMaxValue = kNaClLoginScreenMv3Extension - }; - - // Not all combinations are allowed by default (e.g. kNaClOpenWeb), but they - // can be used with the --enable-nacl flag. - NaClAppType app_type = - is_pnacl ? NaClAppType::kPNaClOpenWeb : NaClAppType::kNaClOpenWeb; - if (extension) { - if (extension->is_extension()) { - if (extension->manifest_version() >= 3) { - app_type = is_pnacl ? NaClAppType::kPNaClMv3Extension - : NaClAppType::kNaClMv3Extension; - } else { - app_type = is_pnacl ? NaClAppType::kPNaClMv2Extension - : NaClAppType::kNaClMv2Extension; - } - } else if (extension->is_hosted_app()) { - app_type = - is_pnacl ? NaClAppType::kPNaClHostedApp : NaClAppType::kNaClHostedApp; - } else if (extension->is_legacy_packaged_app()) { - app_type = is_pnacl ? NaClAppType::kPNaClLegacyPackagedApp - : NaClAppType::kNaClLegacyPackagedApp; - } else if (extension->is_platform_app()) { - app_type = is_pnacl ? NaClAppType::kPNaClPlatformApp - : NaClAppType::kNaClPlatformApp; - } else if (extension->is_login_screen_extension()) { - if (extension->manifest_version() >= 3) { - app_type = is_pnacl ? NaClAppType::kPNaClLoginScreenMv3Extension - : NaClAppType::kNaClLoginScreenMv3Extension; - } else { - app_type = is_pnacl ? NaClAppType::kPNaClLoginScreenMv2Extension - : NaClAppType::kNaClLoginScreenMv2Extension; - } - } else { - // We found an extension that is not covered by any metric - NOTREACHED() << "Invalid NaCl usage in extension. Extension name: " - << extension->name() << ", type: " << extension->GetType(); - } - } - - base::UmaHistogramEnumeration("NaCl.EmbedderType", app_type); -} -#endif // BUILDFLAG(ENABLE_NACL) - void ChromeContentRendererClient::PrepareErrorPage( content::RenderFrame* render_frame, const blink::WebURLError& web_error, @@ -1442,9 +1193,6 @@ bool ChromeContentRendererClient::ShouldNotifyServiceWorkerOnWebSocketActivity( blink::ProtocolHandlerSecurityLevel ChromeContentRendererClient::GetProtocolHandlerSecurityLevel( const url::Origin& origin) { - if (origin.scheme() == chrome::kIsolatedAppScheme) { - return blink::ProtocolHandlerSecurityLevel::kSameOrigin; - } #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) return extensions::ExtensionsRendererClient::Get() ->GetProtocolHandlerSecurityLevel(); @@ -1525,48 +1273,6 @@ ChromeContentRendererClient::CreatePrescientNetworking( render_frame); } -bool ChromeContentRendererClient::IsExternalPepperPlugin( - const std::string& module_name) { - // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. - // We must defer certain plugin events for NaCl instances since we switch - // from the in-process to the out-of-process proxy after instantiating them. - return module_name == "Native Client"; -} - -bool ChromeContentRendererClient::IsOriginIsolatedPepperPlugin( - const base::FilePath& plugin_path) { - // Hosting plugins in-process is inherently incompatible with attempting to - // process-isolate plugins from different origins. - auto* cmdline = base::CommandLine::ForCurrentProcess(); - if (cmdline->HasSwitch(switches::kPpapiInProcess)) { - // The kPpapiInProcess switch should only be used by tests. In particular, - // we expect that the PDF plugin should always be isolated in the product - // (and that the switch won't interfere with PDF isolation). - CHECK_NE(ChromeContentClient::kPDFInternalPluginPath, plugin_path.value()); - - return false; - } - -#if BUILDFLAG(ENABLE_NACL) - // Don't isolate the NaCl plugin (preserving legacy behavior). - if (plugin_path.value() == nacl::kInternalNaClPluginFileName) - return false; -#endif - - // Isolate all the other plugins (including the PDF plugin + test plugins). - return true; -} - -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) -bool ChromeContentRendererClient::IsExtensionOrSharedModuleAllowed( - const GURL& url, - const std::set& allowlist) { - const extensions::ExtensionSet* extension_set = - extensions::RendererExtensionRegistry::Get()->GetMainThreadExtensionSet(); - return ::IsExtensionOrSharedModuleAllowed(url, extension_set, allowlist); -} -#endif - #if BUILDFLAG(ENABLE_SPELLCHECK) void ChromeContentRendererClient::InitSpellCheck() { spellcheck_ = std::make_unique(this); @@ -1606,7 +1312,7 @@ ChromeContentRendererClient::CreateWebSocketHandshakeThrottleProvider() { bool ChromeContentRendererClient::ShouldUseCodeCacheWithHashing( const blink::WebURL& request_url) const { if (content::HasWebUIScheme(request_url)) { - return chrome::ShouldUseCodeCacheForWebUIUrl(GURL(request_url)); + return ShouldUseCodeCacheForWebUIUrl(GURL(request_url)); } return true; } @@ -1646,22 +1352,6 @@ ChromeContentRendererClient::CreateSpeechRecognitionClient( } #endif // BUILDFLAG(ENABLE_SPEECH_SERVICE) -bool ChromeContentRendererClient::IsPluginAllowedToUseCameraDeviceAPI( - const GURL& url) { -#if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) -#if BUILDFLAG(ENABLE_PPAPI) - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnablePepperTesting)) - return true; -#endif // BUILDFLAG(ENABLE_PPAPI) - - if (IsExtensionOrSharedModuleAllowed(url, allowed_camera_device_origins_)) - return true; -#endif - - return false; -} - void ChromeContentRendererClient::RunScriptsAtDocumentStart( content::RenderFrame* render_frame) { #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -1833,8 +1523,10 @@ blink::WebFrame* ChromeContentRendererClient::FindFrame( #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) } -bool ChromeContentRendererClient::IsSafeRedirectTarget(const GURL& upstream_url, - const GURL& target_url) { +bool ChromeContentRendererClient::IsSafeRedirectTarget( + const GURL& upstream_url, + const GURL& target_url, + const std::optional& request_initiator) { #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (target_url.SchemeIs(extensions::kExtensionScheme)) { const extensions::Extension* extension = @@ -1843,10 +1535,8 @@ bool ChromeContentRendererClient::IsSafeRedirectTarget(const GURL& upstream_url, if (!extension) { return false; } - // TODO(solomonkinard): Use initiator_origin and add tests. if (extensions::WebAccessibleResourcesInfo::IsResourceWebAccessibleRedirect( - extension, target_url, /*initiator_origin=*/std::nullopt, - upstream_url)) { + extension, target_url, request_initiator, upstream_url)) { return true; } return extension->guid() == upstream_url.host(); @@ -1901,6 +1591,17 @@ bool ChromeContentRendererClient:: return content_based_fingerprinting_protection_enabled_; } +scoped_refptr +ChromeContentRendererClient::GetFingerprintingProtectionRuleset() { + if (fingerprinting_protection_ruleset_dealer_) { + // Returns nullptr if no ruleset file is available. + fingerprinting_protection_ruleset_ = + fingerprinting_protection_ruleset_dealer_->GetRuleset(); + return fingerprinting_protection_ruleset_; + } + return nullptr; +} + std::unique_ptr ChromeContentRendererClient::CreateLinkPreviewTriggerer() { return ::CreateWebLinkPreviewTriggerer(); 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 c108fbae..5a3a5e86 100755 --- a/tools/under-control/src/components/policy/resources/templates/policies.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policies.yaml @@ -1260,7 +1260,7 @@ policies: 1259: ExtensibleEnterpriseSSOBlocklist 1260: CSSCustomStateDeprecatedSyntaxEnabled 1261: MemorySaverModeSavings - 1262: KioskVisionTelemetryEnabled + 1262: '' 1263: GenAIWallpaperSettings 1264: GenAIVcBackgroundSettings 1265: DynamicCodeSettings @@ -1313,7 +1313,7 @@ policies: 1312: NTPSharepointCardVisible 1313: SharedWorkerBlobURLFixEnabled 1314: DeviceNativeClientForceAllowed - 1315: GenAiLensOverlaySettings + 1315: '' 1316: PasswordManagerPasskeysEnabled 1317: FilePickerChooseFromDriveSettings 1318: LiveTranslateEnabled @@ -1371,7 +1371,21 @@ policies: 1370: EnableUnsafeSwiftShader 1371: LocalNetworkAccessAllowedForUrls 1372: LocalNetworkAccessBlockedForUrls - + 1373: DeviceBluetoothJustWorksPairingEnabled + 1374: LiveCaptionEnabled + 1375: DeviceUserInitiatedFlexSystemFirmwareUpdatesEnabled + 1376: AutomatedPasswordChangeSettings + 1377: DefaultDeviceAttributesSetting + 1378: DeviceAttributesBlockedForOrigins + 1379: FloatingSsoSessionCookiesIncluded + 1380: ServiceWorkerAutoPreloadEnabled + 1381: ProtectedContentIdentifiersAllowed + 1382: LegacyCookieScopeEnabled + 1383: LegacyCookieScopeEnabledForDomainList + 1384: WebRtcPostQuantumKeyAgreement + 1385: DeviceLoginScreenSecurityKeyPermitAttestation + 1386: RestrictCoreSharingOnRenderer + 1387: OriginKeyedProcessesEnabled atomic_groups: 1: Homepage 2: RemoteAccess @@ -1431,3 +1445,6 @@ atomic_groups: 56: WebRtc 57: ControlledFrameSettings 58: LocalNetworkAccessSettings + 59: DeviceAttributesSettings + 60: ProtectedContent + 61: LegacyCookieScopeSettings diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveCaptionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveCaptionEnabled.yaml new file mode 100755 index 00000000..ded06db0 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveCaptionEnabled.yaml @@ -0,0 +1,33 @@ +caption: Enable Live Caption +default: null +desc: |- + Enable the Live Caption feature. + + If this policy is set to Enabled, Live Caption will always be turned on. + + If this policy is set to Disabled, Live Caption will always be turned off. + + If you set this policy as mandatory, users cannot change or override it. + + If this policy is left unset, Live Caption is disabled initially but can be enabled by the user anytime. +example_value: true +features: + can_be_recommended: true + dynamic_refresh: true + per_profile: true +items: +- caption: Enable Live Caption + value: true +- caption: Disable Live Caption + value: false +- caption: Allow the user to decide + value: null +owners: +- evliu@google.com +- chrome-media-ux@google.com +schema: + type: boolean +supported_on: +- chrome.*:140- +tags: [] +type: main \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml index 4079a908..2dbcefdb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Accessibility/LiveTranslateEnabled.yaml @@ -10,6 +10,8 @@ desc: |- If you set this policy as mandatory, users cannot change or override it. If this policy is left unset, Live Translate is disabled initially but can be enabled by the user anytime. + + In LiveCaptionEnabled is set to Disabled, Live Translate will be disabled regardless of this policy setting. example_value: true features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml index 55c7f00a..5e271ca4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcAppToWebAppSharingEnabled.yaml @@ -15,7 +15,7 @@ items: value: false owners: - ovn@google.com -- cros-web-apps-team@google.com +- lt-web-apps-team@google.com schema: type: boolean supported_on: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcGoogleLocationServicesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcGoogleLocationServicesEnabled.yaml index 051c3dc6..3d952ff4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcGoogleLocationServicesEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcGoogleLocationServicesEnabled.yaml @@ -1,4 +1,5 @@ caption: Control Android Google location services +deprecated: true default: 0 default_for_enterprise_users: 0 desc: |- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcOpenLinksInBrowserByDefault.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcOpenLinksInBrowserByDefault.yaml index dbe2cc7c..ca054849 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcOpenLinksInBrowserByDefault.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Arc/ArcOpenLinksInBrowserByDefault.yaml @@ -14,7 +14,7 @@ items: - caption: Open links in Android apps by default value: false owners: -- cros-web-apps-team@google.com +- lt-web-apps-team@google.com - ovn@google.com schema: type: boolean diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserIdle/IdleTimeoutActions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserIdle/IdleTimeoutActions.yaml index 9f47ee28..b8165df0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserIdle/IdleTimeoutActions.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/BrowserIdle/IdleTimeoutActions.yaml @@ -24,6 +24,8 @@ desc: |- 'reload_pages': reload all webpages. For some pages, the user may be prompted for confirmation first. Not supported on iOS. + The user will stay signed into their Google account when deleting cookies using 'clear_cookies_and_other_site_data'. + Setting 'clear_browsing_history', 'clear_password_signing', 'clear_autofill', and 'clear_site_settings' will disable sync for the respective data types if neither `Chrome Sync` is disabled by setting the SyncDisabled policy nor BrowserSignin is disabled. example_value: - close_browsers diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CastReceiver/CastReceiverEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CastReceiver/CastReceiverEnabled.yaml index 46ce5ebe..33686d18 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CastReceiver/CastReceiverEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CastReceiver/CastReceiverEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Allow content to be cast to the device using Google Cast. If this policy is set to False, users will not be able to cast content to their device. If this policy is set to True, users are allowed to cast content. If this policy is not set, users are not allowed to cast content to enrolled ChromeOS devices, but can cast to non enrolled devices. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/CloudProfileReportingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/CloudProfileReportingEnabled.yaml index a48a063e..206cb453 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/CloudProfileReportingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/CloudProfileReportingEnabled.yaml @@ -21,6 +21,7 @@ supported_on: future_on: - chrome_os - fuchsia +- ios items: - caption: Enable managed profile cloud reporting value: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml index 753c7537..164b8b23 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecurityAuthenticatedReporting.yaml @@ -15,6 +15,8 @@ features: per_profile: true cloud_only: true user_only: true +future_on: +- android supported_on: - chrome.*:137- owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml index 6a67aa17..e1cc74cf 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/CloudReporting/UserSecuritySignalsReporting.yaml @@ -15,6 +15,8 @@ features: per_profile: true cloud_only: true user_only: true +future_on: +- android supported_on: - chrome.*:137- owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/AutoSelectCertificateForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/AutoSelectCertificateForUrls.yaml index 40314297..b280169d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/AutoSelectCertificateForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/AutoSelectCertificateForUrls.yaml @@ -27,7 +27,7 @@ features: future_on: - fuchsia owners: -- file://components/policy/OWNERS +- chromeos-commercial-networking-team@google.com - miersh@google.com schema: items: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultCookiesSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultCookiesSetting.yaml index 17ef4453..988dbed2 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultCookiesSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultCookiesSetting.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset results in the use of DefaultCookiesSetting for all sites, if it's set. If not, the user's personal setting applies. URLs not covered by the patterns specified also result in the use of defaults. While no specific policy takes precedence, see CookiesBlockedForUrls and CookiesAllowedForUrls. URL patterns among these 3 policies must not conflict. +default: null example_value: 1 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultDeviceAttributesSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultDeviceAttributesSetting.yaml new file mode 100755 index 00000000..ecf3d3c1 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultDeviceAttributesSetting.yaml @@ -0,0 +1,33 @@ +caption: Control use of the Device Attributes API +default: null +desc: |- + Setting the policy specifies whether a force-installed Isolated Web App or kiosk application has access to the Device Attributes API by default. + Please see https://wicg.github.io/WebApiDevice/device_attributes for details. + + Setting the policy to 1 or leaving it unset allows force-installed Isolated Web Apps and kiosk applications to use the API. + + Setting the policy to 2 blocks force-installed Isolated Web Apps and kiosk applications from using the API. + +example_value: 1 +features: + dynamic_refresh: true + per_profile: true +items: +- caption: Allow force-installed Isolated Web Apps and kiosk applications to use the Device Attributes API + name: AllowDeviceAttributes + value: 1 +- caption: Do not allow force-installed Isolated Web Apps and kiosk applications to use the Device Attributes API + name: BlockDeviceAttributes + value: 2 +owners: +- file://chrome/browser/device_api/OWNERS +- iwa-team@google.com +schema: + enum: + - 1 + - 2 + type: integer +supported_on: +- chrome_os:140- +tags: [] +type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml index b93199b0..a4e96118 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultSerialGuardSetting.yaml @@ -9,7 +9,6 @@ features: dynamic_refresh: true per_profile: true future_on: -- android - fuchsia items: - caption: Do not allow any site to request access to serial ports via the Serial @@ -29,6 +28,7 @@ schema: supported_on: - chrome_os:86- - chrome.*:86- +- android:140- tags: - website-sharing type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultThirdPartyStoragePartitioningSetting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultThirdPartyStoragePartitioningSetting.yaml index 4863bc6e..94e745c3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultThirdPartyStoragePartitioningSetting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DefaultThirdPartyStoragePartitioningSetting.yaml @@ -35,5 +35,6 @@ supported_on: - android:113- - chrome.*:113- - chrome_os:113- +deprecated: true tags: [] type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAttributesAllowedForOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesAllowedForOrigins.yaml similarity index 54% rename from tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAttributesAllowedForOrigins.yaml rename to tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesAllowedForOrigins.yaml index bbcb7373..c56cd267 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAttributesAllowedForOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesAllowedForOrigins.yaml @@ -1,8 +1,8 @@ -caption: Allow origins to query device attributes +caption: Allow Device Attributes API on these sites desc: |- - Setting the policy allows listed origins to get device attributes (e.g. serial number, hostname) by using Device Attributes API. + Setting the policy allows listed origins to get device attributes (e.g. serial number, hostname) using the Device Attributes API. - Origins must correspond to web applications that are force-installed using WebAppInstallForceList or IsolatedWebAppInstallForceList (since version 125) policy or set up as a kiosk app. For Device Attributes API specification please see https://wicg.github.io/WebApiDevice/device_attributes. + Origins must correspond to web applications that are force-installed Isolated Web Apps (using IsolatedWebAppInstallForceList policy) (since version 125), set up as a kiosk app, or web applications that are force-installed (using WebAppInstallForceList) (before version 140). For Device Attributes API specification please see https://wicg.github.io/WebApiDevice/device_attributes. For detailed information on valid url patterns (since version 127), please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * is not an accepted value for this policy. example_value: @@ -15,8 +15,9 @@ features: dynamic_refresh: true per_profile: true owners: -- file://components/policy/OWNERS +- file://chrome/browser/device_api/OWNERS - anqing@chromium.org +- iwa-team@google.com schema: items: type: string diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesBlockedForOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesBlockedForOrigins.yaml new file mode 100755 index 00000000..40fc0b61 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/DeviceAttributesBlockedForOrigins.yaml @@ -0,0 +1,27 @@ +caption: Block Device Attributes API on these sites +desc: |- + Setting the policy blocks listed origins from getting device attributes (e.g. serial number, hostname) using the Device Attributes API. + + Origins must correspond to web applications that are force-installed Isolated Web Apps (using IsolatedWebAppInstallForceList policy) or set up as a kiosk app. For Device Attributes API specification please see https://wicg.github.io/WebApiDevice/device_attributes. + + For detailed information on valid url patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. * is not an accepted value for this policy. +example_value: +- https://www.google.com +- '[*.]example.com' +- example.edu +- '*://example.edu:*/' +- isolated-app://ggx2sheak3vpmm7vmjqnjwuzx3xwot3vdayrlgnvbkq2mp5lg4daaaic +features: + dynamic_refresh: true + per_profile: true +owners: +- file://chrome/browser/device_api/OWNERS +- iwa-team@google.com +schema: + items: + type: string + type: array +supported_on: +- chrome_os:140- +tags: [] +type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabled.yaml new file mode 100755 index 00000000..9ee11734 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabled.yaml @@ -0,0 +1,47 @@ +caption: Revert to legacy cookie scope behavior +default: 0 +desc: |- + This policy allows to revert back to the legacy behavior for cookie scoping. + + It means cookies set on a specific protocol (e.g. HTTPS) or port can be accessed from another. + + Setting the policy to Enabled, cookies will not be bound to their originating scheme and port. + + Setting the policy to Disabled or not set, cookies will behave with origin-bound scope. + + This configuration will only apply to top-level domains (e.g. example.com) and not to + subdomains (e.g. sub.example.com). + + This policy will be removed in the future. + + +example_value: 1 + +features: + dynamic_refresh: true + per_profile: true + +future_on: + - chrome.* + - chrome_os + - android + +items: +- caption: Cookies have origin-bound scope + value: 0 +- caption: Revert back to legacy cookie scope behavior + value: 1 + +owners: +- amarjotgill@chromium.org +- bingler@chromium.org + +schema: + enum: + - 0 + - 1 + type: integer + +tags: [] + +type: int \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabledForDomainList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabledForDomainList.yaml new file mode 100755 index 00000000..a15ea8f1 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacyCookieScopeEnabledForDomainList.yaml @@ -0,0 +1,34 @@ +caption: Enable Legacy Cookie Scope behavior for a list of domains +desc: |- + This policy provides a temporary exemption for specified domains from the new origin-bound cookie behavior. + + Adding a domain to the list will allow cookies from those domain being used by different scheme or port. + More information can be found with LegacyCookieScopeEnabled. + + For cookies on domains not covered by the patterns specified here, or for all cookies if this policy is not set, they will behave with origin-bound cookie behavior. + + This policy will be removed in the future. + +example_value: +- www.example.com +- '[*.]example.edu' + +features: + dynamic_refresh: true + per_profile: true + +future_on: + - chrome.* + - chrome_os + - android + +owners: +- amarjotgill@chromium.org +- bingler@chromium.org + +schema: + items: + type: string + type: array +tags: [] +type: list \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacySameSiteCookieBehaviorEnabledForDomainList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacySameSiteCookieBehaviorEnabledForDomainList.yaml index 6e78e13f..5bdfd961 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacySameSiteCookieBehaviorEnabledForDomainList.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/LegacySameSiteCookieBehaviorEnabledForDomainList.yaml @@ -15,8 +15,6 @@ deprecated: true features: dynamic_refresh: true per_profile: true -future_on: -- fuchsia owners: - bingler@chromium.org - file://net/cookies/OWNERS diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml index 2fb5ee0e..f3c64f13 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAllowAllPortsForUrls.yaml @@ -13,7 +13,6 @@ features: dynamic_refresh: true per_profile: false future_on: -- android - fuchsia owners: - reillyg@chromium.org @@ -25,5 +24,6 @@ schema: supported_on: - chrome_os:94- - chrome.*:94- +- android:140- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml index 8b90dc36..447b6f22 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialAskForUrls.yaml @@ -16,7 +16,6 @@ features: dynamic_refresh: true per_profile: true future_on: -- android - fuchsia owners: - reillyg@chromium.org @@ -27,6 +26,7 @@ schema: supported_on: - chrome_os:86- - chrome.*:86- +- android:140- tags: - website-sharing type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml index d5b6f3be..72e2fcdb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/SerialBlockedForUrls.yaml @@ -16,7 +16,6 @@ features: dynamic_refresh: true per_profile: true future_on: -- android - fuchsia owners: - reillyg@chromium.org @@ -27,5 +26,6 @@ schema: supported_on: - chrome_os:86- - chrome.*:86- +- android:140- tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ThirdPartyStoragePartitioningBlockedForOrigins.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ThirdPartyStoragePartitioningBlockedForOrigins.yaml index a7c703ad..4a875292 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ThirdPartyStoragePartitioningBlockedForOrigins.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/ThirdPartyStoragePartitioningBlockedForOrigins.yaml @@ -28,5 +28,6 @@ supported_on: - android:113- - chrome.*:113- - chrome_os:113- +deprecated: true tags: [] type: list diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml index ed84ba0a..ba6138f6 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ContentSettings/policy_atomic_groups.yaml @@ -108,3 +108,14 @@ SmartCardConnectSettings: - SmartCardConnectAllowedForUrls - SmartCardConnectBlockedForUrls - DefaultSmartCardConnectSetting +LegacyCookieScopeSettings: + caption: Legacy Cookie Scope settings + policies: + - LegacyCookieScopeEnabled + - LegacyCookieScopeEnabledForDomainList +DeviceAttributesSettings: + caption: Device Attributes settings + policies: + - DefaultDeviceAttributesSetting + - DeviceAttributesAllowedForOrigins + - DeviceAttributesBlockedForOrigins diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DeviceUpdate/DeviceAutoUpdateP2PEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DeviceUpdate/DeviceAutoUpdateP2PEnabled.yaml index 2c958079..059c73e3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/DeviceUpdate/DeviceAutoUpdateP2PEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/DeviceUpdate/DeviceAutoUpdateP2PEnabled.yaml @@ -1,6 +1,6 @@ caption: Auto update P2P enabled -default: true -default_for_managed_devices_doc_only: true +default: false +default_for_managed_devices_doc_only: false desc: |- Specifies whether P2P is to be used for OS update payloads. If set to True, devices will share and attempt to consume update payloads on the LAN, potentially reducing Internet bandwidth usage and congestion. If the update payload is not available on the LAN, the device will fall back to downloading from an update server. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/FloatingSsoSessionCookiesIncluded.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/FloatingSsoSessionCookiesIncluded.yaml new file mode 100755 index 00000000..b6d38b36 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/FloatingSsoSessionCookiesIncluded.yaml @@ -0,0 +1,25 @@ +caption: Include session cookies in Floating SSO functionality +default: false +desc: |- + By default, Floating SSO moves only persistent cookies between devices. This policy controls whether session cookies should also be included. It takes effect only when FloatingSsoEnabled policy is Enabled. + + When this policy is Enabled, Floating SSO will synchronize both session and persistent cookies. + When this policy is Disabled or not set, Floating SSO will only synchronize persistent cookies. +example_value: true +features: + dynamic_refresh: true + per_profile: true +future_on: +- chrome_os +items: +- caption: Include session cookies in Floating SSO functionality + value: true +- caption: Don't sync session cookies with Floating SSO + value: false +owners: +- andreydav@google.com +- mpetrisor@chromium.org +schema: + type: boolean +tags: [] +type: main \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/policy_atomic_groups.yaml index a8639f5b..0dfbe952 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/FloatingSso/policy_atomic_groups.yaml @@ -4,3 +4,4 @@ FloatingSso: - FloatingSsoEnabled - FloatingSsoDomainBlocklist - FloatingSsoDomainBlocklistExceptions + - FloatingSsoSessionCookiesIncluded diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml index f062e2ff..d84b1dbe 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/AutofillPredictionSettings.yaml @@ -1,4 +1,4 @@ -caption: Settings for Autofill with AI +caption: Settings for enhanced autofill desc: |- Specifies whether users can let $1Google Chrome use Generative AI to better understand forms and help them fill more fields. @@ -19,13 +19,13 @@ features: dynamic_refresh: true per_profile: true items: -- caption: Allow autofill with AI and improve AI models. +- caption: Allow enhanced autofill and improve AI models. name: Allowed value: 0 -- caption: Allow autofill with AI without improving AI models. +- caption: Allow enhanced autofill without improving AI models. name: AllowedWithoutLogging value: 1 -- caption: Do not allow autofill with AI. +- caption: Do not allow enhanced autofill. name: Disabled value: 2 owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml index efc9f089..4af9a8ed 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GeminiSettings.yaml @@ -8,7 +8,7 @@ desc: |- If the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. - For more information, please check the Enterprise Release Notes (https://support.google.com/chrome/a/answer/7679408). + For more information, please check the Help Center article https://support.google.com/chrome/a?p=gemini_in_chrome. owners: - salg@google.com - ssid@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml index 9dcfb8a7..c67818d5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiDefaultSettings.yaml @@ -1,7 +1,7 @@ caption: Set the default policy value for $1Google Chrome's covered generative AI features desc: |- - This policy defines the default setting for all covered generative AI features. For example, if this policy is set to value 1, then 1 will be the default setting for all covered generative AI features. It will not impact any manually set policy values. This setting will define the defaults for GeminiSettings and covered Chrome generative AI features. See https://support.google.com/chrome/a?p=generative_ai_settings for the list of covered features. + This policy defines the default setting for all covered generative AI features. For example, if this policy is set to value 1, then 1 will be the default setting for all covered generative AI features. It will not impact any manually set policy values. This setting will define the defaults for covered generative AI features in Chrome. See https://support.google.com/chrome/a?p=generative_ai_settings for the list of covered features. 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiLensOverlaySettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiLensOverlaySettings.yaml deleted file mode 100755 index c9c2c804..00000000 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GenerativeAI/GenAiLensOverlaySettings.yaml +++ /dev/null @@ -1,48 +0,0 @@ -caption: Settings for the Lens Overlay feature - -desc: |- - Lens Overlay lets users issue Google searches by interacting with a screenshot of the current page laid over the actual web contents. Additionally, lets users issue Google searches that are contextually aware of the current page. To provide contextual answers, the Lens Overlay send page content to Google to answer the user's query with the context of the page the user is on. - - There is no user setting to control this feature, it is generally made available to all users with Google as their default search engine unless disabled by this policy. - - 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. - - 1 = Allow the feature to be used, but does not allow Google to improve models using users' content (including prompts, inputs, outputs, source materials, and written feedback). 1 is the default value for Enterprise users managed by Google Admin console and for Education accounts managed by Google Workspace. - - 2 = Do not allow the feature. - - If the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. - - For more information on data handling for generative AI features, please see https://support.google.com/chrome/a?p=generative_ai_settings. - -default: 0 -example_value: 2 -features: - dynamic_refresh: true - per_profile: true -items: -- caption: Allow Lens Overlay and improve AI models. - name: Allowed - value: 0 -- caption: Allow Lens Overlay without improving AI models. - name: AllowedWithoutLogging - value: 1 -- caption: Do not allow Lens Overlay. - name: Disabled - value: 2 -owners: -- mercerd@google.com -- stanfield@google.com -- file://components/lens/OWNERS -schema: - enum: - - 0 - - 1 - - 2 - type: integer -tags: -- google-sharing -future_on: -- chrome.* -- chrome_os -type: int-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantOnboardingMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantOnboardingMode.yaml index 72e2ff24..25cf9a66 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantOnboardingMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantOnboardingMode.yaml @@ -1,5 +1,6 @@ caption: Mode of the Assistant onboarding experience default: Default +deprecated: true desc: |- This policy controls the mode of the Assistant onboarding experience. @@ -27,6 +28,6 @@ schema: - Education type: string supported_on: -- chrome_os:85- +- chrome_os:85-137 tags: [] type: string-enum diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantVoiceMatchEnabledDuringOobe.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantVoiceMatchEnabledDuringOobe.yaml index 8bf800cd..45975667 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantVoiceMatchEnabledDuringOobe.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/AssistantVoiceMatchEnabledDuringOobe.yaml @@ -1,5 +1,6 @@ caption: Enable Google Assistant voice match flow default: true +deprecated: true desc: |- Setting the policy to Enabled lets show Google Assistant voice match flow during initial setup. Setting the policy to Disabled keeps Google Assistant from showing voice match flow during initial setup. @@ -19,6 +20,6 @@ owners: schema: type: boolean supported_on: -- chrome_os:93- +- chrome_os:93-137 tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionContextEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionContextEnabled.yaml index 94197611..fdb4f777 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionContextEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionContextEnabled.yaml @@ -1,5 +1,6 @@ caption: Allow Google Assistant to access screen context default: null +deprecated: true desc: |- Setting the policy to Enabled lets Google Assistant access screen context and send that data to a server. Setting the policy to Disabled keeps Google Assistant from screen context. @@ -20,7 +21,7 @@ owners: schema: type: boolean supported_on: -- chrome_os:74- +- chrome_os:74-137 tags: - google-sharing type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionHotwordEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionHotwordEnabled.yaml index 12d246ac..28343662 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionHotwordEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/GoogleAssistant/VoiceInteractionHotwordEnabled.yaml @@ -1,5 +1,6 @@ caption: Allow Google Assistant to listen for the voice activation phrase default: null +deprecated: true desc: |- Setting the policy to Enabled lets Google Assistant listen for the voice activation phrase. Setting the policy to Disabled keeps Google Assistant from listening for the phrase. @@ -20,6 +21,6 @@ owners: schema: type: boolean supported_on: -- chrome_os:74- +- chrome_os:74-137 tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccounts.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccounts.yaml index c7778076..5def270b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccounts.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/DeviceLocalAccounts.yaml @@ -5,18 +5,58 @@ desc: |- If the policy is unset or an empty list, there are no device-local accounts. device_only: true example_value: -- demo@example.com +- account_id: impjpekpbbjbphdokggglkmcnjpigcgf + type: 1 # Chrome App + kiosk_app: + app_id: impjpekpbbjbphdokggglkmcnjpigcgf + update_url: https://example.com/updates.xml +- account_id: https://example.com + type: 4 # Web App + web_kiosk_app: + url: https://example.com +- account_id: aiv4bxauvcu3zvbu6r5yynoh4atkzqqaoeof5mwz54b4zfywcrjuoaacai + type: 5 # Isolated Web App + isolated_kiosk_app: + web_bundle_id: aiv4bxauvcu3zvbu6r5yynoh4atkzqqaoeof5mwz54b4zfywcrjuoaacai + update_manifest_url: https://example.com/update.json features: dynamic_refresh: true owners: - file://components/policy/OWNERS - zmin@chromium.org schema: - items: - type: string type: array + items: + type: object + properties: + account_id: + type: string + type: + type: integer + kiosk_app: + type: object + properties: + app_id: + type: string + update_url: + type: string + web_kiosk_app: + type: object + properties: + url: + type: string + isolated_kiosk_app: + type: object + properties: + web_bundle_id: + type: string + update_manifest_url: + type: string + required: + - account_id + - type supported_on: - chrome_os:25- tags: [] -type: list +type: dict generate_device_proto: False diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskVisionTelemetryEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskVisionTelemetryEnabled.yaml deleted file mode 100755 index 3ad9649f..00000000 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Kiosk/KioskVisionTelemetryEnabled.yaml +++ /dev/null @@ -1,24 +0,0 @@ -owners: -- sseckler@chromium.org -- file://chromeos/components/kiosk/OWNERS -caption: Enable Kiosk Vision's telemetry reporting. -desc: |- - Setting the policy to Enabled means Kiosk Vision's telemetry reporting is enabled. - It will start the Kiosk Vision framework and enable reporting of the audience telemetry. - Leaving this policy unset or setting it to Disabled means Kiosk Vision's telemetry reporting is disabled. -features: - dynamic_refresh: true - per_profile: false -type: main -schema: - type: boolean -items: -- caption: Enable Kiosk Vision's telemetry reporting. - value: true -- caption: Disable Kiosk Vision's telemetry reporting. - value: false -default: false -example_value: false -future_on: -- chrome_os -tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessAllowedForUrls.yaml index 5648fb3c..ecdcccc6 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessAllowedForUrls.yaml @@ -14,7 +14,7 @@ desc: |- For detailed information on valid URL patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. - See https://github.com/explainers-by-googlers/local-network-access for Local Network Access restrictions. example_value: @@ -25,6 +25,7 @@ example_value: supported_on: - chrome.*:139- - chrome_os:139- +- android:140- features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessBlockedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessBlockedForUrls.yaml index 2ecf3d96..057e8904 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessBlockedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/LocalNetworkAccessSettings/LocalNetworkAccessBlockedForUrls.yaml @@ -16,7 +16,7 @@ desc: |- For detailed information on valid URL patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. - See https://github.com/explainers-by-googlers/local-network-access for Local Network Access restrictions. example_value: @@ -27,6 +27,7 @@ example_value: supported_on: - chrome.*:139- - chrome_os:139- +- android:140- features: dynamic_refresh: true 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 9ab2d855..2bb4de61 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 @@ -16,8 +16,9 @@ desc: |- name="LOCAL_NETWORK_ACCESS">Local Network Access requests will use the default handling of these requests. - See https://github.com/explainers-by-googlers/local-network-access for Local Network Access restrictions. +default: false supported_on: - chrome.*:138- diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml index 53508dc5..9ee09282 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AllowedInputMethodsForceEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to false or not setting it doesn't enforce any enabled input methods and AllowedInputMethods policy only configures which input methods are available to the user. If AllowedInputMethods policy is unset or set to an empty list, this policy is ignored and users can enable any input methods. +default: false device_only: false example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AmbientAuthenticationInPrivateModesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AmbientAuthenticationInPrivateModesEnabled.yaml index 92623a90..373b97eb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AmbientAuthenticationInPrivateModesEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AmbientAuthenticationInPrivateModesEnabled.yaml @@ -15,6 +15,7 @@ desc: |- Note that, ambient authentication is always allowed on regular profiles. In $1Google Chrome version 81 and later, if the policy is left not set, ambient authentication will be enabled in regular sessions only. +default: 0 example_value: 0 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioCaptureAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioCaptureAllowed.yaml index 309cbf23..97fe24bf 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioCaptureAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioCaptureAllowed.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Disabled turns off prompts, and audio capture is only available to URLs set in the AudioCaptureAllowedUrls list. Note: The policy affects all audio input (not just the built-in microphone). +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioOutputAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioOutputAllowed.yaml index 669e0308..796c6f9d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioOutputAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AudioOutputAllowed.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled allows no audio output while users are signed in. Note: The policy affects all audio output, including audio accessibility features. Do not turn the policy off if a user requires a screen reader. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoFillEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoFillEnabled.yaml index d3386ee0..9baf77c5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoFillEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoFillEnabled.yaml @@ -8,6 +8,7 @@ desc: |- If you disable this setting, AutoFill will be inaccessible to users. If you enable this setting or do not set a value, AutoFill will remain under the control of the user. This will allow them to configure AutoFill profiles and to switch AutoFill on or off at their own discretion. +default: true example_value: false features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillAddressEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillAddressEnabled.yaml index 3d744fe3..9d756196 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillAddressEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillAddressEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True or leaving it unset gives users control of Autofill for addresses in the UI. Setting the policy to False means Autofill never suggests or fills address information, nor does it save additional address information that users submit while browsing the web. +default: true example_value: false features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillCreditCardEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillCreditCardEnabled.yaml index f17655b6..bf2466ac 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillCreditCardEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutofillCreditCardEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True or leaving it unset means users can control autofill suggestions for credit cards in the UI. Setting the policy to False means autofill never suggests or fills credit card information, nor will it save additional credit card information that users might submit while browsing the web. +default: true example_value: false features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoplayAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoplayAllowed.yaml index aa96b8a9..8e533859 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoplayAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/AutoplayAllowed.yaml @@ -2,9 +2,10 @@ caption: Allow media autoplay desc: |- Setting the policy to True lets $1Google Chrome autoplay media. Setting the policy to False stops $1Google Chrome from autoplaying media. - By default, $1Google Chrome doesn't autoplay media. But, for certain URL patterns, you can use the AutoplayAllowlist policy to change this setting. + If this policy is left unset, $1Google Chrome doesn't autoplay media. But, for certain URL patterns, you can use the AutoplayAllowlist policy to change this setting. - If this policy changes while $1Google Chrome is running, it only applies to newly opened tabs. + If this policy changes while $1Google Chrome is running, it only applies to newly opened tabs. +default: null example_value: true features: dynamic_refresh: true @@ -16,6 +17,8 @@ items: value: true - caption: Do not allow Chrome to autoplay media value: false +- caption: Do not allow Chrome to autoplay media unless the URL is specified in the AutoplayAllowlist policy + value: null owners: - fbeaufort@chromium.org - beccahughes@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserAddPersonEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserAddPersonEnabled.yaml index 8fa15cee..718ade4a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserAddPersonEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserAddPersonEnabled.yaml @@ -3,6 +3,7 @@ desc: |- If this policy is set to true or not configured, $1Google Chrome and Lacros will allow to add a new person from the user manager. If this policy is set to false, $1Google Chrome and Lacros will not allow adding a new person from the user manager. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml index 4dc27d89..3b24f457 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnabled.yaml @@ -3,6 +3,7 @@ desc: |- If this policy is set to Enabled or not configured, $1Google Chrome will enable guest logins. Guest logins are $1Google Chrome profiles where all windows are in incognito mode. If this policy is set to Disabled, $1Google Chrome will not allow guest profiles to be started. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnforced.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnforced.yaml index 45fda02f..39b7ec51 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnforced.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowserGuestModeEnforced.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means $1Google Chrome enforces guest sessions and prevents profile sign-ins. Guest sign-ins are $1Google Chrome profiles where windows are in Incognito mode. Setting the policy to Disabled, leaving it unset, or disabling browser Guest mode (through BrowserGuestModeEnabled) allows the use of new and existing profiles. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowsingDataLifetime.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowsingDataLifetime.yaml index febd649b..b694252e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowsingDataLifetime.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/BrowsingDataLifetime.yaml @@ -10,6 +10,8 @@ desc: |- The deletion of expired data will happen 15 seconds after the browser starts then every 30 minutes while the browser is running. + The user will stay signed into their Google account when deleting cookies. + Until Chrome 114, this policy required the SyncDisabled policy to be set to true. Starting Chrome 115, setting this policy will disable sync for the respective data types if neither `Chrome Sync` is disabled by setting the SyncDisabled policy nor BrowserSignin is disabled. example_value: - data_types: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml index 1d06566d..29ff5c61 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CaptivePortalAuthenticationIgnoresProxy.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled lets $2Google ChromeOS bypass any proxy for captive portal authentication. These authentication webpages, starting from the captive portal sign-in page until Chrome detects a successful internet connection, open in a separate window, ignoring all policy settings and restrictions for the current user. This policy only takes effect if a proxy is set up (by policy, extension, or the user in chrome://settings). Setting the policy to Disabled or leaving it unset means any captive portal authentication pages are shown in a (regular) new browser tab, using the current user's proxy settings. +default: false example_value: true features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeOsMultiProfileUserBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeOsMultiProfileUserBehavior.yaml index 0eeaadac..d4596ce1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeOsMultiProfileUserBehavior.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeOsMultiProfileUserBehavior.yaml @@ -16,6 +16,7 @@ desc: |- If the setting is changed while the user is signed into a multiprofile session, all users in the session will be checked against their corresponding settings. The session will be closed if any one of the users is no longer allowed to be in the session. If the policy is left not set, the default value 'MultiProfileUserBehaviorMustBePrimary' applies for enterprise-managed users and 'MultiProfileUserBehaviorUnrestricted' will be used for non-managed users. +default: unrestricted example_value: unrestricted features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClearBrowsingDataOnExitList.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClearBrowsingDataOnExitList.yaml index 1c040eb3..64014ea1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClearBrowsingDataOnExitList.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ClearBrowsingDataOnExitList.yaml @@ -6,6 +6,8 @@ desc: |- The available data types are browsing history (browsing_history), download history (download_history), cookies (cookies_and_other_site_data), cache (cached_images_and_files), autofill (autofill), passwords (password_signin), site settings (site_settings) and hosted apps data (hosted_app_data). This policy does not take precedence over AllowDeletingBrowserHistory. + The user will stay signed into their Google account when deleting cookies. + Until Chrome 114, this policy required the SyncDisabled policy to be set to true. Starting Chrome 115, setting this policy will disable sync for the respective data types if neither `Chrome Sync` is disabled by setting the SyncDisabled policy nor BrowserSignin is disabled. If for some reason the data deletion has started and did not complete, the browsing data will be cleared the next time the profile is loaded. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml index 52f4e259..8a3ad0d9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudManagementEnrollmentMandatory.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled or leaving it unset renders Chrome Enterprise Core browser enrollment optional and doesn't block $1Google Chrome launch process if failed. Machine scope cloud policy enrollment on desktop uses this policy. See https://support.google.com/chrome/a/answer/9301891 for details. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml index e327e9cd..618f6d2b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CloudPolicyOverridesPlatformPolicy.yaml @@ -9,6 +9,7 @@ desc: |- This policy is specific to $1Google Chrome and does not affect Google Update because they are independent applications. Google Update has a separate policy with the same name. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ComponentUpdatesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ComponentUpdatesEnabled.yaml index dec19156..e9397904 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ComponentUpdatesEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ComponentUpdatesEnabled.yaml @@ -4,6 +4,7 @@ desc: |- If set to disabled, updates to components are disabled. However, some components are exempt from this policy: updates to any component that does not contain executable code and is critical for the security of the browser will not be disabled. Examples of such components include the certificate revocation lists and subresource filters. +default: true example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CreatePasskeysInICloudKeychain.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CreatePasskeysInICloudKeychain.yaml index 2949c104..530226aa 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CreatePasskeysInICloudKeychain.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/CreatePasskeysInICloudKeychain.yaml @@ -19,6 +19,7 @@ desc: |- whether iCloud Drive is enabled, and whether the user has recently used or created a credential in their $1Google Chrome profile. +default: null example_value: false features: dynamic_refresh: true @@ -33,6 +34,8 @@ items: value: true - caption: Default to creating passkeys in other stores such as the $1Google Chrome profile. value: false +- caption: Default is determined by other factors + value: null tags: [] supported_on: - chrome.mac:118- 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 be57b3d9..99062d3c 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,9 +189,8 @@ schema: type: object type: object type: array -future_on: -- android supported_on: +- android:140- - chrome.*:128- - chrome_os:128- tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultBrowserSettingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultBrowserSettingEnabled.yaml index bd0304cd..c9d687ab 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultBrowserSettingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultBrowserSettingEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset means $1Google Chrome lets users control whether it's the default and, if not, whether user notifications should appear. Note: For Microsoft®Windows® administrators, turning this setting on only works for machines running Windows 7. For later versions, you must deploy a "default application associations" file that makes $1Google Chrome the handler for the https and http protocols (and, optionally, the ftp protocol and other file formats). See Chrome Help ( https://support.google.com/chrome?p=make_chrome_default_win ). +default: null example_value: true features: dynamic_refresh: true @@ -16,6 +17,8 @@ items: value: true - caption: Disable the default browser check on startup value: false +- caption: Allow the user to decide + value: null label: Set $1Google Chrome as Default Browser owners: - file://components/policy/OWNERS diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultSearchProviderContextMenuAccessAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultSearchProviderContextMenuAccessAllowed.yaml index c14851c5..0819fd1e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultSearchProviderContextMenuAccessAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DefaultSearchProviderContextMenuAccessAllowed.yaml @@ -7,6 +7,7 @@ desc: |- If this policy is set to enabled or not set, the context menu item for your default search provider will be available. The policy value is only appled when the DefaultSearchProviderEnabled policy is enabled, and is not applicable otherwise. +default: true example_value: true features: can_be_recommended: true 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 4566f6df..579ab951 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 @@ -14,6 +14,7 @@ desc: |- 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. +default: 0 example_value: 2 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsDisabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsDisabled.yaml index 2dc643d2..8fa7e2c6 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsDisabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeveloperToolsDisabled.yaml @@ -14,6 +14,7 @@ desc: |- Setting this option to disabled or leaving it not set allows the user to use the Developer Tools and the JavaScript console. If the policy DeveloperToolsAvailability is set, the value of the policy DeveloperToolsDisabled is ignored. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAllowBluetooth.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAllowBluetooth.yaml index 230c66d8..c6ab34dc 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAllowBluetooth.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceAllowBluetooth.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled means $2Google ChromeOS turns Bluetooth off, and users can't turn it on. Note: To turn on Bluetooth, users must sign out and in again. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBlockDevmode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBlockDevmode.yaml index a682c504..c23c408a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBlockDevmode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBlockDevmode.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Enabled means $2Google ChromeOS stops the device from going into Developer mode. Setting the policy to Disabled or leaving it unset keeps Developer mode available for the device. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBluetoothJustWorksPairingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBluetoothJustWorksPairingEnabled.yaml new file mode 100755 index 00000000..0a09f5c6 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceBluetoothJustWorksPairingEnabled.yaml @@ -0,0 +1,27 @@ +caption: Enable "Just Works" Bluetooth pairing +desc: |- + If this policy is disabled or left unset, your $2Google ChromeOS device will reject "Just Works" pairing requests initiated by nearby Bluetooth peripherals. + + If this policy is enabled, your $2Google ChromeOS device will accept "Just Works" pairing requests initiated by nearby Bluetooth peripherals. + + Note: This policy only takes effect once a user has logged in and does not apply to the login screen. +device_only: true +example_value: true +default: false +features: + dynamic_refresh: true +items: +- caption: Accept "Just Works" Bluetooth pairing requests + value: true +- caption: Reject "Just Works" Bluetooth pairing requests + value: false +owners: +- michaelfsun@google.com +- ghostbusters@google.com +schema: + type: boolean +supported_on: +- chrome_os:140- +tags: [] +type: main +generate_device_proto: True \ No newline at end of file diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenSecurityKeyPermitAttestation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenSecurityKeyPermitAttestation.yaml new file mode 100755 index 00000000..4013bac9 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceLoginScreenSecurityKeyPermitAttestation.yaml @@ -0,0 +1,25 @@ +caption: URLs/domains automatically permitted direct Security Key attestation on the login screen +desc: |- + Setting the policy specifies WebAuthn RP IDs for which no prompt appears when attestation certificates from security keys are requested on the login screen. A signal is also sent to the security key indicating that enterprise attestation may be used. Without this, when sites request attestation of security keys, users are prompted. + + This device policy is equivalent to the existing user policy SecurityKeyPermitAttestation, but applies to the sign-in profile on the login screen instead. +example_value: +- example.com +features: + dynamic_refresh: true + per_profile: false +owners: +- agl@chromium.org +- martinkr@google.com +- file://components/webauthn/OWNERS +- chrome-webauthn@google.com +schema: + items: + type: string + type: array +supported_on: +- chrome_os:140- +tags: +- website-sharing +type: list +device_only: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePciPeripheralDataAccessEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePciPeripheralDataAccessEnabled.yaml index a30978ae..42db22af 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePciPeripheralDataAccessEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePciPeripheralDataAccessEnabled.yaml @@ -5,6 +5,7 @@ desc: |2- If this policy is enabled, user will be able to fully connect their Thunderbolt/USB4 peripheral device through PCIe tunneling. If policy is left unset, defaults to false and the user will be able to select whichever state (true/false) for this setting. +default: null device_only: true example_value: false features: @@ -17,6 +18,8 @@ items: - caption: Disables PCIe tunneling for Thunderbolt/USB4 peripheral devices, limiting the device capabilities value: false +- caption: Allow the user to decide + value: null owners: - jimmyxgong@chromium.org - cros-peripheral@google.com diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePostQuantumKeyAgreementEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePostQuantumKeyAgreementEnabled.yaml index 78c31853..5c9a2907 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePostQuantumKeyAgreementEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePostQuantumKeyAgreementEnabled.yaml @@ -3,17 +3,15 @@ default: true desc: |- This device-level policy configures whether $2Google ChromeOS will offer a post-quantum key agreement algorithm in TLS, using the ML-KEM NIST standard. Prior to $2Google ChromeOS 131, the algorithm was Kyber, an earlier draft iteration of the standard. This allows supporting servers to protect user traffic from being later decrypted by quantum computers. - If this policy is Enabled, $2Google ChromeOS will offer a post-quantum key agreement in TLS connections. User traffic will then be protected from quantum computers when communicating with compatible servers. + If this policy is Enabled or not set, $2Google ChromeOS will offer a post-quantum key agreement in TLS connections. User traffic will then be protected from quantum computers when communicating with compatible servers. If this policy is Disabled, $2Google ChromeOS will not offer a post-quantum key agreement in TLS connections. User traffic will then be unprotected from quantum computers. - If this policy is not set, $2Google ChromeOS will follow the default rollout process for offering a post-quantum key agreement. - Offering Kyber is backwards-compatible. Existing TLS servers and networking middleware are expected to ignore the new option and continue selecting previous options. However, devices that do not correctly implement TLS may malfunction when offered the new option. For example, they may disconnect in response to unrecognized options or the resulting larger messages. Such devices are not post-quantum-ready and will interfere with an enterprise's post-quantum transition. If encountered, administrators should contact the vendor for a fix. - This policy is a temporary measure and will be removed sometime after $2Google ChromeOS version 141. It may be Enabled to allow you to test for issues, and may be Disabled while issues are being resolved. + This policy is a temporary measure and will be removed sometime after $2Google ChromeOS version 145. It may be Enabled to allow you to test for issues, and may be Disabled while issues are being resolved. If both this policy and the PostQuantumKeyAgreementEnabled policy are set, this policy will take precedence. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml index d1bdf958..3564288d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DevicePowerwashAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets a device trigger powerwash. Setting the policy to Disabled doesn't let a device trigger powerwash. An exception to still allow a powerwash can occur if TPMFirmwareUpdateSettings is set to a value that lets the TPM firmware update, but it hasn't updated yet. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRebootOnUserSignout.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRebootOnUserSignout.yaml index a5e5bc2b..631f5222 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRebootOnUserSignout.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceRebootOnUserSignout.yaml @@ -6,6 +6,7 @@ desc: "\n This policy, when set to ArcSession, forces the device to reboot \ If left unset, it has no effect and no reboot is forced on user sign out.\ \ The same applies if set to Never.\n This policy has effect only for unaffiliated\ \ users.\n " +default: 1 device_only: true example_value: 2 features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFlexSystemFirmwareUpdatesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFlexSystemFirmwareUpdatesEnabled.yaml new file mode 100755 index 00000000..a1c36eba --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DeviceUserInitiatedFlexSystemFirmwareUpdatesEnabled.yaml @@ -0,0 +1,30 @@ +owners: +- skend@google.com +- chromeos-flex-eng@google.com +caption: Allow users to initiate internal firmware updates +desc: |- + This policy allows users to initiate firmware updates for the local machine rather than peripherals. + + Setting the policy to Enabled allows users such as device owner to initiate firmware updates. + + Setting the policy to Disabled or leaving it unset prevents all users from applying firmware updates. + + This policy applies to firmware for internal component firmware updates for Google ChromeOS Flex devices. Internal component firmware updates for $2Google ChromeOS devices are not affected by this policy. +future_on: +- chrome_os +device_only: true +features: + dynamic_refresh: true + per_profile: false +type: main +schema: + type: boolean +items: +- caption: Users may initiate firmware updates + value: true +- caption: Users may not initiate firmware updates + value: false +default: false +example_value: true +tags: ['google-sharing'] +generate_device_proto: True diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/Disable3DAPIs.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/Disable3DAPIs.yaml index 39e2e3ff..34db251e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/Disable3DAPIs.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/Disable3DAPIs.yaml @@ -1,8 +1,9 @@ caption: Disable support for 3D graphics APIs desc: |- - Setting the policy to True (or setting HardwareAccelerationModeEnabled to False) prevents webpages from accessing the WebGL API, and plugins can't use the Pepper 3D API. + Setting the policy to True (or setting HardwareAccelerationModeEnabled to False) prevents webpages from accessing the WebGL API. - Setting the policy to False or leaving it unset lets webpages use the WebGL API and plugins use the Pepper 3D API, but the browser's default settings might still require command line arguments to use these APIs. + Setting the policy to False or leaving it unset lets webpages use the WebGL API, but the browser's default settings might still require command line arguments to use these APIs. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DiskCacheSize.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DiskCacheSize.yaml index b2881479..516c5406 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DiskCacheSize.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DiskCacheSize.yaml @@ -7,6 +7,7 @@ desc: |- If not set, $1Google Chrome uses the default size. Users can change that setting using the --disk-cache-size flag. Note: The value specified in this policy is used as a hint to various cache subsystems in the browser. Therefore the actual total disk consumption of all caches will be higher but within the same order of magnitude as the value specified. +default: null example_value: 104857600 features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml index 7c84b433..6a8fe80e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DnsOverHttpsMode.yaml @@ -23,6 +23,7 @@ desc: |- If this policy is unset, for managed devices DNS-over-HTTPS queries will not be sent. Otherwise, the browser may send DNS-over-HTTPS requests to a resolver associated with the user's configured system resolver. +default: null example_value: 'off' features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadBubbleEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadBubbleEnabled.yaml index 0b3bf707..ccee5bdb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadBubbleEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadBubbleEnabled.yaml @@ -23,7 +23,7 @@ owners: schema: type: boolean supported_on: -- 'chrome.*: 102-118' -- 'chrome_os: 102-118' +- chrome.*:102-118 +- chrome_os:102-118 tags: [] type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml index 7434965d..7cbf11d0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/DownloadRestrictions.yaml @@ -21,6 +21,7 @@ desc: |- 4: Blocks malicious files flagged by the Safe Browsing server, does not block dangerous file types. Recommended. Note: These restrictions apply to downloads triggered from webpage content, as well as the Download link… menu option. They don't apply to the download of the currently displayed page or to saving as PDF from the printing options. Read more about Safe Browsing ( https://developers.google.com/safe-browsing ). +default: 0 example_value: 4 features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EasyUnlockAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EasyUnlockAllowed.yaml index e1ae4df5..c37e0e2f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EasyUnlockAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EasyUnlockAllowed.yaml @@ -6,6 +6,7 @@ desc: |- If you disable this setting, users will not be allowed to use Smart Lock. If this policy is left not set, the default is not allowed for enterprise-managed users and allowed for non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EditBookmarksEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EditBookmarksEnabled.yaml index 8103c077..f3286d37 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EditBookmarksEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EditBookmarksEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True or leaving it unset lets users add, remove, modify, or upload bookmarks. Setting the policy to False means users can't add, remove, modify or upload bookmarks. They can still use existing bookmarks. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EmojiSuggestionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EmojiSuggestionEnabled.yaml index 3a5de8b3..d7172750 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EmojiSuggestionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EmojiSuggestionEnabled.yaml @@ -4,6 +4,7 @@ desc: |- This policy enables $2Google ChromeOS to suggest emojis when users type text with their virtual or physical keyboards. If this policy is set to true, the feature will be enabled, and users will be able to change it. This policy is defaulted to false, no emoji will be suggested and users cannot override it. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableOnlineRevocationChecks.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableOnlineRevocationChecks.yaml index 449e5590..0fa5ac66 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableOnlineRevocationChecks.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableOnlineRevocationChecks.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to False or leaving it unset means $1Google Chrome won't perform online revocation checks in $1Google Chrome 19 and later. Note: OCSP/CRL checks provide no effective security benefit. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableSyncConsent.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableSyncConsent.yaml index c07aa998..ad033a14 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableSyncConsent.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnableSyncConsent.yaml @@ -3,6 +3,7 @@ desc: |- This policy controls if Sync Consent can be shown to the user during first sign-in. It should be set to false if Sync Consent is never needed for the user. If set to false, Sync Consent will not be displayed. If set to true or unset, Sync Consent can be displayed. +default: true example_value: false features: dynamic_refresh: true 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 f52eebaa..5e41fac9 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 @@ -3,8 +3,6 @@ default: null desc: |- This policy controls a custom label used to indicate a managed browser. For managed browsers, this label will be shown in a management disclaimer on a footer on the New Tab page. The custom label will not be translated. - When this policy is applied, any strings that surpass 16 characters will be truncated with a “...” Please refrain from using extended names. - Note that this policy is only applied for managed browsers, so it will have no effect for managed users on unmanaged browsers. On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseHardwarePlatformAPIEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseHardwarePlatformAPIEnabled.yaml index 27056535..e5bf9c61 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseHardwarePlatformAPIEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/EnterpriseHardwarePlatformAPIEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to False or leaving it unset prevents extensions from using this API. Note: This policy also applies to component extensions, such as the Hangout Services extension. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageDisabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageDisabled.yaml index 0731c86b..ba5ff683 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageDisabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageDisabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True makes all types of external storage media (USB flash drives, external hard drives, SD and other memory cards, optical storage) unavailable in the file browser. Setting the policy to False or leaving it unset means users can use external storage on their device. Note: The policy doesn't affect Google Drive and internal storage. Users can still access files saved in the Downloads folder. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageReadOnly.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageReadOnly.yaml index daa94579..22d351af 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageReadOnly.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ExternalStorageReadOnly.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True prevents users from writing to external storage devices. Unless external storage is blocked, if you set ExternalStorageReadOnly to False or leave it unset, users can create and modify files of physically writable, external storage devices. (You can block external storage by setting ExternalStorageDisable to True.) +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/F11KeyModifier.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/F11KeyModifier.yaml index 10a9b394..ca7671c0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/F11KeyModifier.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/F11KeyModifier.yaml @@ -5,6 +5,7 @@ desc: |- $2Google ChromeOS keyboards and are disabled by default if the policy is unset. If you set this policy, users cannot change or override it. +default: 0 example_value: 0 features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FocusModeSoundsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FocusModeSoundsEnabled.yaml index b40e1b6e..8041c765 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FocusModeSoundsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FocusModeSoundsEnabled.yaml @@ -10,6 +10,7 @@ desc: |- Setting the policy to EnabledFocusSoundsOnly will enable the sound feature with just Focus Sounds. Setting the policy to Disabled will disable sounds in Focus Mode. +default: disabled example_value: focus-sounds features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceBrowserSignin.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceBrowserSignin.yaml index 9fb4ed47..70a74e3e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceBrowserSignin.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceBrowserSignin.yaml @@ -6,6 +6,7 @@ desc: |- If this policy is set to true, user has to sign in to $1Google Chrome with their profile before using the browser. And the default value of BrowserGuestModeEnabled will be set to false. Note that existing unsigned profiles will be locked and inaccessible after enabling this policy. For more information, see help center article. If this policy is set to false or not configured, user can use the browser without sign in to $1Google Chrome. +default: false example_value: false features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceEphemeralProfiles.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceEphemeralProfiles.yaml index 7cb1e811..2215c6a6 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceEphemeralProfiles.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceEphemeralProfiles.yaml @@ -7,6 +7,7 @@ desc: |- If the user has enabled sync all this data is preserved in their sync profile just like with regular profiles. Incognito mode is also available if not explicitly disabled by policy. If the policy is set to disabled or left not set signing in leads to regular profiles. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceGoogleSafeSearch.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceGoogleSafeSearch.yaml index 21053d71..2f770f05 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceGoogleSafeSearch.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceGoogleSafeSearch.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means SafeSearch in Google Search is always active, and users can't change this setting. Setting the policy to Disabled or leaving it unset means SafeSearch in Google Search is not enforced. +default: false example_value: false features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceLogoutUnauthenticatedUserEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceLogoutUnauthenticatedUserEnabled.yaml index 4b82d6fb..6c680622 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceLogoutUnauthenticatedUserEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceLogoutUnauthenticatedUserEnabled.yaml @@ -4,6 +4,7 @@ desc: |- This policy can protect the user from access to restricted content on Google web properties. If this policy is set to True, the user will be logged out as soon as their authentication token becomes invalid and attempts to restore this token fail. If this policy is set to False or unset, the user can continue working in an unauthenticated state. +default: false example_value: false features: dynamic_refresh: false @@ -19,6 +20,7 @@ owners: schema: type: boolean supported_on: -- chrome_os:81- +- chrome_os:81-139 tags: [] type: main +deprecated: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceMaximizeOnFirstRun.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceMaximizeOnFirstRun.yaml index 6459986d..5b958731 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceMaximizeOnFirstRun.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceMaximizeOnFirstRun.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True means Chrome maximizes the first window shown on first run. Setting the policy to False or leaving it unset means that Chrome might maximize the first window, depending on the screen size. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceSafeSearch.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceSafeSearch.yaml index 8e5a6973..12bc4ff4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceSafeSearch.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceSafeSearch.yaml @@ -8,6 +8,7 @@ desc: |- If you enable this setting, SafeSearch in Google Search and Moderate Restricted Mode YouTube is always active. If you disable this setting or do not set a value, SafeSearch in Google Search and Restricted Mode in YouTube is not enforced. +default: false example_value: false features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeRestrict.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeRestrict.yaml index 396e88d5..e174653c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeRestrict.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeRestrict.yaml @@ -10,6 +10,7 @@ desc: |- * Moderate, the user may only pick Moderate Restricted mode and Strict Restricted mode on YouTube, but can't turn off Restricted mode. * Off or if no value is set, Restricted mode on YouTube isn't enforced by Chrome. External policies such as YouTube policies might still enforce Restricted mode. +default: 0 example_value: 0 features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeSafetyMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeSafetyMode.yaml index dc98f882..7c12326f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeSafetyMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ForceYouTubeSafetyMode.yaml @@ -11,6 +11,7 @@ desc: |- If this setting is enabled, Restricted Mode on YouTube is always enforced to be at least Moderate. If this setting is disabled or no value is set, Restricted Mode on YouTube is not enforced by $1Google Chrome. External policies such as YouTube policies might still enforce Restricted Mode, though. +default: false example_value: false features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FullscreenAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FullscreenAllowed.yaml index 51ef714a..554ed664 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FullscreenAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/FullscreenAllowed.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to True or leaving it unset means that, with appropriate permissions, users, apps, and extensions can enter Fullscreen mode (in which only web content appears). Setting the policy to False means users, apps, and extensions can't enter Fullscreen mode. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GloballyScopeHTTPAuthCacheEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GloballyScopeHTTPAuthCacheEnabled.yaml index a2947bcf..9e60a7f1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GloballyScopeHTTPAuthCacheEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GloballyScopeHTTPAuthCacheEnabled.yaml @@ -9,6 +9,7 @@ desc: |- Enabling this policy leaves sites open to some types of cross-site attacks, and allows users to be tracked across sites even without cookies by adding entries to the HTTP auth cache using credentials embedded in URLs. This policy is intended to give enterprises depending on the legacy behavior a chance to update their login procedures, and will be removed in the future. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GoogleLocationServicesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GoogleLocationServicesEnabled.yaml index ae845cf2..92f3097b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GoogleLocationServicesEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/GoogleLocationServicesEnabled.yaml @@ -8,7 +8,7 @@ desc: |- Note: This policy deprecates the ArcGoogleLocationServicesEnabled policy. Also when this policy is set, DefaultGeolocationSetting will no longer affect the Android location preference on $2Google ChromeOS. supported_on: -- chrome_os:124- +- chrome_os:128- features: dynamic_refresh: true internal_only: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HardwareAccelerationModeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HardwareAccelerationModeEnabled.yaml index 96192429..89484384 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HardwareAccelerationModeEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HardwareAccelerationModeEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset turns on graphics acceleration, if available. Setting the policy to Disabled turns off graphics acceleration. +default: true example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HideWebStoreIcon.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HideWebStoreIcon.yaml index 663103ba..a5588c18 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HideWebStoreIcon.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/HideWebStoreIcon.yaml @@ -5,6 +5,7 @@ desc: |- When this policy is set to true, the icons are hidden. When this policy is set to false or is not configured, the icons are visible. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportAutofillFormData.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportAutofillFormData.yaml index 0c5946db..3ad9a497 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportAutofillFormData.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportAutofillFormData.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled imports autofill form data from the previous default browser on first run. Setting the policy to Disabled or leaving it unset means no autofill form data is imported on first run. Users can trigger an import dialog and the autofill form data checkbox will be checked or unchecked to match this policy's value. +default: false example_value: true features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportHomepage.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportHomepage.yaml index 6a051952..42b853e9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportHomepage.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportHomepage.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled imports the homepage from the previous default browser on first run. Setting the policy to Disabled or leaving it unset means the homepage isn't imported on first run. Users can trigger an import dialog and the homepage checkbox will be checked or unchecked to match this policy's value. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportSearchEngine.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportSearchEngine.yaml index 3a4e2530..6f8450be 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportSearchEngine.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ImportSearchEngine.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled imports the default search engine from the previous default browser on first run. Setting the policy to Disabled or leaving it unset means the default search engine isn't imported on first run. Users can trigger an import dialog and the default search engine checkbox will be checked or unchecked to match this policy's value. +default: false example_value: true features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoEnabled.yaml index 4b71b49d..95297587 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoEnabled.yaml @@ -9,6 +9,7 @@ desc: |- If this setting is disabled, users cannot open web pages in incognito mode. If this policy is left not set, this will be enabled and the user will be able to use incognito mode. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml index 67f04469..de2c1846 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/IncognitoModeAvailability.yaml @@ -9,6 +9,7 @@ desc: |- If 'Forced' is selected, pages may be opened ONLY in Incognito mode. Note that 'Forced' does not work for Android-on-Chrome Note: On iOS, if the policy is changed during a session, it will only take effect on relaunch. +default: 0 example_value: 1 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/InstantTetheringAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/InstantTetheringAllowed.yaml index 969a273e..35180b0c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/InstantTetheringAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/InstantTetheringAllowed.yaml @@ -6,6 +6,7 @@ desc: |- If this setting is disabled, users will not be allowed to use Instant Tethering. If this policy is left not set, the default is not allowed for enterprise-managed users and allowed for non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/JavascriptEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/JavascriptEnabled.yaml index a2cb82b2..360bd9b8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/JavascriptEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/JavascriptEnabled.yaml @@ -8,6 +8,7 @@ desc: |- If this setting is disabled, web pages cannot use JavaScript and the user cannot change that setting. If this setting is enabled or not set, web pages can use JavaScript but the user can change that setting. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensOverlaySettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensOverlaySettings.yaml index 3168c439..2700cf70 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensOverlaySettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LensOverlaySettings.yaml @@ -1,22 +1,24 @@ caption: Settings for the Lens Overlay feature desc: |- - Lens Overlay lets users issue Google searches by interacting with a screenshot of the current page laid over the actual web contents. + Lens Overlay lets users perform contextual Google searches either via a screenshot or by asking a question about the current page's contents. This feature requires the end user to opt-in. - There is no user setting to control this feature, it is generally made available to all users with Google as their default search engine unless disabled by this policy. + This feature is available to all users with Google as their default search engine, unless it is disabled by this policy. - When policy is set to 0 - Enabled or not set, the feature will be available to users. - When policy is set to 1 - Disabled, the feature will not be available. + When policy is set to 0 - Allow or not set, the feature will be available to users. + When policy is set to 1 - Do not allow, the feature will not be available. + + Starting in $1Google Chrome 140, if the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. default: 0 example_value: 1 features: dynamic_refresh: true per_profile: true items: -- caption: Enable - name: Enabled +- caption: Allow + name: Allowed value: 0 -- caption: Disable +- caption: Do not allow name: Disabled value: 1 owners: @@ -35,4 +37,3 @@ supported_on: tags: - google-sharing type: int-enum - diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LoginDisplayPasswordButtonEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LoginDisplayPasswordButtonEnabled.yaml index fa2b4408..7b4474be 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LoginDisplayPasswordButtonEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/LoginDisplayPasswordButtonEnabled.yaml @@ -4,6 +4,7 @@ desc: "When enabled, this feature shows a button on the login and lock screen th \ allows the password to be displayed.\n It is represented as an eye icon\ \ on the password textfield. The button is absent when the feature is disabled.\n\ \ " +default: true example_value: false features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedConfigurationPerOrigin.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedConfigurationPerOrigin.yaml index 70c827b5..7e77d210 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedConfigurationPerOrigin.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedConfigurationPerOrigin.yaml @@ -18,8 +18,8 @@ features: future_on: - fuchsia owners: -- file://chrome/browser/device_api/OWNERS -- apotapchuk@chromium.org +- pwa-commercial@google.com +- anqing@chromium.org schema: items: properties: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedGuestSessionPrivacyWarningsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedGuestSessionPrivacyWarningsEnabled.yaml index c6cae5b1..730adabe 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedGuestSessionPrivacyWarningsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ManagedGuestSessionPrivacyWarningsEnabled.yaml @@ -7,6 +7,7 @@ desc: |2- This policy should not be used for devices used by the general public. If the policy is set to True or not set, the privacy warning notification in the auto-launched managed-guest session will be pinned until the user dismisses it. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NearbyShareAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NearbyShareAllowed.yaml index ddea78b3..78c425aa 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NearbyShareAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NearbyShareAllowed.yaml @@ -6,6 +6,7 @@ desc: |- If this setting is disabled, users will not be allowed to opt in to Nearby Share. If this policy is left not set, the default is not allowed for enterprise-managed users and allowed for non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkPredictionOptions.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkPredictionOptions.yaml index bac0412c..bfdfde1c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkPredictionOptions.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkPredictionOptions.yaml @@ -3,6 +3,7 @@ desc: |- This policy controls network prediction in $1Google Chrome. It controls DNS prefetching, TCP, and SSL preconnection and prerendering of webpages. If you set the policy, users can't change it. Leaving it unset turns on network prediction, but the user can change it. +default: null example_value: 1 features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkServiceSandboxEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkServiceSandboxEnabled.yaml index ba95b963..e43ebc2e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkServiceSandboxEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/NetworkServiceSandboxEnabled.yaml @@ -5,6 +5,7 @@ desc: |- If this policy is disabled, the network service process will run unsandboxed. This leaves users open to additional security risks related to running the network service unsandboxed. If this policy is not set, the default configuration for the network sandbox will be used. This may vary depending on $1Google Chrome release, currently running field trials, and platform. This policy is intended to give enterprises flexibility to disable the network sandbox if they use third party software that interferes with the network service sandbox. +default: null example_value: true features: dynamic_refresh: false @@ -14,6 +15,8 @@ items: value: true - caption: Disable the network service sandbox value: false +- caption: Use the default configuration for the network service sandbox + value: null owners: - wfh@chromium.org - file://services/network/OWNERS diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OriginKeyedProcessesEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OriginKeyedProcessesEnabled.yaml new file mode 100755 index 00000000..6e83a525 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/OriginKeyedProcessesEnabled.yaml @@ -0,0 +1,34 @@ +caption: Enable origin-keyed process isolation by default. +desc: |- + Enables origin-keyed process isolation for most pages (i.e., those assigned to an origin-keyed agent cluster by default). This improves security but also increases the number of processes created. Users are allowed to override the set policy value via the command-line flags or chrome://flags (both to turn this feature on or off). + + Setting the policy to Enabled results in most origins being isolated, even from other origins in the same site. See also the IsolateOrigins and SitePerProcess policies. + + Setting the policy to Disabled results in no origins being isolated from the rest of their site unless an origin explicitly asks to. + + Not setting the policy results in the browser determining which origins to isolate and when to isolate them. +default: null +example_value: true +features: + dynamic_refresh: false + per_profile: false + can_be_mandatory: false + can_be_recommended: true +items: +- caption: Most origins will be isolated from other origins in the same site. + value: true +- caption: No origins will be isolated from other origins in the same site unless the origin explicitly asked to be isolated. + value: false +- caption: Let $1Google Chrome decide which origins to isolate from other same-site origins. + value: null +owners: +- alexmos@chromium.org +- creis@chromium.org +- chrome-security-architecture-core@google.com +schema: + type: boolean +supported_on: +- chrome.*:140- +- chrome_os:140- +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PaymentMethodQueryEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PaymentMethodQueryEnabled.yaml index 6380e837..1ae145c4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PaymentMethodQueryEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PaymentMethodQueryEnabled.yaml @@ -5,6 +5,7 @@ desc: |- If this policy is set to disabled, websites that use PaymentRequest.canMakePayment or PaymentRequest.hasEnrolledInstrument API will be informed that no payment methods are available. If the setting is enabled or not set then websites are allowed to check if the user has payment methods saved. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubAllowed.yaml index ba48d9a8..767f7525 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubAllowed.yaml @@ -6,6 +6,7 @@ desc: |- If this setting is disabled, users will not be allowed to opt in to Phone Hub. If this policy is left not set, the default is not allowed for enterprise-managed users and allowed for non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubNotificationsAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubNotificationsAllowed.yaml index ba70f263..c64585aa 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubNotificationsAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubNotificationsAllowed.yaml @@ -5,6 +5,7 @@ desc: |- If this setting is disabled, users will not be allowed to use this feature. If the PhoneHubAllowed policy is disabled, users also will not be allowed to use this feature. If this policy is left not set, the default is allowed for both enterprise-managed users and non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubTaskContinuationAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubTaskContinuationAllowed.yaml index fba0e861..3b8d653e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubTaskContinuationAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhoneHubTaskContinuationAllowed.yaml @@ -5,6 +5,7 @@ desc: |- If this setting is disabled, users will not be allowed to use this feature. If the PhoneHubAllowed policy is disabled, users also will not be allowed to use this feature. If this policy is left not set, the default is allowed for both enterprise-managed users and non-managed users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardAutocorrect.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardAutocorrect.yaml index 28ab0208..c4081f2b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardAutocorrect.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardAutocorrect.yaml @@ -5,6 +5,7 @@ desc: |- If this policy is set to Enabled or left unset, it will allow the autocorrect feature on the physical keyboard. If this policy is set to Disabled, it will disallow the autocorrect feature on the physical keyboard. +default: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardPredictiveWriting.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardPredictiveWriting.yaml index a6f9ee5a..47aea8af 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardPredictiveWriting.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PhysicalKeyboardPredictiveWriting.yaml @@ -5,6 +5,7 @@ desc: |- If this policy is set to Enabled or left unset, it will allow the predictive writing feature on the physical keyboard. If this policy is set to Disabled, it will disallow the predictive writing feature on the physical keyboard. +default: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyAtomicGroupsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyAtomicGroupsEnabled.yaml index ea93bf6f..908057c3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyAtomicGroupsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyAtomicGroupsEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled means no policy is ignored because of its source. Policies are ignored only if there's a conflict, and the policy doesn't have the highest priority. If this policy is set from a cloud source, it can't target a specific user. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyRefreshRate.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyRefreshRate.yaml index b41bf996..22369f4b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyRefreshRate.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PolicyRefreshRate.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset uses the default value of 3 hours. Note: Policy notifications force a refresh when the policy changes, making frequent refreshes unnecessary. So, if the platform supports these notifications, the refresh delay is 24 hours (ignoring defaults and the value of this policy). +default: 10800000 example_value: 3600000 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PostQuantumKeyAgreementEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PostQuantumKeyAgreementEnabled.yaml index e3c3d290..eb8b25bd 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PostQuantumKeyAgreementEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PostQuantumKeyAgreementEnabled.yaml @@ -3,17 +3,15 @@ default: null desc: |- This policy configures whether $1Google Chrome will offer a post-quantum key agreement algorithm in TLS, using the ML-KEM NIST standard. Prior to $1Google Chrome 131, the algorithm was Kyber, an earlier draft iteration of the standard. This allows supporting servers to protect user traffic from being later decrypted by quantum computers. - If this policy is Enabled, $1Google Chrome will offer a post-quantum key agreement in TLS connections. User traffic will then be protected from quantum computers when communicating with compatible servers. + If this policy is Enabled or not set, $1Google Chrome will offer a post-quantum key agreement in TLS connections. User traffic will then be protected from quantum computers when communicating with compatible servers. If this policy is Disabled, $1Google Chrome will not offer a post-quantum key agreement in TLS connections. User traffic will then be unprotected from quantum computers. - If this policy is not set, $1Google Chrome will follow the default rollout process for offering a post-quantum key agreement. - Offering a post-quantum key agreement is backwards-compatible. Existing TLS servers and networking middleware are expected to ignore the new option and continue selecting previous options. However, devices that do not correctly implement TLS may malfunction when offered the new option. For example, they may disconnect in response to unrecognized options or the resulting larger messages. Such devices are not post-quantum-ready and will interfere with an enterprise's post-quantum transition. If encountered, administrators should contact the vendor for a fix. - This policy is a temporary measure and will be removed sometime after $1Google Chrome version 141. It may be Enabled to allow you to test for issues, and may be Disabled while issues are being resolved. + This policy is a temporary measure and will be removed sometime after $1Google Chrome version 145. It may be Enabled to allow you to test for issues, and may be Disabled while issues are being resolved. example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromotionalTabsEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromotionalTabsEnabled.yaml index 6bed3312..32f900a8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromotionalTabsEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/PromotionalTabsEnabled.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy controls the presentation of the welcome pages that help users sign in to $1Google Chrome, set $1Google Chrome as users' default browser, or otherwise inform them of product features. This is deprecated - use PromotionsEnabled instead. +default: true deprecated: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QRCodeGeneratorEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QRCodeGeneratorEnabled.yaml index 59aeb60f..51ce6bb3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QRCodeGeneratorEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QRCodeGeneratorEnabled.yaml @@ -1,29 +1,30 @@ -caption: Enable QR Code Generator -desc: |- - This policy enables the QR Code generator feature in $1Google Chrome. - - If you enable this policy or don't configure it, the QR Code Generator feature is enabled. - - If you disable this policy, the QR Code Generator feature is disabled. -example_value: false -features: - can_be_mandatory: true - can_be_recommended: false - dynamic_refresh: true - per_profile: false -items: -- caption: The QR Code Generator feature is enabled. - value: true -- caption: The QR Code Generator feature is disabled. - value: false -owners: -- file://chrome/browser/ui/qrcode_generator/OWNERS -schema: - type: boolean -supported_on: -- android:128- -- chrome.*:128- -- chrome_os:128- -- fuchsia:128- -tags: [] -type: main +caption: Enable QR Code Generator +desc: |- + This policy enables the QR Code generator feature in $1Google Chrome. + + If you enable this policy or don't configure it, the QR Code Generator feature is enabled. + + If you disable this policy, the QR Code Generator feature is disabled. +default: true +example_value: false +features: + can_be_mandatory: true + can_be_recommended: false + dynamic_refresh: true + per_profile: false +items: +- caption: The QR Code Generator feature is enabled. + value: true +- caption: The QR Code Generator feature is disabled. + value: false +owners: +- file://chrome/browser/ui/qrcode_generator/OWNERS +schema: + type: boolean +supported_on: +- android:128- +- chrome.*:128- +- chrome_os:128- +- fuchsia:128- +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QuicAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QuicAllowed.yaml index 8aed5087..20b95670 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QuicAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/QuicAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset allows the use of QUIC protocol in $1Google Chrome. Setting the policy to Disabled disallows the use of QUIC protocol. +default: true example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml index 3946f434..c00d6ff3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchFastIfOutdated.yaml @@ -5,6 +5,7 @@ desc: |- If a browser relaunch or device restart is needed to finalize a pending update and the current version has been outdated for more than the number of days specified by this setting, the RelaunchNotificationPeriod policy is overridden to 2 hours. If the RelaunchNotification policy is set to 1 ('Required'), users will be forced to relaunch or restart at the end of the period. If not set, or if the release age cannot be determined, the RelaunchNotificationPeriod policy will be used for all updates. +default: null example_value: 7 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotification.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotification.yaml index 5dd5ec6b..817045a4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotification.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotification.yaml @@ -6,6 +6,7 @@ desc: |- This policy setting enables notifications to inform the user that a browser relaunch or device restart is recommended or required. If not set, $1Google Chrome indicates to the user that a relaunch is needed via subtle changes to its menu, while $2Google ChromeOS indicates such via a notification in the system tray. If set to 'Recommended', a recurring warning will be shown to the user that a relaunch is recommended. The user can dismiss this warning to defer the relaunch. If set to 'Required', a recurring warning will be shown to the user indicating that a browser relaunch will be forced once the notification period passes. The default period is seven days for $1Google Chrome and four days for $2Google ChromeOS, and may be configured via the RelaunchNotificationPeriod policy setting. The user's session is restored following the relaunch/restart. +default: null example_value: 1 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotificationPeriod.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotificationPeriod.yaml index 0d864af8..07b6b518 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotificationPeriod.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RelaunchNotificationPeriod.yaml @@ -5,6 +5,7 @@ desc: |- Over this time period, the user will be repeatedly informed of the need for an update. For $2Google ChromeOS devices, a restart notification appears in the system tray according to the RelaunchHeadsUpPeriod policy. For $1Google Chrome browsers, the app menu changes to indicate that a relaunch is needed once one third of the notification period passes. This notification changes color once two thirds of the notification period passes, and again once the full notification period has passed. The additional notifications enabled by the RelaunchNotification policy follow this same schedule. If not set, the default period of 604800000 milliseconds (one week) is used. +default: 604800000 example_value: 604800000 features: dynamic_refresh: true 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 aee797a0..74acf4a4 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 @@ -8,6 +8,7 @@ desc: |- This policy was removed in Chrome 118 and is ignored if set. Note: Read more about Process mitigation policies ( https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md#Process-mitigation-policies ). +default: true example_value: false features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReportCrostiniUsageEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReportCrostiniUsageEnabled.yaml index 3a3408ca..ba2ea134 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReportCrostiniUsageEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ReportCrostiniUsageEnabled.yaml @@ -3,6 +3,7 @@ desc: |- If Linux app support is on, setting the policy to Enabled sends information about Linux apps usage back to the server. Setting the policy to Disabled or leaving it unset means no usage information is reported. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RestrictCoreSharingOnRenderer.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RestrictCoreSharingOnRenderer.yaml new file mode 100755 index 00000000..3d049cfd --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RestrictCoreSharingOnRenderer.yaml @@ -0,0 +1,28 @@ +caption: Restrict CPU core sharing for renderer process +desc: |- + This policy mitigates side-channel cross process memory attacks by isolating the renderer process on the CPU core and preventing other processes from sharing the same core. The mitigation is supported on Microsoft® Windows® 11 24H2 and above. If the OS does not have the required scheduling support, this policy will have no effect. This policy may slow down performance in some demanding scenarios similar to disabling hyperthreading. For more information refer https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-process_mitigation_side_channel_isolation_policy + If this policy is enabled, all other processes will not be scheduled on the same CPU core when the renderer process is running. + If this policy is disabled, all other processes can be scheduled on the same CPU core if a renderer process is running on it. + If this policy is not set, all other processes can be scheduled on the same CPU core if a renderer process is running on the core. This may vary depending on $1Google Chrome release, currently running field trials, and platform. +default: null +example_value: true +features: + dynamic_refresh: false + per_profile: false +items: +- caption: All other processes will not scheduled on the same CPU core when renderer process is running on it. + value: true +- caption: All other processes can be scheduled on the same CPU core when renderer process is running on it. + value: false +- caption: Allow the user to decide + value: null +owners: +- fayez.razak@microsoft.com +- file://sandbox/win/OWNERS +schema: + type: boolean +supported_on: +- chrome.win:140- +tags: +- system-security +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RoamingProfileSupportEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RoamingProfileSupportEnabled.yaml index 7ad6c2e8..6de51cc1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RoamingProfileSupportEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/RoamingProfileSupportEnabled.yaml @@ -4,6 +4,7 @@ desc: |- If you enable this setting, the settings stored in $1Google Chrome profiles like bookmarks, autofill data, passwords, etc. will also be written to a file stored in the Roaming user profile folder or a location specified by the Administrator through the RoamingProfileLocation policy. Enabling this policy disables cloud sync. If this policy is disabled or left not set only the regular local profiles will be used. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SSLErrorOverrideAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SSLErrorOverrideAllowed.yaml index 54ecab78..b9846f57 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SSLErrorOverrideAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SSLErrorOverrideAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets users click through warning pages $1Google Chrome shows when users navigate to sites that have SSL errors. Setting the policy to Disabled prevent users from clicking through any warning pages. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml index 8ec25959..8d936fc3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SafeSitesFilterBehavior.yaml @@ -9,6 +9,7 @@ desc: |- * Filter sites for adult content, pornographic sites are filtered The policy applies to both the URL the user navigates to and to iframes. The URLAllowlist policy takes precedence over this policy and can be used to override verdicts from the Google Safe Search API. +default: 0 example_value: 0 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml index 48d9e1cb..461f3d91 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SavingBrowserHistoryDisabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means browsing history is not saved, tab syncing is off and users can't change this setting. Setting the policy to Disabled or leaving it unset saves browsing history. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SearchSuggestEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SearchSuggestEnabled.yaml index 1bf3821c..8f2a8ff0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SearchSuggestEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SearchSuggestEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Suggestions based on bookmarks or history are unaffected by the policy. If you set the policy, users can't change it. If not set, search suggestions are on at first, but users can turn them off any time. +default: null example_value: true features: can_be_recommended: true @@ -17,6 +18,8 @@ items: value: true - caption: Disable search suggestions value: false +- caption: Allow the user to decide + value: null owners: - chrome-desktop-search@google.com - jdonnelly@google.com diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountSigninAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountSigninAllowed.yaml index 1aa6873d..a2ab74c7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountSigninAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecondaryGoogleAccountSigninAllowed.yaml @@ -9,6 +9,7 @@ desc: |- In case signing in to a different account shouldn't be allowed via the Incognito mode, consider blocking that mode using the IncognitoModeAvailability policy. Note that users will be able to access Google services in an unauthenticated state by blocking their cookies. +default: true example_value: false features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityKeyPermitAttestation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityKeyPermitAttestation.yaml index b5d83399..cab71008 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityKeyPermitAttestation.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityKeyPermitAttestation.yaml @@ -11,6 +11,8 @@ future_on: owners: - agl@chromium.org - martinkr@google.com +- file://components/webauthn/OWNERS +- chrome-webauthn@google.com schema: items: type: string diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml index 8d80aaa7..5f201b73 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SecurityTokenSessionBehavior.yaml @@ -6,6 +6,7 @@ desc: 'Specifies what happens when a user who is authenticating via a security t screen is locked until the user authenticates again. LOGOUT: The session is ended and the user is logged out. If this policy is not set, it defaults to IGNORE.' +default: IGNORE example_value: LOGOUT features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ServiceWorkerAutoPreloadEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ServiceWorkerAutoPreloadEnabled.yaml new file mode 100755 index 00000000..4bc67d43 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ServiceWorkerAutoPreloadEnabled.yaml @@ -0,0 +1,33 @@ +caption: Allow ServiceWorker to dispatch navigation requests without waiting for its startup +desc: |- + https://github.com/WICG/service-worker-auto-preload + The ServiceWorkerAutoPreload feature dispatches a network request for a main resource at the same time it begins the ServiceWorker bootstrap process. + + Setting the policy to Enabled or leaving it unset means + $1Google Chrome enables ServiceWorkerAutoPreload. The navigation request is automatically dispatched while starting the ServiceWorker in some scenarios, e.g. ServiceWorker is not running, + + If it is disabled, $1Google Chrome will not enable ServiceWorkerAutoPreload. The navigation request is dispatched always after starting the ServiceWorker. + + This policy is a temporary measure to control the feature and will be removed in M144. +default: true +example_value: true +features: + dynamic_refresh: true + per_profile: true +items: +- caption: Enable ServiceWorkerAutoPreload + value: true +- caption: Disable ServiceWorkerAutoPreload + value: false +owners: +- sisidovski@chromium.org +- file://content/browser/service_worker/OWNERS +schema: + type: boolean +supported_on: +- android:140- +- chrome.*:140- +- chrome_os:140- +- fuchsia:140- +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SharedClipboardEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SharedClipboardEnabled.yaml index e3446599..61265fa8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SharedClipboardEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SharedClipboardEnabled.yaml @@ -11,6 +11,7 @@ desc: |- If this policy is left unset, the shared clipboard feature is enabled by default. It is up to the admins to set policies in all platforms they care about. It's recommended to set this policy to one value in all platforms. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAlignment.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAlignment.yaml index 33c0821b..ac103206 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAlignment.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAlignment.yaml @@ -11,6 +11,7 @@ desc: |- If you set this policy as mandatory, users cannot change or override it. If the policy is left not set, the shelf will be be positioned at the bottom of the screen by default and the user can change the shelf's position. +default: null example_value: Bottom features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAutoHideBehavior.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAutoHideBehavior.yaml index 634a628f..ebfc35e0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAutoHideBehavior.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShelfAutoHideBehavior.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Always will autohide the $2Google ChromeOS shelf. Setting the policy to Never ensures the shelf never autohides. If you set the policy, users can't change it. If not set, users decide whether the shelf autohides. +default: null example_value: Always features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShowLogoutButtonInTray.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShowLogoutButtonInTray.yaml index 494b32ef..90ee8146 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShowLogoutButtonInTray.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/ShowLogoutButtonInTray.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True displays a big, red sign-out button in the system tray during active sessions while the screen isn't locked. Setting the policy to False or leaving it unset means no button appears. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SigninAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SigninAllowed.yaml index 41892d96..20ecfb48 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SigninAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SigninAllowed.yaml @@ -7,6 +7,7 @@ desc: "This policy is deprecated, consider using SyncDisabled instead.\n " +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SitePerProcess.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SitePerProcess.yaml index 600008c9..77f47ed7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SitePerProcess.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SitePerProcess.yaml @@ -7,6 +7,7 @@ desc: |- On $2Google ChromeOS version 76 and earlier, set the DeviceLoginScreenSitePerProcess device policy to the same value. (If the values don't match, a delay can occur when entering a user session.) Note: For Android, use the SitePerProcessAndroid policy instead. +default: false device_only: false example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SmsMessagesAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SmsMessagesAllowed.yaml index 2e11c048..69dc2303 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SmsMessagesAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SmsMessagesAllowed.yaml @@ -6,6 +6,7 @@ desc: |- Setting the policy to Disabled means users can't set up text syncing. Leaving the policy unset means that by default, the feature isn't allowed for managed users but is allowed for other users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/StartupBrowserWindowLaunchSuppressed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/StartupBrowserWindowLaunchSuppressed.yaml index 86336314..8cb96bdf 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/StartupBrowserWindowLaunchSuppressed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/StartupBrowserWindowLaunchSuppressed.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to False or leaving it unset allows the window to launch. Note: The browser window might not launch due to other policies or command-line flags. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuggestedContentEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuggestedContentEnabled.yaml index 28edbe73..7d639e76 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuggestedContentEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuggestedContentEnabled.yaml @@ -6,6 +6,7 @@ desc: "This feature enables suggestions for new content to explore. Includes app \ then suggestions for new content to explore will be disabled.\n If this policy\ \ is left unset, then suggestions for new content to explore will be disabled for\ \ managed users and enabled for other users.\n " +default: true example_value: false features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuppressUnsupportedOSWarning.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuppressUnsupportedOSWarning.yaml index 95387cda..84a12029 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuppressUnsupportedOSWarning.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SuppressUnsupportedOSWarning.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled suppresses the warning that appears when $1Google Chrome is running on an unsupported computer or operating system. Setting the policy to Disabled or leaving it unset means the warnings appear on unsupported systems. +default: false example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml index 8103bed2..19c8e1b0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/SyncDisabled.yaml @@ -8,6 +8,7 @@ desc: |- If the policy is set to Disabled or not set, users are allowed to choose whether to use Chrome Sync. Note: Do not turn on this policy when RoamingProfileSupportEnabled is Enabled, because that feature shares the same client-side functionality. The Google-hosted synchronization is off completely in this case. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/TaskManagerEndProcessEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/TaskManagerEndProcessEnabled.yaml index c0dd74c4..054ce890 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/TaskManagerEndProcessEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/TaskManagerEndProcessEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Disabled prevents users from ending processes in the Task Manager. Setting the policy to Enabled or leaving it unset lets users end processes in the Task Manager. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UnifiedDesktopEnabledByDefault.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UnifiedDesktopEnabledByDefault.yaml index 03ca9384..4703f172 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UnifiedDesktopEnabledByDefault.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UnifiedDesktopEnabledByDefault.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to True turns on Unified Desktop, which allows applications to span multiple displays. Users can turn off Unified Desktop for individual displays. Setting the policy to False or leaving it unset turns off Unified Desktop, and users can't turn it on. +default: false example_value: true features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentClientHintsGREASEUpdateEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentClientHintsGREASEUpdateEnabled.yaml index e1bc9df1..5febc8bc 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentClientHintsGREASEUpdateEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentClientHintsGREASEUpdateEnabled.yaml @@ -10,8 +10,6 @@ example_value: true features: dynamic_refresh: true per_profile: false -future_on: -- fuchsia items: - caption: Allow the updated User-Agent GREASE algorithm to be run. value: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentReduction.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentReduction.yaml index 9c1d3d10..3d3359e0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentReduction.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/UserAgentReduction.yaml @@ -1,12 +1,12 @@ caption: Enable or disable the User-Agent Reduction. default: 0 +deprecated: true desc: "The User-Agent HTTP request header\ - \ is scheduled to be reduced. In order to facilitate testing and compatibility,\ - \ this policy can enable the reduction feature for all websites, or disable the\ - \ ability for origin trials or field trials to enable the feature.\n\n To learn\ - \ more about the User-Agent Reduction\ - \ and its timeline, read here:\n\n https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html\n\ + \ had been reduced by default since Chrome 110 and deprecaton trial ended after\ + \ Chrome 113. In order to continue receiving detailed plaform information, please\ + \ migrate to User-Agent Client Hints which serve as a replacement for deprecated\ + \ detailed User-Agent header: https://web.dev/articles/migrate-to-ua-ch\n\ \ " example_value: 0 features: @@ -15,13 +15,13 @@ features: future_on: - fuchsia items: -- caption: User Agent reduction will be controllable via Field-Trials and Origin-Trials. +- caption: Reduced User Agent. name: Default value: 0 -- caption: User Agent reduction disabled, and not enabled by Field-Trials or Origin-Trials. +- caption: Full (legacy) User Agent. name: ForceDisabled value: 1 -- caption: User Agent reduction will be enabled for all origins. +- caption: Reduced User Agent. name: ForceEnabled value: 2 owners: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VideoCaptureAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VideoCaptureAllowed.yaml index ce230d64..a93cc23f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VideoCaptureAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VideoCaptureAllowed.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled turns off prompts, and video capture is only available to URLs set in the VideoCaptureAllowedUrls list. Note: The policy affects all video input (not just the built-in camera). +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VmManagementCliAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VmManagementCliAllowed.yaml index 7af84cb5..87ddb0ca 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VmManagementCliAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VmManagementCliAllowed.yaml @@ -3,6 +3,7 @@ desc: "Instructs $2Google ChromeOS to \ or disable virtual machine management console tools.\n\n If the policy is\ \ set to true or left unset, the user will be able to use VM management CLI.\n \ \ Otherwise, all of VM management CLI is disabled and hidden.\n " +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VpnConfigAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VpnConfigAllowed.yaml index 00f8181a..8939f2ca 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VpnConfigAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/VpnConfigAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets users manage (disconnect or modify) VPN connections. If the VPN connection is created using a VPN app, the UI inside the app isn't affected. So, users might still be able to use the app to modify the VPN connection. Use this policy with the Always on VPN feature, which lets the admin decide to establish a VPN connection when starting a device. Setting the policy to Disabled turns off the $2Google ChromeOS user interfaces that would let the user disconnect or modify VPN connections. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcEventLogCollectionAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcEventLogCollectionAllowed.yaml index 53aec751..2197ab13 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcEventLogCollectionAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcEventLogCollectionAllowed.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled results in no collection or uploading of such logs. Leaving the policy unset on versions up to and including M76 means $1Google Chrome defaults to not being able to collect and upload these logs. Starting at M77, $1Google Chrome defaults to being able to collect and upload these logs from most profiles affected by cloud-based, user-level enterprise policies. From M77 up to and including M80, $1Google Chrome can also collect and upload these logs by default from profiles affected by $1Google Chrome on-premise management. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcTextLogCollectionAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcTextLogCollectionAllowed.yaml index 5c6c2cae..838475bc 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcTextLogCollectionAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcTextLogCollectionAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to enabled means $1Google Chrome can collect WebRTC text logs from Google services such as Google Meet and upload them to Google. These logs have diagnostic information for debugging issues with audio or video meetings in $1Google Chrome, such as textual metadata describing incoming and outgoing WebRTC streams, WebRTC specific log entries and additional system information. These logs have no audio or video content from the meeting. Setting the policy to disabled results in no uploading of such logs to Google. Logs would still accumulate locally on the user's device. Leaving the policy unset means $1Google Chrome defaults to being able to collect and upload these logs. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WifiSyncAndroidAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WifiSyncAndroidAllowed.yaml index 342d3bcb..5c738a65 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WifiSyncAndroidAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Miscellaneous/WifiSyncAndroidAllowed.yaml @@ -9,6 +9,7 @@ desc: |- This feature depends on the wifiConfigurations datatype in Chrome Sync being enabled. If wifiConfigurations is disabled in the SyncTypesListDisabled policy, or Chrome Sync is disabled in the SyncDisabled policy this feature will not be enabled. If this policy is left not set, the default is not allowed for managed users. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NativeMessaging/NativeMessagingUserLevelHosts.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NativeMessaging/NativeMessagingUserLevelHosts.yaml index 3fcb58a3..54092aeb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NativeMessaging/NativeMessagingUserLevelHosts.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NativeMessaging/NativeMessagingUserLevelHosts.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset means $1Google Chrome can use native messaging hosts installed at the user level. Setting the policy to Disabled means $1Google Chrome can only use these hosts if installed at the system level. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDataRoamingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDataRoamingEnabled.yaml index 9882cf29..ac751cb7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDataRoamingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDataRoamingEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled allows data roaming for the device. Setting the policy to Disabled or leaving it unset renders data roaming unavailable. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDockMacAddressSource.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDockMacAddressSource.yaml index 626beb9e..d9b9f3d5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDockMacAddressSource.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceDockMacAddressSource.yaml @@ -9,6 +9,7 @@ desc: |- If 'DockNicMacAddress' is selected, the dock's NIC MAC address will be used. Users can't change this setting. +default: 1 device_only: true example_value: 1 features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiAllowed.yaml index bf1ef8b5..e37fcd4c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiAllowed.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Disabled means $2Google ChromeOS turns off Wi-Fi, and users can't change it. Setting the policy to Enabled or leaving it unset lets users turn Wi-Fi on or off. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiFastTransitionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiFastTransitionEnabled.yaml index edea93fa..ad14466d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiFastTransitionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/DeviceWiFiFastTransitionEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means that Fast Transition is used when the wireless access point supports it. It applies to all users and interfaces on the device. Setting the policy to Disabled or leaving it unset means that Fast Transition isn't used. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml index 0b2d545e..6df7b810 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Network/HappyEyeballsV3Enabled.yaml @@ -11,6 +11,7 @@ desc: |- This policy supports dynamic refresh. This policy is a temporary measure and will be removed in future versions of $1Google Chrome. +default: null owners: - bashi@chromium.org - file://net/OWNERS @@ -29,5 +30,7 @@ items: value: true - caption: Do not use the Happy Eyeballs V3 algorithm. value: false +- caption: Allow $1Google Chrome to decide + value: null example_value: true tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NTLMShareAuthenticationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NTLMShareAuthenticationEnabled.yaml index 286ff8f9..b2065263 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NTLMShareAuthenticationEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NTLMShareAuthenticationEnabled.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled means the Network File Shares feature for $2Google ChromeOS uses NTLM for authentication to SMB shares if necessary. Setting the policy to Disabled turns off NTLM authentication to SMB shares. Leaving the policy unset means the behavior defaults to off for managed users and on for other users. +default: true example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetBiosShareDiscoveryEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetBiosShareDiscoveryEnabled.yaml index d5ec6463..1b7e422e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetBiosShareDiscoveryEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetBiosShareDiscoveryEnabled.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled means share discovery (the Network File Shares feature for $2Google ChromeOS) uses the NetBIOS Name Query Request protocol to discover shares on the network. Setting the policy to Disabled means share discovery won't use this protocol to discover shares. Leaving the policy unset means the behavior defaults to off for managed users and on for other users. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetworkFileSharesAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetworkFileSharesAllowed.yaml index e7615c72..5cf8401b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetworkFileSharesAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/NetworkFileShares/NetworkFileSharesAllowed.yaml @@ -1,6 +1,7 @@ caption: Controls Network File Shares for ChromeOS availability desc: Setting the policy to Enabled lets users use Network File Shares for $2Google ChromeOS. Setting the policy to Disabled means users can't use this feature. +default: true example_value: true features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/EduCoexistenceToSVersion.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/EduCoexistenceToSVersion.yaml index 77ad2579..872207d8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/EduCoexistenceToSVersion.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/EduCoexistenceToSVersion.yaml @@ -12,9 +12,8 @@ features: dynamic_refresh: true per_profile: false owners: -- agawronska@chromium.org -- danan@chromium.org -- yilkal@chromium.org +- zhangwenyu@googe.com +- longbowei@google.com - cros-families-eng@google.com schema: description: The valid version of Terms of Service derived from Google3 cl that diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/ParentAccessCodeConfig.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/ParentAccessCodeConfig.yaml index 2e7edbf0..1eadbe23 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/ParentAccessCodeConfig.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/ParentAccessCodeConfig.yaml @@ -30,7 +30,8 @@ features: per_profile: false owners: - file://chrome/browser/ash/child_accounts/OWNERS -- agawronska@chromium.org +- zhangwenyu@googe.com +- longbowei@google.com schema: properties: current_config: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimits.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimits.yaml index d138a224..27466c5a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimits.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimits.yaml @@ -39,7 +39,8 @@ features: dynamic_refresh: true per_profile: false owners: -- agawronska@chromium.org +- zhangwenyu@googe.com +- longbowei@google.com - cros-families-eng@google.com schema: properties: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimitsAllowlist.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimitsAllowlist.yaml index 9f5c6721..c0f16890 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimitsAllowlist.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ParentalSupervision/PerAppTimeLimitsAllowlist.yaml @@ -25,7 +25,8 @@ features: dynamic_refresh: true per_profile: false owners: -- yilkal@chromium.org +- zhangwenyu@google.com +- longbowei@google.com - cros-families-eng@google.com schema: properties: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/AutomatedPasswordChangeSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/AutomatedPasswordChangeSettings.yaml new file mode 100755 index 00000000..ae06eb0a --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/AutomatedPasswordChangeSettings.yaml @@ -0,0 +1,47 @@ +caption: Enable automated password change +desc: |- + This policy controls the availability of $1Google Chrome's automated password change feature. + + If enabled, a user can trigger a process where the browser attempts to change their password on a website automatically. This process is managed by Generative AI. The new password is saved in the browser's password manager. + + 0 = Allow the feature to be used, while allowing Google to use relevant data to improve its AI models. Relevant data may include prompts, inputs, outputs, source materials, and written feedback, depending on the feature. It may also be reviewed by humans to improve AI models. 0 is the default value, except when noted below. + + 1 = Allow the feature to be used, but does not allow Google to improve models using users' content (including prompts, inputs, outputs, source materials, and written feedback). 1 is the default value for Enterprise users managed by Google Admin console and for Education accounts managed by Google Workspace. + + 2 = Do not allow the feature. + + If the policy is unset, its behavior is determined by the GenAiDefaultSettings policy. + + For more information on data handling for generative AI features, please see https://support.google.com/chrome/a?p=generative_ai_settings. + +default: 0 +example_value: 1 +features: + dynamic_refresh: true + per_profile: true +items: +- caption: Allow feature use and improving AI models + name: Allowed + value: 0 +- caption: Allow feature use without improving AI models + name: AllowedWithoutLogging + value: 1 +- caption: Do not allow feature + name: Disabled + value: 2 +owners: +- file://components/password_manager/OWNERS +schema: + enum: + - 0 + - 1 + - 2 + type: integer +tags: +- google-sharing +supported_on: +- chrome.*:140- +- chrome_os:140- +tags: [] +type: int-enum + diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml index e130944c..4cb06ed5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PasswordManager/PasswordLeakDetectionEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled does not let users have this functionality. If the policy is set, users can't change it in $1Google Chrome. If not set, credential leak checking is allowed, but the user can turn it off. +default: null example_value: true features: dynamic_refresh: true @@ -16,6 +17,8 @@ items: value: true - caption: Disable password leak detection value: false +- caption: Allow the user to decide + value: null owners: - file://components/password_manager/OWNERS - mamir@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmAllowed.yaml index 6d5e10b4..1b5555bd 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmAllowed.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled turns on PluginVm for the device, as long as other settings also allow it. PluginVmAllowed and UserPluginVmAllowed must be True, and either PluginVmLicenseKey or PluginVmUserId must be set for PluginVm to run. Setting the policy to Disabled or leaving it unset means PluginVm isn't on for the device. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmDataCollectionAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmDataCollectionAllowed.yaml index a755b706..7a77580f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmDataCollectionAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PluginVm/PluginVmDataCollectionAllowed.yaml @@ -4,6 +4,7 @@ desc: |- If the policy is set to false or left unset, PluginVm is not allowed to collect data. If set to true, PluginVm might collect PluginVm usage data that is then combined and thoroughly analyzed to improve PluginVm experience. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml index 9806e4d5..729a7ce2 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerAndShutdown/DeviceRebootOnShutdown.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means $2Google ChromeOS triggers a restart when users shut down the device. $2Google ChromeOS replaces all shutdown buttons in the UI with restart buttons. If the users shut down devices using the power button, they won't automatically restart, even if the policy is on. Setting the policy to Disabled or leaving it unset means $2Google ChromeOS lets them shut down the device. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceAdvancedBatteryChargeModeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceAdvancedBatteryChargeModeEnabled.yaml index 543900b6..f4897359 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceAdvancedBatteryChargeModeEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceAdvancedBatteryChargeModeEnabled.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Disabled or leaving it unset keeps advanced battery charge mode off. Users are unable to change this setting. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBatteryChargeMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBatteryChargeMode.yaml index 52c61fc6..9439b3d1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBatteryChargeMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBatteryChargeMode.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset (if supported on the device) applies the standard battery charge mode, and users can't change it. Note: If Custom battery charge mode is selected, then also specify DeviceBatteryChargeCustomStartCharging and DeviceBatteryChargeCustomStopCharging. +default: 1 device_only: true example_value: 1 features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBootOnAcEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBootOnAcEnabled.yaml index 1d917333..0078d2e7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBootOnAcEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceBootOnAcEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled keeps boot on AC off. If you set this policy, users can't change it. If not set, boot on AC is off, and users can't turn it on. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerPeakShiftEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerPeakShiftEnabled.yaml index 64329d12..261770c1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerPeakShiftEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerPeakShiftEnabled.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled keeps power peak shift off. If unset, power peak shift is off at first. Users can't change this setting. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceUsbPowerShareEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceUsbPowerShareEnabled.yaml index 8c933110..c4517517 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceUsbPowerShareEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/DeviceUsbPowerShareEnabled.yaml @@ -9,6 +9,7 @@ desc: |- Setting the policy to Disabled means no power is supplied. Leaving the policy unset means the policy is on, and users can't turn it off. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/LidCloseAction.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/LidCloseAction.yaml index 985a9df1..52698eb3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/LidCloseAction.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/LidCloseAction.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset means the Suspend action is taken. Note: If the action is Suspend, $2Google ChromeOS can separately be set up to lock or not lock the screen before suspending. +default: 0 example_value: 0 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesAudioActivity.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesAudioActivity.yaml index 39ab4352..fad28cba 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesAudioActivity.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesAudioActivity.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset means the user is not considered idle while audio plays. This prevents the idle timeout from being reached and the idle action from being taken. However, screen dimming, screen off, and screen lock will still occur after their configured timeouts despite audio activity. Setting the policy to Disabled means the system can consider users idle despite audio activity. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesVideoActivity.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesVideoActivity.yaml index 370fc1e4..3e56335d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesVideoActivity.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerManagementUsesVideoActivity.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Enabled or leaving it unset means the user is not considered idle while video plays. This prevents the idle delay, screen dim delay, screen off delay, and screen lock delay from being reached and the corresponding actions from being taken. Setting the policy to Disabled means the system can consider users idle despite video activity. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerSmartDimEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerSmartDimEnabled.yaml index d00e3c9e..fe32466e 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerSmartDimEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PowerSmartDimEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset turns the smart dim model on and can extend the time until the screen dims. If it delays the time, the screen off, screen lock, and idle delays adjust to maintain the same distances from the screen dim delay as originally set. Setting the policy to Disabled means the smart dim model won't influence screen dimming. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PresentationScreenDimDelayScale.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PresentationScreenDimDelayScale.yaml index e201e740..e1333554 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PresentationScreenDimDelayScale.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/PresentationScreenDimDelayScale.yaml @@ -5,6 +5,7 @@ desc: |- Leaving the policy unset puts a default scale factor in use. Note: The scale factor must be 100% or more. +default: null example_value: 200 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/UserActivityScreenDimDelayScale.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/UserActivityScreenDimDelayScale.yaml index 7f222e70..9c25e4ba 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/UserActivityScreenDimDelayScale.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/UserActivityScreenDimDelayScale.yaml @@ -6,6 +6,7 @@ desc: |- Leaving the policy unset puts a default scale factor in use. Note: The scale factor must be 100% or more. +default: null example_value: 200 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/WaitForInitialUserActivity.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/WaitForInitialUserActivity.yaml index c2a9cbdc..4bb212dd 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/WaitForInitialUserActivity.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PowerManagement/WaitForInitialUserActivity.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled means that power management delays and session length limits don't start until after the first user activity occurs in a session. Setting the policy to Disabled or leaving it unset means power management delays and the time limit begin immediately at session start. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/CloudPrintProxyEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/CloudPrintProxyEnabled.yaml index aa7b43a1..abb33bd0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/CloudPrintProxyEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/CloudPrintProxyEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets $1Google Chrome act as a proxy between Google Cloud Print and legacy printers connected to the machine. Using their Google Account, users may turn on the cloud print proxy by authentication. Setting the policy to Disabled means users can't turn on the proxy, and the machine can't share its printers with Google Cloud Print. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/DisablePrintPreview.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/DisablePrintPreview.yaml index 70b16f7b..9954751f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/DisablePrintPreview.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/DisablePrintPreview.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled has $1Google Chrome open the system print dialog instead of the built-in print preview when users request a printout. Setting the policy to Disabled or leaving it unset has print commands trigger the print preview screen. +default: false example_value: false features: dynamic_refresh: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingEnabled.yaml index 41c80ffb..5aa57c91 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingEnabled.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets users print in $1Google Chrome, and users can't change this setting. Setting the policy to Disabled means users can't print from $1Google Chrome. Printing is off in the three dots menu, extensions, and JavaScript applications. +default: true example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml index 31c2c1a2..55b8c744 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/PrintingSendUsernameAndFilenameEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Send username and filename to native printers server with every print job. The default is not to send. Setting this policy to true also disables printers that use protocols other than IPPS, USB, or IPP-over-USB since username and filename shouldn't be sent over the network openly. +default: false example_value: true features: can_be_recommended: false diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/UserPrintersAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/UserPrintersAllowed.yaml index 236a8fda..f69b76e0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/UserPrintersAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Printing/UserPrintersAllowed.yaml @@ -4,6 +4,7 @@ desc: "Allows you to control if users can access non-enterprise printers\n\n \ and print using their own printers.\n\n If the policy is set to False, users\ \ will not be able to add and configure their own printers. They will also not be\ \ able to print using any previously configured printers.\n " +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxFingerprintingProtectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxFingerprintingProtectionEnabled.yaml index 93a0fe25..9f4214e5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxFingerprintingProtectionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxFingerprintingProtectionEnabled.yaml @@ -1,27 +1,28 @@ -caption: Choose whether the Privacy Sandbox Fingerprinting Protection feature is to be enabled. +caption: Choose whether the Privacy Sandbox Fingerprinting Protection feature is to be enabled in Incognito mode. default: null desc: |- - A policy to control whether the Privacy Sandbox Fingerprinting Protection setting is to be enabled or disabled for your users. + A policy to control whether the Privacy Sandbox Fingerprinting Protection setting is to be enabled in Incognito mode or disabled for your users. If you set this policy to Disabled, then the Fingerprinting Protection feature setting will be turned off for your users. - If you set this policy to Enabled, your users will have the Fingerprinting Protection feature setting turned on. - If the policy is not set, users will be able to turn on or off the Fingerprinting Protection feature in their UI settings. The default state will be false or disabled, meaning the Fingerprinting Protection feature will be turned off. + If you set this policy to Enabled, your users will have the Fingerprinting Protection feature setting turned on in Incognito mode. + If the policy is not set, users will be able to turn on or off the Fingerprinting Protection feature for Incognito mode in their UI settings. The default state will be false or disabled, meaning the Fingerprinting Protection feature will be turned off. example_value: false features: dynamic_refresh: true per_profile: true -future_on: - - chrome.* - - chrome_os - - android +supported_on: + - android:140- + - chrome.*:140- + - chrome_os:140- items: -- caption: Enable the Privacy Sandbox Fingerprinting Protection feature. +- caption: Enable the Privacy Sandbox Fingerprinting Protection feature in Incognito mode. value: true -- caption: Disable the Privacy Sandbox Fingerprinting Protection feature. +- caption: Disable the Privacy Sandbox Fingerprinting Protection feature in Incognito mode. value: false -- caption: Allow users to turn on or turn off the Privacy Sandbox Fingerprinting Protection setting on their device. +- caption: Allow users to turn on or turn off the Privacy Sandbox Fingerprinting Protection setting in Incognito mode on their device. value: null owners: +- aabeshouse@google.com - johnykim@google.com - rizvis@google.com - file://components/privacy_sandbox/OWNERS diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml index 72d67ae1..1d19f718 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivacySandbox/PrivacySandboxIpProtectionEnabled.yaml @@ -10,9 +10,13 @@ desc: |- # TODO(b/416726104): Move the considerations and other details to a hel If the policy is not set, IP Protection will be enabled by default and users will be able to control the feature on their device via UI settings. Some considerations regarding whether enterprises should disable IP Protection include: + - DNS lookups won't be performed for requests that are proxied, which may impact DNS-based monitoring or filtering. + - Enterprise applications may experience breakage when used in Incognito mode if they rely on requests to domains (or subdomains of those domains) on the Masked Domain List ($1https://github.com/GoogleChrome/ip-protection/blob/main/Masked-Domain-List.md) and require those requests to come from specific IP address ranges. + - Traffic might not be proxied in Incognito mode under certain conditions, for example when users launch Incognito mode from a Chrome profile they aren't signed in to. In general the feature requires the user to have been signed in to Chrome with a personal Google account when launching Incognito mode. + - The list of domains on the Masked Domain List may change over time, with new versions being pushed to users automatically. For more information on the Masked Domain List, see: $1https://github.com/GoogleChrome/ip-protection/blob/main/README.md#identifying-domains-and-the-masked-domain-list-mdl. For more information on IP Protection, see: $1https://github.com/GoogleChrome/ip-protection/blob/main/README.md. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowed.yaml index 61318056..b12611f4 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowed.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowed.yaml @@ -16,12 +16,11 @@ desc: |- In the future, depending on spec evolution, this policy might apply to all cross-origin requests directed at private IPs or localhost. When this policy is set to true, websites are allowed to make requests to any network endpoint, subject to other cross-origin checks. +default: false example_value: false features: dynamic_refresh: true per_profile: true -future_on: -- fuchsia items: - caption: Allow websites to make requests to any network endpoint in an insecure manner. value: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowedForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowedForUrls.yaml index f42ba8c4..791d18b3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowedForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/PrivateNetworkRequestSettings/InsecurePrivateNetworkRequestsAllowedForUrls.yaml @@ -15,8 +15,6 @@ example_value: features: dynamic_refresh: true per_profile: true -future_on: -- fuchsia owners: - titouan@chromium.org - clamy@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Projector/ProjectorDogfoodForFamilyLinkEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Projector/ProjectorDogfoodForFamilyLinkEnabled.yaml index 7f950614..0dff8dc7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Projector/ProjectorDogfoodForFamilyLinkEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Projector/ProjectorDogfoodForFamilyLinkEnabled.yaml @@ -18,7 +18,8 @@ items: - caption: Disable Screencast dogfood for Family Link users value: false owners: -- agawronska@google.com +- zhangwenyu@google.com +- longbowei@google.com - llin@google.com - cros-projector@google.com schema: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/.group.details.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/.group.details.yaml new file mode 100755 index 00000000..ef109546 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/.group.details.yaml @@ -0,0 +1,2 @@ +caption: Protected Content +desc: Controls policies for Protected Content. diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/ProtectedContentIdentifiersAllowed.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/ProtectedContentIdentifiersAllowed.yaml new file mode 100755 index 00000000..3aec02f7 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/ProtectedContentIdentifiersAllowed.yaml @@ -0,0 +1,27 @@ +caption: Allows web pages to use identifiers for the purpose of protected content playback +owners: +- vpasupathy@chromium.org +- sangbaekpark@chromium.org +- file://media/OWNERS +desc: |- + If the policy is set to true or unset, the use of protected content identifiers is allowed, which can help enable higher quality of protected content playback. + + If the policy is set to false, protected content identifiers are not allowed to be used. +supported_on: +- chrome.win:140- +- chrome_os:140- +- android:140- +features: + dynamic_refresh: true + per_profile: true +type: main +schema: + type: boolean +items: +- caption: Allow the use of protected content identifiers with sites, which can help enable higher quality of protected content playback. + value: true +- caption: Disable the use of protected content identifiers with sites, which might lead to lower quality of protected content playback. + value: false +default: true +example_value: false +tags: [] diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/policy_atomic_groups.yaml new file mode 100755 index 00000000..c0b3e917 --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/ProtectedContent/policy_atomic_groups.yaml @@ -0,0 +1,4 @@ +ProtectedContent: + caption: Protected content controls + policies: + - ProtectedContentIdentifiersAllowed diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockAutosubmitEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockAutosubmitEnabled.yaml index 61d3ab76..2a92422d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockAutosubmitEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockAutosubmitEnabled.yaml @@ -12,6 +12,7 @@ desc: |- If the policy is set to false or not set, users will not have PIN auto-submit on the lock and login screen. If this policy is set, users will not have the option of enabling the feature. +default: false example_value: true features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMaximumLength.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMaximumLength.yaml index 42edee87..640ae1d7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMaximumLength.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMaximumLength.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy means the configured maximum PIN length is enforced. A value of 0 or less means the user may set a PIN of any length. If the value is less than PinUnlockMinimumLength but greater than 0, the maximum length is set to the minimum length. Leaving the policy unset means no maximum length is enforced. +default: 0 example_value: 0 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMinimumLength.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMinimumLength.yaml index 3c407f0e..303e730d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMinimumLength.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/PinUnlockMinimumLength.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy enforces the minimum PIN length chosen. (Values below 1 are rounded up to the minimum of 1.) Leaving the policy unset enforces a minimal PIN length of 6 digits, the recommended minimum. +default: 6 example_value: 6 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/QuickUnlockTimeout.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/QuickUnlockTimeout.yaml index 56cb430a..dc6e60df 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/QuickUnlockTimeout.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/QuickUnlock/QuickUnlockTimeout.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy controls how often the lock screen requests the password for quick unlock. Each time the lock screen appears, if the last password entry occurred before the time window specified by the value chosen, quick unlock won't be available. If users stay on the lock screen past this amount of time, a password is requested next time they enter the wrong code or re-enter the lock screen, whichever comes first. Leaving the policy unset means users using quick unlock enter their password on the lock screen daily. +default: null example_value: 2 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowClientPairing.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowClientPairing.yaml index da24a34e..7d3d7341 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowClientPairing.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowClientPairing.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset lets users pair clients and hosts at connection time, eliminating the need to enter a PIN every time. Setting the policy to Disabled makes this feature unavailable. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowGnubbyAuth.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowGnubbyAuth.yaml index 1de7db54..073cfdf9 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowGnubbyAuth.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowGnubbyAuth.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled or leaving it unset means gnubby authentication requests won't be proxied. Note that this feature requires additional components which are not available outside of the Google network environment in order to work properly. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowPinAuthentication.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowPinAuthentication.yaml index 5f2bce4b..86b543c7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowPinAuthentication.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowPinAuthentication.yaml @@ -7,6 +7,7 @@ desc: |- Leaving it unset lets the host decide whether PIN and/or pairing authentications can be used. Note: If the setting results in no mutually supported authentication methods by both the host and the client, then the connection will be rejected. +default: null example_value: true features: dynamic_refresh: true @@ -17,6 +18,8 @@ items: value: true - caption: Disallows the remote access host to use PIN and pairing authentications when accepting client connections value: false +- caption: Allows the remote access host to decide + value: null owners: - file://remoting/OWNERS - jamiewalch@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowRelayedConnection.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowRelayedConnection.yaml index ebd54872..b08a0282 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowRelayedConnection.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostAllowRelayedConnection.yaml @@ -3,6 +3,7 @@ desc: |- If RemoteAccessHostFirewallTraversal is set to Enabled, setting RemoteAccessHostAllowRelayedConnection to Enabled or leaving it unset allows the use of remote clients to use relay servers to connect to this machine when a direct connection is not available, for example, because of firewall restrictions. Setting the policy to Disabled doesn't turn remote access off, but only allows connections from the same network (not NAT traversal or relay). +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostFirewallTraversal.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostFirewallTraversal.yaml index 334f526d..a4ecd6bb 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostFirewallTraversal.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostFirewallTraversal.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled or leaving it unset allows the usage of STUN servers, letting remote clients discover and connect to this machine, even if separated by a firewall. Setting the policy to Disabled when outgoing UDP connections are filtered by the firewall means the machine only allows connections from client machines within the local network. +default: true example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostMatchUsername.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostMatchUsername.yaml index 49ac73e1..d14f82c6 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostMatchUsername.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostMatchUsername.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled has the remote access host compare the name of the local user the host is associated with and the name of the Google Account registered as the host owner ("johndoe," if the host is owned by "johndoe@example.com"). This host won't start if the host owner's name differs from the name of the local user that the host is associated with. To enforce that the owner's Google Account is associated with a specific domain, use the policy with RemoteAccessHostDomain. Setting the policy to Disabled or leaving it unset means the remote access host can be associated with any local user. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostRequireCurtain.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostRequireCurtain.yaml index b7b4c291..28ad8f38 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostRequireCurtain.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/RemoteAccess/RemoteAccessHostRequireCurtain.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled turns off remote access hosts' physical input and output devices during a remote connection. Setting the policy to Disabled or leaving it unset lets both local and remote users interact with the host while it's shared. +default: false example_value: false features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml index 508e8491..46a3b38d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/LockScreenReauthenticationEnabled.yaml @@ -3,6 +3,7 @@ desc: |- Enables online user signin on a lock screen. If the policy is set to true online re-authentication on the lock screen is triggered e.g. by SAMLOfflineSigninTimeLimit. The re-authentication is enforced immediately when on the lock screen or next time a user locks the screen after the condition is met. If the policy is set to false or unset users can always unlock the screen with their local credentials. +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/SAMLOfflineSigninTimeLimit.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/SAMLOfflineSigninTimeLimit.yaml index 48d7ec7a..e6b7cabe 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/SAMLOfflineSigninTimeLimit.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SAML/SAMLOfflineSigninTimeLimit.yaml @@ -9,6 +9,7 @@ desc: |- This policy affects only users who authenticated using SAML. The policy value should be specified in seconds. +default: 1209600 example_value: 32 features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/DisableSafeBrowsingProceedAnyway.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/DisableSafeBrowsingProceedAnyway.yaml index a14e7d86..ed2a6f8b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/DisableSafeBrowsingProceedAnyway.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/DisableSafeBrowsingProceedAnyway.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled or leaving it unset means users can choose to proceed to the flagged site after the warning appears. See more about Safe Browsing ( https://developers.google.com/safe-browsing ). +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionWarningTrigger.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionWarningTrigger.yaml index 3253bc28..01a5fc0f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionWarningTrigger.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/PasswordProtectionWarningTrigger.yaml @@ -13,6 +13,7 @@ desc: |- * PasswordProtectionWarningOnPhishingReuse, password protection warning will be shown when the user reuses their protected password on a phishing site. Leaving the policy unset has the password protection service only protect Google passwords, but users can change this setting. +default: null example_value: 1 features: dynamic_refresh: true 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 82923200..d9ed9081 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 @@ -14,6 +14,7 @@ desc: |- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core. On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core. +default: null example_value: true features: can_be_recommended: true @@ -24,6 +25,8 @@ items: value: true - caption: Disable Safe Browsing value: false +- caption: Allow the user to decide + value: null owners: - file://components/policy/OWNERS - pastarmovj@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingProtectionLevel.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingProtectionLevel.yaml index 0d3d8c5c..85db399a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingProtectionLevel.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/SafeBrowsing/SafeBrowsingProtectionLevel.yaml @@ -14,6 +14,7 @@ desc: |- If this policy is left not set, Safe Browsing will operate in Standard Protection mode but users can change this setting. See https://support.google.com/chrome?p=safe_browsing_preferences for more info on Safe Browsing. +default: null example_value: 2 features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml index 484f6ab2..a670fbf5 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Sharing/TabGroupSharingSettings.yaml @@ -9,11 +9,11 @@ desc: |- owners: - haileywang@google.com - file://components/collaboration/OWNERS -future_on: -- android -- chrome.* -- chrome_os -- ios +supported_on: +- android:140- +- chrome.*:140- +- chrome_os:140- +- ios:140- features: cloud_only: true dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceAllowNewUsers.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceAllowNewUsers.yaml index 3b8da632..e7e9ffb0 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceAllowNewUsers.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceAllowNewUsers.yaml @@ -9,6 +9,7 @@ desc: |- If this policy is set to false, only users present in DeviceUserAllowlist will be able to login. If this policy is set to true or not configured, all users will be able to login. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceEphemeralUsersEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceEphemeralUsersEnabled.yaml index acb1e187..19038930 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceEphemeralUsersEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceEphemeralUsersEnabled.yaml @@ -4,6 +4,7 @@ desc: |2- Determines whether $2Google ChromeOS keeps local account data after logout. If set to true, no persistent account data are kept by $2Google ChromeOS and all data from the user session will be discarded after logout. If this policy is set to false or not configured, the device will keep (encrypted) local user data. Note: Since M114, specific kiosk apps are allowed to override the behavior of this policy for their app for special use cases, such as student assessments. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceGuestModeEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceGuestModeEnabled.yaml index 28f9621e..7ac212f7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceGuestModeEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceGuestModeEnabled.yaml @@ -3,6 +3,7 @@ desc: |- If this policy is set to true or not configured, $2Google ChromeOS will enable guest logins. Guest logins are anonymous user sessions and do not require a password. If this policy is set to false, $2Google ChromeOS will not allow guest sessions to be started. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenAutoSelectCertificateForUrls.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenAutoSelectCertificateForUrls.yaml index 704f3c21..1f5f6132 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenAutoSelectCertificateForUrls.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceLoginScreenAutoSelectCertificateForUrls.yaml @@ -31,7 +31,8 @@ example_value: features: dynamic_refresh: true owners: -- file://components/policy/OWNERS +- chromeos-commercial-networking-team@google.com +- miersh@google.com schema: items: type: string diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowNumericKeyboardForPassword.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowNumericKeyboardForPassword.yaml index 43ed74de..fca0c7f3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowNumericKeyboardForPassword.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowNumericKeyboardForPassword.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to true displays numeric keyboard by default for entering password on the login screen. Users still could switch to the normal keyboard. If you set the policy, users can't change it. If not set or set to false, it has no effect. +default: false device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowUserNamesOnSignin.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowUserNamesOnSignin.yaml index 0a73043b..91beb9ce 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowUserNamesOnSignin.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceShowUserNamesOnSignin.yaml @@ -5,6 +5,7 @@ desc: |- If this policy is set to false, $2Google ChromeOS will not show existing users on the login screen. The normal sign-in screen (prompting for the user email and password or phone) or the SAML interstitial screen (if enabled via the LoginAuthenticationBehavior policy) will be shown, unless a Managed Session is configured. When a Managed Session is configured, only the Managed Session accounts will be shown, allowing to pick one of them. Note that this policy does not affect whether the device keeps or discards the local user data. +default: true device_only: true example_value: true features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceTransferSAMLCookies.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceTransferSAMLCookies.yaml index def8970d..cb64de4c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceTransferSAMLCookies.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Signin/DeviceTransferSAMLCookies.yaml @@ -11,6 +11,7 @@ desc: |- When this policy is set to false or unset, cookies set by the IdP are transferred to the user's profile during their first login on a device only. This policy affects users whose domain matches the device's enrollment domain only. For all other users, cookies set by the IdP are transferred to the user's profile during their first login on the device only. +default: false device_only: true example_value: true features: 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 997712f5..b6783218 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 @@ -11,6 +11,7 @@ desc: |- On Microsoft® Windows®, this policy is only available on instances that are joined to a Microsoft® Active Directory® domain, joined to Microsoft® Azure® Active Directory® or enrolled in Chrome Enterprise Core. On macOS, this policy is only available on instances that are managed via MDM, joined to a domain via MCX or enrolled in Chrome Enterprise Core. +default: null example_value: 4 features: can_be_recommended: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/ShowHomeButton.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/ShowHomeButton.yaml index 98b1c856..edeefdd3 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/ShowHomeButton.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/Startup/ShowHomeButton.yaml @@ -3,6 +3,7 @@ desc: |- Setting the policy to Enabled shows the Home button on $1Google Chrome's toolbar. Setting the policy to Disabled keeps the Home button from appearing. If you set the policy, users can't change it in $1Google Chrome. If not set, users chooses whether to show the Home button. +default: null example_value: true features: can_be_recommended: true @@ -16,6 +17,8 @@ items: value: true - caption: Hide the Home button from the toolbar value: false +- caption: Allow the user to decide + value: null owners: - file://components/policy/OWNERS - poromov@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceMetricsReportingEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceMetricsReportingEnabled.yaml index 01e0450c..eb2af25b 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceMetricsReportingEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/DeviceMetricsReportingEnabled.yaml @@ -5,7 +5,8 @@ desc: |- For managed devices, this policy is enabled by default and sends metrics to Google. - For unmanaged devices, the user can make the decision to send the metrics. + For unmanaged devices, the user can make the decision to send the metrics when the policy is unset. +default: null device_only: true example_value: true features: @@ -15,6 +16,8 @@ items: value: true - caption: Never send metrics to Google value: false +- caption: Allow the user to decide + value: null owners: - cros-reporting-eng@google.com - lbaraz@chromium.org diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/HeartbeatEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/HeartbeatEnabled.yaml index b6f75b23..2e81e167 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/HeartbeatEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/HeartbeatEnabled.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled sends monitoring network packets (heartbeats) to the management server to monitor online status, to allow the server to detect if the device is offline. Setting the policy to Disabled or leaving it unset sends no packets. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/LogUploadEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/LogUploadEnabled.yaml index 1b8f32c2..1f774266 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/LogUploadEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/LogUploadEnabled.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled sends system logs to the management server, to allow admins to monitor system logs. Setting the policy to Disabled or leaving it unset reports no system logs. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportArcStatusEnabled.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportArcStatusEnabled.yaml index e7dbd290..c728e36f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportArcStatusEnabled.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportArcStatusEnabled.yaml @@ -3,6 +3,7 @@ desc: |- If Android apps are on, then setting the policy to True has enrolled devices report Android status information. Setting the policy to Disabled or leaving it unset means enrolled devices don't report Android status information +default: false example_value: true features: dynamic_refresh: true diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceActivityTimes.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceActivityTimes.yaml index 17d75622..9bbdef4f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceActivityTimes.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceActivityTimes.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices report time periods when a user is active on the device. Setting the policy to Disabled means enrolled devices don't record or report activity times. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceAppInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceAppInfo.yaml index aa6b34f2..3cf034ce 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceAppInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceAppInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's applications and usage will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBacklightInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBacklightInfo.yaml index 32c530a5..02ebda9d 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBacklightInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBacklightInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's backlight information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBluetoothInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBluetoothInfo.yaml index 2fb3ba9c..a87fe358 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBluetoothInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBluetoothInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's Bluetooth information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBoardStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBoardStatus.yaml index a51b1b00..cb219cc2 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBoardStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBoardStatus.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled has enrolled devices report hardware statistics for SoC components. Setting the policy to Disabled or leaving it unset means enrolled devices don't report the statistics. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBootMode.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBootMode.yaml index b86b96fc..a05c2126 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBootMode.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceBootMode.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices report the state of the device's dev switch when the machine booted. Setting the policy to Disabled means enrolled devices don't report the state of the dev switch. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCpuInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCpuInfo.yaml index 877395ce..cc32ded7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCpuInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCpuInfo.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled means enrolled devices don’t report any CPU information. Exception CPU utilization and temperature reporting is controlled by ReportDeviceHardwareStatus for M95 and below. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCrashReportInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCrashReportInfo.yaml index bbb486d0..0dfd8a56 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCrashReportInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceCrashReportInfo.yaml @@ -7,6 +7,7 @@ desc: |- If the policy is set to false or left unset, the crash report information will not be reported. If set to true, crash report information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceFanInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceFanInfo.yaml index 0d26d490..01bf4bb1 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceFanInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceFanInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's fan information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceGraphicsStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceGraphicsStatus.yaml index 33bab223..538f3e67 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceGraphicsStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceGraphicsStatus.yaml @@ -7,6 +7,7 @@ desc: |- If the policy is set to false or left unset, the display and graphics statuses will not be reported. If set to true, display and graphics statuses will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceHardwareStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceHardwareStatus.yaml index d745b3c6..d41f29cc 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceHardwareStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceHardwareStatus.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices report hardware statistics such as CPU/RAM usage. Setting the policy to Disabled means enrolled devices don't report the hardware statistics. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceLocation.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceLocation.yaml index 5a48f526..0306d80c 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceLocation.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceLocation.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Enabled has enrolled devices periodically report their location. Setting the policy to Disabled or leaving it unset means enrolled devices don't report their location. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceMemoryInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceMemoryInfo.yaml index ddd2ff2d..3c63a065 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceMemoryInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceMemoryInfo.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled means enrolled devices don’t report any memory information. Exception: free memory information is controlled by ReportDeviceHardwareStatus for M95 or below. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceNetworkInterfaces.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceNetworkInterfaces.yaml index a4c554dc..4a4a42a8 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceNetworkInterfaces.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceNetworkInterfaces.yaml @@ -7,6 +7,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices report the list of network interfaces with their types and hardware addresses. Setting the policy to Disabled means enrolled devices don't report the network interface. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceOsUpdateStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceOsUpdateStatus.yaml index 5f01bef0..afaa8c88 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceOsUpdateStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceOsUpdateStatus.yaml @@ -6,6 +6,7 @@ desc: |- If the policy is set to false or left unset, the OS update information will not be reported. If set to true, OS update information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDevicePowerStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDevicePowerStatus.yaml index 3135efa4..a9153da7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDevicePowerStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDevicePowerStatus.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled has enrolled devices report hardware statistics and identifiers related to power. Setting the policy to Disabled or leaving it unset means enrolled devices don't report power statistics. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSessionStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSessionStatus.yaml index ebaab5ba..ff6da6d7 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSessionStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSessionStatus.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices report the active kiosk session information such as application ID and version. Setting the policy to Disabled means enrolled devices don't report kiosk session information. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceStorageStatus.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceStorageStatus.yaml index ce5326f1..91fd2b44 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceStorageStatus.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceStorageStatus.yaml @@ -5,6 +5,7 @@ desc: |- Setting the policy to Disabled means enrolled devices don't report storage statistics. Eexception: Disk size and disk free space is controlled by ReportDeviceHardwareStatus for M95 and below. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSystemInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSystemInfo.yaml index 73216788..74b3df9f 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSystemInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceSystemInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's system information will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceTimezoneInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceTimezoneInfo.yaml index 7266d672..7babd504 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceTimezoneInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceTimezoneInfo.yaml @@ -5,6 +5,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's currently set timezone will be reported. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceUsers.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceUsers.yaml index 81b2a610..461fb127 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceUsers.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceUsers.yaml @@ -6,6 +6,7 @@ desc: |- Setting the policy to Disabled means enrolled devices don't report the list of users. When DeviceEphemeralUsersEnabled is enabled, ReportDeviceUsers is ignored and will always be disabled. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVersionInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVersionInfo.yaml index 464b4f74..a146ec6a 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVersionInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVersionInfo.yaml @@ -4,6 +4,7 @@ desc: |- Setting the policy to Enabled or leaving it unset has enrolled devices periodically report their OS and firmware version. Setting the policy to Disabled means enrolled devices don't report version info. +default: true device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVpdInfo.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVpdInfo.yaml index 480438d1..9927bc68 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVpdInfo.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/UserAndDeviceReporting/ReportDeviceVpdInfo.yaml @@ -6,6 +6,7 @@ desc: |- If the policy is set to false or left unset, the information will not be reported. If set to true, the device's VPD information will be reported. Vital Product Data (VPD) is a collection of configuration and informational data (such as part and serial numbers) associated with the device. +default: false device_only: true example_value: false features: diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcPostQuantumKeyAgreement.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcPostQuantumKeyAgreement.yaml new file mode 100755 index 00000000..409e5b9c --- /dev/null +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/WebRtcPostQuantumKeyAgreement.yaml @@ -0,0 +1,48 @@ +caption: Enable post-quantum key agreement for WebRTC +default: null +desc: |- + This policy allows controlling post-quantum key agreement for WebRTC. + + If this policy is set to Enabled, post-quantum key agreement would be offered for + WebRTC. + + If this policy is set to Disabled, post-quantum key agreement would not be offered + for WebRTC. + + If this policy is not set, the value would be set by the default rollout process + for post-quantum key agreement offered for WebRTC. + + Offering a post-quantum key agreement is backwards-compatible. Existing DTLS + peers and networking middleware are expected to ignore the new option and + continue selecting previous options. + + However, devices that do not correctly implement DTLS may malfunction when + offered the new option. For example, they may disconnect in response to + unrecognized options or the resulting larger messages. Such devices are not + post-quantum-ready and will interfere with an enterprise's post-quantum + transition. If encountered, administrators should contact the vendor for a fix. + + This policy is a temporary measure and will be removed after some milestones. + +example_value: true +features: + dynamic_refresh: true + per_profile: true +owners: +- file://third_party/blink/renderer/modules/peerconnection/OWNERS +- agpalak@chromium.org +- guidou@chromium.org +schema: + type: boolean +items: +- caption: Use default value for post-quantum key agreement for WebRTC + value: null +- caption: Enable post-quantum key agreement for WebRTC + value: true +- caption: Disable post-quantum key agreement for WebRTC + value: false +supported_on: +- chrome.*:140- +- chrome_os:140- +tags: [] +type: main diff --git a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml index dbc378ce..1488ef58 100755 --- a/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml +++ b/tools/under-control/src/components/policy/resources/templates/policy_definitions/WebRtc/policy_atomic_groups.yaml @@ -2,4 +2,5 @@ WebRtc: caption: WebRTC policies: - WebRtcIPHandling - - WebRtcIPHandlingUrl \ No newline at end of file + - WebRtcIPHandlingUrl + - WebRtcPostQuantumKeyAgreement \ No newline at end of file diff --git a/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc b/tools/under-control/src/content/browser/web_contents/web_contents_impl.cc index cce6fe2d..be06cbb8 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 @@ -56,6 +56,7 @@ #include "components/download/public/common/download_stats.h" #include "components/fingerprinting_protection_filter/interventions/common/interventions_features.h" #include "components/input/cursor_manager.h" +#include "components/input/features.h" #include "components/input/render_widget_host_input_event_router.h" #include "components/input/switches.h" #include "components/input/utils.h" @@ -174,12 +175,12 @@ #include "content/public/common/content_switches.h" #include "content/public/common/referrer_type_converters.h" #include "content/public/common/url_constants.h" +#include "ipc/constants.mojom.h" #include "media/base/media_switches.h" #include "net/base/url_util.h" #include "net/http/http_util.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "partition_alloc/buildflags.h" -#include "ppapi/buildflags/buildflags.h" #include "services/device/public/mojom/wake_lock.mojom.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/request_destination.h" @@ -210,6 +211,7 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "ui/accessibility/ax_tree_combiner.h" #include "ui/accessibility/platform/browser_accessibility.h" +#include "ui/accessibility/platform/browser_accessibility_manager.h" #include "ui/base/ime/mojom/virtual_keyboard_types.mojom.h" #include "ui/base/mojom/window_show_state.mojom.h" #include "ui/base/pointer/pointer_device.h" @@ -253,10 +255,6 @@ #include "content/browser/date_time_chooser/date_time_chooser.h" #endif -#if BUILDFLAG(ENABLE_PPAPI) -#include "content/browser/media/session/pepper_playback_observer.h" -#endif - #if BUILDFLAG(ENABLE_VR) #include "content/browser/xr/service/xr_runtime_manager_impl.h" #endif @@ -331,7 +329,7 @@ bool HasMatchingWidgetHost(FrameTree* tree, RenderWidgetHostImpl* host) { RenderFrameHostImpl* FindOpenerRFH(const WebContents::CreateParams& params) { RenderFrameHostImpl* opener_rfh = nullptr; - if (params.opener_render_frame_id != MSG_ROUTING_NONE) { + if (params.opener_render_frame_id != IPC::mojom::kRoutingIdNone) { opener_rfh = RenderFrameHostImpl::FromID(params.opener_render_process_id, params.opener_render_frame_id); } @@ -401,7 +399,8 @@ bool AreValidRegisterProtocolHandlerArguments( return false; } - blink::URLSyntaxErrorCode code = blink::IsValidCustomHandlerURLSyntax(url); + blink::URLSyntaxErrorCode code = + blink::IsValidCustomHandlerURLSyntax(url, security_level); if (code != blink::URLSyntaxErrorCode::kNoError) { return false; } @@ -1149,8 +1148,9 @@ void WebContentsImpl::WebContentsTreeNode::DetachUnownedInnerWebContents( // detaching, the inner WebContents becomes the outermost WebContents from its // perspective, so its focused frame tree needs to be set. inner_web_contents_node.SetFocusedFrameTree( - was_inner_web_contents_focused ? - focused_frame_tree : &inner_web_contents->GetPrimaryFrameTree()); + was_inner_web_contents_focused + ? focused_frame_tree + : &inner_web_contents->GetPrimaryFrameTree()); // Reset the outermost WebContents's focused frame tree if the inner // WebContents was focused before detaching. if (was_inner_web_contents_focused) { @@ -1402,14 +1402,12 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context) is_overlay_content_(false), showing_context_menu_(false), prerender_host_registry_(std::make_unique(*this)), - compositor_frame_sink_grouping_id_(base::UnguessableToken::Create()) { + compositor_frame_sink_grouping_id_(base::UnguessableToken::Create()), + fenced_frame_viewport_observer_( + std::make_unique(this)) { TRACE_EVENT0("content", "WebContentsImpl::WebContentsImpl"); WebContentsOfBrowserContext::Attach(*this); node_.SetFocusedFrameTree(&primary_frame_tree_); -#if BUILDFLAG(ENABLE_PPAPI) - pepper_playback_observer_ = std::make_unique(this); -#endif - #if BUILDFLAG(IS_ANDROID) safe_area_insets_host_ = SafeAreaInsetsHost::Create(this); #endif @@ -1485,8 +1483,8 @@ WebContentsImpl::~WebContentsImpl() { outermost->SetAsFocusedWebContentsIfNecessary(); } - if (GetOuterWebContents() - && GetOuterWebContents()->node_.IsUnownedInnerWebContents(this)) { + if (GetOuterWebContents() && + GetOuterWebContents()->node_.IsUnownedInnerWebContents(this)) { GetOuterWebContents()->DetachUnownedInnerWebContents(this); } @@ -1539,12 +1537,6 @@ WebContentsImpl::~WebContentsImpl() { // prerendering. Shutdown them by destructing PrerenderHostRegistry. prerender_host_registry_.reset(); -#if BUILDFLAG(ENABLE_PPAPI) - // Call this before WebContentsDestroyed() is broadcasted since - // AudioFocusManager will be destroyed after that. - pepper_playback_observer_.reset(); -#endif // defined(ENABLED_PLUGINS) - // If audio is playing then notify external observers of the audio stream // disappearing. if (is_currently_audible_) { @@ -2567,13 +2559,6 @@ void WebContentsImpl::SetDisplayCutoutSafeArea(gfx::Insets insets) { } } -void WebContentsImpl::SetContextMenuInsets(gfx::Rect safe_area) { - OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::SetContextMenuInsets"); - if (auto* rwhv = GetRenderWidgetHostView()) { - rwhv->NotifyContextMenuInsetsObservers(safe_area); - } -} - void WebContentsImpl::ShowInterestInElement(int nodeID) { OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::ShowInterestInElement"); if (auto* rwhv = GetRenderWidgetHostView()) { @@ -2664,7 +2649,7 @@ const std::string& WebContentsImpl::GetEncoding() { return GetPrimaryPage().GetEncoding(); } -void WebContentsImpl::Discard() { +void WebContentsImpl::Discard(base::OnceClosure on_discarded_cb) { if (!base::FeatureList::IsEnabled(features::kWebContentsDiscard)) { NOTREACHED(); } @@ -2672,7 +2657,7 @@ void WebContentsImpl::Discard() { AboutToBeDiscarded(this); notify_disconnection_ = false; CancelAllPrerendering(); - primary_frame_tree_.Discard(); + primary_frame_tree_.Discard(std::move(on_discarded_cb)); NotifyWasDiscarded(); } @@ -3139,16 +3124,51 @@ WebContentsImpl::GetPrimaryMainFrameImportanceForTesting() { return GetPrimaryMainFrame()->GetRenderWidgetHost()->importance(); } -void WebContentsImpl::SetPrimaryMainFrameImportance( - ChildProcessImportance importance) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::SetMainFrameImportance", - "importance", static_cast(importance)); +ChildProcessImportance +WebContentsImpl::GetPrimaryPageSubframeImportanceForTesting() { + return primary_subframe_importance_; +} + +void WebContentsImpl::SetPrimaryPageImportance( + ChildProcessImportance main_frame_importance, + ChildProcessImportance subframe_importance) { + OPTIONAL_TRACE_EVENT2( + "content", "WebContentsImpl::SetPrimaryPageImportance", + "main_frame_importance", static_cast(main_frame_importance), + "subframe_importance", static_cast(subframe_importance)); CHECK(IsPerceptibleImportanceSupported() || - importance != ChildProcessImportance::PERCEPTIBLE) + (main_frame_importance != ChildProcessImportance::PERCEPTIBLE && + subframe_importance != ChildProcessImportance::PERCEPTIBLE)) << "Setter of ChildProcessImportance::PERCEPTIBLE should be aware of the " "support and avoid using PERCEPTIBLE if " "IsPerceptibleImportanceSupported() is false"; - GetPrimaryMainFrame()->GetRenderWidgetHost()->SetImportance(importance); + CHECK(main_frame_importance >= subframe_importance); + + if (base::FeatureList::IsEnabled(features::kSubframeImportance)) { + CHECK( + base::FeatureList::IsEnabled(features::kSubframePriorityContribution)); + if (subframe_importance != primary_subframe_importance_) { + primary_subframe_importance_ = subframe_importance; + ApplyPrimaryPageSubframeImportance(); + } + } + + GetPrimaryMainFrame()->GetRenderWidgetHost()->SetImportance( + main_frame_importance); +} + +void WebContentsImpl::ApplyPrimaryPageSubframeImportance() { + OPTIONAL_TRACE_EVENT1( + "content", "WebContentsImpl::ApplyPrimaryPageSubframeImportance", + "importance", static_cast(primary_subframe_importance_)); + for (FrameTreeNode* node : primary_frame_tree_.Nodes()) { + if (node->IsMainFrame()) { + continue; + } + if (auto* rwh = node->current_frame_host()->GetLocalRenderWidgetHost()) { + rwh->SetImportance(primary_subframe_importance_); + } + } } #endif @@ -3230,8 +3250,8 @@ void WebContentsImpl::AttachInnerWebContents( // Not reachable with MPArch based guest view. CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch)); AttachInnerWebContentsImpl(inner_web_contents.release(), render_frame_host, - is_full_page, - /*should_take_ownership=*/true); + is_full_page, + /*should_take_ownership=*/true); } void WebContentsImpl::AttachUnownedInnerWebContents( @@ -3239,8 +3259,8 @@ void WebContentsImpl::AttachUnownedInnerWebContents( WebContents* inner_web_contents, RenderFrameHost* render_frame_host) { AttachInnerWebContentsImpl(inner_web_contents, render_frame_host, - /*is_full_page=*/false, - /*should_take_ownership=*/false); + /*is_full_page=*/false, + /*should_take_ownership=*/false); } void WebContentsImpl::AttachInnerWebContentsImpl( @@ -3636,8 +3656,6 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( !command_line.HasSwitch(switches::kDisableWebGL) && !command_line.HasSwitch(switches::kDisableWebGL2); - prefs.pepper_3d_enabled = !command_line.HasSwitch(switches::kDisablePepper3d); - prefs.allow_file_access_from_file_urls = command_line.HasSwitch(switches::kAllowFileAccessFromFiles); @@ -3716,15 +3734,19 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( } #endif +#if BUILDFLAG(IS_ANDROID) + bool is_request_android_desktop_site = false; +#endif + if (GetController().GetVisibleEntry() && GetController().GetVisibleEntry()->GetIsOverridingUserAgent()) { #if BUILDFLAG(IS_ANDROID) // Only ignore viewport meta tag when Request Desktop Site is used, but not // in other situations where embedder changes to arbitrary mobile UA string. - bool is_request_desktop_site = + is_request_android_desktop_site = renderer_preferences_.user_agent_override.ua_metadata_override && !renderer_preferences_.user_agent_override.ua_metadata_override->mobile; - prefs.viewport_meta_enabled = !is_request_desktop_site; + prefs.viewport_meta_enabled = !is_request_android_desktop_site; #else prefs.viewport_meta_enabled = false; #endif @@ -3813,6 +3835,53 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( base::android::BuildInfo::GetInstance()->is_automotive()) { prefs.disable_webauthn = true; } +#endif // BUILDFLAG(IS_ANDROID) + + // For devices that have larger displays (e.g. tablets, desktops), they + // require a different set of webpref settings that is different from smaller + // form-factors such as phones in order to render appropriately (e.g. + // viewport) +#if BUILDFLAG(IS_ANDROID) + if (base::FeatureList::IsEnabled( + blink::features::kAndroidDesktopWebPrefsLargeDisplays)) { + bool apply_desktop_common_settings = false; + switch (ui::GetDeviceFormFactor()) { + case ui::DEVICE_FORM_FACTOR_DESKTOP: + apply_desktop_common_settings = true; + // There are no orientation changes in desktop mode. + // Might need to revisit for convertible devices (i.e. clamshell -> + // tablet). + prefs.main_frame_resizes_are_orientation_changes = false; + break; + case ui::DEVICE_FORM_FACTOR_TABLET: + // Specific to large tablets (10"), by default they request desktop + // site, but can per-site optionally override it to request mobile + // instead. + if (is_request_android_desktop_site) { + apply_desktop_common_settings = true; + } + break; + default: + break; + } + + if (apply_desktop_common_settings) { + // Settings below matches up with desktop chrome + + // Set page scale factors to be similar to desktop. + // The significant change compared to mobile is that we lock the min scale + // to 1, so that we don't allow for a birds-eye-view zoom-out (this + // matches desktop). + prefs.default_minimum_page_scale_factor = 1.f; + prefs.default_maximum_page_scale_factor = 4.f; + + // Ensure no further viewport scaling + prefs.shrinks_viewport_contents_to_fit = false; + // Not needed for larger form factors + prefs.text_autosizing_enabled = false; + } + } + #endif // BUILDFLAG(IS_ANDROID) GetContentClient()->browser()->OverrideWebPreferences( @@ -4319,7 +4388,6 @@ void WebContentsImpl::RenderWidgetCreated( RenderWidgetHostImpl* render_widget_host) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated", "render_widget_host", render_widget_host); - CHECK(!created_widgets_.contains(render_widget_host->GetFrameSinkId())); created_widgets_[render_widget_host->GetFrameSinkId()] = render_widget_host; } @@ -4968,11 +5036,9 @@ blink::mojom::DisplayMode WebContentsImpl::GetDisplayMode() const { void WebContentsImpl::RequestToLockPointer( RenderWidgetHostImpl* render_widget_host, bool user_gesture, - bool last_unlocked_by_target, - bool privileged) { - OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::RequestPointerLock", - "render_widget_host", render_widget_host, "privileged", - privileged); + bool last_unlocked_by_target) { + OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RequestPointerLock", + "render_widget_host", render_widget_host); if (render_widget_host->frame_tree()->is_fenced_frame()) { // The renderer should have checked and disallowed the request for fenced // frames in PointerLockController and dispatched pointerlockerror. Ignore @@ -4990,14 +5056,6 @@ void WebContentsImpl::RequestToLockPointer( } } - if (privileged) { - DCHECK(!GetOuterWebContents()); - pointer_lock_widget_ = render_widget_host; - render_widget_host->GotResponseToPointerLockRequest( - blink::mojom::PointerLockResult::kSuccess); - return; - } - bool widget_in_frame_tree = false; for (FrameTreeNode* node : primary_frame_tree_.Nodes()) { if (node->current_frame_host()->GetRenderWidgetHost() == @@ -5820,7 +5878,8 @@ bool WebContentsImpl::IsJavaScriptDialogShowing() const { bool WebContentsImpl::ShouldIgnoreUnresponsiveRenderer() { // Suppress unresponsive renderers if the command line asks for it. if (base::CommandLine::ForCurrentProcess()->HasSwitch( - input::switches::kDisableHangMonitor)) { + input::switches::kDisableHangMonitor) || + !base::FeatureList::IsEnabled(input::features::kRendererHangWatcher)) { return true; } @@ -6833,6 +6892,10 @@ void WebContentsImpl::NotifyWebContentsLostFocus( } void WebContentsImpl::SystemDragEnded(RenderWidgetHost* source_rwh) { + if (delegate_) { + delegate_->HandleDragEnded(); + } + OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::SystemDragEnded", "render_widget_host", source_rwh); if (source_rwh) { @@ -8257,60 +8320,6 @@ void WebContentsImpl::OpenColorChooser( } #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) -#if BUILDFLAG(ENABLE_PPAPI) -void WebContentsImpl::OnPepperInstanceCreated(RenderFrameHostImpl* source, - int32_t pp_instance) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperInstanceCreated", - "render_frame_host", source); - observers_.NotifyObservers(&WebContentsObserver::PepperInstanceCreated); - pepper_playback_observer_->PepperInstanceCreated(source, pp_instance); -} - -void WebContentsImpl::OnPepperInstanceDeleted(RenderFrameHostImpl* source, - int32_t pp_instance) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperInstanceDeleted", - "render_frame_host", source); - observers_.NotifyObservers(&WebContentsObserver::PepperInstanceDeleted); - pepper_playback_observer_->PepperInstanceDeleted(source, pp_instance); -} - -void WebContentsImpl::OnPepperPluginHung(RenderFrameHostImpl* source, - int plugin_child_id, - const base::FilePath& path, - bool is_hung) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperPluginHung", - "render_frame_host", source); - observers_.NotifyObservers(&WebContentsObserver::PluginHungStatusChanged, - plugin_child_id, path, is_hung); -} - -void WebContentsImpl::OnPepperStartsPlayback(RenderFrameHostImpl* source, - int32_t pp_instance) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperStartsPlayback", - "render_frame_host", source); - pepper_playback_observer_->PepperStartsPlayback(source, pp_instance); -} - -void WebContentsImpl::OnPepperStopsPlayback(RenderFrameHostImpl* source, - int32_t pp_instance) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperStopsPlayback", - "render_frame_host", source); - pepper_playback_observer_->PepperStopsPlayback(source, pp_instance); -} - -void WebContentsImpl::OnPepperPluginCrashed(RenderFrameHostImpl* source, - const base::FilePath& plugin_path, - base::ProcessId plugin_pid) { - OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::OnPepperPluginCrashed", - "render_frame_host", source); - // TODO(nick): Eliminate the |plugin_pid| parameter, which can't be trusted, - // and is only used by WebTestControlHost. - observers_.NotifyObservers(&WebContentsObserver::PluginCrashed, plugin_path, - plugin_pid); -} - -#endif // BUILDFLAG(ENABLE_PPAPI) - void WebContentsImpl::UpdateFaviconURL( RenderFrameHostImpl* source, const std::vector& candidates) { @@ -8609,6 +8618,16 @@ void WebContentsImpl::RenderFrameCreated( if (safe_area_insets_host_) { safe_area_insets_host_->RenderFrameCreated(render_frame_host); } + +#if BUILDFLAG(IS_ANDROID) + if (base::FeatureList::IsEnabled(features::kSubframeImportance) && + render_frame_host->GetParent() && + render_frame_host->frame_tree()->is_primary()) { + if (auto* rwh = render_frame_host->GetLocalRenderWidgetHost()) { + rwh->SetImportance(primary_subframe_importance_); + } + } +#endif } void WebContentsImpl::RenderFrameDeleted( @@ -8620,9 +8639,6 @@ void WebContentsImpl::RenderFrameDeleted( observers_.NotifyObservers(&WebContentsObserver::RenderFrameDeleted, render_frame_host); } -#if BUILDFLAG(ENABLE_PPAPI) - pepper_playback_observer_->RenderFrameDeleted(render_frame_host); -#endif if (safe_area_insets_host_) { safe_area_insets_host_->RenderFrameDeleted(render_frame_host); @@ -9521,9 +9537,8 @@ void WebContentsImpl::RecursivelyConstructAXTree( std::vector& nodes) { nodes.push_back(node->data()); - for (auto iter = node->AllChildrenBegin(); iter != node->AllChildrenEnd(); - ++iter) { - RecursivelyConstructAXTree(&(*iter), nodes); + for (ui::AXNode* child : node->GetAllChildren()) { + RecursivelyConstructAXTree(child, nodes); } } @@ -10449,7 +10464,7 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( } const auto proxy_routing_id = - proxy_host ? proxy_host->GetRoutingID() : MSG_ROUTING_NONE; + proxy_host ? proxy_host->GetRoutingID() : IPC::mojom::kRoutingIdNone; // TODO(crbug.com/40166243): Given MPArch, should we pass // opened_by_another_window_ for non primary FrameTrees? if (!rvh_impl->CreateRenderView(opener_frame_token, proxy_routing_id, @@ -10481,10 +10496,14 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( ReattachOuterDelegateIfNeeded(); } - SetHistoryIndexAndLengthForView( - render_view_host, - rvh_impl->frame_tree()->controller().GetLastCommittedEntryIndex(), - rvh_impl->frame_tree()->controller().GetEntryCount()); + // With SetHistoryInfoOnViewCreation enabled, the history and index length are + // sent as part of the the CreateView() IPC via the CreateViewParams. + if (!base::FeatureList::IsEnabled(features::kSetHistoryInfoOnViewCreation)) { + SetHistoryIndexAndLengthForView( + render_view_host, + rvh_impl->frame_tree()->controller().GetLastCommittedEntryIndex(), + rvh_impl->frame_tree()->controller().GetEntryCount()); + } #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) // Force a ViewMsg_Resize to be sent, needed to make plugins show up on @@ -10628,8 +10647,8 @@ void WebContentsImpl::OnDialogClosed(int render_process_id, std::vector page_handlers = protocol::PageHandler::EnabledForWebContents(this); for (auto* handler : page_handlers) { - handler->DidCloseJavaScriptDialog(rfh->devtools_frame_token(), - success, user_input); + handler->DidCloseJavaScriptDialog(rfh->devtools_frame_token(), success, + user_input); } is_showing_javascript_dialog_ = false; @@ -10661,9 +10680,9 @@ WebContentsImpl::GetFaviconURLs() { return GetPrimaryMainFrame()->FaviconURLs(); } -// The Mac implementation of the next two methods is in -// web_contents_impl_mac.mm -#if !BUILDFLAG(IS_MAC) +// The Mac and iOS implementations of the next two methods are in +// web_contents_impl_mac.mm and web_contents_impl_ios.mm. +#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_IOS) void WebContentsImpl::Resize(const gfx::Rect& new_bounds) { OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::Resize"); @@ -10685,13 +10704,10 @@ gfx::Size WebContentsImpl::GetSize() { #elif BUILDFLAG(IS_ANDROID) ui::ViewAndroid* view_android = GetNativeView(); return view_android->GetSizeDIPs(); -#elif BUILDFLAG(IS_IOS) - // TODO(crbug.com/40254930): Implement me. - NOTREACHED(); #endif } -#endif // !BUILDFLAG(IS_MAC) +#endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_IOS) gfx::Rect WebContentsImpl::GetWindowsControlsOverlayRect() const { return window_controls_overlay_rect_; @@ -11234,8 +11250,7 @@ WebContentsImpl::CreateAudioStreamFactory() { broker_factory = AudioStreamBrokerFactory::CreateImpl(); } return std::make_unique( - this, - std::move(broker_factory)); + this, std::move(broker_factory)); } void WebContentsImpl::MediaStartedPlaying( @@ -11424,8 +11439,7 @@ void WebContentsImpl::IsClipboardPasteAllowedWrapperCallback( std::optional> WebContentsImpl::GetClipboardTypesIfPolicyApplied( const ui::ClipboardSequenceNumberToken& seqno) { - return GetContentClient()->browser()->GetClipboardTypesIfPolicyApplied( - seqno); + return GetContentClient()->browser()->GetClipboardTypesIfPolicyApplied(seqno); } void WebContentsImpl::BindScreenOrientation( @@ -11748,26 +11762,24 @@ void WebContentsImpl::ForEachRenderViewHost( if ((view_mask & (ForEachRenderViewHostTypes::kPrerenderViews | ForEachRenderViewHostTypes::kActiveViews)) != 0) { - ForEachFrameTree( - [view_mask, &render_view_hosts](FrameTree& frame_tree) { - // Check the view masks. - if (frame_tree.is_prerendering()) { - // We are in a prerendering page. - if ((view_mask & ForEachRenderViewHostTypes::kPrerenderViews) == - 0) { - return; - } - } else { - // We are in an active page. - if ((view_mask & ForEachRenderViewHostTypes::kActiveViews) == 0) { - return; - } - } - frame_tree.ForEachRenderViewHost( - [&render_view_hosts](RenderViewHostImpl* rvh) { - render_view_hosts.insert(rvh); - }); - }); + ForEachFrameTree([view_mask, &render_view_hosts](FrameTree& frame_tree) { + // Check the view masks. + if (frame_tree.is_prerendering()) { + // We are in a prerendering page. + if ((view_mask & ForEachRenderViewHostTypes::kPrerenderViews) == 0) { + return; + } + } else { + // We are in an active page. + if ((view_mask & ForEachRenderViewHostTypes::kActiveViews) == 0) { + return; + } + } + frame_tree.ForEachRenderViewHost( + [&render_view_hosts](RenderViewHostImpl* rvh) { + render_view_hosts.insert(rvh); + }); + }); } if ((view_mask & ForEachRenderViewHostTypes::kBackForwardCacheViews) != 0) { @@ -11790,6 +11802,16 @@ void WebContentsImpl::NotifyPageBecamePrimary(PageImpl& page) { DCHECK_EQ(&page, &GetPrimaryPage()); +#if BUILDFLAG(IS_ANDROID) + // Apply the cached subframe importance if it is set. This is needed for + // pages restored from back/forward cache. Note that we don't need to clear + // importance for non-primary pages because the importance is ignored at + // RenderWidgetHostImpl::GetPriority() and updated when it becomes inactive. + if (base::FeatureList::IsEnabled(features::kSubframeImportance)) { + ApplyPrimaryPageSubframeImportance(); + } +#endif + // Clear |save_package_| since the primary page changed. if (save_package_) { save_package_->ClearPage(); @@ -12057,17 +12079,20 @@ std::unique_ptr WebContentsImpl::StartPrerendering( const std::optional&)> url_match_predicate, base::RepeatingCallback - prerender_navigation_handle_callback) { + prerender_navigation_handle_callback, + bool allow_reuse) { PrerenderAttributes attributes( prerendering_url, trigger_type, embedder_histogram_suffix, /*speculation_rules_params=*/std::nullopt, content::Referrer(), no_vary_search_hint, /*initiator_render_frame_host=*/nullptr, GetWeakPtr(), page_transition, should_warm_up_compositor, should_prepare_paint_tree, + /*should_pause_javascript_execution=*/false, std::move(url_match_predicate), std::move(prerender_navigation_handle_callback), base::WrapRefCounted( - static_cast(preload_pipeline_info.get()))); + static_cast(preload_pipeline_info.get())), + allow_reuse); #if BUILDFLAG(IS_ANDROID) attributes.additional_headers = std::move(additional_headers); #else @@ -12253,6 +12278,10 @@ void WebContentsImpl::WarmUpAndroidSpareRenderer() { if (GetBrowserContext()->ShutdownStarted()) { return; } + if (!GetLastCommittedURL().SchemeIsHTTPOrHTTPS() && + features::kAndroidSpareRendererOnlyWarmupAfterWebPageLoaded.Get()) { + return; + } int renderer_timeout_seconds = features::kAndroidSpareRendererTimeoutSeconds.Get(); if (renderer_timeout_seconds < 0) { diff --git a/tools/under-control/src/content/child/runtime_features.cc b/tools/under-control/src/content/child/runtime_features.cc index ff7b85c2..0abe213d 100755 --- a/tools/under-control/src/content/child/runtime_features.cc +++ b/tools/under-control/src/content/child/runtime_features.cc @@ -301,8 +301,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(device::features::kWebXrIncubations)}, {wf::EnableWebXRGPUBinding, raw_ref(device::features::kWebXrWebGpuBinding)}, - {wf::EnableWebXRHandInput, - raw_ref(device::features::kWebXrHandInput)}, {wf::EnableWebXRImageTracking, raw_ref(device::features::kWebXrIncubations)}, {wf::EnableWebXRLayers, raw_ref(device::features::kWebXrLayers)}, @@ -353,7 +351,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { #endif {"CompressionDictionaryTransport", raw_ref(network::features::kCompressionDictionaryTransport)}, - {"ClipboardChangeEvent", raw_ref(features::kClipboardChangeEvent)}, {"CompressionDictionaryTransportBackend", raw_ref(network::features::kCompressionDictionaryTransportBackend)}, {"CookieDeprecationFacilitatedTesting", @@ -404,9 +401,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kTrustedTypesFromLiteral)}, {"MediaStreamTrackTransfer", raw_ref(features::kMediaStreamTrackTransfer)}, - {"PrivateNetworkAccessPermissionPrompt", - raw_ref(network::features::kPrivateNetworkAccessPermissionPrompt), - kSetOnlyIfOverridden}, {"ExperimentalMachineLearningNeuralNetwork", raw_ref(webnn::mojom::features:: kExperimentalWebMachineLearningNeuralNetwork), @@ -542,6 +536,12 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableBackForwardCache( content::IsBackForwardCacheEnabled()); + + WebRuntimeFeatures::EnableLocalNetworkAccessWebRTC( + base::FeatureList::IsEnabled( + network::features::kLocalNetworkAccessChecks) && + base::FeatureList::IsEnabled( + network::features::kLocalNetworkAccessChecksWebRTC)); } // Ensures that the various ways of enabling/disabling features do not produce 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 acedc332..689203b1 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 @@ -34,7 +34,6 @@ #include "content/public/browser/client_certificate_delegate.h" #include "content/public/browser/devtools_manager_delegate.h" #include "content/public/browser/digital_identity_provider.h" -#include "content/public/browser/identity_request_dialog_controller.h" #include "content/public/browser/legacy_tech_cookie_issue_details.h" #include "content/public/browser/login_delegate.h" #include "content/public/browser/navigation_throttle.h" @@ -44,17 +43,16 @@ #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/private_network_device_delegate.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/responsiveness_calculator_delegate.h" #include "content/public/browser/sms_fetcher.h" #include "content/public/browser/speculation_host_delegate.h" #include "content/public/browser/tracing_delegate.h" #include "content/public/browser/url_loader_request_interceptor.h" -#include "content/public/browser/vpn_service_proxy.h" #include "content/public/browser/web_authentication_delegate.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_view_delegate.h" +#include "content/public/browser/webid/identity_request_dialog_controller.h" #include "content/public/common/alternative_error_page_override_info.mojom.h" #include "content/public/common/content_features.h" #include "content/public/common/url_utils.h" @@ -384,6 +382,11 @@ bool ContentBrowserClient::ShouldEnableStrictSiteIsolation() { #endif } +std::optional +ContentBrowserClient::GetOverrideValueForOriginKeyedProcesses() { + return std::nullopt; +} + bool ContentBrowserClient::ShouldDisableSiteIsolation( SiteIsolationMode site_isolation_mode) { return false; @@ -518,6 +521,11 @@ bool ContentBrowserClient::AllowServiceWorkerToControlSrcdocIframe( return true; } +bool ContentBrowserClient::IsServiceWorkerAutoPreloadAllowed( + BrowserContext* context) { + return true; +} + bool ContentBrowserClient::AllowSharedWorkerBlobURLFix( BrowserContext* context) { return true; @@ -919,33 +927,6 @@ std::optional ContentBrowserClient::GetLocalTracesDirectory() { return std::nullopt; } -BrowserPpapiHost* ContentBrowserClient::GetExternalBrowserPpapiHost( - int plugin_process_id) { - return nullptr; -} - -bool ContentBrowserClient::AllowPepperSocketAPI( - BrowserContext* browser_context, - const GURL& url, - bool private_api, - const SocketPermissionRequest* params) { - DCHECK(browser_context); - return false; -} - -bool ContentBrowserClient::IsPepperVpnProviderAPIAllowed( - BrowserContext* browser_context, - const GURL& url) { - DCHECK(browser_context); - return false; -} - -std::unique_ptr ContentBrowserClient::GetVpnServiceProxy( - BrowserContext* browser_context) { - DCHECK(browser_context); - return nullptr; -} - std::unique_ptr ContentBrowserClient::CreateSelectFilePolicy(WebContents* web_contents) { return nullptr; @@ -975,22 +956,6 @@ bool ContentBrowserClient::IsSystemWideTracingEnabled() { return false; } -bool ContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle( - BrowserContext* browser_context, - const GURL& url) { - DCHECK(browser_context); - return false; -} - -bool ContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs( - BrowserContext* browser_context, - const GURL& url) { - // |browser_context| may be null (e.g. when called from - // PpapiPluginProcessHost::PpapiPluginProcessHost). - - return false; -} - mojo::Remote ContentBrowserClient::RunSecondaryMediaService() { return mojo::Remote(); @@ -1090,6 +1055,10 @@ bool ContentBrowserClient::ShouldEnableAudioProcessHighPriority() { return false; } +bool ContentBrowserClient::ShouldRestrictCoreSharingOnRenderer() { + return false; +} + #endif // BUILDFLAG(IS_WIN) std::vector> @@ -1255,9 +1224,10 @@ bool ContentBrowserClient::SupportsAvoidUnnecessaryBeforeUnloadCheckSync() { return true; } -bool ContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange( +ContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChangeResult +ContentBrowserClient::ShouldAllowSameSiteRenderFrameHostChange( const RenderFrameHost& rfh) { - return true; + return ShouldAllowSameSiteRenderFrameHostChangeResult::kAllowed; } bool ContentBrowserClient::AllowRenderingMhtmlOverHttp( @@ -1302,11 +1272,6 @@ UsbDelegate* ContentBrowserClient::GetUsbDelegate() { return nullptr; } -PrivateNetworkDeviceDelegate* -ContentBrowserClient::GetPrivateNetworkDeviceDelegate() { - return nullptr; -} - FontAccessDelegate* ContentBrowserClient::GetFontAccessDelegate() { return nullptr; } @@ -1891,6 +1856,7 @@ void ContentBrowserClient::BindAIManager( } void ContentBrowserClient::BindTranslationManager( + RenderProcessHost* process_host, BrowserContext* browser_context, base::SupportsUserData* context_user_data, const url::Origin& origin, diff --git a/tools/under-control/src/extensions/common/api/alarms.idl b/tools/under-control/src/extensions/common/api/alarms.idl deleted file mode 100755 index c48c0f62..00000000 --- a/tools/under-control/src/extensions/common/api/alarms.idl +++ /dev/null @@ -1,104 +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. - -// Use the chrome.alarms API to schedule code to run -// periodically or at a specified time in the future. -namespace alarms { - dictionary Alarm { - // Name of this alarm. - DOMString name; - - // Time at which this alarm was scheduled to fire, in milliseconds past the - // epoch (e.g. Date.now() + n). For performance reasons, the - // alarm may have been delayed an arbitrary amount beyond this. - double scheduledTime; - - // If not null, the alarm is a repeating alarm and will fire again in - // periodInMinutes minutes. - double? periodInMinutes; - }; - - // TODO(mpcomplete): rename to CreateInfo when http://crbug.com/123073 is - // fixed. - dictionary AlarmCreateInfo { - // Time at which the alarm should fire, in milliseconds past the epoch - // (e.g. Date.now() + n). - double? when; - - // Length of time in minutes after which the onAlarm event - // should fire. - // - // - double? delayInMinutes; - - // If set, the onAlarm event should fire every periodInMinutes - // minutes after the initial event specified by when or - // delayInMinutes. If not set, the alarm will only fire once. - // - // - double? periodInMinutes; - }; - - callback VoidCallback = void (); - callback AlarmCallback = void (optional Alarm alarm); - callback AlarmListCallback = void (Alarm[] alarms); - callback ClearCallback = void (boolean wasCleared); - - interface Functions { - // Creates an alarm. Near the time(s) specified by alarmInfo, - // the onAlarm event is fired. If there is another alarm with - // the same name (or no name if none is specified), it will be cancelled and - // replaced by this alarm. - // - // In order to reduce the load on the user's machine, Chrome limits alarms - // to at most once every 30 seconds but may delay them an arbitrary amount - // more. That is, setting delayInMinutes or - // periodInMinutes to less than 0.5 will not be - // honored and will cause a warning. when can be set to less - // than 30 seconds after "now" without warning but won't actually cause the - // alarm to fire for at least 30 seconds. - // - // To help you debug your app or extension, when you've loaded it unpacked, - // there's no limit to how often the alarm can fire. - // - // |name|: Optional name to identify this alarm. Defaults to the empty - // string. - // |alarmInfo|: Describes when the alarm should fire. The initial time must - // be specified by either when or delayInMinutes (but - // not both). If periodInMinutes is set, the alarm will repeat - // every periodInMinutes minutes after the initial event. If - // neither when or delayInMinutes is set for a - // repeating alarm, periodInMinutes is used as the default for - // delayInMinutes. - // |callback|: Invoked when the alarm has been created. - static void create( - optional DOMString name, - AlarmCreateInfo alarmInfo, - optional VoidCallback callback); - - // Retrieves details about the specified alarm. - // |name|: The name of the alarm to get. Defaults to the empty string. - static void get( - optional DOMString name, - AlarmCallback callback); - - // Gets an array of all the alarms. - static void getAll(AlarmListCallback callback); - - // Clears the alarm with the given name. - // |name|: The name of the alarm to clear. Defaults to the empty string. - static void clear( - optional DOMString name, - optional ClearCallback callback); - - // Clears all alarms. - static void clearAll(optional ClearCallback callback); - }; - - interface Events { - // Fired when an alarm has elapsed. Useful for event pages. - // |alarm|: The alarm that has elapsed. - static void onAlarm(Alarm alarm); - }; -}; diff --git a/tools/under-control/src/extensions/common/api/automation.idl b/tools/under-control/src/extensions/common/api/automation.idl index 65cd77e3..615005b1 100755 --- a/tools/under-control/src/extensions/common/api/automation.idl +++ b/tools/under-control/src/extensions/common/api/automation.idl @@ -384,7 +384,7 @@ vertical, visited, hasActions, - hasInterestTarget + hasInterestFor }; // All possible actions that can be performed on automation nodes. @@ -478,7 +478,7 @@ caption, contents, cssAltText, - interestTarget, + interestFor, placeholder, popoverTarget, prohibited, @@ -492,7 +492,7 @@ ariaDescription, attributeExplicitlyEmpty, buttonLabel, - interestTarget, + interestFor, popoverTarget, prohibitedNameRepair, relatedElement, diff --git a/tools/under-control/src/extensions/common/api/protocol_handlers.idl b/tools/under-control/src/extensions/common/api/protocol_handlers.idl new file mode 100755 index 00000000..d25ed298 --- /dev/null +++ b/tools/under-control/src/extensions/common/api/protocol_handlers.idl @@ -0,0 +1,27 @@ +// 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. + +// `protocol_handlers` manifest key defintion. Protocol Handlers allow developers +// to let extensions register Custom Handlers for URL's schemes unknown to the +// Browser. This manifest key provides a similar behavior than the Web API +// implementing the Custom Handlers section of the HTML specification. +// https://html.spec.whatwg.org/#custom-handlers +[generate_error_messages] namespace protocolHandlers { + + // A ProtocolHandler registers the register a Custom Hanlder for an unknown + // URL scheme. + // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers + dictionary ProtocolHandler { + // A string definition of the protocol to handle. + DOMString protocol; + // A string representation of the protocol handlers, displayed to the user when prompting for permissions. + DOMString name; + // A string representing the URL of the protocol handler (must be a localizable property). + DOMString uriTemplate; + }; + + dictionary ManifestKeys { + ProtocolHandler[] protocol_handlers; + }; +}; diff --git a/tools/under-control/src/gin/v8_initializer.cc b/tools/under-control/src/gin/v8_initializer.cc index f37529e1..fe0e40ad 100755 --- a/tools/under-control/src/gin/v8_initializer.cc +++ b/tools/under-control/src/gin/v8_initializer.cc @@ -221,6 +221,7 @@ void SetV8FlagsIfOverridden(const base::Feature& feature, } constexpr std::string_view kV8FlagFeaturePrefix = "V8Flag_"; +constexpr std::string_view kV8FlagParam = "V8FlagParam"; } // namespace @@ -250,8 +251,15 @@ class V8FeatureVisitor : public base::FeatureVisitor { break; case base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE: - SetV8FlagsFormatted("--%s", flag_name.c_str()); - for (const auto& [param_name, param_value] : params) { + auto it = params.begin(); + if (it != params.end() && it->first == kV8FlagParam) { + SetV8FlagsFormatted("--%s=%s", flag_name.c_str(), it->second.c_str()); + ++it; + } else { + SetV8FlagsFormatted("--%s", flag_name.c_str()); + } + for (; it != params.end(); ++it) { + const auto& [param_name, param_value] = *it; SetV8FlagsFormatted("--%s=%s", param_name.c_str(), param_value.c_str()); } @@ -317,6 +325,16 @@ void SetFeatureFlags() { // will be converted, on V8 initialization, to V8 flags: // // --foo --bar --bar_param=20 --no-baz + // + // If an argument is needed for the main flag, a "V8FlagParam" param can be be + // used as the first parameter. Additional parameters can still be passed. For + // example, running Chromium with: + // + // --enable-features=V8Flag_foo:V8FlagParam/bar/baz_param/20 + // + // will be converted to these V8 flags: + // + // --foo=bar --baz_param=20 V8FeatureVisitor feature_visitor; base::FeatureList::VisitFeaturesAndParams(feature_visitor, kV8FlagFeaturePrefix); @@ -391,6 +409,10 @@ void SetFeatureFlags() { SetV8FlagsFormatted("--preconfigured-old-space-size=%i", features::kV8PreconfigureOldGenSize.Get()); } + if (base::FeatureList::IsEnabled(features::kV8HighEndAndroid)) { + SetV8FlagsFormatted("--high-end-android-physical-memory-threshold=%i", + features::kV8HighEndAndroidMemoryThreshold.Get()); + } SetV8FlagsIfOverridden(features::kV8IncrementalMarkingStartUserVisible, "--incremental-marking-start-user-visible", "--no-incremental-marking-start-user-visible"); @@ -463,23 +485,6 @@ void SetFeatureFlags() { } } - if (base::FeatureList::IsEnabled(features::kV8EfficiencyModeTiering)) { - int delay = features::kV8EfficiencyModeTieringDelayTurbofan.Get(); - if (delay == 0) { - SetV8FlagsFormatted( - "--efficiency-mode-for-tiering-heuristics " - "--efficiency-mode-disable-turbofan"); - } else { - SetV8FlagsFormatted( - "--efficiency-mode-for-tiering-heuristics " - "--noefficiency-mode-disable-turbofan " - "--efficiency-mode-delay-turbofan=%i", - delay); - } - } else { - SetV8FlagsFormatted("--no-efficiency-mode-for-tiering-heuristics"); - } - // Make sure aliases of kV8SlowHistograms only enable the feature to // avoid contradicting settings between multiple finch experiments. bool any_slow_histograms_alias = @@ -526,13 +531,7 @@ void SetFeatureFlags() { SetV8FlagsIfOverridden(features::kJavaScriptPromiseTry, "--js-promise-try", "--no-js-promise-try"); - // WebAssembly features. - - SetV8FlagsIfOverridden(features::kWebAssemblyDeopt, "--wasm-deopt", - "--no-wasm-deopt"); - SetV8FlagsIfOverridden(features::kWebAssemblyInliningCallIndirect, - "--wasm-inlining-call-indirect", - "--no-wasm-inlining-call-indirect"); + // WebAssembly features (currently none). } } // namespace diff --git a/tools/under-control/src/services/network/network_context.cc b/tools/under-control/src/services/network/network_context.cc index b19bfa46..553d9c01 100755 --- a/tools/under-control/src/services/network/network_context.cc +++ b/tools/under-control/src/services/network/network_context.cc @@ -476,11 +476,12 @@ void TestVerifyCertCallback( std::move(callback).Run(result); } -std::string HashesToBase64String(const net::HashValueVector& hashes) { +std::string HashesToBase64String( + const absl::flat_hash_set& hashes) { std::vector strings; strings.reserve(hashes.size()); for (const auto& hash : hashes) { - strings.push_back(hash.ToString()); + strings.push_back(net::HashValue(hash).ToString()); } return base::JoinString(strings, ","); } @@ -1950,6 +1951,7 @@ void NetworkContext::CreateWebTransport( const url::Origin& origin, const net::NetworkAnonymizationKey& key, std::vector fingerprints, + const std::vector& application_protocols, mojo::PendingRemote pending_handshake_client) { if (!IsNetworkForNonceAndUrlAllowed( @@ -1960,9 +1962,9 @@ void NetworkContext::CreateWebTransport( net::WebTransportError(net::ERR_NETWORK_ACCESS_REVOKED)); return; } - web_transports_.insert( - std::make_unique(url, origin, key, fingerprints, this, - std::move(pending_handshake_client))); + web_transports_.insert(std::make_unique( + url, origin, key, fingerprints, application_protocols, this, + std::move(pending_handshake_client))); } void NetworkContext::CreateNetLogExporter( @@ -1988,8 +1990,8 @@ void NetworkContext::ResolveHost( remote_response_client->OnComplete( net::ERR_NETWORK_ACCESS_REVOKED, net::ResolveErrorInfo(net::ERR_NETWORK_ACCESS_REVOKED), - /*resolved_addresses=*/std::nullopt, - /*endpoint_results_with_metadata=*/std::nullopt); + /*resolved_addresses=*/{}, + /*alternative_endpoints=*/{}); return; } @@ -2793,7 +2795,12 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } else { // Network-bound NetworkContexts should not persist state on disk. CHECK(!is_network_bound); + cache_params.path = params_->file_paths->http_cache_directory->path(); + if (params_->file_paths->no_vary_search_directory) { + cache_params.no_vary_search_path = + params_->file_paths->no_vary_search_directory->path(); + } cache_params.type = network_session_configurator::ChooseCacheType(); if (params_->http_cache_file_operations_factory) { cache_params.file_operations_factory = 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 947f5eb1..e887bbb4 100755 --- a/tools/under-control/src/testing/variations/fieldtrial_testing_config.json +++ b/tools/under-control/src/testing/variations/fieldtrial_testing_config.json @@ -180,6 +180,21 @@ ] } ], + "AccessibilityManifestV3AccessibilityCommon": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AccessibilityManifestV3AccessibilityCommon" + ] + } + ] + } + ], "AccessibilityManifestV3BrailleIme": [ { "platforms": [ @@ -195,6 +210,21 @@ ] } ], + "AccessibilityManifestV3EnhancedNetworkTts": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AccessibilityManifestV3EnhancedNetworkTts" + ] + } + ] + } + ], "AccessibilityManifestV3EspeakNGTts": [ { "platforms": [ @@ -282,13 +312,13 @@ ], "experiments": [ { - "name": "Control", + "name": "Control2025-07-08", "disable_features": [ "AccessibilityPerformanceMeasurementExperiment" ] }, { - "name": "EnabledWithAXModeComplete", + "name": "EnabledWithAXModeComplete2025-07-08", "params": { "accessibility_performance_group_name": "AXModeComplete" }, @@ -297,7 +327,7 @@ ] }, { - "name": "EnabledWithWebContentsOnly", + "name": "EnabledWithWebContentsOnly2025-07-08", "params": { "accessibility_performance_group_name": "WebContentsOnly" }, @@ -306,7 +336,7 @@ ] }, { - "name": "EnabledWithAXModeCompleteNoInlineTextBoxes", + "name": "EnabledWithAXModeCompleteNoInlineTextBoxes2025-07-08", "params": { "accessibility_performance_group_name": "AXModeCompleteNoInlineTextBoxes" }, @@ -315,7 +345,7 @@ ] }, { - "name": "EnabledWithRendererSerializationOnly", + "name": "EnabledWithRendererSerializationOnly2025-07-08", "params": { "accessibility_performance_group_name": "RendererSerializationOnly" }, @@ -363,7 +393,8 @@ "AccessibilityTextFormatting": [ { "platforms": [ - "android" + "android", + "android_webview" ], "experiments": [ { @@ -413,39 +444,6 @@ ] } ], - "AdaptiveChargingParamTuning": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Experimental_20231205", - "params": { - "adaptive_charging_min_probability": "0.5" - }, - "enable_features": [ - "AdaptiveCharging" - ] - } - ] - } - ], - "AddAddressManually": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AddAddressManually" - ] - } - ] - } - ], "AddSuggestStrongPasswordFromAddPassword": [ { "platforms": [ @@ -540,21 +538,6 @@ ] } ], - "AllowTabClosingUponMinimization": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AllowTabClosingUponMinimization" - ] - } - ] - } - ], "AndroidAnimateSuggestionsListAppearance": [ { "platforms": [ @@ -585,30 +568,6 @@ ] } ], - "AndroidAppIntegrationMultiDataSource": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_SkipSchemaCheck", - "params": { - "multi_data_source_skip_schema_check": "true" - }, - "enable_features": [ - "AndroidAppIntegrationMultiDataSource" - ] - }, - { - "name": "Enabled", - "enable_features": [ - "AndroidAppIntegrationMultiDataSource" - ] - } - ] - } - ], "AndroidBookmarkBar": [ { "platforms": [ @@ -625,6 +584,21 @@ ] } ], + "AndroidBookmarkHistoryPane": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledWithHistoryPane", + "enable_features": [ + "HistoryPaneAndroid" + ] + } + ] + } + ], "AndroidBottomToolbar": [ { "platforms": [ @@ -664,7 +638,7 @@ ] } ], - "AndroidDumpOnScrollWithoutResource": [ + "AndroidDesktopWebPrefsLargeDisplays": [ { "platforms": [ "android" @@ -673,7 +647,24 @@ { "name": "Enabled", "enable_features": [ - "AndroidDumpOnScrollWithoutResource" + "AndroidDesktopWebPrefsLargeDisplays" + ] + } + ] + } + ], + "AndroidDeviceContentFilters": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AllowNonFamilyLinkUrlFilterMode", + "PropagateDeviceContentFiltersToSupervisedUser", + "SupervisedUserInterstitialWithoutApprovals" ] } ] @@ -698,6 +689,21 @@ ] } ], + "AndroidHubSearchTabGroups": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidHubSearchTabGroups" + ] + } + ] + } + ], "AndroidLowLatencyCanvas": [ { "platforms": [ @@ -754,21 +760,6 @@ ] } ], - "AndroidMinimalUiLargeScreen": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AndroidMinimalUiLargeScreen" - ] - } - ] - } - ], "AndroidPdfSummarization": [ { "platforms": [ @@ -806,11 +797,30 @@ "android_webview" ], "experiments": [ + { + "name": "EnabledBoth_20250704", + "enable_features": [ + "InputScenarioPriorityBoost", + "RaiseDisplayCriticalThreadPriority" + ] + }, + { + "name": "EnabledRaiseDisplayCriticalThreadPriority_20250704", + "enable_features": [ + "RaiseDisplayCriticalThreadPriority" + ] + }, { "name": "Enabled", "enable_features": [ "RaiseDisplayCriticalThreadPriority" ] + }, + { + "name": "EnabledInputScenarioPriorityBoost_20250704", + "enable_features": [ + "InputScenarioPriorityBoost" + ] } ] } @@ -836,6 +846,25 @@ ] } ], + "AndroidReaderModeUseReadability": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "EnabledDistillerOnly", + "params": { + "use_distiller": "true", + "use_heuristic": "false" + }, + "enable_features": [ + "ReaderModeUseReadability" + ] + } + ] + } + ], "AndroidSandboxRendererProcessPolicy": [ { "platforms": [ @@ -860,9 +889,11 @@ ], "experiments": [ { - "name": "CreateWithoutServiceGroupImportance", + "name": "CreateWithLowestRanking", "params": { "kill_when_backgrounded": "true", + "lowest-ranking": "true", + "not-perceptible-binding": "false", "omnibox_spare_renderer_delay_ms": "500", "spare_renderer_creation_delay_ms": "2000", "spare_renderer_creation_timing": "after-loading", @@ -870,9 +901,7 @@ }, "enable_features": [ "AndroidWarmUpSpareRendererWithTimeout", - "OverrideAndroidOmniboxSpareRendererDelay" - ], - "disable_features": [ + "OverrideAndroidOmniboxSpareRendererDelay", "ServiceGroupImportance", "SpareRendererProcessPriority" ] @@ -1001,21 +1030,6 @@ ] } ], - "AndroidTabStripLayoutOptimization": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabStripLayoutOptimization" - ] - } - ] - } - ], "AndroidThemeModule": [ { "platforms": [ @@ -1043,6 +1057,21 @@ ] } ], + "AndroidUseAdminsForEnterpriseInfo": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidUseAdminsForEnterpriseInfo" + ] + } + ] + } + ], "AndroidUseFrameIntervalDeciderAdaptiveFrameRate": [ { "platforms": [ @@ -1061,12 +1090,12 @@ "AndroidWebAppLaunchHandler": [ { "platforms": [ - "android" + "android_webview" ], "experiments": [ { - "name": "Enabled", - "enable_features": [ + "name": "Disabled", + "disable_features": [ "AndroidWebAppLaunchHandler" ] } @@ -1107,6 +1136,21 @@ ] } ], + "AndroidWindowPopupLargeScreen": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidWindowPopupLargeScreen" + ] + } + ] + } + ], "AnimatedDefaultBrowserPromoInFRE": [ { "platforms": [ @@ -1188,6 +1232,21 @@ ] } ], + "AppBoundDataReencrypt": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AppBoundDataReencrypt" + ] + } + ] + } + ], "AppListLaunchRecorder": [ { "platforms": [ @@ -1633,6 +1692,48 @@ ] } ], + "AttributionReportNavigationBasedRetry": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_third_retry", + "params": { + "navigation_retry_attempt": "third_retry" + }, + "enable_features": [ + "AttributionReportNavigationBasedRetry" + ] + }, + { + "name": "Enabled_second_retry", + "params": { + "navigation_retry_attempt": "second_retry" + }, + "enable_features": [ + "AttributionReportNavigationBasedRetry" + ] + }, + { + "name": "Enabled_first_retry", + "params": { + "navigation_retry_attempt": "first_retry" + }, + "enable_features": [ + "AttributionReportNavigationBasedRetry" + ] + } + ] + } + ], "AttributionReportingInBrowserMigration": [ { "platforms": [ @@ -1880,6 +1981,48 @@ ] } ], + "AutofillAiI18n": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAiIgnoreCapabilityCheck", + "AutofillAiIgnoreGeoIp", + "AutofillAiIgnoreLocale", + "AutofillAiIgnoreSignInState", + "AutofillAiIgnoreWhetherUserHasAddressOrPaymentsDataForIph", + "AutofillAiKnownTravelerNumber", + "AutofillAiNationalIdCard", + "AutofillAiRedressNumber" + ] + } + ] + } + ], + "AutofillAiIPHString": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_SeeHow", + "enable_features": [ + "IPH_AutofillAiOptIn" + ] + } + ] + } + ], "AutofillAiUs": [ { "platforms": [ @@ -1908,6 +2051,42 @@ ] } ], + "AutofillAndPasswordsInSameSurface": [ + { + "platforms": [ + "android", + "chromeos", + "chromeos_lacros", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAndPasswordsInSameSurface" + ] + } + ] + } + ], + "AutofillAndroidDesktopSuppressAccessoryOnEmpty": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillAndroidDesktopSuppressAccessoryOnEmpty" + ] + } + ] + } + ], "AutofillBetterLocalHeuristicPlaceholderSupport": [ { "platforms": [ @@ -1992,24 +2171,10 @@ ] } ], - "AutofillEnableCardBenefitsForAmericanExpress": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableCardBenefitsForAmericanExpress" - ] - } - ] - } - ], "AutofillEnableCardBenefitsForBmo": [ { "platforms": [ + "android", "chromeos", "chromeos_lacros", "linux", @@ -2026,40 +2191,6 @@ ] } ], - "AutofillEnableCardBenefitsIph": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableCardBenefitsIph", - "IPH_AutofillCreditCardBenefit" - ] - } - ] - } - ], - "AutofillEnableCardInfoRuntimeRetrieval": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillEnableCardInfoRuntimeRetrieval" - ] - } - ] - } - ], "AutofillEnableExpirationDateImprovements": [ { "platforms": [ @@ -2106,6 +2237,7 @@ "AutofillEnableFlatRateCardBenefitsFromCurinos": [ { "platforms": [ + "android", "chromeos", "chromeos_lacros", "linux", @@ -2181,6 +2313,27 @@ ] } ], + "AutofillEnableLoyaltyCardsFilling": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillEnableEmailOrLoyaltyCardsFilling", + "AutofillEnableLoyaltyCardsFilling", + "SyncAutofillLoyaltyCard" + ] + } + ] + } + ], "AutofillEnableNewCardProfileRankingAlgorithm": [ { "platforms": [ @@ -2202,16 +2355,20 @@ ] } ], - "AutofillEnableShowSaveCardSecurelyMessage": [ + "AutofillEnableNewFopDisplayDesktop": [ { "platforms": [ - "android" + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "AutofillEnableShowSaveCardSecurelyMessage" + "AutofillEnableNewFopDisplayDesktop" ] } ] @@ -2238,33 +2395,12 @@ ] } ], - "AutofillFixSplitCreditCardImport": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillFixSplitCreditCardImport" - ] - } - ] - } - ], - "AutofillGreekRegexes": [ + "AutofillEnableSyntheticSelectMetricsLogging": [ { "platforms": [ "android", "android_webview", "chromeos", - "ios", "linux", "mac", "windows" @@ -2273,28 +2409,7 @@ { "name": "Enabled", "enable_features": [ - "AutofillGreekRegexes" - ] - } - ] - } - ], - "AutofillHomeWorkProfileSuggestion": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "HomeAndWork_IPH_Enabled", - "params": { - "availability": "any", - "event_trigger": "name:home_and_work_address_suggestion_iph_trigger;comparator:<10;window:90;storage:360", - "event_used": "name:home_and_work_suggestion_accepted;comparator:<2;window:90;storage:360", - "session_rate": "<1" - }, - "enable_features": [ - "IPH_AutofillHomeWorkProfileSuggestion" + "AutofillEnableSyntheticSelectMetricsLogging" ] } ] @@ -2321,6 +2436,27 @@ ] } ], + "AutofillIgnoreCheckableElements": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillIgnoreCheckableElements" + ] + } + ] + } + ], "AutofillImproveAddressFieldSwapping": [ { "platforms": [ @@ -2464,26 +2600,6 @@ ] } ], - "AutofillOptimizeFormExtraction": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillOptimizeFormExtraction" - ] - } - ] - } - ], "AutofillPageLanguageDetection": [ { "platforms": [ @@ -2532,6 +2648,7 @@ "platforms": [ "android", "chromeos", + "ios", "linux", "mac", "windows" @@ -2579,24 +2696,6 @@ ] } ], - "AutofillPopupZOrderSecuritySurface_V2": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillPopupZOrderSecuritySurface" - ] - } - ] - } - ], "AutofillRelaxAddressImport": [ { "platforms": [ @@ -2654,6 +2753,26 @@ ] } ], + "AutofillServerExperimentalSignatures": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillServerExperimentalSignatures" + ] + } + ] + } + ], "AutofillServerUploadMoreData": [ { "platforms": [ @@ -2941,16 +3060,20 @@ ] } ], - "AutofillVirtualViewStructureAndroidPasskeyLongPress": [ + "AutomatedPasswordChangeStudy": [ { "platforms": [ - "android" + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "AutofillVirtualViewStructureAndroidPasskeyLongPress" + "ImprovedPasswordChangeService", + "PasswordChangeSubmissionMqlsLogging" ] } ] @@ -2971,6 +3094,21 @@ ] } ], + "AvatarButtonSyncPromoWindows": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AvatarButtonSyncPromo" + ] + } + ] + } + ], "AvoidDuplicateDelayBeginFrame": [ { "platforms": [ @@ -3260,6 +3398,25 @@ ] } ], + "BackForwardCacheWithSharedWorker": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250708", + "enable_features": [ + "BFCacheWithSharedWorker" + ] + } + ] + } + ], "BackForwardTransitions": [ { "platforms": [ @@ -3319,11 +3476,12 @@ "BackgroundNotPerceptibleBinding": [ { "platforms": [ - "android" + "android", + "android_webview" ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_20250728", "enable_features": [ "BackgroundNotPerceptibleBinding" ] @@ -3371,21 +3529,6 @@ ] } ], - "BatchTabRestore": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BatchTabRestore" - ] - } - ] - } - ], "BatteryBadgeIconEnabled": [ { "platforms": [ @@ -3459,6 +3602,21 @@ ] } ], + "BinderIpcTracing": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_20250522", + "enable_features": [ + "TraceBinderIpc" + ] + } + ] + } + ], "BiometricAuthPwdFillAndroid": [ { "platforms": [ @@ -3540,6 +3698,24 @@ ] } ], + "BlockfileCacheBackendDumpWithoutCrashing": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "dump_without_crashing_frequency": "0.02" + }, + "enable_features": [ + "BlockfileCacheBackendDumpWithoutCrashing" + ] + } + ] + } + ], "BluetoothQualityReport": [ { "platforms": [ @@ -3573,6 +3749,21 @@ ] } ], + "BocaMigrateSpeechRecongnizerClient": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "BocaMigrateSpeechRecongnizerClient" + ] + } + ] + } + ], "BocaOnTaskLockedQuizMigration": [ { "platforms": [ @@ -3588,21 +3779,6 @@ ] } ], - "BocaOnTaskMuteArcAudio": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BocaOnTaskMuteArcAudio" - ] - } - ] - } - ], "BookmarksUseBinaryTreeInTitledUrlIndex": [ { "platforms": [ @@ -3869,6 +4045,15 @@ "android" ], "experiments": [ + { + "name": "EnabledContextualPageActionOnly", + "params": { + "contextual_only": "true" + }, + "enable_features": [ + "CCTAdaptiveButton" + ] + }, { "name": "Disabled", "disable_features": [ @@ -3884,15 +4069,6 @@ "CCTAdaptiveButton" ] }, - { - "name": "EnabledContextualPageActionOnly", - "params": { - "contextual_only": "true" - }, - "enable_features": [ - "CCTAdaptiveButton" - ] - }, { "name": "EnabledContextualPageActionOnlyMenuOpenInBrowser", "params": { @@ -3959,7 +4135,8 @@ { "name": "Enabled", "enable_features": [ - "CCTEarlyNav" + "CCTEarlyNav", + "CCTFixWarmup" ] } ] @@ -3980,21 +4157,6 @@ ] } ], - "CCTFixWarmup": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CCTFixWarmup" - ] - } - ] - } - ], "CCTGoogleBottomBar": [ { "platforms": [ @@ -4179,33 +4341,6 @@ ] } ], - "CameraMicPreview": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "CameraOther_20250408", - "params": { - "action_filter": "Accepted,AcceptedOnce,Dismissed", - "probability": "0.6", - "prompt_disposition_reason_filter": "DefaultFallback", - "request_type_filter": "VideoCapture", - "survey_display_time": "OnPromptResolved", - "trigger_id": "jGykX8MLD0ugnJ3q1cK0NzqCtGvZ" - }, - "enable_features": [ - "CameraMicPreview", - "GetUserMediaDeferredDeviceSettingsSelection", - "PermissionsPromptSurvey" - ] - } - ] - } - ], "Canvas2DAutoFlushParams": [ { "platforms": [ @@ -4263,6 +4398,7 @@ "enable_features": [ "Canvas2DHibernation", "Canvas2DHibernationReleaseTransferMemory", + "CanvasHibernationSnapshotZstd", "ClearCanvasResourcesInBackground", "EvictionUnlocksResources" ] @@ -4270,25 +4406,6 @@ ] } ], - "CanvasHibernationSnapshotZstd": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "CanvasHibernationSnapshotZstd" - ] - } - ] - } - ], "CanvasNoise": [ { "platforms": [ @@ -4519,6 +4636,26 @@ ] } ], + "ChangeGeneratedCodeCacheSize": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ChangeGeneratedCodeCacheSize" + ] + } + ] + } + ], "CheckHTMLParserBudgetLessOften": [ { "platforms": [ @@ -5455,25 +5592,6 @@ ] } ], - "ChromnientSimplifiedSelection": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "SimplifiedSelectionEnabled", - "enable_features": [ - "LensOverlaySimplifiedSelection" - ] - } - ] - } - ], "ChromnientSurvey": [ { "platforms": [ @@ -5644,24 +5762,6 @@ ] } ], - "ClayBlockingEscapeHatch": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "escape_hatch_block_limit": "5" - }, - "enable_features": [ - "ClayBlocking" - ] - } - ] - } - ], "ClaySnackbarOnAndroid": [ { "platforms": [ @@ -5677,6 +5777,22 @@ ] } ], + "CleanupToBeNormalTermination": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled_20250728", + "enable_features": [ + "CleanupToBeNormalTermination" + ] + } + ] + } + ], "ClearBrowsingDataAndroidSurvey": [ { "platforms": [ @@ -5717,10 +5833,9 @@ ] } ], - "ClientSideDetectionAcceptHCAllowlist": [ + "ClientSideDetectionClipboardCopyApi": [ { "platforms": [ - "android", "chromeos", "linux", "mac", @@ -5730,24 +5845,7 @@ { "name": "Enabled", "enable_features": [ - "ClientSideDetectionAcceptHCAllowlist" - ] - } - ] - } - ], - "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection" + "ClientSideDetectionClipboardCopyApi" ] } ] @@ -5832,18 +5930,25 @@ ] } ], - "ClipboardChangeEvent": [ + "ClientSideDetectionShowLlamaScamVerdictWarning": [ { "platforms": [ - "chromeos", "linux", + "mac", "windows" ], "experiments": [ { - "name": "Enabled", + "name": "EnabledWithWarning", "enable_features": [ - "ClipboardChangeEvent" + "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection", + "ClientSideDetectionShowLlamaScamVerdictWarning" + ] + }, + { + "name": "EnabledMetricsCollection", + "enable_features": [ + "ClientSideDetectionLlamaForcedTriggerInfoForScamDetection" ] } ] @@ -6139,33 +6244,6 @@ ] } ], - "CommercePriceInsights": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "availability": "any", - "event_1": "name:price_insights_page_action_icon_label_in_trigger;comparator:any;window:0;storage:360", - "event_trigger": "name:price_insights_page_action_icon_label_in_trigger;comparator:any;window:0;storage:360", - "event_used": "name:price_insights_page_action_icon_label_used;comparator:any;window:0;storage:360", - "price-insights-show-feedback": "true", - "session_rate": "any" - }, - "enable_features": [ - "IPH_PriceInsightsPageActionIconLabelFeature", - "PriceInsights" - ] - } - ] - } - ], "CommitAvailableMemoryPressureThresholds": [ { "platforms": [ @@ -6350,23 +6428,6 @@ ] } ], - "ComposeV3Migration": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ComposeV3Migration" - ] - } - ] - } - ], "CompositeBackgroundColorAnimation": [ { "platforms": [ @@ -6477,7 +6538,7 @@ ] } ], - "ConchExpandTranscriptionLanguage": [ + "Conch": [ { "platforms": [ "chromeos" @@ -6486,7 +6547,7 @@ { "name": "Enabled", "enable_features": [ - "ConchExpandTranscriptionLanguage" + "Conch" ] } ] @@ -7237,7 +7298,7 @@ ] } ], - "CrOSLocalImageSearchIca": [ + "CrOSLocalImageSearchOcr": [ { "platforms": [ "chromeos" @@ -7246,8 +7307,7 @@ { "name": "Enabled", "enable_features": [ - "LauncherImageSearch", - "LauncherImageSearchIca" + "LauncherImageSearchOcr" ] } ] @@ -7271,6 +7331,23 @@ ] } ], + "CreateProfileIfNoneExists": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CreateProfileIfNoneExists" + ] + } + ] + } + ], "CreateURLLoaderPipeAsync": [ { "platforms": [ @@ -7358,7 +7435,7 @@ ] } ], - "CrosSeparateGeoApiKey": [ + "CrosCachedLocationProvider": [ { "platforms": [ "chromeos" @@ -7367,7 +7444,7 @@ { "name": "Enabled", "enable_features": [ - "CrosSeparateGeoApiKey" + "CachedLocationProvider" ] } ] @@ -7502,10 +7579,12 @@ { "name": "EnabledWithbase_60_30_30_30__20250507", "params": { + "FallbackInLowPowerMode": "false", "IdleTimeoutInSeconds": "60", "MaxPreconnectRetryInterval": "30", "MaxShortSessionThreshold": "30s", - "PingIntervalInSeconds": "30" + "PingIntervalInSeconds": "30", + "QuicConnectionOptions": "ECCP" }, "enable_features": [ "SearchEnginePreconnect2" @@ -7514,6 +7593,28 @@ ] } ], + "DSEPrewarm": [ + { + "platforms": [ + "chromeos", + "linux" + ], + "experiments": [ + { + "name": "EnabledWithFullPrewarmPage", + "params": { + "reuse_search_host": "true", + "url": "https://www.google.com/warmup.html", + "zero_suggest_trigger": "true" + }, + "enable_features": [ + "Prerender2ReuseHost", + "Prewarm" + ] + } + ] + } + ], "DTCAntivirusSignalEnabled": [ { "platforms": [ @@ -7581,25 +7682,6 @@ ] } ], - "DbscPhase1aStudy": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "dice-support": "enabled", - "exclusive-registration-path": "" - }, - "enable_features": [ - "EnableBoundSessionCredentials" - ] - } - ] - } - ], "DecommitPooledPages": [ { "platforms": [ @@ -7652,21 +7734,6 @@ ] } ], - "DefaultBrowserBannerPromo": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DefaultBrowserBannerPromo" - ] - } - ] - } - ], "DefaultBrowserPromoAndroid2": [ { "platforms": [ @@ -7915,6 +7982,24 @@ ] } ], + "DesktopNtpFooter": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "NtpFooter", + "enable_features": [ + "NtpFooter" + ] + } + ] + } + ], "DesktopNtpImageErrorDetection": [ { "platforms": [ @@ -8066,54 +8151,31 @@ ], "experiments": [ { - "name": "_enabled_OnFocusZPS_NoPrefetch_LensAction", + "name": "_enabled_OnFocusZPS_NoPrefetch_ContextualSearch_LensAction", "params": { - "Limit": "0", - "OmniboxZpsMaxSearchSuggestions": "3", + "OmniboxZpsMaxSearchSuggestions": "6", "OmniboxZpsMaxSuggestions": "6", - "OmniboxZpsMaxUrlSuggestions": "3", - "OnFocusMaxSearchSuggestions": "3", - "OnFocusMaxUrlSuggestions": "3", - "OnFocusMostVisitedMaxSuggestions": "6" - }, - "enable_features": [ - "OmniboxContextualSearchOnFocusSuggestions", - "OmniboxFocusTriggersWebAndSRPZeroSuggest", - "OmniboxHideSuggestionGroupHeaders", - "OmniboxUrlSuggestionsOnFocus", - "OmniboxZeroSuggestSynchronousMatchesOnly", - "OmniboxZpsSuggestionLimit" - ], - "disable_features": [ - "LensOverlayOmniboxEntryPoint" - ] - }, - { - "name": "_enabled_OnFocusZPS_ContextualSearchAndUrlSuggestions_LensAction", - "params": { - "OmniboxZpsMaxSearchSuggestions": "3", - "OmniboxZpsMaxSuggestions": "6", - "OmniboxZpsMaxUrlSuggestions": "3", - "OnFocusMaxSearchSuggestions": "3", - "OnFocusMaxUrlSuggestions": "3", - "OnFocusMostVisitedMaxSuggestions": "6" + "OmniboxZpsMaxUrlSuggestions": "0" }, "enable_features": [ + "ContextualSuggestionsAblateOthersWhenPresent", "ContextualZeroSuggestLensFulfillment", + "HappinessTrackingSurveyForOmniboxOnFocusZps", + "LensOverlayContextualSearchboxForOmniboxSuggestions", + "LensOverlayVisualSelectionUpdatesForOmniboxSuggestions", "OmniboxContextualSearchOnFocusSuggestions", "OmniboxFocusTriggersWebAndSRPZeroSuggest", "OmniboxHideSuggestionGroupHeaders", - "OmniboxUrlSuggestionsOnFocus", - "OmniboxZeroSuggestSynchronousMatchesOnly", + "OmniboxShowPopupOnMouseReleased", "OmniboxZpsSuggestionLimit", "SendContextualUrlSuggestParam", "SendPageTitleSuggestParam", "ShowSuggestionsOnNoApc", - "UseApcPaywallSignal", - "ZeroSuggestPrefetchingOnWeb" + "UseApcPaywallSignal" ], "disable_features": [ - "LensOverlayOmniboxEntryPoint" + "LensOverlayOmniboxEntryPoint", + "OmniboxUrlSuggestionsOnFocus" ] } ] @@ -8189,36 +8251,6 @@ ] } ], - "DesktopOmnibox_HistoryQuickProviderSpecificity": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "DomainSuggestionsAlternativeScoring": "true", - "DomainSuggestionsMaxMatchesPerDomain": "2", - "DomainSuggestionsMinInputLength": "4", - "DomainSuggestionsScoreFactor": "1", - "DomainSuggestionsTypedUrlsOffset": "1", - "DomainSuggestionsTypedUrlsThreshold": "7", - "DomainSuggestionsTypedVisitCapPerVisit": "2", - "DomainSuggestionsTypedVisitOffset": "1", - "DomainSuggestionsTypedVisitThreshold": "4" - }, - "enable_features": [ - "OmniboxDomainSuggestions" - ] - } - ] - } - ], "DesktopPWAInstallPromotionML": [ { "platforms": [ @@ -8326,6 +8358,26 @@ ] } ], + "DidObserveNewFeatureUsageImprovement": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DidObserveNewFeatureUsageImprovement" + ] + } + ] + } + ], "DipsForWebView": [ { "platforms": [ @@ -8344,12 +8396,10 @@ ] } ], - "DirectCompositorThreadIpcMacLinuxChromeOS": [ + "DirectCompositorThreadIpcWin": [ { "platforms": [ - "chromeos", - "linux", - "mac" + "windows" ], "experiments": [ { @@ -8474,7 +8524,7 @@ ] } ], - "DisableInstanceLimitDesktop": [ + "DisableInstanceLimitWithV2Switcher": [ { "platforms": [ "android" @@ -8482,8 +8532,12 @@ "experiments": [ { "name": "Enabled", + "params": { + "max_instance_limit": "20" + }, "enable_features": [ - "DisableInstanceLimit" + "DisableInstanceLimit", + "InstanceSwitcherV2" ] } ] @@ -8673,22 +8727,18 @@ "DiskCacheBackendExperiment": [ { "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", "windows" ], "experiments": [ { - "name": "Simple", + "name": "Sql", "params": { - "backend": "simple" - }, - "enable_features": [ - "DiskCacheBackendExperiment" - ] - }, - { - "name": "Blockfile", - "params": { - "backend": "blockfile" + "backend": "sql" }, "enable_features": [ "DiskCacheBackendExperiment" @@ -8759,6 +8809,25 @@ ] } ], + "DnsOverHttpsQuad9Secure": [ + { + "platforms": [ + "android", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DohProviderQuad9Secure" + ] + } + ] + } + ], "DoNotEvictOnAXLocationChange": [ { "platforms": [ @@ -8944,6 +9013,26 @@ ] } ], + "DynamicProfileCountry": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DynamicProfileCountry" + ] + } + ] + } + ], "EdgeToEdgeDebugging": [ { "platforms": [ @@ -8951,8 +9040,8 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ + "name": "Control", + "disable_features": [ "EdgeToEdgeDebugging" ] } @@ -8974,6 +9063,21 @@ ] } ], + "EdgeToEdgeTablet": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_20250709", + "enable_features": [ + "EdgeToEdgeTablet" + ] + } + ] + } + ], "EducationalTipModule": [ { "platforms": [ @@ -9222,18 +9326,16 @@ ] } ], - "EnableEwalletPayFlow": [ + "EnableDrDc": [ { "platforms": [ - "android" + "mac" ], "experiments": [ { - "name": "Enabled", + "name": "Enableds", "enable_features": [ - "AutofillSyncEwalletAccounts", - "EwalletPayments", - "PaymentLinkDetection" + "EnableDrDc" ] } ] @@ -9299,6 +9401,7 @@ "name": "Enabled", "params": { "io_thread_log_level": "2", + "renderer_process_io_thread_log_level": "2", "ui_thread_log_level": "2", "utility_process_main_thread_log_level": "2" }, @@ -9309,21 +9412,6 @@ ] } ], - "EnableImprovedManagementDisclosure": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ImprovedManagementDisclosure" - ] - } - ] - } - ], "EnableLazyLoadImageForInvisiblePage": [ { "platforms": [ @@ -9356,6 +9444,24 @@ ] } ], + "EnableManagementPromotionBanner": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableManagementPromotionBanner" + ] + } + ] + } + ], "EnablePDPMetricsUSDesktopIOS": [ { "platforms": [ @@ -9376,16 +9482,16 @@ ] } ], - "EnablePkcs12ToChapsDualWrite": [ + "EnablePixAccountLinking": [ { "platforms": [ - "chromeos" + "android" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "EnablePkcs12ToChapsDualWrite" + "EnablePixAccountLinking" ] } ] @@ -9457,6 +9563,24 @@ ] } ], + "EnableSinglePageAppDataProtection": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableSinglePageAppDataProtection" + ] + } + ] + } + ], "EnableTLS13EarlyData": [ { "platforms": [ @@ -9510,13 +9634,27 @@ ] } ], + "EnableWatermarkTestPage": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableWatermarkTestPage" + ] + } + ] + } + ], "EncryptedPrefHashing": [ { "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", "linux", "mac", "windows" @@ -9555,7 +9693,9 @@ "chromeos", "linux", "mac", - "windows" + "windows", + "android", + "ios" ], "experiments": [ { @@ -9568,6 +9708,26 @@ ] } ], + "EnterpriseActiveUserDetection": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows", + "android", + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnterpriseActiveUserDetection" + ] + } + ] + } + ], "EnterpriseBadgingForNtpFooter": [ { "platforms": [ @@ -9640,23 +9800,6 @@ ] } ], - "EnterpriseUpdatedProfileCreationScreen": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnterpriseUpdatedProfileCreationScreen" - ] - } - ] - } - ], "EsbAsASyncedSetting": [ { "platforms": [ @@ -10075,24 +10218,19 @@ ] } ], - "FasterSetCookie": [ + "FasterBackgroundFreezing": [ { "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "ios", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { - "name": "AsyncGetCookiesOnSet", + "name": "Enabled", + "params": { + "DelayForBackgroundTabFreezingMills": "60000" + }, "enable_features": [ - "AsyncSetCookie", - "GetCookiesOnSet" + "stop-in-background" ] } ] @@ -10576,6 +10714,21 @@ ] } ], + "ForceOffTextAutosizingWebView": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ForceOffTextAutosizing" + ] + } + ] + } + ], "ForestFeature": [ { "platforms": [ @@ -10591,27 +10744,6 @@ ] } ], - "FormControlsVerticalWritingModeDirectionSupport": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FormControlsVerticalWritingModeDirectionSupport" - ] - } - ] - } - ], "FrameRoutingCache": [ { "platforms": [ @@ -10633,24 +10765,6 @@ ] } ], - "FreezingOnBatterySaver": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FreezingOnBatterySaver" - ] - } - ] - } - ], "FullscreenSigninPromoManagerMigration": [ { "platforms": [ @@ -10677,9 +10791,12 @@ "name": "Enabled", "params": { "geolocation_request_max_location_age_millis": "2147483647", - "geolocation_request_min_update_interval_millis": "0" + "geolocation_request_min_update_interval_millis": "0", + "location_request_max_location_age_mills": "2147483647", + "location_request_min_update_interval_millis": "0" }, "enable_features": [ + "GmsCoreLocationRequestParamOverride", "UseFusedLocationProvider" ] } @@ -10792,6 +10909,23 @@ ] } ], + "GlicAssetsUpdate": [ + { + "platforms": [ + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GlicAssetsV2", + "GlicParameterizedShader" + ] + } + ] + } + ], "GlicClientResponsivenessCheckExtension": [ { "platforms": [ @@ -10876,6 +11010,22 @@ ] } ], + "GlicFreWarming": [ + { + "platforms": [ + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GlicFreWarming" + ] + } + ] + } + ], "GlicRolloutDogfood": [ { "platforms": [ @@ -10902,9 +11052,6 @@ "experiments": [ { "name": "Enabled", - "params": { - "glic-scroll-to-enforce-document-id": "true" - }, "enable_features": [ "GlicScrollTo" ] @@ -10912,38 +11059,6 @@ ] } ], - "GlicSettingsDogfood": [ - { - "platforms": [ - "mac", - "windows", - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "glic-allowed-origins-override": "https://www.google.com", - "glic-fre-url": "https://www.google.com/?", - "glic-guest-url": "https://www.google.com/", - "glic-shortcuts-launcher-toggle-learn-more-url": "https://support.google.com/", - "glic-shortcuts-learn-more-url": "https://support.google.com/", - "glic-shortcuts-location-toggle-learn-more-url": "https://support.google.com/", - "glic-shortcuts-tab-access-toggle-learn-more-url": "https://support.google.com/" - }, - "enable_features": [ - "GlicAppMenuNewBadge", - "GlicCSPConfig", - "GlicFreURLConfig", - "GlicKeyboardShortcutNewBadge", - "GlicPageContextEligibility", - "GlicURLConfig", - "IPH_GlicPromo" - ] - } - ] - } - ], "GlicTieredRollout": [ { "platforms": [ @@ -10993,6 +11108,10 @@ "experiments": [ { "name": "Enabled", + "params": { + "ZSSExtractAnnotatedPageContent": "true", + "ZSSExtractInnerText": "false" + }, "enable_features": [ "GlicZeroStateSuggestions" ] @@ -11203,99 +11322,6 @@ ] } ], - "GwpAsan2024Android": [ - { - "platforms": [ - "android", - "android_webview" - ], - "experiments": [ - { - "name": "CombinedGreedyArmForVariationsPresubmit", - "params": { - "BrowserAllocationSamplingMultiplier": "1500", - "BrowserAllocationSamplingRange": "16", - "BrowserMaxAllocations": "210", - "BrowserMaxMetadata": "765", - "BrowserTotalPages": "1536", - "GpuAllocationSamplingMultiplier": "1500", - "GpuAllocationSamplingRange": "16", - "GpuMaxAllocations": "140", - "GpuMaxMetadata": "510", - "GpuTotalPages": "1024", - "RendererAllocationSamplingMultiplier": "1500", - "RendererAllocationSamplingRange": "12" - }, - "enable_features": [ - "GwpAsanMalloc", - "GwpAsanPartitionAlloc" - ] - } - ] - } - ], - "GwpAsan2024LinuxCros": [ - { - "platforms": [ - "chromeos", - "linux" - ], - "experiments": [ - { - "name": "CombinedGreedyArmForVariationsPresubmit", - "params": { - "BrowserAllocationSamplingMultiplier": "1200", - "BrowserAllocationSamplingRange": "10", - "BrowserMaxAllocations": "150", - "BrowserMaxMetadata": "630", - "BrowserTotalPages": "6144", - "GpuAllocationSamplingMultiplier": "1200", - "GpuAllocationSamplingRange": "10", - "GpuMaxAllocations": "100", - "GpuMaxMetadata": "420", - "GpuTotalPages": "4096", - "RendererAllocationSamplingMultiplier": "800", - "RendererAllocationSamplingRange": "10" - }, - "enable_features": [ - "GwpAsanMalloc", - "GwpAsanPartitionAlloc" - ] - } - ] - } - ], - "GwpAsan2024WinMac": [ - { - "platforms": [ - "windows", - "mac" - ], - "experiments": [ - { - "name": "CombinedGreedyArmForVariationsPresubmit", - "params": { - "BrowserAllocationSamplingMultiplier": "800", - "BrowserAllocationSamplingRange": "10", - "BrowserMaxAllocations": "210", - "BrowserMaxMetadata": "765", - "BrowserTotalPages": "6144", - "GpuAllocationSamplingMultiplier": "800", - "GpuAllocationSamplingRange": "10", - "GpuMaxAllocations": "140", - "GpuMaxMetadata": "510", - "GpuTotalPages": "4096", - "RendererAllocationSamplingMultiplier": "600", - "RendererAllocationSamplingRange": "10" - }, - "enable_features": [ - "GwpAsanMalloc", - "GwpAsanPartitionAlloc" - ] - } - ] - } - ], "GwpAsanIOS2025": [ { "platforms": [ @@ -11852,7 +11878,6 @@ "HeapProfilerMultiKeyHashSet": [ { "platforms": [ - "android", "chromeos", "chromeos_lacros", "ios", @@ -11862,35 +11887,13 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ - "HeapProfilerMultiKeyHashSet" - ] - } - ] - } - ], - "HeapProfilingLoadFactor": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", + "name": "EnabledMultiKey_20250708", "params": { - "browser-hash-set-load-factor": "0.7", - "gpu-hash-set-load-factor": "0.7", - "network-hash-set-load-factor": "0.7", - "renderer-hash-set-load-factor": "0.7", - "utility-hash-set-load-factor": "0.7" + "nonstable-probability": "1.0", + "stable-probability": "1.0" }, "enable_features": [ + "HeapProfilerMultiKeyHashSet", "HeapProfilerReporting" ] } @@ -12014,28 +12017,6 @@ ] } ], - "HistoryPageHistorySyncPromo": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "EnabledWithContinue", - "enable_features": [ - "HistoryPageHistorySyncPromo", - "HistoryPagePromoCtaStringVariation" - ] - }, - { - "name": "EnabledWithTurnOn", - "enable_features": [ - "HistoryPageHistorySyncPromo" - ] - } - ] - } - ], "HistorySyncAlternativeIllustration": [ { "platforms": [ @@ -12051,6 +12032,24 @@ ] } ], + "HlsDirectPlayback": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BuiltInHlsPlayer" + ] + } + ] + } + ], "Hotspot": [ { "platforms": [ @@ -12170,6 +12169,24 @@ ] } ], + "HttpsFirstDialogUi": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "HttpsFirstDialogUi" + ] + } + ] + } + ], "HttpsFirstModeV2ForTypicallySecureUsers": [ { "platforms": [ @@ -12189,27 +12206,52 @@ ] } ], - "IOSAutofillAcrossIframes": [ + "IOSAIModeNTPEntryPoint": [ { "platforms": [ "ios" ], "experiments": [ { - "name": "Enabled_XhrPatch_20250320", + "name": "EnabledWithOmniboxContainedSingleButton", + "params": { + "kNTPMIAEntrypointParam": "kNTPMIAEntrypointParamOmniboxContainedSingleButton" + }, "enable_features": [ - "AutofillAcrossIframesIos", - "AutofillAcrossIframesIosThrottling", - "AutofillFixXhrForXframe" - ], - "disable_features": [ - "AutofillAcrossIframesIosTriggerFormExtraction" + "kNTPMIAEntrypoint" + ] + }, + { + "name": "EnabledWithOmniboxContainedInline", + "params": { + "kNTPMIAEntrypointParam": "kNTPMIAEntrypointParamOmniboxContainedInline" + }, + "enable_features": [ + "kNTPMIAEntrypoint" + ] + }, + { + "name": "EnabledWithOmniboxContainedEnlargedFakebox", + "params": { + "kNTPMIAEntrypointParam": "kNTPMIAEntrypointParamOmniboxContainedEnlargedFakebox" + }, + "enable_features": [ + "kNTPMIAEntrypoint" + ] + }, + { + "name": "EnabledWithEnlargedFakeboxNoIncognito", + "params": { + "kNTPMIAEntrypointParam": "kNTPMIAEntrypointParamEnlargedFakeboxNoIncognito" + }, + "enable_features": [ + "kNTPMIAEntrypoint" ] } ] } ], - "IOSAutofillAllowDefaultPreventedSubmission": [ + "IOSAutofillDedupeFormSubmission": [ { "platforms": [ "ios" @@ -12218,7 +12260,22 @@ { "name": "Enabled", "enable_features": [ - "AutofillAllowDefaultPreventedSubmission" + "AutofillDedupeFormSubmission" + ] + } + ] + } + ], + "IOSAutofillFormSubmissionEventsInCaptureMode": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AutofillFormSubmissionEventsInCaptureMode" ] } ] @@ -12354,7 +12411,7 @@ ] } ], - "IOSChooseFromDriveSimulatedClick": [ + "IOSChromeAsyncExperience": [ { "platforms": [ "ios" @@ -12363,7 +12420,7 @@ { "name": "Enabled", "enable_features": [ - "IOSChooseFromDriveSimulatedClick" + "ChromeStartupParametersAsync" ] } ] @@ -12430,6 +12487,21 @@ ] } ], + "IOSDefaultBrowserPromoPropensityStudy": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DefaultBrowserPromoPropensityModel" + ] + } + ] + } + ], "IOSDefaultBrowserRemindMeLater": [ { "platforms": [ @@ -12583,36 +12655,6 @@ ] } ], - "IOSEnterpriseRealtimeEventReporting": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "EnterpriseRealtimeEventReportingOnIOS" - ] - } - ] - } - ], - "IOSEnterpriseRealtimeUrlFiltering": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "IOSEnterpriseRealtimeUrlFiltering" - ] - } - ] - } - ], "IOSExplicitUITraitRegistration": [ { "platforms": [ @@ -12673,6 +12715,21 @@ ] } ], + "IOSFeedbackGWSVariationsIds": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "FeedbackIncludeGWSVariations" + ] + } + ] + } + ], "IOSFullscreenImprovement": [ { "platforms": [ @@ -12688,7 +12745,25 @@ ] } ], - "IOSFullscreenTransition": [ + "IOSFullscreenScrollThreshold": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled10", + "params": { + "fullscreen_scroll_threshold_amount": "10" + }, + "enable_features": [ + "FullscreenScrollThreshold" + ] + } + ] + } + ], + "IOSFullscreenTransitionSpeed": [ { "platforms": [ "ios" @@ -12700,7 +12775,7 @@ "FullscreenTransitionSpeed": "0" }, "enable_features": [ - "FullscreenTransition" + "FullscreenTransitionSpeed" ] }, { @@ -12709,16 +12784,7 @@ "FullscreenTransitionSpeed": "2" }, "enable_features": [ - "FullscreenTransition" - ] - }, - { - "name": "EnabledMediumDelay", - "params": { - "MediumFullscreenTransitionOffset": "true" - }, - "enable_features": [ - "FullscreenTransition" + "FullscreenTransitionSpeed" ] } ] @@ -12931,6 +12997,24 @@ ] } ], + "IOSOmniboxAimShortcut": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled1Char", + "params": { + "MinimumTypedCharactersToInvokeAimShortcut": "1" + }, + "enable_features": [ + "OmniboxAimShortcutTypedState" + ] + } + ] + } + ], "IOSOneTapMiniMapRemoveSectionsBreaks": [ { "platforms": [ @@ -12946,6 +13030,21 @@ ] } ], + "IOSOneTimeDefaultBrowserNotification": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSOneTimeDefaultBrowserNotification" + ] + } + ] + } + ], "IOSPartitionAllocBackupRefPtr": [ { "platforms": [ @@ -12988,7 +13087,7 @@ ] } ], - "IOSPasskeysM2": [ + "IOSPasskeyShim": [ { "platforms": [ "ios" @@ -12997,7 +13096,7 @@ { "name": "Enabled", "enable_features": [ - "IOSPasskeysM2" + "IOSPasskeyShim" ] } ] @@ -13061,7 +13160,7 @@ ] } ], - "IOSReaderModeMetrics": [ + "IOSReaderMode": [ { "platforms": [ "ios" @@ -13070,8 +13169,25 @@ { "name": "Enabled", "enable_features": [ - "EnableReaderModeDistiller", - "EnableReaderModeDistillerHeuristic" + "EnableReaderMode", + "EnableReaderModeDefaultBrowserPromo", + "EnableReaderModePageEligibilityForToolsMenu", + "ReaderModeUseReadability" + ] + } + ] + } + ], + "IOSSafariImportWorkflow": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ImportPasswordsFromSafari" ] } ] @@ -13107,6 +13223,21 @@ ] } ], + "IOSShareExtensionMIM": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "kShareExtensionForMultiprofile" + ] + } + ] + } + ], "IOSSharedHighlightingColorChange": [ { "platforms": [ @@ -13143,8 +13274,20 @@ "ios" ], "experiments": [ + { + "name": "EnabledWithCopyWorkaround", + "params": { + "caching-mode": "enabled-with-copy-workaround" + }, + "enable_features": [ + "SkipCookieCaching" + ] + }, { "name": "Enabled", + "params": { + "caching-mode": "enabled" + }, "enable_features": [ "SkipCookieCaching" ] @@ -13240,22 +13383,6 @@ ] } ], - "IOSTabGroupSynciPad": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "TabGroupIndicator", - "TabGroupSync" - ] - } - ] - } - ], "IOSTabResumptionThumbnails": [ { "platforms": [ @@ -13289,6 +13416,21 @@ ] } ], + "IOSTrustedVaultNotification": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "IOSTrustedVaultNotification" + ] + } + ] + } + ], "IOSUpdateFirstRunSequence": [ { "platforms": [ @@ -13322,6 +13464,21 @@ ] } ], + "IOSYoutubeIncogntoBlingIncognitoExperience": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "YoutubeIncognito" + ] + } + ] + } + ], "IOSiPadGhostCards": [ { "platforms": [ @@ -13444,27 +13601,6 @@ ] } ], - "ImprovedFailedLoginDetectionStudy": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FailedLoginDetectionBasedOnFormClearEvent", - "FailedLoginDetectionBasedOnResourceLoadingErrors" - ] - } - ] - } - ], "IncognitoScreenshot": [ { "platforms": [ @@ -13480,28 +13616,6 @@ ] } ], - "IncreaseCookieAccessCacheSize": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "IncreaseCookieAccessCacheSize" - ] - } - ] - } - ], "IncreasedCmdBufferParseSlice": [ { "platforms": [ @@ -13525,6 +13639,21 @@ ] } ], + "InfiniteTabsFreezingOnMemoryPressure": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "InfiniteTabsFreezingOnMemoryPressure" + ] + } + ] + } + ], "InlineFullscreenPerfExperiment": [ { "platforms": [ @@ -13695,6 +13824,22 @@ ] } ], + "KeepChildProcessAfterIPCReset": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled_20250728", + "enable_features": [ + "KeepChildProcessAfterIPCReset" + ] + } + ] + } + ], "KeepDefaultSearchEngineAlive": [ { "platforms": [ @@ -13837,33 +13982,6 @@ ] } ], - "KeyboardFocusableScrollers": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "KeyboardFocusableScrollers" - ] - }, - { - "name": "Disabled", - "disable_features": [ - "KeyboardFocusableScrollers" - ] - } - ] - } - ], "KeyboardLockPrompt": [ { "platforms": [ @@ -14015,7 +14133,7 @@ "name": "MediumPriority_20240418", "params": { "lcpp_adjust_image_load_priority": "true", - "lcpp_adjust_image_load_priority_confidence_threshold": "0.0", + "lcpp_adjust_image_load_priority_confidence_threshold": "0.5", "lcpp_adjust_image_load_priority_override_first_n_boost": "true", "lcpp_enable_image_load_priority_for_htmlimageelement": "false", "lcpp_enable_perf_improvements": "true", @@ -14115,21 +14233,6 @@ ] } ], - "LargeCapacityInSnapshotLRUCache": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LargeCapacityInSnapshotLRUCache" - ] - } - ] - } - ], "LayoutNGShapeCacheWebview": [ { "platforms": [ @@ -14262,24 +14365,6 @@ ] } ], - "LensSearchSidePanelScrollToAPI": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "LensSearchSidePanelScrollToAPIEnabled", - "enable_features": [ - "LensSearchSidePanelScrollToAPI" - ] - } - ] - } - ], "LinkCrossDeviceDogFoodFeedback": [ { "platforms": [ @@ -14415,21 +14500,6 @@ ] } ], - "Lobster": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "Lobster" - ] - } - ] - } - ], "LobsterDogfood": [ { "platforms": [ @@ -14445,33 +14515,6 @@ ] } ], - "LobsterI18n": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LobsterI18n" - ], - "disable_features": [ - "LobsterDisabledByInvalidIME" - ] - }, - { - "name": "Enabled_Dogfood", - "enable_features": [ - "LobsterI18n" - ], - "disable_features": [ - "LobsterDisabledByInvalidIME" - ] - } - ] - } - ], "LobsterQueryRewrittenDogfood": [ { "platforms": [ @@ -14527,40 +14570,6 @@ ] } ], - "LocalWebApprovalsIos": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LocalWebApprovals", - "SupervisedUserBlockInterstitialV3" - ] - } - ] - } - ], - "LocalWebApprovalsLinuxMacWindows": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LocalWebApprovals", - "SupervisedUserBlockInterstitialV3" - ] - } - ] - } - ], "LofnPermissiveUsbPassthrough": [ { "platforms": [ @@ -14577,6 +14586,21 @@ ] } ], + "LogCrWebJavaScriptErrors": [ + { + "platforms": [ + "ios" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "LogCrWebJavaScriptErrors" + ] + } + ] + } + ], "LogJavaScriptErrors": [ { "platforms": [ @@ -14683,6 +14707,39 @@ ] } ], + "MacCatapLoopbackAudioForScreenShare": [ + { + "platforms": [ + "mac" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "MacCatapLoopbackAudioForScreenShare" + ] + } + ] + } + ], + "MacCriticalDiskSpacePressure": [ + { + "platforms": [ + "mac" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "MacCriticalDiskSpacePressureThresholdMB": "250" + }, + "enable_features": [ + "MacCriticalDiskSpacePressure" + ] + } + ] + } + ], "MacICloudKeychainRecoveryFactor": [ { "platforms": [ @@ -15057,11 +15114,9 @@ ] } ], - "MemoryPurgeOnFreezeLimit": [ + "MemoryPurgeOnFreezeDisabled": [ { "platforms": [ - "android", - "android_webview", "chromeos", "linux", "mac", @@ -15069,151 +15124,9 @@ ], "experiments": [ { - "name": "Enabled", - "enable_features": [ - "MemoryPurgeOnFreezeLimit" - ] - } - ] - } - ], - "MemorySaverModeRenderTuning": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "available_memory_threshold_mb": "740" - }, - "enable_features": [ - "MemorySaverModeRenderTuning", - "OomIntervention" - ] - } - ] - }, - { - "platforms": [ - "android_webview" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "available_memory_threshold_mb": "740" - }, - "enable_features": [ - "MemorySaverModeRenderTuning" - ] - } - ] - } - ], - "MerchantTrust": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20250130", - "params": { - "en_site_id": "pnM2xW83W0ugnJ3q1cK0WyyikxbT", - "probability": "1.0" - }, - "enable_features": [ - "MerchantTrust", - "MerchantTrustEvaluationExperimentSurvey", - "MerchantTrustLearnSurvey" - ], + "name": "Disabled", "disable_features": [ - "MerchantTrustEvaluationControlSurvey" - ] - }, - { - "name": "EnabledWithControlSurvey_20250130", - "params": { - "en_site_id": "YdFFpSNzs0ugnJ3q1cK0TuMcibft", - "probability": "1.0" - }, - "enable_features": [ - "MerchantTrustEvaluationControlSurvey" - ], - "disable_features": [ - "MerchantTrust", - "MerchantTrustEvaluationExperimentSurvey", - "MerchantTrustLearnSurvey" - ] - } - ] - } - ], - "MessagesAccessibilityEventInvestigations": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "EnabledBaseline", - "params": { - "messages_accessibility_events_investigations_param": "1" - }, - "enable_features": [ - "MessagesAccessibilityEventInvestigations" - ] - }, - { - "name": "EnabledWithAccessibilityState", - "params": { - "messages_accessibility_events_investigations_param": "2" - }, - "enable_features": [ - "MessagesAccessibilityEventInvestigations" - ] - }, - { - "name": "EnabledWithRestrictiveServiceCheck", - "params": { - "messages_accessibility_events_investigations_param": "3" - }, - "enable_features": [ - "MessagesAccessibilityEventInvestigations" - ] - }, - { - "name": "EnabledWithMaskCheck", - "params": { - "messages_accessibility_events_investigations_param": "4" - }, - "enable_features": [ - "MessagesAccessibilityEventInvestigations" - ] - }, - { - "name": "EnabledWithDirectQuery", - "params": { - "messages_accessibility_events_investigations_param": "5" - }, - "enable_features": [ - "MessagesAccessibilityEventInvestigations" - ] - }, - { - "name": "Control", - "disable_features": [ - "MessagesAccessibilityEventInvestigations" + "MemoryPurgeOnFreeze" ] } ] @@ -15355,6 +15268,21 @@ ] } ], + "MitigateLegacySearchEnginePromoOverlap": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "MitigateLegacySearchEnginePromoOverlap" + ] + } + ] + } + ], "MojoChannelAssociatedSendUsesRunOrPostTask": [ { "platforms": [ @@ -15397,6 +15325,27 @@ ] } ], + "MojoIpcChannelReceive": [ + { + "platforms": [ + "android", + "chromeos", + "fuchsia", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "MojoIpcChannelReceive" + ] + } + ] + } + ], "MojoPredictiveAllocation": [ { "platforms": [ @@ -15431,26 +15380,6 @@ ] } ], - "MultiBufferNeverDefer": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MultiBufferNeverDefer" - ] - } - ] - } - ], "MultiCalendarSupport": [ { "platforms": [ @@ -15517,20 +15446,20 @@ ] } ], - "NavBarColorAnimationEnabled": [ + "NavigationThrottleRegistryAttributeCache": [ { "platforms": [ - "android" + "android", + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Enabled", - "params": { - "disable_bottom_chin_color_animation": "false", - "disable_edge_to_edge_layout_color_animation": "false" - }, "enable_features": [ - "NavBarColorAnimation" + "NavigationThrottleRegistryAttributeCache" ] } ] @@ -15684,6 +15613,39 @@ ] } ], + "NetworkServiceTaskScheduler": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "http_cache_transaction": "true", + "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" + ] + } + ] + } + ], "NeuralPalmRejectionModelForRedrix": [ { "platforms": [ @@ -15734,6 +15696,21 @@ ] } ], + "NewTabPageCustomizationForMvt": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NewTabPageCustomizationForMvt" + ] + } + ] + } + ], "NimbleCollisionAvoidanceV1": [ { "platforms": [ @@ -15749,6 +15726,25 @@ ] } ], + "NoLateBeginFrames": [ + { + "platforms": [ + "android", + "android_webview", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "NoLateBeginFrames" + ] + } + ] + } + ], "NoPasswordSuggestionFiltering": [ { "platforms": [ @@ -15870,25 +15866,6 @@ ] } ], - "NotificationTelemetryService": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "NotificationTelemetry" - ] - } - ] - } - ], "NotificationWidthIncrease": [ { "platforms": [ @@ -15932,7 +15909,7 @@ { "name": "Enabled", "params": { - "ConfigParam": "CgIIAw==" + "ConfigParam": "CgIIAxI8CAEQARoXCAAQ4MZbGMAMIMAMKCgyB2ltYWdlLyoiGwiAhK9fEhQucGRmLGFwcGxpY2F0aW9uL3BkZigB" }, "enable_features": [ "NtpComposebox" @@ -16039,6 +16016,23 @@ ] } ], + "OfferMigrationToDiceUsers": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OfferMigrationToDiceUsers" + ] + } + ] + } + ], "OfferPinToTaskbarInFirstRunExperience": [ { "platforms": [ @@ -16069,16 +16063,20 @@ ] } ], - "OfflineItemsInNotifications": [ + "OffloadAcceptCHFrameCheck": [ { "platforms": [ - "chromeos" + "android", + "chromeos", + "linux", + "mac", + "windows" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "OfflineItemsInNotifications" + "OffloadAcceptCHFrameCheck" ] } ] @@ -16101,6 +16099,24 @@ ] } ], + "OmahaMinSdkVersionAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "min_sdk_version": "29" + }, + "enable_features": [ + "OmahaMinSdkVersionAndroid" + ] + } + ] + } + ], "OmitBlurEventOnElementRemoval": [ { "platforms": [ @@ -16118,60 +16134,23 @@ ] } ], - "OmniboxAIModeZPSAndroid": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_1", - "params": { - "LocalHistoryNonNormalizedContents": "true", - "SuppressPsuggestBackfillWithMIA": "true" - }, - "enable_features": [ - "OmniboxMiaZPS" - ] - } - ] - } - ], - "OmniboxAIModeZPSDesktop": [ + "OmniboxAiRhsEchoLensToolbeltDesktop": [ { "platforms": [ "chromeos", - "chromeos_lacros", "linux", "mac", "windows" ], "experiments": [ { - "name": "Enabled_2_AIM_Suggestions", - "params": { - "LocalHistoryNonNormalizedContents": "true" - }, + "name": "Enabled", "enable_features": [ - "OmniboxMiaZPS" - ] - } - ] - } - ], - "OmniboxAiModeZpsIOS": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled_5_PSuggest_4_AIM_Without_Backfill", - "params": { - "SuppressPsuggestBackfillWithMIA": "true" - }, - "enable_features": [ - "OmniboxMiaZPS" + "AiModeOmniboxEntryPoint", + "AllowAiModeMatches", + "OmniboxHideAimEntrypointOnUserInput", + "OmniboxToolbelt", + "OpenLensActionUITweaks" ] } ] @@ -16351,26 +16330,11 @@ ] } ], - "OmniboxMlUrlScoringIOS": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "MlUrlScoring", - "UrlScoringModel" - ] - } - ] - } - ], "OmniboxMobileParityUpdate": [ { "platforms": [ - "android" + "android", + "ios" ], "experiments": [ { @@ -16388,7 +16352,8 @@ "OmniboxMobileParityUpdateV2": [ { "platforms": [ - "android" + "android", + "ios" ], "experiments": [ { @@ -16461,6 +16426,21 @@ ] } ], + "OmniboxSiteSearchAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "OmniboxSiteSearch" + ] + } + ] + } + ], "OmniboxStarterPackIPH": [ { "platforms": [ @@ -16672,7 +16652,6 @@ "ime_allowlist": "[\"xkb:es::spa\"]" }, "enable_features": [ - "MantaService", "OrcaDogfood", "OrcaOnWorkspace" ] @@ -16680,7 +16659,6 @@ { "name": "Enabled_Pre_121_Dogfood", "enable_features": [ - "MantaService", "OrcaDogfood" ] } @@ -16736,12 +16714,7 @@ "enable_features": [ "AcceleratedVideoDecodeLinuxGL", "AcceleratedVideoDecodeLinuxZeroCopyGL", - "AllowWindowDragUsingSystemDragDrop", - "OverrideDefaultOzonePlatformHintToAuto", - "WaylandLinuxDrmSyncobj", - "WaylandPerSurfaceScale", - "WaylandTextInputV3", - "WaylandUiScale" + "OverrideDefaultOzonePlatformHintToAuto" ] }, { @@ -16783,39 +16756,20 @@ ] } ], - "PWANavigationCapturingAndroidDesktopWindowing": [ + "PWANavigationCapturingAndroidFullscreenWindowing": [ { "platforms": [ "android" ], "experiments": [ { - "name": "EnabledDesktopWindowingNavigations", + "name": "EnabledFullscreenWindowingNavigations", "params": { - "auxiliary_navigation_stays_in_browser": "desktop_wm" + "auxiliary_navigation_stays_in_browser": "all_wm" }, "enable_features": [ "AuxiliaryNavigationStaysInBrowser", - "ReparentAuxiliaryNavigationFromPWA", - "ReparentTopLevelNavigationFromPWA" - ] - } - ] - } - ], - "PWANavigationCapturingV2ChromeOS": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "EnabledSettingOffByDefault", - "params": { - "link_capturing_state": "reimpl_default_off" - }, - "enable_features": [ - "PwaNavigationCapturing" + "AuxiliaryNavigationStaysInPWA" ] } ] @@ -16872,12 +16826,18 @@ "name": "Enabled", "params": { "autofill_address": "true", + "discounts": "true", "file_system_access": "true", + "find": "true", "intent_picker": "true", "lens_overlay": "true", + "manage_passwords": "true", + "mandatory_reauth": "true", "memory_saver": "true", "offer_notification": "true", "price_insights": "true", + "price_tracking": "true", + "product_specifications": "true", "translate": "true", "zoom": "true" }, @@ -16888,21 +16848,6 @@ ] } ], - "PageAllocatorRetryOnCommitFailure": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PageAllocatorRetryOnCommitFailure" - ] - } - ] - } - ], "PageInfoAboutThisSite40Langs": [ { "platforms": [ @@ -17033,17 +16978,10 @@ ] } ], - "PartitionAllocFewerMemoryRegions": [ + "PartitionAllocFewerMemoryRegionsMac": [ { "platforms": [ - "android", - "android_weblayer", - "android_webview", - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" + "mac" ], "experiments": [ { @@ -17253,24 +17191,6 @@ ] } ], - "PartitionAllocShadowMetadata": [ - { - "platforms": [ - "linux" - ], - "experiments": [ - { - "name": "Enabled", - "params": { - "enabled-processes": "renderer-only" - }, - "enable_features": [ - "PartitionAllocShadowMetadata" - ] - } - ] - } - ], "PartitionAllocShortMemoryReclaim": [ { "platforms": [ @@ -17329,11 +17249,12 @@ { "name": "Enabled", "params": { - "PartitionAllocSchedulerLoopQuarantineBrowserUICapacity": "1048576", + "PartitionAllocSchedulerLoopQuarantineConfig": "{\"browser\":{\"main\":{\"enable-quarantine\":true,\"enable-zapping\":true,\"leak-on-destruction\":false,\"branch-capacity-in-bytes\":1048576}}}", "enabled-processes": "browser-only" }, "enable_features": [ "PartitionAllocSchedulerLoopQuarantine", + "PartitionAllocSchedulerLoopQuarantineTaskObserverForBrowserUIThread", "PartitionAllocWithAdvancedChecks", "PartitionAllocZappingByFreeFlags" ] @@ -17522,15 +17443,6 @@ "windows" ], "experiments": [ - { - "name": "EnabledPdfLoad", - "params": { - "trigger": "pdf-load" - }, - "enable_features": [ - "PdfInfoBar" - ] - }, { "name": "EnabledStartup", "params": { @@ -17727,7 +17639,7 @@ ] } ], - "PerformanceInterventionAlgorithm": [ + "PerformanceInterventionString": [ { "platforms": [ "chromeos", @@ -17737,60 +17649,30 @@ ], "experiments": [ { - "name": "EnabledLessAggressive_20250428", + "name": "EnabledString1_20250630", "params": { - "availability": "any", - "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<3;window:1;storage:360", - "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", - "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<21;window:7;storage:360", - "minimum_time_reshow": "1h", - "no_acceptance_back_off": "7d", - "scale_max_times_per_day": "3", - "scale_max_times_per_week": "21", - "session_rate": "any", - "window_size": "10" + "string_version": "1" }, "enable_features": [ - "IPH_PerformanceInterventionDialogFeature", - "PerformanceInterventionNotificationImprovements" + "PerformanceInterventionNotificationStringImprovements" ] }, { - "name": "EnabledMediumAggressive_20250428", + "name": "EnabledString2_20250630", "params": { - "availability": "any", - "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<10;window:1;storage:360", - "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", - "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<70;window:7;storage:360", - "minimum_time_reshow": "1h", - "no_acceptance_back_off": "7d", - "scale_max_times_per_day": "10", - "scale_max_times_per_week": "70", - "session_rate": "any", - "window_size": "10" + "string_version": "2" }, "enable_features": [ - "IPH_PerformanceInterventionDialogFeature", - "PerformanceInterventionNotificationImprovements" + "PerformanceInterventionNotificationStringImprovements" ] }, { - "name": "EnabledMoreAggressive_20250428", + "name": "EnabledString3_20250630", "params": { - "availability": "any", - "event_trigger": "name:performance_intervention_dialog_trigger;comparator:<24;window:1;storage:360", - "event_used": "name:performance_intervention_dialog_used;comparator:any;window:0;storage:360", - "event_weekly_trigger": "name:performance_intervention_dialog_trigger;comparator:<168;window:7;storage:360", - "minimum_time_reshow": "1h", - "no_acceptance_back_off": "7d", - "scale_max_times_per_day": "24", - "scale_max_times_per_week": "168", - "session_rate": "any", - "window_size": "10" + "string_version": "3" }, "enable_features": [ - "IPH_PerformanceInterventionDialogFeature", - "PerformanceInterventionNotificationImprovements" + "PerformanceInterventionNotificationStringImprovements" ] } ] @@ -17835,6 +17717,24 @@ ] } ], + "PermissionPromiseLifetimeModulation": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PermissionPromiseLifetimeModulation" + ] + } + ] + } + ], "PermissionSiteSettingsRadioButton": [ { "platforms": [ @@ -17890,7 +17790,7 @@ ] } ], - "PermissionsAIv3Geolocation": [ + "PermissionsAIv4": [ { "platforms": [ "chromeos", @@ -17902,7 +17802,7 @@ { "name": "Enabled", "enable_features": [ - "PermissionsAIv3Geolocation" + "PermissionsAIv4" ] } ] @@ -17939,24 +17839,6 @@ ] } ], - "PinnedTabToastOnClose": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PinnedTabToastOnClose" - ] - } - ] - } - ], "PinweaverPasswords": [ { "platforms": [ @@ -17972,6 +17854,21 @@ ] } ], + "PlatformExperienceHelper": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "InstallPlatformExperienceHelper", + "enable_features": [ + "InstallPlatformExperienceHelperWin" + ] + } + ] + } + ], "PlayReadyHardwareSecureDecryption": [ { "platforms": [ @@ -18134,6 +18031,7 @@ { "name": "Enabled", "enable_features": [ + "IPH_PlusAddressCreateSuggestion", "PlusAddressAndroidOpenGmsCoreManagementPage", "PlusAddressFallbackFromContextMenu", "PlusAddressPreallocation", @@ -18263,6 +18161,25 @@ ] } ], + "PreconnectBookmarkBarTrigger": [ + { + "platforms": [ + "linux", + "mac", + "windows", + "chromeos", + "chromeos_lacros" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "BookmarkTriggerForPreconnect" + ] + } + ] + } + ], "PreconnectCreateNewTab": [ { "platforms": [ @@ -18290,8 +18207,13 @@ ], "experiments": [ { - "name": "EnabledWithOTRtrue_20250319", + "name": "EnabledWithOTRtrue_20250724_Stable", "params": { + "IdleTimeoutInSeconds": "30", + "MaxPreconnectRetryInterval": "30", + "MaxShortSessionThreshold": "30s", + "PingIntervalInSeconds": "27", + "QuicConnectionOptions": "ECCP", "run_on_otr": "true" }, "enable_features": [ @@ -18407,29 +18329,6 @@ ] } ], - "PrefetchReusable": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_20250129", - "params": { - "prefetch_reusable_body_size_limit": "4194304" - }, - "enable_features": [ - "PrefetchReusable" - ] - } - ] - } - ], "PrefetchScheduler": [ { "platforms": [ @@ -18453,26 +18352,6 @@ ] } ], - "PrefetchServiceWorker": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrefetchServiceWorker" - ] - } - ] - } - ], "PrefetchServiceWorkerNoFetchHandlerFix": [ { "platforms": [ @@ -18493,6 +18372,27 @@ ] } ], + "PrefixCookieHttp": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrefixCookieHostHttp", + "PrefixCookieHttp" + ] + } + ] + } + ], "PreloadInlineDeferredImages": [ { "platforms": [ @@ -18647,8 +18547,6 @@ { "name": "Enabled_NoTimeout_Burst", "params": { - "kPrerender2FallbackBodySizeLimit": "4194304", - "kPrerender2FallbackPrefetchReusablePolicy": "UseIfIsLikelyAheadOfPrerender", "kPrerender2FallbackPrefetchSchedulerPolicy": "Burst", "kPrerender2FallbackPrefetchUseBlockUntilHeadTimetout": "false" }, @@ -18682,6 +18580,24 @@ ] } ], + "Prerender2ReuseSearchResultHostAndroid": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "reuse_search_host": "true" + }, + "enable_features": [ + "Prerender2ReuseHost" + ] + } + ] + } + ], "PreserveDiscardableImageMapQuality": [ { "platforms": [ @@ -18723,6 +18639,25 @@ ] } ], + "PriceInsightsDesktopExpansionStudy": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20250617_EN", + "enable_features": [ + "IPH_PriceInsightsPageActionIconLabelFeature", + "PriceInsights" + ] + } + ] + } + ], "PriceTrackingDesktopExpansionStudy": [ { "platforms": [ @@ -18812,6 +18747,26 @@ ] } ], + "PrioritizeHttpsResourceRecord": [ + { + "platforms": [ + "android", + "chromeos", + "ios", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "PrioritizeHttpsResourceRecord" + ] + } + ] + } + ], "PrivacySandboxActivityTypeStorage": [ { "platforms": [ @@ -18871,26 +18826,6 @@ ] } ], - "PrivacySandboxAdsApiUxEnhancements": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrivacySandboxAdsApiUxEnhancements" - ] - } - ] - } - ], "PrivacySandboxAllowPromptForBlocked3PCookies": [ { "platforms": [ @@ -18914,11 +18849,7 @@ "PrivacySandboxAttestationsDefaultDeny": [ { "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { @@ -18930,21 +18861,6 @@ ] } ], - "PrivacySandboxAttestationsLoadFromAPKAsset": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrivacySandboxAttestationsLoadFromAPKAsset" - ] - } - ] - } - ], "PrivacySandboxInternalsDevUI": [ { "platforms": [ @@ -19002,44 +18918,6 @@ ] } ], - "PrivacySandboxPrivacyGuideAdTopics": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrivacySandboxAdTopicsContentParity" - ] - } - ] - } - ], - "PrivacySandboxRelatedWebsiteSetsUi": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "PrivacySandboxRelatedWebsiteSetsUi" - ] - } - ] - } - ], "PrivacySandboxSentimentSurvey": [ { "platforms": [ @@ -19190,41 +19068,13 @@ ], "experiments": [ { - "name": "EnabledAll", + "name": "EnabledAll_20250731", "enable_features": [ "ChangeUnfocusedPriority", "ProcessRankPolicyAndroid", - "ProtectedTabsAndroid" - ] - }, - { - "name": "EnabledProcessRankPolicyAndroid", - "enable_features": [ - "ProcessRankPolicyAndroid" - ], - "disable_features": [ - "ChangeUnfocusedPriority", - "ProtectedTabsAndroid" - ] - }, - { - "name": "EnabledChangeUnfocusedPriority", - "enable_features": [ - "ChangeUnfocusedPriority" - ], - "disable_features": [ - "ProcessRankPolicyAndroid", - "ProtectedTabsAndroid" - ] - }, - { - "name": "EnabledProtectedTabsAndroid", - "enable_features": [ - "ProcessRankPolicyAndroid", - "ProtectedTabsAndroid" - ], - "disable_features": [ - "ChangeUnfocusedPriority" + "ProtectedTabsAndroid", + "SubframeImportance", + "SubframePriorityContribution" ] } ] @@ -19518,26 +19368,6 @@ ] } ], - "ProtectedAudienceKAnonymityKeyCacheStudy": [ - { - "platforms": [ - "android", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FledgeCacheKAnonHashedKeys" - ] - } - ] - } - ], "ProtectedAudienceMultiThreadedSellerWorklet": [ { "platforms": [ @@ -19867,25 +19697,42 @@ ] } ], - "QUIC": [ + "PushMessagingGcmEndpointWebpushPath": [ { "platforms": [ - "android_weblayer", - "android_webview", "android", "chromeos", "fuchsia", - "ios", "linux", "mac", "windows" ], "experiments": [ { - "name": "Enabled", + "name": "Enabled_Dogfood", + "enable_features": [ + "PushMessagingGcmEndpointWebpushPath" + ] + } + ] + } + ], + "QUIC": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "EnabledNoId", "params": { - "channel": "F", - "epoch": "30000000", + "channel": "D", + "epoch": "20250423", "retransmittable_on_wire_timeout_milliseconds": "200" }, "enable_features": [ @@ -20367,7 +20214,10 @@ "enable_features": [ "AvoidCloneArgsOnExtensionFunctionDispatch", "AvoidUnnecessaryGetMinimizeButtonOffset", - "ReducePPMs" + "AvoidUnnecessaryShouldRenderRichAnimation", + "ReducePPMs", + "ScreenWinDisplayLookupByHMONITOR", + "UpdateDirectManipulationHelperOnParentChange" ] } ] @@ -20403,6 +20253,21 @@ ] } ], + "RegenerateKeyForCatastrophicFailures": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RegenerateKeyForCatastrophicFailures" + ] + } + ] + } + ], "RegisterOsUpdateHandlerWin": [ { "platforms": [ @@ -20418,17 +20283,35 @@ ] } ], - "RegmonPolicyMonitoring": [ + "ReloadHiddenTabsWithActiveCrashedSubframes": [ { "platforms": [ - "chromeos" + "android", + "android_webview" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "CrOSLateBootRegmonPolicyMonitoringEnabled", - "NetworkAnnotationMonitoring" + "ReloadHiddenTabsWithActiveCrashedSubframes" + ] + } + ] + } + ], + "ReloadSelectionModel": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ReloadSelectionModel" ] } ] @@ -20609,8 +20492,6 @@ "RenderDocumentWithNavigationQueueing": [ { "platforms": [ - "android_weblayer", - "android", "chromeos", "fuchsia", "ios", @@ -20667,10 +20548,10 @@ ] } ], - "RenderDocumentWithNavigationQueueing_WebView": [ + "RenderDocumentWithNavigationQueueing_Android": [ { "platforms": [ - "android_webview" + "android" ], "experiments": [ { @@ -20680,45 +20561,43 @@ "queueing_level": "full" }, "enable_features": [ + "DelayLayerTreeViewDeletionOnLocalSwap", "QueueNavigationsWhileWaitingForCommit", - "RenderDocument", - "WebViewRenderDocument" + "RenderDocument" ], "disable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", "RenderDocumentCompositorReuse" ] + } + ] + } + ], + "RenderDocumentWithNavigationQueueing_WebView": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "EnabledAllFrames", + "params": { + "level": "all-frames", + "queueing_level": "full" + }, + "enable_features": [ + "RenderDocument", + "WebViewRenderDocument" + ] }, { - "name": "EnabledSubframeWithQueueing", + "name": "EnabledSubframe", "params": { "level": "subframe", "queueing_level": "full" }, "enable_features": [ - "QueueNavigationsWhileWaitingForCommit", "RenderDocument", "WebViewRenderDocument" - ], - "disable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", - "RenderDocumentCompositorReuse" - ] - }, - { - "name": "EnabledCrashedFrameWithQueueing", - "params": { - "level": "crashed-frame", - "queueing_level": "full" - }, - "enable_features": [ - "QueueNavigationsWhileWaitingForCommit", - "RenderDocument", - "WebViewRenderDocument" - ], - "disable_features": [ - "DelayLayerTreeViewDeletionOnLocalSwap", - "RenderDocumentCompositorReuse" ] } ] @@ -20762,31 +20641,6 @@ ] } ], - "RenderingOptimizationsHoldback": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "DOMInsertionFaster", - "FastClearNeedsRepaint", - "HarfBuzzBufferPool", - "IsolatedSVGDocumentOptimization", - "LineBreakEarlyReturn", - "PaintLayerUpdateOptimizations", - "ScrollableAreaOptimization" - ] - } - ] - } - ], "ReportNotificationContentDetectionDataAndroid": [ { "platforms": [ @@ -20799,6 +20653,7 @@ "ReportNotificationContentDetectionDataRate": "100" }, "enable_features": [ + "NotificationContentDetectionMqlsLogging", "ReportNotificationContentDetectionData" ] } @@ -20841,6 +20696,26 @@ ] } ], + "RequestMainFrameAfterFirstVideoFrame": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RequestMainFrameAfterFirstVideoFrame" + ] + } + ] + } + ], "ResamplingScrollEvents": [ { "platforms": [ @@ -20882,21 +20757,6 @@ ] } ], - "ResetMetricsUploadBackoffOnForeground": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ResetMetricsUploadBackoffOnForeground" - ] - } - ] - } - ], "ResolutionBasedDecoderPriority": [ { "platforms": [ @@ -20954,6 +20814,22 @@ ] } ], + "RetrieveTrustedVaultKeyKeyboardAccessoryAction": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "RetrieveTrustedVaultKeyKeyboardAccessoryAction" + ] + } + ] + } + ], "RetryGetVideoCaptureDeviceInfos": [ { "platforms": [ @@ -21021,27 +20897,6 @@ ] } ], - "RustyPng": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "ios", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "RustyPngExperimentForTests", - "enable_features": [ - "RustyPng" - ] - } - ] - } - ], "SRIMessageSignatureEnforcement": [ { "platforms": [ @@ -21137,7 +20992,7 @@ ] } ], - "SafetyCheckNotifications": [ + "SafetyCheckNotificationsWithInterstitial": [ { "platforms": [ "ios" @@ -21150,7 +21005,7 @@ "SafetyCheckAllowSafeBrowsingNotifications": "true", "SafetyCheckAllowUpdateChromeNotifications": "true", "SafetyCheckNotificationsExperimentType": "1", - "SafetyCheckNotificationsImpressionLimit": "3", + "SafetyCheckNotificationsImpressionLimit": "0", "SafetyCheckNotificationsImpressionTrigger": "1", "SafetyCheckNotificationsProvisionalEnabled": "true" }, @@ -22228,21 +22083,6 @@ ] } ], - "Scanner": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ScannerUpdate" - ] - } - ] - } - ], "ScannerDogfood": [ { "platforms": [ @@ -22458,21 +22298,6 @@ ] } ], - "ScreencastGm3": [ - { - "platforms": [ - "chromeos" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ProjectorGm3" - ] - } - ] - } - ], "ScreencastServerBasedUSMLocales": [ { "platforms": [ @@ -22699,6 +22524,24 @@ ] } ], + "SearchPrefetchAndroidInIncognito": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled_INCOGNITO_STABLE", + "params": { + "allow_incognito": "true" + }, + "enable_features": [ + "SearchNavigationPrefetch" + ] + } + ] + } + ], "SearchPrefetchHighPriorityPrefetches": [ { "platforms": [ @@ -22798,33 +22641,6 @@ ] } ], - "SegmentedDefaultBrowserPromo": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "EnabledWithStaticPromo", - "params": { - "SegmentedDefaultBrowserExperimentType": "0" - }, - "enable_features": [ - "SegmentedDefaultBrowserPromo" - ] - }, - { - "name": "EnabledWithAnimatedPromo", - "params": { - "SegmentedDefaultBrowserExperimentType": "1" - }, - "enable_features": [ - "SegmentedDefaultBrowserPromo" - ] - } - ] - } - ], "SelectFileOpenDocument": [ { "platforms": [ @@ -22953,6 +22769,7 @@ { "platforms": [ "android", + "android_webview", "chromeos", "fuchsia", "linux", @@ -22963,12 +22780,36 @@ { "name": "Enabled", "params": { - "script_checksum_to_bypass": "144B3D5485B621F5896FD51D6A6FE66A07B6DBC3ACF6404748A833C2D592F900", - "use_allowlist": "true" + "enable_only_when_service_worker_not_running": "true", + "enable_subresource_preload": "false", + "has_web_request_api_proxy": "true", + "respect_navigation_preload": "true", + "use_allowlist": "false" }, "enable_features": [ - "ServiceWorkerAutoPreload", - "ServiceWorkerBypassFetchHandlerHashStrings" + "ServiceWorkerAutoPreload" + ] + } + ] + } + ], + "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "fuchsia", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl", + "enable_features": [ + "ServiceWorkerBackgroundUpdateForFindRegistrationForClientUrl" ] } ] @@ -23058,6 +22899,21 @@ ] } ], + "SettingsSingleActivity": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SettingsSingleActivity" + ] + } + ] + } + ], "ShareCustomActionsInCCT": [ { "platforms": [ @@ -23235,19 +23091,17 @@ ] } ], - "SharedTabGroupsTeamfoodIPhone": [ + "SharedTabGroupsIOS": [ { "platforms": [ "ios" ], - "form_factors": [ - "phone" - ], "experiments": [ { "name": "Enabled", "enable_features": [ - "DataSharing" + "DataSharing", + "DataSharingJoinOnly" ] } ] @@ -23383,11 +23237,7 @@ "ShowSuggestionsOnAutofocus": [ { "platforms": [ - "android", - "chromeos", - "linux", - "mac", - "windows" + "android" ], "experiments": [ { @@ -23399,6 +23249,32 @@ ] } ], + "SideBySideDogfood": [ + { + "platforms": [ + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "SideBySide_Dogfood", + "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" + }, + "enable_features": [ + "SideBySide", + "SideBySideLinkMenuNewBadge", + "SideBySideSessionRestore" + ] + } + ] + } + ], "SidePanelCompanionDesktopM116Plus": [ { "platforms": [ @@ -23455,25 +23331,6 @@ ] } ], - "SidePanelResizing": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SidePanelResizing" - ] - } - ] - } - ], "SideSearchInProductHelp": [ { "platforms": [ @@ -23516,28 +23373,6 @@ ] } ], - "SimdutfBase64Support": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled_SimdutfWithFurtherOptimization", - "enable_features": [ - "FurtherOptimizeParsingDataUrls", - "SimdutfBase64Support" - ] - } - ] - } - ], "SimpleCachePrioritizedCaching": [ { "platforms": [ @@ -23676,36 +23511,6 @@ ] } ], - "SkiaGraphitePrecompilation": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SkiaGraphitePrecompilation" - ] - } - ] - } - ], - "SkipIsolatedSplitPreload": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SkipIsolatedSplitPreload" - ] - } - ] - } - ], "SkipModerateMemoryPressureLevelMac": [ { "platforms": [ @@ -24145,12 +23950,54 @@ ] } ], + "StrictHighRankProcessLRU": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled_20250728", + "enable_features": [ + "StrictHighRankProcessLRU" + ] + } + ] + } + ], + "SubframePriorityContribution": [ + { + "platforms": [ + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SubframePriorityContribution" + ] + } + ] + } + ], "SunfishFeature": [ { "platforms": [ "chromeos" ], "experiments": [ + { + "name": "Launch", + "enable_features": [ + "ScannerUpdate", + "SunfishFeature" + ] + }, { "name": "Enabled_Dogfood", "enable_features": [ @@ -24519,6 +24366,21 @@ ] } ], + "TabModelInitFixes": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "TabModelInitFixes" + ] + } + ] + } + ], "TabSearchInProductHelp": [ { "platforms": [ @@ -24560,7 +24422,6 @@ "tab_search_toolbar_button": "true" }, "enable_features": [ - "IPH_TabSearchToolbarButton", "TabstripComboButton" ] } @@ -24709,6 +24570,31 @@ ] } ], + "TerminateRendererOnBrowserCommitExhaustion": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "RetryOnly", + "enable_features": [ + "PageAllocatorRetryOnCommitFailure" + ], + "disable_features": [ + "TerminationTargetPolicy" + ] + }, + { + "name": "RetryAndTerminate", + "enable_features": [ + "PageAllocatorRetryOnCommitFailure", + "TerminationTargetPolicy" + ] + } + ] + } + ], "TextInputHostMojoCapabilityControlWorkaround": [ { "platforms": [ @@ -24741,6 +24627,21 @@ ] } ], + "ThirdPartyDisableChromeAutofillSettingsScreenStudy": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ThirdPartyDisableChromeAutofillSettingsScreen" + ] + } + ] + } + ], "ThreadCacheMinCachedMemoryForPurging": [ { "platforms": [ @@ -24797,9 +24698,13 @@ ], "experiments": [ { - "name": "Enabled", + "name": "ThreeButtonPasswordSaveDialog", "enable_features": [ "ThreeButtonPasswordSaveDialog" + ], + "disable_features": [ + "IPH_PasswordsSavePrimingPromo", + "IPH_PasswordsSaveRecoveryPromo" ] } ] @@ -24861,6 +24766,21 @@ ] } ], + "ToolbarSnapshotRefactor": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "ToolbarSnapshotRefactor" + ] + } + ] + } + ], "TopControlsRefactor": [ { "platforms": [ @@ -25206,6 +25126,21 @@ ] } ], + "UiaDisconnectRootProviders": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UiaDisconnectRootProviders" + ] + } + ] + } + ], "UiaProviderWin": [ { "platforms": [ @@ -25258,15 +25193,41 @@ "UserVisibleProcessPriority" ], "disable_features": [ - "RestrictThreadPoolInBackground", - "SetIsolatesPriority" + "IsolatesPriorityBestEffortWhenHidden", + "IsolatesPriorityUseProcessPriority", + "RestrictThreadPoolInBackground" ] }, { - "name": "RendererSettings", + "name": "IsolatesPriority", + "enable_features": [ + "IsolatesPriorityBestEffortWhenHidden", + "IsolatesPriorityUseProcessPriority", + "UnimportantFramesPriority" + ], + "disable_features": [ + "RestrictThreadPoolInBackground", + "UserVisibleProcessPriority" + ] + }, + { + "name": "RestrictThreadPoolInBackground", "enable_features": [ "RestrictThreadPoolInBackground", - "SetIsolatesPriority", + "UnimportantFramesPriority" + ], + "disable_features": [ + "IsolatesPriorityBestEffortWhenHidden", + "IsolatesPriorityUseProcessPriority", + "UserVisibleProcessPriority" + ] + }, + { + "name": "AllRendererSettings", + "enable_features": [ + "IsolatesPriorityBestEffortWhenHidden", + "IsolatesPriorityUseProcessPriority", + "RestrictThreadPoolInBackground", "UnimportantFramesPriority" ], "disable_features": [ @@ -25276,8 +25237,9 @@ { "name": "All", "enable_features": [ + "IsolatesPriorityBestEffortWhenHidden", + "IsolatesPriorityUseProcessPriority", "RestrictThreadPoolInBackground", - "SetIsolatesPriority", "UnimportantFramesPriority", "UserVisibleProcessPriority" ] @@ -25361,6 +25323,21 @@ ] } ], + "UpdateStateBeforeUnbindingWebview": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UpdateStateBeforeUnbinding" + ] + } + ] + } + ], "UploadOfficeToCloud": [ { "platforms": [ @@ -25428,6 +25405,21 @@ ] } ], + "UseDHCPCD10": [ + { + "platforms": [ + "chromeos" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseDHCPCD10" + ] + } + ] + } + ], "UseDMSAAForTiles": [ { "platforms": [ @@ -25510,6 +25502,21 @@ ] } ], + "UseFullScreenHeuristicForWgc": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "UseFullScreenHeuristicForWgc" + ] + } + ] + } + ], "UseHeuristicForWindowsFullScreenPowerPoint": [ { "platforms": [ @@ -25555,10 +25562,10 @@ ] } ], - "UseSharedRebindServiceConnection": [ + "UseSharedRebindServiceConnectionWebview": [ { "platforms": [ - "android" + "android_webview" ], "experiments": [ { @@ -25654,6 +25661,22 @@ ] } ], + "UserLevelMemoryPressureSignal": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "UserLevelMemoryPressureSignalOn4GbDevices", + "UserLevelMemoryPressureSignalOn6GbDevices" + ] + } + ] + } + ], "V8CodeFlushing": [ { "platforms": [ @@ -25683,55 +25706,6 @@ ] } ], - "V8EfficiencyModeTiering": [ - { - "platforms": [ - "chromeos", - "fuchsia", - "linux", - "mac", - "windows", - "android", - "android_weblayer", - "android_webview" - ], - "experiments": [ - { - "name": "Delay10k", - "params": { - "V8EfficiencyModeTieringDelayTurbofan": "10000" - }, - "enable_features": [ - "V8EfficiencyModeTiering" - ] - }, - { - "name": "NoTurbofan", - "params": { - "V8EfficiencyModeTieringDelayTurbofan": "0" - }, - "enable_features": [ - "V8EfficiencyModeTiering" - ] - }, - { - "name": "Delay15k", - "params": { - "V8EfficiencyModeTieringDelayTurbofan": "15000" - }, - "enable_features": [ - "V8EfficiencyModeTiering" - ] - }, - { - "name": "Control", - "disable_features": [ - "V8EfficiencyModeTiering" - ] - } - ] - } - ], "V8ExternalMemoryAccountedInGlobalLimit": [ { "platforms": [ @@ -25745,8 +25719,31 @@ "experiments": [ { "name": "Enabled", + "params": { + "external_memory_max_growing_factor": "1.3" + }, "enable_features": [ - "V8ExternalMemoryAccountedInGlobalLimit" + "V8Flag_external_memory_accounted_in_global_limit" + ] + } + ] + } + ], + "V8HighEndAndroid": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "V8HighEndAndroidMemoryThreshold": "8" + }, + "enable_features": [ + "V8HighEndAndroid" ] } ] @@ -25850,31 +25847,6 @@ ] } ], - "V8LocalCompileHints": [ - { - "platforms": [ - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LocalCompileHints" - ], - "disable_features": [ - "ConsumeCompileHints" - ] - }, - { - "name": "Control", - "disable_features": [ - "ConsumeCompileHints", - "LocalCompileHints" - ] - } - ] - } - ], "V8ManagedZoneMemory": [ { "platforms": [ @@ -25894,6 +25866,38 @@ ] } ], + "V8ParserAblation": [ + { + "platforms": [ + "android", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Disabled" + }, + { + "name": "V8EnableBytecodeCompilerAblation", + "enable_features": [ + "V8Flag_enable_bytecode_compiler_ablation" + ] + }, + { + "name": "V8EnablePreparserAblation", + "enable_features": [ + "V8Flag_enable_preparser_ablation" + ] + }, + { + "name": "V8EnableParserAblation", + "enable_features": [ + "V8Flag_enable_parser_ablation" + ] + } + ] + } + ], "V8PreconfigureOldGen": [ { "platforms": [ @@ -26046,61 +26050,6 @@ ] } ], - "V8WasmDeoptCallIndirectInlining": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "DeoptAndInlining", - "enable_features": [ - "WebAssemblyDeopt", - "WebAssemblyInliningCallIndirect" - ] - }, - { - "name": "InliningOnly", - "enable_features": [ - "WebAssemblyInliningCallIndirect" - ], - "disable_features": [ - "WebAssemblyDeopt" - ] - }, - { - "name": "Control", - "disable_features": [ - "WebAssemblyDeopt", - "WebAssemblyInliningCallIndirect" - ] - } - ] - } - ], - "VSyncAlignedPresent": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled_for_all_frames", - "params": { - "Target": "Interaction" - }, - "enable_features": [ - "VSyncAlignedPresent" - ] - } - ] - } - ], "VSyncDecoding": [ { "platforms": [ @@ -26252,6 +26201,24 @@ ] } ], + "VideoPictureInPictureControlsUpdate2024": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "VideoPictureInPictureControlsUpdate2024" + ] + } + ] + } + ], "VisibilityAwareResourceScheduler": [ { "platforms": [ @@ -26307,6 +26274,21 @@ ] } ], + "VizDirectCompositorThreadIpcNonRootWindows": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "VizDirectCompositorThreadIpcNonRoot" + ] + } + ] + } + ], "VulkanV2": [ { "platforms": [ @@ -26430,6 +26412,21 @@ ] } ], + "WebAuthenticationAndroidPasskeyCacheMigration": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebAuthenticationAndroidPasskeyCacheMigration" + ] + } + ] + } + ], "WebContentsDiscard": [ { "platforms": [ @@ -26525,16 +26522,18 @@ ] } ], - "WebGPUUseTintIR": [ + "WebGPUUseSpirv14": [ { "platforms": [ - "windows" + "android", + "android_webview", + "chromeos" ], "experiments": [ { "name": "Enabled", "enable_features": [ - "WebGPUUseTintIR" + "WebGPUUseSpirv14" ] } ] @@ -26771,6 +26770,27 @@ ] } ], + "WebRTC-DataChannelMessageInterleaving": [ + { + "platforms": [ + "android", + "android_webview", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebRTC-DataChannelMessageInterleaving" + ] + } + ] + } + ], "WebRTC-ForceDtls13": [ { "platforms": [ @@ -27047,6 +27067,24 @@ ] } ], + "WebRTCColorAccuracy": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebRTCColorAccuracy" + ] + } + ] + } + ], "WebRtcAudioSinkUseTimestampAligner": [ { "platforms": [ @@ -27068,26 +27106,6 @@ ] } ], - "WebRtcEncodedTransformDirectCallback": [ - { - "platforms": [ - "android", - "android_webview", - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WebRtcEncodedTransformDirectCallback" - ] - } - ] - } - ], "WebRtcHWDecodingDisabledCfM": [ { "platforms": [ @@ -27166,6 +27184,13 @@ "chromeos" ], "experiments": [ + { + "name": "Enabled_WithScriptStreaming", + "enable_features": [ + "ScriptStreamingForNonHTTP", + "WebUIInProcessResourceLoading" + ] + }, { "name": "Enabled_NoScriptStreaming", "enable_features": [ @@ -27174,13 +27199,6 @@ "disable_features": [ "ScriptStreamingForNonHTTP" ] - }, - { - "name": "Enabled_WithScriptStreaming", - "enable_features": [ - "ScriptStreamingForNonHTTP", - "WebUIInProcessResourceLoading" - ] } ] } @@ -27207,6 +27225,21 @@ ] } ], + "WebViewAsyncDrawOnly": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewAsyncDrawOnly" + ] + } + ] + } + ], "WebViewAutoGrantStorageAccessAPI": [ { "platforms": [ @@ -27274,6 +27307,21 @@ ] } ], + "WebViewConnectToComponentProviderInBackground": [ + { + "platforms": [ + "android_webview" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WebViewConnectToComponentProviderInBackground" + ] + } + ] + } + ], "WebViewDisableCHIPS": [ { "platforms": [ @@ -27694,7 +27742,7 @@ "name": "Enabled_en_20241016", "params": { "en_site_id": "6bnVh68QF0ugnJ3q1cK0NQxjpCFS", - "probability": "0.4" + "probability": "0.01" }, "enable_features": [ "HappinessTrackingSurveysForDesktopWhatsNew" @@ -27773,21 +27821,6 @@ ] } ], - "WidgetsForMultiprofileExperiment": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "WidgetsForMultiprofile" - ] - } - ] - } - ], "WinPlatformLocationProvider": [ { "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 ba774d2b..d07f1cd2 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 @@ -1124,7 +1124,7 @@ enum WebFeature { kOffscreenCanvasTransferToImageBitmap2D = 1658, kOffscreenCanvasTransferToImageBitmapWebGL = 1659, kOBSOLETE_OffscreenCanvasCommit2D = 1660, - kOffscreenCanvasCommitWebGL = 1661, + kOBSOLETE_OffscreenCanvasCommitWebGL = 1661, kRTCConfigurationIceTransportPolicy = 1662, kRTCConfigurationIceTransports = 1664, kOBSOLETE_DocumentFullscreenElementInV0Shadow = 1665, @@ -2664,7 +2664,7 @@ enum WebFeature { kOBSOLETE_BluetoothRemoteGATTCharacteristic_Uuid = 3402, kOBSOLETE_BluetoothRemoteGATTDescriptor_Uuid = 3403, kOBSOLETE_BluetoothRemoteGATTService_Uuid = 3404, - kGPUAdapter_Name = 3405, + kOBSOLETE_GPUAdapter_Name = 3405, kOBSOLETE_WindowScreenInternal = 3406, kOBSOLETE_WindowScreenPrimary = 3407, kThirdPartyCookieRead = 3408, @@ -3222,8 +3222,9 @@ enum WebFeature { kV8URLPattern_Exec_Method = 3961, kSameSiteCookieInclusionChangedByCrossSiteRedirect = 3962, // The items above roughly this point are available in the M93 branch. - kBlobStoreAccessAcrossAgentClustersInResolveAsURLLoaderFactory = 3963, - kBlobStoreAccessAcrossAgentClustersInResolveForNavigation = 3964, + kOBSOLETE_BlobStoreAccessAcrossAgentClustersInResolveAsURLLoaderFactory = + 3963, + kOBSOLETE_BlobStoreAccessAcrossAgentClustersInResolveForNavigation = 3964, kTapDelayEnabled = 3965, kV8URLPattern_CompareComponent_Method = 3966, kEarlyHintsPreload = 3967, @@ -3431,8 +3432,8 @@ enum WebFeature { kFedCm = 4166, kFetchEventSourceLastEventIdCorsUnSafe = 4167, kWrongBaselineOfMultiLineButtonWithNonSpace = 4168, - kBlobStoreAccessAcrossTopLevelSite = 4169, - kBlobStoreAccessUnknownTopLevelSite = 4170, + kOBSOLETE_BlobStoreAccessAcrossTopLevelSite = 4169, + kOBSOLETE_BlobStoreAccessUnknownTopLevelSite = 4170, kCrossOriginAccessBasedOnDocumentDomain = 4171, kCookieWithTruncatingChar = 4172, kVideoTrackGenerator = 4173, @@ -3455,7 +3456,7 @@ enum WebFeature { // The items above roughly this point are available in the M101 branch. kElementShowPopover = 4189, kElementHidePopover = 4190, - kValidPopoverAttribute = 4191, + kOBSOLETE_ValidPopoverAttribute = 4191, kDeprecationExample = 4192, // Used as an example Deprecation code pointer. kRTCLocalSdpModificationOpusStereo = 4193, kNavigatorUAData_Mobile = 4194, @@ -3538,7 +3539,7 @@ enum WebFeature { kSharedStorageAPI_SelectURL_Method = 4269, kSharedStorageAPI_Run_Method = 4270, kViewTimelineConstructor = 4271, - kH1UserAgentFontSizeInSectionApplied = 4272, + kOBSOLETE_H1UserAgentFontSizeInSectionApplied = 4272, kOBSOLETE_kV8PendingBeacon_Constructor = 4273, kOBSOLETE_kV8PendingBeacon_Url_AttributeGetter = 4274, kOBSOLETE_kV8PendingBeacon_Url_AttributeSetter = 4275, @@ -3560,7 +3561,7 @@ enum WebFeature { kDeviceOrientationUsedWithoutPermissionRequest = 4290, kDeviceMotionPermissionRequested = 4291, kDeviceMotionUsedWithoutPermissionRequest = 4292, - kPrivateNetworkAccessPermissionPrompt = 4293, + kOBSOLETE_PrivateNetworkAccessPermissionPrompt = 4293, kPseudoBeforeAfterForDateTimeInputElement = 4294, kOBSOLETE_kV8PendingBeacon_IsPending_AttributeGetter = 4295, kParentOfDisabledFormControlRespondsToMouseEvents = 4296, @@ -3777,7 +3778,7 @@ enum WebFeature { kSpeculationRulesExplicitEagerness = 4499, kSpeculationRulesEagernessConservative = 4500, kSpeculationRulesEagernessModerate = 4501, - kSpeculationRulesEagernessEager = 4502, + kSpeculationRulesEagernessImmediate = 4502, kOBSOLETE_URLSetPortCheckOverflow = 4503, kV8Animation_RangeStart_AttributeGetter = 4504, kV8Animation_RangeStart_AttributeSetter = 4505, @@ -4294,7 +4295,7 @@ enum WebFeature { kV8DocumentAllLegacyCall = 4998, kV8DocumentAllLegacyConstruct = 4999, // The items above roughly this point are available in the M127 branch. - kInsideListMarkerPositionQuirk = 5000, + kOBSOLETE_InsideListMarkerPositionQuirk = 5000, kZstdContentEncodingForNavigation = 5001, kZstdContentEncodingForMainFrameNavigation = 5002, kZstdContentEncodingForSubFrameNavigation = 5003, @@ -4507,7 +4508,7 @@ enum WebFeature { kGeolocationSucceededWithoutInjectionMitigation = 5202, kSharedWorkerScriptUnderServiceWorkerControlIsBlob = 5203, kOBSOLETE_DisableThirdPartyStoragePartitioning3 = 5204, - kControlledFrameElement = 5205, + kOBSOLETE_ControlledFrameElement = 5205, kCanvas2DIsPointInPath = 5206, kCanvas2DIsPointInStroke = 5207, kCanvas2DGetImageData = 5208, @@ -4533,7 +4534,7 @@ enum WebFeature { kClipboardCustomFormatWrite = 5228, kClipboardSvgRead = 5229, kClipboardSvgWrite = 5230, - kVarFallbackValidation = 5231, + kOBSOLETE_VarFallbackValidation = 5231, kLocaleInfoObsoletedGetters = 5232, kInjectionMitigatedContextSubFrame = 5233, kInjectionMitigatedContextMainFrame = 5234, @@ -4678,7 +4679,7 @@ enum WebFeature { kOBSOLETE_V8AIWriter_MeasureInputUsage_Method = 5370, kOBSOLETE_V8AIWriter_InputQuota_AttributeGetter = 5371, kSpeculationRulesTargetHintBlank = 5372, - kInterestTarget = 5373, + kInterestFor = 5373, kTextAutoSizingDisabledOnFlexbox = 5374, kAriaLabeledByAlternativeSpelling = 5375, kCanvasTextNg = 5376, @@ -4765,7 +4766,7 @@ enum WebFeature { kSummarizer_SharedContext = 5457, kSummarizer_Type = 5458, kCrossOriginSameSiteCookieAccessViaStorageAccessAPI = 5459, - kV8GPUAdapter_IsFallbackAdapter_AttributeGetter = 5460, + kOBSOLETE_V8GPUAdapter_IsFallbackAdapter_AttributeGetter = 5460, kLanguageDetector_ExpectedInputLanguages = 5461, kServiceWorkerPushEventListener = 5462, kServiceWorkerPushSubscriptionChangeEventListener = 5463, @@ -4904,7 +4905,38 @@ enum WebFeature { kSelectMultipleSizeOne = 5594, kWebGPUFeatureLevelCompatibility = 5595, kOverscrollBehaviorOnNonScrollableScrollContainer = 5596, + kInteractiveContentSummaryDescendant = 5597, + kSpeculationRulesEagernessEager = 5598, + kCSSSelectorPseudoNot = 5599, + kCSSCustomMedia = 5600, + kHTMLCanvasElementLowLatency_2D = 5601, + kHTMLCanvasElementLowLatency_WebGL = 5602, + kHTMLCanvasElementLowLatency_WebGL_Preserve = 5603, + kHTMLCanvasElementLowLatency_WebGL_Discard = 5604, + kAnimatedImageUsedMoreThanOnce = 5605, + kClipboardPlatformPermissionDenied = 5606, + kValidPopoverAttribute = 5607, + kCanvasFallbackContent = 5608, + kCanvasFallbackElementContent = 5609, + kAutofillMaybeSyntheticSelect = 5610, + kAutofillSyntheticSelect = 5611, kFetchRetry = 5612, + kMessageEventDataBeforeSameOrigin = 5613, + kMessageEventDataBeforeSameSiteOrigin = 5614, + kMessageEventDataBeforeCrossSiteOrigin = 5615, + kMessageEventDataBeforeOpaqueOrigin = 5616, + kLocalNetworkAccessNonSecureContextAllowedDeprecationTrial = 5617, + kCSPUrlHashes = 5618, + kCSPEvalHashes = 5619, + kWebAppManifestNameLocalized = 5620, + kWebAppManifestShortNameLocalized = 5621, + kWebAppManifestDescriptionLocalized = 5622, + kWebAppManifestIconsLocalized = 5623, + kHTMLControlledFrameElement = 5624, + kSlowDeserialization = 5625, + kSharedWorkerStartOnAndroid = 5626, + kLocalNetworkAccessWithinSharedWorker = 5627, + kLocalNetworkAccessWithinDedicatedWorker = 5628, // 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 ff66e79f..60432eee 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 @@ -148,7 +148,6 @@ struct WebPreferences { bool allow_file_access_from_file_urls; bool webgl1_enabled; bool webgl2_enabled; - bool pepper_3d_enabled; bool privileged_webgl_extensions_enabled; bool webgl_errors_to_console_enabled; bool hide_scrollbars; @@ -193,7 +192,6 @@ struct WebPreferences { bool barrel_button_for_drag_enabled; bool sync_xhr_in_documents_enabled; bool target_blank_implies_no_opener_enabled_will_be_removed; - bool allow_non_empty_navigator_plugins; bool ignore_permission_for_device_changed_event; int32 number_of_cpu_cores; EditingBehavior editing_behavior; 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 e7995395..7928b5f1 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,7 +4,7 @@ // https://drafts.csswg.org/web-animations-2/#the-animationtrigger-interface -enum AnimationTriggerType { "once", "repeat", "alternate", "state" }; +enum AnimationTriggerBehavior { "once", "repeat", "alternate", "state" }; [ Exposed=Window, @@ -12,7 +12,7 @@ enum AnimationTriggerType { "once", "repeat", "alternate", "state" }; ] interface AnimationTrigger { [CallWith=ExecutionContext, Measure, RaisesException] constructor(optional AnimationTriggerOptions options = {}); readonly attribute AnimationTimeline? timeline; - readonly attribute AnimationTriggerType type; + readonly attribute AnimationTriggerBehavior behavior; [CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) rangeStart; [CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) rangeEnd; [CallWith=ExecutionContext] readonly attribute (TimelineRangeOffset or DOMString) exitRangeStart; diff --git a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl index f01b7c7b..54faa02c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/animation/animation_trigger_options.idl @@ -5,7 +5,7 @@ // https://drafts.csswg.org/web-animations-2/#the-animationtriggeroptions-dictionary dictionary AnimationTriggerOptions { - AnimationTriggerType type = "once"; + 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/css/css_custom_media_rule.idl b/tools/under-control/src/third_party/blink/renderer/core/css/css_custom_media_rule.idl new file mode 100755 index 00000000..f5d40eb1 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/css/css_custom_media_rule.idl @@ -0,0 +1,10 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +typedef (MediaList or boolean) CustomMediaQuery; + +[Exposed=Window, RuntimeEnabled=CSSCustomMedia] +interface CSSCustomMediaRule : CSSRule { + readonly attribute CSSOMString name; + readonly attribute CustomMediaQuery query; +}; \ No newline at end of file diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/cssom/caret_position.idl b/tools/under-control/src/third_party/blink/renderer/core/css/cssom/caret_position.idl index b784b456..8d79a095 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/cssom/caret_position.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/cssom/caret_position.idl @@ -4,7 +4,6 @@ // https://www.w3.org/TR/cssom-view/#caretposition [ - RuntimeEnabled=CaretPositionFromPoint, Exposed=Window ] interface CaretPosition { readonly attribute Node offsetNode; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/font_face.idl b/tools/under-control/src/third_party/blink/renderer/core/css/font_face.idl index ac5cb3ba..6d41a7b0 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/font_face.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/font_face.idl @@ -51,6 +51,7 @@ typedef (ArrayBuffer or ArrayBufferView) BinaryData; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString unicodeRange; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString variant; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString featureSettings; + [RaisesException=Setter, SetterCallWith=ExecutionContext, RuntimeEnabled=FontVariationSettingsDescriptor] attribute CSSOMString variationSettings; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString display; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString ascentOverride; [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute CSSOMString descentOverride; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/font_face_descriptors.idl b/tools/under-control/src/third_party/blink/renderer/core/css/font_face_descriptors.idl index 43d10f3a..6fa57f9c 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/font_face_descriptors.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/css/font_face_descriptors.idl @@ -11,6 +11,7 @@ dictionary FontFaceDescriptors { CSSOMString unicodeRange = "U+0-10FFFF"; CSSOMString variant = "normal"; CSSOMString featureSettings = "normal"; + [RuntimeEnabled=FontVariationSettingsDescriptor] CSSOMString variationSettings = "normal"; CSSOMString display = "auto"; [MeasureAs=FontFaceAscentOverride] CSSOMString ascentOverride = "normal"; [MeasureAs=FontFaceDescentOverride] CSSOMString descentOverride = "normal"; diff --git a/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc b/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc index 8d7097a3..b2ffeb93 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc +++ b/tools/under-control/src/third_party/blink/renderer/core/css/parser/media_query_parser.cc @@ -35,7 +35,7 @@ bool MediaQueryParser::MediaQueryFeatureSet::IsAllowed( feature == media_feature_names::kStuckMediaFeature || feature == media_feature_names::kSnappedMediaFeature || feature == media_feature_names::kScrollableMediaFeature || - (feature == media_feature_names::kScrollDirectionMediaFeature && + (feature == media_feature_names::kDirectionMediaFeature && RuntimeEnabledFeatures::CSSScrollDirectionContainerQueriesEnabled()) || CSSVariableParser::IsValidVariableName(feature)) { return false; @@ -226,17 +226,15 @@ std::optional ConsumeUnparsed( } } wtf_size_t end = stream.Offset(); - String value_string(stream.StringRangeAt(start, end - start).ToString()); + StringView value_string(stream.StringRangeAt(start, end - start)); if (value_string.empty()) { return std::nullopt; } - - CSSVariableData* data = - CSSVariableData::Create(value_string, /* is_animation_tainted= */ false, - /* is_attr_tainted= */ false, - /*needs_variable_resolution=*/true); - const CSSValue* value = - MakeGarbageCollected(data, &context); + const CSSValue* value = CSSVariableParser::ParseDeclarationValue( + value_string, /* is_animation_tainted = */ false, context); + if (!value) { + return std::nullopt; + } return MediaQueryExpValue(*value); } diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/css_pseudo_element.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/css_pseudo_element.idl new file mode 100755 index 00000000..008e73a4 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/css_pseudo_element.idl @@ -0,0 +1,14 @@ +// 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. + +[ + RuntimeEnabled=CSSPseudoElementInterface, + Exposed=Window +] +interface CSSPseudoElement : EventTarget { + readonly attribute CSSOMString type; + readonly attribute Element element; + readonly attribute (Element or CSSPseudoElement) parent; + CSSPseudoElement? pseudo(CSSOMString type); +}; 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 014a9ad0..8ec82f57 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 @@ -86,11 +86,11 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; // https://html.spec.whatwg.org/C/#the-document-object // https://github.com/whatwg/html/pull/9538 - [CallWith=ExecutionContext,RaisesException,MeasureAs=ParseHTMLUnsafe] static Document parseHTMLUnsafe(HTMLString html); + [CallWith=ExecutionContext,RaisesException,MeasureAs=ParseHTMLUnsafe] static Document parseHTMLUnsafe((DOMString or TrustedHTML) html); // https://wicg.github.io/sanitizer-api/#sanitizer-api // TODO(356601280): Merge the two setHTMLUnsafe variants into one, once the // different RuntimeEnabled flags are both perma-enabled. - [RuntimeEnabled=SanitizerAPI,RaisesException,CallWith=ExecutionContext,MeasureAs=ParseHTMLUnsafe,CEReactions] static Document parseHTMLUnsafe(HTMLString html, SetHTMLUnsafeOptions options); + [RuntimeEnabled=SanitizerAPI,RaisesException,CallWith=ExecutionContext,MeasureAs=ParseHTMLUnsafe,CEReactions] static Document parseHTMLUnsafe((DOMString or TrustedHTML) html, SetHTMLUnsafeOptions options); [RuntimeEnabled=SanitizerAPI,RaisesException,CallWith=ExecutionContext,MeasureAs=ParseHTMLSafe,CEReactions] static Document parseHTML(DOMString html, optional SetHTMLOptions options = {}); // resource metadata management @@ -199,7 +199,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [MeasureAs=DocumentCaretRangeFromPoint] Range caretRangeFromPoint(optional long x = 0, optional long y = 0); // https://www.w3.org/TR/cssom-view/#dom-document-caretpositionfrompoint - [NewObject, MeasureAs=CaretPositionFromPoint, RuntimeEnabled=CaretPositionFromPoint] CaretPosition? caretPositionFromPoint(float x, float y, optional CaretPositionFromPointOptions options = {}); + [NewObject, MeasureAs=CaretPositionFromPoint] CaretPosition? caretPositionFromPoint(float x, float y, optional CaretPositionFromPointOptions options = {}); // Text fragment directive API // https://wicg.github.io/scroll-to-text-fragment/#feature-detectability diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl index 2bbfde8d..44fb1a29 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/element.idl @@ -67,6 +67,8 @@ dictionary SetHTMLUnsafeOptions { [Affects=Nothing] boolean hasAttribute(DOMString name); [Affects=Nothing] boolean hasAttributeNS(DOMString? namespaceURI, DOMString localName); + [RuntimeEnabled=CSSPseudoElementInterface] CSSPseudoElement? pseudo(CSSOMString type); + Attr? getAttributeNode(DOMString name); Attr? getAttributeNodeNS(DOMString? namespaceURI, DOMString localName); [RaisesException, CEReactions] Attr? setAttributeNode(Attr attr); @@ -102,17 +104,17 @@ dictionary SetHTMLUnsafeOptions { [ImplementedAs=assignedSlotForBinding] readonly attribute HTMLSlotElement? assignedSlot; // DOM Parsing and Serialization - // https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface - [CEReactions, RuntimeCallStatsCounter=ElementInnerHTML, RaisesException=Setter] attribute [LegacyNullToEmptyString, StringContext=TrustedHTML] DOMString innerHTML; - [CEReactions, RaisesException=Setter] attribute [LegacyNullToEmptyString, StringContext=TrustedHTML] DOMString outerHTML; - [CEReactions, RaisesException] void insertAdjacentHTML(DOMString position, HTMLString text); + // https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#the-innerhtml-property + [CEReactions, RuntimeCallStatsCounter=ElementInnerHTML, RaisesException=Setter] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML; + [CEReactions, RaisesException=Setter] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML; + [CEReactions, RaisesException] void insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) text); // https://github.com/whatwg/html/pull/9538 - [RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe(HTMLString html); + [RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) html); // https://wicg.github.io/sanitizer-api/#sanitizer-api // TODO(vogelheim): Merge the two setHTMLUnsafe variants into one, once the // different RuntimeEnabled flags are both perma-enabled. - [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe(HTMLString html, SetHTMLUnsafeOptions options); + [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) html, SetHTMLUnsafeOptions options); [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLSafe,CEReactions] void setHTML(DOMString html, optional SetHTMLOptions options = {}); // Declarative Shadow DOM getHTML() function. @@ -131,13 +133,13 @@ dictionary SetHTMLUnsafeOptions { // https://drafts.csswg.org/cssom-view/#dom-element-checkvisibility [MeasureAs=ElementCheckVisibility] boolean checkVisibility(optional CheckVisibilityOptions options = {}); - void scrollIntoView(optional (ScrollIntoViewOptions or boolean) arg = {}); - [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options = {}); - [ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y); - void scrollTo(optional ScrollToOptions options = {}); - void scrollTo(unrestricted double x, unrestricted double y); - void scrollBy(optional ScrollToOptions options = {}); - void scrollBy(unrestricted double x, unrestricted double y); + [CallWith=ScriptState] Promise scrollIntoView(optional (ScrollIntoViewOptions or boolean) arg = {}); + [ImplementedAs=scrollTo, CallWith=ScriptState] Promise scroll(optional ScrollToOptions options = {}); + [ImplementedAs=scrollTo, CallWith=ScriptState] Promise scroll(unrestricted double x, unrestricted double y); + [CallWith=ScriptState] Promise scrollTo(optional ScrollToOptions options = {}); + [CallWith=ScriptState] Promise scrollTo(unrestricted double x, unrestricted double y); + [CallWith=ScriptState] Promise scrollBy(optional ScrollToOptions options = {}); + [CallWith=ScriptState] Promise scrollBy(unrestricted double x, unrestricted double y); attribute unrestricted double scrollTop; attribute unrestricted double scrollLeft; readonly attribute long scrollWidth; @@ -179,6 +181,9 @@ dictionary SetHTMLUnsafeOptions { // Scoped Custom Element Registries [RuntimeEnabled=ScopedCustomElementRegistry] readonly attribute CustomElementRegistry? customElementRegistry; + + // Declarative document updates + [RuntimeEnabled=DocumentPatching] readonly attribute PatchStatus? currentPatch; }; Element includes ParentNode; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl index 8eebe64b..c081f8a2 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/events/event_target.idl @@ -32,5 +32,5 @@ dictionary ObservableEventListenerOptions { void addEventListener(DOMString type, EventListener? listener, optional (AddEventListenerOptions or boolean) options); void removeEventListener(DOMString type, EventListener? listener, optional (EventListenerOptions or boolean) options); [ImplementedAs=dispatchEventForBindings, RaisesException, RuntimeCallStatsCounter=EventTargetDispatchEvent] boolean dispatchEvent(Event event); - [MeasureAs=EventTargetOnObservable, RuntimeEnabled=ObservableAPI] Observable when(DOMString type, optional ObservableEventListenerOptions options = {}); + [MeasureAs=EventTargetOnObservable] Observable when(DOMString type, optional ObservableEventListenerOptions options = {}); }; 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 c3b2ebbc..673246e1 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 @@ -40,7 +40,7 @@ interface mixin GlobalEventHandlers { attribute EventHandler onchange; attribute EventHandler onclick; attribute EventHandler onclose; - [RuntimeEnabled=HTMLCommandAttributes] attribute EventHandler oncommand; + attribute EventHandler oncommand; attribute EventHandler oncontentvisibilityautostatechange; attribute EventHandler oncontextlost; attribute EventHandler oncontextmenu; @@ -88,7 +88,7 @@ interface mixin GlobalEventHandlers { attribute EventHandler onreset; attribute EventHandler onresize; attribute EventHandler onscroll; - [RuntimeEnabled=ScrollEndEvents] attribute EventHandler onscrollend; + attribute EventHandler onscrollend; attribute EventHandler onsecuritypolicyviolation; attribute EventHandler onseeked; attribute EventHandler onseeking; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/interest_invoker_element.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/interest_invoker_element.idl index e47885cb..d28c6d46 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/interest_invoker_element.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/interest_invoker_element.idl @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -[RuntimeEnabled=HTMLInterestTargetAttribute] +[RuntimeEnabled=HTMLInterestForAttribute] interface mixin InterestInvokerElement { - [CEReactions,Reflect=interesttarget] attribute Element? interestTargetElement; + [CEReactions,Reflect=interestfor] attribute Element? interestForElement; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl index a52c9dae..79410b50 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/observable.idl @@ -45,7 +45,7 @@ dictionary SubscribeOptions { typedef (ObserverCallback or Observer) ObserverUnion; typedef (ObserverCallback or ObservableInspector) ObservableInspectorUnion; -[Exposed=(Window,Worker,ShadowRealm), RuntimeEnabled=ObservableAPI] // TODO(crbug.com/40282760): This should be Exposed=* +[Exposed=(Window,Worker,ShadowRealm)] // TODO(crbug.com/40282760): This should be Exposed=* interface Observable { [CallWith=ScriptState, MeasureAs=ObservableConstructor] constructor(SubscribeCallback callback); [CallWith=ScriptState] void subscribe(optional ObserverUnion observer = {}, optional SubscribeOptions options = {}); diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl index 40114231..2fedb9f9 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/parent_node.idl @@ -42,4 +42,9 @@ interface mixin ParentNode { [Affects=Nothing, RaisesException] Element? querySelector(DOMString selectors); [Affects=Nothing, NewObject, RaisesException] NodeList querySelectorAll(DOMString selectors); + [RuntimeEnabled=DocumentPatching, CallWith=ScriptState] WritableStream patchSelf(); + [RuntimeEnabled=DocumentPatching, CallWith=ScriptState, RaisesException] WritableStream patchBetween(Node prev_child, Node next_child); + [RuntimeEnabled=DocumentPatching, CallWith=ScriptState, RaisesException] WritableStream patchAfter(Node ref); + [RuntimeEnabled=DocumentPatching, CallWith=ScriptState, RaisesException] WritableStream patchBefore(Node ref); + [RuntimeEnabled=DocumentPatching, CallWith=ScriptState] WritableStream patchAll(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/range.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/range.idl index b6df5246..a95e1e84 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/range.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/range.idl @@ -64,7 +64,7 @@ // DOM Parsing and Serialization // https://w3c.github.io/DOM-Parsing/#extensions-to-the-range-interface - [NewObject, RaisesException, CEReactions] DocumentFragment createContextualFragment(HTMLString fragment); + [NewObject, RaisesException, CEReactions] DocumentFragment createContextualFragment((DOMString or TrustedHTML) fragment); // Non-standard API [RaisesException, DeprecateAs=RangeExpand] void expand(optional DOMString unit = ""); 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 b1d827d2..52cc2ab3 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 @@ -33,12 +33,12 @@ interface ShadowRoot : DocumentFragment { attribute EventHandler onslotchange; // TODO(lyf): Change the type to `[TreatNullAs=xxx] HTMLString` after // https://crbug.com/1058762 has been fixed. - [CEReactions, RaisesException=Setter] attribute [LegacyNullToEmptyString, StringContext=TrustedHTML] DOMString innerHTML; + [CEReactions, RaisesException=Setter] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML; readonly attribute boolean delegatesFocus; readonly attribute SlotAssignmentMode slotAssignment; // Declarative Shadow DOM getHTML() function. - [Affects=Nothing, MeasureAs=ElementGetHTML, RaisesException] HTMLString getHTML(optional GetHTMLOptions options = {}); + [Affects=Nothing, MeasureAs=ElementGetHTML, RaisesException] DOMString getHTML(optional GetHTMLOptions options = {}); // The serializable attribute controls whether the shadow root will be // serialized by getHTML({serializableShadowRoots:true}). @@ -54,8 +54,8 @@ interface ShadowRoot : DocumentFragment { // See https://crbug.com/346835896 [RuntimeEnabled=ShadowRootReferenceTarget] attribute DOMString referenceTarget; - [RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe(HTMLString string); - [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe(HTMLString html, SetHTMLUnsafeOptions options); + [RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) string); + [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLUnsafe,CEReactions] void setHTMLUnsafe((TrustedHTML or DOMString) html, SetHTMLUnsafeOptions options); [RuntimeEnabled=SanitizerAPI,RaisesException,MeasureAs=SetHTMLSafe,CEReactions] void setHTML(DOMString html, optional SetHTMLOptions 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 6a96a030..deede3d5 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 @@ -11,7 +11,7 @@ dictionary ShadowRootInit { required ShadowRootMode mode; boolean delegatesFocus; SlotAssignmentMode slotAssignment; - [RuntimeEnabled=ScopedCustomElementRegistry] CustomElementRegistry registry; + [RuntimeEnabled=ScopedCustomElementRegistry] CustomElementRegistry? customElementRegistry; boolean serializable; boolean clonable; [RuntimeEnabled=ShadowRootReferenceTarget] DOMString referenceTarget; diff --git a/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl b/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl index 197ed3ed..9a09310b 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/dom/subscriber.idl @@ -4,7 +4,7 @@ // https://github.com/WICG/observable -[Exposed=(Window,Worker,ShadowRealm), RuntimeEnabled=ObservableAPI] // TODO(crbug.com/40282760): This should be Exposed=* +[Exposed=(Window,Worker,ShadowRealm)] // TODO(crbug.com/40282760): This should be Exposed=* interface Subscriber { void next(any result); [CallWith=ScriptState] void error(any error); diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/command_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/command_event.idl index c3c5e84d..19c36ce3 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/command_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/command_event.idl @@ -3,7 +3,6 @@ // found in the LICENSE file. [ - RuntimeEnabled=HTMLCommandAttributes, Exposed=Window ] interface CommandEvent : Event { constructor(DOMString type, optional CommandEventInit eventInitDict = {}); 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 3511748a..9b3fb549 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 @@ -156,6 +156,7 @@ "gesturetapunconfirmed", "gotpointercapture", "hashchange", + "hdrheadroomchange", "icecandidate", "icecandidateerror", "iceconnectionstatechange", @@ -184,6 +185,7 @@ "loadingdone", "loadingerror", "loadstart", + "location", "loseinterest", "lostpointercapture", "managedconfigurationchange", @@ -221,6 +223,7 @@ "pageshow", "pageswap", "paste", + "patch", "pause", "payerdetailchange", "paymentmethodchange", diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/interest_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/interest_event.idl index 2717627b..5b5b66f8 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/interest_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/interest_event.idl @@ -3,7 +3,7 @@ // found in the LICENSE file. [ - RuntimeEnabled=HTMLInterestTargetAttribute, + RuntimeEnabled=HTMLInterestForAttribute, Exposed=Window ] interface InterestEvent : Event { constructor(DOMString type, optional InterestEventInit eventInitDict = {}); diff --git a/tools/under-control/src/third_party/blink/renderer/core/events/message_event.idl b/tools/under-control/src/third_party/blink/renderer/core/events/message_event.idl index 7632cc9d..b6750ce0 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/events/message_event.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/events/message_event.idl @@ -32,7 +32,10 @@ ] interface MessageEvent : Event { [RaisesException] constructor(DOMString type, optional MessageEventInit eventInitDict = {}); [CachedAttribute=IsDataDirty, CallWith=ScriptState] readonly attribute any data; - readonly attribute DOMString origin; + // We need to differentiate between JS access and internal access to the origin + // property due to additional safety measures applied when data is accessed without + // script testing origin first. + [ImplementedAs=originForBindings] readonly attribute DOMString origin; readonly attribute DOMString lastEventId; // TODO(bashi): |source| should be of type MessageEventSource. readonly attribute EventTarget? source; 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 f518b711..b0a8c14c 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 @@ -500,7 +500,9 @@ WebView* WebView::Create( std::optional page_base_background_color, const base::UnguessableToken& browsing_context_group_token, const ColorProviderColorMaps* color_provider_colors, - blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params) { + blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, + int32_t history_index, + int32_t history_length) { return WebViewImpl::Create( client, is_hidden ? mojom::blink::PageVisibilityState::kHidden @@ -509,7 +511,8 @@ WebView* WebView::Create( widgets_never_composited, To(opener), std::move(page_handle), agent_group_scheduler, session_storage_namespace_id, std::move(page_base_background_color), browsing_context_group_token, - color_provider_colors, std::move(partitioned_popin_params)); + color_provider_colors, std::move(partitioned_popin_params), history_index, + history_length); } WebViewImpl* WebViewImpl::Create( @@ -527,14 +530,16 @@ WebViewImpl* WebViewImpl::Create( std::optional page_base_background_color, const base::UnguessableToken& browsing_context_group_token, const ColorProviderColorMaps* color_provider_colors, - blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params) { + blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, + int32_t history_index, + int32_t history_length) { return new WebViewImpl( client, visibility, std::move(prerender_param), fenced_frame_mode, compositing_enabled, widgets_never_composited, opener, std::move(page_handle), agent_group_scheduler, session_storage_namespace_id, std::move(page_base_background_color), browsing_context_group_token, color_provider_colors, - std::move(partitioned_popin_params)); + std::move(partitioned_popin_params), history_index, history_length); } size_t WebView::GetWebViewCount() { @@ -599,7 +604,9 @@ WebViewImpl::WebViewImpl( std::optional page_base_background_color, const base::UnguessableToken& browsing_context_group_token, const ColorProviderColorMaps* color_provider_colors, - blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params) + blink::mojom::PartitionedPopinParamsPtr partitioned_popin_params, + int32_t history_index, + int32_t history_length) : widgets_never_composited_(widgets_never_composited), web_view_client_(client), chrome_client_(MakeGarbageCollected(this)), @@ -607,6 +614,8 @@ WebViewImpl::WebViewImpl( blink::ZoomFactorToZoomLevel(kMinimumBrowserZoomFactor)), maximum_zoom_level_( blink::ZoomFactorToZoomLevel(kMaximumBrowserZoomFactor)), + history_list_index_(history_index), + history_list_length_(history_length), does_composite_(does_composite), fullscreen_controller_(std::make_unique(this)), page_base_background_color_( @@ -644,6 +653,8 @@ WebViewImpl::WebViewImpl( prerender_param->should_warm_up_compositor); page_->SetShouldPreparePaintTreeOnPrerender( prerender_param->should_prepare_paint_tree); + page_->SetShouldPauseJavaScriptExecutionOnPrerender( + prerender_param->should_pause_javascript_execution); } if (fenced_frame_mode && features::IsFencedFramesEnabled()) { @@ -1608,8 +1619,6 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, settings->SetSyncXHRInDocumentsEnabled(prefs.sync_xhr_in_documents_enabled); settings->SetTargetBlankImpliesNoOpenerEnabledWillBeRemoved( prefs.target_blank_implies_no_opener_enabled_will_be_removed); - settings->SetAllowNonEmptyNavigatorPlugins( - prefs.allow_non_empty_navigator_plugins); settings->SetIgnorePermissionForDeviceChangedEvent( prefs.ignore_permission_for_device_changed_event); settings->SetShouldProtectAgainstIpcFlooding( @@ -1706,11 +1715,6 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, settings->SetSmartInsertDeleteEnabled(prefs.smart_insert_delete_enabled); settings->SetSpatialNavigationEnabled(prefs.spatial_navigation_enabled); - // Spatnav depends on KeyboardFocusableScrollers. The WebUI team has - // disabled KFS because they need more time to update their custom elements, - // crbug.com/907284. Meanwhile, we pre-ship KFS to spatnav users. - if (prefs.spatial_navigation_enabled) - RuntimeEnabledFeatures::SetKeyboardFocusableScrollersEnabled(true); settings->SetSelectionIncludesAltImageText(true); @@ -1892,25 +1896,14 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, prefs.translate_service_available); #if BUILDFLAG(IS_WIN) - if (web_view_impl->GetPage() && - base::FeatureList::IsEnabled(features::kPrewarmDefaultFontFamilies)) { + if (web_view_impl->GetPage()) { if (auto* prewarmer = WebFontRendering::GetFontPrewarmer()) { GenericFontFamilySettings& font_settings = web_view_impl->GetPage() ->GetSettings() .GetGenericFontFamilySettings(); - if (features::kPrewarmStandard.Get()) - prewarmer->PrewarmFamily(font_settings.Standard()); - if (features::kPrewarmFixed.Get()) - prewarmer->PrewarmFamily(font_settings.Fixed()); - if (features::kPrewarmSerif.Get()) - prewarmer->PrewarmFamily(font_settings.Serif()); - if (features::kPrewarmSansSerif.Get()) - prewarmer->PrewarmFamily(font_settings.SansSerif()); - if (features::kPrewarmCursive.Get()) - prewarmer->PrewarmFamily(font_settings.Cursive()); - if (features::kPrewarmFantasy.Get()) - prewarmer->PrewarmFamily(font_settings.Fantasy()); + prewarmer->PrewarmFamily(font_settings.Serif()); + prewarmer->PrewarmFamily(font_settings.SansSerif()); } } #endif @@ -1925,6 +1918,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, prefs.payment_request_enabled); if (prefs.api_based_fingerprinting_interventions_enabled) { + RuntimeEnabledFeatures::SetReduceHardwareConcurrencyEnabled(true); RuntimeEnabledFeatures::SetReduceScreenSizeEnabled(true); } } @@ -2540,7 +2534,7 @@ void WebViewImpl::SetPageLifecycleStateInternal( SetVisibilityState(new_state->visibility, /*is_initial_state=*/false); } if (storing_in_bfcache) { - // TODO(https://crbug.com/1378279): Consider moving this to happen earlier + // TODO(https://crbug.com/427130212): Consider moving this to happen earlier // and together with other page state updates so that the ordering is clear. Scheduler()->SetPageBackForwardCached(new_state->is_in_back_forward_cache); } @@ -2553,7 +2547,7 @@ void WebViewImpl::SetPageLifecycleStateInternal( } } - // TODO(https://crbug.com/1378279): Consider moving this to happen earlier + // TODO(https://crbug.com/427130212): Consider moving this to happen earlier // and together with other page state updates so that the ordering is clear. SetPageFrozen(true); } @@ -2569,7 +2563,7 @@ void WebViewImpl::SetPageLifecycleStateInternal( if (eviction_changed) HookBackForwardCacheEviction(new_state->eviction_enabled); if (resuming_page) { - // TODO(https://crbug.com/1378279): Consider moving this to happen earlier + // TODO(https://crbug.com/427130212): Consider moving this to happen earlier // and together with other page state updates so that the ordering is clear. SetPageFrozen(false); } @@ -2582,7 +2576,7 @@ void WebViewImpl::SetPageLifecycleStateInternal( DispatchPersistedPageshow(page_restore_params->navigation_start); - // TODO(https://crbug.com/1378279): Consider moving this to happen earlier + // TODO(https://crbug.com/427130212): Consider moving this to happen earlier // and together with other page state updates so that the ordering is clear. Scheduler()->SetPageBackForwardCached(new_state->is_in_back_forward_cache); if (MainFrame()->IsWebLocalFrame()) { @@ -2605,7 +2599,7 @@ void WebViewImpl::SetPageLifecycleStateInternal( // move SchedulerTrackedFeatures to core/ and remove the back and forth. ReportActiveSchedulerTrackedFeatures(); - // TODO(https://crbug.com/1378279): Consider moving this to happen earlier + // TODO(https://crbug.com/427130212): Consider moving this to happen earlier // and together with other page state updates so that the ordering is clear. GetPage()->SetPageLifecycleState(std::move(new_state)); @@ -2754,7 +2748,10 @@ void WebViewImpl::DispatchPersistedPageshow(base::TimeTicks navigation_start) { // new navigation ID to identify the navigation. if (RuntimeEnabledFeatures:: BackForwardCacheRestorationPerformanceEntryEnabled(window)) { - window->GenerateNewNavigationId(); + WindowPerformance* performance = + DOMWindowPerformance::performance(*window); + DCHECK(performance); + performance->IncrementNavigationId(); } window->DispatchPersistedPageshowEvent(navigation_start); @@ -3544,6 +3541,10 @@ void WebViewImpl::UpdateRendererPreferences( for (auto& watcher : renderer_preference_watchers_) watcher->NotifyUpdate(renderer_preferences_); + for (auto& observer : observers_) { + observer.OnRendererPreferencesUpdated(preferences); + } + WebThemeEngineHelper::DidUpdateRendererPreferences(preferences); UpdateFontRenderingFromRendererPrefs(); diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/crash_report_storage.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/crash_report_storage.idl new file mode 100755 index 00000000..1a5779a6 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/crash_report_storage.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/crash-reporting/blob/gh-pages/crashStorage-explainer.md. + +[Exposed=Window, RuntimeEnabled=CrashReportingStorageAPI] +interface CrashReportStorage { + [CallWith=ScriptState, RaisesException, MeasureAs="WebDXFeature::kCrashReportStorageAPIInitialize"] Promise initialize(unsigned long long length); + [RaisesException] void set(DOMString key, DOMString value); + [RaisesException] void remove(DOMString key); + // Promise clear(); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 b/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 index c96100f7..9f68384d 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/settings.json5 @@ -312,10 +312,6 @@ name: "targetBlankImpliesNoOpenerEnabledWillBeRemoved", initial: true, }, - { - name: "allowNonEmptyNavigatorPlugins", - initial: false, - }, { name: "ignorePermissionForDeviceChangedEvent", initial: false, diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl index 32d02453..f8202ccd 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/window.idl @@ -135,12 +135,12 @@ [HighEntropy=Direct, MeasureAs=WindowPageXOffset, Replaceable] readonly attribute double pageXOffset; [HighEntropy=Direct, MeasureAs=WindowScrollY, Replaceable] readonly attribute double scrollY; [HighEntropy=Direct, MeasureAs=WindowPageYOffset, Replaceable] readonly attribute double pageYOffset; - [ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options = {}); - [ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y); - void scrollTo(optional ScrollToOptions options = {}); - void scrollTo(unrestricted double x, unrestricted double y); - void scrollBy(optional ScrollToOptions options = {}); - void scrollBy(unrestricted double x, unrestricted double y); + [ImplementedAs=scrollTo, CallWith=ScriptState] Promise scroll(optional ScrollToOptions options = {}); + [ImplementedAs=scrollTo, CallWith=ScriptState] Promise scroll(unrestricted double x, unrestricted double y); + [CallWith=ScriptState] Promise scrollTo(optional ScrollToOptions options = {}); + [CallWith=ScriptState] Promise scrollTo(unrestricted double x, unrestricted double y); + [CallWith=ScriptState] Promise scrollBy(optional ScrollToOptions options = {}); + [CallWith=ScriptState] Promise scrollBy(unrestricted double x, unrestricted double y); // Visual Viewport API // https://github.com/WICG/ViewportAPI @@ -216,6 +216,10 @@ // Collection of fenced frame APIs // https://github.com/shivanigithub/fenced-frame/issues/14 [RuntimeEnabled=FencedFrames] readonly attribute Fence? fence; + + // See + // https://github.com/WICG/crash-reporting/blob/gh-pages/crashStorage-explainer.md. + [RuntimeEnabled=CrashReportingStorageAPI] readonly attribute CrashReportStorage? crashReport; }; Window includes GlobalEventHandlers; diff --git a/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl b/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl index ac720ffb..7bc03fbf 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/frame/window_event_handlers.idl @@ -37,7 +37,7 @@ interface mixin WindowEventHandlers { attribute EventHandler onlanguagechange; attribute EventHandler onmessage; attribute EventHandler onmessageerror; - [RuntimeEnabled=WindowOnMoveEvent] attribute EventHandler onmove; + [RuntimeEnabled=DesktopPWAsAdditionalWindowingControls] attribute EventHandler onmove; attribute EventHandler onoffline; attribute EventHandler ononline; attribute EventHandler onpagehide; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation.idl diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_coordinates.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_coordinates.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_coordinates.idl diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_position.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_position.idl diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position_error.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_position_error.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/geolocation_position_error.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/geolocation_position_error.idl diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/navigator_geolocation.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/navigator_geolocation.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/navigator_geolocation.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/navigator_geolocation.idl diff --git a/tools/under-control/src/third_party/blink/renderer/modules/geolocation/position_options.idl b/tools/under-control/src/third_party/blink/renderer/core/geolocation/position_options.idl similarity index 100% rename from tools/under-control/src/third_party/blink/renderer/modules/geolocation/position_options.idl rename to tools/under-control/src/third_party/blink/renderer/core/geolocation/position_options.idl diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl b/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl index 176b7621..3d1a143a 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/html/custom/element_internals.idl @@ -31,6 +31,8 @@ interface ElementInternals { [MeasureAs=ElementInternalsStates] readonly attribute CustomStateSet states; + [RuntimeEnabled=ElementInternalsDotType] attribute DOMString type; + // Access to shadowRoot from custom elements. See crbug.com/1042130 and // https://github.com/w3c/webcomponents/issues/871#issuecomment-672082936 [MeasureAs=ElementInternalsShadowRoot] readonly attribute ShadowRoot? shadowRoot; 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 9f597967..e98fdaef 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 @@ -38,8 +38,8 @@ // FIXME: attribute HTMLMenuElement? menu; // Command Invokers - [RuntimeEnabled=HTMLCommandAttributes, CEReactions, Reflect=commandfor] attribute Element? commandForElement; - [RuntimeEnabled=HTMLCommandAttributes, CEReactions] attribute DOMString command; + [CEReactions, Reflect=commandfor] attribute Element? commandForElement; + [CEReactions] attribute DOMString command; readonly attribute boolean willValidate; readonly attribute ValidityState validity; 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 67f33093..b4b5ab34 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 @@ -61,7 +61,7 @@ readonly attribute NodeList labels; // https://html.spec.whatwg.org/multipage/input.html#dom-select-showpicker - [RaisesException, RuntimeEnabled=HTMLSelectElementShowPicker, MeasureAs=ShowPickerSelect] void showPicker(); + [RaisesException, MeasureAs=ShowPickerSelect] void showPicker(); [RuntimeEnabled=SelectedcontentelementAttribute] attribute HTMLSelectedContentElement? selectedContentElement; }; 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 cbd1d1b5..11c33685 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 @@ -27,7 +27,7 @@ ActiveScriptWrappable, HTMLConstructor ] interface HTMLEmbedElement : HTMLElement { - [CEReactions, Reflect, URL] attribute ScriptURLString src; + [CEReactions, RaisesException=Setter, URL] attribute (TrustedScriptURL or USVString) src; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute DOMString width; [CEReactions, Reflect] attribute DOMString height; diff --git a/tools/under-control/src/third_party/blink/renderer/core/html/html_geolocation_element.idl b/tools/under-control/src/third_party/blink/renderer/core/html/html_geolocation_element.idl new file mode 100755 index 00000000..88f43644 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/html/html_geolocation_element.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://github.com/WICG/PEPC/blob/main/geolocation_explainer.md + +[RuntimeEnabled=GeolocationElement, Exposed=Window] +interface HTMLGeolocationElement : HTMLPermissionElement { + [HTMLConstructor] constructor(); + + attribute EventHandler onlocation; + + readonly attribute GeolocationPosition position; + readonly attribute GeolocationPositionError error; + + [CEReactions] attribute boolean precise; + [CEReactions] attribute boolean autolocate; + [CEReactions] attribute boolean watch; +}; 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 47411f74..6f56be7a 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 @@ -20,15 +20,12 @@ // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmliframeelement -// The `HTMLString` references below are from Trusted Types: -// https://github.com/w3c/trusted-types/, which is still WIP. -// https://crbug.com/739170. [ Exposed=Window, HTMLConstructor ] interface HTMLIFrameElement : HTMLElement { [CEReactions, Reflect, URL] attribute USVString src; - [CEReactions, Reflect] attribute HTMLString srcdoc; + [CEReactions, RaisesException=Setter] attribute (DOMString or TrustedHTML) srcdoc; [CEReactions, Reflect] attribute DOMString name; [PutForwards=value] readonly attribute DOMTokenList sandbox; // Note: The seamless attribute was once supported, but was removed. 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 ad0afdc4..dc8fe94e 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 @@ -11,6 +11,6 @@ [CEReactions] attribute boolean checked; // Command Invokers - [RuntimeEnabled=HTMLCommandAttributes, CEReactions, Reflect=commandfor] attribute Element? commandForElement; - [RuntimeEnabled=HTMLCommandAttributes, CEReactions] attribute DOMString command; + [CEReactions, Reflect=commandfor] attribute Element? commandForElement; + [CEReactions] attribute DOMString command; }; 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 9dd7c806..f1484205 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 @@ -27,7 +27,7 @@ ActiveScriptWrappable, HTMLConstructor ] interface HTMLObjectElement : HTMLElement { - [CEReactions, Reflect, URL] attribute ScriptURLString data; + [CEReactions, RaisesException=Setter, URL] attribute (TrustedScriptURL or USVString) data; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute DOMString name; [CEReactions, Reflect] attribute DOMString useMap; @@ -57,7 +57,7 @@ [CEReactions, Reflect] attribute unsigned long hspace; [CEReactions, Reflect] attribute DOMString standby; [CEReactions, Reflect] attribute unsigned long vspace; - [CEReactions, Reflect, URL] attribute ScriptURLString codeBase; + [CEReactions, RaisesException=Setter, URL] attribute (TrustedScriptURL or USVString) codeBase; [CEReactions, Reflect] attribute DOMString codeType; [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString border; 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 0efd0f2b..50501cdd 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 @@ -22,14 +22,14 @@ Exposed=Window, HTMLConstructor ] interface HTMLScriptElement : HTMLElement { - [CEReactions, Reflect, URL] attribute ScriptURLString src; + [CEReactions, URL, RaisesException=Setter] attribute (TrustedScriptURL or USVString) src; [CEReactions, Reflect] attribute DOMString type; [CEReactions, Reflect] attribute boolean noModule; [CEReactions, Reflect] attribute DOMString charset; [CEReactions] attribute boolean async; [CEReactions, Reflect] attribute boolean defer; [CEReactions, Reflect, ReflectOnly=("anonymous","use-credentials"), ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString? crossOrigin; - [CEReactions] attribute ScriptString text; + [CEReactions, RaisesException=Setter] attribute (TrustedScript or DOMString) text; [CEReactions, Reflect, ReflectOnly=("", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString? referrerPolicy; [CEReactions, MeasureAs=PriorityHints, Reflect, ReflectOnly=("low", "auto", "high"), ReflectMissing="auto", ReflectInvalid="auto"] attribute DOMString fetchPriority; diff --git a/tools/under-control/src/third_party/blink/renderer/core/inspector/dev_tools_host.idl b/tools/under-control/src/third_party/blink/renderer/core/inspector/dev_tools_host.idl index 6d0351bc..aedae129 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/inspector/dev_tools_host.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/inspector/dev_tools_host.idl @@ -39,6 +39,7 @@ dictionary ShowContextMenuItem { required DOMString type; [EnforceRange] unsigned short id; DOMString? label; + DOMString? featureName; boolean isExperimentalFeature = false; boolean enabled = true; boolean checked = false; diff --git a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl index 0cd68a1d..d3d00622 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/navigation_api/navigation_precommit_controller.idl @@ -8,5 +8,5 @@ RuntimeEnabled=NavigateEventCommitBehavior ] interface NavigationPrecommitController { - [RaisesException] undefined redirect(USVString url, optional NavigationReloadOptions options = {}); + [RaisesException] undefined redirect(USVString url, optional NavigationNavigateOptions options = {}); }; 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 2867bf44..eb7159ff 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 @@ -633,7 +633,7 @@ bool OriginTrialContext::EnableTrialFromToken( const Vector* script_origins) { DCHECK(!token.empty()); OriginTrialStatus trial_status = OriginTrialStatus::kValidTokenNotProvided; - StringUTF8Adaptor token_string(token); + StringUtf8Adaptor token_string(token); // TODO(https://crbug.com/1153336): Remove explicit validator. // Since |blink::SecurityOrigin::IsPotentiallyTrustworthy| is the source of // security information in this context, use that explicitly, instead of diff --git a/tools/under-control/src/third_party/blink/renderer/core/patching/patch_event.idl b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_event.idl new file mode 100755 index 00000000..e6569e81 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_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=DocumentPatching +] interface PatchEvent : Event { + constructor(DOMString type, PatchEventInit init); + [SameObject] readonly attribute PatchStatus patch; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/patching/patch_event_init.idl b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_event_init.idl new file mode 100755 index 00000000..81e71c72 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_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. + +dictionary PatchEventInit : EventInit { + PatchStatus patch; +}; + diff --git a/tools/under-control/src/third_party/blink/renderer/core/patching/patch_status.idl b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_status.idl new file mode 100755 index 00000000..1c3a7aa9 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/patching/patch_status.idl @@ -0,0 +1,5 @@ +[Exposed=Window, RuntimeEnabled=DocumentPatching, ImplementedAs=DOMPatchStatus] +interface PatchStatus { + [SameObject, CallWith=ScriptState] readonly attribute Promise finished; + [SameObject] readonly attribute HTMLTemplateElement source; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/resize_observer/resize_observer_options.idl b/tools/under-control/src/third_party/blink/renderer/core/resize_observer/resize_observer_options.idl index f7ac959f..60e4bfd7 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/resize_observer/resize_observer_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/resize_observer/resize_observer_options.idl @@ -12,4 +12,5 @@ enum ResizeObserverBoxOptions { dictionary ResizeObserverOptions { ResizeObserverBoxOptions box = "content-box"; + [RuntimeEnabled=CanvasDrawElement] boolean fireOnEveryPaint = false; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/scheduler/scheduler.idl b/tools/under-control/src/third_party/blink/renderer/core/scheduler/scheduler.idl index 3c050ed8..de2ca2c1 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/scheduler/scheduler.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/scheduler/scheduler.idl @@ -20,5 +20,5 @@ enum AncestorStatus { ] interface Scheduler { [CallWith=ScriptState, MeasureAs=SchedulerPostTask, RaisesException] Promise postTask(SchedulerPostTaskCallback callback, optional SchedulerPostTaskOptions options = {}); [CallWith=ScriptState, MeasureAs=SchedulerYield, RaisesException] Promise yield(); - [RuntimeEnabled=UnexposedTaskIds, CallWith=ScriptState, Exposed=Window] attribute unsigned long taskId; + [RuntimeEnabled=UnexposedTaskIds, CallWith=Isolate, Exposed=Window] attribute unsigned long taskId; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/scheduler/script_wrappable_task_state.idl b/tools/under-control/src/third_party/blink/renderer/core/scheduler/script_wrappable_task_state.idl deleted file mode 100755 index 52f9533e..00000000 --- a/tools/under-control/src/third_party/blink/renderer/core/scheduler/script_wrappable_task_state.idl +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This interface is not web-exposed. It is used to generate a ScriptWrappable -// object used to store task state as continuation embedder data. -interface ScriptWrappableTaskState { -}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/scheduler/window_or_worker_global_scope_timers.idl b/tools/under-control/src/third_party/blink/renderer/core/scheduler/window_or_worker_global_scope_timers.idl index 77b354fe..299dd118 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/scheduler/window_or_worker_global_scope_timers.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/scheduler/window_or_worker_global_scope_timers.idl @@ -33,9 +33,9 @@ ] partial interface mixin WindowOrWorkerGlobalScope { // https://html.spec.whatwg.org/C/webappapis.html#windoworworkerglobalscope-mixin [CallWith=ScriptState, RuntimeCallStatsCounter=WindowSetTimeout] long setTimeout(Function handler, optional long timeout = 0, any... arguments); - [CallWith=ScriptState] long setTimeout(ScriptString handler, optional long timeout = 0, any... arguments); + [CallWith=ScriptState, RaisesException] long setTimeout((DOMString or TrustedScript) handler, optional long timeout = 0, any... arguments); void clearTimeout(optional long handle = 0); [CallWith=ScriptState] long setInterval(Function handler, optional long timeout = 0, any... arguments); - [CallWith=ScriptState] long setInterval(ScriptString handler, optional long timeout = 0, any... arguments); + [CallWith=ScriptState, RaisesException] long setInterval((DOMString or TrustedScript) handler, optional long timeout = 0, any... arguments); void clearInterval(optional long handle = 0); }; 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 new file mode 100755 index 00000000..d048ab05 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate.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. + +[ + Exposed=Window, + ImplementedAs=AutomationDelegate, + RuntimeEnabled=ScriptTools +] interface AutomationDelegate { + [CallWith=ScriptState, RaisesException] undefined registerTool(ToolRegistrationParams params); + [CallWith=ScriptState, RaisesException] undefined unregisterTool(DOMString tool_name); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate_supplement.idl b/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate_supplement.idl new file mode 100755 index 00000000..e84a0350 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/script_tools/automation_delegate_supplement.idl @@ -0,0 +1,10 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +[ + RuntimeEnabled=ScriptTools, + ImplementedAs=AutomationDelegateSupplement +] partial interface Window { + [Replaceable] readonly attribute AutomationDelegate automationDelegate; +}; 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 new file mode 100755 index 00000000..5b86a5fa --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/script_tools/tool_registration_params.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. + +// TODO(khushalsagar): Link to the explainer for details of the WebIDL. + +callback ToolFunction = Promise(any... parameters); + +dictionary AnnotationsDict { + boolean readOnlyHint; +}; + +dictionary ToolRegistrationParams { + required ToolFunction execute; + required DOMString name; + required DOMString description; + object inputSchema; + AnnotationsDict annotations; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl index d5f1bc5f..141cce37 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/streams/readable_stream.idl @@ -12,7 +12,7 @@ enum ReadableStreamType { "bytes" }; [ Exposed=* ] interface ReadableStream { - [RuntimeEnabled=ReadableStreamAsyncIterable, HasAsyncIteratorReturnAlgorithm] async iterable(optional ReadableStreamIteratorOptions options = {}); + [HasAsyncIteratorReturnAlgorithm] async iterable(optional ReadableStreamIteratorOptions options = {}); [CallWith=ScriptState, RaisesException] constructor(optional any underlyingSource, optional any strategy); readonly attribute boolean locked; diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl index 19f3624b..85d24f33 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_entry.idl @@ -36,6 +36,6 @@ interface PerformanceEntry { readonly attribute DOMString entryType; readonly attribute DOMHighResTimeStamp startTime; readonly attribute DOMHighResTimeStamp duration; - [RuntimeEnabled=NavigationId] readonly attribute DOMString navigationId; + [RuntimeEnabled=NavigationId] readonly attribute unsigned long long navigationId; [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_resource_timing.idl b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_resource_timing.idl index 924fb62e..821640df 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/timing/performance_resource_timing.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/timing/performance_resource_timing.idl @@ -82,7 +82,6 @@ interface PerformanceResourceTiming : PerformanceEntry { [RuntimeEnabled=ResourceTimingContentEncoding] readonly attribute DOMString contentEncoding; - [RuntimeEnabled=ResourceTimingFinalResponseHeadersStart] readonly attribute DOMHighResTimeStamp finalResponseHeadersStart; readonly attribute DOMHighResTimeStamp firstInterimResponseStart; diff --git a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_html.idl b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_html.idl index cbb2c703..df8d0c7f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_html.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_html.idl @@ -4,8 +4,6 @@ // https://github.com/w3c/trusted-types -typedef [StringContext=TrustedHTML] DOMString HTMLString; - [ Exposed=(Window, Worker) ] interface TrustedHTML { diff --git a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script.idl b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script.idl index d0be4407..01f64368 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script.idl @@ -4,8 +4,6 @@ // https://github.com/w3c/trusted-types -typedef [StringContext=TrustedScript] DOMString ScriptString; - [ IsCodeLike, Exposed=(Window, Worker) diff --git a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script_url.idl b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script_url.idl index d0f13e94..587393d5 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script_url.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/trustedtypes/trusted_script_url.idl @@ -4,8 +4,6 @@ // https://github.com/w3c/trusted-types -typedef [StringContext=TrustedScriptURL] USVString ScriptURLString; - [ Exposed=(Window, Worker) ] interface TrustedScriptURL { diff --git a/tools/under-control/src/third_party/blink/renderer/core/url/origin.idl b/tools/under-control/src/third_party/blink/renderer/core/url/origin.idl new file mode 100755 index 00000000..133be2f8 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/core/url/origin.idl @@ -0,0 +1,23 @@ +// 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/mikewest/origin-api/ +[ + Exposed=(Window,Worker), + RuntimeEnabled=OriginAPI, + ImplementedAs=DOMOrigin +] interface Origin { + constructor(); + [RaisesException] constructor(USVString serializedOrigin); + + static Origin? parse(USVString serializedOrigin); + static Origin? fromURL(USVString serializedURL); + + stringifier USVString toJSON(); + + readonly attribute boolean opaque; + + boolean isSameOrigin(Origin other); + boolean isSameSite(Origin other); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl index 4263a6fd..380c3f98 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/workers/shared_worker.idl @@ -48,7 +48,7 @@ enum SharedWorkerSameSiteCookies { "all", "none" }; Exposed=Window, RuntimeEnabled=SharedWorker ] interface SharedWorker : EventTarget { - [CallWith=ExecutionContext, RaisesException] constructor(ScriptURLString scriptURL, optional (DOMString or SharedWorkerOptions) options = {}); + [CallWith=ExecutionContext, RaisesException] constructor((USVString or TrustedScriptURL) scriptURL, optional (DOMString or SharedWorkerOptions) options = {}); readonly attribute MessagePort port; }; diff --git a/tools/under-control/src/third_party/blink/renderer/core/workers/worker.idl b/tools/under-control/src/third_party/blink/renderer/core/workers/worker.idl index f7c33042..6950d67f 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/workers/worker.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/workers/worker.idl @@ -32,7 +32,7 @@ Exposed=(Window,DedicatedWorker), ImplementedAs=DedicatedWorker ] interface Worker : EventTarget { - [CallWith=ExecutionContext, RaisesException] constructor(ScriptURLString scriptURL, optional WorkerOptions options = {}); + [CallWith=ExecutionContext, RaisesException] constructor((USVString or TrustedScriptURL) scriptURL, optional WorkerOptions options = {}); void terminate(); [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence transfer); diff --git a/tools/under-control/src/third_party/blink/renderer/core/xml/dom_parser.idl b/tools/under-control/src/third_party/blink/renderer/core/xml/dom_parser.idl index 966b3af1..8a73d948 100755 --- a/tools/under-control/src/third_party/blink/renderer/core/xml/dom_parser.idl +++ b/tools/under-control/src/third_party/blink/renderer/core/xml/dom_parser.idl @@ -32,5 +32,5 @@ enum SupportedType { ] interface DOMParser { [CallWith=ScriptState] constructor(); - [NewObject] Document parseFromString(HTMLString str, SupportedType type); + [NewObject, RaisesException] Document parseFromString((DOMString or TrustedHTML) str, SupportedType type); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl index d15b902a..3e7bc3df 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl @@ -31,7 +31,7 @@ interface mixin BaseRenderingContext2D { [NoAllocDirectCall, RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight); // text - [RuntimeEnabled=CanvasTextLang] attribute DOMString lang; // (default: "inherit") + attribute DOMString lang; // (default: "inherit") [HighEntropy] attribute DOMString font; // (default 10px sans-serif) attribute CanvasTextAlign textAlign; // "start", "end", "left", "right", "center" (default: "start") attribute CanvasTextBaseline textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic") 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 new file mode 100755 index 00000000..b5f29dfc --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_draw_element_option.idl @@ -0,0 +1,10 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Used by method `drawElement` 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_2d_recorder_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl index fa7c035c..640cc24b 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_2d_recorder_context.idl @@ -33,6 +33,7 @@ interface mixin Canvas2DRecorderContext { [NoAllocDirectCall=Setter] attribute unrestricted double globalAlpha; // (default 1.0) [HighEntropy] attribute DOMString globalCompositeOperation; // (default source-over) [MeasureAs=Canvas2DFilter, SetterCallWith=ScriptState] attribute (DOMString or CanvasFilter)? filter; // (default 'none') + [RuntimeEnabled=CanvasGlobalHDRHeadroom] attribute unrestricted double globalHDRHeadroom; // (default 0.0) // image smoothing [NoAllocDirectCall=Setter] attribute boolean imageSmoothingEnabled; // (default True) @@ -95,4 +96,4 @@ interface mixin Canvas2DRecorderContext { void setLineDash(sequence dash); sequence getLineDash(); [NoAllocDirectCall=Setter] attribute unrestricted double lineDashOffset; -}; \ No newline at end of file +}; 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 db9fb916..e763988d 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 @@ -55,11 +55,15 @@ interface CanvasRenderingContext2D { void drawFocusIfNeeded(Path2D path, Element element); [RuntimeEnabled=CanvasDrawElement, RaisesException] - void drawElement(Element element, unrestricted double x, unrestricted double y); + void drawElement(Element element, + unrestricted double x, unrestricted double y, + optional Canvas2DDrawElementOption options = {}); [RuntimeEnabled=CanvasDrawElement, RaisesException] - void drawElement(Element element, unrestricted double x, unrestricted double y, - unrestricted double dwidth, unrestricted double dheight); + void drawElement(Element element, + unrestricted double x, unrestricted double y, + unrestricted double dwidth, unrestricted double dheight, + optional Canvas2DDrawElementOption options = {}); [RuntimeEnabled=CanvasDrawElement, RaisesException] void setHitTestRegions(sequence hitTestRegions); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl index 3d8d88be..762f36c2 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential.idl @@ -2,16 +2,20 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/digital-identities/#the-digitalcredential-interface - +// https://w3c-fedid.github.io/digital-credentials/#the-digitalcredential-interface [ Exposed=Window, SecureContext, RuntimeEnabled=WebIdentityDigitalCredentials ] interface DigitalCredential : Credential { - // https://wicg.github.io/digital-identities/#dom-digitalcredential-protocol + // https://w3c-fedid.github.io/digital-credentials/#the-protocol-member-1 readonly attribute USVString protocol; - // https://wicg.github.io/digital-identities/#dom-digitalcredential-data + // https://w3c-fedid.github.io/digital-credentials/#the-data-member-1 [SameObject] readonly attribute object data; + + // https://w3c-fedid.github.io/digital-credentials/#dom-digitalcredential-useragentallowsprotocol + static boolean userAgentAllowsProtocol(DOMString protocol); + + [CallWith=ScriptState] object toJSON(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl index 1602c0bb..1c67f561 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_creation_options.idl @@ -2,11 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(crbug.com/379294636): add link to the specs where the link is avaialble. +// https://w3c-fedid.github.io/digital-credentials/#the-digitalcredentialcreationoptions-dictionary dictionary DigitalCredentialCreationOptions { - sequence requests; + required sequence requests; }; +// https://w3c-fedid.github.io/digital-credentials/#the-digitalcredentialcreaterequest-dictionary dictionary DigitalCredentialCreateRequest { required DOMString protocol; required object data; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_request_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_request_options.idl index b403ef45..9237d0b8 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_request_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/digital_credential_request_options.idl @@ -2,19 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/digital-identities/#the-digitalcredentialrequestoptions-dictionary +// https://w3c-fedid.github.io/digital-credentials/#the-digitalcredentialrequestoptions-dictionary dictionary DigitalCredentialRequestOptions { - sequence providers; - sequence requests; -}; - -// https://wicg.github.io/digital-identities/#dom-identityrequestprovider -dictionary IdentityRequestProvider { - required DOMString protocol; - required (object or DOMString) request; + required sequence requests; }; +// https://w3c-fedid.github.io/digital-credentials/#the-digitalcredentialgetrequest-dictionary dictionary DigitalCredentialGetRequest { required DOMString protocol; - required (object or DOMString) data; + required object data; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/navigator_identity.idl b/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/navigator_identity.idl deleted file mode 100755 index fad6c4e1..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/credentialmanagement/navigator_identity.idl +++ /dev/null @@ -1,11 +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=IdentityCredentialsContainer, - RuntimeEnabled=WebIdentityDigitalCredentials -] partial interface Navigator { - [SecureContext, SameObject] readonly attribute CredentialsContainer identity; -}; - diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/constrain_dom_string_parameters.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/constrain_dom_string_parameters.idl index cfef1975..8b7a01ca 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/constrain_dom_string_parameters.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/constrain_dom_string_parameters.idl @@ -8,3 +8,8 @@ dictionary ConstrainDOMStringParameters { (DOMString or sequence) exact; (DOMString or sequence) ideal; }; + +dictionary ConstrainBooleanOrDOMStringParameters { + (boolean or DOMString) exact; + (boolean or DOMString) ideal; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream_constraints.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream_constraints.idl index 8a4780d6..b9fc3681 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream_constraints.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_stream_constraints.idl @@ -3,8 +3,10 @@ // found in the LICENSE file. enum DisplayMediaIncludeOrExclude { "include", "exclude" }; +enum DisplayMediaSystemWindowOrExclude { "system", "window", "exclude" }; typedef DisplayMediaIncludeOrExclude SystemAudioPreferenceEnum; +typedef DisplayMediaSystemWindowOrExclude WindowAudioPreferenceEnum; typedef DisplayMediaIncludeOrExclude SelfCapturePreferenceEnum; typedef DisplayMediaIncludeOrExclude SurfaceSwitchingPreferenceEnum; typedef DisplayMediaIncludeOrExclude MonitorTypeSurfacesEnum; @@ -33,6 +35,8 @@ dictionary DisplayMediaStreamOptions { SelfCapturePreferenceEnum selfBrowserSurface; SystemAudioPreferenceEnum systemAudio; + [RuntimeEnabled = GetDisplayMediaWindowAudioCapture] + WindowAudioPreferenceEnum windowAudio; SurfaceSwitchingPreferenceEnum surfaceSwitching; MonitorTypeSurfacesEnum monitorTypeSurfaces; }; @@ -49,6 +53,8 @@ dictionary MediaStreamConstraints { CaptureController controller; SelfCapturePreferenceEnum selfBrowserSurface; SystemAudioPreferenceEnum systemAudio; + [RuntimeEnabled = GetDisplayMediaWindowAudioCapture] + WindowAudioPreferenceEnum windowAudio; SurfaceSwitchingPreferenceEnum surfaceSwitching; MonitorTypeSurfacesEnum monitorTypeSurfaces; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl index 299bd57b..7954473b 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl @@ -9,10 +9,11 @@ dictionary MediaTrackCapabilities { DoubleRange frameRate; sequence facingMode; sequence resizeMode; - sequence echoCancellation; + sequence<(boolean or DOMString)> echoCancellation; sequence autoGainControl; sequence noiseSuppression; sequence voiceIsolation; + [RuntimeEnabled=RestrictOwnAudio] sequence restrictOwnAudio; LongRange sampleSize; LongRange channelCount; LongRange sampleRate; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl index 9397a31d..67735235 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl @@ -9,6 +9,7 @@ typedef (double or ConstrainDoubleRange) ConstrainDouble; typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean; typedef (DOMString or sequence or ConstrainDOMStringParameters) ConstrainDOMString; typedef (sequence or ConstrainPoint2DParameters) ConstrainPoint2D; +typedef (boolean or DOMString or ConstrainBooleanOrDOMStringParameters) ConstrainBooleanOrDOMString; dictionary MediaTrackConstraintSet { ConstrainLong width; @@ -19,7 +20,7 @@ dictionary MediaTrackConstraintSet { ConstrainDOMString resizeMode; ConstrainLong sampleRate; ConstrainLong sampleSize; - ConstrainBoolean echoCancellation; + ConstrainBooleanOrDOMString echoCancellation; ConstrainBoolean autoGainControl; ConstrainBoolean noiseSuppression; ConstrainBoolean voiceIsolation; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl index 59aef528..5b0f9048 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/mediastream/media_track_settings.idl @@ -13,7 +13,7 @@ dictionary MediaTrackSettings { DOMString resizeMode; long sampleRate; long sampleSize; - boolean echoCancellation; + (boolean or DOMString) echoCancellation; boolean autoGainControl; boolean noiseSuppression; boolean voiceIsolation; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl index 18e0c3dd..4b00ec2c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.idl @@ -6,6 +6,8 @@ typedef record MLNamedOperands; +typedef (bigint or unrestricted double) MLNumber; + enum MLInputOperandLayout { "nchw", "nhwc" }; enum MLConv2dFilterOperandLayout { "oihw", "hwio", "ohwi", "ihwo" }; @@ -148,7 +150,7 @@ enum MLPaddingMode { dictionary MLPadOptions : MLOperatorOptions { MLPaddingMode mode = "constant"; - float value = 0; + MLNumber value = 0; }; enum MLRoundingType { @@ -167,8 +169,8 @@ dictionary MLPool2dOptions : MLOperatorOptions { }; dictionary MLClampOptions : MLOperatorOptions { - float minValue; - float maxValue; + MLNumber minValue; + MLNumber maxValue; }; dictionary MLEluOptions : MLOperatorOptions { diff --git a/tools/under-control/src/third_party/blink/renderer/modules/notifications/notification_options.idl b/tools/under-control/src/third_party/blink/renderer/modules/notifications/notification_options.idl index 84dd6310..bbcbf4ed 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/notifications/notification_options.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/notifications/notification_options.idl @@ -32,5 +32,5 @@ dictionary NotificationOptions { any data = null; sequence actions = []; [RuntimeEnabled=NotificationTriggers] TimestampTrigger showTrigger; - [RuntimeEnabled=IncomingCallNotifications] NotificationScenario scenario = "default"; + [RuntimeEnabled=IncomingCallNotifications, MeasureAs="WebDXFeature::kDRAFT_IncomingCallNotifications"] NotificationScenario scenario = "default"; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl b/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl index 453e2fb6..25575589 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/payments/secure_payment_confirmation_request.idl @@ -19,24 +19,7 @@ dictionary SecurePaymentConfirmationRequest { // Whether or not to show an opt-out flow in the SPC UX. [RuntimeEnabled=SecurePaymentConfirmationOptOut, MeasureAs=SecurePaymentConfirmationOptOut] boolean showOptOut; - // Experimental support for showing network and issuer icons in addition to - // the payment instrument. These members are purely experimental; if we - // were to launch this we should find a non-card specific way to encode - // this information in the SecurePaymentConfirmationRequest, or better - // encapsulate it into a single sub-dictionary. - // - // Note: These parameters are deprecated in favour of - // |paymentEntitiesLogos|, but are being kept for now to support partner - // testing while the updated API is in development. - [RuntimeEnabled=SecurePaymentConfirmationNetworkAndIssuerIcons] NetworkOrIssuerInformation networkInfo; - [RuntimeEnabled=SecurePaymentConfirmationNetworkAndIssuerIcons] NetworkOrIssuerInformation issuerInfo; - // A list of logos representing entities that are facilitating the payment // that this SPC call is for. [RuntimeEnabled=SecurePaymentConfirmationUxRefresh] sequence paymentEntitiesLogos; }; - -dictionary NetworkOrIssuerInformation { - required USVString name; - required USVString icon; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/screen_details/screen_detailed.idl b/tools/under-control/src/third_party/blink/renderer/modules/screen_details/screen_detailed.idl index a8128291..6375f25c 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/screen_details/screen_detailed.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/screen_details/screen_detailed.idl @@ -30,16 +30,15 @@ // A user-friendly label for the screen, determined by the user agent and OS. [HighEntropy=Direct, Measure] readonly attribute DOMString label; - // The maximum luminance that the screen is capable of displaying across - // the full area of the screen, as a multiple of the luminance of SDR white. - // This will have a value of 1.0 for screens that are not HDR capable. - // https://github.com/w3c/ColorWeb-CG/blob/main/hdr_html_canvas_element.md - [RuntimeEnabled=CanvasHDR] readonly attribute float highDynamicRangeHeadroom; + // The HDR headroom of the screen. This is the base 2 log of the ratio of peak + // luminance to HDR reference white luminance. + [RuntimeEnabled=ScreenDetailedHdrHeadroom] readonly attribute float hdrHeadroom; - // The color primaries and white point of the screen, in CIE 1931 xy - // coordinates. These define the color gamut that the screen is capable of - // displaying. - // https://github.com/w3c/ColorWeb-CG/blob/main/hdr_html_canvas_element.md + // Fired when the hdrHeadroom attribute changes. + [RuntimeEnabled=ScreenDetailedHdrHeadroom] attribute EventHandler onhdrheadroomchange; + + // TODO(crbug.com/428357629): Remove obsolete hdr prototype member. + [RuntimeEnabled=CanvasHDR] readonly attribute float highDynamicRangeHeadroom; [RuntimeEnabled=CanvasHDR] readonly attribute float redPrimaryX; [RuntimeEnabled=CanvasHDR] readonly attribute float redPrimaryY; [RuntimeEnabled=CanvasHDR] readonly attribute float greenPrimaryX; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker.idl b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker.idl index 3ad48782..c9523beb 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker.idl @@ -42,10 +42,10 @@ enum ServiceWorkerState { [ ActiveScriptWrappable, SecureContext, - // TODO(https://crbug.com/999023): Expose this to Worker (not only to - // ServiceWorker) after Service Worker APIs are supported on dedicated + // TODO(https://crbug.com/422940475): Expose this to Worker + // after Service Worker APIs are supported on dedicated // workers and shared workers. - Exposed=(Window,ServiceWorker) + Exposed(Window StableBlinkFeatures,ServiceWorker StableBlinkFeatures,DedicatedWorker ServiceWorkerInDedicatedWorker) ] interface ServiceWorker : EventTarget { [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence transfer); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker_container.idl b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker_container.idl index 86aab55d..f9f415a9 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker_container.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/service_worker_container.idl @@ -30,13 +30,15 @@ // https://w3c.github.io/ServiceWorker/#serviceworkercontainer-interface [ - Exposed=Window, + // TODO(https://crbug.com/422940475): This should be exposed to + // Window,Worker once we support SharedWorkers. + Exposed(Window StableBlinkFeatures,DedicatedWorker ServiceWorkerInDedicatedWorker), SecureContext ] interface ServiceWorkerContainer : EventTarget { readonly attribute ServiceWorker? controller; [CallWith=ScriptState, RaisesException] readonly attribute Promise ready; - [CallWith=ScriptState, ImplementedAs=registerServiceWorker] Promise register(ScriptURLString url, optional RegistrationOptions options = {}); + [CallWith=ScriptState, ImplementedAs=registerServiceWorker, RaisesException] Promise register((USVString or TrustedScriptURL) url, optional RegistrationOptions options = {}); [CallWith=ScriptState] Promise getRegistration(optional USVString documentURL = ""); [CallWith=ScriptState] Promise> getRegistrations(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/service_worker/worker_navigator_service_worker.idl b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/worker_navigator_service_worker.idl new file mode 100755 index 00000000..5df471b4 --- /dev/null +++ b/tools/under-control/src/third_party/blink/renderer/modules/service_worker/worker_navigator_service_worker.idl @@ -0,0 +1,13 @@ +// 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. + +// https://w3c.github.io/ServiceWorker/#navigator-serviceworker +[ + ImplementedAs=WorkerNavigatorServiceWorker, + // TODO(https://crbug.com/422940475) Remove this Exposed once we also + // support SharedWorkers + Exposed(DedicatedWorker ServiceWorkerInDedicatedWorker) +] partial interface WorkerNavigator { + [SecureContext, RaisesException, CallWith=ScriptState] readonly attribute ServiceWorkerContainer serviceWorker; +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl index 7f3d0402..b0811e04 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition.idl @@ -59,7 +59,7 @@ dictionary SpeechRecognitionOptions { attribute boolean interimResults; attribute unsigned long maxAlternatives; [RuntimeEnabled=OnDeviceWebSpeechAvailable] attribute boolean processLocally; - [RuntimeEnabled=WebSpeechRecognitionContext] attribute SpeechRecognitionPhraseList phrases; + [RuntimeEnabled=WebSpeechRecognitionContext] attribute ObservableArray phrases; // methods to drive the speech interaction [RaisesException, Measure] void start(); diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.idl deleted file mode 100755 index 9271b67f..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_context.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. - -[ - Exposed=Window, - RuntimeEnabled=WebSpeechRecognitionContext, - SecureContext -] -interface SpeechRecognitionContext { - constructor(SpeechRecognitionPhraseList phrases); - attribute SpeechRecognitionPhraseList phrases; -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl b/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl deleted file mode 100755 index 7965fb01..00000000 --- a/tools/under-control/src/third_party/blink/renderer/modules/speech/speech_recognition_phrase_list.idl +++ /dev/null @@ -1,16 +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=WebSpeechRecognitionContext, - SecureContext -] -interface SpeechRecognitionPhraseList { - constructor(sequence phrases); - readonly attribute unsigned long length; - [RaisesException] SpeechRecognitionPhrase item(unsigned long index); - void addItem(SpeechRecognitionPhrase item); - [RaisesException] void removeItem(unsigned long index); -}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl index 876c99dc..7fcd7f2e 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/storage_access/storage_access_handle.idl @@ -13,5 +13,5 @@ interface StorageAccessHandle { [LogActivity, RaisesException] DOMString createObjectURL(Blob blob); [LogActivity, RaisesException] void revokeObjectURL(DOMString url); [CallWith=ExecutionContext, LogActivity, RaisesException] BroadcastChannel BroadcastChannel(DOMString name); - [CallWith=ExecutionContext, LogActivity, RaisesException] SharedWorker SharedWorker(ScriptURLString scriptURL, optional (DOMString or SharedWorkerOptions) options = {}); -}; \ No newline at end of file + [CallWith=ExecutionContext, LogActivity, RaisesException] SharedWorker SharedWorker((USVString or TrustedScriptURL) scriptURL, optional (DOMString or SharedWorkerOptions) options = {}); +}; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/web_install/navigator_web_install.idl b/tools/under-control/src/third_party/blink/renderer/modules/web_install/navigator_web_install.idl index 3485ec45..113131c6 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/web_install/navigator_web_install.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/web_install/navigator_web_install.idl @@ -8,7 +8,7 @@ RuntimeEnabled=WebAppInstallation, ImplementedAs=NavigatorWebInstall ] partial interface Navigator { - [CallWith=ScriptState, RaisesException] Promise install(); - [CallWith=ScriptState, RaisesException] Promise install(USVString install_url); - [CallWith=ScriptState, RaisesException] Promise install(USVString install_url, USVString manifest_id); + [CallWith=ScriptState, RaisesException, MeasureAs="WebDXFeature::kDRAFT_WebInstallAPI"] Promise install(); + [CallWith=ScriptState, RaisesException, MeasureAs="WebDXFeature::kDRAFT_WebInstallAPI"] Promise install(USVString install_url); + [CallWith=ScriptState, RaisesException, MeasureAs="WebDXFeature::kDRAFT_WebInstallAPI"] Promise install(USVString install_url, USVString manifest_id); }; \ No newline at end of file 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 60201523..ac5b0163 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 @@ -717,8 +717,6 @@ interface mixin WebGLRenderingContextBase { [RuntimeEnabled=WebGLDrawingBufferStorage] void drawingBufferStorage(GLenum sizedformat, GLsizei width, GLsizei height); - [RuntimeEnabled=OffscreenCanvasCommit] void commit(); - // WebXR Device API support [RuntimeEnabled=WebXR, SecureContext, CallWith=ScriptState, RaisesException, HighEntropy, MeasureAs=WebGLRenderingContextMakeXRCompatible] Promise makeXRCompatible(); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl index 0461b44d..d7bfe815 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter.idl @@ -11,7 +11,6 @@ [SameObject] readonly attribute GPUSupportedFeatures features; [SameObject] readonly attribute GPUSupportedLimits limits; [SameObject] readonly attribute GPUAdapterInfo info; - [DeprecateAs=V8GPUAdapter_IsFallbackAdapter_AttributeGetter] readonly attribute boolean isFallbackAdapter; [CallWith=ScriptState] Promise requestDevice(optional GPUDeviceDescriptor descriptor = {}); }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl index 4ebd5ff7..63c7ac90 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.idl @@ -14,7 +14,7 @@ [HighEntropy] readonly attribute DOMString description; readonly attribute unsigned long subgroupMinSize; readonly attribute unsigned long subgroupMaxSize; - [RuntimeEnabled=WebGPUAdapterInfoIsFallbackAdapter] readonly attribute boolean isFallbackAdapter; + readonly attribute boolean isFallbackAdapter; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString driver; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString backend; [RuntimeEnabled=WebGPUDeveloperFeatures] readonly attribute DOMString type; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_bind_group_entry.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_bind_group_entry.idl index 41754ea6..6945982e 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_bind_group_entry.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_bind_group_entry.idl @@ -4,7 +4,12 @@ // https://gpuweb.github.io/gpuweb/ -typedef (GPUSampler or GPUTextureView or GPUBuffer or GPUBufferBinding or GPUExternalTexture) GPUBindingResource; +typedef (GPUSampler or + GPUTexture or + GPUTextureView or + GPUBuffer or + GPUBufferBinding or + GPUExternalTexture) GPUBindingResource; dictionary GPUBindGroupEntry { required GPUIndex32 binding; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_color_attachment.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_color_attachment.idl index 08a7c8c3..bcde4853 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_color_attachment.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_color_attachment.idl @@ -5,9 +5,9 @@ // https://gpuweb.github.io/gpuweb/ dictionary GPURenderPassColorAttachment { - required GPUTextureView view; + required (GPUTexture or GPUTextureView) view; GPUSize32 depthSlice; - GPUTextureView resolveTarget; + (GPUTexture or GPUTextureView) resolveTarget; GPUColor clearValue; required GPULoadOp loadOp; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_depth_stencil_attachment.idl b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_depth_stencil_attachment.idl index 92d5f83e..03907d00 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_depth_stencil_attachment.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/webgpu/gpu_render_pass_depth_stencil_attachment.idl @@ -5,7 +5,7 @@ // https://gpuweb.github.io/gpuweb/ dictionary GPURenderPassDepthStencilAttachment { - required GPUTextureView view; + required (GPUTexture or GPUTextureView) view; float depthClearValue; GPULoadOp depthLoadOp; 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 21027100..e1483eb7 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 @@ -23,6 +23,7 @@ enum GPUFeatureName { "clip-distances", "dual-source-blending", "subgroups", + "texture-component-swizzle", // Non-standard (not currently in the spec). "chromium-experimental-timestamp-query-inside-passes", @@ -30,6 +31,7 @@ enum GPUFeatureName { "chromium-experimental-unorm16-texture-formats", "chromium-experimental-snorm16-texture-formats", "chromium-experimental-subgroup-matrix", + "chromium-experimental-primitive-id", }; [ 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 483d7915..e48686a6 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,6 +13,14 @@ 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"; }; enum GPUTextureViewDimension { @@ -29,3 +37,12 @@ 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/xr/xr_frame.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_frame.idl index 3536a48d..6a2c8080 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_frame.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_frame.idl @@ -32,11 +32,11 @@ [RuntimeEnabled=WebXRImageTracking, RaisesException, MeasureAs=XRFrameGetImageTrackingResults] FrozenArray getImageTrackingResults(); - [RuntimeEnabled=WebXRHandInput, RaisesException, MeasureAs=XRFrameGetJointPose] + [RuntimeEnabled=WebXR, RaisesException, MeasureAs=XRFrameGetJointPose] XRJointPose? getJointPose(XRJointSpace joint, XRSpace baseSpace); - [RuntimeEnabled=WebXRHandInput, RaisesException, MeasureAs=XRFrameFillJointRadii] + [RuntimeEnabled=WebXR, RaisesException, MeasureAs=XRFrameFillJointRadii] boolean fillJointRadii(sequence jointSpaces, Float32Array radii); - [RuntimeEnabled=WebXRHandInput, RaisesException, MeasureAs=XRFrameFillPoses] + [RuntimeEnabled=WebXR, RaisesException, MeasureAs=XRFrameFillPoses] boolean fillPoses(sequence spaces, XRSpace baseSpace, Float32Array transforms); // More details about the real-world understanding APIs can be found here: diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_hand.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_hand.idl index b11a3e0b..9660cc68 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_hand.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_hand.idl @@ -35,7 +35,7 @@ enum XRHandJoint { [ SecureContext, Exposed=Window, - RuntimeEnabled=WebXRHandInput + RuntimeEnabled=WebXR ] interface XRHand { iterable; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_input_source.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_input_source.idl index b7838d50..9cc5d688 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_input_source.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_input_source.idl @@ -24,6 +24,6 @@ enum XRTargetRayMode { [SameObject] readonly attribute XRSpace targetRaySpace; [SameObject] readonly attribute XRSpace? gripSpace; [SameObject, Measure] readonly attribute Gamepad? gamepad; - [SameObject, RuntimeEnabled=WebXRHandInput] readonly attribute XRHand? hand; + [SameObject] readonly attribute XRHand? hand; [SameObject] readonly attribute FrozenArray profiles; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_pose.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_pose.idl index 81e7ef96..f3698fbb 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_pose.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_pose.idl @@ -5,7 +5,7 @@ [ SecureContext, Exposed=Window, - RuntimeEnabled=WebXRHandInput + RuntimeEnabled=WebXR ] interface XRJointPose : XRPose { readonly attribute float radius; }; diff --git a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_space.idl b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_space.idl index 7a06f25b..0392de22 100755 --- a/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_space.idl +++ b/tools/under-control/src/third_party/blink/renderer/modules/xr/xr_joint_space.idl @@ -4,7 +4,7 @@ [ SecureContext, Exposed=Window, - RuntimeEnabled=WebXRHandInput + RuntimeEnabled=WebXR ] interface XRJointSpace : XRSpace { readonly attribute XRHandJoint jointName; }; 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 9cbf970b..f4784c62 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 @@ -188,7 +188,7 @@ // readable in the browserprocess via RuntimeFeatureStateReadContext. // TODO(crbug.com/1377000): this feature does not support origin trial // tokens provided in HTTP headers. Any tokens provided via HTTP header will - // be dropped. + // be dropped. Please inform developers they must embed the token in HTML. browser_process_read_access: { default: false, value_type: "bool", @@ -198,7 +198,7 @@ // should be writable in the browserprocess via RuntimeFeatureStateContext. // TODO(crbug.com/1377000): this feature does not support origin trial // tokens provided in HTTP headers. Any tokens provided via HTTP header will - // be dropped. + // be dropped. Please inform developers they must embed the token in HTML. browser_process_read_write_access: { default: false, value_type: "bool", @@ -320,6 +320,7 @@ "Win": "experimental", "Mac": "experimental", "Linux": "experimental", + "ChromeOS": "experimental", "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", @@ -335,6 +336,7 @@ "Win": "stable", "Mac": "stable", "Linux": "stable", + "ChromeOS": "stable", "default": "", }, }, @@ -348,6 +350,7 @@ "Win": "experimental", "Mac": "experimental", "Linux": "experimental", + "ChromeOS": "experimental", "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", @@ -372,6 +375,7 @@ "Win": "experimental", "Mac": "experimental", "Linux": "experimental", + "ChromeOS": "experimental", "default": "", }, origin_trial_feature_name: "AIRewriterAPI", @@ -390,6 +394,7 @@ "Win": "stable", "Mac": "stable", "Linux": "stable", + "ChromeOS": "stable", "default": "", }, }, @@ -403,6 +408,7 @@ "Win": "experimental", "Mac": "experimental", "Linux": "experimental", + "ChromeOS": "experimental", "default": "", }, origin_trial_feature_name: "AIWriterAPI", @@ -415,6 +421,10 @@ name: "AIWriterAPIForWorkers", public: true, }, + { + name: "AliasWebkitFillAvailable", + status: "stable", + }, { name: "AlignZoomToCenter", status: "stable", @@ -526,10 +536,21 @@ name: "AriaRowColIndexText", status: "stable", }, + { + // Fix Asymmetric word navigation behavior on Windows when punctuation follows whitespace + // See https://crbug.com/40252703 + name: "AsymmetricWordBoundaryFix", + status: "stable", + }, { // When enabled, perform async IPCs from CookieJar::SetCookie to the // network service. name: "AsyncSetCookie", + status: "stable", + }, + { + name: "AttributeDirectionality", + status: "stable", }, { name: "AttributionReporting", @@ -537,10 +558,6 @@ base_feature: "none", public: true, }, - { - name: "AudioContextInterruptedState", - status: "stable", - }, { name: "AudioContextOnError", status: "stable", @@ -582,6 +599,10 @@ name: "AutoPictureInPictureVideoHeuristics", status: "experimental", }, + { + name: "AvoidForcedLayoutOnInvisibleDocumentClose", + status: "test", + }, { // If the start and end positions are the same in MoveParagraph, // there is no need to collapse the whitespace between them. // https://crbug.com/406053617 @@ -780,10 +801,22 @@ name: "CanvasDrawElement", status: "test", }, + { + // Remove the restriction that drawElement can only draw immediate + // children of the canvas, and allow drawing canvas descendants. + name: "CanvasDrawElementInSubtree", + depends_on: ["CanvasDrawElement"], + }, { name: "CanvasFloatingPoint", status: "stable", }, + { + // Canvas2D API for specifying HDR headroom for drawing operations. + // https:/crbug.com/428575083, https://github.com/whatwg/html/issues/11165 + name: "CanvasGlobalHDRHeadroom", + status: "experimental", + }, { // https://crbug.com/394052224 name: "CanvasGradientCSSColor4", @@ -804,15 +837,15 @@ base_feature: "none", }, { - // https://chromestatus.com/feature/5066778773028864 - name: "CanvasTextLang", + // crbug.com/389726691. + name: "CanvasTextCacheLimit", status: "stable", }, { // crbug.com/389726691. name: "CanvasTextNg", origin_trial_feature_name: "CanvasTextNg", - status: "experimental", + status: "stable", }, { // Kill switch for https://crbug.com/330506337. @@ -850,11 +883,6 @@ depends_on: ["GetDisplayMedia"], status: {"Android": "", "default": "stable"}, }, - { - // https://www.w3.org/TR/cssom-view-1/#dom-document-caretpositionfrompoint - name: "CaretPositionFromPoint", - status: "stable", - }, { // Changes the caret's affinity to upstream, preventing spaces // from appearing in the previous line when typing at the start @@ -904,14 +932,8 @@ // system clipboard // https://chromestatus.com/feature/5085102657503232 name: "ClipboardChangeEvent", - base_feature: "none", - }, - { - // Enables the API for getting a unique token of the system clipboard's - // current state. - // https://chromestatus.com/feature/5124993439236096 - name: "ClipboardContentsId", - status: "test", + origin_trial_feature_name: "ClipboardChangeEvent", + status: "experimental", }, // This ensures that clipboard event fires on a target node which is // focused in case no visible selection is present. @@ -957,6 +979,11 @@ name: "CollapseZeroWidthSpaceWhenReuseItem", status: "stable", }, + { + // Killswitch for https://crbug.com/414827239 + name: "ColorInputDatalistLooksNormal", + status: "stable", + }, { name: "CompositeBGColorAnimation", public: true, @@ -1005,10 +1032,6 @@ name: "ComputedAccessibilityInfo", status: "experimental", }, - { - name: "ComputeInsertionPositionBasedOnAnchorType", - status: "stable", - }, { name: "ComputePressure", status: { @@ -1024,7 +1047,21 @@ } }, { - name: "ConsiderFullChildNodeContentForListify", + // Fix for https://crbug.com/40659076. When enabled, queryCommandState for + // 'subscript' or 'superscript' with a caret selection will consider + // ancestor or elements, matching the behavior for range + // selections. + name: "ConsiderSubOrSuperScriptAncestorAlignForCaretSelection", + status: "stable" + }, + { + // See https://crbug.com/426067493 for details. + name: "ConsiderUpstreamPositionForFindingNextLine", + status: "stable", + }, + { + // See https://crbug.com/40679713 for details. + name: "ConsiderUpstreamPositionForFindingPreviousLine", status: "stable", }, { @@ -1051,10 +1088,6 @@ name: "ContextMenu", status: "experimental", }, - { - name: "ContinueEventTimingRecordingWhenBufferIsFull", - status: "stable", - }, { // Enable support for Controlled Frame, providing the Controlled // Frame tag to IWA apps and other contexts. See @@ -1062,8 +1095,7 @@ // info. name: "ControlledFrame", public: true, - status: "experimental", - base_feature_status: "disabled", + status: "stable", }, { name: "CookieDeprecationFacilitatedTesting", @@ -1083,6 +1115,13 @@ { name: "CorsRFC1918", }, + { + name: "CrashReportingStorageAPI", + status: "experimental", + base_feature_status: "enabled", + copied_from_base_feature_if: "overridden", + origin_trial_feature_name: "CrashReportingStorageAPI", + }, { // Allow WebAuthn relying parties to report information about existing // credentials back to credential storage providers. @@ -1114,30 +1153,9 @@ name: "CSSAdvancedAttrFunction", status: "stable", }, - { - // Enables alignment properties for block and inline out-of-flow elements. - name: "CSSAlignBlockAndInlineOutOfFlows", - status: "stable", - }, { // Allows using counter() and counters() in alt text (after / in content property). name: "CSSAltCounter", - status: "experimental", - }, - { - // Remember the scroll offset of the default anchor when initially - // displaying an anchor-positioned element, and when it switches position - // options (`position-try-fallbacks`), also known as an anchor - // recalculation point. - // - // https://drafts.csswg.org/css-anchor-position-1/#scroll - // - // This remembered scroll offset may affect the sizing of an - // anchor-positioned element, if it is tethered to the default anchor at - // one edge, and to the original containing block at the other edge. - // This feature was shipped in M135, and the flag can be cleaned up in - // M137, assuming no issues. - name: "CSSAnchorRememberedScrollOffset", status: "stable", }, { @@ -1187,12 +1205,12 @@ { // https://chromestatus.com/feature/5082469066604544 name: "CSSCaretAnimation", - status: "experimental", + status: "stable", }, { // Need a feature entry name: "CSSCaretShape", - status: "test", + status: "experimental", }, { // Support case-sensitive attribute selector modifier @@ -1219,10 +1237,6 @@ name: "CSSColorTypedOM", status: "experimental", }, - { - name: "CSSComputedStyleFullPseudoElementParser", - status: "stable", - }, // https://drafts.csswg.org/css-values-5/#progress // container-progress() { @@ -1251,6 +1265,10 @@ name: "CSSCrossFade", status: "experimental", }, + { + name: "CSSCustomMedia", + status: "test", + }, { // Allows getComputedStyle() and similar to get information about :visited colors. // Only safe if PartitionVisitedLinkDatabaseWithSelfLinks is enabled. @@ -1274,10 +1292,14 @@ name: "CSSFallbackContainerQueries", status: "experimental", }, + { + name: "CSSFilterBrightnessNonNegativePercentage", + status: "stable", + }, { // crbug.com/417306102 name: "CssFitWidthText", - status: "test", + status: "experimental", }, { name: "CSSFontSizeAdjust", @@ -1349,7 +1371,7 @@ status: "experimental", }, { - name: "CSSLetterSpacingPercentage", + name: "CSSLetterAndWordSpacingPercentage", status: "experimental", }, { @@ -1366,7 +1388,7 @@ }, { name: "CSSMasonryLayout", - status: "test", + status: "experimental", public: true, }, // https://drafts.csswg.org/css-values-5/#progress @@ -1377,7 +1399,7 @@ }, { name: "CSSMixins", - status: "test", + status: "experimental", }, { // Kill switch for crbug.com/378966977 @@ -1417,18 +1439,16 @@ name: "CSSPseudoColumn", status: "stable", }, + { + name: "CSSPseudoElementInterface", + status: "experimental", + }, { // Enables the :has-slotted pseudo-selector. // https://chromestatus.com/feature/5134941143433216 name: "CSSPseudoHasSlotted", status: "experimental", }, - { - // Enables the :open pseudo-selector. - // https://chromestatus.com/feature/5085419215781888 - name: "CSSPseudoOpen", - status: "stable", - }, { // When an audio, video, or similar resource is "playing" // or "paused". @@ -1480,12 +1500,6 @@ name: "CSSResizeAuto", status: "stable", }, - { - // Enables env(safe-area-max-inset-*). - // https://github.com/w3c/csswg-drafts/issues/11019 - name: "CSSSafeAreaMaxInset", - status: "stable" - }, { name: "CSSSafePrintableInset", status: "experimental", @@ -1505,6 +1519,11 @@ name: "CSSScrollInitialTarget", status: "stable", }, + { + // https://github.com/w3c/csswg-drafts/issues/12122 + name: "CSSScrollMarkerGroupModes", + status: "experimental", + }, { // https://drafts.csswg.org/css-scroll-snap-2/#scrollsnapchange name: "CSSScrollSnapChangeEvent", @@ -1535,38 +1554,17 @@ // scroll-target-group property // https://drafts.csswg.org/css-overflow-5/#scroll-target-group name: "CSSScrollTargetGroup", - status: "experimental", + status: "stable", }, { name: "CSSSelectorFragmentAnchor", status: "experimental", base_feature: "CssSelectorFragmentAnchor", }, - { - // https://drafts.csswg.org/css-shapes-2/#shape-function - name: "CSSShapeFunction", - status: "stable", - }, - { - name: "CSSShapeFunctionCompositeAnimation", - status: "stable", - depends_on: ["CSSShapeFunction", "CompositeClipPathAnimation"] - }, - { - name: "CSSShapeFunctionDirectionAgnosticArc", - status: "stable", - }, - { - name: "CSSShapeFunctionOffsetPath", - status: "stable", - }, { // Ignore cycles in unused var()/attr() fallbacks. name: "CSSShortCircuitVarAttr", status: "stable", - // The CSSShortCircuitVarAttr branch assumes that fallbacks - // are type-agnostic. - depends_on: ["CSSTypeAgnosticVarFallback"], }, { // sibling-index() and sibling-count() @@ -1608,13 +1606,18 @@ { // crbug.com/1463890: CSS `text-autospace` property name: "CSSTextAutoSpace", - status: "experimental", + status: "stable", + }, + { + // crbug.com/40767672 + name: "CssTextDecorationLineBlinkSerialization", + status: "stable", }, { // crbug.com/1463890, crbug.com/1463891: CSS `text-spacing` shorthand name: "CSSTextSpacing", depends_on: ["CSSTextAutoSpace"], - status: "experimental", + status: "test", }, { // crbug.com/41442840: Enabled by default on M139, remove after M141. @@ -1628,15 +1631,9 @@ // [1] https://drafts.csswg.org/css-scoping-1/#shadow-names name: "CSSTreeScopedTimelines", }, - { - // The var() fallback does not validate against the type - // of the custom property being referenced. - name: "CSSTypeAgnosticVarFallback", - status: "stable", - }, { name: "CSSTypedArithmetic", - status: "experimental", + status: "stable", }, // Support for `user-select:contain`. { @@ -1662,15 +1659,6 @@ // than just