diff --git a/DEPS b/DEPS index d7893e4..642ba32 100644 --- a/DEPS +++ b/DEPS
@@ -304,7 +304,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'e4b9ef3f8406704184c357a0cb7bc63a76c46961', + 'skia_revision': '788138bb6ed9dab005495e507ed919780ad153bf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -312,7 +312,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '30d02a5a047ea59480a80f66b918ea7b919e6538', + 'angle_revision': '3f5fcf15e6e80c7c06e2b3d94f7b231d9995e9c9', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -351,7 +351,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling NaCl # and whatever else without interference from each other. - 'nacl_revision': '84258fc0d4661791cdd5bde0bb74ed32dfa18b6c', + 'nacl_revision': '397f1ecac4eb0d6810d6ef9ebf66f6540587deae', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. @@ -383,7 +383,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': '0a5be0fd9ac9d98b3a09c527ff71066657c95e70', + 'devtools_frontend_revision': '42be2661bde3fe2323d021a5c39429dba57e64de', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -419,7 +419,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '1f9e50edd4d4536d227dd37063b3cf77749c3eef', + 'dawn_revision': '0df2ea62ea41db4c30af002b032a87388401a931', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -770,7 +770,7 @@ 'src/clank': { 'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' + - '4fb8a56cb7394935421f40eb9c50b4edc6d479e5', + '309397cd24f5c9059c72e7515ebf79fdd0f5e494', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1176,7 +1176,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '37219fbe942077b81d927fc49e2db32185bba5ca', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'ecaabf2d4d89186328e842b2870157d2833e7eb8', 'condition': 'checkout_chromeos', }, @@ -1204,13 +1204,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '4f3b322a39a668384bab321da1ca2e699a562a1b', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c2a4f5db62b8664119eec191d8ba1a388e62feaf', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '8b23afacd99ba0b28f06ad1c6fd5dae5ce8fc141', + 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '84bca2d68c6ba77f2458dd407caab59e548e1e08', 'condition': 'checkout_src_internal', }, @@ -1644,7 +1644,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '4bccc087b33388c7f729358b66e9d1108cf0f96f', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'c1a1facf09f34b17247d63b72e64b0a6fbfcf048', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1829,7 +1829,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '941695197d924f38b942327e64b87766854d16b4', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '222c052864e8b26e95554705f7b11689a6a24ba0', + Var('webrtc_git') + '/src.git' + '@' + 'b3046c25aad89c20e435bc54a085ace622930665', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1899,7 +1899,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@b2b19911de8231fcdf3c9014d8b07f7a925252c8', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ed97a13559da754f1c922f00bf043b326697d162', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn index 3ca026ab..19d8805 100644 --- a/android_webview/BUILD.gn +++ b/android_webview/BUILD.gn
@@ -22,7 +22,6 @@ import("//printing/buildflags/buildflags.gni") import("//tools/grit/repack.gni") import("//tools/resources/generate_resource_allowlist.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") import("//weblayer/variables.gni") if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { @@ -964,60 +963,30 @@ disable_compression = true } +java_group("webview_primary_abi_assets") { + deps = [ "//gin:v8_snapshot_assets" ] +} + +java_group("monochrome_webview_primary_abi_assets") { + deps = [ + "//gin:v8_snapshot_assets", + "//third_party/icu:icu_assets", + ] +} + if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { - android_assets("v8_snapshot_secondary_abi_assets") { - assert(android_64bit_target_cpu, - "32-bit targets shouldn't have secondary abi") - arch_suffix = "32" - renaming_sources = [] - renaming_destinations = [] - if (use_v8_context_snapshot) { - renaming_sources += [ "$root_out_dir/v8_context_snapshot_32.bin" ] - renaming_destinations += [ "v8_context_snapshot_$arch_suffix.bin" ] - } else { - _secondary_abi_out_dir = - get_label_info("//v8($android_secondary_abi_toolchain)", - "root_out_dir") - renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ] - renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ] - } - disable_compression = true + java_group("webview_secondary_abi_assets") { + deps = [ "//gin:v8_snapshot_secondary_abi_assets" ] + } + + java_group("monochrome_webview_secondary_abi_assets") { deps = [ - "//tools/v8_context_snapshot($android_secondary_abi_toolchain)", - "//v8($android_secondary_abi_toolchain)", + "//gin:v8_snapshot_secondary_abi_assets", + "//third_party/icu:icu_assets", ] } } -android_assets("webview_primary_abi_assets") { - deps = [] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } -} - -android_assets("monochrome_webview_primary_abi_assets") { - deps = [ "//third_party/icu:icu_assets" ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } -} - -if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { - android_assets("webview_secondary_abi_assets") { - deps = [ ":v8_snapshot_secondary_abi_assets" ] - } - - android_assets("monochrome_webview_secondary_abi_assets") { - deps = [ "//third_party/icu:icu_assets" ] - deps += [ ":v8_snapshot_secondary_abi_assets" ] - } -} - android_assets("weblayer_webview_assets") { deps = [ ":webview_primary_abi_assets",
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn index a8a7ea65..c96b4b01 100644 --- a/android_webview/test/BUILD.gn +++ b/android_webview/test/BUILD.gn
@@ -8,7 +8,6 @@ import("//build/config/python.gni") import("//device/vr/buildflags/buildflags.gni") import("//testing/test.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") # Mark all targets as test only. testonly = true @@ -162,6 +161,7 @@ android_assets("webview_instrumentation_apk_assets") { deps = [ "//android_webview:pak_file_assets", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ] @@ -184,12 +184,6 @@ "shell/assets/visual_state_waits_for_js_detached_test.html", "shell/assets/visual_state_waits_for_js_test.html", ] - - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } } generate_jni("draw_fn_impl_jni_headers") { @@ -597,6 +591,7 @@ "//components/viz/service:service", "//content:content", "//content/test:test_support", + "//gin:v8_snapshot_assets", "//mojo/core/embedder", "//net:net", "//net:test_support", @@ -649,12 +644,6 @@ "../nonembedded/component_updater/aw_component_updater_configurator_unittest.cc", "../nonembedded/component_updater/installer_policies/aw_package_names_allowlist_component_installer_policy_unittest.cc", ] - - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } } android_assets("android_webview_unittests_assets") {
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 99d009d..a699bb6 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -3036,6 +3036,7 @@ "system/bluetooth/fake_bluetooth_device_list_controller.cc", "system/bluetooth/fake_bluetooth_device_list_controller.h", "system/brightness/unified_brightness_view_unittest.cc", + "system/camera/autozoom_feature_pod_controller_unittest.cc", "system/camera/autozoom_toast_controller_unittest.cc", "system/camera/camera_effects_controller_unittest.cc", "system/caps_lock_notification_controller_unittest.cc",
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index 9f2c61e..bc1fe78 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -2311,6 +2311,9 @@ <message name="IDS_ASH_QUICK_SETTINGS_UNKNOWN_NETWORKS" desc="The label used in the network detailed page for the unknown networks group"> Unknown networks </message> + <message name="IDS_ASH_QUICK_SETTINGS_JOIN_WIFI_NETWORK" desc="The label used in the network detailed page for the Join Wi-Fi network entry"> + Join Wi-Fi network + </message> <message name="IDS_ASH_STATUS_TRAY_NETWORK_A11Y_LABEL_OPEN" desc="Accessibility label used for a network in quick settings network list that opens network settings page."> Open settings for <ph name="NETWORK_NAME">$1<ex>Ethernet</ex></ph> </message>
diff --git a/ash/ash_strings_grd/IDS_ASH_QUICK_SETTINGS_JOIN_WIFI_NETWORK.png.sha1 b/ash/ash_strings_grd/IDS_ASH_QUICK_SETTINGS_JOIN_WIFI_NETWORK.png.sha1 new file mode 100644 index 0000000..f2bb654 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_QUICK_SETTINGS_JOIN_WIFI_NETWORK.png.sha1
@@ -0,0 +1 @@ +123d65c68c27f1b901ad27f37431ad472d39bfca \ No newline at end of file
diff --git a/ash/components/arc/arc_util.cc b/ash/components/arc/arc_util.cc index bbb1eb3..e3bcbe4c4 100644 --- a/ash/components/arc/arc_util.cc +++ b/ash/components/arc/arc_util.cc
@@ -157,6 +157,11 @@ ash::switches::kArcDisableUreadahead); } +bool IsHostUreadaheadGeneration() { + return base::CommandLine::ForCurrentProcess()->HasSwitch( + ash::switches::kArcHostUreadaheadGeneration); +} + ArcVmUreadaheadMode GetArcVmUreadaheadMode() { ArcVmUreadaheadMode mode = IsUreadaheadDisabled() ? ArcVmUreadaheadMode::DISABLED
diff --git a/ash/components/arc/arc_util.h b/ash/components/arc/arc_util.h index 4184a77..0f0960e 100644 --- a/ash/components/arc/arc_util.h +++ b/ash/components/arc/arc_util.h
@@ -122,6 +122,10 @@ // parts. See also |GetArcVmUreadaheadMode|. bool IsUreadaheadDisabled(); +// Returns true in case host ureadahead generation is active in the current +// session. +bool IsHostUreadaheadGeneration(); + // Returns mode of operation for ureadahead during the ARCVM boot flow. // Valid modes are readahead, generate, or disabled. ArcVmUreadaheadMode GetArcVmUreadaheadMode();
diff --git a/ash/components/arc/arc_util_unittest.cc b/ash/components/arc/arc_util_unittest.cc index c96808f7..046d9ac 100644 --- a/ash/components/arc/arc_util_unittest.cc +++ b/ash/components/arc/arc_util_unittest.cc
@@ -367,6 +367,18 @@ EXPECT_TRUE(IsUreadaheadDisabled()); } +TEST_F(ArcUtilTest, HostUreadaheadGenerationDefault) { + EXPECT_FALSE(IsHostUreadaheadGeneration()); + EXPECT_FALSE(IsUreadaheadDisabled()); +} + +TEST_F(ArcUtilTest, HostUreadaheadGenerationSet) { + auto* command_line = base::CommandLine::ForCurrentProcess(); + command_line->InitFromArgv({"", "--arc-host-ureadahead-generation"}); + EXPECT_TRUE(IsHostUreadaheadGeneration()); + EXPECT_FALSE(IsUreadaheadDisabled()); +} + // TODO(hidehiko): Add test for IsArcKioskMode(). // It depends on UserManager, but a utility to inject fake instance is // available only in chrome/. To use it in components/, refactoring is needed.
diff --git a/ash/components/arc/session/arc_client_adapter.cc b/ash/components/arc/session/arc_client_adapter.cc index 66bee2a..b4facf0 100644 --- a/ash/components/arc/session/arc_client_adapter.cc +++ b/ash/components/arc/session/arc_client_adapter.cc
@@ -80,6 +80,7 @@ params.disable_media_store_maintenance); request.set_disable_download_provider(params.disable_download_provider); request.set_disable_ureadahead(params.disable_ureadahead); + request.set_host_ureadahead_generation(params.host_ureadahead_generation); request.set_arc_generate_pai(params.arc_generate_play_auto_install); request.set_enable_consumer_auto_update_toggle( params.enable_consumer_auto_update_toggle);
diff --git a/ash/components/arc/session/arc_container_client_adapter_unittest.cc b/ash/components/arc/session/arc_container_client_adapter_unittest.cc index 9121d24..8be1a601 100644 --- a/ash/components/arc/session/arc_container_client_adapter_unittest.cc +++ b/ash/components/arc/session/arc_container_client_adapter_unittest.cc
@@ -175,6 +175,28 @@ EXPECT_TRUE(request.disable_ureadahead()); } +TEST_F(ArcContainerClientAdapterTest, + StartArc_HostUreadaheadGenerationByDefault) { + StartParams start_params; + client_adapter()->StartMiniArc(std::move(start_params), + base::BindOnce(&OnMiniInstanceStarted)); + const auto& request = ash::FakeSessionManagerClient::Get() + ->last_start_arc_mini_container_request(); + EXPECT_TRUE(request.has_host_ureadahead_generation()); + EXPECT_FALSE(request.host_ureadahead_generation()); +} + +TEST_F(ArcContainerClientAdapterTest, StartArc_HostUreadaheadGenerationSet) { + StartParams start_params; + start_params.host_ureadahead_generation = true; + client_adapter()->StartMiniArc(std::move(start_params), + base::BindOnce(&OnMiniInstanceStarted)); + const auto& request = ash::FakeSessionManagerClient::Get() + ->last_start_arc_mini_container_request(); + EXPECT_TRUE(request.has_host_ureadahead_generation()); + EXPECT_TRUE(request.host_ureadahead_generation()); +} + TEST_F(ArcContainerClientAdapterTest, ArcVmTTSCachingDefault) { StartParams start_params; client_adapter()->StartMiniArc(std::move(start_params),
diff --git a/ash/components/arc/session/arc_session_impl.cc b/ash/components/arc/session/arc_session_impl.cc index 9585508..fa59f65 100644 --- a/ash/components/arc/session/arc_session_impl.cc +++ b/ash/components/arc/session/arc_session_impl.cc
@@ -163,7 +163,13 @@ } void ApplyDisableUreadahed(StartParams* params) { - params->disable_ureadahead = IsUreadaheadDisabled(); + // Host ureadahead generation implies disabling ureadahead. + params->disable_ureadahead = + IsUreadaheadDisabled() || IsHostUreadaheadGeneration(); +} + +void ApplyHostUreadahedGeneration(StartParams* params) { + params->host_ureadahead_generation = IsHostUreadaheadGeneration(); } // Real Delegate implementation to connect Mojo. @@ -509,6 +515,7 @@ ApplyUsapProfile(system_memory_info_callback_, ¶ms); ApplyDisableDownloadProvider(¶ms); ApplyDisableUreadahed(¶ms); + ApplyHostUreadahedGeneration(¶ms); client_->StartMiniArc(std::move(params), base::BindOnce(&ArcSessionImpl::OnMiniInstanceStarted,
diff --git a/ash/components/arc/session/arc_session_impl_unittest.cc b/ash/components/arc/session/arc_session_impl_unittest.cc index 84c06c2f..f74e166 100644 --- a/ash/components/arc/session/arc_session_impl_unittest.cc +++ b/ash/components/arc/session/arc_session_impl_unittest.cc
@@ -901,6 +901,31 @@ GetClient(arc_session.get())->last_start_params().disable_ureadahead); } +// Test that validates ureadahead generation flag is not set by default. +TEST_F(ArcSessionImplTest, HostUreadaheadGenerationDefault) { + auto arc_session = CreateArcSession(); + arc_session->StartMiniInstance(); + base::RunLoop().RunUntilIdle(); + EXPECT_FALSE(GetClient(arc_session.get()) + ->last_start_params() + .host_ureadahead_generation); +} +// Test that validates host ureadahead generation flag is set. +TEST_F(ArcSessionImplTest, HostUreadaheadGenerationSet) { + base::CommandLine* const command_line = + base::CommandLine::ForCurrentProcess(); + command_line->AppendSwitch(ash::switches::kArcHostUreadaheadGeneration); + auto arc_session = CreateArcSession(); + arc_session->StartMiniInstance(); + base::RunLoop().RunUntilIdle(); + EXPECT_TRUE(GetClient(arc_session.get()) + ->last_start_params() + .host_ureadahead_generation); + // Host ureadahead generation implies disabling ureadahead. + EXPECT_TRUE( + GetClient(arc_session.get())->last_start_params().disable_ureadahead); +} + // Test that validates TTS caching is disabled by default. TEST_F(ArcSessionImplTest, TTSCachingByDefault) { auto arc_session = CreateArcSession();
diff --git a/ash/components/arc/session/arc_start_params.h b/ash/components/arc/session/arc_start_params.h index 8dcc5fd..ef00ac1 100644 --- a/ash/components/arc/session/arc_start_params.h +++ b/ash/components/arc/session/arc_start_params.h
@@ -78,8 +78,15 @@ bool disable_download_provider = false; // Flag to disable ureadahead completely, including host and guest parts. + // TODO(b/264585671): Refactore this and |host_ureadahead_generation| to + // mode enum. bool disable_ureadahead = false; + // Flag to indicate host ureadahead generation. + // TODO(b/264585671): Refactore this and |disable_ureadahead| to + // mode enum. + bool host_ureadahead_generation = false; + // The number of logical CPU cores that are currently disabled on the host. uint32_t num_cores_disabled = 0;
diff --git a/ash/constants/ash_switches.cc b/ash/constants/ash_switches.cc index 04d132a..69d41178 100644 --- a/ash/constants/ash_switches.cc +++ b/ash/constants/ash_switches.cc
@@ -112,8 +112,16 @@ // Flag that disables ureadahead completely, including host and guest parts. // To enable only guest ureadahead, please use --arcvm-ureadahead-mode=readahead // in combination with this switch (see |kArcVmUreadaheadMode|). +// TODO(b/264585671): Refactore this and |kArcHostUreadaheadGeneration| to +// mode enum. const char kArcDisableUreadahead[] = "arc-disable-ureadahead"; +// Flag that indicates host ureadahead generation session. Note, it is still +// valid even in case of kArcDisableUreadahead is set. +// TODO(b/264585671): Refactore this and |kArcDisableUreadahead| to +// mode enum. +const char kArcHostUreadaheadGeneration[] = "arc-host-ureadahead-generation"; + // Flag that forces the OptIn ui to be shown. Used in tests. const char kArcForceShowOptInUi[] = "arc-force-show-optin-ui";
diff --git a/ash/constants/ash_switches.h b/ash/constants/ash_switches.h index b4ef48f..cb06ce94 100644 --- a/ash/constants/ash_switches.h +++ b/ash/constants/ash_switches.h
@@ -43,6 +43,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcDisablePlayAutoInstall[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcDisableTtsCache[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcDisableUreadahead[]; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kArcHostUreadaheadGeneration[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcForceShowOptInUi[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcGeneratePlayAutoInstall[]; COMPONENT_EXPORT(ASH_CONSTANTS)
diff --git a/ash/public/cpp/ash_view_ids.h b/ash/public/cpp/ash_view_ids.h index 07e63ae0..1e41174 100644 --- a/ash/public/cpp/ash_view_ids.h +++ b/ash/public/cpp/ash_view_ids.h
@@ -27,6 +27,9 @@ VIEW_ID_CAST_CAST_VIEW_LABEL, VIEW_ID_CAST_MAIN_VIEW, VIEW_ID_CAST_SELECT_VIEW, + // The entry to add wifi network in the quick settings network subpage. + VIEW_ID_JOIN_NETWORK_ENTRY, + VIEW_ID_MEDIA_TRAY_VIEW, // System tray quick settings view buttons shown in the root QS view:
diff --git a/ash/system/camera/autozoom_controller_impl.cc b/ash/system/camera/autozoom_controller_impl.cc index b3ace6a..e43db5a 100644 --- a/ash/system/camera/autozoom_controller_impl.cc +++ b/ash/system/camera/autozoom_controller_impl.cc
@@ -34,6 +34,10 @@ } bool AutozoomControllerImpl::IsAutozoomControlEnabled() { + if (autozoom_supported_for_test_) { + return true; + } + // TODO(b/264472916): Add simon vs. non-simon logic here. return autozoom_supported_ && active_camera_client_count_ > 0; }
diff --git a/ash/system/camera/autozoom_controller_impl.h b/ash/system/camera/autozoom_controller_impl.h index 241ed5c8..ca75ab66 100644 --- a/ash/system/camera/autozoom_controller_impl.h +++ b/ash/system/camera/autozoom_controller_impl.h
@@ -49,6 +49,10 @@ // SessionObserver: void OnActiveUserPrefServiceChanged(PrefService* pref_service) override; + void set_autozoom_supported_for_test(bool value) { + autozoom_supported_for_test_ = value; + } + private: void InitFromUserPrefs(); @@ -90,6 +94,9 @@ // be shown when there's at least one active camera client. int active_camera_client_count_ = 0; + // Allows tests to force autozoom support. + bool autozoom_supported_for_test_ = false; + // All methods of this class should be run on the same sequence. SEQUENCE_CHECKER(sequence_checker_);
diff --git a/ash/system/camera/autozoom_feature_pod_controller.cc b/ash/system/camera/autozoom_feature_pod_controller.cc index 8dc67d5c..1e92fd5c 100644 --- a/ash/system/camera/autozoom_feature_pod_controller.cc +++ b/ash/system/camera/autozoom_feature_pod_controller.cc
@@ -4,6 +4,7 @@ #include "ash/system/camera/autozoom_feature_pod_controller.h" +#include "ash/constants/ash_features.h" #include "ash/constants/quick_settings_catalogs.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h" @@ -11,11 +12,20 @@ #include "ash/strings/grit/ash_strings.h" #include "ash/system/camera/autozoom_controller_impl.h" #include "ash/system/unified/feature_pod_button.h" +#include "ash/system/unified/feature_tile.h" #include "ash/system/unified/quick_settings_metrics_util.h" #include "ui/base/l10n/l10n_util.h" #include "ui/views/accessibility/view_accessibility.h" namespace ash { +namespace { + +bool IsButtonVisible() { + return Shell::Get()->autozoom_controller()->IsAutozoomControlEnabled() && + Shell::Get()->session_controller()->ShouldEnableSettings(); +} + +} // namespace AutozoomFeaturePodController::AutozoomFeaturePodController() { Shell::Get()->autozoom_controller()->AddObserver(this); @@ -27,6 +37,7 @@ FeaturePodButton* AutozoomFeaturePodController::CreateButton() { DCHECK(!button_); + DCHECK(!features::IsQsRevampEnabled()); button_ = new FeaturePodButton(this); button_->SetVectorIcon(kUnifiedMenuAutozoomIcon); @@ -45,6 +56,26 @@ return button_; } +std::unique_ptr<FeatureTile> AutozoomFeaturePodController::CreateTile() { + DCHECK(!tile_); + DCHECK(features::IsQsRevampEnabled()); + auto tile = std::make_unique<FeatureTile>( + base::BindRepeating(&AutozoomFeaturePodController::OnIconPressed, + weak_factory_.GetWeakPtr())); + tile_ = tile.get(); + tile_->SetVectorIcon(kUnifiedMenuAutozoomIcon); + + tile_->SetLabel( + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_AUTOZOOM_BUTTON_LABEL)); + auto description = l10n_util::GetStringUTF16( + IDS_ASH_STATUS_TRAY_AUTOZOOM_TOGGLE_ACCESSIBILITY_DESCRIPTION); + tile_->GetViewAccessibility().OverrideDescription(description); + // `UpdateButton` will update visibility. + tile_->SetVisible(false); + UpdateButton(Shell::Get()->autozoom_controller()->GetState()); + return tile; +} + QsFeatureCatalogName AutozoomFeaturePodController::GetCatalogName() { return QsFeatureCatalogName::kAutozoom; } @@ -60,9 +91,7 @@ if (!button_) return; - const bool visible = - Shell::Get()->autozoom_controller()->IsAutozoomControlEnabled() && - Shell::Get()->session_controller()->ShouldEnableSettings(); + const bool visible = IsButtonVisible(); if (!button_->GetVisible() && visible) TrackVisibilityUMA(); @@ -70,6 +99,17 @@ button_->SetVisible(visible); } +void AutozoomFeaturePodController::UpdateTileVisibility() { + if (!tile_) { + return; + } + const bool visible = IsButtonVisible(); + if (!tile_->GetVisible() && visible) { + TrackVisibilityUMA(); + } + tile_->SetVisible(visible); +} + void AutozoomFeaturePodController::OnAutozoomStateChanged( cros::mojom::CameraAutoFramingState state) { UpdateButton(state); @@ -77,16 +117,29 @@ void AutozoomFeaturePodController::OnAutozoomControlEnabledChanged( bool enabled) { - UpdateButtonVisibility(); + if (features::IsQsRevampEnabled()) { + UpdateTileVisibility(); + } else { + UpdateButtonVisibility(); + } } void AutozoomFeaturePodController::UpdateButton( cros::mojom::CameraAutoFramingState state) { - if (!button_) - return; - - button_->SetToggled(state != cros::mojom::CameraAutoFramingState::OFF); - UpdateButtonVisibility(); + const bool is_qs_revamp_enabled = features::IsQsRevampEnabled(); + if (is_qs_revamp_enabled) { + if (!tile_) { + return; + } + tile_->SetToggled(state != cros::mojom::CameraAutoFramingState::OFF); + UpdateTileVisibility(); + } else { + if (!button_) { + return; + } + button_->SetToggled(state != cros::mojom::CameraAutoFramingState::OFF); + UpdateButtonVisibility(); + } std::u16string tooltip_state; std::u16string button_label; @@ -107,9 +160,15 @@ break; } - button_->SetSubLabel(button_label); - button_->SetIconAndLabelTooltips(l10n_util::GetStringFUTF16( - IDS_ASH_STATUS_TRAY_AUTOZOOM_TOGGLE_TOOLTIP, tooltip_state)); + if (is_qs_revamp_enabled) { + tile_->SetSubLabel(button_label); + tile_->SetTooltipText(l10n_util::GetStringFUTF16( + IDS_ASH_STATUS_TRAY_AUTOZOOM_TOGGLE_TOOLTIP, tooltip_state)); + } else { + button_->SetSubLabel(button_label); + button_->SetIconAndLabelTooltips(l10n_util::GetStringFUTF16( + IDS_ASH_STATUS_TRAY_AUTOZOOM_TOGGLE_TOOLTIP, tooltip_state)); + } } } // namespace ash
diff --git a/ash/system/camera/autozoom_feature_pod_controller.h b/ash/system/camera/autozoom_feature_pod_controller.h index 676fede..fad48c1 100644 --- a/ash/system/camera/autozoom_feature_pod_controller.h +++ b/ash/system/camera/autozoom_feature_pod_controller.h
@@ -5,15 +5,20 @@ #ifndef ASH_SYSTEM_CAMERA_AUTOZOOM_FEATURE_POD_CONTROLLER_H_ #define ASH_SYSTEM_CAMERA_AUTOZOOM_FEATURE_POD_CONTROLLER_H_ +#include "ash/ash_export.h" #include "ash/constants/quick_settings_catalogs.h" #include "ash/system/camera/autozoom_observer.h" #include "ash/system/unified/feature_pod_controller_base.h" +#include "base/memory/weak_ptr.h" namespace ash { +class FeaturePodButton; +class FeatureTile; + // Controller of a feature pod button that toggles autozoom. -class AutozoomFeaturePodController : public FeaturePodControllerBase, - public AutozoomObserver { +class ASH_EXPORT AutozoomFeaturePodController : public FeaturePodControllerBase, + public AutozoomObserver { public: AutozoomFeaturePodController(); @@ -25,6 +30,7 @@ // FeaturePodControllerBase: FeaturePodButton* CreateButton() override; + std::unique_ptr<FeatureTile> CreateTile() override; QsFeatureCatalogName GetCatalogName() override; void OnIconPressed() override; @@ -38,7 +44,12 @@ void UpdateButtonVisibility(); + void UpdateTileVisibility(); + FeaturePodButton* button_ = nullptr; + FeatureTile* tile_ = nullptr; + + base::WeakPtrFactory<AutozoomFeaturePodController> weak_factory_{this}; }; } // namespace ash
diff --git a/ash/system/camera/autozoom_feature_pod_controller_unittest.cc b/ash/system/camera/autozoom_feature_pod_controller_unittest.cc new file mode 100644 index 0000000..cc9d579 --- /dev/null +++ b/ash/system/camera/autozoom_feature_pod_controller_unittest.cc
@@ -0,0 +1,99 @@ +// 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. + +#include "ash/system/camera/autozoom_feature_pod_controller.h" + +#include <memory> + +#include "ash/constants/ash_features.h" +#include "ash/shell.h" +#include "ash/system/camera/autozoom_controller_impl.h" +#include "ash/system/unified/feature_pod_button.h" +#include "ash/system/unified/feature_tile.h" +#include "ash/test/ash_test_base.h" +#include "base/memory/ptr_util.h" +#include "base/test/scoped_feature_list.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { + +// Tests are parameterized by feature QsRevamp. +class AutozoomFeaturePodControllerTest + : public AshTestBase, + public testing::WithParamInterface<bool> { + public: + AutozoomFeaturePodControllerTest() { + if (IsQsRevampEnabled()) { + feature_list_.InitWithFeatures( + {features::kQsRevamp, features::kQsRevampWip}, {}); + } else { + feature_list_.InitWithFeatures( + {}, {features::kQsRevamp, features::kQsRevampWip}); + } + } + + bool IsQsRevampEnabled() const { return GetParam(); } + + // AshTestBase: + void TearDown() override { + tile_.reset(); + button_.reset(); + controller_.reset(); + AshTestBase::TearDown(); + } + + void CreateButton() { + controller_ = std::make_unique<AutozoomFeaturePodController>(); + if (IsQsRevampEnabled()) { + tile_ = controller_->CreateTile(); + } else { + button_ = base::WrapUnique(controller_->CreateButton()); + } + } + + bool IsButtonVisible() { + return IsQsRevampEnabled() ? tile_->GetVisible() : button_->GetVisible(); + } + + void PressIcon() { controller_->OnIconPressed(); } + + private: + base::test::ScopedFeatureList feature_list_; + std::unique_ptr<AutozoomFeaturePodController> controller_; + std::unique_ptr<FeaturePodButton> button_; + std::unique_ptr<FeatureTile> tile_; +}; + +INSTANTIATE_TEST_SUITE_P(QsRevamp, + AutozoomFeaturePodControllerTest, + testing::Bool()); + +TEST_P(AutozoomFeaturePodControllerTest, ButtonVisibility) { + // By default autozoom is not supported, so the button is not visible. + CreateButton(); + EXPECT_FALSE(IsButtonVisible()); + + // If autozoom is supported, the button is visible. + Shell::Get()->autozoom_controller()->set_autozoom_supported_for_test(true); + CreateButton(); + EXPECT_TRUE(IsButtonVisible()); +} + +TEST_P(AutozoomFeaturePodControllerTest, PressIconTogglesFeature) { + CreateButton(); + ASSERT_EQ(Shell::Get()->autozoom_controller()->GetState(), + cros::mojom::CameraAutoFramingState::OFF); + + // Pressing the icon enables autozoom. + PressIcon(); + EXPECT_EQ(Shell::Get()->autozoom_controller()->GetState(), + cros::mojom::CameraAutoFramingState::ON_SINGLE); + + // Pressing the icon again disables autozoom. + PressIcon(); + EXPECT_EQ(Shell::Get()->autozoom_controller()->GetState(), + cros::mojom::CameraAutoFramingState::OFF); +} + +} // namespace ash
diff --git a/ash/system/network/fake_network_detailed_network_view.cc b/ash/system/network/fake_network_detailed_network_view.cc index d0f6314..3f08b761 100644 --- a/ash/system/network/fake_network_detailed_network_view.cc +++ b/ash/system/network/fake_network_detailed_network_view.cc
@@ -59,6 +59,10 @@ return network_list_->AddChildView(std::move(wifi_header_view)); } +HoverHighlightView* FakeNetworkDetailedNetworkView::AddJoinNetworkEntry() { + return nullptr; +} + NetworkListMobileHeaderView* FakeNetworkDetailedNetworkView::AddMobileSectionHeader() { std::unique_ptr<FakeNetworkListMobileHeaderView> mobile_header_view =
diff --git a/ash/system/network/fake_network_detailed_network_view.h b/ash/system/network/fake_network_detailed_network_view.h index dd88ca5..cb00608 100644 --- a/ash/system/network/fake_network_detailed_network_view.h +++ b/ash/system/network/fake_network_detailed_network_view.h
@@ -48,6 +48,7 @@ NetworkListNetworkItemView* AddNetworkListItem( chromeos::network_config::mojom::NetworkType type) override; NetworkListWifiHeaderView* AddWifiSectionHeader() override; + HoverHighlightView* AddJoinNetworkEntry() override; NetworkListMobileHeaderView* AddMobileSectionHeader() override; void UpdateScanningBarVisibility(bool visible) override; void ReorderFirstListView(size_t index) override {}
diff --git a/ash/system/network/network_detailed_network_view.h b/ash/system/network/network_detailed_network_view.h index e2db4190..0b59357 100644 --- a/ash/system/network/network_detailed_network_view.h +++ b/ash/system/network/network_detailed_network_view.h
@@ -11,6 +11,7 @@ #include "ash/system/network/network_list_network_header_view.h" #include "ash/system/network/network_list_network_item_view.h" #include "ash/system/network/network_list_wifi_header_view_impl.h" +#include "ash/system/tray/hover_highlight_view.h" #include "ui/views/view.h" namespace ash { @@ -70,6 +71,11 @@ virtual NetworkListNetworkItemView* AddNetworkListItem( chromeos::network_config::mojom::NetworkType type) = 0; + // Creates, adds and returns a `HoverHighlightView`, which is the "Join WIFI + // network" entry. The client is expected to use the returned pointer for + // removing and rearranging this entry. + virtual HoverHighlightView* AddJoinNetworkEntry() = 0; + // Creates, adds and returns a Wifi sticky sub-header to the end of the // network list. The client is expected to use the returned pointer for // removing and rearranging the sub-header.
diff --git a/ash/system/network/network_detailed_network_view_impl.cc b/ash/system/network/network_detailed_network_view_impl.cc index b439b09..d1eb64b 100644 --- a/ash/system/network/network_detailed_network_view_impl.cc +++ b/ash/system/network/network_detailed_network_view_impl.cc
@@ -5,8 +5,12 @@ #include "ash/system/network/network_detailed_network_view_impl.h" #include "ash/constants/ash_features.h" +#include "ash/public/cpp/ash_view_ids.h" +#include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" +#include "ash/strings/grit/ash_strings.h" +#include "ash/style/ash_color_id.h" #include "ash/style/rounded_container.h" #include "ash/system/network/network_detailed_view.h" #include "ash/system/network/network_list_mobile_header_view_impl.h" @@ -15,9 +19,13 @@ #include "ash/system/network/network_utils.h" #include "ash/system/network/tray_network_state_model.h" #include "ash/system/tray/detailed_view_delegate.h" +#include "ash/system/tray/tray_popup_utils.h" #include "base/notreached.h" #include "chromeos/services/network_config/public/mojom/network_types.mojom-shared.h" +#include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/gfx/paint_vector_icon.h" +#include "ui/views/controls/image_view.h" #include "ui/views/view.h" #include "ui/views/view_class_properties.h" @@ -74,6 +82,28 @@ std::make_unique<NetworkListNetworkItemView>(/*listener=*/this)); } +HoverHighlightView* NetworkDetailedNetworkViewImpl::AddJoinNetworkEntry() { + HoverHighlightView* entry = + GetNetworkList(NetworkType::kWiFi) + ->AddChildView( + std::make_unique<HoverHighlightView>(/*listener=*/this)); + entry->SetID(VIEW_ID_JOIN_NETWORK_ENTRY); + + auto image_view = std::make_unique<views::ImageView>(); + image_view->SetImage(ui::ImageModel::FromVectorIcon( + kSystemMenuPlusIcon, cros_tokens::kCrosSysPrimary)); + entry->AddViewAndLabel( + std::move(image_view), + l10n_util::GetStringUTF16(IDS_ASH_QUICK_SETTINGS_JOIN_WIFI_NETWORK)); + views::Label* label = entry->text_label(); + label->SetEnabledColorId(cros_tokens::kCrosSysPrimary); + // TODO(b/253086997): Apply the correct font to the label. + TrayPopupUtils::SetLabelFontList( + label, TrayPopupUtils::FontStyle::kDetailedViewLabel); + + return entry; +} + NetworkListWifiHeaderView* NetworkDetailedNetworkViewImpl::AddWifiSectionHeader() { if (!wifi_top_container_ && features::IsQsRevampEnabled()) {
diff --git a/ash/system/network/network_detailed_network_view_impl.h b/ash/system/network/network_detailed_network_view_impl.h index e3d115c..0640b98 100644 --- a/ash/system/network/network_detailed_network_view_impl.h +++ b/ash/system/network/network_detailed_network_view_impl.h
@@ -44,6 +44,7 @@ views::View* GetAsView() override; NetworkListNetworkItemView* AddNetworkListItem( chromeos::network_config::mojom::NetworkType type) override; + HoverHighlightView* AddJoinNetworkEntry() override; NetworkListMobileHeaderView* AddMobileSectionHeader() override; NetworkListWifiHeaderView* AddWifiSectionHeader() override; void UpdateScanningBarVisibility(bool visible) override;
diff --git a/ash/system/network/network_detailed_view.cc b/ash/system/network/network_detailed_view.cc index fef2055e..d878d3a1 100644 --- a/ash/system/network/network_detailed_view.cc +++ b/ash/system/network/network_detailed_view.cc
@@ -7,6 +7,7 @@ #include <memory> #include <utility> +#include "ash/public/cpp/ash_view_ids.h" #include "ash/public/cpp/system_tray_client.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" @@ -21,6 +22,7 @@ #include "base/memory/weak_ptr.h" #include "base/metrics/user_metrics.h" #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" +#include "components/onc/onc_constants.h" #include "ui/views/bubble/bubble_dialog_delegate_view.h" #include "ui/views/controls/button/button.h" @@ -48,8 +50,17 @@ NetworkDetailedView::~NetworkDetailedView() = default; void NetworkDetailedView::HandleViewClicked(views::View* view) { - if (login_ == LoginStatus::LOCKED) + if (login_ == LoginStatus::LOCKED) { return; + } + + if (view->GetID() == VIEW_ID_JOIN_NETWORK_ENTRY) { + base::RecordAction( + base::UserMetricsAction("QS_Subpage_Network_JoinNetwork")); + Shell::Get()->system_tray_model()->client()->ShowNetworkCreate( + onc::network_type::kWiFi); + return; + } delegate()->OnNetworkListItemSelected( static_cast<NetworkListItemView*>(view)->network_properties()); } @@ -91,8 +102,9 @@ } void NetworkDetailedView::OnInfoClicked() { - if (CloseInfoBubble()) + if (CloseInfoBubble()) { return; + } info_bubble_ = new NetworkInfoBubble(weak_ptr_factory_.GetWeakPtr(), tri_view()); @@ -101,8 +113,9 @@ } bool NetworkDetailedView::CloseInfoBubble() { - if (!info_bubble_) + if (!info_bubble_) { return false; + } info_bubble_->GetWidget()->Close(); return true; @@ -125,8 +138,9 @@ SystemTrayClient* system_tray_client = Shell::Get()->system_tray_model()->client(); - if (system_tray_client) + if (system_tray_client) { system_tray_client->ShowNetworkSettings(guid); + } } } // namespace ash
diff --git a/ash/system/network/network_list_view_controller_impl.cc b/ash/system/network/network_list_view_controller_impl.cc index ece92811..003e0b0 100644 --- a/ash/system/network/network_list_view_controller_impl.cc +++ b/ash/system/network/network_list_view_controller_impl.cc
@@ -336,7 +336,10 @@ } else { RemoveAndResetViewIfExists(&unknown_header_); } - + network_item_index = CreateJoinWifiEntry(network_item_index); + if (!is_wifi_enabled_) { + RemoveAndResetViewIfExists(&join_wifi_entry_); + } network_detailed_network_view()->ReorderNetworkListView(index++); } else { @@ -613,6 +616,18 @@ return index; } +size_t NetworkListViewControllerImpl::CreateJoinWifiEntry(size_t index) { + if (join_wifi_entry_) { + network_detailed_network_view() + ->GetNetworkList(NetworkType::kWiFi) + ->ReorderChildView(join_wifi_entry_, index++); + return index; + } + + join_wifi_entry_ = network_detailed_network_view()->AddJoinNetworkEntry(); + return index++; +} + void NetworkListViewControllerImpl::UpdateMobileSection() { if (!mobile_header_view_) { return;
diff --git a/ash/system/network/network_list_view_controller_impl.h b/ash/system/network/network_list_view_controller_impl.h index d3118c4..994ff77 100644 --- a/ash/system/network/network_list_view_controller_impl.h +++ b/ash/system/network/network_list_view_controller_impl.h
@@ -30,10 +30,11 @@ namespace views { class ImageView; class Label; -} +} // namespace views namespace ash { +class HoverHighlightView; class NetworkDetailedNetworkView; // Implementation of NetworkListViewController. @@ -121,6 +122,9 @@ // `unknown_header_`. size_t CreateWifiGroupHeader(size_t index, const bool is_known); + // Creates and adds the join wifi entry at the bottom of the wifi networks. + size_t CreateJoinWifiEntry(size_t index); + // Updates Mobile data section, updates add eSIM button states and // calls UpdateMobileToggleAndSetStatusMessage(). void UpdateMobileSection(); @@ -215,6 +219,7 @@ // Owned by views hierarchy. views::Label* known_header_ = nullptr; views::Label* unknown_header_ = nullptr; + HoverHighlightView* join_wifi_entry_ = nullptr; bool has_mobile_networks_; bool has_wifi_networks_;
diff --git a/ash/system/network/network_list_view_controller_unittest.cc b/ash/system/network/network_list_view_controller_unittest.cc index bf6cbe10..f5aec8e 100644 --- a/ash/system/network/network_list_view_controller_unittest.cc +++ b/ash/system/network/network_list_view_controller_unittest.cc
@@ -9,6 +9,7 @@ #include <memory> #include "ash/constants/ash_features.h" +#include "ash/public/cpp/ash_view_ids.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" @@ -19,6 +20,7 @@ #include "ash/system/network/network_utils.h" #include "ash/system/network/tray_network_state_model.h" #include "ash/system/tray/detailed_view_delegate.h" +#include "ash/system/tray/hover_highlight_view.h" #include "ash/system/tray/tray_info_label.h" #include "ash/system/tray/tri_view.h" #include "ash/test/ash_test_base.h" @@ -26,6 +28,7 @@ #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/metrics/user_action_tester.h" #include "base/test/scoped_feature_list.h" #include "chromeos/ash/services/bluetooth_config/fake_adapter_state_controller.h" #include "chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom.h" @@ -219,21 +222,23 @@ detailed_view_delegate_ = std::make_unique<DetailedViewDelegate>(/*tray_controller=*/nullptr); - network_detailed_network_view_ = + widget_ = CreateFramelessTestWidget(); + widget_->SetFullscreen(true); + network_detailed_network_view_ = widget_->SetContentsView( std::make_unique<NetworkDetailedNetworkViewImpl>( detailed_view_delegate_.get(), - &fake_network_detailed_network_delagte_); + &fake_network_detailed_network_delagte_)); network_list_view_controller_impl_ = std::make_unique<NetworkListViewControllerImpl>( - network_detailed_network_view_.get()); + network_detailed_network_view_); } bool IsQsRevampEnabled() { return GetParam(); } void TearDown() override { network_list_view_controller_impl_.reset(); - network_detailed_network_view_.reset(); + widget_.reset(); AshTestBase::TearDown(); } @@ -251,6 +256,10 @@ NetworkListMobileHeaderViewImpl::kAddESimButtonId); } + HoverHighlightView* GetAddWifiEntry() { + return FindViewById<HoverHighlightView*>(VIEW_ID_JOIN_NETWORK_ENTRY); + } + NetworkListMobileHeaderView* GetMobileSubHeader() { return network_list_view_controller_impl_->mobile_header_view_; } @@ -462,7 +471,7 @@ views::View* network_list(NetworkType type) { return static_cast<NetworkDetailedNetworkView*>( - network_detailed_network_view_.get()) + network_detailed_network_view_) ->GetNetworkList(type); } @@ -473,8 +482,8 @@ private: template <class T> T FindViewById(int id) { - return static_cast<T>(network_detailed_network_view_.get()->GetViewByID( - static_cast<int>(id))); + return static_cast<T>( + network_detailed_network_view_->GetViewByID(static_cast<int>(id))); } ScopedBluetoothConfigTestHelper* bluetooth_config_test_helper() { @@ -485,8 +494,11 @@ std::unique_ptr<FakeCrosNetworkConfig> cros_network_; FakeNetworkDetailedNetworkViewDelegate fake_network_detailed_network_delagte_; std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; - std::unique_ptr<NetworkDetailedNetworkViewImpl> - network_detailed_network_view_; + std::unique_ptr<views::Widget> widget_; + + // Owned by `widget_`. + NetworkDetailedNetworkViewImpl* network_detailed_network_view_ = nullptr; + std::unique_ptr<NetworkListViewControllerImpl> network_list_view_controller_impl_; }; @@ -843,6 +855,7 @@ ->GetText()); CheckNetworkListItem(NetworkType::kWiFi, /*index=*/1u, /*guid=*/kWifiName); + EXPECT_TRUE(GetAddWifiEntry()->GetVisible()); } else { // Wifi list item be at index 4 after Mobile header, Mobile network // item, Wifi separator and header. @@ -873,6 +886,14 @@ CheckNetworkListItem(NetworkType::kWiFi, /*index=*/5u, /*guid=*/kWifiName2); } + if (IsQsRevampEnabled()) { + base::UserActionTester user_action_tester; + EXPECT_EQ( + 0, user_action_tester.GetActionCount("QS_Subpage_Network_JoinNetwork")); + LeftClickOn(GetAddWifiEntry()); + EXPECT_EQ( + 1, user_action_tester.GetActionCount("QS_Subpage_Network_JoinNetwork")); + } } TEST_P(NetworkListViewControllerTest,
diff --git a/ash/system/network/network_list_wifi_header_view_impl.cc b/ash/system/network/network_list_wifi_header_view_impl.cc index e7db39a..4c3efe7 100644 --- a/ash/system/network/network_list_wifi_header_view_impl.cc +++ b/ash/system/network/network_list_wifi_header_view_impl.cc
@@ -32,7 +32,9 @@ NetworkListWifiHeaderViewImpl::NetworkListWifiHeaderViewImpl( NetworkListNetworkHeaderView::Delegate* delegate) : NetworkListWifiHeaderView(delegate) { - AddExtraButtons(); + if (!features::IsQsRevampEnabled()) { + AddExtraButtons(); + } } NetworkListWifiHeaderViewImpl::~NetworkListWifiHeaderViewImpl() = default; @@ -53,7 +55,9 @@ void NetworkListWifiHeaderViewImpl::SetToggleState(bool enabled, bool is_on, bool animate_toggle) { - join_wifi_button_->SetEnabled(enabled && is_on); + if (!features::IsQsRevampEnabled()) { + join_wifi_button_->SetEnabled(enabled && is_on); + } NetworkListNetworkHeaderView::SetToggleState(enabled, is_on, animate_toggle); } @@ -71,8 +75,9 @@ void NetworkListWifiHeaderViewImpl::SetJoinWifiButtonState(bool enabled, bool visible) { - if (!join_wifi_button_) + if (!join_wifi_button_) { return; + } join_wifi_button_->SetEnabled(enabled); join_wifi_button_->SetVisible(visible);
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index 685a66c..5788c1e 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -690,6 +690,10 @@ create_tile(std::make_unique<ShelfPartyFeaturePodController>(), feature_pod_controllers_, tiles); } + if (media::ShouldEnableAutoFraming()) { + create_tile(std::make_unique<AutozoomFeaturePodController>(), + feature_pod_controllers_, tiles); + } // More placeholder tiles. while (tiles.size() < 10) {
diff --git a/ash/wallpaper/wallpaper_controller_impl.cc b/ash/wallpaper/wallpaper_controller_impl.cc index 7bc999d..0c4e1ef6 100644 --- a/ash/wallpaper/wallpaper_controller_impl.cc +++ b/ash/wallpaper/wallpaper_controller_impl.cc
@@ -1407,7 +1407,6 @@ /*file_path=*/"", WallpaperType::kCustomized, layout, allowed_to_show_wallpaper, image, base::BindOnce( - &WallpaperControllerImpl::SaveWallpaperToDriveFsAndSyncInfo, weak_factory_.GetWeakPtr(), account_id)); }
diff --git a/ash/webui/personalization_app/personalization_app_ui.cc b/ash/webui/personalization_app/personalization_app_ui.cc index f1205a06..56420e8 100644 --- a/ash/webui/personalization_app/personalization_app_ui.cc +++ b/ash/webui/personalization_app/personalization_app_ui.cc
@@ -377,7 +377,7 @@ source->AddBoolean("isScreenSaverPreviewEnabled", features::IsScreenSaverPreviewEnabled()); - source->AddBoolean("isAmbientSubpageUIChangeEnabled", + source->AddBoolean("isAmbientSubpageUiChangeEnabled", features::IsAmbientSubpageUIChangeEnabled()); // TODO(b/258838122): update when the screen saver policy code is ready.
diff --git a/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.html b/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.html index 85347e6..fb53d87 100644 --- a/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.html +++ b/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.html
@@ -337,7 +337,7 @@ <slot></slot> <template is="dom-if" if="[[loading_]]"> <div id="imagePlaceholder" class="placeholder"></div> - <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_]]"> <div id="thumbnailPlaceholder" class="placeholder"></div> </template> <div id="textPlaceholder" class="preview-text-placeholder album-info-mainpage album-info-subpage"> @@ -349,7 +349,7 @@ </template> <template is="dom-if" if="[[!loading_]]"> <template is="dom-if" if="[[!ambientModeEnabled_]]"> - <div id="imageContainer" class="preview-image-container" ambient-mode-managed$="[[isAmbientModeManaged_()]]" aria-hidden="true"> + <div id="imageContainer" class="preview-image-container" ambient-mode-managed$="[[isAmbientModeManaged_]]" aria-hidden="true"> <div class="preview-image-border"></div> <img class="preview-image disabled" src="//personalization/images/slideshow.png"> </div> @@ -360,7 +360,7 @@ $i18n{ambientModeMainPageZeroStateMessage} </span> </h3> - <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_]]"> <div id="messageContainer" class="pre-ui-change"> <span class="text" id="turnOnDescription"> $i18n{ambientModeMainPageZeroStateMessage} @@ -371,10 +371,10 @@ </cr-button> </div> </template> - <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_]]"> <div id="messageContainer"> <ambient-zero-state-svg></ambient-zero-state-svg> - <template is="dom-if" if="[[!isAmbientModeManaged_()]]"> + <template is="dom-if" if="[[!isAmbientModeManaged_]]"> <span class="text" id="turnOnDescription"> $i18n{ambientModeMainPageZeroStateMessageV2} </span> @@ -383,7 +383,7 @@ <div>$i18n{ambientModeTurnOnLabel}</div> </cr-button> </template> - <template is="dom-if" if="[[isAmbientModeManaged_()]]"> + <template is="dom-if" if="[[isAmbientModeManaged_]]"> <span class="text" id="turnOnDescription"> $i18n{ambientModeMainPageEnterpriseUserMessage} </span> @@ -416,7 +416,7 @@ is-google-photos> </template> </div> - <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_]]"> <div id="thumbnailContainer" aria-hidden="true" class$="[[getThumbnailContainerClass_(collageImages_)]]" on-click="onClickPhotoCollage_" @@ -455,7 +455,7 @@ </span> </h3> </template> - <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_]]"> <h3 id="textContainer" class="preview-text-container album-info-mainpage album-info-subpage pre-ui-change" aria-label$="[[getPreviewTextAriaLabel_(firstPreviewAlbum_, topicSource_, previewAlbums_)]]"> <span id="currentlySet" class="currently-set-text" aria-hidden="true">
diff --git a/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.ts b/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.ts index e8dd95f..68ed9ad 100644 --- a/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.ts +++ b/ash/webui/personalization_app/resources/js/ambient/ambient_preview_element.ts
@@ -94,6 +94,18 @@ type: Boolean, computed: 'computeScreenSaverPreviewActive_(ambientUiVisibility_)', }, + isAmbientSubpageUiChangeEnabled_: { + type: Boolean, + value() { + return loadTimeData.getBoolean('isAmbientSubpageUiChangeEnabled'); + }, + }, + isAmbientModeManaged_: { + type: Boolean, + value() { + return loadTimeData.getBoolean('isAmbientModeManaged'); + }, + }, }; } @@ -109,6 +121,8 @@ private collageImages_: Url[]; private ambientUiVisibility_: AmbientUiVisibility|null; private screenSaverPreviewActive_: boolean; + private isAmbientSubpageUiChangeEnabled_: boolean; + private isAmbientModeManaged_: boolean; private loadingTimeoutId_: number|null = null; @@ -207,12 +221,12 @@ * - if |previewAlbums_| contains fewer than 4 albums, return one of * their previews; otherwise return the first 4. * - * If isAmbientSubpageUIChangeEnabled flag is on, max number of collage image + * If isAmbientSubpageUiChangeEnabled flag is on, max number of collage image * will be 3 instead of 4. */ private computeCollageImages_(): Url[] { const maxLength = - loadTimeData.getBoolean('isAmbientSubpageUIChangeEnabled') ? 3 : 4; + loadTimeData.getBoolean('isAmbientSubpageUiChangeEnabled') ? 3 : 4; switch (this.topicSource_) { case TopicSource.kArtGallery: return (this.previewAlbums_ || []) @@ -259,7 +273,7 @@ /* TODO(b/253470553): Remove this condition after Ambient subpage UI change * is released. */ - if (!loadTimeData.getBoolean('isAmbientSubpageUIChangeEnabled')) { + if (!loadTimeData.getBoolean('isAmbientSubpageUiChangeEnabled')) { classes.push('pre-ui-change'); } return classes.join(' '); @@ -331,18 +345,6 @@ this.previewAlbums_.length - 2); } } - - /** - * Determines whether ambient subpage UI restructure is enabled. Value can be - * mocked in tests. - */ - private isAmbientSubpageUiChangeEnabled_(): boolean { - return loadTimeData.getBoolean('isAmbientSubpageUIChangeEnabled'); - } - - private isAmbientModeManaged_(): boolean { - return loadTimeData.getBoolean('isAmbientModeManaged'); - } } customElements.define(AmbientPreview.is, AmbientPreview);
diff --git a/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.html b/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.html index e15afe5..8be72204 100644 --- a/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.html +++ b/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.html
@@ -96,7 +96,7 @@ } </style> <div id="container"> - <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[isAmbientSubpageUiChangeEnabled_]]"> <ambient-preview></ambient-preview> </template> <!-- restamp to avoid layout issues with iron-list resizing while hidden --> @@ -116,7 +116,7 @@ </template> <template is="dom-if" if="[[ambientModeEnabled_]]"> <!-- TODO(b/253470553): Remove after Ambient subpage UI change is released. --> - <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_]]"> <ambient-preview class="pre-ui-change"></ambient-preview> </template> <template is="dom-if" if="[[loadingSettings_]]"> @@ -174,7 +174,7 @@ </template> <template is="dom-if" if="[[!ambientModeEnabled_]]"> <!-- TODO(b/253470693): Remove after Ambient subpage UI change is released. --> - <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_()]]"> + <template is="dom-if" if="[[!isAmbientSubpageUiChangeEnabled_]]"> <ambient-zero-state id="zeroState"></ambient-zero-state> </template> </template>
diff --git a/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.ts b/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.ts index a879969..3852542 100644 --- a/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.ts +++ b/ash/webui/personalization_app/resources/js/ambient/ambient_subpage_element.ts
@@ -51,24 +51,40 @@ type: Object, value: null, }, - ambientModeEnabled_: Boolean, - temperatureUnit_: Number, - topicSource_: Number, + ambientModeEnabled_: { + type: Boolean, + value: null, + }, + temperatureUnit_: { + type: Number, + value: null, + }, + topicSource_: { + type: Number, + value: null, + }, loadingSettings_: { type: Boolean, computed: 'computeLoadingSettings_(albums_, temperatureUnit_, topicSource_)', }, + isAmbientSubpageUiChangeEnabled_: { + type: Boolean, + value() { + return loadTimeData.getBoolean('isAmbientSubpageUiChangeEnabled'); + }, + }, }; } path: Paths; queryParams: Record<string, string>; - private albums_: AmbientModeAlbum[]|null = null; - private ambientModeEnabled_: boolean|null = null; - private animationTheme_: AnimationTheme|null = null; - private temperatureUnit_: TemperatureUnit|null = null; - private topicSource_: TopicSource|null = null; + private albums_: AmbientModeAlbum[]|null; + private ambientModeEnabled_: boolean|null; + private animationTheme_: AnimationTheme|null; + private temperatureUnit_: TemperatureUnit|null; + private topicSource_: TopicSource|null; + private isAmbientSubpageUiChangeEnabled_: boolean; // Refetch albums if the user is currently viewing ambient subpage, focuses // another window, and then re-focuses personalization app. @@ -191,14 +207,6 @@ private getClassContainer_(x: number): string { return `ambient-text-placeholder-${x}`; } - - /** - * Determines whether ambient subpage UI restructure is enabled. Value can be - * mocked in tests. - */ - private isAmbientSubpageUiChangeEnabled_(): boolean { - return loadTimeData.getBoolean('isAmbientSubpageUIChangeEnabled'); - } } customElements.define(AmbientSubpage.is, AmbientSubpage);
diff --git a/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table.h b/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table.h index 973d77de..b12f6e6d 100644 --- a/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table.h +++ b/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table.h
@@ -10,7 +10,6 @@ #include <map> #include <string> -#include "ash/ash_export.h" #include "ash/public/cpp/accelerators.h" #include "ash/public/mojom/accelerator_info.mojom.h" #include "ash/strings/grit/ash_strings.h" @@ -73,7 +72,7 @@ }; // Contains details for UI styling of an accelerator. -struct ASH_EXPORT AcceleratorLayoutDetails { +struct AcceleratorLayoutDetails { // The accelerator action id associated for a source. Concat `source` and // `action_id` to get a unique identifier for an accelerator action. uint32_t action_id; @@ -102,7 +101,7 @@ // A map between browser action id and accelerator description ID. // TODO(longbowei): Remove this map after browser accelerators are added to the // kAcceleratorLayouts table. -ASH_EXPORT constexpr auto kBrowserActionToStringIdMap = base::MakeFixedFlatMap< +constexpr auto kBrowserActionToStringIdMap = base::MakeFixedFlatMap< NonConfigurableActions, int>({ {NonConfigurableActions::kBrowserCloseTab, @@ -193,7 +192,7 @@ // Contains the text to display as well as its type (Modifier, Key, Plain Text) // which is needed to determine how to display the text in the shortcut // customization app. -class ASH_EXPORT TextAcceleratorPart : public mojom::TextAcceleratorPart { +class TextAcceleratorPart : public mojom::TextAcceleratorPart { public: explicit TextAcceleratorPart(ui::EventFlags modifier); explicit TextAcceleratorPart(ui::KeyboardCode key_code); @@ -210,7 +209,7 @@ // and message_id/replacements should not have any value set. // AcceleratorConfigurationProvider uses this struct to create a list of // AcceleratorInfo struct's for each non-configurable action. -struct ASH_EXPORT NonConfigurableAcceleratorDetails { +struct NonConfigurableAcceleratorDetails { NonConfigurableAcceleratorDetails( int message_id, std::vector<TextAcceleratorPart> replacements); @@ -236,7 +235,7 @@ using NonConfigurableActionsMap = std::map<NonConfigurableActions, NonConfigurableAcceleratorDetails>; -const ASH_EXPORT NonConfigurableActionsMap& GetNonConfigurableActionsMap(); +const NonConfigurableActionsMap& GetNonConfigurableActionsMap(); // A fixed array of accelerator layouts used for categorization and styling of // accelerator actions. The ordering of the array is important and is used @@ -245,7 +244,7 @@ // app. // TODO(jimmyxgong): This is a stub map with stub details, replace with real // one when categorization is available. -ASH_EXPORT constexpr AcceleratorLayoutDetails kAcceleratorLayouts[] = { +constexpr AcceleratorLayoutDetails kAcceleratorLayouts[] = { // Tab & Windows. {DESKS_ACTIVATE_DESK_LEFT, IDS_ASH_ACCELERATOR_DESCRIPTION_DESKS_ACTIVATE_DESK_LEFT,
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.html b/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.html index 84e55df..186d310d 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.html +++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.html
@@ -30,7 +30,7 @@ } </style> -<div id="container" class="flex-row" tabindex="0"> +<div id="container" class="flex-row" tabindex$="[[getTabIndex()]]"> <template is="dom-if" if="[[!showEditView(viewState)]]"> <div id="accelerator-keys"> <template is="dom-repeat" items="[[modifiers]]">
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.ts b/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.ts index 292b9a97..aa4dfd26 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_view.ts
@@ -499,6 +499,14 @@ this.sourceIsLocked; } + /** + * Determines whether accelerator items should be tab-focusable. + */ + private getTabIndex(): number { + // If customization is disabled, this element should not be tab-focusable. + return isCustomizationDisabled() ? -1 : 0; + } + static get template(): HTMLTemplateElement { return getTemplate(); }
diff --git a/ash/webui/shortcut_customization_ui/resources/js/input_key.html b/ash/webui/shortcut_customization_ui/resources/js/input_key.html index f84bf1c..a5d4feb 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/input_key.html +++ b/ash/webui/shortcut_customization_ui/resources/js/input_key.html
@@ -51,7 +51,9 @@ <div id="key" class="key-container"> <template is="dom-if" if="[[getIconIdForKey(key)]]"> - <iron-icon icon="[[getIconIdForKey(key)]]" id="key-icon"></iron-icon> + <div aria-label$="[[getAriaLabelForIcon(key)]]" role="img"> + <iron-icon icon="[[getIconIdForKey(key)]]" id="key-icon"></iron-icon> + </div> </template> <template is="dom-if" if="[[!getIconIdForKey(key)]]"> <span id="key-text">[[key]]</span>
diff --git a/ash/webui/shortcut_customization_ui/resources/js/input_key.ts b/ash/webui/shortcut_customization_ui/resources/js/input_key.ts index 14fb756..987a77ea 100644 --- a/ash/webui/shortcut_customization_ui/resources/js/input_key.ts +++ b/ash/webui/shortcut_customization_ui/resources/js/input_key.ts
@@ -6,6 +6,8 @@ import 'chrome://resources/cr_elements/cr_shared_vars.css.js'; import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js'; +import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js'; +import {assert} from 'chrome://resources/js/assert_ts.js'; import {PolymerElementProperties} from 'chrome://resources/polymer/v3_0/polymer/interfaces.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; @@ -59,7 +61,10 @@ * 'input-key' is a component wrapper for a single input key. Responsible for * handling dynamic styling of a single key. */ -export class InputKeyElement extends PolymerElement { + +const InputKeyElementBase = I18nMixin(PolymerElement); + +export class InputKeyElement extends InputKeyElementBase { static get is(): string { return 'input-key'; } @@ -93,6 +98,25 @@ } return null; } + + /** + * Returns the GRD string ID for the given key. This function is public and + * static so that it can be used by the test for this element. + * + * @param key The KeyboardEvent.code of a key, e.g. ArrowUp or PrintScreen. + */ + static getAriaLabelStringId(key: string): string { + return `iconLabel${key}`; // e.g. iconLabelArrowUp + } + + private getAriaLabelForIcon(): string { + const ariaLabelStringId = InputKeyElement.getAriaLabelStringId(this.key); + assert( + this.i18nExists(ariaLabelStringId), + `String ID ${ariaLabelStringId} should exist, but it doesn't.`); + + return this.i18n(ariaLabelStringId); + } } declare global {
diff --git a/ash/webui/shortcut_customization_ui/shortcut_customization_app_ui.cc b/ash/webui/shortcut_customization_ui/shortcut_customization_app_ui.cc index 2fb4bb1a..97cf287 100644 --- a/ash/webui/shortcut_customization_ui/shortcut_customization_app_ui.cc +++ b/ash/webui/shortcut_customization_ui/shortcut_customization_app_ui.cc
@@ -72,6 +72,54 @@ IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_SYSTEM_APPS}, {"subcategorySystemControls", IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_SYSTEM_CONTROLS}, + {"iconLabelArrowDown", IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_DOWN}, + {"iconLabelArrowLeft", IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_LEFT}, + {"iconLabelArrowRight", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_RIGHT}, + {"iconLabelArrowUp", IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_UP}, + {"iconLabelAudioVolumeDown", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_DOWN}, + {"iconLabelAudioVolumeMute", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_MUTE}, + {"iconLabelAudioVolumeUp", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_UP}, + {"iconLabelBrightnessDown", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BRIGHTNESS_DOWN}, + {"iconLabelBrightnessUp", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BRIGHTNESS_UP}, + {"iconLabelBrowserBack", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_BACK}, + {"iconLabelBrowserForward", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_FORWARD}, + {"iconLabelBrowserRefresh", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_REFRESH}, + {"iconLabelKeyboardBacklightToggle", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BACKLIGHT_TOGGLE}, + {"iconLabelKeyboardBrightnessUp", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BRIGHTNESS_UP}, + {"iconLabelKeyboardBrightnessDown", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BRIGHTNESS_DOWN}, + {"iconLabelLaunchApplication1", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_LAUNCH_APPLICATION1}, + {"iconLabelLaunchAssistant", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_LAUNCH_ASSISTANT}, + {"iconLabelMediaPlayPause", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_PLAY_PAUSE}, + {"iconLabelMediaTrackNext", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_TRACK_NEXT}, + {"iconLabelMediaTrackPrevious", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_TRACK_PREVIOUS}, + {"iconLabelMicrophoneMuteToggle", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MICROPHONE_MUTE_TOGGLE}, + {"iconLabelOpenLauncher", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_OPEN_LAUNCHER}, + {"iconLabelPower", IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_POWER}, + {"iconLabelPrintScreen", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_PRINT_SCREEN}, + {"iconLabelPrivacyScreenToggle", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_PRIVACY_SCREEN_TOGGLE}, + {"iconLabelZoomToggle", + IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ZOOM_TOGGLE}, }; source->AddLocalizedStrings(kLocalizedStrings);
diff --git a/base/android/java/src/org/chromium/base/BundleUtils.java b/base/android/java/src/org/chromium/base/BundleUtils.java index 61e4c78..774613f 100644 --- a/base/android/java/src/org/chromium/base/BundleUtils.java +++ b/base/android/java/src/org/chromium/base/BundleUtils.java
@@ -12,12 +12,11 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; +import android.util.ArrayMap; import android.view.LayoutInflater; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; -import androidx.collection.ArrayMap; -import androidx.collection.SimpleArrayMap; import dalvik.system.BaseDexClassLoader; import dalvik.system.PathClassLoader; @@ -58,8 +57,7 @@ // This cache is needed to support the workaround for b/172602571, see // createIsolatedSplitContext() for more info. - private static final SimpleArrayMap<String, ClassLoader> sCachedClassLoaders = - new SimpleArrayMap<>(); + private static final ArrayMap<String, ClassLoader> sCachedClassLoaders = new ArrayMap<>(); private static final Map<String, ClassLoader> sInflationClassLoaders = Collections.synchronizedMap(new ArrayMap<>());
diff --git a/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java b/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java index 1a868f4..6c54203c 100644 --- a/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java +++ b/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java
@@ -5,7 +5,6 @@ package org.chromium.base.compat; import android.app.Activity; -import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.graphics.Bitmap; @@ -26,7 +25,6 @@ import android.webkit.WebViewClient; import androidx.annotation.RequiresApi; -import androidx.annotation.RequiresPermission; /** * Utility class to use new APIs that were added in M (API level 23). These need to exist in a @@ -140,13 +138,6 @@ return event.getActionButton(); } - /** See {@link AlarmManager#setExactAndAllowWhileIdle(int, long, PendingIntent) }. */ - @RequiresPermission(android.Manifest.permission.SCHEDULE_EXACT_ALARM) - public static void setAlarmManagerExactAndAllowWhileIdle(AlarmManager alarmManager, int type, - long triggerAtMillis, PendingIntent pendingIntent) { - alarmManager.setExactAndAllowWhileIdle(type, triggerAtMillis, pendingIntent); - } - /** See {@link Display.Mode#getPhysicalWidth() }. */ public static int getModePhysicalWidth(Display.Mode mode) { return mode.getPhysicalWidth();
diff --git a/base/check.cc b/base/check.cc index 712a6e4..d263c76 100644 --- a/base/check.cc +++ b/base/check.cc
@@ -22,9 +22,9 @@ namespace { -// DCHECK_IS_CONFIGURABLE and ENABLE_LOG_ERROR_NOT_REACHED are both interested -// in non-FATAL DCHECK()/NOTREACHED() reports. -#if BUILDFLAG(DCHECK_IS_CONFIGURABLE) || BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) +// TODO(crbug.com/851128): Once landed this needs to be under +// BUILDFLAG(DCHECK_IS_CONFIGURABLE) and NotReachedLogMessage cleaned up and +// instead just be a LogMessage using FATAL. void DumpOnceWithoutCrashing(LogMessage* log_message) { // Best-effort gate to prevent multiple DCHECKs from being dumped. This will // race if multiple threads DCHECK at the same time, but we'll eventually stop @@ -63,10 +63,6 @@ } } }; -#else -using NotReachedLogMessage = LogMessage; -#endif // BUILDFLAG(DCHECK_IS_CONFIGURABLE) || - // BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) #if BUILDFLAG(DCHECK_IS_CONFIGURABLE)
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h index 0ffa1df..3020d40 100644 --- a/base/memory/raw_ptr.h +++ b/base/memory/raw_ptr.h
@@ -174,6 +174,18 @@ return wrapped_ptr; } + // `WrapRawPtrForDuplication` and `UnsafelyUnwrapPtrForDuplication` are used + // to create a new raw_ptr<T> from another raw_ptr<T> of a different flavor. + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + return ptr; + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + return wrapped_ptr; + } + // This is for accounting only, used by unit tests. static PA_ALWAYS_INLINE void IncrementSwapCountForTest() {} static PA_ALWAYS_INLINE void IncrementLessCountForTest() {} @@ -356,6 +368,18 @@ return wrapped_ptr; } + // `WrapRawPtrForDuplication` and `UnsafelyUnwrapPtrForDuplication` are used + // to create a new raw_ptr<T> from another raw_ptr<T> of a different flavor. + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + return WrapRawPtr(ptr); + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + return ExtractPtr(wrapped_ptr); + } + // This is for accounting only, used by unit tests. static PA_ALWAYS_INLINE void IncrementSwapCountForTest() {} static PA_ALWAYS_INLINE void IncrementLessCountForTest() {} @@ -700,6 +724,18 @@ ReportIfDanglingInternal(partition_alloc::UntagPtr(wrapped_ptr)); } + // `WrapRawPtrForDuplication` and `UnsafelyUnwrapPtrForDuplication` are used + // to create a new raw_ptr<T> from another raw_ptr<T> of a different flavor. + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + return WrapRawPtr(ptr); + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + return UnpoisonPtr(wrapped_ptr); + } + // This is for accounting only, used by unit tests. static PA_ALWAYS_INLINE void IncrementSwapCountForTest() {} static PA_ALWAYS_INLINE void IncrementLessCountForTest() {} @@ -823,6 +859,18 @@ static bool EndOfAliveAllocation(const volatile void* ptr); static bool LikelySmuggledScalar(const volatile void* ptr); + // `WrapRawPtrForDuplication` and `UnsafelyUnwrapPtrForDuplication` are used + // to create a new raw_ptr<T> from another raw_ptr<T> of a different flavor. + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + return ptr; + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + return wrapped_ptr; + } + // This is for accounting only, used by unit tests. static PA_ALWAYS_INLINE void IncrementSwapCountForTest() {} static PA_ALWAYS_INLINE void IncrementLessCountForTest() {} @@ -933,6 +981,18 @@ return wrapped_ptr; } + // `WrapRawPtrForDuplication` and `UnsafelyUnwrapPtrForDuplication` are used + // to create a new raw_ptr<T> from another raw_ptr<T> of a different flavor. + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + return ptr; + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + return wrapped_ptr; + } + // This is for accounting only, used by unit tests. static PA_ALWAYS_INLINE void IncrementSwapCountForTest() {} static PA_ALWAYS_INLINE void IncrementLessCountForTest() {} @@ -987,6 +1047,18 @@ ++pointer_to_member_operator_cnt; } + template <typename T> + static PA_ALWAYS_INLINE T* WrapRawPtrForDuplication(T* ptr) { + ++wrap_raw_ptr_for_dup_cnt; + return SuperImpl::WrapRawPtrForDuplication(ptr); + } + + template <typename T> + static PA_ALWAYS_INLINE T* UnsafelyUnwrapPtrForDuplication(T* wrapped_ptr) { + ++get_for_duplication_cnt; + return SuperImpl::UnsafelyUnwrapPtrForDuplication(wrapped_ptr); + } + static void ClearCounters() { wrap_raw_ptr_cnt = 0; release_wrapped_ptr_cnt = 0; @@ -996,6 +1068,8 @@ wrapped_ptr_swap_cnt = 0; wrapped_ptr_less_cnt = 0; pointer_to_member_operator_cnt = 0; + wrap_raw_ptr_for_dup_cnt = 0; + get_for_duplication_cnt = 0; } static inline int wrap_raw_ptr_cnt = INT_MIN; @@ -1006,6 +1080,8 @@ static inline int wrapped_ptr_swap_cnt = INT_MIN; static inline int wrapped_ptr_less_cnt = INT_MIN; static inline int pointer_to_member_operator_cnt = INT_MIN; + static inline int wrap_raw_ptr_for_dup_cnt = INT_MIN; + static inline int get_for_duplication_cnt = INT_MIN; }; } // namespace internal @@ -1259,6 +1335,27 @@ #endif // BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT) || // BUILDFLAG(USE_ASAN_UNOWNED_PTR) + template <typename PassedRawPtrType, + typename Unused = + std::enable_if_t<!std::is_same_v<RawPtrType, PassedRawPtrType>>> + PA_ALWAYS_INLINE explicit raw_ptr( + const raw_ptr<T, PassedRawPtrType>& p) noexcept + : wrapped_ptr_(Impl::WrapRawPtrForDuplication( + raw_ptr_traits::RawPtrTypeToImpl<PassedRawPtrType>::Impl:: + UnsafelyUnwrapPtrForDuplication(p.wrapped_ptr_))) {} + + template <typename PassedRawPtrType, + typename Unused = + std::enable_if_t<!std::is_same_v<RawPtrType, PassedRawPtrType>>> + PA_ALWAYS_INLINE raw_ptr& operator=( + const raw_ptr<T, PassedRawPtrType>& p) noexcept { + Impl::ReleaseWrappedPtr(wrapped_ptr_); + wrapped_ptr_ = Impl::WrapRawPtrForDuplication( + raw_ptr_traits::RawPtrTypeToImpl<PassedRawPtrType>::Impl:: + UnsafelyUnwrapPtrForDuplication(p.wrapped_ptr_)); + return *this; + } + // Deliberately implicit, because raw_ptr is supposed to resemble raw ptr. // NOLINTNEXTLINE(google-explicit-constructor) constexpr PA_ALWAYS_INLINE raw_ptr(std::nullptr_t) noexcept
diff --git a/base/memory/raw_ptr_asan_unittest.cc b/base/memory/raw_ptr_asan_unittest.cc index be2030a8..ae11c6c 100644 --- a/base/memory/raw_ptr_asan_unittest.cc +++ b/base/memory/raw_ptr_asan_unittest.cc
@@ -434,6 +434,19 @@ run_loop.Run(); } +TEST_F(AsanBackupRefPtrTest, DanglingUnretained) { + // The test should finish without crashing. + + raw_ptr<AsanStruct> protected_ptr = new AsanStruct; + delete protected_ptr.get(); + + auto ptr_callback = base::BindOnce( + [](AsanStruct* ptr) { + // Do nothing - we only check the behavior of `BindOnce` in this test. + }, + protected_ptr); +} + } // namespace base::internal #endif // BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
diff --git a/base/memory/raw_ptr_unittest.cc b/base/memory/raw_ptr_unittest.cc index aa71ac7..e4473fbe 100644 --- a/base/memory/raw_ptr_unittest.cc +++ b/base/memory/raw_ptr_unittest.cc
@@ -143,6 +143,8 @@ absl::optional<int> wrapped_ptr_swap_cnt; absl::optional<int> wrapped_ptr_less_cnt; absl::optional<int> pointer_to_member_operator_cnt; + absl::optional<int> wrap_raw_ptr_for_dup_cnt; + absl::optional<int> get_for_duplication_cnt; }; #define REPORT_UNEQUAL_RAW_PTR_COUNTER(member_name, CounterClassImpl) \ @@ -155,18 +157,20 @@ result = false; \ } \ } -#define REPORT_UNEQUAL_RAW_PTR_COUNTERS(result, CounterClassImpl) \ - { \ - result = true; \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(wrap_raw_ptr_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(release_wrapped_ptr_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_dereference_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_extraction_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_comparison_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(wrapped_ptr_swap_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(wrapped_ptr_less_cnt, CounterClassImpl) \ - REPORT_UNEQUAL_RAW_PTR_COUNTER(pointer_to_member_operator_cnt, \ - CounterClassImpl) \ +#define REPORT_UNEQUAL_RAW_PTR_COUNTERS(result, CounterClassImpl) \ + { \ + result = true; \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(wrap_raw_ptr_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(release_wrapped_ptr_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_dereference_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_extraction_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_comparison_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(wrapped_ptr_swap_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(wrapped_ptr_less_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(pointer_to_member_operator_cnt, \ + CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(wrap_raw_ptr_for_dup_cnt, CounterClassImpl) \ + REPORT_UNEQUAL_RAW_PTR_COUNTER(get_for_duplication_cnt, CounterClassImpl) \ } // Matcher used with `CountingRawPtr`. Provides slightly shorter @@ -1371,6 +1375,37 @@ EXPECT_EQ(&x, absl::get<raw_ptr<int>>(vary)); } +TEST_F(RawPtrTest, CrossKindConversions) { + int x = 123; + CountingRawPtr<int> ptr1 = &x; + + RawPtrCountingImpl::ClearCounters(); + RawPtrCountingMayDangleImpl::ClearCounters(); + + CountingRawPtrMayDangle<int> ptr2(ptr1); + + EXPECT_THAT((CountingRawPtrExpectations{.get_for_dereference_cnt = 0, + .get_for_extraction_cnt = 0, + .get_for_duplication_cnt = 1}), + CountingRawPtrHasCounts()); + EXPECT_THAT((CountingRawPtrExpectations{.wrap_raw_ptr_cnt = 0, + .wrap_raw_ptr_for_dup_cnt = 1}), + MayDangleCountingRawPtrHasCounts()); + + RawPtrCountingImpl::ClearCounters(); + RawPtrCountingMayDangleImpl::ClearCounters(); + + CountingRawPtr<int> ptr3(ptr2); + + EXPECT_THAT((CountingRawPtrExpectations{.get_for_dereference_cnt = 0, + .get_for_extraction_cnt = 0, + .get_for_duplication_cnt = 1}), + MayDangleCountingRawPtrHasCounts()); + EXPECT_THAT((CountingRawPtrExpectations{.wrap_raw_ptr_cnt = 0, + .wrap_raw_ptr_for_dup_cnt = 1}), + CountingRawPtrHasCounts()); +} + } // namespace namespace base {
diff --git a/base/notreached.h b/base/notreached.h index 23d2b5e..07f9d7de 100644 --- a/base/notreached.h +++ b/base/notreached.h
@@ -12,7 +12,15 @@ namespace logging { -// Under these conditions NOTREACHED() will effectively either log or DCHECK. +// On DCHECK builds NOTREACHED() match the fatality of DCHECKs. When DCHECKs are +// non-FATAL a crash report will be generated for the first NOTREACHED() that +// hits per process. +// +// Outside DCHECK builds NOTREACHED() will LOG(ERROR) and also upload a crash +// report without crashing in order to weed out prevalent NOTREACHED()s in the +// wild before always turning NOTREACHED()s FATAL. +// +// TODO(crbug.com/851128): Turn NOTREACHED() FATAL and mark them [[noreturn]]. #if CHECK_WILL_STREAM() #define NOTREACHED() \ CHECK_FUNCTION_IMPL( \
diff --git a/base/profiler/stack_sampling_profiler.cc b/base/profiler/stack_sampling_profiler.cc index 3d57031..43d34f3 100644 --- a/base/profiler/stack_sampling_profiler.cc +++ b/base/profiler/stack_sampling_profiler.cc
@@ -765,7 +765,9 @@ #if (BUILDFLAG(IS_WIN) && defined(ARCH_CPU_X86_64)) || BUILDFLAG(IS_MAC) || \ (BUILDFLAG(IS_IOS) && defined(ARCH_CPU_64_BITS)) || \ (BUILDFLAG(IS_ANDROID) && \ - (BUILDFLAG(ENABLE_ARM_CFI_TABLE) || defined(ARCH_CPU_ARM64))) + (BUILDFLAG(ENABLE_ARM_CFI_TABLE) || defined(ARCH_CPU_ARM64))) || \ + (BUILDFLAG(IS_CHROMEOS) && defined(ARCH_CPU_X86_64) && \ + BUILDFLAG(IS_CHROMEOS_DEVICE)) #if BUILDFLAG(IS_WIN) // Do not start the profiler when Application Verifier is in use; running them // simultaneously can cause crashes and has no known use case.
diff --git a/build/add_rts_filters.py b/build/add_rts_filters.py index 1a53474a..94297c5 100755 --- a/build/add_rts_filters.py +++ b/build/add_rts_filters.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/android/pylib/symbols/mock_addr2line/mock_addr2line b/build/android/pylib/symbols/mock_addr2line/mock_addr2line index 88b8e98..f4e3d83 100755 --- a/build/android/pylib/symbols/mock_addr2line/mock_addr2line +++ b/build/android/pylib/symbols/mock_addr2line/mock_addr2line
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/check_return_value.py b/build/check_return_value.py index 56b5fe7e..8d785be 100755 --- a/build/check_return_value.py +++ b/build/check_return_value.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/clobber.py b/build/clobber.py index 411bb8d..83e8137 100755 --- a/build/clobber.py +++ b/build/clobber.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/compute_build_timestamp.py b/build/compute_build_timestamp.py index ca1cc44..87e2983 100755 --- a/build/compute_build_timestamp.py +++ b/build/compute_build_timestamp.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/config/fuchsia/build_symbol_archive.py b/build/config/fuchsia/build_symbol_archive.py index 3dcac94..a595ed8 100755 --- a/build/config/fuchsia/build_symbol_archive.py +++ b/build/config/fuchsia/build_symbol_archive.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be
diff --git a/build/config/get_host_byteorder.py b/build/config/get_host_byteorder.py index 20834a35..194e1b4 100755 --- a/build/config/get_host_byteorder.py +++ b/build/config/get_host_byteorder.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py index f413363..7e84692 100755 --- a/build/config/linux/pkg-config.py +++ b/build/config/linux/pkg-config.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/copy_test_data_ios.py b/build/copy_test_data_ios.py index bb77f9b0..ae18b44 100755 --- a/build/copy_test_data_ios.py +++ b/build/copy_test_data_ios.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/cp.py b/build/cp.py index 483b274..2bcf55c 100755 --- a/build/cp.py +++ b/build/cp.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/detect_host_arch.py b/build/detect_host_arch.py index 7c7d6d6..bb9b3d8 100755 --- a/build/detect_host_arch.py +++ b/build/detect_host_arch.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/dir_exists.py b/build/dir_exists.py index f95a52d0..da9813f 100755 --- a/build/dir_exists.py +++ b/build/dir_exists.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2011 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/download_nacl_toolchains.py b/build/download_nacl_toolchains.py index 8347a391..d22ce2a 100755 --- a/build/download_nacl_toolchains.py +++ b/build/download_nacl_toolchains.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/env_dump.py b/build/env_dump.py index 2474b48..1eaf8dc 100755 --- a/build/env_dump.py +++ b/build/env_dump.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/extract_from_cab.py b/build/extract_from_cab.py index 4c003ba..620da6d 100755 --- a/build/extract_from_cab.py +++ b/build/extract_from_cab.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/extract_partition.py b/build/extract_partition.py index bbe0e70b..319ce8fc 100755 --- a/build/extract_partition.py +++ b/build/extract_partition.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2019 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/find_depot_tools.py b/build/find_depot_tools.py index 94985fe..bbf8853a 100755 --- a/build/find_depot_tools.py +++ b/build/find_depot_tools.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2011 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/fix_gn_headers.py b/build/fix_gn_headers.py index 7b8086b..012ded61 100755 --- a/build/fix_gn_headers.py +++ b/build/fix_gn_headers.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/fuchsia/qemu_target_test.py b/build/fuchsia/qemu_target_test.py index bdec7992b..8f2846b 100755 --- a/build/fuchsia/qemu_target_test.py +++ b/build/fuchsia/qemu_target_test.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/get_landmines.py b/build/get_landmines.py index 311f042..af21386 100755 --- a/build/get_landmines.py +++ b/build/get_landmines.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/get_symlink_targets.py b/build/get_symlink_targets.py index 33362c0..850bbae 100755 --- a/build/get_symlink_targets.py +++ b/build/get_symlink_targets.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2019 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/landmines.py b/build/landmines.py index 2078b24..844ee38 100755 --- a/build/landmines.py +++ b/build/landmines.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/linux/rewrite_dirs.py b/build/linux/rewrite_dirs.py index aa4f36e..69de1c6 100755 --- a/build/linux/rewrite_dirs.py +++ b/build/linux/rewrite_dirs.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2011 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/linux/strip_binary.py b/build/linux/strip_binary.py index e77684b..82801c7 100755 --- a/build/linux/strip_binary.py +++ b/build/linux/strip_binary.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be
diff --git a/build/linux/sysroot_scripts/merge-package-lists.py b/build/linux/sysroot_scripts/merge-package-lists.py index 8e310f2..e2a5a63 100755 --- a/build/linux/sysroot_scripts/merge-package-lists.py +++ b/build/linux/sysroot_scripts/merge-package-lists.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/mac/find_sdk.py b/build/mac/find_sdk.py index 50c1e3c1..3c18097f 100755 --- a/build/mac/find_sdk.py +++ b/build/mac/find_sdk.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/protoc_java.py b/build/protoc_java.py index 3c0b313f..2cc56f4 100755 --- a/build/protoc_java.py +++ b/build/protoc_java.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/rm.py b/build/rm.py index 5f4aea10..1f1d233 100755 --- a/build/rm.py +++ b/build/rm.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/symlink.py b/build/symlink.py index 38a6102..44aff0ba 100755 --- a/build/symlink.py +++ b/build/symlink.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/toolchain/clang_code_coverage_wrapper.py b/build/toolchain/clang_code_coverage_wrapper.py index de92ca1..d81b226 100755 --- a/build/toolchain/clang_code_coverage_wrapper.py +++ b/build/toolchain/clang_code_coverage_wrapper.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/toolchain/gcc_link_wrapper.py b/build/toolchain/gcc_link_wrapper.py index 60176daa..5c08a7e 100755 --- a/build/toolchain/gcc_link_wrapper.py +++ b/build/toolchain/gcc_link_wrapper.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/toolchain/gcc_solink_wrapper.py b/build/toolchain/gcc_solink_wrapper.py index 193f4fe1..03ef042 100755 --- a/build/toolchain/gcc_solink_wrapper.py +++ b/build/toolchain/gcc_solink_wrapper.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/toolchain/win/ml.py b/build/toolchain/win/ml.py index 733c10c4..8cc2c9e1 100755 --- a/build/toolchain/win/ml.py +++ b/build/toolchain/win/ml.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/toolchain/win/rc/rc.py b/build/toolchain/win/rc/rc.py index 2e5ec6b..0648c84 100755 --- a/build/toolchain/win/rc/rc.py +++ b/build/toolchain/win/rc/rc.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/util/java_action.py b/build/util/java_action.py index a19e06d..6382dc2 100755 --- a/build/util/java_action.py +++ b/build/util/java_action.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/util/lastchange.py b/build/util/lastchange.py index 2caf945..cb87515d 100755 --- a/build/util/lastchange.py +++ b/build/util/lastchange.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/util/lib/common/unittest_util_test.py b/build/util/lib/common/unittest_util_test.py index 472982b..e775e1a 100755 --- a/build/util/lib/common/unittest_util_test.py +++ b/build/util/lib/common/unittest_util_test.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py index d426fcd..52a357bc 100755 --- a/build/vs_toolchain.py +++ b/build/vs_toolchain.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/win/copy_cdb_to_output.py b/build/win/copy_cdb_to_output.py index 0076103d..156971a1 100755 --- a/build/win/copy_cdb_to_output.py +++ b/build/win/copy_cdb_to_output.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/win/reorder-imports.py b/build/win/reorder-imports.py index ff40cd63..7dd8e1d8 100755 --- a/build/win/reorder-imports.py +++ b/build/win/reorder-imports.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # 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.
diff --git a/build/win/use_ansi_codes.py b/build/win/use_ansi_codes.py index 85469e5..3cf6159 100755 --- a/build/win/use_ansi_codes.py +++ b/build/win/use_ansi_codes.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/write_build_date_header.py b/build/write_build_date_header.py index 3b79417..4929e04 100755 --- a/build/write_build_date_header.py +++ b/build/write_build_date_header.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build/write_buildflag_header.py b/build/write_buildflag_header.py index 44da8a6..89a07376 100755 --- a/build/write_buildflag_header.py +++ b/build/write_buildflag_header.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/build_overrides/build.gni b/build_overrides/build.gni index a282e510..577adee 100644 --- a/build_overrides/build.gni +++ b/build_overrides/build.gni
@@ -2,6 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/chromecast_build.gni") import("//build/config/gclient_args.gni") # Uncomment these to specify a different NDK location and version in @@ -22,10 +23,9 @@ enable_base_tracing = true # Switches the TRACE_EVENT instrumentation from base's TraceLog implementation - # to //third_party/perfetto's client library. Not implemented yet, currently a - # no-op to set up trybot infrastructure. - # TODO(crbug/1006769): Switch to perfetto's client library. - use_perfetto_client_library = false + # to //third_party/perfetto's client library. + # TODO(crbug/1006541): Switch to perfetto's client library on all platforms. + use_perfetto_client_library = is_linux && !is_castos # Limits the defined //third_party/android_deps targets to only "buildCompile" # and "buildCompileNoDeps" targets. This is useful for third-party
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index cc55daa..512354f 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -36,7 +36,6 @@ import("//third_party/icu/config.gni") import("//third_party/protobuf/proto_library.gni") import("//tools/resources/generate_resource_allowlist.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") import("//weblayer/variables.gni") import("channel.gni") import("java_sources.gni") @@ -2112,14 +2111,6 @@ ] } - java_group("chrome_public_v8_assets") { - if (use_v8_context_snapshot) { - deps = [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps = [ "//v8:v8_external_startup_data_assets" ] - } - } - jinja_template_resources("chrome_public_apk_template_resources") { resources = [ "java/res_template/xml/file_paths.xml",
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni index 068b839..2e6b04f 100644 --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -168,8 +168,8 @@ if (!_is_monochrome && !_is_trichrome) { deps += [ - "//chrome/android:chrome_public_v8_assets", "//components/crash/core/app:chrome_crashpad_handler_named_as_so", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ] if (!defined(loadable_modules)) {
diff --git a/chrome/android/chrome_test_apk_tmpl.gni b/chrome/android/chrome_test_apk_tmpl.gni index 79d5eb5f6..a709fe7 100644 --- a/chrome/android/chrome_test_apk_tmpl.gni +++ b/chrome/android/chrome_test_apk_tmpl.gni
@@ -10,7 +10,7 @@ "//chrome/android:chrome_public_apk_resources", "//chrome/android:chrome_public_base_module_java", "//chrome/android:chrome_public_non_pak_assets", - "//chrome/android:chrome_public_v8_assets", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ]
diff --git a/chrome/android/expectations/monochrome_public_bundle__base.AndroidManifest.expected b/chrome/android/expectations/monochrome_public_bundle__base.AndroidManifest.expected index f2a9775b..ff20972 100644 --- a/chrome/android/expectations/monochrome_public_bundle__base.AndroidManifest.expected +++ b/chrome/android/expectations/monochrome_public_bundle__base.AndroidManifest.expected
@@ -1298,14 +1298,6 @@ <action android:name="org.chromium.intent.action.INSTALL_WEB_APK"/> </intent-filter> # DIFF-ANCHOR: 875093ee </service> # DIFF-ANCHOR: 878b448b - <service # DIFF-ANCHOR: 8fc286d0 - android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskGcmTaskService" - android:exported="true" - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"> - <intent-filter> # DIFF-ANCHOR: 99686c45 - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/> - </intent-filter> # DIFF-ANCHOR: 99686c45 - </service> # DIFF-ANCHOR: 8fc286d0 <service # DIFF-ANCHOR: a550decc android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskJobService" android:exported="false"
diff --git a/chrome/android/expectations/monochrome_public_bundle__chrome.AndroidManifest.expected b/chrome/android/expectations/monochrome_public_bundle__chrome.AndroidManifest.expected index 0dc02b3..c07b46e 100644 --- a/chrome/android/expectations/monochrome_public_bundle__chrome.AndroidManifest.expected +++ b/chrome/android/expectations/monochrome_public_bundle__chrome.AndroidManifest.expected
@@ -972,14 +972,6 @@ <action android:name="org.chromium.intent.action.INSTALL_WEB_APK"/> </intent-filter> # DIFF-ANCHOR: 875093ee </service> # DIFF-ANCHOR: 878b448b - <service # DIFF-ANCHOR: 8fc286d0 - android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskGcmTaskService" - android:exported="true" - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"> - <intent-filter> # DIFF-ANCHOR: 99686c45 - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/> - </intent-filter> # DIFF-ANCHOR: 99686c45 - </service> # DIFF-ANCHOR: 8fc286d0 <service # DIFF-ANCHOR: a550decc android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskJobService" android:exported="false"
diff --git a/chrome/android/expectations/trichrome_chrome_bundle__base.AndroidManifest.expected b/chrome/android/expectations/trichrome_chrome_bundle__base.AndroidManifest.expected index f5bf5c8..24a2a673 100644 --- a/chrome/android/expectations/trichrome_chrome_bundle__base.AndroidManifest.expected +++ b/chrome/android/expectations/trichrome_chrome_bundle__base.AndroidManifest.expected
@@ -1154,14 +1154,6 @@ <action android:name="org.chromium.intent.action.INSTALL_WEB_APK"/> </intent-filter> # DIFF-ANCHOR: 875093ee </service> # DIFF-ANCHOR: 878b448b - <service # DIFF-ANCHOR: 8fc286d0 - android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskGcmTaskService" - android:exported="true" - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"> - <intent-filter> # DIFF-ANCHOR: 99686c45 - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/> - </intent-filter> # DIFF-ANCHOR: 99686c45 - </service> # DIFF-ANCHOR: 8fc286d0 <service # DIFF-ANCHOR: a550decc android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskJobService" android:exported="false"
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java index 6f97991..4a8ce50 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java
@@ -72,7 +72,7 @@ // Add mediator as observer so it can use model changes as signal for accessory visibility. mModel.set(OBFUSCATED_CHILD_AT_CALLBACK, this::onSuggestionObfuscatedAt); - mModel.set(SHOW_KEYBOARD_CALLBACK, this::closeSheet); + mModel.set(SHOW_KEYBOARD_CALLBACK, this::onKeyboardRequested); mModel.set(SHEET_OPENER_ITEM, new SheetOpenerBarItem(sheetOpenerCallbacks)); mModel.set(ANIMATION_LISTENER, mVisibilityDelegate::onBarFadeInAnimationEnd); if (ChromeFeatureList.isEnabled(ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY)) { @@ -298,6 +298,12 @@ closeSheet(); } + private void onKeyboardRequested() { + // Return early if the button was clicked twice and the active tab was already reset. + if (mTabSwitcher.getActiveTab() == null) return; + closeSheet(); + } + private void closeSheet() { assert mTabSwitcher.getActiveTab() != null; ManualFillingMetricsRecorder.recordSheetTrigger(
diff --git a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java index e6c2c8a..d6f34ed 100644 --- a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java +++ b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java
@@ -10,6 +10,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -23,6 +24,7 @@ import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.HAS_SUGGESTIONS; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.OBFUSCATED_CHILD_AT_CALLBACK; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.SHEET_TITLE; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.SHOW_KEYBOARD_CALLBACK; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.SHOW_SWIPING_IPH; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.SKIP_CLOSING_ANIMATION; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.VISIBLE; @@ -592,6 +594,22 @@ verify(mMockVisibilityDelegate).onBarFadeInAnimationEnd(); } + @Test + public void testDoubleTappingCloseButtonHasNoEffect() { + setTabs(new KeyboardAccessoryData.Tab[] {mTestTab}); + setActiveTab(mTestTab); + + // First click should dismiss. + mModel.get(SHOW_KEYBOARD_CALLBACK).run(); + setActiveTab(null); // Simulate the tab was reset by the click. + verify(mMockVisibilityDelegate, atLeast(1)).onChangeAccessorySheet(0); + verify(mMockVisibilityDelegate).onCloseAccessorySheet(); + + // Second click should not crash but be noop. + verifyNoMoreInteractions(mMockVisibilityDelegate); + mModel.get(SHOW_KEYBOARD_CALLBACK).run(); + } + private int getGenerationImpressionCount() { return RecordHistogram.getHistogramValueCountForTesting( ManualFillingMetricsRecorder.UMA_KEYBOARD_ACCESSORY_ACTION_IMPRESSION,
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml index e861de3a..e4926db 100644 --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml
@@ -1009,15 +1009,6 @@ android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> - <!-- Background Task Scheduler GCM task service --> - <service android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskGcmTaskService" - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" - android:exported="true"> - <intent-filter> - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" /> - </intent-filter> - </service> - <!-- Background Task Scheduler alarm receiver --> <receiver android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskBroadcastReceiver" android:exported="false" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java index 9c5d0b2..a517d1f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java
@@ -6,6 +6,7 @@ import org.chromium.base.FeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.MutableFlagWithSafeDefault; /** * Self-documenting feature class for bookmarks. @@ -53,6 +54,9 @@ static final String AUTODISMISS_ENABLED_PARAM_NAME = "autodismiss_enabled"; static final String AUTODISMISS_LENGTH_PARAM_NAME = "autodismiss_length_ms"; + private static final MutableFlagWithSafeDefault sAndroidImprovedBookmarksFlag = + new MutableFlagWithSafeDefault(ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS, false); + public static boolean isImprovedSaveFlowEnabled() { return FeatureList.isInitialized() && ChromeFeatureList.isEnabled(ChromeFeatureList.BOOKMARKS_IMPROVED_SAVE_FLOW) @@ -106,4 +110,12 @@ ChromeFeatureList.BOOKMARKS_REFRESH, BOOKMARK_COMPACT_VISUALS_ENABLED, BOOKMARK_COMPACT_VISUALS_ENABLED_DEFAULT); } + + /** + * More visual changes to the bookmarks surfaces, with more thumbnails and a focus on search + * instead of folders/hierarchy. + */ + public static boolean isAndroidImprovedBookmarksEnabled() { + return sAndroidImprovedBookmarksFlag.isEnabled(); + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategy.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategy.java index a499719..4e6324d9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategy.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategy.java
@@ -13,7 +13,6 @@ import android.app.Activity; import android.content.res.Configuration; import android.graphics.Color; -import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; @@ -54,10 +53,14 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.function.BooleanSupplier; /** * CustomTabHeightStrategy for Partial Custom Tab. An instance of this class should be - * owned by the CustomTabActivity. + * owned by the CustomTabActivity. Refer to + * {@link + * https://docs.google.com/document/d/1YuFXHai2JECqAPE_HgamcKid3VTR05GAvJcyb4jaL6o/edit?usp=sharing} + * for detailed inner workings and issues addressed along the way. */ public class PartialCustomTabHeightStrategy extends PartialCustomTabBaseStrategy implements ConfigurationChangedObserver, ValueAnimator.AnimatorUpdateListener, @@ -90,12 +93,12 @@ private final AnimatorListener mSpinnerFadeoutAnimatorListener; private final int mCachedHandleHeight; - private final Rect mFullscreenRestoreRect = new Rect(); private @Px int mFullyExpandedAdjustmentHeight; private TabAnimator mTabAnimator; private int mShadowOffset; private boolean mDrawOutlineShadow; + private BooleanSupplier mIsFullscreen; private @HeightStatus int mStatus = HeightStatus.INITIAL_HEIGHT; @@ -170,6 +173,7 @@ mPositionUpdater = mVersionCompat::updatePosition; + mIsFullscreen = fullscreenManager::getPersistentFullscreenMode; mIsTablet = isTablet; mHeight = MATCH_PARENT; mWidth = MATCH_PARENT; @@ -448,7 +452,7 @@ private void positionAtHeight(int height) { WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - if (isFullHeight()) { + if (isFullHeight() || isFullscreen()) { attrs.height = MATCH_PARENT; attrs.y = 0; } else { @@ -506,9 +510,7 @@ } private boolean isFullscreen() { - WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - return attrs.x == 0 && attrs.y == 0 && attrs.width == MATCH_PARENT - && attrs.height == MATCH_PARENT; + return mIsFullscreen.getAsBoolean(); } private void updateWindowPos(@Px int y, boolean userGesture) { @@ -809,40 +811,35 @@ @Override public void onEnterFullscreen(Tab tab, FullscreenOptions options) { - if (isFullscreen()) return; - WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - mFullscreenRestoreRect.set(attrs.x, attrs.y, attrs.width, attrs.height); - attrs.x = 0; - attrs.y = 0; - attrs.width = MATCH_PARENT; - attrs.height = MATCH_PARENT; - mActivity.getWindow().setAttributes(attrs); + // Enter fullscreen i.e. (x, y, height, width) = (0, 0, MATCH_PARENT, MATCH_PARENT) + assert isFullscreen() : "Fullscreen mode should be on"; + positionAtHeight(/*height=*/0); // |height| is not used setTopMargins(0, 0); maybeInvokeResizeCallback(); } @Override public void onExitFullscreen(Tab tab) { - if (!isFullscreen()) return; - WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes(); - attrs.x = mFullscreenRestoreRect.left; - attrs.y = mFullscreenRestoreRect.top; - attrs.width = mFullscreenRestoreRect.right; - attrs.height = mFullscreenRestoreRect.bottom; - mActivity.getWindow().setAttributes(attrs); + // System UI (navigation/status bar) dimensions still remain zero at this point. + // For the restoring job that needs these values, we wait till they get reported + // correctly by posting the task instead of executing them right away. + new Handler().post(this::restoreWindow); + } + + // Restore the window upon exiting fullscreen. + private void restoreWindow() { + initializeHeight(); updateShadowOffset(); maybeInvokeResizeCallback(); // Status/navigation bar are not restored on T+. This makes host app visible // at the area. To work around this, simulate user dragging the tab by 1 pixel // upon exiting fullscreen. - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.S) { - int startY = attrs.y; - new Handler().post(() -> { - onDragStart(startY); - onDragMove(startY + 1); - onDragEnd(0); - }); + if (!isFullHeight() && Build.VERSION.SDK_INT > Build.VERSION_CODES.S) { + int startY = mActivity.getWindow().getAttributes().y; + onDragStart(startY); + onDragMove(startY + 1); + onDragEnd(0); } } @@ -876,6 +873,11 @@ mToolbarColor = toolbarColor; } + @VisibleForTesting + void setFullscreenSupplierForTesting(BooleanSupplier fullscreen) { + mIsFullscreen = fullscreen; + } + // Wrapper around Animator class, also holding the information to use after the animation ends. private static class TabAnimator { private final ValueAnimator mAnimator;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java index a83385a..c24d54a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.metrics.PackageMetrics; import org.chromium.chrome.browser.metrics.WebApkUninstallUmaTracker; import org.chromium.chrome.browser.notifications.channels.ChannelsUpdater; +import org.chromium.chrome.browser.ntp.FeedPositionUtils; import org.chromium.chrome.browser.offlinepages.measurements.OfflineMeasurementsBackgroundTask; import org.chromium.chrome.browser.omnibox.voice.AssistantVoiceSearchService; import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory; @@ -256,7 +257,7 @@ FeatureNotificationGuideService.setDelegate(new FeatureNotificationGuideDelegate()); PrivacyPreferencesManagerImpl.getInstance().onNativeInitialized(); - + refreshCachedSegmentationResult(); setProcessStateSummaryForAnrs(true); } @@ -416,9 +417,7 @@ }); deferredStartupHandler.addDeferredTask( - () - -> BackgroundTaskSchedulerFactory.getScheduler().checkForOSUpgrade( - ContextUtils.getApplicationContext())); + () -> BackgroundTaskSchedulerFactory.getScheduler().doMaintenance()); deferredStartupHandler.addDeferredTask( () -> MediaViewerUtils.updateMediaLauncherActivityEnabled()); @@ -665,6 +664,11 @@ } } + private void refreshCachedSegmentationResult() { + FeedPositionUtils.cacheSegmentationResult(); + QueryTileUtils.cacheSegmentationResult(); + } + private void startBindingManagementIfNeeded() { // Moderate binding doesn't apply to low end devices. if (SysUtils.isLowEndDevice()) return;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/FeedPositionUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/FeedPositionUtils.java index 26db34db..08e15a3 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/FeedPositionUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/FeedPositionUtils.java
@@ -9,9 +9,10 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.segmentation_platform.SegmentationPlatformServiceFactory; -import org.chromium.components.segmentation_platform.SegmentSelectionResult; import org.chromium.components.segmentation_platform.SegmentationPlatformService; import org.chromium.components.segmentation_platform.proto.SegmentationProto.SegmentId; @@ -107,24 +108,36 @@ } /** - * Called to get segment selection result from segmentation platform service. + * Called to get segment selection result from shared prefs. * @return The segmentation result. */ - private static @FeedPositionSegmentationResult int getSegmentationResult() { - @FeedPositionSegmentationResult - int resultEnum; + public static @FeedPositionSegmentationResult int getSegmentationResult() { + return SharedPreferencesManager.getInstance().readInt( + ChromePreferenceKeys.SEGMENTATION_FEED_ACTIVE_USER, + FeedPositionSegmentationResult.IS_NON_FEED_ACTIVE_USER); + } + + /** + * Called to cache segment selection result from segmentation platform service into prefs for + * synchronous API calls. Called early during initialization. + */ + public static void cacheSegmentationResult() { SegmentationPlatformService segmentationPlatformService = SegmentationPlatformServiceFactory.getForProfile( Profile.getLastUsedRegularProfile()); - SegmentSelectionResult result = - segmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY); - if (!result.isReady) { - resultEnum = FeedPositionSegmentationResult.UNINITIALIZED; - } else if (result.selectedSegment == SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER) { - resultEnum = FeedPositionSegmentationResult.IS_FEED_ACTIVE_USER; - } else { - resultEnum = FeedPositionSegmentationResult.IS_NON_FEED_ACTIVE_USER; - } - return resultEnum; + segmentationPlatformService.getSelectedSegment(FEED_USER_SEGMENT_KEY, result -> { + @FeedPositionSegmentationResult + int resultEnum; + if (!result.isReady) { + resultEnum = FeedPositionSegmentationResult.UNINITIALIZED; + } else if (result.selectedSegment + == SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER) { + resultEnum = FeedPositionSegmentationResult.IS_FEED_ACTIVE_USER; + } else { + resultEnum = FeedPositionSegmentationResult.IS_NON_FEED_ACTIVE_USER; + } + SharedPreferencesManager.getInstance().writeInt( + ChromePreferenceKeys.SEGMENTATION_FEED_ACTIVE_USER, resultEnum); + }); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/query_tiles/QueryTileUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/query_tiles/QueryTileUtils.java index fbc417e..e2a3bee 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/query_tiles/QueryTileUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/query_tiles/QueryTileUtils.java
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.segmentation_platform.SegmentationPlatformServiceFactory; -import org.chromium.components.segmentation_platform.SegmentSelectionResult; import org.chromium.components.segmentation_platform.SegmentationPlatformService; import org.chromium.components.segmentation_platform.proto.SegmentationProto.SegmentId; @@ -241,7 +240,7 @@ } /** - * Called to get segment selection result from segmentation platform service. + * Called to get segment selection result from shared prefs. * @return The segmentation result. */ private static @ShowQueryTilesSegmentationResult int getSegmentationResult() { @@ -249,19 +248,9 @@ @ShowQueryTilesSegmentationResult int segmentationResult; if (sSegmentationResultsForTesting == -1) { - SegmentationPlatformService segmentationPlatformService = - SegmentationPlatformServiceFactory.getForProfile( - Profile.getLastUsedRegularProfile()); - SegmentSelectionResult result = segmentationPlatformService.getCachedSegmentResult( - QUERY_TILES_SEGMENTATION_PLATFORM_KEY); - if (!result.isReady) { - segmentationResult = ShowQueryTilesSegmentationResult.UNINITIALIZED; - } else if (result.selectedSegment - == SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_QUERY_TILES) { - segmentationResult = ShowQueryTilesSegmentationResult.SHOW; - } else { - segmentationResult = ShowQueryTilesSegmentationResult.DONT_SHOW; - } + segmentationResult = SharedPreferencesManager.getInstance().readInt( + ChromePreferenceKeys.SEGMENTATION_SHOW_QUERY_TILES, + ShowQueryTilesSegmentationResult.DONT_SHOW); } else { segmentationResult = sSegmentationResultsForTesting; } @@ -270,6 +259,32 @@ } /** + * Called to cache segment selection result from segmentation platform service into shared + * prefs. + */ + public static void cacheSegmentationResult() { + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.QUERY_TILES_SEGMENTATION)) return; + SegmentationPlatformService segmentationPlatformService = + SegmentationPlatformServiceFactory.getForProfile( + Profile.getLastUsedRegularProfile()); + segmentationPlatformService.getSelectedSegment( + QUERY_TILES_SEGMENTATION_PLATFORM_KEY, result -> { + @ShowQueryTilesSegmentationResult + int segmentationResult; + if (!result.isReady) { + segmentationResult = ShowQueryTilesSegmentationResult.UNINITIALIZED; + } else if (result.selectedSegment + == SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_QUERY_TILES) { + segmentationResult = ShowQueryTilesSegmentationResult.SHOW; + } else { + segmentationResult = ShowQueryTilesSegmentationResult.DONT_SHOW; + } + SharedPreferencesManager.getInstance().writeInt( + ChromePreferenceKeys.SEGMENTATION_SHOW_QUERY_TILES, segmentationResult); + }); + } + + /** * Updates the display status for query tiles and set the next decision time. * @param showQueryTiles Whether query tiles should be displayed. */
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java index 7ead8e0..945a1022 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java
@@ -136,7 +136,7 @@ } @Override - public void checkForOSUpgrade(Context context) {} + public void doMaintenance() {} @Override public void reschedule(Context context) {}
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategyTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategyTest.java index 49f19f4..5d3c0f5 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategyTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/PartialCustomTabHeightStrategyTest.java
@@ -77,6 +77,8 @@ private static final int FIND_TOOLBAR_COLOR = 3755; private static final int PCCT_TOOLBAR_COLOR = 12111; + private boolean mFullscreen; + private PartialCustomTabHeightStrategy createPcctBackgroundDisabled() { PartialCustomTabHeightStrategy pcct = new PartialCustomTabHeightStrategy( mPCCTTestRule.mActivity, 500, false, mPCCTTestRule.mOnResizedCallback, @@ -803,21 +805,68 @@ @Test public void enterAndExitHtmlFullscreen() { PartialCustomTabHeightStrategy strategy = createPcctAtHeight(500); - assertFalse(isFullscreen()); + assertFalse(getWindowAttributes().isFullscreen()); int height = getWindowAttributes().height; + strategy.setFullscreenSupplierForTesting(() -> mFullscreen); + + mFullscreen = true; strategy.onEnterFullscreen(null, null); - assertTrue(isFullscreen()); + assertTrue(getWindowAttributes().isFullscreen()); verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(DEVICE_HEIGHT), eq(DEVICE_WIDTH)); clearInvocations(mPCCTTestRule.mOnResizedCallback); + mFullscreen = false; strategy.onExitFullscreen(null); - assertFalse(isFullscreen()); + waitForAnimationToFinish(); + assertFalse(getWindowAttributes().isFullscreen()); assertEquals(height, getWindowAttributes().height); verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(height), anyInt()); } @Test + public void fullscreenInLandscapeMode() { + PartialCustomTabHeightStrategy strategy = createPcctAtHeight(500); + int height = getWindowAttributes().height; + + mPCCTTestRule.mConfiguration.orientation = Configuration.ORIENTATION_LANDSCAPE; + strategy.onConfigurationChanged(mPCCTTestRule.mConfiguration); + + strategy.setFullscreenSupplierForTesting(() -> mFullscreen); + + mFullscreen = true; + strategy.onEnterFullscreen(null, null); + mFullscreen = false; + strategy.onExitFullscreen(null); + waitForAnimationToFinish(); + + assertEquals(0, getWindowAttributes().y); + } + + @Test + public void rotateAcrossFullscreenMode() { + PartialCustomTabHeightStrategy strategy = createPcctAtHeight(500); + int height = getWindowAttributes().height; + + mPCCTTestRule.mConfiguration.orientation = Configuration.ORIENTATION_LANDSCAPE; + strategy.onConfigurationChanged(mPCCTTestRule.mConfiguration); + + strategy.setFullscreenSupplierForTesting(() -> mFullscreen); + + mFullscreen = true; + strategy.onEnterFullscreen(null, null); + + mPCCTTestRule.mConfiguration.orientation = Configuration.ORIENTATION_PORTRAIT; + strategy.onConfigurationChanged(mPCCTTestRule.mConfiguration); + + mFullscreen = false; + strategy.onExitFullscreen(null); + waitForAnimationToFinish(); + + assertTabIsAtInitialPos(getWindowAttributes()); + } + + @Test public void dragToTheSameInitialY() { PartialCustomTabHeightStrategy strategy = createPcctAtHeight(500); mPCCTTestRule.verifyWindowFlagsSet(); @@ -892,12 +941,6 @@ verify(mPCCTTestRule.mOnResizedCallback).onResized(eq(INITIAL_HEIGHT), anyInt()); } - private boolean isFullscreen() { - WindowManager.LayoutParams attrs = - mPCCTTestRule.mAttributeResults.get(mPCCTTestRule.mAttributeResults.size() - 1); - return attrs.isFullscreen(); - } - private static void waitForAnimationToFinish() { shadowOf(Looper.getMainLooper()).idle(); ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/FeedPositionUtilUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/FeedPositionUtilUnitTest.java index ea2928fd1..842648bb 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/FeedPositionUtilUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/FeedPositionUtilUnitTest.java
@@ -4,7 +4,8 @@ package org.chromium.chrome.browser.ntp; -import static org.mockito.Mockito.when; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.chromium.chrome.browser.ntp.FeedPositionUtils.FEED_USER_SEGMENT_KEY; @@ -18,9 +19,11 @@ import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; +import org.chromium.base.Callback; import org.chromium.base.FeatureList; import org.chromium.base.FeatureList.TestValues; import org.chromium.base.test.BaseRobolectricTestRunner; @@ -51,8 +54,7 @@ MockitoAnnotations.initMocks(this); Profile.setLastUsedProfileForTesting(mProfile); SegmentationPlatformServiceFactory.setForTests(mSegmentationPlatformService); - when(mSegmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY)) - .thenReturn(new SegmentSelectionResult(false, null)); + setSegmentationResult(new SegmentSelectionResult(false, null)); } @After @@ -60,6 +62,18 @@ FeatureList.setTestValues(null); } + private void setSegmentationResult(SegmentSelectionResult segmentSelectionResult) { + Mockito.doAnswer(invocation -> { + Callback<SegmentSelectionResult> callback = invocation.getArgument(1); + callback.onResult(segmentSelectionResult); + return null; + }) + .when(mSegmentationPlatformService) + .getSelectedSegment(eq(FEED_USER_SEGMENT_KEY), any()); + + FeedPositionUtils.cacheSegmentationResult(); + } + @Test @SmallTest public void testIsFeedPushDownSmallEnabled() { @@ -69,9 +83,8 @@ setFeedPositionFlags(FeedPositionUtils.PUSH_DOWN_FEED_SMALL, "active"); Assert.assertFalse(FeedPositionUtils.isFeedPushDownSmallEnabled()); - when(mSegmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY)) - .thenReturn(new SegmentSelectionResult( - true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); + setSegmentationResult(new SegmentSelectionResult( + true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); Assert.assertTrue(FeedPositionUtils.isFeedPushDownSmallEnabled()); } @@ -84,9 +97,8 @@ setFeedPositionFlags(FeedPositionUtils.PUSH_DOWN_FEED_SMALL, "active"); Assert.assertFalse(FeedPositionUtils.isFeedPushDownLargeEnabled()); - when(mSegmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY)) - .thenReturn(new SegmentSelectionResult( - true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); + setSegmentationResult(new SegmentSelectionResult( + true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); Assert.assertTrue(FeedPositionUtils.isFeedPushDownLargeEnabled()); } @@ -99,14 +111,12 @@ setFeedPositionFlags(FeedPositionUtils.PULL_UP_FEED, "non-active"); Assert.assertFalse(FeedPositionUtils.isFeedPullUpEnabled()); - when(mSegmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY)) - .thenReturn(new SegmentSelectionResult( - true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); + setSegmentationResult(new SegmentSelectionResult( + true, SegmentId.OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER)); Assert.assertFalse(FeedPositionUtils.isFeedPullUpEnabled()); - when(mSegmentationPlatformService.getCachedSegmentResult(FEED_USER_SEGMENT_KEY)) - .thenReturn( - new SegmentSelectionResult(true, SegmentId.OPTIMIZATION_TARGET_UNKNOWN)); + setSegmentationResult( + new SegmentSelectionResult(true, SegmentId.OPTIMIZATION_TARGET_UNKNOWN)); Assert.assertTrue(FeedPositionUtils.isFeedPullUpEnabled()); }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java index f41bbae7..78b0ffc 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java
@@ -78,7 +78,7 @@ } @Override - public void checkForOSUpgrade(Context context) {} + public void doMaintenance() {} @Override public void reschedule(Context context) {}
diff --git a/chrome/android/trichrome.gni b/chrome/android/trichrome.gni index c8cb5ca7..5e2d33c 100644 --- a/chrome/android/trichrome.gni +++ b/chrome/android/trichrome.gni
@@ -161,7 +161,7 @@ if (_include_primary_support) { deps += [ - "//chrome/android:chrome_public_v8_assets", + "//gin:v8_snapshot_assets", "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", ] loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] @@ -171,7 +171,7 @@ "//third_party/crashpad/crashpad/handler:" + "crashpad_handler_trampoline($android_secondary_abi_toolchain)" deps += [ - "//android_webview:v8_snapshot_secondary_abi_assets", + "//gin:v8_snapshot_secondary_abi_assets", _trampoline, ] _secondary_out_dir = get_label_info(_trampoline, "root_out_dir")
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h index e24dba6..21d0b8b 100644 --- a/chrome/app/chrome_command_ids.h +++ b/chrome/app/chrome_command_ids.h
@@ -387,6 +387,9 @@ #define IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS 51016 #define IDC_BOOKMARK_BAR_TRACK_PRICE_FOR_SHOPPING_BOOKMARK 51017 #define IDC_BOOKMARK_BAR_UNTRACK_PRICE_FOR_SHOPPING_BOOKMARK 51018 +#define IDC_BOOKMARK_BAR_ADD_TO_BOOKMARKS_BAR 51019 +#define IDC_BOOKMARK_BAR_REMOVE_FROM_BOOKMARKS_BAR 51020 + // Context menu items for Sharing #define IDC_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_SINGLE_DEVICE 51030 #define IDC_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_MULTIPLE_DEVICES 51031
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index bc2506fa..959ab56 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -6028,16 +6028,18 @@ <message name="IDS_PARENT_ACCESS_WEBVIEW_LOADING_MESSAGE" desc="Message shown while the parent access screen is loading."> Please wait... </message> - <message name="IDS_PARENT_ACCESS_ERROR_TITLE" desc="Title for the parent access dialog when an error has occurred."> + + <!-- Strings shared among supervised user experiences --> + <message name="IDS_SUPERVISED_USER_ERROR_TITLE" desc="Title for the UI shown to supervised users when an error has occurred."> An error occurred </message> - <message name="IDS_PARENT_ACCESS_ERROR_DESCRIPTION" desc="Message shown if the parent access dialog has failed to load for any reason."> + <message name="IDS_SUPERVISED_USER_ERROR_DESCRIPTION" desc="Message shown if UI shown to supervised users has failed to load for any reason."> Please try again later </message> - <message name="IDS_PARENT_ACCESS_OFFLINE_HEADING" desc="Heading string shown in the parent access flow when the network is not available."> + <message name="IDS_SUPERVISED_USER_OFFLINE_TITLE" desc="Heading string shown in the UI shown to supervised users when the network is not available."> Can’t connect to the internet </message> - <message name="IDS_PARENT_ACCESS_OFFLINE_DESCRIPTION" desc="Description shown in the parent access flow when the network is not available."> + <message name="IDS_SUPERVISED_USER_OFFLINE_DESCRIPTION" desc="Description shown in the UI shown to supervised users when the network is not available."> Check your internet connection </message>
diff --git a/chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_ERROR_DESCRIPTION.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_ERROR_DESCRIPTION.png.sha1 similarity index 100% rename from chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_ERROR_DESCRIPTION.png.sha1 rename to chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_ERROR_DESCRIPTION.png.sha1
diff --git a/chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_ERROR_TITLE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_ERROR_TITLE.png.sha1 similarity index 100% rename from chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_ERROR_TITLE.png.sha1 rename to chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_ERROR_TITLE.png.sha1
diff --git a/chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_OFFLINE_DESCRIPTION.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_OFFLINE_DESCRIPTION.png.sha1 similarity index 100% rename from chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_OFFLINE_DESCRIPTION.png.sha1 rename to chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_OFFLINE_DESCRIPTION.png.sha1
diff --git a/chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_OFFLINE_HEADING.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_OFFLINE_TITLE.png.sha1 similarity index 100% rename from chrome/app/chromeos_strings_grdp/IDS_PARENT_ACCESS_OFFLINE_HEADING.png.sha1 rename to chrome/app/chromeos_strings_grdp/IDS_SUPERVISED_USER_OFFLINE_TITLE.png.sha1
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp index 0e81fd8..c8dcbe73 100644 --- a/chrome/app/extensions_strings.grdp +++ b/chrome/app/extensions_strings.grdp
@@ -370,6 +370,9 @@ <message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description."> No description provided </message> + <message name="IDS_EXTENSIONS_OPENS_IN_NEW_TAB" desc="ARIA (accessibility) label describing a link which opens in a new tab."> + Opens in new tab + </message> <message name="IDS_EXTENSIONS_PACK_DIALOG_TITLE" desc="The title of the dialog to pack an extension."> Pack extension </message>
diff --git a/chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_OPENS_IN_NEW_TAB.png.sha1 b/chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_OPENS_IN_NEW_TAB.png.sha1 new file mode 100644 index 0000000..c567b8c --- /dev/null +++ b/chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_OPENS_IN_NEW_TAB.png.sha1
@@ -0,0 +1 @@ +04a8afe13f4117d59e0291b7e238078d458957f4 \ No newline at end of file
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 7ecdc05..60ca776 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -7366,6 +7366,15 @@ <message name="IDS_UNDO_BOOKMARK_DELETION" desc="Label for the bookmarks side panel undo button displayed after deleting one or more bookmarks"> Undo </message> + <message name="IDS_BOOKMARKS_MOVE_TO_BOOKMARKS_BAR" desc="Label for the move to bookmarks bar folder menu option"> + Move to Bookmarks Bar folder + </message> + <message name="IDS_BOOKMARKS_MOVE_TO_ALL_BOOKMARKS" desc="Label for the move to all bookmarks menu option"> + Move to All Bookmarks + </message> + <message name="IDS_BOOKMARKS_RENAME" desc="Label for the rename bookmarks menu option"> + Rename + </message> <!-- Read Anything strings --> <!-- TODO(crbug.com/1266555): Add final strings and make them translateable. -->
diff --git a/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_ALL_BOOKMARKS.png.sha1 b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_ALL_BOOKMARKS.png.sha1 new file mode 100644 index 0000000..9e87f1b --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_ALL_BOOKMARKS.png.sha1
@@ -0,0 +1 @@ +5158eb99b5042c44e8b6d6dd2a71faf8c612d73d \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_BOOKMARKS_BAR.png.sha1 b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_BOOKMARKS_BAR.png.sha1 new file mode 100644 index 0000000..c4c16f5 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_MOVE_TO_BOOKMARKS_BAR.png.sha1
@@ -0,0 +1 @@ +b9a9cfb2e80065bc144a81dc68a50db90bd929c0 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_BOOKMARKS_RENAME.png.sha1 b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_RENAME.png.sha1 new file mode 100644 index 0000000..25db6d7 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_BOOKMARKS_RENAME.png.sha1
@@ -0,0 +1 @@ +bba6df363773cd71ac45eea5eba1a6186fce2dc6 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings.grdp b/chrome/app/os_settings_search_tag_strings.grdp index f82df9b..bb2e7a76 100644 --- a/chrome/app/os_settings_search_tag_strings.grdp +++ b/chrome/app/os_settings_search_tag_strings.grdp
@@ -143,6 +143,22 @@ <message name="IDS_OS_SETTINGS_TAG_VPN" desc="Text for search result item which, when clicked, navigates the user to VPN settings."> VPN </message> + <!-- TODO(b/260277007): Remove translateble false and upload snapshots when strings finalized. --> + <message translateable="false" name="IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS" desc="Text for search result item which, when clicked, navigates the user to Audio settings."> + Audio + </message> + <message translateable="false" name="IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT1" desc="Text for search result item which, when clicked, navigates the user to Audio settings. Alternative phrase for: 'Audio'."> + Volume + </message> + <message translateable="false" name="IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT2" desc="Text for search result item which, when clicked, navigates the user to Audio settings. Alternative phrase for: 'Audio'."> + Sound + </message> + <message translateable="false" name="IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT3" desc="Text for search result item which, when clicked, navigates the user to Audio settings. Alternative phrase for: 'Audio'."> + Speakers + </message> + <message translateable="false" name="IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT4" desc="Text for search result item which, when clicked, navigates the user to Audio settings. Alternative phrase for: 'Audio'."> + Microphone + </message> <message name="IDS_OS_SETTINGS_TAG_AUTO_CONNECT_NETWORK" desc="Text for search result item which, when clicked, navigates the user to settings to toggle whether the device auto-connects to a network. Alternate phrase for: 'Auto connect to network'"> Automatically connect to network </message>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index 0f3b2ee..7432ea3 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -1842,11 +1842,11 @@ </message> <!-- Privacy Sandbox Settings 4 - Privacy & Security Page --> - <message name="IDS_SETTINGS_AD_PRIVACY_LINK_ROW_LABEL" translateable="false" desc="Label for row linking to the Ad Privacy preferences page in the Privacy & Security Page."> - Donec semper + <message name="IDS_SETTINGS_AD_PRIVACY_LINK_ROW_LABEL" desc="A new label that appears on the Privacy and security page (chrome://settings/privacy) between 'Third-party cookies' and 'Security'. This same text is used as a page title for the new Ad privacy section. This same pair of words is used in the Consent and Notice flow and must be consistently translated in both contexts. We mean privacy associated with ads, and not privacy from ads. **** CONTEXT PRIVACY SANDBOX **** Chrome’s Privacy Sandbox initiative 1) deprecates third-party cookies in Chrome, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an 'Ad privacy' page in Chrome settings. For an equivalent structure, see 'Security' on chrome://settings/privacy that opens chrome://settings/security. Likewise, 'Ad privacy' on chrome://settings/privacy will open chrome://settings/AdPrivacy."> + Ad privacy </message> - <message name="IDS_SETTINGS_AD_PRIVACY_LINK_ROW_SUB_LABEL" translateable="false" desc="Sub label for row linking to the Ad Privacy preferences page in the Privacy & Security Page."> - Fusce purus nibh, dictum sit amet mi in, fringilla ullamcorper tortor + <message name="IDS_SETTINGS_AD_PRIVACY_LINK_ROW_SUB_LABEL" desc="A string that describes 'Ad privacy', the label that appears just above it. For context, this new 'Ad privacy' / 'Customize the info...' pair of strings is similar to the existing 'Clear browsing data' / 'Clear history, cookies...' that you find on chrome://settings/privacy. * 'Customize': From our word list: 'This word describes user agency in refining their personalized recommendations, elements of the experience, or sometimes products'. Please don't confuse with 'personalize', which we reserve to mean: '...when Google provides recommendations and other content for users based on their data'. **** CONTEXT PRIVACY SANDBOX **** Chrome’s Privacy Sandbox initiative 1) deprecates third-party cookies in Chrome, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an 'Ad privacy' page in Chrome settings. For an equivalent structure, see 'Security' on chrome://settings/privacy that opens chrome://settings/security. Likewise, 'Ad privacy' on chrome://settings/privacy will open chrome://settings/AdPrivacy."> + Customize the info used by sites to show you ads </message> <!-- Privacy Sandbox Settings 4 - Ad Privacy Page --> @@ -1927,6 +1927,9 @@ <message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE" desc="A button associated with each of the sites in the user's 'Site-suggested ads' list. If the user clicks 'Block', that site will get moved to the 'Sites you blocked' page."> Block </message> + <message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL" desc="A button label read by screen readers that indicates which site will get blocked. The list is of sites the user has recently visited and that use the Site-suggested ads API to suggest ads to other sites as the user continues browsing."> + Block <ph name="DOMAIN">$1<ex>example.com</ex></ph> + </message> <message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_HEADING" desc="A label that serves as a button to open the 'Sites you blocked' page."> Sites you blocked </message> @@ -1939,6 +1942,9 @@ <message name="IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE" desc="A button associated with each of the user's blocked sites. When the user clicks 'Add', it makes that site eligible. Clicking 'Add' doesn't automatically put the added site back onto the list of 'Sites'. For that to happen, a user would have to browse to that site again and the site would have to use the Site-suggested ads to save interests for this user."> Add </message> + <message name="IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL" desc="A button label read by screen readers that indicates which site will get added back to the pool of potential sites."> + Add <ph name="DOMAIN">$1<ex>example.com</ex></ph> + </message> <message name="IDS_SETTINGS_FLEDGE_PAGE_FOOTER" desc="This footer helps the user understand that this setting is just one signal among others that affect whether this user sees personalized ads on a site. We define 'personalize' as 'when Google provides recommendations and other content for users based on their data'. At a high level, there are 4 things that affect whether an ad is personalized in this context: * 'this setting' refers to the 'Site-suggested ads' setting. The user is on this page. * 'Ad topics': this is a link to the other new ad setting Chrome is launching and that sites can use to personalize ads a user sees. * 'cookie settings': this is a link to the cookies control section in Chrome settings. The Privacy Sandbox project deprecates third-party cookies, but it's a process, and we're launching new functionality that will replace important functionality of cookies. Until third-party cookies are deprecated, the two systems remain active in Chrome. * 'site you're viewing personalizes ads': When a user engages with a site, Chrome has no control over whether that site shows the user personalized ads. Imagine you visit www.interesting-site.com and they know a lot about you already based on previous visits. They can personalize content and ads to you if they like. They can use an ad-serving product, like Facebook or Google Ads to deliver personalized ads. They can also use the new Privacy Sandbox APIs (if they so choose) in order to get more information about the user that could be helpful to them in order to personalize ads. Those 2 APIs (settings, from the user's perspective), are 'Ad topics' and 'Site-suggested ads'."> As you browse, whether an ad you see is personalized depends on this setting, <ph name="BEGIN_LINK1"><a href="$1" target="_blank"></ph>Ad topics<ph name="LINK_END1"></a></ph>, your <ph name="BEGIN_LINK2"><a href="$2" target="_blank"></ph>cookie settings<ph name="LINK_END2"></a></ph>, and if the site you're viewing personalizes ads </message> @@ -3339,17 +3345,20 @@ <message name="IDS_SETTINGS_COOKIES_PAGE" desc="Title of the cookies settings page"> Cookies and other site data </message> - <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL" desc="Label of the link row that leads to the third-party cookies page" translateable="false"> - Nam condimentum + <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_PAGE_TITLE" desc="The title of a new page. Today, Chrome has a 'Cookies and other site data' page at chrome://settings/cookies. As part of the Privacy Sandbox project (see below), Chrome is deprecating third-party cookies but maintaining first-party cookies. As a step towards the ultimate deprecation of third-party cookies, we're first separating them from other forms of 'site data', making it easier to eventually remove this page completely. Cookies are often used for honorable objectives, and the difference between first and third-party cookies is important (see any of the many resources online such as https://termly.io/resources/articles/first-party-cookies-vs-third-party-cookies/."> + Third-party cookies </message> - <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_ENABLED" desc="Subabel for third-party cookies link row stating that third-party cookies are allowed with no exceptions" translateable="false"> - Enabled Vestibulum ante mi, feugiat eget velit id + <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL" desc="This text is the label of a page. Here, it serves as a button that opens the new page."> + Third-party cookies </message> - <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO" desc="Subabel for third-party cookies link row stating that third-party cookies are disabled in incognito mode with no exceptions" translateable="false"> - Disabled Incognito Vestibulum ante mi, feugiat eget velit id + <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_ENABLED" desc="1 of 3 possible states for the Third-party cookies setting. This text appears beneath the 'Third-party cookies' button label."> + Third-party cookies are allowed </message> - <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED" desc="Subabel for third-party cookies link row stating that third-party cookies are disabled with no exceptions" translateable="false"> - Disabled Vestibulum ante mi, feugiat eget velit id + <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO" desc="2 of 3 possible states for the Third-party cookies setting. This text appears beneath the 'Third-party cookies' button label."> + Third-party cookies are blocked in Incognito mode + </message> + <message name="IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED" desc="3 of 3 possible states for the Third-party cookies setting. This text appears beneath the 'Third-party cookies' button label."> + Third-party cookies are blocked </message> <message name="IDS_SETTINGS_COOKIES_CONTROLS" desc="Title of the general cookies control section."> General settings
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_LABEL.png.sha1 new file mode 100644 index 0000000..6f6aabcb --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_LABEL.png.sha1
@@ -0,0 +1 @@ +f6d6475c3695b5f688b5d57915cb110cfe863142 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_SUB_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_SUB_LABEL.png.sha1 new file mode 100644 index 0000000..6f6aabcb --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_AD_PRIVACY_LINK_ROW_SUB_LABEL.png.sha1
@@ -0,0 +1 @@ +f6d6475c3695b5f688b5d57915cb110cfe863142 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL.png.sha1 new file mode 100644 index 0000000..e3166b77 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL.png.sha1
@@ -0,0 +1 @@ +5d098410f06276fd9f53f99afeecf06c3c8242f4 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL.png.sha1 new file mode 100644 index 0000000..ac2e772 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL.png.sha1
@@ -0,0 +1 @@ +f8e3e667402bfbe294732178f8fbcfd2a805659d \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL.png.sha1 new file mode 100644 index 0000000..2b905f00 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL.png.sha1
@@ -0,0 +1 @@ +166171e53c21b4d06d1541a3a054308d738a159e \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED.png.sha1 new file mode 100644 index 0000000..8be7bc6 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED.png.sha1
@@ -0,0 +1 @@ +b11db98133c217715c69e251c03837395d542e42 \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO.png.sha1 new file mode 100644 index 0000000..5e78855 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO.png.sha1
@@ -0,0 +1 @@ +73c37fdbe36d552a2125d3505bdb71d0677c1baa \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_ENABLED.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_ENABLED.png.sha1 new file mode 100644 index 0000000..2b905f00 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_ENABLED.png.sha1
@@ -0,0 +1 @@ +166171e53c21b4d06d1541a3a054308d738a159e \ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_PAGE_TITLE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_PAGE_TITLE.png.sha1 new file mode 100644 index 0000000..2b905f00 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_THIRD_PARTY_COOKIES_PAGE_TITLE.png.sha1
@@ -0,0 +1 @@ +166171e53c21b4d06d1541a3a054308d738a159e \ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 265e8669b..0870372 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -5419,6 +5419,11 @@ flag_descriptions::kOmniboxShortBookmarkSuggestionsDescription, kOsAll, FEATURE_VALUE_TYPE(omnibox::kShortBookmarkSuggestions)}, + {"omnibox-square-suggest-icons", + flag_descriptions::kOmniboxSimplifiedUiSquareSuggestIconName, + flag_descriptions::kOmniboxSimplifiedUiSquareSuggestIconDescription, + kOsAll, FEATURE_VALUE_TYPE(omnibox::kSquareSuggestIcons)}, + {"omnibox-uniform-suggestion-height", flag_descriptions::kOmniboxSimplifiedUiUniformRowHeightName, flag_descriptions::kOmniboxSimplifiedUiUniformRowHeightDescription, kOsAll, @@ -9411,6 +9416,14 @@ kOsAll, FEATURE_VALUE_TYPE( autofill::features::kAutofillSuggestServerCardInsteadOfLocalCard)}, + +#if BUILDFLAG(IS_ANDROID) + {"android-improved-bookmarks", + flag_descriptions::kAndroidImprovedBookmarksName, + flag_descriptions::kAndroidImprovedBookmarksDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kBookmarksRefresh)}, +#endif // BUILDFLAG(IS_ANDROID) + // NOTE: Adding a new flag requires adding a corresponding entry to enum // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 8d495da9..051eae4f2 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -4442,6 +4442,7 @@ "../ui/webui/settings/ash/calculator/size_calculator_test_api.h", "../ui/webui/settings/ash/device_keyboard_handler_unittest.cc", "../ui/webui/settings/ash/device_name_handler_unittest.cc", + "../ui/webui/settings/ash/device_section_unittest.cc", "../ui/webui/settings/ash/device_storage_handler_unittest.cc", "../ui/webui/settings/ash/fast_pair_saved_devices_handler_unittest.cc", "../ui/webui/settings/ash/hierarchy_unittest.cc",
diff --git a/chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc b/chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc index cdb05f4..38007f384 100644 --- a/chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc +++ b/chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc
@@ -40,12 +40,18 @@ description: "Request sent to download firmware and VM image for " "a Bruschetta VM, which allows the user to run the VM." trigger: "User installing a Bruschetta VM" + internal { + contacts { + email: "clumptini+oncall@google.com" + } + } user_data: { type: ACCESS_TOKEN } data: "Request to download Bruschetta firmware and VM image. " "Sends cookies associated with the source to authenticate the user." destination: WEBSITE + last_reviewed: "2023-01-09" } policy { cookies_allowed: YES
diff --git a/chrome/browser/ash/crosapi/crosapi_util_unittest.cc b/chrome/browser/ash/crosapi/crosapi_util_unittest.cc index 7132cf1..113d494 100644 --- a/chrome/browser/ash/crosapi/crosapi_util_unittest.cc +++ b/chrome/browser/ash/crosapi/crosapi_util_unittest.cc
@@ -11,7 +11,7 @@ #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h" #include "chrome/browser/ash/profiles/profile_helper.h" #include "chrome/test/base/testing_profile.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "chromeos/ash/components/settings/cros_settings_names.h" #include "chromeos/crosapi/mojom/keystore_service.mojom.h" #include "components/user_manager/scoped_user_manager.h" @@ -70,8 +70,7 @@ TEST_F(CrosapiUtilTest, IsSigninProfileOrBelongsToAffiliatedUserSigninProfile) { TestingProfile::Builder builder; - builder.SetPath( - base::FilePath(ash::BrowserContextHelper::kSigninBrowserContextBaseName)); + builder.SetPath(base::FilePath(ash::kSigninBrowserContextBaseName)); std::unique_ptr<Profile> signin_profile = builder.Build(); EXPECT_TRUE(browser_util::IsSigninProfileOrBelongsToAffiliatedUser( @@ -113,8 +112,7 @@ TEST_F(CrosapiUtilTest, IsSigninProfileOrBelongsToAffiliatedUserLockScreenProfile) { TestingProfile::Builder builder; - builder.SetPath(base::FilePath( - ash::BrowserContextHelper::kLockScreenBrowserContextBaseName)); + builder.SetPath(base::FilePath(ash::kLockScreenBrowserContextBaseName)); std::unique_ptr<Profile> lock_screen_profile = builder.Build(); EXPECT_FALSE(browser_util::IsSigninProfileOrBelongsToAffiliatedUser(
diff --git a/chrome/browser/ash/lock_screen_apps/fake_lock_screen_profile_creator.cc b/chrome/browser/ash/lock_screen_apps/fake_lock_screen_profile_creator.cc index 9319bb6..a953fc5 100644 --- a/chrome/browser/ash/lock_screen_apps/fake_lock_screen_profile_creator.cc +++ b/chrome/browser/ash/lock_screen_apps/fake_lock_screen_profile_creator.cc
@@ -10,7 +10,7 @@ #include "base/location.h" #include "chrome/browser/extensions/test_extension_system.h" #include "chrome/test/base/testing_profile_manager.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" namespace lock_screen_apps { @@ -24,7 +24,7 @@ OnLockScreenProfileCreateStarted(); Profile* profile = profile_manager_->CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + ash::kLockScreenAppBrowserContextBaseName); extensions::TestExtensionSystem* extension_system = static_cast<extensions::TestExtensionSystem*>(
diff --git a/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc b/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc index f547dd3..313fd7b 100644 --- a/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc +++ b/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc
@@ -341,14 +341,15 @@ } case RequestType::kGetToken: { std::string sync_token; - const auto* token_list_entry = json_response->FindKey(kTokenEntry); - if (!token_list_entry || !token_list_entry->is_list()) { + const auto* token_list_entry = + json_response->GetDict().FindList(kTokenEntry); + if (!token_list_entry) { LOG(WARNING) << "Response does not contain list of sync tokens."; RecordEvent(InSessionPasswordSyncEvent::kErrorNoTokenInGetResponse); consumer_->OnApiCallFailed(ErrorType::kGetNoList); return; } - const base::Value::List& list_of_tokens = token_list_entry->GetList(); + const base::Value::List& list_of_tokens = *token_list_entry; if (list_of_tokens.size() > 0) { const auto* sync_token_value = list_of_tokens[0].FindKeyOfType(kToken, base::Value::Type::STRING);
diff --git a/chrome/browser/ash/printing/print_management/printing_manager_factory_unittest.cc b/chrome/browser/ash/printing/print_management/printing_manager_factory_unittest.cc index b72b823..25a8427 100644 --- a/chrome/browser/ash/printing/print_management/printing_manager_factory_unittest.cc +++ b/chrome/browser/ash/printing/print_management/printing_manager_factory_unittest.cc
@@ -7,7 +7,7 @@ #include "chrome/browser/ash/printing/print_management/printing_manager.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/test/base/testing_profile.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/history/core/browser/history_service.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" @@ -61,7 +61,7 @@ TEST(PrintingManagerFactoryTest, SigninProfileNoService) { content::BrowserTaskEnvironment task_environment; std::unique_ptr<Profile> signin_profile = - CreateProfile(ash::BrowserContextHelper::kSigninBrowserContextBaseName); + CreateProfile(ash::kSigninBrowserContextBaseName); EXPECT_EQ(nullptr, PrintingManagerFactory::GetForProfile(signin_profile.get())); @@ -69,8 +69,8 @@ TEST(PrintingManagerFactoryTest, LockScreenProfileNoService) { content::BrowserTaskEnvironment task_environment; - std::unique_ptr<Profile> lockscreen_profile = CreateProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + std::unique_ptr<Profile> lockscreen_profile = + CreateProfile(ash::kLockScreenAppBrowserContextBaseName); EXPECT_EQ(nullptr, PrintingManagerFactory::GetForProfile(lockscreen_profile.get()));
diff --git a/chrome/browser/ash/profiles/profile_helper.h b/chrome/browser/ash/profiles/profile_helper.h index 6e143e4..65cd92d 100644 --- a/chrome/browser/ash/profiles/profile_helper.h +++ b/chrome/browser/ash/profiles/profile_helper.h
@@ -64,6 +64,8 @@ // Returns the path that corresponds to the sign-in profile. static base::FilePath GetSigninProfileDir(); + // DEPRECATED: Please use + // ash::BrowserContextHelper::GetSigninBrowserContext() instead. // Returns OffTheRecord profile for use during signing phase. static Profile* GetSigninProfile(); @@ -78,11 +80,14 @@ // Returns user profile dir in a format [u-user_id_hash]. static base::FilePath GetUserProfileDir(const std::string& user_id_hash); + // DEPRECATED. Please use ash::IsSigninBrowserContext() instead. // Returns true if |profile| is the signin Profile. This can be used during // construction of the signin Profile to determine if that Profile is the // signin Profile. static bool IsSigninProfile(const Profile* profile); + // DEPRECATED. Please use ash::GetSigninBrowserContext() and see if it + // returns non-nullptr, instead. // Returns true if the signin profile has been initialized. static bool IsSigninProfileInitialized(); @@ -93,6 +98,7 @@ // screen. static base::FilePath GetLockScreenAppProfilePath(); + // DEPRECATED. Please use ash::IsLockScreenAppBrowserContext() instead. // Returns whether |profile| is the lock screen app profile - the profile used // for launching platform apps that can display a window on top of the lock // screen. @@ -103,10 +109,13 @@ // Returns the path that corresponds to the lockscreen profile. static base::FilePath GetLockScreenProfileDir(); + // DEPRECATED. Please use + // ash::BrowserContextHelper::GetLockScreenBrowserContext() instead. // Returns OffTheRecord profile for use during online authentication on the // lock screen. static Profile* GetLockScreenProfile(); + // DEPRECATED. Please use ash::IsLockScreenBrowserContext() instead. // Returns true if |profile| is the lockscreen profile. static bool IsLockScreenProfile(const Profile* profile); @@ -120,12 +129,15 @@ // Returns true when |profile| is for an ephemeral user. static bool IsEphemeralUserProfile(const Profile* profile); + // DEPRECATED. Please use ash::IsUserBrowserContext() instead. // Returns true if profile or profile_path has corresponding chrome os user. // I.e. it is not one for internal use, such as sign-in or lockscreen etc. // Note: System and Guest Profiles are considered User profiles. To check on // that `Profile` specific method that checks the profile type should used // such as `Profile::IsRegularProfile()` or `Profile::IsSystemProfile()`. static bool IsUserProfile(const Profile* profile); + + // DEPRECATED. Please use ash::IsUserBrowserContextBaseName() instead. static bool IsUserProfilePath(const base::FilePath& profile_path); // Returns active user profile dir in a format [u-$hash].
diff --git a/chrome/browser/ash/scanning/scan_service_factory_unittest.cc b/chrome/browser/ash/scanning/scan_service_factory_unittest.cc index 9c60489..b5c76e5 100644 --- a/chrome/browser/ash/scanning/scan_service_factory_unittest.cc +++ b/chrome/browser/ash/scanning/scan_service_factory_unittest.cc
@@ -14,7 +14,7 @@ #include "chrome/browser/ash/scanning/scan_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/test/base/testing_profile.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/keyed_service/core/keyed_service.h" #include "content/public/browser/browser_context.h" #include "content/public/test/browser_task_environment.h" @@ -76,7 +76,7 @@ TEST(ScanServiceFactoryTest, SigninProfileNoService) { content::BrowserTaskEnvironment task_environment; std::unique_ptr<Profile> signin_profile = - CreateProfile(ash::BrowserContextHelper::kSigninBrowserContextBaseName); + CreateProfile(ash::kSigninBrowserContextBaseName); EXPECT_EQ(nullptr, ScanServiceFactory::GetForBrowserContext(signin_profile.get())); } @@ -84,8 +84,8 @@ // Test that the ScanService cannot be created on the lock screen. TEST(ScanServiceFactoryTest, LockScreenProfileNoService) { content::BrowserTaskEnvironment task_environment; - std::unique_ptr<Profile> lockscreen_profile = CreateProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + std::unique_ptr<Profile> lockscreen_profile = + CreateProfile(ash::kLockScreenAppBrowserContextBaseName); EXPECT_EQ(nullptr, ScanServiceFactory::GetForBrowserContext(lockscreen_profile.get())); }
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index 437d514..163953e9 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -306,9 +306,7 @@ <include name="IDR_PARENT_ACCESS_APP_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\parent_access_app.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PARENT_ACCESS_UI_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\parent_access_ui.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PARENT_ACCESS_AFTER_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\parent_access_after.js" use_base_dir="false" type="BINDATA" /> - <include name="IDR_PARENT_ACCESS_ERROR_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\parent_access_error.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PARENT_ACCESS_WEBVIEW_MANAGER_JS" file="resources\chromeos\parent_access\webview_manager.js" type="BINDATA" /> - <include name="IDR_PARENT_ACCESS_OFFLINE_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\parent_access_offline.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_LOCAL_WEB_APPROVALS_AFTER_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\parent_access\flows\local_web_approvals_after.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PARENT_ACCESS_CONTROLLER_JS" file="resources\chromeos\parent_access\parent_access_controller.js" type="BINDATA" /> <include name="IDR_PARENT_ACCESS_UI_HANDLER_JS" file="resources\chromeos\parent_access\parent_access_ui_handler.js" type="BINDATA" />
diff --git a/chrome/browser/browsing_topics/browsing_topics_service_browsertest.cc b/chrome/browser/browsing_topics/browsing_topics_service_browsertest.cc index b4615b7..bb65f2a 100644 --- a/chrome/browser/browsing_topics/browsing_topics_service_browsertest.cc +++ b/chrome/browser/browsing_topics/browsing_topics_service_browsertest.cc
@@ -293,7 +293,7 @@ base::Unretained(this))) { scoped_feature_list_.InitWithFeatures( /*enabled_features=*/ - {blink::features::kBrowsingTopics, + {blink::features::kBrowsingTopics, blink::features::kBrowsingTopicsXHR, blink::features::kBrowsingTopicsBypassIPIsPubliclyRoutableCheck, features::kPrivacySandboxAdsAPIsOverride, blink::features::kPortals}, /*disabled_features=*/{}); @@ -1620,4 +1620,166 @@ EXPECT_EQ(api_usage_contexts[1].hashed_context_domain, HashedDomain(1)); } +IN_PROC_BROWSER_TEST_F(BrowsingTopicsBrowserTest, XhrWithoutTopicsFlagSet) { + GURL main_frame_url = + https_server_.GetURL("b.test", "/browsing_topics/empty_page.html"); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), main_frame_url)); + + GURL xhr_url = https_server_.GetURL( + "b.test", "/browsing_topics/page_with_custom_topics_header.html"); + + { + // Send a XHR without the `deprecatedBrowsingTopics` flag. This request + // isn't eligible for topics. + EXPECT_EQ("success", EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace(R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', $1); + xhr.send();)", + xhr_url), + content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + absl::optional<std::string> topics_header_value = + GetTopicsHeaderForRequestPath( + "/browsing_topics/page_with_custom_topics_header.html"); + + // Expect no topics header as the request did not set + // xhr.deprecatedBrowsingTopics. + EXPECT_FALSE(topics_header_value); + } + + { + // Send a XHR with the `deprecatedBrowsingTopics` flag set to false. This + // request isn't eligible for topics. + EXPECT_EQ("success", EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace(R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', $1); + xhr.deprecatedBrowsingTopics = false; + xhr.send();)", + xhr_url), + content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + absl::optional<std::string> topics_header_value = + GetTopicsHeaderForRequestPath( + "/browsing_topics/page_with_custom_topics_header.html"); + + // Expect no topics header as xhr.deprecatedBrowsingTopics was false. + EXPECT_FALSE(topics_header_value); + } +} + +// On an insecure site (i.e. URL with http scheme), test XHR request that +// attempts to set their `deprecatedBrowsingTopics` to true. Expect that the +// request is not eligible for topics. +IN_PROC_BROWSER_TEST_F( + BrowsingTopicsBrowserTest, + XhrCrossOrigin_TopicsNotEligibleDueToInsecureInitiatorContext) { + GURL main_frame_url = embedded_test_server()->GetURL( + "b.test", "/browsing_topics/empty_page.html"); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), main_frame_url)); + + GURL xhr_url = https_server_.GetURL( + "b.test", "/browsing_topics/page_with_custom_topics_header.html"); + + EXPECT_EQ("success", EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace(R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', $1); + + // This will no-op. + xhr.deprecatedBrowsingTopics = true; + + xhr.send();)", + xhr_url), + content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + absl::optional<std::string> topics_header_value = + GetTopicsHeaderForRequestPath( + "/browsing_topics/page_with_custom_topics_header.html"); + + // Expect no topics header as the request was not eligible for topics due to + // insecure initiator context. + EXPECT_FALSE(topics_header_value); +} + +IN_PROC_BROWSER_TEST_F( + BrowsingTopicsBrowserTest, + XhrCrossOrigin_TopicsEligible_SendOneTopic_HasObserveResponse) { + GURL main_frame_url = + https_server_.GetURL("b.test", "/browsing_topics/empty_page.html"); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), main_frame_url)); + + base::StringPairs replacement; + replacement.emplace_back(std::make_pair("{{STATUS}}", "200 OK")); + replacement.emplace_back(std::make_pair("{{OBSERVE_BROWSING_TOPICS_HEADER}}", + "Observe-Browsing-Topics: ?1")); + replacement.emplace_back(std::make_pair("{{REDIRECT_HEADER}}", "")); + + GURL xhr_url = https_server_.GetURL( + "a.test", net::test_server::GetFilePathWithReplacements( + "/browsing_topics/" + "page_with_custom_topics_header.html", + replacement)); + + EXPECT_EQ("success", EvalJs(web_contents()->GetPrimaryMainFrame(), + content::JsReplace(R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', $1); + xhr.deprecatedBrowsingTopics = true; + xhr.send();)", + xhr_url), + content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + absl::optional<std::string> topics_header_value = + GetTopicsHeaderForRequestPath( + "/browsing_topics/page_with_custom_topics_header.html"); + + EXPECT_TRUE(topics_header_value); + EXPECT_EQ(*topics_header_value, kExpectedHeaderValueForSiteB); + + // A new observation should have been recorded in addition to the pre-existing + // one, as the response had the `Observe-Browsing-Topics: ?1` header and the + // request was eligible for topics. + std::vector<ApiUsageContext> api_usage_contexts = + content::GetBrowsingTopicsApiUsage(browsing_topics_site_data_manager()); + EXPECT_EQ(api_usage_contexts.size(), 2u); + EXPECT_EQ( + api_usage_contexts[0].hashed_main_frame_host, + HashMainFrameHostForStorage(https_server_.GetURL("b.test", "/").host())); + EXPECT_EQ(api_usage_contexts[0].hashed_context_domain, + GetHashedDomain("a.test")); + EXPECT_EQ(api_usage_contexts[1].hashed_main_frame_host, + HashMainFrameHostForStorage("foo1.com")); + EXPECT_EQ(api_usage_contexts[1].hashed_context_domain, HashedDomain(1)); +} + } // namespace browsing_topics
diff --git a/chrome/browser/download/insecure_download_blocking.cc b/chrome/browser/download/insecure_download_blocking.cc index 368646c..8b0e02b 100644 --- a/chrome/browser/download/insecure_download_blocking.cc +++ b/chrome/browser/download/insecure_download_blocking.cc
@@ -293,9 +293,6 @@ download_source == DownloadSource::INTERNAL_API || download_source == DownloadSource::EXTENSION_API || download_source == DownloadSource::EXTENSION_INSTALLER) { - base::UmaHistogramEnumeration( - kInsecureDownloadHistogramName, - InsecureDownloadSecurityStatus::kDownloadIgnored); is_insecure_download_ = false; } else { // Not ignorable download. // TODO(crbug.com/1352598): Add blocking metrics.
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command.h b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command.h index f28cbbb..73298f2 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command.h +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command.h
@@ -24,6 +24,7 @@ TIMED_OUT, FAILED_KEY_CONFLICT, FAILED_OS_RESTRICTION, + FAILED_INVALID_PERMISSIONS, }; // Trigger completion callback. The single argument is the status of the
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.cc index bf37333..02a1b46a 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.cc +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.cc
@@ -20,6 +20,8 @@ namespace enterprise_connectors { +using KeyRotationResult = DeviceTrustKeyManager::KeyRotationResult; + namespace { // Wrap the SignSlowly call into this anonymous synchronous function to ensure @@ -36,6 +38,31 @@ return key->SignSlowly(base::as_bytes(base::make_span(str))); } +absl::optional<DeviceTrustKeyManager::PermanentFailure> +RotationStatusToPermanentFailure(KeyRotationCommand::Status status, + bool is_key_creation) { + // Permanent failures can only occur in key creation flows as, during rotation + // flows, there is an underlying assumption that a valid key was already + // created successfully. + if (!is_key_creation) { + return absl::nullopt; + } + + if (status == KeyRotationCommand::Status::FAILED_KEY_CONFLICT) { + // Hitting a conflict in a key creation flow means that the corresponding + // local key has been lost, and is therefore considered a permanent failure. + return DeviceTrustKeyManager::PermanentFailure::kCreationUploadConflict; + } + + if (status == KeyRotationCommand::Status::FAILED_INVALID_PERMISSIONS) { + // Something is wrong in the setup and the browser doesn't have sufficient + // privileges. + return DeviceTrustKeyManager::PermanentFailure::kInsufficientPermissions; + } + + return absl::nullopt; +} + } // namespace DeviceTrustKeyManagerImpl::DeviceTrustKeyManagerImpl( @@ -51,6 +78,10 @@ void DeviceTrustKeyManagerImpl::StartInitialization() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (HasPermanentFailure()) { + return; + } + // Initialization is only needed when the manager is in its default state // with no loaded key. if (state_ == InitializationState::kDefault && !key_pair_) { @@ -64,6 +95,11 @@ void DeviceTrustKeyManagerImpl::RotateKey(const std::string& nonce, RotateKeyCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (HasPermanentFailure()) { + std::move(callback).Run(KeyRotationResult::FAILURE); + return; + } + if (state_ == InitializationState::kDefault) { // Update the state right now to mark new client requests as pending. state_ = InitializationState::kRotatingKey; @@ -85,7 +121,7 @@ // Cancel previously pending requests and replace them with this new one. if (pending_rotation_request_) { std::move(pending_rotation_request_->callback) - .Run(DeviceTrustKeyManager::KeyRotationResult::CANCELLATION); + .Run(KeyRotationResult::CANCELLATION); } pending_rotation_request_ = std::make_unique<DeviceTrustKeyManagerImpl::RotateKeyRequest>( @@ -95,6 +131,11 @@ void DeviceTrustKeyManagerImpl::ExportPublicKeyAsync( ExportPublicKeyCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (HasPermanentFailure()) { + std::move(callback).Run(absl::nullopt); + return; + } + if (IsFullyInitialized()) { auto public_key_info = key_pair_->key()->GetSubjectPublicKeyInfo(); std::string public_key(public_key_info.begin(), public_key_info.end()); @@ -110,6 +151,11 @@ void DeviceTrustKeyManagerImpl::SignStringAsync(const std::string& str, SignStringCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (HasPermanentFailure()) { + std::move(callback).Run(absl::nullopt); + return; + } + if (IsFullyInitialized()) { background_task_runner_->PostTaskAndReplyWithResult( FROM_HERE, base::BindOnce(&SignString, str, key_pair_->key()), @@ -124,15 +170,27 @@ absl::optional<DeviceTrustKeyManagerImpl::KeyMetadata> DeviceTrustKeyManagerImpl::GetLoadedKeyMetadata() const { - if (!IsFullyInitialized()) { + if (!IsFullyInitialized() && !HasPermanentFailure()) { return absl::nullopt; } - const auto& spki_bytes = key_pair_->key()->GetSubjectPublicKeyInfo(); - return DeviceTrustKeyManagerImpl::KeyMetadata{ - key_pair_->trust_level(), key_pair_->key()->Algorithm(), - std::string(spki_bytes.begin(), spki_bytes.end()), - sync_key_response_code_}; + DeviceTrustKeyManagerImpl::KeyMetadata metadata; + if (IsFullyInitialized()) { + metadata.trust_level = key_pair_->trust_level(); + metadata.algorithm = key_pair_->key()->Algorithm(); + + const auto& spki_bytes = key_pair_->key()->GetSubjectPublicKeyInfo(); + metadata.spki_bytes = std::string(spki_bytes.begin(), spki_bytes.end()); + + metadata.synchronization_response_code = sync_key_response_code_; + } + + metadata.permanent_failure = permanent_failure_; + return metadata; +} + +bool DeviceTrustKeyManagerImpl::HasPermanentFailure() const { + return permanent_failure_.has_value(); } void DeviceTrustKeyManagerImpl::AddPendingRequest( @@ -212,6 +270,12 @@ const std::string& nonce, RotateKeyCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (HasPermanentFailure()) { + // No point in running the key rotation if we already know the outcome. + std::move(callback).Run(KeyRotationResult::FAILURE); + return; + } + state_ = InitializationState::kRotatingKey; key_rotation_succeeded_ = false; @@ -235,10 +299,19 @@ result_status == KeyRotationCommand::Status::SUCCEEDED; state_ = InitializationState::kDefault; - std::move(callback).Run( - key_rotation_succeeded_ - ? DeviceTrustKeyManager::KeyRotationResult::SUCCESS - : DeviceTrustKeyManager::KeyRotationResult::FAILURE); + if (!key_rotation_succeeded_) { + const auto permanent_failure = RotationStatusToPermanentFailure( + result_status, /*is_key_creation=*/!IsFullyInitialized()); + if (permanent_failure) { + // Wrapping the assignment in a conditional to prevent setting an existing + // permanent failure back to absl::nullopt if, for some reason, + // `result_status` represented a subsequent transient failure. + permanent_failure_ = permanent_failure; + } + } + + std::move(callback).Run(key_rotation_succeeded_ ? KeyRotationResult::SUCCESS + : KeyRotationResult::FAILURE); if (!key_rotation_succeeded_ && TryResumePendingRotationRequest()) { // In this edge case, another rotate key request came in at the same time
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h index 5430b19..cc22fa2 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h
@@ -42,6 +42,7 @@ void SignStringAsync(const std::string& str, SignStringCallback callback) override; absl::optional<KeyMetadata> GetLoadedKeyMetadata() const override; + bool HasPermanentFailure() const override; private: enum class InitializationState { kDefault, kLoadingKey, kRotatingKey }; @@ -119,6 +120,10 @@ // of `key_pair_`. absl::optional<int> sync_key_response_code_; + // If a failure deemed as "permanent" (i.e. no use in retrying) is + // encountered, the key manager flows will be disabled. + absl::optional<PermanentFailure> permanent_failure_; + // List of pending client requests. base::OnceClosureList pending_client_requests_;
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl_unittest.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl_unittest.cc index ba4731f..32d1d9c 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl_unittest.cc +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl_unittest.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h" +#include <array> + #include "base/barrier_closure.h" #include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" @@ -13,6 +15,7 @@ #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" +#include "base/test/test_future.h" #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_rotation_launcher.h" #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h" #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_key_rotation_launcher.h" @@ -33,6 +36,7 @@ using test::MockKeyRotationLauncher; using RotateKeyCallback = DeviceTrustKeyManagerImpl::RotateKeyCallback; using KeyRotationResult = DeviceTrustKeyManager::KeyRotationResult; +using PermanentFailure = DeviceTrustKeyManager::PermanentFailure; namespace { @@ -54,14 +58,7 @@ class DeviceTrustKeyManagerImplTest : public testing::Test { public: - void SetUp() override { - auto mock_launcher = - std::make_unique<StrictMock<MockKeyRotationLauncher>>(); - mock_launcher_ = mock_launcher.get(); - - key_manager_ = - std::make_unique<DeviceTrustKeyManagerImpl>(std::move(mock_launcher)); - } + void SetUp() override { ResetState(); } void SetUpPersistedKey() { // ScopedKeyPersistenceDelegateFactory creates mocked persistence delegates @@ -92,22 +89,22 @@ void ExpectLoadedHardwareKeyMetrics(int times_loaded = 1) { // A hardware-generated key was successfully loaded. We don't know which // algorithm was used though, so just check that it was logged only once. - histogram_tester_.ExpectUniqueSample(kLoadedKeyTrustLevelHistogram, - DTKeyTrustLevel::kHw, times_loaded); - histogram_tester_.ExpectTotalCount(kLoadedKeyTypeHistogram, times_loaded); + histogram_tester_->ExpectUniqueSample(kLoadedKeyTrustLevelHistogram, + DTKeyTrustLevel::kHw, times_loaded); + histogram_tester_->ExpectTotalCount(kLoadedKeyTypeHistogram, times_loaded); } void ExpectKeyCreatedMetrics() { - histogram_tester_.ExpectUniqueSample(kKeyCreationResultHistogram, - DTKeyRotationResult::kSucceeded, 1); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 0); + histogram_tester_->ExpectUniqueSample(kKeyCreationResultHistogram, + DTKeyRotationResult::kSucceeded, 1); + histogram_tester_->ExpectTotalCount(kKeyRotationResultHistogram, 0); } void ExpectKeyRotateMetrics(DTKeyRotationResult result, int times_rotated = 1) { - histogram_tester_.ExpectUniqueSample(kKeyRotationResultHistogram, result, - times_rotated); - histogram_tester_.ExpectTotalCount(kKeyCreationResultHistogram, 0); + histogram_tester_->ExpectUniqueSample(kKeyRotationResultHistogram, result, + times_rotated); + histogram_tester_->ExpectTotalCount(kKeyCreationResultHistogram, 0); } void InitializeWithKey() { @@ -118,8 +115,8 @@ ExpectManagerHandlesRequests(); ExpectLoadedHardwareKeyMetrics(); - histogram_tester_.ExpectTotalCount(kKeyCreationResultHistogram, 0); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 0); + histogram_tester_->ExpectTotalCount(kKeyCreationResultHistogram, 0); + histogram_tester_->ExpectTotalCount(kKeyRotationResultHistogram, 0); } // Expects that the key manager can handle an incoming request successfully, @@ -146,12 +143,23 @@ })); } + void ResetState() { + auto mock_launcher = + std::make_unique<StrictMock<MockKeyRotationLauncher>>(); + mock_launcher_ = mock_launcher.get(); + + key_manager_ = + std::make_unique<DeviceTrustKeyManagerImpl>(std::move(mock_launcher)); + + histogram_tester_ = std::make_unique<base::HistogramTester>(); + } + DeviceTrustKeyManagerImpl* key_manager() { return key_manager_.get(); } StrictMock<MockKeyRotationLauncher>* mock_launcher() { return mock_launcher_; } - base::HistogramTester histogram_tester_; + std::unique_ptr<base::HistogramTester> histogram_tester_; test::ScopedKeyPersistenceDelegateFactory persistence_delegate_factory_; private: @@ -173,6 +181,9 @@ ASSERT_TRUE(key_metadata->synchronization_response_code); EXPECT_EQ(key_metadata->synchronization_response_code.value(), kSuccessUploadCode); + EXPECT_FALSE(key_metadata->permanent_failure); + + EXPECT_FALSE(key_manager()->HasPermanentFailure()); } // Tests that: @@ -215,6 +226,7 @@ ExpectLoadedHardwareKeyMetrics(); ExpectKeyCreatedMetrics(); + EXPECT_FALSE(key_manager()->HasPermanentFailure()); } // Tests that: @@ -306,8 +318,8 @@ std::move(failed_rotation_callback).Run(KeyRotationCommand::Status::FAILED); RunUntilIdle(); - histogram_tester_.ExpectUniqueSample(kKeyCreationResultHistogram, - DTKeyRotationResult::kFailed, 1); + histogram_tester_->ExpectUniqueSample(kKeyCreationResultHistogram, + DTKeyRotationResult::kFailed, 1); KeyRotationCommand::Callback success_rotation_callback; base::RunLoop create_key_success_loop; @@ -318,6 +330,9 @@ create_key_success_loop.Quit(); })); + // Should not be treated as a permanent failure. + EXPECT_FALSE(key_manager()->HasPermanentFailure()); + // This client request will try to load the key, then fail (since key creation // failed previously), and then trigger a successful key creation followed // by a successful key loading. @@ -342,9 +357,10 @@ request_loop.Run(); ExpectLoadedHardwareKeyMetrics(); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 0); - histogram_tester_.ExpectBucketCount(kKeyCreationResultHistogram, - DTKeyRotationResult::kSucceeded, 1); + histogram_tester_->ExpectTotalCount(kKeyRotationResultHistogram, 0); + histogram_tester_->ExpectBucketCount(kKeyCreationResultHistogram, + DTKeyRotationResult::kSucceeded, 1); + EXPECT_FALSE(key_manager()->HasPermanentFailure()); } // Tests a long and specific chain of events which are, in sequence: @@ -508,6 +524,7 @@ // The key manager should still be properly setup. ExpectManagerHandlesRequests(); ExpectKeyRotateMetrics(DTKeyRotationResult::kFailed); + EXPECT_FALSE(key_manager()->HasPermanentFailure()); // The manager should have loaded a total of one key, the initial one. ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/1); @@ -550,6 +567,10 @@ ExpectManagerHandlesRequests(); ExpectKeyRotateMetrics(DTKeyRotationResult::kFailedKeyConflict); + // Conflict only leads to a permanent failure if it occurs during key + // creation. + EXPECT_FALSE(key_manager()->HasPermanentFailure()); + // The manager should have loaded a total of one key, the initial one. ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/1); @@ -682,235 +703,99 @@ ASSERT_EQ(third_captured_result.value(), KeyRotationResult::SUCCESS); } +struct ConcurrentRotationFailureTestCase { + KeyRotationCommand::Status failed_rotation_status{}; + DTKeyRotationResult metric_status{}; +}; + // Tests that a properly initialized key manager handles concurrent rotate key // request properly when the second one fails. TEST_F(DeviceTrustKeyManagerImplTest, RotateKey_Concurrent_SuccessThenFail) { - // A key already exists and the manager already loaded it. - InitializeWithKey(); + const std::array<ConcurrentRotationFailureTestCase, 3> test_cases = { + ConcurrentRotationFailureTestCase{KeyRotationCommand::Status::FAILED, + DTKeyRotationResult::kFailed}, + ConcurrentRotationFailureTestCase{ + KeyRotationCommand::Status::FAILED_OS_RESTRICTION, + DTKeyRotationResult::kFailedOSRestriction}, + ConcurrentRotationFailureTestCase{ + KeyRotationCommand::Status::FAILED_KEY_CONFLICT, + DTKeyRotationResult::kFailedKeyConflict}}; - KeyRotationCommand::Callback first_rotation_callback; - base::RunLoop first_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - first_rotation_callback = std::move(callback); - first_rotate_key_loop.Quit(); - })); + for (const auto& test_case : test_cases) { + // A key already exists and the manager already loaded it. + InitializeWithKey(); - // Create callback parameters for all calls. - absl::optional<KeyRotationResult> first_captured_result; - auto first_completion_callback = base::BindLambdaForTesting( - [&first_captured_result](KeyRotationResult result) { - first_captured_result = result; - }); - absl::optional<KeyRotationResult> second_captured_result; - auto second_completion_callback = base::BindLambdaForTesting( - [&second_captured_result](KeyRotationResult result) { - second_captured_result = result; - }); + KeyRotationCommand::Callback first_rotation_callback; + base::RunLoop first_rotate_key_loop; + EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kFakeNonce, _)) + .WillOnce(Invoke([&](const std::string& nonce, + KeyRotationCommand::Callback callback) { + first_rotation_callback = std::move(callback); + first_rotate_key_loop.Quit(); + })); - // Kick off the concurrent rotation requests. - key_manager()->RotateKey(kFakeNonce, std::move(first_completion_callback)); - key_manager()->RotateKey(kOtherFakeNonce, - std::move(second_completion_callback)); + // Create callback parameters for all calls. + absl::optional<KeyRotationResult> first_captured_result; + auto first_completion_callback = base::BindLambdaForTesting( + [&first_captured_result](KeyRotationResult result) { + first_captured_result = result; + }); + absl::optional<KeyRotationResult> second_captured_result; + auto second_completion_callback = base::BindLambdaForTesting( + [&second_captured_result](KeyRotationResult result) { + second_captured_result = result; + }); - first_rotate_key_loop.Run(); + // Kick off the concurrent rotation requests. + key_manager()->RotateKey(kFakeNonce, std::move(first_completion_callback)); + key_manager()->RotateKey(kOtherFakeNonce, + std::move(second_completion_callback)); - KeyRotationCommand::Callback second_rotation_callback; - base::RunLoop second_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kOtherFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - second_rotation_callback = std::move(callback); - second_rotate_key_loop.Quit(); - })); + first_rotate_key_loop.Run(); - // Make the key rotation return a successful status and fake that a key is - // loadable. - SetUpPersistedKey(); - ASSERT_FALSE(first_rotation_callback.is_null()); - std::move(first_rotation_callback).Run(KeyRotationCommand::Status::SUCCEEDED); - RunUntilIdle(); + KeyRotationCommand::Callback second_rotation_callback; + base::RunLoop second_rotate_key_loop; + EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kOtherFakeNonce, _)) + .WillOnce(Invoke([&](const std::string& nonce, + KeyRotationCommand::Callback callback) { + second_rotation_callback = std::move(callback); + second_rotate_key_loop.Quit(); + })); - second_rotate_key_loop.Run(); + // Make the key rotation return a successful status and fake that a key is + // loadable. + SetUpPersistedKey(); + ASSERT_FALSE(first_rotation_callback.is_null()); + std::move(first_rotation_callback) + .Run(KeyRotationCommand::Status::SUCCEEDED); + RunUntilIdle(); - // Make the second key rotation return a failed status. - ASSERT_FALSE(second_rotation_callback.is_null()); - std::move(second_rotation_callback).Run(KeyRotationCommand::Status::FAILED); - RunUntilIdle(); + second_rotate_key_loop.Run(); - // The key manager should still be properly setup. - ExpectManagerHandlesRequests(); - histogram_tester_.ExpectBucketCount(kKeyRotationResultHistogram, - DTKeyRotationResult::kSucceeded, 1); - histogram_tester_.ExpectBucketCount(kKeyRotationResultHistogram, - DTKeyRotationResult::kFailed, 1); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 2); - histogram_tester_.ExpectTotalCount(kKeyCreationResultHistogram, 0); + // Make the second key rotation return a failed status. + ASSERT_FALSE(second_rotation_callback.is_null()); + std::move(second_rotation_callback).Run(test_case.failed_rotation_status); + RunUntilIdle(); - // The manager should have loaded a total of two keys. - ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/2); + // The key manager should still be properly setup. + ExpectManagerHandlesRequests(); + histogram_tester_->ExpectBucketCount(kKeyRotationResultHistogram, + DTKeyRotationResult::kSucceeded, 1); + histogram_tester_->ExpectBucketCount(kKeyRotationResultHistogram, + test_case.metric_status, 1); + histogram_tester_->ExpectTotalCount(kKeyRotationResultHistogram, 2); + histogram_tester_->ExpectTotalCount(kKeyCreationResultHistogram, 0); - ASSERT_TRUE(first_captured_result.has_value()); - ASSERT_TRUE(second_captured_result.has_value()); - ASSERT_EQ(first_captured_result.value(), KeyRotationResult::SUCCESS); - ASSERT_EQ(second_captured_result.value(), KeyRotationResult::FAILURE); -} + // The manager should have loaded a total of two keys. + ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/2); -// Tests that a properly initialized key manager handles concurrent rotate key -// request properly when the second one fails due to a key conflict. -TEST_F(DeviceTrustKeyManagerImplTest, - RotateKey_Concurrent_SuccessThenKeyConflictFailure) { - // A key already exists and the manager already loaded it. - InitializeWithKey(); + ASSERT_TRUE(first_captured_result.has_value()); + ASSERT_TRUE(second_captured_result.has_value()); + ASSERT_EQ(first_captured_result.value(), KeyRotationResult::SUCCESS); + ASSERT_EQ(second_captured_result.value(), KeyRotationResult::FAILURE); - KeyRotationCommand::Callback first_rotation_callback; - base::RunLoop first_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - first_rotation_callback = std::move(callback); - first_rotate_key_loop.Quit(); - })); - - // Create callback parameters for all calls. - absl::optional<KeyRotationResult> first_captured_result; - auto first_completion_callback = base::BindLambdaForTesting( - [&first_captured_result](KeyRotationResult result) { - first_captured_result = result; - }); - absl::optional<KeyRotationResult> second_captured_result; - auto second_completion_callback = base::BindLambdaForTesting( - [&second_captured_result](KeyRotationResult result) { - second_captured_result = result; - }); - - // Kick off the concurrent rotation requests. - key_manager()->RotateKey(kFakeNonce, std::move(first_completion_callback)); - key_manager()->RotateKey(kOtherFakeNonce, - std::move(second_completion_callback)); - - first_rotate_key_loop.Run(); - - KeyRotationCommand::Callback second_rotation_callback; - base::RunLoop second_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kOtherFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - second_rotation_callback = std::move(callback); - second_rotate_key_loop.Quit(); - })); - - // Make the key rotation return a successful status and fake that a key is - // loadable. - SetUpPersistedKey(); - ASSERT_FALSE(first_rotation_callback.is_null()); - std::move(first_rotation_callback).Run(KeyRotationCommand::Status::SUCCEEDED); - RunUntilIdle(); - - second_rotate_key_loop.Run(); - - // Make the second key rotation return a failure due to key conflict status. - ASSERT_FALSE(second_rotation_callback.is_null()); - std::move(second_rotation_callback) - .Run(KeyRotationCommand::Status::FAILED_KEY_CONFLICT); - RunUntilIdle(); - - // The key manager should still be properly setup. - ExpectManagerHandlesRequests(); - histogram_tester_.ExpectBucketCount(kKeyRotationResultHistogram, - DTKeyRotationResult::kSucceeded, 1); - histogram_tester_.ExpectBucketCount( - kKeyRotationResultHistogram, DTKeyRotationResult::kFailedKeyConflict, 1); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 2); - histogram_tester_.ExpectTotalCount(kKeyCreationResultHistogram, 0); - - // The manager should have loaded a total of two keys. - ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/2); - - ASSERT_TRUE(first_captured_result.has_value()); - ASSERT_TRUE(second_captured_result.has_value()); - ASSERT_EQ(first_captured_result.value(), KeyRotationResult::SUCCESS); - ASSERT_EQ(second_captured_result.value(), KeyRotationResult::FAILURE); -} - -// Tests that a properly initialized key manager handles concurrent rotate key -// request properly when the second one fails due to OS restrictions. -TEST_F(DeviceTrustKeyManagerImplTest, - RotateKey_Concurrent_SuccessThenKeyOSRestrictionFailure) { - // A key already exists and the manager already loaded it. - InitializeWithKey(); - - KeyRotationCommand::Callback first_rotation_callback; - base::RunLoop first_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - first_rotation_callback = std::move(callback); - first_rotate_key_loop.Quit(); - })); - - // Create callback parameters for all calls. - absl::optional<KeyRotationResult> first_captured_result; - auto first_completion_callback = base::BindLambdaForTesting( - [&first_captured_result](KeyRotationResult result) { - first_captured_result = result; - }); - absl::optional<KeyRotationResult> second_captured_result; - auto second_completion_callback = base::BindLambdaForTesting( - [&second_captured_result](KeyRotationResult result) { - second_captured_result = result; - }); - - // Kick off the concurrent rotation requests. - key_manager()->RotateKey(kFakeNonce, std::move(first_completion_callback)); - key_manager()->RotateKey(kOtherFakeNonce, - std::move(second_completion_callback)); - - first_rotate_key_loop.Run(); - - KeyRotationCommand::Callback second_rotation_callback; - base::RunLoop second_rotate_key_loop; - EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(kOtherFakeNonce, _)) - .WillOnce(Invoke( - [&](const std::string& nonce, KeyRotationCommand::Callback callback) { - second_rotation_callback = std::move(callback); - second_rotate_key_loop.Quit(); - })); - - // Make the key rotation return a successful status and fake that a key is - // loadable. - SetUpPersistedKey(); - ASSERT_FALSE(first_rotation_callback.is_null()); - std::move(first_rotation_callback).Run(KeyRotationCommand::Status::SUCCEEDED); - RunUntilIdle(); - - second_rotate_key_loop.Run(); - - // Make the second key rotation return a failure due to an OS restriction - // status. - ASSERT_FALSE(second_rotation_callback.is_null()); - std::move(second_rotation_callback) - .Run(KeyRotationCommand::Status::FAILED_OS_RESTRICTION); - RunUntilIdle(); - - // The key manager should still be properly setup. - ExpectManagerHandlesRequests(); - histogram_tester_.ExpectBucketCount(kKeyRotationResultHistogram, - DTKeyRotationResult::kSucceeded, 1); - histogram_tester_.ExpectBucketCount(kKeyRotationResultHistogram, - DTKeyRotationResult::kFailedOSRestriction, - 1); - histogram_tester_.ExpectTotalCount(kKeyRotationResultHistogram, 2); - histogram_tester_.ExpectTotalCount(kKeyCreationResultHistogram, 0); - - // The manager should have loaded a total of two keys. - ExpectLoadedHardwareKeyMetrics(/*times_loaded=*/2); - - ASSERT_TRUE(first_captured_result.has_value()); - ASSERT_TRUE(second_captured_result.has_value()); - ASSERT_EQ(first_captured_result.value(), KeyRotationResult::SUCCESS); - ASSERT_EQ(second_captured_result.value(), KeyRotationResult::FAILURE); + ResetState(); + } } // Tests that a properly initialized key manager handles a successful rotate key @@ -1031,4 +916,111 @@ ASSERT_EQ(captured_result.value(), KeyRotationResult::FAILURE); } +struct PermanentFailureTestCase { + KeyRotationCommand::Status failed_rotation_status{}; + DTKeyRotationResult metric_status{}; + PermanentFailure permanent_failure{}; +}; + +// Tests that a key manager disables retries whenever it encounters a permanent +// failure during key creation. +TEST_F(DeviceTrustKeyManagerImplTest, CreateKey_PermanentFailures) { + const std::array<PermanentFailureTestCase, 2> test_cases = { + PermanentFailureTestCase{KeyRotationCommand::Status::FAILED_KEY_CONFLICT, + DTKeyRotationResult::kFailedKeyConflict, + PermanentFailure::kCreationUploadConflict}, + PermanentFailureTestCase{ + KeyRotationCommand::Status::FAILED_INVALID_PERMISSIONS, + DTKeyRotationResult::kFailedInvalidPermissions, + PermanentFailure::kInsufficientPermissions}}; + + for (const auto& test_case : test_cases) { + SetUpNoKey(); + + KeyRotationCommand::Callback failed_rotation_callback; + base::RunLoop create_key_fail_loop; + EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(std::string(), _)) + .WillOnce(Invoke([&](const std::string& nonce, + KeyRotationCommand::Callback callback) { + failed_rotation_callback = std::move(callback); + create_key_fail_loop.Quit(); + })); + + key_manager()->StartInitialization(); + + create_key_fail_loop.Run(); + + // Mimic that key creation failed with a permanent failure. + ASSERT_FALSE(failed_rotation_callback.is_null()); + std::move(failed_rotation_callback).Run(test_case.failed_rotation_status); + RunUntilIdle(); + + histogram_tester_->ExpectUniqueSample(kKeyCreationResultHistogram, + test_case.metric_status, 1); + + EXPECT_TRUE(key_manager()->HasPermanentFailure()); + + const auto& key_metadata = key_manager()->GetLoadedKeyMetadata(); + ASSERT_TRUE(key_metadata); + ASSERT_TRUE(key_metadata->permanent_failure); + + EXPECT_EQ(key_metadata->permanent_failure.value(), + test_case.permanent_failure); + + // All operations of the key manager should fail without launching the key + // creation. + key_manager()->StartInitialization(); + + base::test::TestFuture<KeyRotationResult> rotate_future; + key_manager()->RotateKey(kFakeNonce, rotate_future.GetCallback()); + EXPECT_EQ(rotate_future.Get(), KeyRotationResult::FAILURE); + + base::test::TestFuture<absl::optional<std::string>> export_future; + key_manager()->ExportPublicKeyAsync(export_future.GetCallback()); + EXPECT_FALSE(export_future.Get()); + + base::test::TestFuture<absl::optional<std::vector<uint8_t>>> sign_future; + key_manager()->SignStringAsync("test string", sign_future.GetCallback()); + EXPECT_FALSE(sign_future.Get()); + + ResetState(); + } +} + +// Tests the case where a key creation results in a permanent failure while a +// concurrent rotation request was received. +TEST_F(DeviceTrustKeyManagerImplTest, + CreateKeyPermanentFailure_ConcurrentRotate) { + SetUpNoKey(); + + base::RunLoop create_key_loop; + KeyRotationCommand::Callback key_creation_callback; + EXPECT_CALL(*mock_launcher(), LaunchKeyRotation(std::string(), _)) + .WillOnce(Invoke( + [&](const std::string& nonce, KeyRotationCommand::Callback callback) { + key_creation_callback = std::move(callback); + create_key_loop.Quit(); + })); + + key_manager()->StartInitialization(); + + create_key_loop.Run(); + + ASSERT_FALSE(key_creation_callback.is_null()); + + // Key manager is now waiting for the creation to finish, and will therefore + // mark the rotation request as pending. + base::test::TestFuture<KeyRotationResult> rotate_future; + key_manager()->RotateKey(kFakeNonce, rotate_future.GetCallback()); + + // Fake as if the creation failed with a permanent failure. + // SetUpNoKey(); + std::move(key_creation_callback) + .Run(KeyRotationCommand::Status::FAILED_KEY_CONFLICT); + RunUntilIdle(); + + EXPECT_TRUE(key_manager()->HasPermanentFailure()); + EXPECT_EQ(rotate_future.Get(), KeyRotationResult::FAILURE); +} + } // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.cc index 03f0fe73..30ead70 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.cc +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.cc
@@ -51,12 +51,14 @@ return DTKeyRotationResult::kSucceeded; case KeyRotationCommand::Status::FAILED: return DTKeyRotationResult::kFailed; + case KeyRotationCommand::Status::TIMED_OUT: + return DTKeyRotationResult::kTimedOut; case KeyRotationCommand::Status::FAILED_KEY_CONFLICT: return DTKeyRotationResult::kFailedKeyConflict; case KeyRotationCommand::Status::FAILED_OS_RESTRICTION: return DTKeyRotationResult::kFailedOSRestriction; - case KeyRotationCommand::Status::TIMED_OUT: - return DTKeyRotationResult::kTimedOut; + case KeyRotationCommand::Status::FAILED_INVALID_PERMISSIONS: + return DTKeyRotationResult::kFailedInvalidPermissions; } }
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h index 9452dcb..781733e 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h
@@ -40,7 +40,8 @@ kTimedOut = 2, kFailedKeyConflict = 3, kFailedOSRestriction = 4, - kMaxValue = kFailedOSRestriction, + kFailedInvalidPermissions = 5, + kMaxValue = kFailedInvalidPermissions, }; // Possible client errors that can happen during key synchronization.
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h index c294ea1..ec48f03 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h
@@ -38,6 +38,8 @@ GetLoadedKeyMetadata, (), (const, override)); + + MOCK_METHOD(bool, HasPermanentFailure, (), (const, override)); }; } // namespace test
diff --git a/chrome/browser/enterprise/reporting/browser_report_generator_unittest.cc b/chrome/browser/enterprise/reporting/browser_report_generator_unittest.cc index 00b950e9..b86df7c9 100644 --- a/chrome/browser/enterprise/reporting/browser_report_generator_unittest.cc +++ b/chrome/browser/enterprise/reporting/browser_report_generator_unittest.cc
@@ -34,7 +34,7 @@ #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS_ASH) -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS_ASH) @@ -186,10 +186,9 @@ #endif // !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS_ASH) + profile_manager_.CreateTestingProfile(ash::kSigninBrowserContextBaseName); profile_manager_.CreateTestingProfile( - ash::BrowserContextHelper::kSigninBrowserContextBaseName); - profile_manager_.CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + ash::kLockScreenAppBrowserContextBaseName); #endif // BUILDFLAG(IS_CHROMEOS_ASH) }
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_unittest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_unittest.cc index 6a208a1..2781c1c 100644 --- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_unittest.cc +++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_unittest.cc
@@ -309,7 +309,32 @@ void RunGetRulesFunction(const Extension& extension, RulesetScope scope, base::Value* result) { + RunGetRulesFunction(extension, scope, absl::nullopt /* rule_ids */, result); + } + + void RunGetRulesFunction( + const Extension& extension, + RulesetScope scope, + const absl::optional<const std::vector<int>>& rule_ids, + base::Value* result) { CHECK(result); + + std::string json_args = "[]"; + + if (rule_ids) { + constexpr const char kParams[] = R"( + [{ + "ruleIds": $1 + }] + )"; + base::Value::List rule_ids_value = + ListBuilder() + .Append(rule_ids.value().begin(), rule_ids.value().end()) + .Build(); + + json_args = content::JsReplace(kParams, std::move(rule_ids_value)); + } + scoped_refptr<ExtensionFunction> function; switch (scope) { case RulesetScope::kDynamic: @@ -325,7 +350,7 @@ function->set_has_callback(true); auto result_ptr = api_test_utils::RunFunctionAndReturnSingleResult( - function.get(), "[]" /* args */, browser_context()); + function.get(), json_args, browser_context()); ASSERT_TRUE(result_ptr); ASSERT_TRUE(result_ptr->is_list()); *result = std::move(*result_ptr); @@ -1156,6 +1181,38 @@ VerifyPublicRulesetIDs(*extension(), {kDefaultRulesetID, dnr_api::SESSION_RULESET_ID}); + // No rule ID filter specified, return all rules. + RunGetRulesFunction(*extension(), RulesetScope::kSession, absl::nullopt, + &result); + EXPECT_THAT(result.GetList(), ::testing::UnorderedElementsAre( + ::testing::Eq(std::cref(rule_1_value)), + ::testing::Eq(std::cref(rule_2_value)))); + // Empty rule ID filter, return no rules. + RunGetRulesFunction(*extension(), RulesetScope::kSession, + absl::make_optional<std::vector<int>>({}), &result); + EXPECT_THAT(result.GetList(), ::testing::IsEmpty()); + // Rule ID filter includes both rules, return them both. + RunGetRulesFunction(*extension(), RulesetScope::kSession, + absl::make_optional<std::vector<int>>({1, 2, 3, 4}), + &result); + EXPECT_THAT(result.GetList(), ::testing::UnorderedElementsAre( + ::testing::Eq(std::cref(rule_1_value)), + ::testing::Eq(std::cref(rule_2_value)))); + // Rule ID filter only matches rule 1, return that. + RunGetRulesFunction(*extension(), RulesetScope::kSession, + absl::make_optional<std::vector<int>>({1}), &result); + EXPECT_THAT(result.GetList(), ::testing::UnorderedElementsAre( + ::testing::Eq(std::cref(rule_1_value)))); + // Rule ID filter only matches rule 2, return that. + RunGetRulesFunction(*extension(), RulesetScope::kSession, + absl::make_optional<std::vector<int>>({2}), &result); + EXPECT_THAT(result.GetList(), ::testing::UnorderedElementsAre( + ::testing::Eq(std::cref(rule_2_value)))); + // Rule ID filter doesn't match any rules, return no rules. + RunGetRulesFunction(*extension(), RulesetScope::kSession, + absl::make_optional<std::vector<int>>({3}), &result); + EXPECT_THAT(result.GetList(), ::testing::IsEmpty()); + // No dynamic rules should be returned. RunGetRulesFunction(*extension(), RulesetScope::kDynamic, &result); EXPECT_TRUE(result.GetList().empty());
diff --git a/chrome/browser/extensions/chrome_extension_function_unittest.cc b/chrome/browser/extensions/chrome_extension_function_unittest.cc index f44f13b..f9f18de 100644 --- a/chrome/browser/extensions/chrome_extension_function_unittest.cc +++ b/chrome/browser/extensions/chrome_extension_function_unittest.cc
@@ -108,7 +108,12 @@ // Verify that destroying the extension function without responding causes a // DCHECK failure. -TEST_F(ChromeExtensionFunctionDeathTest, DestructionWithoutResponse) { +#if BUILDFLAG(IS_WIN) +#define MAYBE_DestructionWithoutResponse DISABLED_DestructionWithoutResponse +#else +#define MAYBE_DestructionWithoutResponse DestructionWithoutResponse +#endif +TEST_F(ChromeExtensionFunctionDeathTest, MAYBE_DestructionWithoutResponse) { ASSERT_DEATH( { InitializeEmptyExtensionService();
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index ab2a8be7..4d0500f 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -147,6 +147,11 @@ "expiry_milestone": 115 }, { + "name": "android-improved-bookmarks", + "owners": ["wylieb", "skym", "bttk"], + "expiry_milestone": 120 + }, + { "name": "android-media-picker", "owners": [ "finnur@google.com", "beverloo@google.com" ], "expiry_milestone": 140 @@ -4328,6 +4333,11 @@ "expiry_milestone": 112 }, { + "name": "ios-password-checkup", + "owners": ["noemies", "eic", "bling-integrations-team@google.com"], + "expiry_milestone": 117 + }, + { "name": "ios-password-manager-cross-origin-iframe-support", "owners": ["kazinova@google.com", "vsemeniuk@google.com", "chrome-password-manager-team@google.com"], "expiry_milestone": 117 @@ -5275,6 +5285,13 @@ "expiry_milestone": 92 }, { + "name": "omnibox-square-suggest-icons", + "owners": [ + "yohanes@google.com", "manukh", "chrome-omnibox-team@google.com" + ], + "expiry_milestone": 120 + }, + { "name": "omnibox-trending-zero-prefix-suggestions-on-ntp", "owners": [ "ender", "stkhapugin", "mahmadi", "chrome-omnibox-team@google.com" ], "expiry_milestone": 120 @@ -5292,7 +5309,7 @@ { "name": "omnibox-uniform-suggestion-height", "owners": [ "yohanes@google.com", "manukh", "chrome-omnibox-team@google.com"], - "expiry_milestone": 110 + "expiry_milestone": 120 }, { "name": "omnibox-updated-connection-security-indicators",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index aa3860e..94ab630 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2191,6 +2191,17 @@ "Expand the last word in the shortcut text to be a complete word from the " "suggestion text."; +const char kOmniboxSimplifiedUiUniformRowHeightName[] = + "Omnibox Suggestion Row Height"; +const char kOmniboxSimplifiedUiUniformRowHeightDescription[] = + "Changes the row height of omnibox suggetions."; + +const char kOmniboxSimplifiedUiSquareSuggestIconName[] = + "Omnibox Square Suggest Icons"; +const char kOmniboxSimplifiedUiSquareSuggestIconDescription[] = + "Adds a grey square background to suggestion icons, and makes the answer " + "icon square."; + const char kOmniboxMaxZeroSuggestMatchesName[] = "Omnibox Max Zero Suggest Matches"; const char kOmniboxMaxZeroSuggestMatchesDescription[] = @@ -2203,11 +2214,6 @@ "Changes the maximum number of autocomplete matches displayed in the " "Omnibox UI."; -const char kOmniboxSimplifiedUiUniformRowHeightName[] = - "Omnibox Suggestion Row Height"; -const char kOmniboxSimplifiedUiUniformRowHeightDescription[] = - "Changes the row height of omnibox suggetions."; - const char kOmniboxUpdatedConnectionSecurityIndicatorsName[] = "Omnibox Updated connection security indicators"; const char kOmniboxUpdatedConnectionSecurityIndicatorsDescription[] = @@ -3431,6 +3437,11 @@ " DisplayCompositor on Android. This feature is only available on " " android Q+ devices"; +const char kAndroidImprovedBookmarksName[] = "Android Visual Bookmark Manager"; +const char kAndroidImprovedBookmarksDescription[] = + "More visual changes to the bookmarks surfaces, with more thumbnails and a " + "focus on search instead of folders/hierarchy"; + const char kAnimatedImageDragShadowName[] = "Enable animated image drag shadow on Android."; const char kAnimatedImageDragShadowDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 0901c7c..3e9ae9d 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1206,6 +1206,12 @@ extern const char kOmniboxShortcutExpandingName[]; extern const char kOmniboxShortcutExpandingDescription[]; +extern const char kOmniboxSimplifiedUiUniformRowHeightName[]; +extern const char kOmniboxSimplifiedUiUniformRowHeightDescription[]; + +extern const char kOmniboxSimplifiedUiSquareSuggestIconName[]; +extern const char kOmniboxSimplifiedUiSquareSuggestIconDescription[]; + extern const char kOmniboxSiteSearchStarterPackName[]; extern const char kOmniboxSiteSearchStarterPackDescription[]; @@ -1236,9 +1242,6 @@ extern const char kOmniboxUIMaxAutocompleteMatchesName[]; extern const char kOmniboxUIMaxAutocompleteMatchesDescription[]; -extern const char kOmniboxSimplifiedUiUniformRowHeightName[]; -extern const char kOmniboxSimplifiedUiUniformRowHeightDescription[]; - extern const char kOmniboxUpdatedConnectionSecurityIndicatorsName[]; extern const char kOmniboxUpdatedConnectionSecurityIndicatorsDescription[]; @@ -1966,6 +1969,8 @@ extern const char kAnimatedImageDragShadowName[]; extern const char kAnimatedImageDragShadowDescription[]; +extern const char kAndroidImprovedBookmarksName[]; +extern const char kAndroidImprovedBookmarksDescription[]; extern const char kAssistantIntentTranslateInfoName[]; extern const char kAssistantIntentTranslateInfoDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index 19e818cd..e313dce4 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -161,6 +161,7 @@ &kAllowNewIncognitoTabIntents, &kAndroidScrollOptimizations, &kAndroidSearchEngineChoiceNotification, + &kAndroidImprovedBookmarks, &kAnimatedImageDragShadow, &kAssistantConsentSimplifiedText, &kAssistantConsentV2, @@ -435,6 +436,10 @@ "AndroidSearchEngineChoiceNotification", base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kAndroidImprovedBookmarks, + "AndroidImprovedBookmarks", + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kAnimatedImageDragShadow, "AnimatedImageDragShadow", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h index c1edc61..a0ee0c9 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -20,6 +20,7 @@ BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents); BASE_DECLARE_FEATURE(kAndroidScrollOptimizations); BASE_DECLARE_FEATURE(kAndroidSearchEngineChoiceNotification); +BASE_DECLARE_FEATURE(kAndroidImprovedBookmarks); BASE_DECLARE_FEATURE(kAnimatedImageDragShadow); BASE_DECLARE_FEATURE(kAssistantConsentSimplifiedText); BASE_DECLARE_FEATURE(kAssistantConsentV2);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 3c4a0455..ed735b3 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -172,6 +172,7 @@ public static final String ANDROID_SCROLL_OPTIMIZATIONS = "AndroidScrollOptimizations"; public static final String ANDROID_SEARCH_ENGINE_CHOICE_NOTIFICATION = "AndroidSearchEngineChoiceNotification"; + public static final String ANDROID_IMPROVED_BOOKMARKS = "AndroidImprovedBookmarks"; public static final String ANIMATED_IMAGE_DRAG_SHADOW = "AnimatedImageDragShadow"; public static final String APP_LANGUAGE_PROMPT = "AppLanguagePrompt"; public static final String APP_LANGUAGE_PROMPT_ULP = "AppLanguagePromptULP";
diff --git a/chrome/browser/media/cast_remoting_connector.cc b/chrome/browser/media/cast_remoting_connector.cc index ea788ad9..aa31636 100644 --- a/chrome/browser/media/cast_remoting_connector.cc +++ b/chrome/browser/media/cast_remoting_connector.cc
@@ -15,8 +15,6 @@ #include "base/memory/raw_ptr.h" #include "build/build_config.h" #include "chrome/browser/media/router/media_router_feature.h" -#include "components/media_router/browser/media_router.h" -#include "components/media_router/browser/media_router_factory.h" #include "components/media_router/common/pref_names.h" #include "components/prefs/pref_service.h" #include "components/sessions/content/session_tab_helper.h" @@ -155,8 +153,6 @@ if (!media_router::MediaRouterEnabled(contents->GetBrowserContext())) return nullptr; connector = new CastRemotingConnector( - media_router::MediaRouterFactory::GetApiForBrowserContext( - contents->GetBrowserContext()), user_prefs::UserPrefs::Get(contents->GetBrowserContext()), sessions::SessionTabHelper::IdForTab(contents), #if defined(TOOLKIT_VIEWS) @@ -187,12 +183,10 @@ } CastRemotingConnector::CastRemotingConnector( - media_router::MediaRouter* router, PrefService* pref_service, SessionID tab_id, std::unique_ptr<MediaRemotingDialogCoordinator> dialog_coordinator) - : media_router_(router), - pref_service_(pref_service), + : pref_service_(pref_service), tab_id_(tab_id), dialog_coordinator_(std::move(dialog_coordinator)) { StartObservingPref();
diff --git a/chrome/browser/media/cast_remoting_connector.h b/chrome/browser/media/cast_remoting_connector.h index 0922974..708fbc2 100644 --- a/chrome/browser/media/cast_remoting_connector.h +++ b/chrome/browser/media/cast_remoting_connector.h
@@ -26,10 +26,6 @@ class WebContents; } // namespace content -namespace media_router { -class MediaRouter; -} - class MediaRemotingDialogCoordinator { public: using PermissionCallback = base::OnceCallback<void(bool)>; @@ -52,7 +48,7 @@ // collection of render frames), and it is created on-demand. The source in the // render process represents itself by providing a media::mojom::RemotingSource // service instance. The sink is represented by a MediaRemoter in the Cast Media -// Router Provider that handles the communication with the remote device. The +// Route Provider that handles the communication with the remote device. The // CastRemotingConnector and the MediaRemoter can communicate with each other // through the media::mojom::Remoter and media::mojom::RemotingSource interfaces // when a sink that is capable of remoting is available. @@ -65,10 +61,8 @@ // notify when a sink becomes available for remoting, and to pass binary // messages from the sink back to the source. // -// When the CastRemotingConnector is created, it registers itself in the -// media_router::MediaRouter with a tab ID that uniquely identifies it. When a -// mirroring route is created and available for remoting, the Cast MRP will -// create a MediaRemoter and notify MediaRouter, which notifies the +// When a mirroring route is created and available for remoting, the Cast MRP +// will create a MediaRemoter and notify MediaRouter, which notifies the // CastRemotingConnector registered under the tab ID being remoted. At this // point, the CastRemotingConnector can communicate with the MediaRemoter. When // CastRemotingConnector gets notified that a sink is available, it notifies all @@ -136,7 +130,6 @@ // Main constructor. |tab_id| refers to any remoted content managed // by this instance (i.e., any remoted content from one tab/WebContents). CastRemotingConnector( - media_router::MediaRouter* router, PrefService* pref_service, SessionID tab_id, std::unique_ptr<MediaRemotingDialogCoordinator> dialog_coordinator); @@ -228,7 +221,6 @@ remoting_allowed_ = remoting_allowed; } - const raw_ptr<media_router::MediaRouter> media_router_; const raw_ptr<PrefService> pref_service_; const SessionID tab_id_;
diff --git a/chrome/browser/media/cast_remoting_connector_unittest.cc b/chrome/browser/media/cast_remoting_connector_unittest.cc index 59b5ee7..943a5d4 100644 --- a/chrome/browser/media/cast_remoting_connector_unittest.cc +++ b/chrome/browser/media/cast_remoting_connector_unittest.cc
@@ -13,7 +13,6 @@ #include "base/memory/weak_ptr.h" #include "base/run_loop.h" #include "build/build_config.h" -#include "components/media_router/browser/test/mock_media_router.h" #include "components/media_router/common/media_route.h" #include "components/media_router/common/media_source.h" #include "components/media_router/common/pref_names.h" @@ -164,7 +163,7 @@ void CreateConnector(bool remoting_allowed) { connector_.reset(); // Call dtor first if there is one created. connector_.reset(new CastRemotingConnector( - &media_router_, &pref_service_, kRemotingTabId, + &pref_service_, kRemotingTabId, std::make_unique<MediaRemotingDialogCoordinator>())); connector_->set_remoting_allowed_for_testing(remoting_allowed); } @@ -175,7 +174,6 @@ private: content::BrowserTaskEnvironment task_environment_; - media_router::MockMediaRouter media_router_; std::unique_ptr<CastRemotingConnector> connector_; };
diff --git a/chrome/browser/media/webrtc/capture_policy_utils.cc b/chrome/browser/media/webrtc/capture_policy_utils.cc index 68acdf1..0911da6 100644 --- a/chrome/browser/media/webrtc/capture_policy_utils.cc +++ b/chrome/browser/media/webrtc/capture_policy_utils.cc
@@ -105,7 +105,7 @@ return AllowedScreenCaptureLevel::kDisallowed; } -bool IsGetDisplaymediaSetSelectAllScreensAllowedForAnySite( +bool IsGetDisplayMediaSetSelectAllScreensAllowedForAnySite( content::BrowserContext* context) { #if BUILDFLAG(IS_CHROMEOS) Profile* profile = Profile::FromBrowserContext(context);
diff --git a/chrome/browser/media/webrtc/capture_policy_utils.h b/chrome/browser/media/webrtc/capture_policy_utils.h index c86dd57..0aeccd4 100644 --- a/chrome/browser/media/webrtc/capture_policy_utils.h +++ b/chrome/browser/media/webrtc/capture_policy_utils.h
@@ -65,7 +65,7 @@ content::BrowserContext* context, const GURL& url); -bool IsGetDisplaymediaSetSelectAllScreensAllowedForAnySite( +bool IsGetDisplayMediaSetSelectAllScreensAllowedForAnySite( content::BrowserContext* context); } // namespace capture_policy
diff --git a/chrome/browser/metrics/perf/metric_provider_unittest.cc b/chrome/browser/metrics/perf/metric_provider_unittest.cc index ba7c08e5..7bc501c 100644 --- a/chrome/browser/metrics/perf/metric_provider_unittest.cc +++ b/chrome/browser/metrics/perf/metric_provider_unittest.cc
@@ -19,7 +19,7 @@ #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/sync/base/user_selectable_type.h" #include "components/sync/test/test_sync_service.h" #include "content/public/test/browser_task_environment.h" @@ -316,13 +316,13 @@ // this. The Default profile is skipped when getting the sync settings from // user profile(s). testing_profile_manager_->CreateTestingProfile( - ash::BrowserContextHelper::kSigninBrowserContextBaseName); + ash::kSigninBrowserContextBaseName); // Also add two non-regular profiles that might appear on ChromeOS. They // always disable sync and are skipped when getting sync settings. testing_profile_manager_->CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + ash::kLockScreenAppBrowserContextBaseName); testing_profile_manager_->CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenBrowserContextBaseName); + ash::kLockScreenBrowserContextBaseName); metric_provider_ = std::make_unique<TestMetricProvider>( std::make_unique<TestMetricCollector>(test_params), testing_profile_manager_->profile_manager());
diff --git a/chrome/browser/performance_timeline_browsertest.cc b/chrome/browser/performance_timeline_browsertest.cc index d1038c6..5424c525 100644 --- a/chrome/browser/performance_timeline_browsertest.cc +++ b/chrome/browser/performance_timeline_browsertest.cc
@@ -5,8 +5,10 @@ #include "chrome/browser/extensions/extension_browsertest.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/sessions/content/session_tab_helper.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" +#include "extensions/browser/background_script_executor.h" namespace { @@ -32,6 +34,11 @@ .spec()); EXPECT_EQ(content::EvalJs(web_contents(), script_code).error, ""); } + + int GetActiveTabId() { + auto* active_tab = browser()->tab_strip_model()->GetActiveWebContents(); + return sessions::SessionTabHelper::IdForTab(active_tab).id(); + } }; } // namespace @@ -91,3 +98,45 @@ .ExtractInt(), 1); } + +// The fetchResource function is injected by the extension and executed. The csp +// world in this case is the Isolated world. No resource timing entry is +// emitted. +IN_PROC_BROWSER_TEST_F(PerformanceTimelineBrowserTest, + ResouceTiming_FetchWithInjectedCode) { + ASSERT_TRUE(embedded_test_server()->Start()); + const extensions::Extension* extension = LoadExtension( + test_data_dir_.AppendASCII("resource_timing/fetch_resource")); + ASSERT_TRUE(extension); + + GURL test_url = embedded_test_server()->GetURL( + "/extensions/resource_timing/test-page.html"); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); + + // Fetch resource by injecting fetchResource function into tab and execute. + const int tab_id = GetActiveTabId(); + + std::string script = + R"((async () => { + let result = await chrome.scripting.executeScript( + { + target: {tabId: $1}, + func: fetchResource + }); + chrome.test.sendScriptResult(result[0].result); + })())"; + + script = content::JsReplace(script, tab_id); + + base::Value result = extensions::BackgroundScriptExecutor::ExecuteScript( + profile(), extension->id(), script, + extensions::BackgroundScriptExecutor::ResultCapture::kSendScriptResult); + + ASSERT_TRUE(result.is_bool()); + EXPECT_TRUE(result.GetBool()); + + // There should be 0 resource entry emitted. + EXPECT_EQ(content::EvalJs(web_contents(), "getResourceTimingEntryCount();") + .ExtractInt(), + 0); +}
diff --git a/chrome/browser/policy/messaging_layer/proto/synced/security_xdr_events.proto b/chrome/browser/policy/messaging_layer/proto/synced/security_xdr_events.proto index 3079fae..ec259d7d 100644 --- a/chrome/browser/policy/messaging_layer/proto/synced/security_xdr_events.proto +++ b/chrome/browser/policy/messaging_layer/proto/synced/security_xdr_events.proto
@@ -9,6 +9,9 @@ option optimize_for = LITE_RUNTIME; +// Used for annotating sensitive fields in google3. +// ${COPYBARA_DATAPOL_IMPORT} + package cros_xdr.reporting; // The building blocks for the event types. @@ -21,12 +24,12 @@ // Trusted Computing Base attributes. message TcbAttributes { - optional string system_firmware_version = 1; enum FirmwareSecureBoot { NONE = 0; CROS_FLEX_UEFI_SECURE_BOOT = 1; CROS_VERIFIED_BOOT = 2; } + optional string system_firmware_version = 1; optional FirmwareSecureBoot firmware_secure_boot = 2; // Attributes of the security chip. message SecurityChip { @@ -144,31 +147,36 @@ // Acting process communicated externally over the network. message NetworkFlowEvent { - optional Process parent_process = 1; - optional Process process = 2; - optional string community_id_v1 = 3; - optional string local_ip = 4; - optional uint64 local_port = 5; - optional string remote_ip = 6; - optional uint64 remote_port = 7; - optional NetworkProtocol protocol = 8; enum Direction { DIRECTION_UNKNOWN = 0; INCOMING = 1; OUTGOING = 2; } - optional Direction direction = 9; - optional string remote_hostname = 10; - optional uint64 rx_bytes = 11; - optional uint64 tx_bytes = 12; enum ApplicationProtocol { - APP_PROTOCOL_UNKNOWN = 0; + APPLICATION_PROTOCOL_UNKNOWN = 0; HTTP = 1; HTTPS = 2; DNS = 3; } + optional Process parent_process = 1; + optional Process process = 2; + optional string community_id_v1 = 3; + // ${COPYBARA_DATAPOL_IP_ADDRESS} + optional string local_ip = 4; + optional uint64 local_port = 5; + // ${COPYBARA_DATAPOL_IP_ADDRESS} + optional string remote_ip = 6; + optional uint64 remote_port = 7; + optional NetworkProtocol protocol = 8; + optional Direction direction = 9; + // ${COPYBARA_DATAPOL_NETWORK_ENDPOINT} + optional string remote_hostname = 10; + optional uint64 rx_bytes = 11; + optional uint64 tx_bytes = 12; optional ApplicationProtocol application_protocol = 13; + // ${COPYBARA_DATAPOL_NETWORK_ENDPOINT} optional string http_host = 14; + // ${COPYBARA_DATAPOL_NETWORK_ENDPOINT} optional string sni_host = 15; } @@ -177,6 +185,7 @@ optional Process parent_process = 1; optional Process process = 2; optional NetworkProtocol protocol = 3; + // ${COPYBARA_DATAPOL_IP_ADDRESS} optional string bind_addr = 4; optional uint64 bind_port = 5; }
diff --git a/chrome/browser/policy/test/window_management_policy_browsertest.cc b/chrome/browser/policy/test/window_management_policy_browsertest.cc index ea24201..33e8dbf 100644 --- a/chrome/browser/policy/test/window_management_policy_browsertest.cc +++ b/chrome/browser/policy/test/window_management_policy_browsertest.cc
@@ -12,6 +12,7 @@ #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" +#include "components/permissions/features.h" #include "components/policy/core/common/policy_map.h" #include "components/policy/policy_constants.h" #include "content/public/browser/web_contents.h" @@ -24,26 +25,67 @@ namespace { -constexpr char kGetScreens[] = R"( +// Test both aliases during migration. See crbug.com/1328581. +constexpr char kOldPermissionName[] = "window-placement"; +constexpr char kNewPermissionName[] = "window-management"; + +constexpr char kGetScreensTemplate[] = R"( (async () => { try { const screenDetails = await self.getScreenDetails(); } catch { return 'error'; } - return (await navigator.permissions.query({name:'window-placement'})).state; + try { + return (await navigator.permissions.query({name:'$1'})).state; + } catch { + return "permission_error"; + } })(); )"; -constexpr char kCheckPermission[] = R"( +constexpr char kCheckPermissionTemplate[] = R"( (async () => { - return (await navigator.permissions.query({name:'window-placement'})).state; + try { + return (await navigator.permissions.query({name:'$1'})).state; + } catch { + return 'permission_error'; + } })(); )"; -class PolicyTestWindowManagement : public PolicyTest {}; +typedef std::tuple<bool, bool> PolicyTestParams; -IN_PROC_BROWSER_TEST_F(PolicyTestWindowManagement, DefaultSetting) { +class PolicyTestWindowManagement + : public PolicyTest, + public testing::WithParamInterface<PolicyTestParams> { + public: + PolicyTestWindowManagement() { + scoped_feature_list_.InitWithFeatureState( + permissions::features::kWindowManagementPermissionAlias, + AliasEnabled()); + } + + protected: + bool AliasEnabled() const { return std::get<0>(GetParam()); } + bool UseAlias() const { return std::get<1>(GetParam()); } + bool ShouldError() const { return UseAlias() && !AliasEnabled(); } + std::string GetScreensScript() const { + return base::ReplaceStringPlaceholders( + kGetScreensTemplate, + {UseAlias() ? kNewPermissionName : kOldPermissionName}, nullptr); + } + std::string GetCheckPermissionScript() const { + return base::ReplaceStringPlaceholders( + kCheckPermissionTemplate, + {UseAlias() ? kNewPermissionName : kOldPermissionName}, nullptr); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_P(PolicyTestWindowManagement, DefaultSetting) { ASSERT_TRUE(embedded_test_server()->Start()); const GURL url(embedded_test_server()->GetURL("/empty.html")); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -57,7 +99,10 @@ EXPECT_EQ(CONTENT_SETTING_ASK, host_content_settings_map->GetContentSetting( url, url, ContentSettingsType::WINDOW_MANAGEMENT)); - EXPECT_EQ("prompt", EvalJs(tab, kCheckPermission)); + + // Should error if and only if alias is used but flag is not enabled. + EXPECT_EQ(ShouldError() ? "permission_error" : "prompt", + EvalJs(tab, GetCheckPermissionScript())); PolicyMap policies; SetPolicy(&policies, key::kDefaultWindowPlacementSetting, base::Value(2)); @@ -69,8 +114,10 @@ EXPECT_EQ(CONTENT_SETTING_BLOCK, host_content_settings_map->GetContentSetting( url, url, ContentSettingsType::WINDOW_MANAGEMENT)); - EXPECT_EQ("denied", EvalJs(tab, kCheckPermission)); - EXPECT_EQ("error", EvalJs(tab, kGetScreens)); + // Should error if alias is used but flag is not enabled. + EXPECT_EQ(ShouldError() ? "permission_error" : "denied", + EvalJs(tab, GetCheckPermissionScript())); + EXPECT_EQ("error", EvalJs(tab, GetScreensScript())); SetPolicy(&policies, key::kDefaultWindowPlacementSetting, base::Value(3)); UpdateProviderPolicy(policies); @@ -81,10 +128,13 @@ EXPECT_EQ(CONTENT_SETTING_ASK, host_content_settings_map->GetContentSetting( url, url, ContentSettingsType::WINDOW_MANAGEMENT)); - EXPECT_EQ("prompt", EvalJs(tab, kCheckPermission)); + + // Should error if and only if alias is used but flag is not enabled. + EXPECT_EQ(ShouldError() ? "permission_error" : "prompt", + EvalJs(tab, GetCheckPermissionScript())); } -IN_PROC_BROWSER_TEST_F(PolicyTestWindowManagement, AllowedForUrlsSettings) { +IN_PROC_BROWSER_TEST_P(PolicyTestWindowManagement, AllowedForUrlsSettings) { ASSERT_TRUE(embedded_test_server()->Start()); const GURL url(embedded_test_server()->GetURL("/empty.html")); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -105,11 +155,13 @@ EXPECT_EQ(CONTENT_SETTING_ALLOW, host_content_settings_map->GetContentSetting( url, url, ContentSettingsType::WINDOW_MANAGEMENT)); - EXPECT_EQ("granted", EvalJs(tab, kCheckPermission)); - EXPECT_EQ("granted", EvalJs(tab, kGetScreens)); + // Should error if and only if alias is used but flag is not enabled. + std::string expect_str = ShouldError() ? "permission_error" : "granted"; + EXPECT_EQ(expect_str, EvalJs(tab, GetCheckPermissionScript())); + EXPECT_EQ(expect_str, EvalJs(tab, GetScreensScript())); } -IN_PROC_BROWSER_TEST_F(PolicyTestWindowManagement, BlockedForUrlsSettings) { +IN_PROC_BROWSER_TEST_P(PolicyTestWindowManagement, BlockedForUrlsSettings) { ASSERT_TRUE(embedded_test_server()->Start()); const GURL url(embedded_test_server()->GetURL("/empty.html")); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -130,10 +182,17 @@ EXPECT_EQ(CONTENT_SETTING_BLOCK, host_content_settings_map->GetContentSetting( url, url, ContentSettingsType::WINDOW_MANAGEMENT)); - EXPECT_EQ("denied", EvalJs(tab, kCheckPermission)); - EXPECT_EQ("error", EvalJs(tab, kGetScreens)); + // Should error if alias is used but flag is not enabled. + EXPECT_EQ(ShouldError() ? "permission_error" : "denied", + EvalJs(tab, GetCheckPermissionScript())); + EXPECT_EQ("error", EvalJs(tab, GetScreensScript())); } +INSTANTIATE_TEST_SUITE_P(, + PolicyTestWindowManagement, + ::testing::Combine(::testing::Bool(), + ::testing::Bool())); + } // namespace } // namespace policy
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java index 29ec32f..a41b3de8 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -816,6 +816,10 @@ public static final String SEARCH_WIDGET_IS_INCOGNITO_AVAILABLE = "org.chromium.chrome.browser.searchwidget.IS_INCOGNITO_AVAILABLE"; + // Segmentation platform related prefs. + public static final String SEGMENTATION_FEED_ACTIVE_USER = "Chrome.Segmentation.FeedActiveUser"; + public static final String SEGMENTATION_SHOW_QUERY_TILES = "Chrome.Segmentation.ShowQueryTiles"; + // Tracks which GUIDs there is an active notification for. public static final String SEND_TAB_TO_SELF_ACTIVE_NOTIFICATIONS = "send_tab_to_self.notification.active"; @@ -1145,6 +1149,8 @@ QUERY_TILES_SHOW_SEGMENTATION_RESULT, QUERY_TILES_SHOWN_ON_START_SURFACE, REGULAR_TAB_COUNT, + SEGMENTATION_FEED_ACTIVE_USER, + SEGMENTATION_SHOW_QUERY_TILES, SETTINGS_SAFETY_CHECK_LAST_RUN_TIMESTAMP, SETTINGS_SAFETY_CHECK_RUN_COUNTER, SHARING_LAST_SHARED_COMPONENT_NAME,
diff --git a/chrome/browser/privacy/traffic_annotation.proto b/chrome/browser/privacy/traffic_annotation.proto index 0f77f84..20b2d38 100644 --- a/chrome/browser/privacy/traffic_annotation.proto +++ b/chrome/browser/privacy/traffic_annotation.proto
@@ -134,7 +134,6 @@ string email = 1; } } - // TODO(b/254273300): add contacts tag in auditor.py repeated Contact contacts = 1; } @@ -198,15 +197,15 @@ // If none of the below apply, use this and provide // more info in the data field. OTHER = 999; + NONE = 1000; } - UserDataType type = 1; + repeated UserDataType type = 1; } - // TODO(b/254273300): add user_data tag in auditor.py - repeated UserData user_data = 8; + + UserData user_data = 8; // Date when this annotation was last reviewed // in YYYY-MM-DD format. - // TODO(b/254273300): add last_reviewed tag in auditor.py string last_reviewed = 9; }
diff --git a/chrome/browser/profiles/profile_testing_helper.cc b/chrome/browser/profiles/profile_testing_helper.cc index 41d7bb6..e1fe7c6 100644 --- a/chrome/browser/profiles/profile_testing_helper.cc +++ b/chrome/browser/profiles/profile_testing_helper.cc
@@ -9,7 +9,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/profiles/profile_helper.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) ProfileTestingHelper::ProfileTestingHelper() @@ -52,43 +52,41 @@ #endif // !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS_ASH) - signin_profile_ = manager_.CreateTestingProfile( - ash::BrowserContextHelper::kSigninBrowserContextBaseName); + signin_profile_ = + manager_.CreateTestingProfile(ash::kSigninBrowserContextBaseName); ASSERT_TRUE(signin_profile_); - ASSERT_TRUE(ash::ProfileHelper::IsSigninProfile(signin_profile_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(signin_profile_)); + ASSERT_TRUE(ash::IsSigninBrowserContext(signin_profile_)); + ASSERT_FALSE(ash::IsUserBrowserContext(signin_profile_)); ASSERT_FALSE(signin_profile_->IsOffTheRecord()); signin_profile_otr_ = signin_profile_->GetPrimaryOTRProfile(true); ASSERT_TRUE(signin_profile_otr_); - ASSERT_TRUE(ash::ProfileHelper::IsSigninProfile(signin_profile_otr_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(signin_profile_otr_)); + ASSERT_TRUE(ash::IsSigninBrowserContext(signin_profile_otr_)); + ASSERT_FALSE(ash::IsUserBrowserContext(signin_profile_otr_)); ASSERT_TRUE(signin_profile_otr_->IsOffTheRecord()); - lockscreen_profile_ = manager_.CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenBrowserContextBaseName); + lockscreen_profile_ = + manager_.CreateTestingProfile(ash::kLockScreenBrowserContextBaseName); ASSERT_TRUE(lockscreen_profile_); - ASSERT_TRUE(ash::ProfileHelper::IsLockScreenProfile(lockscreen_profile_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(lockscreen_profile_)); + ASSERT_TRUE(ash::IsLockScreenBrowserContext(lockscreen_profile_)); + ASSERT_FALSE(ash::IsUserBrowserContext(lockscreen_profile_)); ASSERT_FALSE(lockscreen_profile_->IsOffTheRecord()); lockscreen_profile_otr_ = lockscreen_profile_->GetPrimaryOTRProfile(true); ASSERT_TRUE(lockscreen_profile_otr_); - ASSERT_TRUE(ash::ProfileHelper::IsLockScreenProfile(lockscreen_profile_otr_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(lockscreen_profile_otr_)); + ASSERT_TRUE(ash::IsLockScreenBrowserContext(lockscreen_profile_otr_)); + ASSERT_FALSE(ash::IsUserBrowserContext(lockscreen_profile_otr_)); ASSERT_TRUE(lockscreen_profile_otr_->IsOffTheRecord()); - lockscreenapp_profile_ = manager_.CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + lockscreenapp_profile_ = + manager_.CreateTestingProfile(ash::kLockScreenAppBrowserContextBaseName); ASSERT_TRUE(lockscreenapp_profile_); - ASSERT_TRUE( - ash::ProfileHelper::IsLockScreenAppProfile(lockscreenapp_profile_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(lockscreenapp_profile_)); + ASSERT_TRUE(ash::IsLockScreenAppBrowserContext(lockscreenapp_profile_)); + ASSERT_FALSE(ash::IsUserBrowserContext(lockscreenapp_profile_)); ASSERT_FALSE(lockscreenapp_profile_->IsOffTheRecord()); lockscreenapp_profile_otr_ = lockscreenapp_profile_->GetPrimaryOTRProfile(true); ASSERT_TRUE(lockscreenapp_profile_otr_); - ASSERT_TRUE( - ash::ProfileHelper::IsLockScreenAppProfile(lockscreenapp_profile_otr_)); - ASSERT_FALSE(ash::ProfileHelper::IsUserProfile(lockscreenapp_profile_otr_)); + ASSERT_TRUE(ash::IsLockScreenAppBrowserContext(lockscreenapp_profile_otr_)); + ASSERT_FALSE(ash::IsUserBrowserContext(lockscreenapp_profile_otr_)); ASSERT_TRUE(lockscreenapp_profile_otr_->IsOffTheRecord()); #endif // BUILDFLAG(IS_CHROMEOS_ASH) }
diff --git a/chrome/browser/profiles/profile_types_ash.cc b/chrome/browser/profiles/profile_types_ash.cc index ac9c68b..fc12eb76 100644 --- a/chrome/browser/profiles/profile_types_ash.cc +++ b/chrome/browser/profiles/profile_types_ash.cc
@@ -4,37 +4,25 @@ #include "chrome/browser/profiles/profile_types_ash.h" -#include "base/files/file_path.h" #include "chrome/browser/profiles/profile.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" bool IsUserProfile(const Profile* profile) { - return !IsSigninProfile(profile) && !IsLockScreenAppProfile(profile) && - !IsLockScreenProfile(profile); + return ash::IsUserBrowserContext(const_cast<Profile*>(profile)); } bool IsUserProfilePath(const base::FilePath& profile_path) { - const auto& value = profile_path.value(); - return value != ash::BrowserContextHelper::kSigninBrowserContextBaseName && - value != - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName && - value != ash::BrowserContextHelper::kLockScreenBrowserContextBaseName; + return ash::IsUserBrowserContextBaseName(profile_path); } bool IsLockScreenProfile(const Profile* profile) { - return profile && - profile->GetBaseName().value() == - ash::BrowserContextHelper::kLockScreenBrowserContextBaseName; + return ash::IsLockScreenBrowserContext(const_cast<Profile*>(profile)); } bool IsLockScreenAppProfile(const Profile* profile) { - return profile && - profile->GetBaseName().value() == - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName; + return ash::IsLockScreenAppBrowserContext(const_cast<Profile*>(profile)); } bool IsSigninProfile(const Profile* profile) { - return profile && - profile->GetBaseName().value() == - ash::BrowserContextHelper::kSigninBrowserContextBaseName; + return ash::IsSigninBrowserContext(const_cast<Profile*>(profile)); }
diff --git a/chrome/browser/profiles/profile_types_ash.h b/chrome/browser/profiles/profile_types_ash.h index f54f59b..e093cd1 100644 --- a/chrome/browser/profiles/profile_types_ash.h +++ b/chrome/browser/profiles/profile_types_ash.h
@@ -5,6 +5,11 @@ #ifndef CHROME_BROWSER_PROFILES_PROFILE_TYPES_ASH_H_ #define CHROME_BROWSER_PROFILES_PROFILE_TYPES_ASH_H_ +// DEPRECATED: please use +// chromeos/ash/components/browser_context_helper/browser_context_types.h +// in the new code. +// TODO(crbug.com/1325210): Remove this file. + class Profile; namespace base {
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn index 27081b600..9e501f46 100644 --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn
@@ -279,6 +279,7 @@ "$root_gen_dir/components/history_clusters_internals_resources.pak", "$root_gen_dir/components/metrics_internals_resources.pak", "$root_gen_dir/components/optimization_guide_internals_resources.pak", + "$root_gen_dir/components/policy_resources.pak", "$root_gen_dir/components/sync_driver_sync_internals_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak", @@ -298,6 +299,7 @@ "//components/history_clusters/history_clusters_internals/resources", "//components/metrics/debug:resources", "//components/optimization_guide/optimization_guide_internals/resources", + "//components/policy/resources/webui:resources", "//components/resources:dev_ui_components_resources", "//components/sync/driver/resources", "//content:dev_ui_content_resources",
diff --git a/chrome/browser/resources/chromeos/BUILD.gn b/chrome/browser/resources/chromeos/BUILD.gn index 3328ef4..491d91c 100644 --- a/chrome/browser/resources/chromeos/BUILD.gn +++ b/chrome/browser/resources/chromeos/BUILD.gn
@@ -29,6 +29,8 @@ "network_ui:resources", "notification_tester:resources", "password_change:resources", + "supervision:resources", + "vc_tray_tester:resources", ] } @@ -91,6 +93,7 @@ "password_change:closure_compile", "set_time_dialog:closure_compile", "smb_shares:closure_compile", + "supervision:closure_compile", "sys_internals:closure_compile", "vm:closure_compile", ]
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn index b93c388..68384ef 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
@@ -144,6 +144,7 @@ "common/panel_bridge.js", "common/panel_command.js", "common/panel_menu_data.js", + "common/permission_checker.js", "common/role_type.js", "common/spannable.js", "common/tree_dumper.js",
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js index e023dbe..29dce2a 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js
@@ -14,6 +14,7 @@ import {LocaleOutputHelper} from '../common/locale_output_helper.js'; import {Msgs} from '../common/msgs.js'; import {PanelCommand, PanelCommandType} from '../common/panel_command.js'; +import {PermissionChecker} from '../common/permission_checker.js'; import {QueueMode, TtsSpeechProperties} from '../common/tts_types.js'; import {JaPhoneticMap} from '../third_party/tamachiyomi/ja_phonetic_map.js'; @@ -146,6 +147,7 @@ await Promise.all([ DesktopAutomationHandler.init(), EventStreamLogger.init(), + PermissionChecker.init(), ]); ChromeVoxState.resolveReadyPromise_(); }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js index 181bc7560b..c4eda44e 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
@@ -696,7 +696,7 @@ const mockFeedback = this.createMockFeedback(); let running = false; - const runTestIfIframeIsLoaded = async function(rootNode) { + const runTestIfIframeIsLoaded = async rootNode => { if (running) { return; } @@ -720,7 +720,7 @@ mockFeedback.call(doCmd('previousButton')) .expectSpeech('Before', 'Button'); await mockFeedback.replay(); - }.bind(this); + }; const rootNode = await this.runWithLoadedTree(this.iframesDoc); chrome.automation.getDesktop(function(desktopNode) { @@ -739,7 +739,7 @@ const mockFeedback = this.createMockFeedback(); let running = false; - const runTestIfIframeIsLoaded = async function(rootNode) { + const runTestIfIframeIsLoaded = async rootNode => { if (running) { return; } @@ -772,7 +772,7 @@ mockFeedback.call(doCmd('previousObject')) .expectSpeech('Before', 'Button'); await mockFeedback.replay(); - }.bind(this); + }; const rootNode = await this.runWithLoadedTree(this.iframesDoc); chrome.automation.getDesktop(function(desktopNode) { @@ -1605,43 +1605,43 @@ contentEditable.focus(); await this.waitForEvent(contentEditable, EventType.FOCUS); - mockFeedback.call(assertBeginning.bind(this, true)) - .call(assertEnd.bind(this, false)) + mockFeedback.call(() => assertBeginning(true)) + .call(() => assertEnd(false)) .call(press(KeyCode.DOWN)) .expectSpeech('is') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, false)) + .call(() => assertBeginning(false)) + .call(() => assertEnd(false)) .call(press(KeyCode.DOWN)) .expectSpeech('a') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, false)) + .call(() => assertBeginning(false)) + .call(() => assertEnd(false)) .call(press(KeyCode.DOWN)) .expectSpeech('test') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, true)) + .call(() => assertBeginning(false)) + .call(() => assertEnd(true)) .call(focus(textArea)) .expectSpeech('Text area') - .call(assertBeginning.bind(this, true)) - .call(assertEnd.bind(this, false)) + .call(() => assertBeginning(true)) + .call(() => assertEnd(false)) .call(press(40 /* ArrowDown */)) .expectSpeech('is') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, false)) + .call(() => assertBeginning(false)) + .call(() => assertEnd(false)) .call(press(40 /* ArrowDown */)) .expectSpeech('a') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, false)) + .call(() => assertBeginning(false)) + .call(() => assertEnd(false)) .call(press(40 /* ArrowDown */)) .expectSpeech('test') - .call(assertBeginning.bind(this, false)) - .call(assertEnd.bind(this, true)); + .call(() => assertBeginning(false)) + .call(() => assertEnd(true)); await mockFeedback.replay();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/base_automation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/base_automation_handler.js index 8d54baa..3c0eb49 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/base_automation_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/base_automation_handler.js
@@ -43,6 +43,7 @@ throw 'Listener already added: ' + eventType; } + // Note: Keeping this bind lets us keep the addListener_ callsites simpler. const listener = this.makeListener_(eventCallback.bind(this)); this.node_.addEventListener(eventType, listener, true); this.listeners_[eventType] = listener;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js index 9a2d15b..b345183 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_input_handler.js
@@ -79,9 +79,10 @@ */ init_() { this.translatorManager_.addChangeListener( - this.commitAndClearEntryState_.bind(this)); + () => this.commitAndClearEntryState_()); - chrome.runtime.onConnectExternal.addListener(this.onImeConnect_.bind(this)); + chrome.runtime.onConnectExternal.addListener( + port => this.onImeConnect_(port)); } /** @@ -302,8 +303,8 @@ if (this.imePort_) { this.imePort_.disconnect(); } - port.onDisconnect.addListener(this.onImeDisconnect_.bind(this, port)); - port.onMessage.addListener(this.onImeMessage_.bind(this)); + port.onDisconnect.addListener(() => this.onImeDisconnect_(port)); + port.onMessage.addListener(message => this.onImeMessage_(message)); this.imePort_ = port; } @@ -552,7 +553,7 @@ if (!commit && this.usesUncommittedCells) { this.inputHandler_.updateUncommittedCells_(cellsBuffer); } - this.translator_.backTranslate(cellsBuffer, function(result) { + this.translator_.backTranslate(cellsBuffer, result => { if (result === null) { console.error('Error when backtranslating braille cells'); return; @@ -565,7 +566,7 @@ if (commit) { this.inputHandler_.commitAndClearEntryState_(); } - }.bind(this)); + }); } /**
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_translator_manager.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_translator_manager.js index e2810ba..6a73a71 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_translator_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/braille_translator_manager.js
@@ -24,7 +24,7 @@ chrome.extension.getURL( 'chromevox/background/braille/liblouis_wrapper.js'), chrome.extension.getURL('chromevox/background/braille/tables'), - this.loadLiblouis_.bind(this)); + () => this.loadLiblouis_()); /** @private {!Array<function()>} */ this.changeListeners_ = [];
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/expanding_braille_translator.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/expanding_braille_translator.js index 745f702f..d70ab5814 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/expanding_braille_translator.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/expanding_braille_translator.js
@@ -146,7 +146,9 @@ text.toString().substring(chunk.start, chunk.end), formTypeMap.slice(chunk.start, chunk.end), ExpandingBrailleTranslator.nullParamsToEmptyAdapter_( - chunk.end - chunk.start, chunkTranslated.bind(null, chunk))); + chunk.end - chunk.start, + (cells, textToBraille, brailleToText) => chunkTranslated( + chunk, cells, textToBraille, brailleToText))); }); } else { finish();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js index d383e220..4b2128297 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/braille/liblouis_test.js
@@ -43,10 +43,12 @@ } function LIBLOUIS_TEST_F(testName, testFunc, opt_preamble) { + // This needs to stay a function - don't convert to arrow function. const wrappedTestFunc = function() { const liblouis = new LibLouis( chrome.extension.getURL( 'chromevox/background/braille/liblouis_wrapper.js'), + // This needs to stay bound - don't convert to arrow function. '', testFunc.bind(this)); }; TEST_F('ChromeVoxLibLouisTest', testName, wrappedTestFunc, opt_preamble); @@ -77,9 +79,9 @@ #endif `, 'MAYBE_CheckAllTables', function(liblouis) { - BrailleTable.getAll(this.newCallback(function(tables) { + BrailleTable.getAll(this.newCallback(tables => { let i = 0; - const checkNextTable = function() { + const checkNextTable = () => { const table = tables[i++]; if (table) { this.withTranslator( @@ -90,9 +92,9 @@ checkNextTable(); }); } - }.bind(this); + }; checkNextTable(); - }.bind(this))); + })); }); LIBLOUIS_TEST_F('testBackTranslateComputerBraille', function(liblouis) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js index faea7a1..f6f6908 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js
@@ -26,6 +26,7 @@ import {LogType} from '../common/log_types.js'; import {Msgs} from '../common/msgs.js'; import {PanelCommand, PanelCommandType} from '../common/panel_command.js'; +import {PermissionChecker} from '../common/permission_checker.js'; import {TreeDumper} from '../common/tree_dumper.js'; import {Personality, QueueMode, TtsSettings, TtsSpeechProperties} from '../common/tts_types.js'; @@ -55,7 +56,6 @@ const Dir = constants.Dir; const EventType = chrome.automation.EventType; const RoleType = chrome.automation.RoleType; -const SessionType = chrome.chromeosInfoPrivate.SessionType; /** * @typedef {{ @@ -76,12 +76,6 @@ this.imageNode_; /** @private {boolean} */ - this.isIncognito_ = Boolean(chrome.runtime.getManifest()['incognito']); - - /** @private {boolean} */ - this.isKioskSession_ = false; - - /** @private {boolean} */ this.languageLoggingEnabled_ = false; this.init_(); @@ -95,14 +89,6 @@ this.languageLoggingEnabled_ |= flagEnabled; } - /** - * @param {!SessionType} sessionType - * @private - */ - updateIsKioskSession_(sessionType) { - this.isKioskSession_ = (sessionType === SessionType.KIOSK); - } - /** @private */ init_() { chrome.commandLinePrivate.hasSwitch( @@ -111,16 +97,12 @@ chrome.commandLinePrivate.hasSwitch( 'enable-experimental-accessibility-language-detection-dynamic', enabled => this.updateLanguageLoggingEnabled_(enabled)); - - chrome.chromeosInfoPrivate.get( - ['sessionType'], - result => this.updateIsKioskSession_(result['sessionType'])); } /** @override */ onCommand(command) { // Check for a command denied in incognito contexts and kiosk. - if (!this.isAllowed_(command)) { + if (!PermissionChecker.isAllowed(command)) { return true; } @@ -1423,20 +1405,6 @@ } /** - * @param {!Command} command - * @return {boolean} - * @private - */ - isAllowed_(command) { - if (!this.isIncognito_ && !this.isKioskSession_) { - return true; - } - - return !CommandStore.CMD_ALLOWLIST[command] || - !CommandStore.CMD_ALLOWLIST[command].denySignedOut; - } - - /** * @param {boolean} isPrevious * @private */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js index 9cb154ed..19fb0b2 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js
@@ -296,7 +296,7 @@ node.parent.root.role === RoleType.ROOT_WEB_AREA; if (isRootWebArea && !isFrame && evt.eventFrom !== 'action') { chrome.automation.getFocus( - this.maybeRecoverFocusAndOutput_.bind(this, evt)); + focus => this.maybeRecoverFocusAndOutput_(evt, focus)); return; } @@ -407,7 +407,7 @@ } this.lastRootUrl_ = ''; - chrome.automation.getFocus(function(focus) { + chrome.automation.getFocus(focus => { // In some situations, ancestor windows get focused before a descendant // webView/rootWebArea. In particular, a window that gets opened but no // inner focus gets set. We catch this generically by re-targetting focus @@ -439,7 +439,7 @@ } this.maybeRecoverFocusAndOutput_(evt, focus); - }.bind(this)); + }); } /** @@ -758,7 +758,7 @@ onMenuEnd(evt) { // This is a work around for Chrome context menus not firing a focus event // after you close them. - chrome.automation.getFocus(function(focus) { + chrome.automation.getFocus(focus => { if (focus) { // Directly output the node here; do not go through |onFocus| as it // contains a lot of logic that can move the selection (if in an @@ -769,7 +769,7 @@ .go(); ChromeVoxRange.set(range); } - }.bind(this)); + }); } /** @@ -878,7 +878,7 @@ // Deny recovery for chrome urls. if (pos && url.indexOf('chrome://') !== 0) { focusedRoot.hitTestWithReply( - pos.x, pos.y, this.onHitTestResult.bind(this)); + pos.x, pos.y, node => this.onHitTestResult(node)); return; }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/download_handler_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/download_handler_test.js index c8f4b17..4a14416 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/download_handler_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/download_handler_test.js
@@ -14,7 +14,7 @@ addFakeApi(timeRemainingUnits) { // Fake out Chrome Downloads API namespace. chrome.downloads = {}; - chrome.downloads.search = function(query, callback) { + chrome.downloads.search = (query, callback) => { callback([{ id: query.id, fileName: 'test.pdf', @@ -22,7 +22,7 @@ totalBytes: 10, estimatedEndTime: this.getTimeRemaining(timeRemainingUnits), }]); - }.bind(this); + }; chrome.downloads.onChanged = new FakeChromeEvent(); chrome.downloads.State = { @@ -35,7 +35,7 @@ /** @override */ setUp() { super.setUp(); - window.simulateEvent = this.simulateEvent.bind(this); + window.simulateEvent = item => this.simulateEvent(item); } /** @override */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcon_engine.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcon_engine.js index 6c789618..feee1b44 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcon_engine.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcon_engine.js
@@ -252,13 +252,11 @@ request.responseType = 'arraybuffer'; // Decode asynchronously. - request.onload = (function() { - this.context_.decodeAudioData( - /** @type {!ArrayBuffer} */ (request.response), - (function(buffer) { - this.buffers_[name] = buffer; - }).bind(this)); - }).bind(this); + request.onload = () => { + this.context_.decodeAudioData( + /** @type {!ArrayBuffer} */ (request.response), + buffer => this.buffers_[name] = buffer); + }; request.send(); } @@ -770,7 +768,7 @@ this.progressTime_ = this.context_.currentTime; this.generateProgressTickTocks_(); this.progressIntervalID_ = - setInterval(this.generateProgressTickTocks_.bind(this), 1000); + setInterval(() => this.generateProgressTickTocks_(), 1000); } /** Stop playing any tick / tock progress sounds. */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcons.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcons.js index f58840a..fb7263b 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcons.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/earcons.js
@@ -32,9 +32,9 @@ if (chrome.audio) { chrome.audio.getDevices( {isActive: true, streamTypes: [chrome.audio.StreamType.OUTPUT]}, - this.updateShouldPanForDevices_.bind(this)); + devices => this.updateShouldPanForDevices_(devices)); chrome.audio.onDeviceListChanged.addListener( - this.updateShouldPanForDevices_.bind(this)); + devices => this.updateShouldPanForDevices_(devices)); } else { this.shouldPan_ = false; }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js index cf0519f6..e5d52bc 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editable_text_base.js
@@ -114,12 +114,8 @@ */ this.value_ = ''; Object.defineProperty(this, 'value', { - get: function() { - return this.value_; - }.bind(this), - set: function(val) { - this.value_ = val.replace('\u00a0', ' '); - }.bind(this), + get: () => this.value_, + set: val => this.value_ = val.replace('\u00a0', ' '), }); this.value = value;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js index 4620840..2dd70b1 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
@@ -65,7 +65,7 @@ /** @private {!Array<AutomationIntent>} */ this.inferredIntents_ = []; - chrome.automation.getDesktop(function(desktop) { + chrome.automation.getDesktop(desktop => { const isTextArea = node.htmlTag === 'textarea'; // ChromeVox handles two general groups of text fields: @@ -105,7 +105,7 @@ this.editableText_ = useRichText ? new AutomationRichEditableText(node) : new AutomationEditableText(node); - }.bind(this)); + }); } /** @return {!AutomationNode} */ @@ -420,9 +420,7 @@ return true; } const exited = AutomationUtil.getUniqueAncestors(next, deep); - return Boolean(exited.find(function(item) { - return item === this.node_; - }.bind(this))); + return exited.includes(this.node_); } /** @override */ @@ -438,9 +436,7 @@ return true; } const exited = AutomationUtil.getUniqueAncestors(next, deep); - return Boolean(exited.find(function(item) { - return item === this.node_; - }.bind(this))); + return exited.includes(this.node_); } /** @override */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/focus_automation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/focus_automation_handler.js index cee2aee..c405933 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/focus_automation_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/focus_automation_handler.js
@@ -32,7 +32,8 @@ this.previousActiveDescendant_; chrome.automation.getDesktop(desktop => { - desktop.addEventListener(EventType.FOCUS, this.onFocus.bind(this), false); + desktop.addEventListener( + EventType.FOCUS, evt => this.onFocus(evt), false); }); }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions.js index e38656f..5792b7bd 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions.js
@@ -49,7 +49,7 @@ chrome.automation.addTreeChangeObserver( TreeChangeObserverFilter.LIVE_REGION_TREE_CHANGES, - this.onTreeChange.bind(this)); + treeChange => this.onTreeChange(treeChange)); } static init() {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions_test.js index b7cc840..9927bda 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/live_regions_test.js
@@ -171,7 +171,7 @@ } }; const go = rootNode.find({role: RoleType.BUTTON}); - mockFeedback.call(this.simulateUserInteraction.bind(this)) + mockFeedback.call(this.simulateUserInteraction) .call(go.doDefault.bind(go)) .expectSpeech(focusOrLive) .expectSpeech(focusOrLive); @@ -194,7 +194,7 @@ </script> `); const go = rootNode.find({role: RoleType.BUTTON}); - mockFeedback.call(this.simulateUserInteraction.bind(this)) + mockFeedback.call(this.simulateUserInteraction) .call(go.doDefault.bind(go)) .expectSpeech('Focus') .expectSpeech(candidate => {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/media_automation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/media_automation_handler.js index 31ee13b..87766dfe 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/media_automation_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/media_automation_handler.js
@@ -55,14 +55,14 @@ /** @override */ onTtsEnd() { const now = new Date(); - setTimeout(function() { + setTimeout(() => { const then = this.lastTtsEvent_; if (now < then) { return; } this.lastTtsEvent_ = now; this.update_({end: true}); - }.bind(this), MediaAutomationHandler.MIN_WAITTIME_MS); + }, MediaAutomationHandler.MIN_WAITTIME_MS); } /** @override */
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js index 9c93353..df22397f 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
@@ -32,7 +32,7 @@ import {OutputInterface} from './output_interface.js'; import {OutputFormatLogger} from './output_logger.js'; import {OutputRoleInfo} from './output_role_info.js'; -import {OutputRule, OutputRuleSpecifier} from './output_rules.js'; +import {AncestryOutputRule, OutputRule, OutputRuleSpecifier} from './output_rules.js'; import * as outputTypes from './output_types.js'; const AriaCurrentState = chrome.automation.AriaCurrentState; @@ -432,11 +432,11 @@ */ onSpeechEnd(callback) { this.speechEndCallback_ = - /** @type {function(boolean=)} */ (function(opt_cleanupOnly) { + /** @type {function(boolean=)} */ (opt_cleanupOnly => { if (!opt_cleanupOnly) { callback(); } - }.bind(this)); + }); return this; } @@ -658,7 +658,7 @@ let prevNode = prevRange.start.node; let node = range.start.node; - const formatNodeAndAncestors = function(node, prevNode) { + const formatNodeAndAncestors = (node, prevNode) => { const buff = []; if (addContextBefore) { @@ -676,7 +676,7 @@ this.locations_.push(node.location); } return buff; - }.bind(this); + }; let lca = null; if (range.start.node !== range.end.node) { @@ -857,7 +857,7 @@ ancestryHelper_(args) { let {node, prevNode, buff, formatLog, type, ancestors, formatName} = args; - const rule = new OutputRule(type); + const rule = new AncestryOutputRule(type); // First, look up the event type's format block. const eventBlock = OutputRule.RULES[rule.event]; @@ -880,9 +880,9 @@ // the last iteration. rule.role = CustomRole.DEFAULT; rule.populateRole(formatNode.role, roleInfo.inherits, formatName); + rule.populateNavigation(formatName); if (eventBlock[rule.role][formatName]) { - rule.navigation = formatName; rule.output = eventBlock[rule.role][formatName].speak ? outputTypes.OutputFormatType.SPEAK : undefined;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_rules.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_rules.js index 74fda9b..1de7ae1 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_rules.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output_rules.js
@@ -85,10 +85,6 @@ this.role_ = role; } - /** @param {string|undefined} navigation */ - set navigation(navigation) { - this.navigation_ = navigation; - } /** @param {string|undefined} output */ set output(output) { this.output_ = output; @@ -112,6 +108,15 @@ } } +export class AncestryOutputRule extends OutputRule { + /** @param {string|undefined} formatName */ + populateNavigation(formatName) { + if (formatName && OutputRule.RULES[this.event_][this.role_][formatName]) { + this.navigation_ = formatName; + } + } +} + /** * An object that specifies the rules for outputting a certain role on a * specific event, based on the type of output.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/i_search.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/i_search.js index f73be99f..060b1e2 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/i_search.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/i_search.js
@@ -49,7 +49,7 @@ */ search(searchStr, dir, opt_nextObject) { clearTimeout(this.callbackId_); - const step = function() { + const step = () => { searchStr = searchStr.toLocaleLowerCase(); const node = this.cursor.node; let result = node; @@ -75,7 +75,7 @@ } }; - this.callbackId_ = setTimeout(step.bind(this), 0); + this.callbackId_ = setTimeout(() => step(), 0); } clear() {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_node_menu_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_node_menu_background.js index 42391b81d..25c23736 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_node_menu_background.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_node_menu_background.js
@@ -106,7 +106,7 @@ this.nodeCount_++; if (this.nodeCount_ >= PanelNodeMenuBackground.MAX_NODES_BEFORE_ASYNC) { this.nodeCount_ = 0; - setTimeout(this.findMoreNodes_.bind(this), 0); + setTimeout(() => this.findMoreNodes_(), 0); return; } }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/primary_tts.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/primary_tts.js index 9eceb57..e1b5e38a 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/primary_tts.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/primary_tts.js
@@ -127,11 +127,12 @@ } // At startup. - chrome.settingsPrivate.getAllPrefs(this.updateFromPrefs_.bind(this, false)); + chrome.settingsPrivate.getAllPrefs( + prefs => this.updateFromPrefs_(false, prefs)); // At runtime. chrome.settingsPrivate.onPrefsChanged.addListener( - this.updateFromPrefs_.bind(this, true)); + prefs => this.updateFromPrefs_(true, prefs)); } /**
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/permission_checker.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/permission_checker.js new file mode 100644 index 0000000..79cdeb12 --- /dev/null +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/permission_checker.js
@@ -0,0 +1,56 @@ +// 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. + +/** + * @fileoverview Handles validation of current permissions before performing an + * action. + */ +import {Command, CommandStore} from './command_store.js'; + +const SessionType = chrome.chromeosInfoPrivate.SessionType; + +export class PermissionChecker { + /** @private */ + constructor() { + /** @private {boolean} */ + this.isIncognito_ = Boolean(chrome.runtime.getManifest()['incognito']); + + /** @private {boolean} */ + this.isKioskSession_ = false; + } + + static async init() { + PermissionChecker.instance = new PermissionChecker(); + await PermissionChecker.instance.fetchState_(); + } + + /** + * @param {!Command} command + * @return {boolean} + */ + static isAllowed(command) { + return PermissionChecker.instance.isAllowed_(command); + } + + /** + * @param {!Command} command + * @return {boolean} + * @private + */ + isAllowed_(command) { + if (!this.isIncognito_ && !this.isKioskSession_) { + return true; + } + + return !CommandStore.CMD_ALLOWLIST[command] || + !CommandStore.CMD_ALLOWLIST[command].denySignedOut; + } + + /** @private */ + async fetchState_() { + const result = await new Promise( + resolve => chrome.chromeosInfoPrivate.get(['sessionType'], resolve)); + this.isKioskSession_ = result['sessionType'] === SessionType.KIOSK; + } +}
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/menu_manager.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/menu_manager.js index 46c6f93..9d0651eb 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/menu_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/menu_manager.js
@@ -12,6 +12,15 @@ export class MenuManager { constructor() { /** + * The currently active menu, if any. + * @private {?PanelMenu} + */ + this.activeMenu_ = null; + + /** @private {string} */ + this.lastMenu_ = ''; + + /** * The array of top-level menus. * @private {!Array<!PanelMenu>} */ @@ -43,25 +52,37 @@ return specifiedMenu || this.searchMenu_ || this.menus_[0]; } - /** - * Temporary method during migration from panel.js. - * @return {!Array<!PanelMenu>} - */ + // The following getters and setters are temporary during the migration from + // panel.js. + + /** @return {?PanelMenu} */ + get activeMenu() { + return this.activeMenu_; + } + /** @param {?PanelMenu} menu */ + set activeMenu(menu) { + this.activeMenu_ = menu; + } + + /** @return {string} */ + get lastMenu() { + return this.lastMenu_; + } + /** @param {string} menuMsg */ + set lastMenu(menuMsg) { + this.lastMenu_ = menuMsg; + } + + /** @return {!Array<!PanelMenu>} */ get menus() { return this.menus_; } - /** - * Temporary method during migration from panel.js. - * @return {?PanelSearchMenu} - */ + /** @return {?PanelSearchMenu} */ get searchMenu() { return this.searchMenu_; } - /** - * Temporary method during migration from panel.js. - * @param {?PanelSearchMenu} menu - */ + /** @param {?PanelSearchMenu} menu */ set searchMenu(menu) { this.searchMenu_ = menu; }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js index 54c28e3..a4da665 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel.js
@@ -36,15 +36,6 @@ /** @private */ constructor() { super(); - /** - * The currently active menu, if any. - * @private {?PanelMenu} - */ - this.activeMenu_ = null; - - /** @private {string} */ - this.lastMenu_ = ''; - /** @private {!PanelMode} */ this.mode_ = PanelMode.COLLAPSED; @@ -226,7 +217,7 @@ this.onOpenMenus_(undefined, String(command.data)); break; case PanelCommandType.OPEN_MENUS_MOST_RECENT: - this.onOpenMenus_(undefined, this.lastMenu_); + this.onOpenMenus_(undefined, this.menuManager_.lastMenu); break; case PanelCommandType.SEARCH: this.onSearch_(); @@ -554,10 +545,10 @@ $('menu-bar').removeChild(menu.menuBarItemElement); $('menus_background').removeChild(menu.menuContainerElement); } - if (this.activeMenu_) { - this.lastMenu_ = this.activeMenu_.menuMsg; + if (this.menuManager_.activeMenu) { + this.menuManager_.lastMenu = this.menuManager_.activeMenu.menuMsg; } - this.activeMenu_ = null; + this.menuManager_.activeMenu = null; } /** @@ -791,20 +782,20 @@ * @private */ activateMenu_(menu, activateFirstItem) { - if (menu === this.activeMenu_) { + if (menu === this.menuManager_.activeMenu) { return; } - if (this.activeMenu_) { - this.activeMenu_.deactivate(); - this.activeMenu_ = null; + if (this.menuManager_.activeMenu) { + this.menuManager_.activeMenu.deactivate(); + this.menuManager_.activeMenu = null; } - this.activeMenu_ = menu; + this.menuManager_.activeMenu = menu; this.pendingCallback_ = null; - if (this.activeMenu_) { - this.activeMenu_.activate(activateFirstItem); + if (this.menuManager_.activeMenu) { + this.menuManager_.activeMenu.activate(activateFirstItem); } } @@ -813,7 +804,7 @@ * @private */ scrollToTop_() { - this.activeMenu_.scrollToTop(); + this.menuManager_.activeMenu.scrollToTop(); } /** @@ -821,7 +812,7 @@ * @private */ scrollToBottom_() { - this.activeMenu_.scrollToBottom(); + this.menuManager_.activeMenu.scrollToBottom(); } /** @@ -832,7 +823,7 @@ advanceActiveMenuBy_(delta) { let activeIndex = -1; for (let i = 0; i < this.menuManager_.menus.length; i++) { - if (this.activeMenu_ === this.menuManager_.menus[i]) { + if (this.menuManager_.activeMenu === this.menuManager_.menus[i]) { activeIndex = i; break; } @@ -883,8 +874,8 @@ * @private */ advanceItemBy_(delta) { - if (this.activeMenu_) { - this.activeMenu_.advanceItemBy(delta); + if (this.menuManager_.activeMenu) { + this.menuManager_.activeMenu.advanceItemBy(delta); } } @@ -897,7 +888,7 @@ * @private */ onMouseUp_(event) { - if (!this.activeMenu_) { + if (!this.menuManager_.activeMenu) { return; } @@ -912,8 +903,9 @@ target = target.parentElement; } - if (target && this.activeMenu_) { - this.pendingCallback_ = this.activeMenu_.getCallbackForElement(target); + if (target && this.menuManager_.activeMenu) { + this.pendingCallback_ = + this.menuManager_.activeMenu.getCallbackForElement(target); } this.closeMenusAndRestoreFocus(); } @@ -944,7 +936,7 @@ return; } - if (!this.activeMenu_) { + if (!this.menuManager_.activeMenu) { return; } @@ -1043,8 +1035,8 @@ * @private */ getCallbackForCurrentItem_() { - if (this.activeMenu_) { - return this.activeMenu_.getCallbackForCurrentItem(); + if (this.menuManager_.activeMenu) { + return this.menuManager_.activeMenu.getCallbackForCurrentItem(); } return null; } @@ -1064,7 +1056,7 @@ // Make sure we're not in full-screen mode. this.setMode_(PanelMode.COLLAPSED); - this.activeMenu_ = null; + this.menuManager_.activeMenu = null; await BackgroundBridge.PanelBackground.waitForPanelCollapse();
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js index 80b705f..2b6331d 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/panel/panel_test.js
@@ -60,7 +60,7 @@ // to wait until an update has been made. Swap in our hook, wait, then // restore after. const makeAssertions = () => { - const menu = this.getPanel().instance.activeMenu_; + const menu = this.getPanel().instance.menuManager_.activeMenu_; assertEquals(menuMsg, menu.menuMsg); }; @@ -77,7 +77,7 @@ } assertActiveMenuItem(menuMsg, menuItemTitle, opt_menuItemShortcut) { - const menu = this.getPanel().instance.activeMenu_; + const menu = this.getPanel().instance.menuManager_.activeMenu_; const menuItem = menu.items_[menu.activeIndex_]; assertEquals(menuMsg, menu.menuMsg); assertEquals(menuItemTitle, menuItem.menuItemTitle); @@ -98,7 +98,7 @@ } isMenuTitleMessage(menuTitleMessage) { - const menu = this.getPanel().instance.activeMenu_; + const menu = this.getPanel().instance.menuManager_.activeMenu_; return menuTitleMessage === menu.menuMsg; }
diff --git a/chrome/browser/resources/chromeos/accessibility/common/local_storage.js b/chrome/browser/resources/chromeos/accessibility/common/local_storage.js index c937439..553d303 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/local_storage.js +++ b/chrome/browser/resources/chromeos/accessibility/common/local_storage.js
@@ -90,11 +90,11 @@ /** * @param {string} key - * @param {number=} default_value + * @param {number=} defaultValue * @return {number} */ - static getNumber(key, default_value) { - const value = LocalStorage.getTypeChecked(key, 'number', default_value); + static getNumber(key, defaultValue) { + const value = LocalStorage.getTypeChecked(key, 'number', defaultValue); if (isNaN(value)) { throw new Error('Value in LocalStorage for key "' + key + '" is NaN'); } @@ -103,11 +103,11 @@ /** * @param {string} key - * @param {string=} default_value + * @param {string=} defaultValue * @return {string} */ - static getString(key, default_value) { - const value = LocalStorage.getTypeChecked(key, 'string', default_value); + static getString(key, defaultValue) { + const value = LocalStorage.getTypeChecked(key, 'string', defaultValue); return String(value); }
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/BUILD.gn b/chrome/browser/resources/chromeos/edu_coexistence/BUILD.gn index 8885fce..dd6cf7a 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/BUILD.gn +++ b/chrome/browser/resources/chromeos/edu_coexistence/BUILD.gn
@@ -55,6 +55,7 @@ deps = [ ":edu_coexistence_button", ":edu_coexistence_template", + "//chrome/browser/resources/chromeos/supervision:supervised_user_error", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] } @@ -63,6 +64,7 @@ deps = [ ":edu_coexistence_button", ":edu_coexistence_template", + "//chrome/browser/resources/chromeos/supervision:supervised_user_offline", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] }
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence.html b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence.html index f8d6d03..4bf3b81 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence.html +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence.html
@@ -11,6 +11,7 @@ } </style> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> + <link rel="stylesheet" href="chrome://resources/chromeos/colors/cros_styles.css"> <script type="module" src="edu_coexistence_app.js"></script> </head> <body>
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.html b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.html index 12c098b..76ea3bd 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.html +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.html
@@ -2,23 +2,7 @@ <edu-coexistence-template> <span slot="main"> - <div class="column-layout content-container"> - <div class="column-layout title-area"> - <div> - <img class="google-full-logo" - src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt=""> - </div> - <div> - <h1>$i18n{eduCoexistenceErrorHeading}</h1> - </div> - <div> - <p class="secondary">$i18n{eduCoexistenceErrorDescription}</p> - </div> - </div> - <div class="content-area"> - <img src="an_error_occurred.svg"> - </div> - </div> + <supervised-user-error></supervised-user-error> </span> <span slot="buttons"> <div class="footer">
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.js b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.js index 670c6968..b3bdcfa8b 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.js +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_error.js
@@ -5,6 +5,7 @@ import './edu_coexistence_css.js'; import './edu_coexistence_template.js'; import './edu_coexistence_button.js'; +import './supervision/supervised_user_error.js'; import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.html b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.html index e4c75c8..0b09a25 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.html +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.html
@@ -2,21 +2,7 @@ <edu-coexistence-template> <div slot="main" class="column-layout content-container"> - <div class="column-layout title-area"> - <div> - <img class="google-full-logo" - src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt=""> - </div> - <div> - <h1>$i18n{eduCoexistenceNetworkDownHeading}</h1> - </div> - <div> - <p class="secondary">$i18n{eduCoexistenceNetworkDownDescription}</p> - </div> - </div> - <div class="content-area"> - <img src="no_network.svg"> - </div> + <supervised-user-offline></supervised-user-offline> </div> <div slot="buttons" class="footer"> <div class="new-oobe-buttons-layout">
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.js b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.js index 60ea83e..89cda17 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.js +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_offline.js
@@ -5,6 +5,7 @@ import './edu_coexistence_css.js'; import './edu_coexistence_template.js'; import './edu_coexistence_button.js'; +import './supervision/supervised_user_offline.js'; import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/browser/resources/chromeos/parent_access/BUILD.gn b/chrome/browser/resources/chromeos/parent_access/BUILD.gn index 14b0a78..ab528e57 100644 --- a/chrome/browser/resources/chromeos/parent_access/BUILD.gn +++ b/chrome/browser/resources/chromeos/parent_access/BUILD.gn
@@ -41,10 +41,10 @@ js_library("parent_access_app") { deps = [ ":parent_access_after", - ":parent_access_error", - ":parent_access_offline", ":parent_access_ui", ":parent_access_ui_handler", + "//chrome/browser/resources/chromeos/supervision:supervised_user_error", + "//chrome/browser/resources/chromeos/supervision:supervised_user_offline", "//chrome/browser/ui/webui/ash/parent_access:mojo_bindings_webui_js", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] @@ -58,18 +58,6 @@ ] } -js_library("parent_access_error") { - deps = [ - "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", - ] -} - -js_library("parent_access_offline") { - deps = [ - "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", - ] -} - js_library("parent_access_ui") { deps = [ ":parent_access_controller", @@ -96,8 +84,6 @@ js_files = [ "parent_access_after.js", "parent_access_app.js", - "parent_access_offline.js", - "parent_access_error.js", "parent_access_ui.js", ] }
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_app.html b/chrome/browser/resources/chromeos/parent_access/parent_access_app.html index a292d19..84bed38 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_app.html +++ b/chrome/browser/resources/chromeos/parent_access/parent_access_app.html
@@ -3,8 +3,8 @@ </parent-access-ui> <parent-access-after id="parent-access-after" slot="view"> </parent-access-after> - <parent-access-error id="parent-access-error" slot="view"> - </parent-access-error> - <parent-access-offline id="parent-access-offline" slot="view"> - </parent-access-offline> + <supervised-user-error id="supervised-user-error" slot="view"> + </supervised-user-error> + <supervised-user-offline id="supervised-user-offline" slot="view"> + </supervised-user-offline> </cr-view-manager>
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_app.js b/chrome/browser/resources/chromeos/parent_access/parent_access_app.js index 9e5b0b1..44d6db4 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_app.js +++ b/chrome/browser/resources/chromeos/parent_access/parent_access_app.js
@@ -7,8 +7,8 @@ // into |loadTimeData|. import './strings.m.js'; import './parent_access_after.js'; -import './parent_access_error.js'; -import './parent_access_offline.js'; +import './supervision/supervised_user_error.js'; +import './supervision/supervised_user_offline.js'; import './parent_access_ui.js'; import 'chrome://resources/cr_elements/cr_view_manager/cr_view_manager.js'; @@ -21,8 +21,8 @@ export const Screens = { ONLINE_FLOW: 'parent-access-ui', AFTER_FLOW: 'parent-access-after', - ERROR: 'parent-access-error', - OFFLINE: 'parent-access-offline', + ERROR: 'supervised-user-error', + OFFLINE: 'supervised-user-offline', }; class ParentAccessApp extends PolymerElement {
diff --git a/chrome/browser/resources/chromeos/supervision/BUILD.gn b/chrome/browser/resources/chromeos/supervision/BUILD.gn new file mode 100644 index 0000000..31fd6fc6 --- /dev/null +++ b/chrome/browser/resources/chromeos/supervision/BUILD.gn
@@ -0,0 +1,72 @@ +# 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. + +import("//chrome/common/features.gni") +import("//third_party/closure_compiler/compile_js.gni") +import("//tools/grit/grit_rule.gni") +import("//tools/polymer/html_to_js.gni") +import("//ui/webui/resources/tools/generate_grd.gni") + +generated_grd = "$target_gen_dir/resources.grd" +resource_path_prefix = "supervision" + +generate_grd("build_grd") { + out_grd = generated_grd + grd_prefix = "supervision" + + input_files_base_dir = + rebase_path( + "$root_gen_dir/chrome/browser/resources/chromeos/supervision/", + root_build_dir) + input_files = [ + "supervised_user_error.js", + "supervised_user_offline.js", + ] +} + +grit("resources") { + defines = chrome_grit_defines + + # These arguments are needed since the grd is generated at build time. + enable_input_discovery_for_gn_analyze = false + source = generated_grd + deps = [ + ":build_grd", + ":web_components", + ] + outputs = [ + "grit/supervision_resources.h", + "grit/supervision_resources_map.cc", + "grit/supervision_resources_map.h", + "supervision_resources.pak", + ] + output_dir = "$root_gen_dir/chrome" +} + +js_type_check("closure_compile") { + is_polymer3 = true + deps = [ + ":supervised_user_error", + ":supervised_user_offline", + ] +} + +js_library("supervised_user_error") { + deps = [ + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", + ] +} + +js_library("supervised_user_offline") { + deps = [ + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", + ] +} + +html_to_js("web_components") { + js_files = [ + "supervised_user_error.js", + "supervised_user_offline.js", + ] +}
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_error.html b/chrome/browser/resources/chromeos/supervision/supervised_user_error.html similarity index 82% rename from chrome/browser/resources/chromeos/parent_access/parent_access_error.html rename to chrome/browser/resources/chromeos/supervision/supervised_user_error.html index 61111836..a6e8347a 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_error.html +++ b/chrome/browser/resources/chromeos/supervision/supervised_user_error.html
@@ -32,6 +32,6 @@ <img class="google-logo" src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt="Google"> </img> - <div class="error-title"> $i18n{errorTitle} </div> - <div class="error-text"> $i18n{errorDescription} </div> + <div class="error-title">$i18n{supervisedUserErrorTitle}</div> + <div class="error-text">$i18n{supervisedUserErrorDescription}</div> </div>
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_error.js b/chrome/browser/resources/chromeos/supervision/supervised_user_error.js similarity index 60% rename from chrome/browser/resources/chromeos/parent_access/parent_access_error.js rename to chrome/browser/resources/chromeos/supervision/supervised_user_error.js index f37d9214..eed9a55 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_error.js +++ b/chrome/browser/resources/chromeos/supervision/supervised_user_error.js
@@ -1,16 +1,16 @@ -// Copyright 2022 The Chromium Authors +// 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. import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -class ParentAccessError extends PolymerElement { +class SupervisedUserError extends PolymerElement { static get is() { - return 'parent-access-error'; + return 'supervised-user-error'; } static get template() { return html`{__html_template__}`; } } -customElements.define(ParentAccessError.is, ParentAccessError); +customElements.define(SupervisedUserError.is, SupervisedUserError);
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_offline.html b/chrome/browser/resources/chromeos/supervision/supervised_user_offline.html similarity index 82% rename from chrome/browser/resources/chromeos/parent_access/parent_access_offline.html rename to chrome/browser/resources/chromeos/supervision/supervised_user_offline.html index 731ea21..782fa3c 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_offline.html +++ b/chrome/browser/resources/chromeos/supervision/supervised_user_offline.html
@@ -32,6 +32,6 @@ <img class="google-logo" src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt="Google"> </img> - <div class="offline-title"> $i18n{offlineTitle} </div> - <div class="offline-text"> $i18n{offlineDescription} </div> + <div class="offline-title">$i18n{supervisedUserOfflineTitle}</div> + <div class="offline-text">$i18n{supervisedUserOfflineDescription}</div> </div> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_offline.js b/chrome/browser/resources/chromeos/supervision/supervised_user_offline.js similarity index 65% rename from chrome/browser/resources/chromeos/parent_access/parent_access_offline.js rename to chrome/browser/resources/chromeos/supervision/supervised_user_offline.js index 4a36a1a..204e1e1 100644 --- a/chrome/browser/resources/chromeos/parent_access/parent_access_offline.js +++ b/chrome/browser/resources/chromeos/supervision/supervised_user_offline.js
@@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors +// 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. @@ -6,13 +6,13 @@ import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -class ParentAccessOffline extends PolymerElement { +class SupervisedUserOffline extends PolymerElement { static get is() { - return 'parent-access-offline'; + return 'supervised-user-offline'; } static get template() { return html`{__html_template__}`; } } -customElements.define(ParentAccessOffline.is, ParentAccessOffline); \ No newline at end of file +customElements.define(SupervisedUserOffline.is, SupervisedUserOffline); \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/BUILD.gn b/chrome/browser/resources/chromeos/vc_tray_tester/BUILD.gn new file mode 100644 index 0000000..56d15d6 --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/BUILD.gn
@@ -0,0 +1,16 @@ +# Copyright 2022 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//chrome/browser/resources/tools/build_webui.gni") + +build_webui("build") { + grd_prefix = "vc_tray_tester" + + static_files = [ "main.html" ] + web_component_files = [ "vc_tray_tester.ts" ] + + html_to_wrapper_template = "native" + + ts_deps = [ "//ui/webui/resources:library" ] +}
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/OWNERS b/chrome/browser/resources/chromeos/vc_tray_tester/OWNERS new file mode 100644 index 0000000..0fa385f --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/OWNERS
@@ -0,0 +1 @@ +leandre@chromium.org \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/main.html b/chrome/browser/resources/chromeos/vc_tray_tester/main.html new file mode 100644 index 0000000..5ad38bec --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/main.html
@@ -0,0 +1,19 @@ +<!-- Copyright 2023 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. --> + +<!DOCTYPE HTML> +<html dir="$i18n{textdirection}" lang="$i18n{language}"> + +<head> + <meta charset="utf-8"> + <title>Video Conference Tray Tester</title> + <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> +</head> + +<body> + <vc-tray-tester></vc-tray-tester> + <script type="module" src="vc_tray_tester.js"></script> +</body> + +</html> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/tsconfig_base.json b/chrome/browser/resources/chromeos/vc_tray_tester/tsconfig_base.json new file mode 100644 index 0000000..931864e --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/tsconfig_base.json
@@ -0,0 +1,3 @@ +{ + "extends": "../../../../../tools/typescript/tsconfig_base.json" +}
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.html b/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.html new file mode 100644 index 0000000..cbbdefd3 --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.html
@@ -0,0 +1,106 @@ +<!-- Copyright 2023 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. --> + +<style> + :host { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + } + + app-header { + background-color: royalblue; + color: white; + font-size: 200%; + padding: 8px; + text-align: center; + } + + .input-field { + margin: 2.5% 5%; + } + + .input-field ol { + margin: 0 0 8px 0; + padding: 0 16px; + } + + .input-field ol>li { + align-items: center; + border-bottom: none; + display: flex; + padding: 0 0 8px 0; + } + + .padded-text { + margin-inline-start: 5px; + } + + .row { + display: flex; + flex: 0 1 100%; + } +</style> + +<app-header> + <app-toolbar>Video Conference Tray Tester</app-toolbar> +</app-header> + +<div class="input-field"> + <ol> + <h2>Video Conference Media State</h2> + <li> + <div class="row"> + <cr-toggle aria-label="has_media_app"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + has_media_app + </span> + </div> + </li> + <li> + <div class="row"> + <cr-toggle aria-label="has_camera_permission"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + has_camera_permission + </span> + </div> + </li> + <li> + <div class="row"> + <cr-toggle aria-label="has_microphone_permission"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + has_microphone_permission + </span> + </div> + </li> + <li> + <div class="row"> + <cr-toggle aria-label="is_capturing_camera"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + is_capturing_camera + </span> + </div> + </li> + <li> + <div class="row"> + <cr-toggle aria-label="is_capturing_microphone"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + is_capturing_microphone + </span> + </div> + </li> + <li> + <div class="row"> + <cr-toggle aria-label="is_capturing_screen"></cr-toggle> + <span aria-hidden="true" class="padded-text"> + is_capturing_screen + </span> + </div> + </li> + <li> + <button type="button">Update </button> + </li> + </ol> +</div> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.ts b/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.ts new file mode 100644 index 0000000..6087d4b --- /dev/null +++ b/chrome/browser/resources/chromeos/vc_tray_tester/vc_tray_tester.ts
@@ -0,0 +1,24 @@ +// 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. + +import 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js'; + +import {getTemplate} from './vc_tray_tester.html.js'; + +/** + * @fileoverview + * 'vc-tray-tester' defines the UI for the "VC Tray Tester" test page. + */ + +class VcTrayTesterElement extends HTMLElement { + constructor() { + super(); + const template = document.createElement('template'); + template.innerHTML = getTemplate() as string; + const fragment = template.content.cloneNode(true); + this.attachShadow({mode: 'open'}).appendChild(fragment); + } +} + +customElements.define('vc-tray-tester', VcTrayTesterElement); \ No newline at end of file
diff --git a/chrome/browser/resources/extensions/detail_view.html b/chrome/browser/resources/extensions/detail_view.html index 2d6a27a..4410e67c 100644 --- a/chrome/browser/resources/extensions/detail_view.html +++ b/chrome/browser/resources/extensions/detail_view.html
@@ -405,6 +405,7 @@ </template> <cr-link-row class="hr" id="siteSettings" label="$i18n{siteSettings}" + button-aria-description="$i18n{opensInNewTab}" on-click="onSiteSettingsClick_" external></cr-link-row> <template is="dom-if" if="[[shouldShowOptionsSection_(data.*)]]"> <div id="options-section"> @@ -442,6 +443,7 @@ <cr-link-row class="hr" id="extensionsOptions" disabled="[[!isEnabled_(data.state)]]" hidden="[[!shouldShowOptionsLink_(data.*)]]" + button-aria-description="$i18n{opensInNewTab}" label="$i18n{itemOptions}" on-click="onExtensionOptionsTap_" external></cr-link-row> <cr-link-row class="hr" @@ -451,9 +453,11 @@ </cr-link-row> <cr-link-row class="hr" hidden="[[!data.manifestHomePageUrl.length]]" id="extensionWebsite" label="$i18n{extensionWebsite}" + button-aria-description="$i18n{opensInNewTab}" on-click="onExtensionWebSiteTap_" external></cr-link-row> <cr-link-row class="hr" hidden="[[!data.webStoreUrl.length]]" id="viewInStore" label="$i18n{viewInStore}" + button-aria-description="$i18n{opensInNewTab}" on-click="onViewInStoreTap_" external></cr-link-row> <div class="section hr"> <div class="section-title" role="heading" aria-level="2">
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html index 1f74c7b..8dbe349 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -292,7 +292,7 @@ <template is="dom-if" if="[[isPrivacySandboxSettings4_]]"> <template is="dom-if" route-path="/cookies"> <settings-subpage id="cookies" - page-title="$i18n{thirdPartyCookiesLinkRowLabel}" + page-title="$i18n{thirdPartyCookiesPageTitle}" learn-more-url="$i18n{cookiesSettingsHelpCenterURL}" search-label="$i18n{siteSettingsAllSitesSearch}" search-term="{{searchFilter_}}"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.html b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.html index b499c9a1..42c00f5b 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.html
@@ -17,7 +17,8 @@ <site-favicon hidden$="[[interest.topic]]" url="[[interest.site]]"> </site-favicon> <div id="label">[[getDisplayString_(interest)]]</div> - <cr-button role="button" on-click="onInterestChanged_"> + <cr-button role="button" on-click="onInterestChanged_" + aria-label$="[[getButtonAriaLabel_(interest.removed)]]"> [[getButtonLabel_(interest.removed)]] </cr-button> </div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.ts b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.ts index e0250d2..5487dcd 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_sandbox/privacy_sandbox_interest_item.ts
@@ -61,6 +61,22 @@ } } + private getButtonAriaLabel_(): string { + if (this.interest.topic !== undefined) { + assert(!this.interest.site); + return this.i18n( + this.interest.removed ? 'topicsPageAllowTopicA11yLabel' : + 'topicsPageBlockTopicA11yLabel', + this.interest.topic.displayString!); + } else { + assert(!this.interest.topic); + return this.i18n( + this.interest.removed ? 'fledgePageAllowSiteA11yLabel' : + 'fledgePageBlockSiteA11yLabel', + this.interest.site!); + } + } + private onInterestChanged_(e: Event) { e.stopPropagation(); this.dispatchEvent(new CustomEvent(
diff --git a/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts b/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts index 72ac935..3ee72c6 100644 --- a/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts +++ b/chrome/browser/resources/side_panel/bookmarks/bookmarks_api_proxy.ts
@@ -17,6 +17,8 @@ contextMenuOpenBookmarkInNewWindow(ids: string[], source: ActionSource): void; contextMenuOpenBookmarkInIncognitoWindow(ids: string[], source: ActionSource): void; + contextMenuAddToBookmarksBar(id: string, source: ActionSource): void; + contextMenuRemoveFromBookmarksBar(id: string, source: ActionSource): void; contextMenuDelete(id: string, source: ActionSource): void; copyBookmark(id: string): Promise<void>; createFolder(parentId: string, title: string): void; @@ -78,6 +80,14 @@ ids.map(id => BigInt(id)), source); } + contextMenuAddToBookmarksBar(id: string, source: ActionSource) { + this.handler.executeAddToBookmarksBarCommand(BigInt(id), source); + } + + contextMenuRemoveFromBookmarksBar(id: string, source: ActionSource) { + this.handler.executeRemoveFromBookmarksBarCommand(BigInt(id), source); + } + contextMenuDelete(id: string, source: ActionSource) { this.handler.executeDeleteCommand(BigInt(id), source); }
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts index 3d55d6b..00f22fb 100644 --- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts +++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_context_menu.ts
@@ -26,8 +26,11 @@ OPEN_NEW_TAB = 0, OPEN_NEW_WINDOW = 1, OPEN_INCOGNITO = 2, - DELETE = 3, - DIVIDER = 4, + ADD_TO_BOOKMARKS_BAR = 3, + REMOVE_FROM_BOOKMARKS_BAR = 4, + RENAME = 5, + DELETE = 6, + DIVIDER = 7, } export interface MenuItem { @@ -93,17 +96,40 @@ }); } - if (this.bookmarks_.length === 1 && - this.bookmarks_[0]!.id !== loadTimeData.getString('bookmarksBarId')) { - menuItems.push( - {id: MenuItemId.DIVIDER}, - { - id: MenuItemId.DELETE, - label: loadTimeData.getString('tooltipDelete'), - }, - ); + if (this.bookmarks_.length > 1 || + this.bookmarks_[0]!.id === loadTimeData.getString('bookmarksBarId')) { + return menuItems; } + if (this.bookmarks_[0]!.parentId === + loadTimeData.getString('bookmarksBarId')) { + menuItems.push({id: MenuItemId.DIVIDER}, { + id: MenuItemId.REMOVE_FROM_BOOKMARKS_BAR, + label: loadTimeData.getString('menuMoveToAllBookmarks'), + }); + } else if ( + this.bookmarks_[0]!.parentId === + loadTimeData.getString('otherBookmarksId') || + this.bookmarks_[0]!.parentId === + loadTimeData.getString('mobileBookmarksId')) { + menuItems.push({id: MenuItemId.DIVIDER}, { + id: MenuItemId.ADD_TO_BOOKMARKS_BAR, + label: loadTimeData.getString('menuMoveToBookmarksBar'), + }); + } + + menuItems.push( + {id: MenuItemId.DIVIDER}, + { + id: MenuItemId.RENAME, + label: loadTimeData.getString('menuRename'), + }, + { + id: MenuItemId.DELETE, + label: loadTimeData.getString('tooltipDelete'), + }, + ); + return menuItems; } @@ -130,9 +156,26 @@ this.bookmarks_.map(bookmark => bookmark.id), ActionSource.kBookmark); break; + // Everything below is not expected to ever be called when + // this.bookmarks_ has more than one entry. + case MenuItemId.ADD_TO_BOOKMARKS_BAR: + this.bookmarksApi_.contextMenuAddToBookmarksBar( + this.bookmarks_[0]!.id, ActionSource.kBookmark); + break; + case MenuItemId.REMOVE_FROM_BOOKMARKS_BAR: + this.bookmarksApi_.contextMenuRemoveFromBookmarksBar( + this.bookmarks_[0]!.id, ActionSource.kBookmark); + break; + case MenuItemId.RENAME: + this.dispatchEvent(new CustomEvent('rename-clicked', { + bubbles: true, + composed: true, + detail: { + id: this.bookmarks_[0]!.id, + }, + })); + break; case MenuItemId.DELETE: - // Not expected to ever be called when this.bookmarks_ has more than - // one entry. this.bookmarksApi_.contextMenuDelete( this.bookmarks_[0]!.id, ActionSource.kBookmark); this.dispatchEvent(new CustomEvent('delete-clicked', {
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.html b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.html index 95b2012..a6ee703 100644 --- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.html +++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.html
@@ -4,7 +4,6 @@ --border-color: var(--google-grey-300); --disabled-text-color: var(--google-grey-600); --edit-footer-background: var(--google-grey-50); - --empty-state-image: url(./images/bookmarks_empty.svg); --label-selected-color: var(--google-blue-50); --price-tracking-chip-background: var(--google-green-50); --price-tracking-discount-color: var(--google-green-800); @@ -16,7 +15,6 @@ --border-color: var(--google-grey-700); --disabled-text-color: var(--google-grey-500); --edit-footer-background: var(--google-grey-900-white-4-percent); - --empty-state-image: url(./images/bookmarks_empty_dark.svg); --price-tracking-chip-background: var(--google-green-900); --price-tracking-discount-color: white; --price-tracking-original-color: var(--google-green-200); @@ -102,34 +100,10 @@ gap: 16px; } - .empty { - align-items: center; - display: flex; - flex-direction: column; - gap: 6px; - margin: 0 48px; - text-align: center; - } - - .empty[guest] { + sp-empty-state[guest] { margin-top: 66px; } - .empty-body { - color: var(--cr-secondary-text-color); - font-size: 13px; - } - - .empty-image { - content: var(--empty-state-image); - margin-bottom: 8px; - } - - .empty-title { - color: var(--cr-primary-text-color); - font-size: 15px; - } - .footer-or-empty-state { border-top: 1px solid var(--border-color); } @@ -139,13 +113,10 @@ border: none; display: flex; flex-direction: column; - gap: 13px; } - .footer-button { - gap: 8px; + .footer-or-empty-state:not([empty]) .footer-button { margin: 8px; - padding: 6px; } .footer-button[disabled] > .label-icon { @@ -323,17 +294,22 @@ </template> </div> <div class="footer-or-empty-state" empty$="[[!shownBookmarks_.length]]"> - <div class="empty" hidden="[[shownBookmarks_.length]]" - guest$="[[guestMode_]]"> - <div class="empty-image"></div> - <div class="empty-title">[[getEmptyTitle_()]]</div> - <div class="empty-body">[[getEmptyBody_()]]</div> - </div> - <cr-button class="footer-button" hidden="[[hideAddTabButton_(editing_)]]" + <sp-empty-state + hidden="[[shownBookmarks_.length]]" + guest$="[[guestMode_]]" + image-path="./images/bookmarks_empty.svg" + dark-image-path="./images/bookmarks_empty_dark.svg" + heading="[[getEmptyTitle_()]]" + body="[[getEmptyBody_()]]"> + </sp-empty-state> + + <cr-button class="footer-button" + hidden="[[hideAddTabButton_(editing_)]]" on-click="onAddTabClicked_" disabled="[[!canAddCurrentUrl_(shownBookmarks_.*, activeFolderPath_.*, currentUrl_)]]"> - <iron-icon icon="bookmarks:add-tab" class="label-icon"></iron-icon> + <iron-icon slot="prefix-icon" icon="bookmarks:add-tab" class="label-icon"> + </iron-icon> $i18n{addCurrentTab} </cr-button> <div class="edit-footer" hidden="[[!editing_]]"> @@ -382,7 +358,8 @@ <cr-lazy-render id="contextMenu"> <template> <power-bookmarks-context-menu - on-delete-clicked="onContextMenuDeleteClicked_"> + on-delete-clicked="onContextMenuDeleteClicked_" + on-rename-clicked="setRenamingId_"> </power-bookmarks-context-menu> </template> </cr-lazy-render>
diff --git a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts index b4450a9..bd490d1 100644 --- a/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts +++ b/chrome/browser/resources/side_panel/bookmarks/power_bookmarks_list.ts
@@ -8,6 +8,7 @@ import './power_bookmark_chip.js'; import './power_bookmarks_context_menu.js'; import './power_bookmark_row.js'; +import '//bookmarks-side-panel.top-chrome/shared/sp_empty_state.js'; import '//resources/cr_elements/cr_action_menu/cr_action_menu.js'; import '//resources/cr_elements/cr_button/cr_button.js'; import '//resources/cr_elements/cr_icon_button/cr_icon_button.js'; @@ -640,6 +641,10 @@ } } + private setRenamingId_(event: CustomEvent<{id: string}>) { + this.renamingId_ = event.detail.id; + } + private onRename_( event: CustomEvent< {bookmark: chrome.bookmarks.BookmarkTreeNode, value: string}>) {
diff --git a/chrome/browser/resources/side_panel/reading_list/app.html b/chrome/browser/resources/side_panel/reading_list/app.html index b8c4722..5ecc1ee 100644 --- a/chrome/browser/resources/side_panel/reading_list/app.html +++ b/chrome/browser/resources/side_panel/reading_list/app.html
@@ -46,9 +46,9 @@ transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1); } - #empty-state-container:not([hidden]) ~ #currentPageActionButton { + sp-empty-state:not([hidden]) ~ #currentPageActionButton { display: flex; - margin: -8px auto 16px auto; + margin: 0 auto 16px auto; width: fit-content; } @@ -94,47 +94,16 @@ border-top: 1px solid var(--google-grey-700); } } - - #empty-state-container { - text-align: center; - } - - #empty-state-image { - content: url(images/read_later_empty.svg); - height: 160px; - margin-bottom: 8px; - margin-top: 0; - width: 240px; - } - - @media (prefers-color-scheme: dark) { - #empty-state-image { - content: url(images/read_later_empty_dark.svg); - } - } - - #empty-state-header { - color: var(--cr-primary-text-color); - font-size: 15px; - line-height: 20px; - padding: 0 var(--mwb-list-item-horizontal-margin); - } - - #empty-state-subheader { - color: var(--cr-secondary-text-color); - font-size: var(--mwb-primary-text-font-size); - line-height: 20px; - padding: 4px var(--mwb-list-item-horizontal-margin) 16px; - } </style> <div id="content" hidden="[[loadingContent_]]"> - <div id="empty-state-container" - hidden="[[!isReadingListEmpty_(unreadItems_, readItems_)]]"> - <img id="empty-state-image" aria-hidden="true"> - <div id="empty-state-header">$i18n{emptyStateHeader}</div> - <div id="empty-state-subheader">[[getEmptyStateSubheaderText_()]]</div> - </div> + <sp-empty-state + hidden="[[!isReadingListEmpty_(unreadItems_, readItems_)]]" + image-path="./images/read_later_empty.svg" + dark-image-path="./images/read_later_empty_dark.svg" + heading="$i18n{emptyStateHeader}" + body="[[getEmptyStateSubheaderText_()]]"> + </sp-empty-state> <cr-button id="currentPageActionButton" aria-label="[[getCurrentPageActionButtonText_( currentPageActionButtonState_)]]"
diff --git a/chrome/browser/resources/side_panel/reading_list/app.ts b/chrome/browser/resources/side_panel/reading_list/app.ts index d9a3523..3a4886f 100644 --- a/chrome/browser/resources/side_panel/reading_list/app.ts +++ b/chrome/browser/resources/side_panel/reading_list/app.ts
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'chrome://read-later.top-chrome/shared/sp_empty_state.js'; import 'chrome://resources/cr_elements/cr_button/cr_button.js'; import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js'; import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
diff --git a/chrome/browser/resources/side_panel/shared/BUILD.gn b/chrome/browser/resources/side_panel/shared/BUILD.gn index 359d6ea..38af1f1b 100644 --- a/chrome/browser/resources/side_panel/shared/BUILD.gn +++ b/chrome/browser/resources/side_panel/shared/BUILD.gn
@@ -10,8 +10,11 @@ grd_prefix = "side_panel_shared" grd_resource_path_prefix = "shared" - web_component_files = [ "dummy_shared.ts" ] + web_component_files = [ "sp_empty_state.ts" ] ts_composite = true - ts_deps = [ "//third_party/polymer/v3_0:library" ] + ts_deps = [ + "//third_party/polymer/v3_0:library", + "//ui/webui/resources:library", + ] }
diff --git a/chrome/browser/resources/side_panel/shared/dummy_shared.html b/chrome/browser/resources/side_panel/shared/dummy_shared.html deleted file mode 100644 index 885ba39..0000000 --- a/chrome/browser/resources/side_panel/shared/dummy_shared.html +++ /dev/null
@@ -1 +0,0 @@ -<div>Hello world from dummy-shared element</div>
diff --git a/chrome/browser/resources/side_panel/shared/dummy_shared.ts b/chrome/browser/resources/side_panel/shared/dummy_shared.ts deleted file mode 100644 index 62fa30a..0000000 --- a/chrome/browser/resources/side_panel/shared/dummy_shared.ts +++ /dev/null
@@ -1,31 +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. - -/** - * @fileoverview Dummy shared element to demonstrate how to share UI components - * between side panels. - * TODO(dpapad): Delete once the first non-dummy shared element is added. - */ - -import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; - -import {getTemplate} from './dummy_shared.html.js'; - -export class DummySharedElement extends PolymerElement { - static get is() { - return 'dummy-shared'; - } - - static get template() { - return getTemplate(); - } -} - -declare global { - interface HTMLElementTagNameMap { - 'dummy-shared': DummySharedElement; - } -} - -customElements.define(DummySharedElement.is, DummySharedElement);
diff --git a/chrome/browser/resources/side_panel/shared/sp_empty_state.html b/chrome/browser/resources/side_panel/shared/sp_empty_state.html new file mode 100644 index 0000000..453bbdf --- /dev/null +++ b/chrome/browser/resources/side_panel/shared/sp_empty_state.html
@@ -0,0 +1,35 @@ +<style> + :host { + align-items: center; + display: flex; + flex-direction: column; + text-align: center; + } + + picture { + margin-block-end: 12px; + } + + #heading { + color: var(--cr-primary-text-color); + font-size: 15px; + font-weight: 400; + line-height: 22px; + margin-block-end: 8px; + } + + #body { + color: var(--cr-secondary-text-color); + font-size: 13px; + font-weight: 400; + line-height: 20px; + margin-block-end: 12px; + } +</style> + +<picture> + <source media="(prefers-color-scheme: dark)" srcset="[[darkImagePath]]"> + <img id="product-logo" srcset="[[imagePath]]" alt=""> +</picture> +<div id="heading">[[heading]]</div> +<div id="body">[[body]]</div>
diff --git a/chrome/browser/resources/side_panel/shared/sp_empty_state.ts b/chrome/browser/resources/side_panel/shared/sp_empty_state.ts new file mode 100644 index 0000000..8a644a2 --- /dev/null +++ b/chrome/browser/resources/side_panel/shared/sp_empty_state.ts
@@ -0,0 +1,45 @@ +// 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. + +/** + * @fileoverview Shared styles for showing an empty state for a side panel UI. + */ + +import '//resources/cr_elements/cr_shared_vars.css.js'; + +import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {getTemplate} from './sp_empty_state.html.js'; + +export class SpEmptyStateElement extends PolymerElement { + static get is() { + return 'sp-empty-state'; + } + + static get template() { + return getTemplate(); + } + + static get properties() { + return { + body: String, + darkImagePath: String, + heading: String, + imagePath: String, + }; + } + + body: string; + darkImagePath: string; + heading: string; + imagePath: string; +} + +declare global { + interface HTMLElementTagNameMap { + 'sp-empty-state': SpEmptyStateElement; + } +} + +customElements.define(SpEmptyStateElement.is, SpEmptyStateElement);
diff --git a/chrome/browser/resources/tab_search/BUILD.gn b/chrome/browser/resources/tab_search/BUILD.gn index 5aa0740..51bdd7f 100644 --- a/chrome/browser/resources/tab_search/BUILD.gn +++ b/chrome/browser/resources/tab_search/BUILD.gn
@@ -9,8 +9,6 @@ assert(is_linux || is_chromeos || is_win || is_mac || is_fuchsia) -import("//chrome/browser/resources/tools/build_webui.gni") - preprocess_folder = "preprocessed" build_webui("build") {
diff --git a/chrome/browser/search/background/ntp_custom_background_service.cc b/chrome/browser/search/background/ntp_custom_background_service.cc index 5675781..77a575d 100644 --- a/chrome/browser/search/background/ntp_custom_background_service.cc +++ b/chrome/browser/search/background/ntp_custom_background_service.cc
@@ -192,6 +192,12 @@ std::string resume_token = background_service_->next_image_resume_token(); int64_t timestamp = (clock_->Now() + base::Days(1)).ToTimeT(); + if (base::FeatureList::IsEnabled( + ntp_features::kCustomizeChromeColorExtraction)) { + FetchCustomBackgroundAndExtractBackgroundColor(image.image_url, + image.thumbnail_image_url); + } + base::Value::Dict background_info = GetBackgroundInfoAsDict( image.image_url, attribution1, attribution2, image.attribution_action_url, image.collection_id, resume_token, timestamp); @@ -255,6 +261,10 @@ email: "chrome-desktop-ntp@google.com" } } + user_data { + type: NONE + } + last_reviewed: "2023-01-09" } policy { cookies_allowed: NO
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn b/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn index 9ed0f85..9a8249b 100644 --- a/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn +++ b/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn
@@ -43,7 +43,6 @@ android_resources("java_resources") { sources = [ - "java/res/drawable/touch_to_fill_credit_card_background.xml", "java/res/layout/touch_to_fill_credit_card_header_item.xml", "java/res/layout/touch_to_fill_credit_card_sheet.xml", "java/res/layout/touch_to_fill_credit_card_sheet_item.xml",
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/drawable/touch_to_fill_credit_card_background.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/drawable/touch_to_fill_credit_card_background.xml deleted file mode 100644 index da86ff5f..0000000 --- a/chrome/browser/touch_to_fill/payments/android/internal/java/res/drawable/touch_to_fill_credit_card_background.xml +++ /dev/null
@@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape xmlns:android="http://schemas.android.com/apk/res/android" - android:shape="rectangle"> - <solid android:color="@color/default_bg_color_secondary"/> - <corners android:radius="16dp"/> -</shape> \ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml index 4bd2f22..50f71126 100644 --- a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml +++ b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml
@@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="2dp" - android:background="@drawable/touch_to_fill_credit_card_background" + android:background="@drawable/touch_to_fill_credential_background_modern_rounded_all" android:gravity="center_vertical" android:orientation="horizontal" android:padding="16dp">
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 394201bfc..e393da71 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -540,6 +540,7 @@ "//components/performance_manager", "//components/permissions", "//components/policy/core/browser", + "//components/policy/resources/webui:resources", "//components/pref_registry", "//components/privacy_sandbox", "//components/privacy_sandbox:privacy_sandbox_prefs", @@ -2925,6 +2926,8 @@ "webui/ash/system_web_dialog_delegate.h", "webui/ash/user_image_source.cc", "webui/ash/user_image_source.h", + "webui/ash/vc_tray_tester/vc_tray_tester_ui.cc", + "webui/ash/vc_tray_tester/vc_tray_tester_ui.h", "webui/ash/vm/vm_ui.cc", "webui/ash/vm/vm_ui.h", "webui/chromeos/chrome_url_disabled/chrome_url_disabled_ui.cc",
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc index 7afed343..9353f17 100644 --- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc +++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
@@ -268,6 +268,27 @@ BookmarkEditor::NO_TREE); break; + case IDC_BOOKMARK_BAR_ADD_TO_BOOKMARKS_BAR: { + base::RecordAction( + UserMetricsAction("BookmarkBar_ContextMenu_AddToBookmarkBar")); + const BookmarkNode* bookmark_bar_node = model_->bookmark_bar_node(); + for (const auto* node : selection_) { + model_->Move(node, bookmark_bar_node, + bookmark_bar_node->children().size()); + } + break; + } + + case IDC_BOOKMARK_BAR_REMOVE_FROM_BOOKMARKS_BAR: { + base::RecordAction( + UserMetricsAction("BookmarkBar_ContextMenu_RemoveFromBookmarkBar")); + const BookmarkNode* other_node = model_->other_node(); + for (const auto* node : selection_) { + model_->Move(node, other_node, other_node->children().size()); + } + break; + } + case IDC_BOOKMARK_BAR_UNDO: { base::RecordAction(UserMetricsAction("BookmarkBar_ContextMenu_Undo")); BookmarkUndoServiceFactory::GetForProfile(profile_)->undo_manager()-> @@ -464,6 +485,23 @@ case IDC_BOOKMARK_BAR_EDIT: return selection_.size() == 1 && !is_root_node && can_edit; + case IDC_BOOKMARK_BAR_ADD_TO_BOOKMARKS_BAR: + for (auto* node : selection_) { + if (node->is_permanent_node() || + node->parent() == model_->bookmark_bar_node()) { + return false; + } + } + return can_edit && model_->client()->CanBeEditedByUser(parent_); + case IDC_BOOKMARK_BAR_REMOVE_FROM_BOOKMARKS_BAR: + for (auto* node : selection_) { + if (node->is_permanent_node() || + node->parent() != model_->bookmark_bar_node()) { + return false; + } + } + return can_edit && model_->client()->CanBeEditedByUser(parent_); + case IDC_BOOKMARK_BAR_UNDO: return can_edit && BookmarkUndoServiceFactory::GetForProfile(profile_)->
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h index 55c841c..1f08d19c 100644 --- a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h
@@ -11,6 +11,7 @@ #include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h" @class MenuControllerCocoa; +@class MenuControllerCocoaDelegateImpl; // Mac Cocoa implementation of the renderer context menu display code. Uses a // NSMenu to display the context menu. Internally uses an Obj-C object as the @@ -44,6 +45,8 @@ // The Cocoa menu controller for this menu. base::scoped_nsobject<MenuControllerCocoa> menu_controller_; + base::scoped_nsobject<MenuControllerCocoaDelegateImpl> + menu_controller_delegate_; // The Cocoa parent view. NSView* parent_view_;
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm index 6103ef3d..3b114322 100644 --- a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
@@ -18,7 +18,10 @@ #import "chrome/browser/mac/nsprocessinfo_additions.h" #include "content/public/browser/web_contents.h" #import "ui/base/cocoa/menu_controller.h" +#include "ui/base/interaction/element_tracker_mac.h" #include "ui/color/color_provider.h" +#include "ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h" +#include "ui/views/interaction/element_tracker_views.h" #include "ui/views/widget/widget.h" namespace { @@ -208,13 +211,17 @@ const ui::ColorProvider* color_provider = widget ? widget->GetColorProvider() : nullptr; + menu_controller_delegate_.reset( + [[MenuControllerCocoaDelegateImpl alloc] init]); menu_controller_.reset([[MenuControllerCocoa alloc] initWithModel:&menu_model_ - delegate:nil + delegate:menu_controller_delegate_.get() colorProvider:color_provider useWithPopUpButtonCell:NO]); gfx::Point params_position(params_.x, params_.y); + // TODO(dfried): this is almost certainly wrong; let's fix it. + [menu_controller_delegate_ setAnchorRect:gfx::Rect(params_position, {1, 1})]; // Synthesize an event for the click, as there is no certainty that // [NSApp currentEvent] will return a valid event. @@ -249,10 +256,18 @@ // be done manually. base::mac::ScopedSendingEvent sendingEventScoper; + NSMenu* const menu = [menu_controller_ menu]; + if (widget) { + ui::ElementTrackerMac::GetInstance()->NotifyMenuWillShow( + menu, views::ElementTrackerViews::GetContextForWidget(widget)); + } + // Show the menu. - [NSMenu popUpContextMenu:[menu_controller_ menu] - withEvent:clickEvent - forView:parent_view_]; + [NSMenu popUpContextMenu:menu withEvent:clickEvent forView:parent_view_]; + + if (widget) { + ui::ElementTrackerMac::GetInstance()->NotifyMenuDoneShowing(menu); + } } }
diff --git a/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc b/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc index b7adbb0..d5ff526 100644 --- a/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc +++ b/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc
@@ -891,6 +891,11 @@ }); } + void SetUp() override { + set_open_about_blank_on_browser_launch(true); + SideSearchFeatureEngagementTest::SetUp(); + } + void SetUpOnMainThread() override { SideSearchFeatureEngagementTest::SetUpOnMainThread(); private_test_impl().DoTestSetUp(); @@ -926,17 +931,8 @@ feature_engagement::test::ScopedIphFeatureList feature_list_; }; -// TODO(crbug.com/1368921): Flaky on lacros. -#if BUILDFLAG(IS_CHROMEOS_LACROS) -#define MAYBE_SidePanelAutoTriggersAfterReturningToAPreviousSRP \ - DISABLED_SidePanelAutoTriggersAfterReturningToAPreviousSRP -#else -#define MAYBE_SidePanelAutoTriggersAfterReturningToAPreviousSRP \ - SidePanelAutoTriggersAfterReturningToAPreviousSRP -#endif -IN_PROC_BROWSER_TEST_F( - SideSearchAutoTriggeringBrowserTest, - MAYBE_SidePanelAutoTriggersAfterReturningToAPreviousSRP) { +IN_PROC_BROWSER_TEST_F(SideSearchAutoTriggeringBrowserTest, + SidePanelAutoTriggersAfterReturningToAPreviousSRP) { DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kPrimaryTabId); DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kSidePanelWebContentsId);
diff --git a/chrome/browser/ui/webui/ash/parent_access/parent_access_ui.cc b/chrome/browser/ui/webui/ash/parent_access/parent_access_ui.cc index c73149e..eedcf84 100644 --- a/chrome/browser/ui/webui/ash/parent_access/parent_access_ui.cc +++ b/chrome/browser/ui/webui/ash/parent_access/parent_access_ui.cc
@@ -18,6 +18,8 @@ #include "chrome/common/webui_url_constants.h" #include "chrome/grit/browser_resources.h" #include "chrome/grit/generated_resources.h" +#include "chrome/grit/supervision_resources.h" +#include "chrome/grit/supervision_resources_map.h" #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_data_source.h" #include "mojo/public/cpp/bindings/pending_receiver.h" @@ -77,15 +79,14 @@ source->AddResourcePath("parent_access_ui_handler.js", IDR_PARENT_ACCESS_UI_HANDLER_JS); source->AddResourcePath("parent_access_after.js", IDR_PARENT_ACCESS_AFTER_JS); - source->AddResourcePath("parent_access_error.js", IDR_PARENT_ACCESS_ERROR_JS); source->AddResourcePath("flows/local_web_approvals_after.js", IDR_LOCAL_WEB_APPROVALS_AFTER_JS); - source->AddResourcePath("parent_access_offline.js", - IDR_PARENT_ACCESS_OFFLINE_JS); source->AddResourcePath("parent_access_ui.mojom-webui.js", IDR_PARENT_ACCESS_UI_MOJOM_WEBUI_JS); source->AddResourcePath("webview_manager.js", IDR_PARENT_ACCESS_WEBVIEW_MANAGER_JS); + source->AddResourcePaths( + base::make_span(kSupervisionResources, kSupervisionResourcesSize)); source->UseStringsJs(); source->SetDefaultResource(IDR_PARENT_ACCESS_HTML); @@ -101,10 +102,11 @@ {"localWebApprovalsAfterDetails", IDS_PARENT_ACCESS_LOCAL_WEB_APPROVALS_AFTER_DETAILS}, {"webviewLoadingMessage", IDS_PARENT_ACCESS_WEBVIEW_LOADING_MESSAGE}, - {"offlineTitle", IDS_PARENT_ACCESS_OFFLINE_HEADING}, - {"offlineDescription", IDS_PARENT_ACCESS_OFFLINE_DESCRIPTION}, - {"errorTitle", IDS_PARENT_ACCESS_ERROR_TITLE}, - {"errorDescription", IDS_PARENT_ACCESS_ERROR_DESCRIPTION}, + {"supervisedUserOfflineTitle", IDS_SUPERVISED_USER_OFFLINE_TITLE}, + {"supervisedUserOfflineDescription", + IDS_SUPERVISED_USER_OFFLINE_DESCRIPTION}, + {"supervisedUserErrorTitle", IDS_SUPERVISED_USER_ERROR_TITLE}, + {"supervisedUserErrorDescription", IDS_SUPERVISED_USER_ERROR_DESCRIPTION}, }; source->AddLocalizedStrings(kLocalizedStrings);
diff --git a/chrome/browser/ui/webui/ash/vc_tray_tester/OWNERS b/chrome/browser/ui/webui/ash/vc_tray_tester/OWNERS new file mode 100644 index 0000000..0fa385f --- /dev/null +++ b/chrome/browser/ui/webui/ash/vc_tray_tester/OWNERS
@@ -0,0 +1 @@ +leandre@chromium.org \ No newline at end of file
diff --git a/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.cc b/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.cc new file mode 100644 index 0000000..8235fc6 --- /dev/null +++ b/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.cc
@@ -0,0 +1,42 @@ +// 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. + +#include "chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.h" + +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/webui/webui_util.h" +#include "chrome/common/url_constants.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/grit/browser_resources.h" +#include "chrome/grit/generated_resources.h" +#include "chrome/grit/vc_tray_tester_resources.h" +#include "chrome/grit/vc_tray_tester_resources_map.h" +#include "content/public/browser/web_ui_data_source.h" + +namespace ash { + +VcTrayTesterUI::VcTrayTesterUI(content::WebUI* web_ui) + : content::WebUIController(web_ui) { + // Set up the chrome://vc-tray-tester source. + content::WebUIDataSource* html_source = + content::WebUIDataSource::CreateAndAdd(Profile::FromWebUI(web_ui), + chrome::kChromeUIVcTrayTesterHost); + + // Add required resources. + webui::SetupWebUIDataSource( + html_source, + base::make_span(kVcTrayTesterResources, kVcTrayTesterResourcesSize), + IDR_VC_TRAY_TESTER_MAIN_HTML); + + // Add message handler. + // web_ui->AddMessageHandler(std::make_unique<NotificationTesterHandler>()); +} + +VcTrayTesterUI::~VcTrayTesterUI() = default; + +VcTrayTesterUIConfig::VcTrayTesterUIConfig() + : DefaultWebUIConfig(content::kChromeUIScheme, + chrome::kChromeUIVcTrayTesterHost) {} + +} // namespace ash
diff --git a/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.h b/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.h new file mode 100644 index 0000000..c1eba127 --- /dev/null +++ b/chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.h
@@ -0,0 +1,31 @@ +// 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. + +#ifndef CHROME_BROWSER_UI_WEBUI_ASH_VC_TRAY_TESTER_VC_TRAY_TESTER_UI_H_ +#define CHROME_BROWSER_UI_WEBUI_ASH_VC_TRAY_TESTER_VC_TRAY_TESTER_UI_H_ + +#include "content/public/browser/web_ui_controller.h" +#include "content/public/browser/webui_config.h" + +namespace ash { + +// The UI controller for NotificationTester page. +class VcTrayTesterUI : public content::WebUIController { + public: + explicit VcTrayTesterUI(content::WebUI* web_ui); + VcTrayTesterUI(const VcTrayTesterUI&) = delete; + VcTrayTesterUI& operator=(const VcTrayTesterUI&) = delete; + ~VcTrayTesterUI() override; +}; + +// UI config for the class above. +class VcTrayTesterUIConfig + : public content::DefaultWebUIConfig<VcTrayTesterUI> { + public: + VcTrayTesterUIConfig(); +}; + +} // namespace ash + +#endif // CHROME_BROWSER_UI_WEBUI_ASH_VC_TRAY_TESTER_VC_TRAY_TESTER_UI_H_
diff --git a/chrome/browser/ui/webui/chromeos/chrome_web_ui_configs_chromeos.cc b/chrome/browser/ui/webui/chromeos/chrome_web_ui_configs_chromeos.cc index 8ac29fc..4000119 100644 --- a/chrome/browser/ui/webui/chromeos/chrome_web_ui_configs_chromeos.cc +++ b/chrome/browser/ui/webui/chromeos/chrome_web_ui_configs_chromeos.cc
@@ -52,6 +52,7 @@ #include "chrome/browser/ui/webui/ash/smb_shares/smb_credentials_dialog.h" #include "chrome/browser/ui/webui/ash/smb_shares/smb_share_dialog.h" #include "chrome/browser/ui/webui/ash/sys_internals/sys_internals_ui.h" +#include "chrome/browser/ui/webui/ash/vc_tray_tester/vc_tray_tester_ui.h" #include "chrome/browser/ui/webui/ash/vm/vm_ui.h" #include "chrome/browser/ui/webui/nearby_internals/nearby_internals_ui.h" #include "chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h" @@ -147,6 +148,7 @@ std::make_unique<ash::SystemExtensionsInternalsUIConfig>()); map.AddWebUIConfig( std::make_unique<ash::UrgentPasswordExpiryNotificationUIConfig>()); + map.AddWebUIConfig(std::make_unique<ash::VcTrayTesterUIConfig>()); map.AddWebUIConfig(std::make_unique<ash::VmUIConfig>()); #if !defined(OFFICIAL_BUILD) map.AddWebUIConfig(std::make_unique<ash::SampleSystemWebAppUIConfig>());
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc index 2dfc03bc..09966051 100644 --- a/chrome/browser/ui/webui/extensions/extensions_ui.cc +++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
@@ -254,6 +254,7 @@ {"missingOrUninstalledExtension", IDS_MISSING_OR_UNINSTALLED_EXTENSION}, {"noActivities", IDS_EXTENSIONS_NO_ACTIVITIES}, {"noErrorsToShow", IDS_EXTENSIONS_ERROR_NO_ERRORS_CODE_MESSAGE}, + {"opensInNewTab", IDS_EXTENSIONS_OPENS_IN_NEW_TAB}, {"removeSitesDialogTitle", IDS_EXTENSIONS_REMOVE_SITES_DIALOG_TITLE}, {"runtimeHostsDialogInputError", IDS_EXTENSIONS_RUNTIME_HOSTS_DIALOG_INPUT_ERROR},
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc index a2a542f..33a6965 100644 --- a/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
@@ -964,7 +964,7 @@ } #if BUILDFLAG(IS_CHROMEOS) - if (capture_policy::IsGetDisplaymediaSetSelectAllScreensAllowedForAnySite( + if (capture_policy::IsGetDisplayMediaSetSelectAllScreensAllowedForAnySite( profile)) { AddThreatProtectionPermission(kManagementScreenCaptureEvent, kManagementScreenCaptureData, &info);
diff --git a/chrome/browser/ui/webui/policy/policy_ui.cc b/chrome/browser/ui/webui/policy/policy_ui.cc index da5268d..fdea02b 100644 --- a/chrome/browser/ui/webui/policy/policy_ui.cc +++ b/chrome/browser/ui/webui/policy/policy_ui.cc
@@ -12,7 +12,8 @@ #include "chrome/browser/ui/webui/policy/policy_ui_handler.h" #include "chrome/browser/ui/webui/webui_util.h" #include "chrome/common/url_constants.h" -#include "components/grit/dev_ui_components_resources.h" +#include "components/grit/policy_resources.h" +#include "components/grit/policy_resources_map.h" #include "components/strings/grit/components_strings.h" #include "content/public/browser/web_ui.h" #include "services/network/public/mojom/content_security_policy.mojom.h" @@ -88,26 +89,10 @@ }; source->AddLocalizedStrings(kStrings); - source->AddResourcePath("policy.css", IDR_POLICY_CSS); - source->AddResourcePath("policy_base.js", IDR_POLICY_BASE_JS); - source->AddResourcePath("policy.js", IDR_POLICY_JS); - source->AddResourcePath("policy_conflict.html.js", - IDR_POLICY_POLICY_CONFLICT_HTML_JS); - source->AddResourcePath("policy_conflict.js", IDR_POLICY_POLICY_CONFLICT_JS); - source->AddResourcePath("policy_row.html.js", IDR_POLICY_POLICY_ROW_HTML_JS); - source->AddResourcePath("policy_row.js", IDR_POLICY_POLICY_ROW_JS); - source->AddResourcePath("policy_precedence_row.html.js", - IDR_POLICY_POLICY_PRECEDENCE_ROW_HTML_JS); - source->AddResourcePath("policy_precedence_row.js", - IDR_POLICY_POLICY_PRECEDENCE_ROW_JS); - source->AddResourcePath("policy_table.html.js", - IDR_POLICY_POLICY_TABLE_HTML_JS); - source->AddResourcePath("policy_table.js", IDR_POLICY_POLICY_TABLE_JS); - source->AddResourcePath("status_box.html.js", IDR_POLICY_STATUS_BOX_HTML_JS); - source->AddResourcePath("status_box.js", IDR_POLICY_STATUS_BOX_JS); - source->SetDefaultResource(IDR_POLICY_HTML); + webui::SetupWebUIDataSource( + source, base::make_span(kPolicyResources, kPolicyResourcesSize), + IDR_POLICY_POLICY_HTML); - source->EnableReplaceI18nInJS(); source->OverrideContentSecurityPolicy( network::mojom::CSPDirectiveName::TrustedTypes, "trusted-types static-types;");
diff --git a/chrome/browser/ui/webui/settings/ash/device_section.cc b/chrome/browser/ui/webui/settings/ash/device_section.cc index 483f634..50701cd4 100644 --- a/chrome/browser/ui/webui/settings/ash/device_section.cc +++ b/chrome/browser/ui/webui/settings/ash/device_section.cc
@@ -352,6 +352,22 @@ return *tags; } +const std::vector<SearchConcept>& GetAudioSearchConcepts() { + static const base::NoDestructor<std::vector<SearchConcept>> tags({ + {IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS, + mojom::kAudioSubpagePath, + mojom::SearchResultIcon::kAudio, + mojom::SearchResultDefaultRank::kMedium, + mojom::SearchResultType::kSubpage, + {.subpage = mojom::Subpage::kAudio}, + {IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT1, + IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT2, + IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT3, + IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS_ALT4, SearchConcept::kAltTagEnd}}, + }); + return *tags; +} + const std::vector<SearchConcept>& GetDisplayArrangementSearchConcepts() { static const base::NoDestructor<std::vector<SearchConcept>> tags({ {IDS_OS_SETTINGS_TAG_DISPLAY_ARRANGEMENT, @@ -848,6 +864,10 @@ if (ShouldShowExternalStorageSettings(profile)) updater.AddSearchTags(GetExternalStorageSearchConcepts()); + if (ash::features::IsAudioSettingsPageEnabled()) { + updater.AddSearchTags(GetAudioSearchConcepts()); + } + chromeos::PowerManagerClient* power_manager_client = chromeos::PowerManagerClient::Get(); if (power_manager_client) {
diff --git a/chrome/browser/ui/webui/settings/ash/device_section_unittest.cc b/chrome/browser/ui/webui/settings/ash/device_section_unittest.cc new file mode 100644 index 0000000..bc7a70a --- /dev/null +++ b/chrome/browser/ui/webui/settings/ash/device_section_unittest.cc
@@ -0,0 +1,109 @@ +// 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. + +#include "chrome/browser/ui/webui/settings/ash/device_section.h" + +#include "ash/constants/ash_features.h" +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/webui/settings/ash/os_settings_identifier.h" +#include "chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h" +#include "chrome/grit/generated_resources.h" +#include "chrome/test/base/testing_browser_process.h" +#include "chrome/test/base/testing_profile.h" +#include "chrome/test/base/testing_profile_manager.h" +#include "components/prefs/testing_pref_service.h" +#include "content/public/test/browser_task_environment.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash::settings { + +namespace mojom { + +using ::chromeos::settings::mojom::Subpage; + +} // namespace mojom + +namespace { + +constexpr OsSettingsIdentifier kAudioPageOsSettingsId = { + .subpage = mojom::Subpage::kAudio}; + +// Provides a correctly formatted result_id based on `SearchConcept` +// configuration in `device_section.cc`. Based on private static function in +// `SearchTagRegistry`. +std::string GetSubpageSearchResultId(OsSettingsIdentifier id, int message_id) { + std::stringstream ss; + ss << id.subpage << "," << message_id; + return ss.str(); +} + +} // namespace + +// Test for the device settings page. +class DeviceSectionTest : public testing::Test { + public: + DeviceSectionTest() + : local_search_service_proxy_( + std::make_unique< + ash::local_search_service::LocalSearchServiceProxy>( + /*for_testing=*/true)), + search_tag_registry_(local_search_service_proxy_.get()) {} + ~DeviceSectionTest() override = default; + + protected: + void SetUp() override { + profile_manager_ = std::make_unique<TestingProfileManager>( + TestingBrowserProcess::GetGlobal()); + ASSERT_TRUE(profile_manager_->SetUp()); + profile_ = profile_manager_->CreateTestingProfile("name"); + } + + void TearDown() override { + profile_ = nullptr; + profile_manager_->DeleteTestingProfile("name"); + } + + TestingProfile* profile() { return profile_; } + TestingPrefServiceSimple* pref_service() { return &pref_service_; } + ash::settings::SearchTagRegistry* search_tag_registry() { + return &search_tag_registry_; + } + + base::test::ScopedFeatureList feature_list_; + std::unique_ptr<DeviceSection> device_section_; + + private: + content::BrowserTaskEnvironment task_environment_; + std::unique_ptr<ash::local_search_service::LocalSearchServiceProxy> + local_search_service_proxy_; + ash::settings::SearchTagRegistry search_tag_registry_; + TestingPrefServiceSimple pref_service_; + std::unique_ptr<TestingProfileManager> profile_manager_; + TestingProfile* profile_; +}; + +// Verify registry updated with Audio search tags when flag is enabled. +TEST_F(DeviceSectionTest, SearchResultIncludeAudioWithFlagEnabled) { + feature_list_.InitAndEnableFeature(ash::features::kAudioSettingsPage); + device_section_ = std::make_unique<DeviceSection>( + profile(), search_tag_registry(), pref_service()); + + std::string result_id = GetSubpageSearchResultId( + kAudioPageOsSettingsId, IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS); + EXPECT_TRUE(search_tag_registry()->GetTagMetadata(result_id)); +} + +// Verify registry not updated with Audio search tags when flag is disabled. +TEST_F(DeviceSectionTest, SearchResultExcludeAudioWithoutFlag) { + feature_list_.Reset(); + device_section_ = std::make_unique<DeviceSection>( + profile(), search_tag_registry(), pref_service()); + + std::string result_id = GetSubpageSearchResultId( + kAudioPageOsSettingsId, IDS_OS_SETTINGS_TAG_AUDIO_SETTINGS); + EXPECT_FALSE(search_tag_registry()->GetTagMetadata(result_id)); +} + +} // namespace ash::settings
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index 03acb54..c4db5bb 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2058,6 +2058,8 @@ {"topicsPageCurrentTopicsDescriptionEmpty", IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_EMPTY}, {"topicsPageBlockTopic", IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC}, + {"topicsPageBlockTopicA11yLabel", + IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_A11Y_LABEL}, {"topicsPageBlockedTopicsHeading", IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_HEADING}, {"topicsPageBlockedTopicsDescription", @@ -2065,6 +2067,8 @@ {"topicsPageBlockedTopicsDescriptionEmpty", IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION_EMPTY}, {"topicsPageAllowTopic", IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC}, + {"topicsPageAllowTopicA11yLabel", + IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL}, {"topicsPageCurrentTopicsDescriptionLearnMoreA11yLabel", IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_LEARN_MORE_A11Y_LABEL}, {"fledgePageTitle", IDS_SETTINGS_FLEDGE_PAGE_TITLE}, @@ -2083,6 +2087,8 @@ {"fledgePageSeeAllSitesLabel", IDS_SETTINGS_FLEDGE_PAGE_SEE_ALL_SITES_LABEL}, {"fledgePageBlockSite", IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE}, + {"fledgePageBlockSiteA11yLabel", + IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL}, {"fledgePageBlockedSitesHeading", IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_HEADING}, {"fledgePageBlockedSitesDescription", @@ -2090,6 +2096,8 @@ {"fledgePageBlockedSitesDescriptionEmpty", IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION_EMPTY}, {"fledgePageAllowSite", IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE}, + {"fledgePageAllowSiteA11yLabel", + IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL}, {"fledgePageLearnMoreHeading", IDS_SETTINGS_FLEDGE_PAGE_LEARN_MORE_HEADING}, {"fledgePageLearnMoreBullet1", @@ -2501,6 +2509,7 @@ IDS_SETTINGS_SITE_SETTINGS_RECENT_ACTIVITY}, {"siteSettingsCategoryCamera", IDS_SITE_SETTINGS_TYPE_CAMERA}, {"siteSettingsCameraLabel", IDS_SITE_SETTINGS_TYPE_CAMERA}, + {"thirdPartyCookiesPageTitle", IDS_SETTINGS_THIRD_PARTY_COOKIES_PAGE_TITLE}, {"thirdPartyCookiesLinkRowLabel", IDS_SETTINGS_THIRD_PARTY_COOKIES_LINK_ROW_LABEL}, {"thirdPartyCookiesLinkRowSublabelEnabled",
diff --git a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks.mojom b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks.mojom index 2b5f69c..8c66000 100644 --- a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks.mojom +++ b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks.mojom
@@ -38,6 +38,16 @@ ExecuteOpenInIncognitoWindowCommand(array<int64> node_ids, ActionSource source); + // Moves bookmark specified by node_id to be a direct descendant of the + // Bookmarks Bar folder, using the same logic as the native bookmarks context + // menu. + ExecuteAddToBookmarksBarCommand(int64 node_id, ActionSource source); + + // Moves bookmark specified by node_id to be a direct descendant of the + // Other Bookmarks folder, using the same logic as the native bookmarks + // context menu. + ExecuteRemoveFromBookmarksBarCommand(int64 node_id, ActionSource source); + // Deletes bookmark specified by node_id, using the same logic as the native // bookmarks context menu. ExecuteDeleteCommand(int64 node_id, ActionSource source);
diff --git a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.cc b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.cc index fec1010..17d277f 100644 --- a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.cc +++ b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.cc
@@ -118,7 +118,11 @@ } // BookmarkContextMenuControllerDelegate: - void CloseMenu() override { embedder_->HideContextMenu(); } + void CloseMenu() override { + if (embedder_) { + embedder_->HideContextMenu(); + } + } private: void AddItem(int command_id) { @@ -183,48 +187,53 @@ void BookmarksPageHandler::ExecuteOpenInNewTabCommand( const std::vector<int64_t>& node_ids, side_panel::mojom::ActionSource source) { - auto embedder = - bookmarks_ui_ ? bookmarks_ui_->embedder() : reading_list_ui_->embedder(); - std::unique_ptr<BookmarkContextMenu> contextMenu = - ContextMenuFromNodes(node_ids, embedder, source); - if (contextMenu) { - contextMenu->ExecuteCommand(IDC_BOOKMARK_BAR_OPEN_ALL, 0); - } + ExecuteContextMenuCommand(node_ids, source, IDC_BOOKMARK_BAR_OPEN_ALL); } void BookmarksPageHandler::ExecuteOpenInNewWindowCommand( const std::vector<int64_t>& node_ids, side_panel::mojom::ActionSource source) { - auto embedder = - bookmarks_ui_ ? bookmarks_ui_->embedder() : reading_list_ui_->embedder(); - std::unique_ptr<BookmarkContextMenu> contextMenu = - ContextMenuFromNodes(node_ids, embedder, source); - if (contextMenu) { - contextMenu->ExecuteCommand(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, 0); - } + ExecuteContextMenuCommand(node_ids, source, + IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW); } void BookmarksPageHandler::ExecuteOpenInIncognitoWindowCommand( const std::vector<int64_t>& node_ids, side_panel::mojom::ActionSource source) { - auto embedder = - bookmarks_ui_ ? bookmarks_ui_->embedder() : reading_list_ui_->embedder(); - std::unique_ptr<BookmarkContextMenu> contextMenu = - ContextMenuFromNodes(node_ids, embedder, source); - if (contextMenu) { - contextMenu->ExecuteCommand(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO, 0); - } + ExecuteContextMenuCommand(node_ids, source, + IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO); +} + +void BookmarksPageHandler::ExecuteAddToBookmarksBarCommand( + const int64_t node_id, + side_panel::mojom::ActionSource source) { + ExecuteContextMenuCommand({node_id}, source, + IDC_BOOKMARK_BAR_ADD_TO_BOOKMARKS_BAR); +} + +void BookmarksPageHandler::ExecuteRemoveFromBookmarksBarCommand( + int64_t node_id, + side_panel::mojom::ActionSource source) { + ExecuteContextMenuCommand({node_id}, source, + IDC_BOOKMARK_BAR_REMOVE_FROM_BOOKMARKS_BAR); } void BookmarksPageHandler::ExecuteDeleteCommand( int64_t node_id, side_panel::mojom::ActionSource source) { + ExecuteContextMenuCommand({node_id}, source, IDC_BOOKMARK_BAR_REMOVE); +} + +void BookmarksPageHandler::ExecuteContextMenuCommand( + const std::vector<int64_t>& node_ids, + side_panel::mojom::ActionSource source, + int command_id) { auto embedder = bookmarks_ui_ ? bookmarks_ui_->embedder() : reading_list_ui_->embedder(); - std::unique_ptr<BookmarkContextMenu> contextMenu = - ContextMenuFromNodes({node_id}, embedder, source); - if (contextMenu) { - contextMenu->ExecuteCommand(IDC_BOOKMARK_BAR_REMOVE, 0); + std::unique_ptr<BookmarkContextMenu> context_menu = + ContextMenuFromNodes(node_ids, embedder, source); + if (context_menu && context_menu->IsCommandIdEnabled(command_id)) { + context_menu->ExecuteCommand(command_id, 0); } } @@ -270,10 +279,10 @@ bookmarks_ui_ ? bookmarks_ui_->embedder() : reading_list_ui_->embedder(); if (embedder) { - std::unique_ptr<BookmarkContextMenu> contextMenu = + std::unique_ptr<BookmarkContextMenu> context_menu = ContextMenuFromNodes({id}, embedder, source); - if (contextMenu) { - embedder->ShowContextMenu(point, std::move(contextMenu)); + if (context_menu) { + embedder->ShowContextMenu(point, std::move(context_menu)); } } }
diff --git a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.h b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.h index 6da3adc..f5af7a0d 100644 --- a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.h +++ b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_page_handler.h
@@ -36,8 +36,17 @@ void ExecuteOpenInIncognitoWindowCommand( const std::vector<int64_t>& node_ids, side_panel::mojom::ActionSource source) override; + void ExecuteAddToBookmarksBarCommand( + int64_t node_id, + side_panel::mojom::ActionSource source) override; + void ExecuteRemoveFromBookmarksBarCommand( + int64_t node_id, + side_panel::mojom::ActionSource source) override; void ExecuteDeleteCommand(int64_t node_id, side_panel::mojom::ActionSource source) override; + void ExecuteContextMenuCommand(const std::vector<int64_t>& node_ids, + side_panel::mojom::ActionSource source, + int command_id); void OpenBookmark(int64_t node_id, int32_t parent_folder_depth, ui::mojom::ClickModifiersPtr click_modifiers,
diff --git a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.cc b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.cc index 1962e7f..2b7445d 100644 --- a/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.cc +++ b/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.cc
@@ -91,6 +91,9 @@ {"menuOpenIncognito", IDS_BOOKMARK_MANAGER_MENU_OPEN_INCOGNITO}, {"menuOpenIncognitoWithCount", IDS_BOOKMARK_MANAGER_MENU_OPEN_ALL_INCOGNITO_WITH_COUNT}, + {"menuMoveToBookmarksBar", IDS_BOOKMARKS_MOVE_TO_BOOKMARKS_BAR}, + {"menuMoveToAllBookmarks", IDS_BOOKMARKS_MOVE_TO_ALL_BOOKMARKS}, + {"menuRename", IDS_BOOKMARKS_RENAME}, {"newFolderTitle", IDS_BOOKMARK_EDITOR_NEW_FOLDER_NAME}, {"undoBookmarkDeletion", IDS_UNDO_BOOKMARK_DELETION}, }; @@ -117,6 +120,10 @@ "otherBookmarksId", base::NumberToString(bookmark_model ? bookmark_model->other_node()->id() : -1)); + source->AddString( + "mobileBookmarksId", + base::NumberToString(bookmark_model ? bookmark_model->mobile_node()->id() + : -1)); content::URLDataSource::Add( profile, std::make_unique<FaviconSource>(
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc index ea4501f..789b7d5e 100644 --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
@@ -50,6 +50,8 @@ #include "chrome/grit/arc_account_picker_resources_map.h" #include "chrome/grit/gaia_action_buttons_resources.h" #include "chrome/grit/gaia_action_buttons_resources_map.h" +#include "chrome/grit/supervision_resources.h" +#include "chrome/grit/supervision_resources_map.h" #include "components/account_manager_core/pref_names.h" #include "components/prefs/pref_service.h" #include "ui/base/l10n/l10n_util.h" @@ -92,14 +94,14 @@ chrome::kAccountRecoveryURL); // Strings for server based EDU Coexistence flow. - source->AddLocalizedString("eduCoexistenceNetworkDownHeading", - IDS_EDU_COEXISTENCE_NETWORK_DOWN_HEADING); - source->AddLocalizedString("eduCoexistenceNetworkDownDescription", - IDS_EDU_COEXISTENCE_NETWORK_DOWN_DESCRIPTION); - source->AddLocalizedString("eduCoexistenceErrorHeading", - IDS_EDU_COEXISTENCE_ERROR_HEADING); - source->AddLocalizedString("eduCoexistenceErrorDescription", - IDS_EDU_COEXISTENCE_ERROR_DESCRIPTION); + source->AddLocalizedString("supervisedUserOfflineTitle", + IDS_SUPERVISED_USER_OFFLINE_TITLE); + source->AddLocalizedString("supervisedUserOfflineDescription", + IDS_SUPERVISED_USER_OFFLINE_DESCRIPTION); + source->AddLocalizedString("supervisedUserErrorTitle", + IDS_SUPERVISED_USER_ERROR_TITLE); + source->AddLocalizedString("supervisedUserErrorDescription", + IDS_SUPERVISED_USER_ERROR_DESCRIPTION); source->AddLocalizedString("loadingMessage", IDS_LOGIN_GAIA_LOADING_MESSAGE); source->AddLocalizedString( "addSchoolAccountLabel", @@ -126,6 +128,8 @@ kArcAccountPickerResourcesSize)); source->AddResourcePaths(base::make_span(kGaiaActionButtonsResources, kGaiaActionButtonsResourcesSize)); + source->AddResourcePaths( + base::make_span(kSupervisionResources, kSupervisionResourcesSize)); #endif // BUILDFLAG(IS_CHROMEOS_ASH) // Only add a filter when runing as test.
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc index 4f0c4f6..afac1d3 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc
@@ -134,6 +134,10 @@ email: "peletskyi@google.com" } } + user_data { + type: NONE + } + last_reviewed: "2023-01-09" } policy { cookies_allowed: NO @@ -286,6 +290,10 @@ email: "peletskyi@google.com" } } + user_data { + type: NONE + } + last_reviewed: "2023-01-09" } policy { cookies_allowed: NO
diff --git a/chrome/browser/web_applications/web_app_utils_unittest.cc b/chrome/browser/web_applications/web_app_utils_unittest.cc index 7452ebe..8409a4c 100644 --- a/chrome/browser/web_applications/web_app_utils_unittest.cc +++ b/chrome/browser/web_applications/web_app_utils_unittest.cc
@@ -22,7 +22,7 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/login/users/mock_user_manager.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/user_manager/scoped_user_manager.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -224,7 +224,7 @@ signin_profile->GetPrimaryOTRProfile(/*create_if_needed=*/true))); Profile* lock_screen_profile = profile_manager().CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + ash::kLockScreenAppBrowserContextBaseName); EXPECT_TRUE(AreWebAppsEnabled(lock_screen_profile)); EXPECT_TRUE(AreWebAppsEnabled( lock_screen_profile->GetPrimaryOTRProfile(/*create_if_needed=*/true))); @@ -322,7 +322,7 @@ signin_profile->GetPrimaryOTRProfile(/*create_if_needed=*/true))); Profile* lock_screen_profile = profile_manager().CreateTestingProfile( - ash::BrowserContextHelper::kLockScreenAppBrowserContextBaseName); + ash::kLockScreenAppBrowserContextBaseName); EXPECT_FALSE(AreWebAppsUserInstallable(lock_screen_profile)); EXPECT_FALSE(AreWebAppsUserInstallable( lock_screen_profile->GetPrimaryOTRProfile(/*create_if_needed=*/true)));
diff --git a/chrome/browser/window_management/window_management_browsertest.cc b/chrome/browser/window_management/window_management_browsertest.cc index 5ad0bda..df61a41 100644 --- a/chrome/browser/window_management/window_management_browsertest.cc +++ b/chrome/browser/window_management/window_management_browsertest.cc
@@ -2,13 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/command_line.h" +#include "base/strings/string_util.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/permissions/features.h" #include "components/permissions/permission_request_manager.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_switches.h" @@ -27,8 +28,23 @@ #include "ui/display/test/display_manager_test_api.h" // nogncheck #endif // BUILDFLAG(IS_CHROMEOS_ASH) -class WindowManagementTest : public InProcessBrowserTest { +// Test both aliases during migration. See crbug.com/1328581. +constexpr char kOldPermissionName[] = "window-placement"; +constexpr char kNewPermissionName[] = "window-management"; + +typedef std::tuple<bool, bool> PermissionTestParams; + +class WindowManagementTest + : public InProcessBrowserTest, + public testing::WithParamInterface<PermissionTestParams> { public: + WindowManagementTest() { + if (AliasEnabled()) { + scoped_feature_list_.InitWithFeatures( + {permissions::features::kWindowManagementPermissionAlias}, {}); + } + } + void SetUpOnMainThread() override { // Support multiple sites on the test server. host_resolver()->AddRule("*", "127.0.0.1"); @@ -52,12 +68,16 @@ EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); auto* tab = browser()->tab_strip_model()->GetActiveWebContents(); - EXPECT_TRUE(ExecJs(tab, R"( + EXPECT_TRUE(ExecJs( + tab, + base::ReplaceStringPlaceholders( + R"( const frame1 = document.getElementById('iframe1'); - frame1.setAttribute('allow', 'window-placement'); + frame1.setAttribute('allow', '$1'); const frame2 = document.getElementById('iframe2'); - frame2.setAttribute('allow', 'window-placement');)", - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + frame2.setAttribute('allow', '$1');)", + {UseAlias() ? kNewPermissionName : kOldPermissionName}, nullptr), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); GURL subframe_url1(https_test_server_->GetURL("a.test", "/title1.html")); GURL subframe_url2(https_test_server_->GetURL("b.test", "/title1.html")); @@ -75,14 +95,21 @@ } protected: + bool AliasEnabled() const { return std::get<0>(GetParam()); } + bool UseAlias() const { return std::get<1>(GetParam()); } + bool ShouldError() const { return UseAlias() && !AliasEnabled(); } + std::unique_ptr<net::EmbeddedTestServer> https_test_server_; + + private: + base::test::ScopedFeatureList scoped_feature_list_; }; // TODO(crbug.com/1183791): Disabled on non-ChromeOS because of races with // SetScreenInstance and observers not being notified. // TODO(crbug.com/1297812): Completely disabled as this test is also flaky on // the CrOS bot. -IN_PROC_BROWSER_TEST_F(WindowManagementTest, DISABLED_OnScreensChangeEvent) { +IN_PROC_BROWSER_TEST_P(WindowManagementTest, DISABLED_OnScreensChangeEvent) { // Updates the display configuration to add a secondary display. #if BUILDFLAG(IS_CHROMEOS_ASH) display::test::DisplayManagerTestApi(ash::Shell::Get()->display_manager()) @@ -115,6 +142,7 @@ }); } var makeScreensChangePromise = () => { + if (!screenDetails) return undefined; return promiseForEvent(screenDetails, 'screenschange'); }; var getScreenWidths = () => { @@ -129,7 +157,12 @@ ASSERT_EQ(initial_result, EvalJs(tab, initial_script)); ASSERT_EQ(initial_result, EvalJs(local_child, initial_script)); - ASSERT_EQ(initial_result, EvalJs(remote_child, initial_script)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, initial_script).error.empty()); + } else { + ASSERT_EQ(initial_result, EvalJs(remote_child, initial_script)); + } // Add a second display. auto* add_screens_change_promise = @@ -148,6 +181,7 @@ auto* await_screens_change = R"( (async () => { + if (!screensChange) return -1; await screensChange; return getScreenWidths(); })(); @@ -158,7 +192,13 @@ EXPECT_EQ(result, EvalJs(tab, await_screens_change)); EXPECT_EQ(result, EvalJs(local_child, await_screens_change)); - EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + // screensChange is undefined for remote frame when alias is used but not + // enabled. + if (ShouldError()) { + EXPECT_EQ(-1, EvalJs(remote_child, await_screens_change)); + } else { + EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + } } // Remove the first display. @@ -181,7 +221,13 @@ EXPECT_EQ(result, EvalJs(tab, await_screens_change)); EXPECT_EQ(result, EvalJs(local_child, await_screens_change)); - EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + // screensChange is undefined for remote frame when alias is used but not + // enabled. + if (ShouldError()) { + EXPECT_EQ(-1, EvalJs(remote_child, await_screens_change)); + } else { + EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + } } // Remove one display, add two displays. @@ -208,7 +254,13 @@ EXPECT_EQ(result, EvalJs(tab, await_screens_change)); EXPECT_EQ(result, EvalJs(local_child, await_screens_change)); - EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + // screensChange is undefined for remote frame when alias is used but not + // enabled. + if (ShouldError()) { + EXPECT_EQ(-1, EvalJs(remote_child, await_screens_change)); + } else { + EXPECT_EQ(result, EvalJs(remote_child, await_screens_change)); + } } } @@ -255,6 +307,7 @@ }); } var makeCurrentScreenChangePromise = () => { + if (!screenDetails) return undefined; return promiseForEvent(screenDetails, 'currentscreenchange'); }; var makeWindowScreenChangePromise = () => { @@ -269,7 +322,12 @@ )"; EXPECT_EQ(801, EvalJs(tab, initial_script)); EXPECT_EQ(801, EvalJs(local_child, initial_script)); - EXPECT_EQ(801, EvalJs(remote_child, initial_script)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, initial_script).error.empty()); + } else { + EXPECT_EQ(801, EvalJs(remote_child, initial_script)); + } // Switch to a second display. This should fire an event. auto* add_current_screen_change_promise = R"( @@ -285,6 +343,8 @@ auto* await_change_width = R"( (async () => { + if (!currentScreenChange || !windowScreenChange) + return -2; await currentScreenChange; await windowScreenChange; if (screenDetails.currentScreen.width != window.screen.width) @@ -294,7 +354,12 @@ )"; EXPECT_EQ(802, EvalJs(tab, await_change_width)); EXPECT_EQ(802, EvalJs(local_child, await_change_width)); - EXPECT_EQ(802, EvalJs(remote_child, await_change_width)); + // currentScreenChange will be undefined when alias used but not enabled. + if (ShouldError()) { + EXPECT_EQ(-2, EvalJs(remote_child, await_change_width)); + } else { + EXPECT_EQ(802, EvalJs(remote_child, await_change_width)); + } // Update the second display to have a height of 300. Validate that a change // event is fired when attributes of the current screen change. @@ -312,6 +377,8 @@ auto* await_change_height = R"( (async () => { + if (!currentScreenChange || !windowScreenChange) + return -2; await currentScreenChange; await windowScreenChange; if (screenDetails.currentScreen.height != window.screen.height) @@ -321,7 +388,12 @@ )"; EXPECT_EQ(300, EvalJs(tab, await_change_height)); EXPECT_EQ(300, EvalJs(local_child, await_change_height)); - EXPECT_EQ(300, EvalJs(remote_child, await_change_height)); + // currentScreenChange will be undefined when alias used but not enabled. + if (ShouldError()) { + EXPECT_EQ(-2, EvalJs(remote_child, await_change_height)); + } else { + EXPECT_EQ(300, EvalJs(remote_child, await_change_height)); + } } // TODO(crbug.com/1183791): Disabled on non-ChromeOS because of races with @@ -334,7 +406,7 @@ #endif // Test that onchange events for individual screens in the screen list are // supported. -IN_PROC_BROWSER_TEST_F(WindowManagementTest, MAYBE_ScreenDetailedOnChange) { +IN_PROC_BROWSER_TEST_P(WindowManagementTest, MAYBE_ScreenDetailedOnChange) { #if BUILDFLAG(IS_CHROMEOS_ASH) display::test::DisplayManagerTestApi(ash::Shell::Get()->display_manager()) .UpdateDisplay("100+100-801x802,901+100-802x802"); @@ -384,7 +456,12 @@ )"; EXPECT_EQ(true, EvalJs(tab, initial_script)); EXPECT_EQ(true, EvalJs(local_child, initial_script)); - EXPECT_EQ(true, EvalJs(remote_child, initial_script)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, initial_script).error.empty()); + } else { + EXPECT_EQ(true, EvalJs(remote_child, initial_script)); + } // Update only the first display to have a different height. auto* add_change0 = R"( @@ -392,7 +469,12 @@ )"; EXPECT_TRUE(ExecJs(tab, add_change0)); EXPECT_TRUE(ExecJs(local_child, add_change0)); - EXPECT_TRUE(ExecJs(remote_child, add_change0)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, add_change0).error.empty()); + } else { + EXPECT_TRUE(ExecJs(remote_child, add_change0)); + } #if BUILDFLAG(IS_CHROMEOS_ASH) display::test::DisplayManagerTestApi(ash::Shell::Get()->display_manager()) @@ -404,6 +486,7 @@ auto* await_change0_height = R"( (async () => { + if (!change0) return -3; await change0; // Only screen[0] should have changed. if (screenChanges0 !== 1) @@ -415,7 +498,12 @@ )"; EXPECT_EQ(301, EvalJs(tab, await_change0_height)); EXPECT_EQ(301, EvalJs(local_child, await_change0_height)); - EXPECT_EQ(301, EvalJs(remote_child, await_change0_height)); + // change0 is undefined when alias used but not enabled. + if (ShouldError()) { + EXPECT_EQ(-3, EvalJs(remote_child, await_change0_height)); + } else { + EXPECT_EQ(301, EvalJs(remote_child, await_change0_height)); + } // Update only the second display to have a different height. auto* add_change1 = R"( @@ -423,7 +511,12 @@ )"; EXPECT_TRUE(ExecJs(tab, add_change1)); EXPECT_TRUE(ExecJs(local_child, add_change1)); - EXPECT_TRUE(ExecJs(remote_child, add_change1)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, add_change1).error.empty()); + } else { + EXPECT_TRUE(ExecJs(remote_child, add_change1)); + } #if BUILDFLAG(IS_CHROMEOS_ASH) display::test::DisplayManagerTestApi(ash::Shell::Get()->display_manager()) @@ -435,6 +528,8 @@ auto* await_change1_height = R"( (async () => { + if (!change1) + return -3; await change1; // Both screens have one change. if (screenChanges0 !== 1) @@ -446,7 +541,12 @@ )"; EXPECT_EQ(302, EvalJs(tab, await_change1_height)); EXPECT_EQ(302, EvalJs(local_child, await_change1_height)); - EXPECT_EQ(302, EvalJs(remote_child, await_change1_height)); + // change1 is undefined when alias used but not enabled. + if (ShouldError()) { + EXPECT_EQ(-3, EvalJs(remote_child, await_change1_height)); + } else { + EXPECT_EQ(302, EvalJs(remote_child, await_change1_height)); + } // Change the width of both displays at the same time. auto* add_both_changes = R"( @@ -455,7 +555,12 @@ )"; EXPECT_TRUE(ExecJs(tab, add_both_changes)); EXPECT_TRUE(ExecJs(local_child, add_both_changes)); - EXPECT_TRUE(ExecJs(remote_child, add_both_changes)); + // Remote frame should error when alias used but not enabled. + if (ShouldError()) { + EXPECT_FALSE(EvalJs(remote_child, add_both_changes).error.empty()); + } else { + EXPECT_TRUE(ExecJs(remote_child, add_both_changes)); + } #if BUILDFLAG(IS_CHROMEOS_ASH) display::test::DisplayManagerTestApi(ash::Shell::Get()->display_manager()) @@ -469,6 +574,8 @@ auto* await_both_changes_width = R"( (async () => { + if (!change0 || !change1) + return -3; await change0; await change1; // Both screens have two changes @@ -485,5 +592,15 @@ )"; EXPECT_EQ(true, EvalJs(tab, await_both_changes_width)); EXPECT_EQ(true, EvalJs(local_child, await_both_changes_width)); - EXPECT_EQ(true, EvalJs(remote_child, await_both_changes_width)); + // change1 and change2 are undefined when alias used but not enabled. + if (ShouldError()) { + EXPECT_EQ(-3, EvalJs(remote_child, await_both_changes_width)); + } else { + EXPECT_EQ(true, EvalJs(remote_child, await_both_changes_width)); + } } + +INSTANTIATE_TEST_SUITE_P(, + WindowManagementTest, + ::testing::Combine(::testing::Bool(), + ::testing::Bool()));
diff --git a/chrome/browser/window_management/window_management_permission_context_browsertest.cc b/chrome/browser/window_management/window_management_permission_context_browsertest.cc index d3d87e6..0d1e0c8 100644 --- a/chrome/browser/window_management/window_management_permission_context_browsertest.cc +++ b/chrome/browser/window_management/window_management_permission_context_browsertest.cc
@@ -8,9 +8,11 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/permissions/features.h" #include "components/permissions/permission_request_manager.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" +#include "content/public/common/content_switches.h" #include "content/public/test/browser_test.h" #include "net/dns/mock_host_resolver.h" #include "net/test/embedded_test_server/default_handlers.h" @@ -25,6 +27,10 @@ namespace { +// Test both aliases during migration. See crbug.com/1328581. +constexpr char kOldPermissionName[] = "window-placement"; +constexpr char kNewPermissionName[] = "window-management"; + constexpr char kGetScreens[] = R"( (async () => { try { @@ -32,19 +38,36 @@ } catch { return 'error'; } - return (await navigator.permissions.query({name:'window-placement'})).state; + try { + return (await navigator.permissions.query({name:'$1'})).state; + } catch { + return "permission_error"; + } })(); )"; constexpr char kCheckPermission[] = R"( (async () => { - return (await navigator.permissions.query({name:'window-placement'})).state; - })(); + try { + return (await navigator.permissions.query({name:'$1'})).state; + } catch { + return 'permission_error'; + } })(); )"; +typedef std::tuple<bool, bool> PermissionContextTestParams; + // Tests of WindowManagementPermissionContext behavior. -class WindowManagementPermissionContextTest : public InProcessBrowserTest { +class WindowManagementPermissionContextTest + : public InProcessBrowserTest, + public testing::WithParamInterface<PermissionContextTestParams> { public: + WindowManagementPermissionContextTest() { + if (AliasEnabled()) { + scoped_feature_list_.InitWithFeatures( + {permissions::features::kWindowManagementPermissionAlias}, {}); + } + } void SetUpOnMainThread() override { // Support multiple sites on the test server. host_resolver()->AddRule("*", "127.0.0.1"); @@ -82,7 +105,25 @@ } protected: + bool AliasEnabled() const { return std::get<0>(GetParam()); } + bool UseAlias() const { return std::get<1>(GetParam()); } + bool ShouldError() const { return UseAlias() && !AliasEnabled(); } + const std::string AliasToTest() const { + return UseAlias() ? kNewPermissionName : kOldPermissionName; + } + const std::string GetScreensScript() const { + return base::ReplaceStringPlaceholders(kGetScreens, {AliasToTest()}, + nullptr); + } + const std::string GetCheckPermissionScript() const { + return base::ReplaceStringPlaceholders(kCheckPermission, {AliasToTest()}, + nullptr); + } + std::unique_ptr<net::EmbeddedTestServer> https_test_server_; + + private: + base::test::ScopedFeatureList scoped_feature_list_; }; class MultiscreenWindowManagementPermissionContextTest @@ -120,7 +161,7 @@ }; // Tests gesture requirements (a gesture is only needed to prompt the user). -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, GestureToPrompt) { +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, GestureToPrompt) { const GURL url(https_test_server()->GetURL("a.test", "/empty.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); auto* tab = browser()->tab_strip_model()->GetActiveWebContents(); @@ -135,23 +176,26 @@ // will not prompt the user, and leaves the permission in the default "prompt" // state. EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); - EXPECT_EQ("error", - EvalJs(tab, kGetScreens, content::EXECUTE_SCRIPT_NO_USER_GESTURE)); - EXPECT_EQ("prompt", EvalJs(tab, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ("error", EvalJs(tab, GetScreensScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ(ShouldError() ? "permission_error" : "prompt", + EvalJs(tab, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); // Calling getScreenDetails() with a gesture will show the prompt, and // auto-accept. EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); - EXPECT_EQ("granted", EvalJs(tab, kGetScreens)); + EXPECT_EQ(ShouldError() ? "permission_error" : "granted", + EvalJs(tab, GetScreensScript())); EXPECT_TRUE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); // Calling getScreenDetails() without a gesture, but with pre-existing // permission, will succeed, since it does not need to prompt the user. WaitForUserActivationExpiry(); EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); - EXPECT_EQ("granted", - EvalJs(tab, kGetScreens, content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ( + ShouldError() ? "permission_error" : "granted", + EvalJs(tab, GetScreensScript(), content::EXECUTE_SCRIPT_NO_USER_GESTURE)); EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); } @@ -163,7 +207,7 @@ #define MAYBE_DismissAndDeny DismissAndDeny #endif // Tests user activation after dimissing and denying the permission request. -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, MAYBE_DismissAndDeny) { const GURL url(https_test_server()->GetURL("a.test", "/empty.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -177,8 +221,9 @@ WaitForUserActivationExpiry(); ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); permission_request_manager->Dismiss(); - EXPECT_EQ("prompt", EvalJs(tab, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ(ShouldError() ? "permission_error" : "prompt", + EvalJs(tab, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); // Deny the prompt after activation expires, expect no activation. @@ -186,13 +231,14 @@ WaitForUserActivationExpiry(); ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); permission_request_manager->Deny(); - EXPECT_EQ("denied", EvalJs(tab, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ(ShouldError() ? "permission_error" : "denied", + EvalJs(tab, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); EXPECT_FALSE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); } // Tests user activation after accepting the permission request. -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, Accept) { +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, Accept) { const GURL url(https_test_server()->GetURL("a.test", "/empty.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); auto* tab = browser()->tab_strip_model()->GetActiveWebContents(); @@ -205,12 +251,13 @@ WaitForUserActivationExpiry(); ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); permission_request_manager->Accept(); - EXPECT_EQ("granted", EvalJs(tab, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ(ShouldError() ? "permission_error" : "granted", + EvalJs(tab, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); EXPECT_TRUE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); } -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, IFrameSameOriginAllow) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -229,13 +276,14 @@ WaitForUserActivationExpiry(); ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); permission_request_manager->Accept(); - EXPECT_EQ("granted", EvalJs(child, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ(ShouldError() ? "permission_error" : "granted", + EvalJs(child, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); EXPECT_TRUE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); EXPECT_TRUE(child->GetMainFrame()->HasTransientUserActivation()); } -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, IFrameCrossOriginDeny) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -253,17 +301,18 @@ permissions::PermissionRequestManager::FromWebContents(tab); // PermissionRequestManager will accept any window management permission - // dialogs that appear. However, the window-placement permission is not + // dialogs that appear. However, the window-management permission is not // explicitly allowed on the iframe, so requests made by the child frame will // be automatically denied before a prompt might be issued. permission_request_manager->set_auto_response_for_test( permissions::PermissionRequestManager::ACCEPT_ALL); - EXPECT_EQ("error", EvalJs(child, kGetScreens)); - EXPECT_EQ("denied", EvalJs(child, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_EQ("error", EvalJs(child, GetScreensScript())); + EXPECT_EQ(ShouldError() ? "permission_error" : "denied", + EvalJs(child, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); } -IN_PROC_BROWSER_TEST_F(WindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(WindowManagementPermissionContextTest, IFrameCrossOriginExplicitAllow) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -272,8 +321,11 @@ // See https://w3c.github.io/webappsec-permissions-policy/ for more // information on permissions policies and allowing cross-origin iframes // to have particular permissions. - EXPECT_TRUE(ExecJs(tab, R"(const frame = document.getElementById('test'); - frame.setAttribute('allow', 'window-placement');)", + EXPECT_TRUE(ExecJs(tab, + base::ReplaceStringPlaceholders( + R"(const frame = document.getElementById('test'); + frame.setAttribute('allow', '$1');)", + {AliasToTest()}, nullptr), content::EXECUTE_SCRIPT_NO_USER_GESTURE)); GURL subframe_url(https_test_server()->GetURL("b.test", "/title1.html")); @@ -290,12 +342,19 @@ // Accept the prompt after activation expires, expect an activation signal. ExecuteScriptAsync(child, "getScreenDetails()"); WaitForUserActivationExpiry(); - ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); - permission_request_manager->Accept(); - EXPECT_EQ("granted", EvalJs(child, kCheckPermission, - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); - EXPECT_TRUE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); - EXPECT_TRUE(child->GetMainFrame()->HasTransientUserActivation()); + if (ShouldError()) { + EXPECT_FALSE(permission_request_manager->IsRequestInProgress()); + EXPECT_EQ("permission_error", + EvalJs(child, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + } else { + ASSERT_TRUE(permission_request_manager->IsRequestInProgress()); + permission_request_manager->Accept(); + EXPECT_EQ("granted", EvalJs(child, GetCheckPermissionScript(), + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + EXPECT_TRUE(tab->GetPrimaryMainFrame()->HasTransientUserActivation()); + EXPECT_TRUE(child->GetMainFrame()->HasTransientUserActivation()); + } } // TODO(enne): Windows assumes that display::GetScreen() is a ScreenWin @@ -304,7 +363,7 @@ // Verify that window.screen.isExtended returns true in a same-origin // iframe without the window management permission policy allowed. -IN_PROC_BROWSER_TEST_F(MultiscreenWindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(MultiscreenWindowManagementPermissionContextTest, IsExtendedSameOriginAllow) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -321,7 +380,7 @@ // Verify that window.screen.isExtended returns false in a cross-origin // iframe without the window management permission policy allowed. -IN_PROC_BROWSER_TEST_F(MultiscreenWindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(MultiscreenWindowManagementPermissionContextTest, IsExtendedCrossOriginDeny) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -341,7 +400,7 @@ // Verify that window.screen.isExtended returns true in a cross-origin // iframe with the window management permission policy allowed. -IN_PROC_BROWSER_TEST_F(MultiscreenWindowManagementPermissionContextTest, +IN_PROC_BROWSER_TEST_P(MultiscreenWindowManagementPermissionContextTest, IsExtendedCrossOriginAllow) { const GURL url(https_test_server()->GetURL("a.test", "/iframe.html")); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); @@ -350,8 +409,11 @@ // See https://w3c.github.io/webappsec-permissions-policy/ for more // information on permissions policies and allowing cross-origin iframes // to have particular permissions. - EXPECT_TRUE(ExecJs(tab, R"(const frame = document.getElementById('test'); - frame.setAttribute('allow', 'window-placement');)", + EXPECT_TRUE(ExecJs(tab, + base::ReplaceStringPlaceholders( + R"(const frame = document.getElementById('test'); + frame.setAttribute('allow', '$1');)", + {AliasToTest()}, nullptr), content::EXECUTE_SCRIPT_NO_USER_GESTURE)); GURL subframe_url(https_test_server()->GetURL("b.test", "/title1.html")); @@ -362,10 +424,21 @@ EXPECT_EQ(true, EvalJs(tab, R"(window.screen.isExtended)", content::EXECUTE_SCRIPT_NO_USER_GESTURE)); - EXPECT_EQ(true, EvalJs(child, R"(window.screen.isExtended)", - content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + // Should error if alias is used but flag is not enabled. + EXPECT_EQ(!ShouldError(), EvalJs(child, R"(window.screen.isExtended)", + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); } +INSTANTIATE_TEST_SUITE_P(, + MultiscreenWindowManagementPermissionContextTest, + ::testing::Combine(::testing::Bool(), + ::testing::Bool())); + #endif // !BUILDFLAG(IS_WIN) +INSTANTIATE_TEST_SUITE_P(, + WindowManagementPermissionContextTest, + ::testing::Combine(::testing::Bool(), + ::testing::Bool())); + } // namespace
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index e100f38..bd10ec31 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1673524345-fd5eaaa90faf1476eb528458aa02136d61d85a77.profdata +chrome-linux-main-1673546372-dadee6f830a7e6f6224322a7197e79fc3eda4ec2.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index fe6f2e9..daff448 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1673524345-ecfcdea7035d83e86fd484055673483981176353.profdata +chrome-mac-arm-main-1673546372-c9408c873c98dcec9c6799a1c7f904c3df22ef4f.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 0387804..454639b 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1673524345-6c98d74f01c528d0bade0efa6c9bd2c9c8dd7c32.profdata +chrome-mac-main-1673546372-c20cc97a24bc6fc7d728bfdf8ed79d6d940dc3aa.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 8e7226e..08d5f144 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1673524345-920e18f7c893189c263c4e87ae8a56c9cd227765.profdata +chrome-win32-main-1673535341-e7d0249512f9c71013e6fb585088cc6a30867c4a.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index bff1c9d..eca8ca13 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1673524345-76141c30650e29e5dc3ad06d1f0db3b882a80ded.profdata +chrome-win64-main-1673535341-e5f6d0075cafb6a5d8ca5bbc66bd458f84f02f03.profdata
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni index 82e1d14..a1665868 100644 --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni
@@ -299,6 +299,8 @@ "$root_gen_dir/chrome/oobe_unconditional_resources.pak", "$root_gen_dir/chrome/os_settings_resources.pak", "$root_gen_dir/chrome/password_change_resources.pak", + "$root_gen_dir/chrome/supervision_resources.pak", + "$root_gen_dir/chrome/vc_tray_tester_resources.pak", "$root_gen_dir/chromeos/ash/ash_resources.pak", "$root_gen_dir/chromeos/chromeos_help_app_bundle_resources.pak", "$root_gen_dir/chromeos/chromeos_help_app_kids_magazine_bundle_resources.pak", @@ -369,6 +371,8 @@ "//chrome/browser/resources/chromeos/network_ui:resources", "//chrome/browser/resources/chromeos/notification_tester:resources", "//chrome/browser/resources/chromeos/password_change:resources", + "//chrome/browser/resources/chromeos/supervision:resources", + "//chrome/browser/resources/chromeos/vc_tray_tester:resources", "//chrome/browser/resources/nearby_internals:resources", "//chrome/browser/resources/nearby_share:resources", "//chrome/browser/resources/settings/chromeos:resources",
diff --git a/chrome/common/DEPS b/chrome/common/DEPS index 4a6c07c..030b440f 100644 --- a/chrome/common/DEPS +++ b/chrome/common/DEPS
@@ -78,7 +78,7 @@ specific_include_rules = { "chrome_constants_ash_unittest\.cc": [ - "+chromeos/ash/components/browser_context_helper/browser_context_helper.h", + "+chromeos/ash/components/browser_context_helper/browser_context_types.h", ], "logging_chrome\.cc": [ "+ash/constants/ash_switches.h",
diff --git a/chrome/common/chrome_constants_ash_unittest.cc b/chrome/common/chrome_constants_ash_unittest.cc index 29d0e60..bc291fdc 100644 --- a/chrome/common/chrome_constants_ash_unittest.cc +++ b/chrome/common/chrome_constants_ash_unittest.cc
@@ -4,16 +4,15 @@ #include "chrome/common/chrome_constants.h" -#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "testing/gtest/include/gtest/gtest.h" namespace chrome { TEST(ChromeConstants, InitialProfile) { // chrome::kInitialProfile must be exactly as same as - // ash::BrowserContextHelper::kSigninBrowserContextBaseName. - EXPECT_STREQ(chrome::kInitialProfile, - ash::BrowserContextHelper::kSigninBrowserContextBaseName); + // ash::kSigninBrowserContextBaseName. + EXPECT_STREQ(chrome::kInitialProfile, ash::kSigninBrowserContextBaseName); } } // namespace chrome
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc index 29d1ef4..ee1ac93 100644 --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc
@@ -390,6 +390,8 @@ const char kChromeUIUntrustedTerminalURL[] = "chrome-untrusted://terminal/"; const char kChromeUIUserImageHost[] = "userimage"; const char kChromeUIUserImageURL[] = "chrome://userimage/"; +const char kChromeUIVcTrayTesterHost[] = "vc-tray-tester"; +const char kChromeUIVcTrayTesterURL[] = "chrome://vc-tray-tester"; const char kChromeUIVmHost[] = "vm"; const char kChromeUIVmUrl[] = "chrome://vm"; const char kChromeUIEmojiPickerURL[] = "chrome://emoji-picker/"; @@ -464,6 +466,7 @@ kChromeUISetTimeHost, kChromeUISmbCredentialsHost, kChromeUISmbShareHost, + kChromeUIVcTrayTesterHost, kChromeUIEmojiPickerHost, #if BUILDFLAG(PLATFORM_CFM) kCfmNetworkSettingsHost,
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h index e00b8225..e7c375d3 100644 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h
@@ -362,6 +362,8 @@ extern const char kChromeUIUrgentPasswordExpiryNotificationUrl[]; extern const char kChromeUIUserImageHost[]; extern const char kChromeUIUserImageURL[]; +extern const char kChromeUIVcTrayTesterURL[]; +extern const char kChromeUIVcTrayTesterHost[]; extern const char kChromeUIVmHost[]; extern const char kChromeUIVmUrl[];
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 164bc81..422b4c8 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -60,7 +60,6 @@ import("//build/config/android/rules.gni") import("//chrome/android/features/dev_ui/dev_ui_module.gni") import("//tools/perf/chrome_telemetry_build/android_browser_types.gni") - import("//tools/v8_context_snapshot/v8_context_snapshot.gni") } # This target exists to reference other test executables to bring these files @@ -1111,14 +1110,9 @@ # These are assets rules so we can just depend on them. deps += [ "//chrome/android:chrome_apk_pak_assets", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ] - - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } } android_library("android_browsertests_java") { @@ -6629,14 +6623,10 @@ "//components/webapk:proto", "//components/webapps/browser", "//content/public/android:content_java", + "//gin:v8_snapshot_assets", "//ui/android", "//ui/events/devices:test_support", ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } if (dfmify_dev_ui) { sources += [ "//chrome/browser/dev_ui/android/dev_ui_loader_throttle_unittest.cc",
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/dynamic_rules/background.js b/chrome/test/data/extensions/api_test/declarative_net_request/dynamic_rules/background.js index 8f5849f..d172887 100644 --- a/chrome/test/data/extensions/api_test/declarative_net_request/dynamic_rules/background.js +++ b/chrome/test/data/extensions/api_test/declarative_net_request/dynamic_rules/background.js
@@ -2,95 +2,123 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -var updateDynamicRules = chrome.declarativeNetRequest.updateDynamicRules; -var getDynamicRules = chrome.declarativeNetRequest.getDynamicRules; -var nextId = 1; +function updateDynamicRules(options, expectedError) { + return new Promise(resolve => { + chrome.declarativeNetRequest.updateDynamicRules(options, () => { + if (expectedError) + chrome.test.assertLastError(expectedError); + else + chrome.test.assertNoLastError(); -var createRuleWithID = function(id) { + resolve(); + }); + }); +} + +function createRuleWithID(id) { return { - id: id, + id, priority: 1, condition: {urlFilter: id.toString()}, action: {type: 'block'}, }; -}; +} -var createRegexRuleWithID = function(id) { +function createRegexRuleWithID(id) { return { - id: id, + id, priority: 1, condition: {regexFilter: id.toString()}, action: {type: 'block'}, }; -}; +} -var createLargeRegexRuleWithID = function(id) { - var rule = createRegexRuleWithID(id); +function createLargeRegexRuleWithID(id) { + let rule = createRegexRuleWithID(id); rule.condition.regexFilter = '.{512}x'; return rule; -}; +} // Verifies the current set of rules. Ensures no error is signalled and proceeds // to the next test. -var verifyCurrentRulesCallback = function() { +function dynamicRulesEqual(expectedRules, ruleFilter) { chrome.test.assertNoLastError(); - getDynamicRules(function(rules) { - chrome.test.assertNoLastError(); + return new Promise(resolve => { + chrome.declarativeNetRequest.getDynamicRules(ruleFilter, actualRules => { + chrome.test.assertNoLastError(); - var comparator = function(rule1, rule2) { - return rule1.id - rule2.id; - }; + // Sort by ID first since assertEq respects order of arrays. + let comparator = (rule1, rule2) => rule1.id - rule2.id; + actualRules.sort(comparator); + expectedRules.sort(comparator); - // Sort by ID first since assertEq respects order of arrays. - rules.sort(comparator) - currentRules.sort(comparator); - chrome.test.assertEq(currentRules, rules); + chrome.test.assertEq(expectedRules, actualRules); - chrome.test.succeed(); + resolve(); + }); }); }; -var currentRules = []; + +let currentRules = []; chrome.test.runTests([ - function getRulesEmpty() { - verifyCurrentRulesCallback(); + async function getRulesEmpty() { + await dynamicRulesEqual([]); + + chrome.test.succeed(); }, - function addRulesEmpty() { - updateDynamicRules({}, verifyCurrentRulesCallback); + async function addRulesEmpty() { + await updateDynamicRules({}); + await dynamicRulesEqual([]); + + chrome.test.succeed(); }, - function addRules() { + async function addRules() { currentRules = [createRuleWithID(1), createRuleWithID(2), createRuleWithID(3)]; - updateDynamicRules({addRules: currentRules}, verifyCurrentRulesCallback); - nextId = 4; + await updateDynamicRules({addRules: currentRules}); + await dynamicRulesEqual(currentRules); + + chrome.test.succeed(); }, - function removeRules() { + async function ruleIdsFilter() { + await dynamicRulesEqual( + currentRules.filter(({id}) => id !== 3), {ruleIds: [1, 2]}); + + chrome.test.succeed(); + }, + + async function removeRules() { // Remove rule with id 1, 2. // Also ensure rule ids which are not present are ignored. - currentRules = currentRules.filter(rule => rule.id === 3); - updateDynamicRules( - {addRules: [], removeRuleIds: [4, 5, 2, 1]}, - verifyCurrentRulesCallback); + currentRules = currentRules.filter(({id}) => id === 3); + await updateDynamicRules({addRules: [], removeRuleIds: [4, 5, 2, 1]}); + await dynamicRulesEqual(currentRules); + + chrome.test.succeed(); }, // Ensure we fail on adding a rule with a duplicate ID. - function duplicateID() { - updateDynamicRules( + async function duplicateID() { + await updateDynamicRules( {addRules: [createRegexRuleWithID(3)]}, - chrome.test.callbackFail('Rule with id 3 does not have a unique ID.')); + 'Rule with id 3 does not have a unique ID.'); + + chrome.test.succeed(); }, // Ensure we get an error on adding a rule which exceeds the regex memory // limit. - function largeRegexError() { - updateDynamicRules( + async function largeRegexError() { + await updateDynamicRules( {addRules: [createLargeRegexRuleWithID(5)]}, - chrome.test.callbackFail( - 'Rule with id 5 specified a more complex regex than allowed as ' + - 'part of the "regexFilter" key.')); + 'Rule with id 5 specified a more complex regex than allowed as part ' + + 'of the "regexFilter" key.'); + + chrome.test.succeed(); }, ]);
diff --git a/chrome/test/data/extensions/resource_timing/fetch_resource/background.js b/chrome/test/data/extensions/resource_timing/fetch_resource/background.js new file mode 100644 index 0000000..b372a4d7 --- /dev/null +++ b/chrome/test/data/extensions/resource_timing/fetch_resource/background.js
@@ -0,0 +1,10 @@ +// 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. + +async function fetchResource() { + let result; + await fetch('/extensions/resource_timing/24.png') + .then(() => { result = true; }).catch(() => { result = false }); + return result; +}
diff --git a/chrome/test/data/extensions/resource_timing/fetch_resource/manifest.json b/chrome/test/data/extensions/resource_timing/fetch_resource/manifest.json index c3185a4..6d097cc 100644 --- a/chrome/test/data/extensions/resource_timing/fetch_resource/manifest.json +++ b/chrome/test/data/extensions/resource_timing/fetch_resource/manifest.json
@@ -12,6 +12,9 @@ ] } ], + "host_permissions": [ + "<all_urls>" + ], "content_scripts": [ { "js": [ @@ -23,6 +26,10 @@ } ], "permissions": [ - "tabs" - ] + "tabs", + "scripting" + ], + "background": { + "service_worker": "background.js" + } }
diff --git a/chrome/test/data/extensions/resource_timing/test-page.html b/chrome/test/data/extensions/resource_timing/test-page.html index 2deb9e9..f111c24 100644 --- a/chrome/test/data/extensions/resource_timing/test-page.html +++ b/chrome/test/data/extensions/resource_timing/test-page.html
@@ -9,7 +9,6 @@ Such resource should not trigger performance timeline resource timing entry. <script> const getResourceTimingEntryCount = () => { - console.log('getResourceTimingEntryCount'); return performance.getEntriesByType('resource').filter(e => e.name.includes('24.png')).length; }
diff --git a/chrome/test/data/webui/chromeos/personalization_app/ambient_preview_element_test.ts b/chrome/test/data/webui/chromeos/personalization_app/ambient_preview_element_test.ts index 712eeaf3..a184aa0 100644 --- a/chrome/test/data/webui/chromeos/personalization_app/ambient_preview_element_test.ts +++ b/chrome/test/data/webui/chromeos/personalization_app/ambient_preview_element_test.ts
@@ -134,8 +134,8 @@ }); test('click ambient collage goes to ambient albums subpage', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. - loadTimeData.overrideValues({['isAmbientSubpageUIChangeEnabled']: false}); + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. + loadTimeData.overrideValues({isAmbientSubpageUiChangeEnabled: false}); personalizationStore.data.ambient = { ...personalizationStore.data.ambient, @@ -188,7 +188,7 @@ }); test('click ambient thumbnail goes to ambient albums subpage', async () => { - loadTimeData.overrideValues({['isAmbientSubpageUIChangeEnabled']: true}); + loadTimeData.overrideValues({isAmbientSubpageUiChangeEnabled: true}); personalizationStore.data.ambient = { ...personalizationStore.data.ambient, @@ -241,8 +241,8 @@ }); test('displays zero state message before UI change', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. - loadTimeData.overrideValues({['isAmbientSubpageUIChangeEnabled']: false}); + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. + loadTimeData.overrideValues({isAmbientSubpageUiChangeEnabled: false}); personalizationStore.data.ambient.albums = ambientProvider.albums; personalizationStore.data.ambient.topicSource = TopicSource.kArtGallery; @@ -267,10 +267,11 @@ test( 'displays not available message for enterprise controlled user', async () => { - loadTimeData.overrideValues( - {['isAmbientSubpageUIChangeEnabled']: true}); // Enable `isAmbientModeManaged` to mock an enterprise controlled user. - loadTimeData.overrideValues({['isAmbientModeManaged']: true}); + loadTimeData.overrideValues({ + isAmbientSubpageUiChangeEnabled: true, + isAmbientModeManaged: true, + }); personalizationStore.data.ambient.albums = ambientProvider.albums; personalizationStore.data.ambient.topicSource = TopicSource.kArtGallery;
diff --git a/chrome/test/data/webui/chromeos/personalization_app/ambient_subpage_element_test.ts b/chrome/test/data/webui/chromeos/personalization_app/ambient_subpage_element_test.ts index 05c357b..1ada327 100644 --- a/chrome/test/data/webui/chromeos/personalization_app/ambient_subpage_element_test.ts +++ b/chrome/test/data/webui/chromeos/personalization_app/ambient_subpage_element_test.ts
@@ -34,7 +34,7 @@ setup(() => { loadTimeData.overrideValues({ isAmbientModeAllowed: true, - isAmbientSubpageUIChangeEnabled: true, + isAmbientSubpageUiChangeEnabled: true, }); const mocks = baseSetup(); ambientProvider = mocks.ambientProvider; @@ -702,9 +702,9 @@ test( 'displays 4 image collage when there are enough photos in Google photos album', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. loadTimeData.overrideValues( - {['isAmbientSubpageUIChangeEnabled']: false}); + {['isAmbientSubpageUiChangeEnabled']: false}); ambientSubpageElement = await displayMainSettings( TopicSource.kGooglePhotos, TemperatureUnit.kFahrenheit, @@ -728,9 +728,9 @@ test( 'displays 1 image collage when there are not enough photos in Google photos album', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. loadTimeData.overrideValues( - {['isAmbientSubpageUIChangeEnabled']: false}); + {['isAmbientSubpageUiChangeEnabled']: false}); ambientSubpageElement = await displayMainSettings( TopicSource.kGooglePhotos, TemperatureUnit.kFahrenheit, @@ -756,9 +756,9 @@ test( 'displays preview urls from selected albums when there are zero preview photos in Google photos album', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. loadTimeData.overrideValues( - {['isAmbientSubpageUIChangeEnabled']: false}); + {['isAmbientSubpageUiChangeEnabled']: false}); ambientSubpageElement = await displayMainSettings( TopicSource.kGooglePhotos, TemperatureUnit.kFahrenheit, @@ -780,8 +780,8 @@ }); test('displays zero state when ambient mode is disabled', async () => { - // Disables `isAmbientSubpageUIChangeEnabled` to show the previous UI. - loadTimeData.overrideValues({['isAmbientSubpageUIChangeEnabled']: false}); + // Disables `isAmbientSubpageUiChangeEnabled` to show the previous UI. + loadTimeData.overrideValues({['isAmbientSubpageUiChangeEnabled']: false}); ambientSubpageElement = await displayMainSettings( TopicSource.kArtGallery, TemperatureUnit.kFahrenheit,
diff --git a/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_view_test.ts b/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_view_test.ts index 25fd8b4..2b77d5c 100644 --- a/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_view_test.ts +++ b/chrome/test/data/webui/chromeos/shortcut_customization/accelerator_view_test.ts
@@ -232,4 +232,39 @@ assertTrue(lockItemContainer.hidden); }); + test('ElementFocusableWhenCustomizationEnabled', async () => { + loadTimeData.overrideValues({isCustomizationEnabled: true}); + viewElement = initAcceleratorViewElement(); + await flushTasks(); + + const acceleratorInfo = createStandardAcceleratorInfo( + Modifier.CONTROL | Modifier.SHIFT, + /*key=*/ 71, + /*keyDisplay=*/ 'g'); + + viewElement.acceleratorInfo = acceleratorInfo; + + await flushTasks(); + const containerElement = + viewElement.shadowRoot!.querySelector('#container') as HTMLDivElement; + assertEquals(0, containerElement.tabIndex); + }); + + test('ElementNotFocusableWhenCustomizationDisabled', async () => { + loadTimeData.overrideValues({isCustomizationEnabled: false}); + viewElement = initAcceleratorViewElement(); + await flushTasks(); + + const acceleratorInfo = createStandardAcceleratorInfo( + Modifier.CONTROL | Modifier.SHIFT, + /*key=*/ 71, + /*keyDisplay=*/ 'g'); + + viewElement.acceleratorInfo = acceleratorInfo; + + await flushTasks(); + const containerElement = + viewElement.shadowRoot!.querySelector('#container') as HTMLDivElement; + assertEquals(-1, containerElement.tabIndex); + }); }); \ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/shortcut_customization/input_key_test.ts b/chrome/test/data/webui/chromeos/shortcut_customization/input_key_test.ts index 6f32716..d7e9461 100644 --- a/chrome/test/data/webui/chromeos/shortcut_customization/input_key_test.ts +++ b/chrome/test/data/webui/chromeos/shortcut_customization/input_key_test.ts
@@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'chrome://shortcut-customization/strings.m.js'; import 'chrome://shortcut-customization/js/input_key.js'; import 'chrome://webui-test/mojo_webui_test_support.js'; import {IronIconElement} from '//resources/polymer/v3_0/iron-icon/iron-icon.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {InputKeyElement} from 'chrome://shortcut-customization/js/input_key.js'; +import {InputKeyElement, keyToIconNameMap} from 'chrome://shortcut-customization/js/input_key.js'; import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {isVisible} from 'chrome://webui-test/test_util.js'; @@ -55,4 +56,26 @@ const keyElement = inputKeyElement.shadowRoot!.querySelector('#key-text'); assertFalse(isVisible(keyElement)); }); + + test('AllIconsHaveValidAriaLabelStringIds', async () => { + inputKeyElement = initInputKeyElement(); + for (const keyCode of Object.keys(keyToIconNameMap)) { + const ariaLabelStringId = InputKeyElement.getAriaLabelStringId(keyCode); + assertTrue( + inputKeyElement.i18nExists(ariaLabelStringId), + `String ID ${ariaLabelStringId} should exist, but it doesn't.`); + } + }); + + test('IconKeyHasAriaLabel', async () => { + inputKeyElement = initInputKeyElement(); + inputKeyElement.key = 'PrintScreen'; + await flush(); + + const iconWrapperElement = inputKeyElement.shadowRoot!.querySelector( + '#key > div') as HTMLDivElement; + assertTrue(isVisible(iconWrapperElement)); + assertEquals('screenshot', iconWrapperElement.ariaLabel); + assertEquals('img', iconWrapperElement.getAttribute('role')); + }); }); \ No newline at end of file
diff --git a/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts b/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts index 22cc67d6..44ab7c3 100644 --- a/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts +++ b/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts
@@ -22,6 +22,7 @@ const LIST_NATIVE_ID: string = 'kHelpBubbleMixinTestListElementId'; const SPAN_NATIVE_ID: string = 'kHelpBubbleMixinTestSpanElementId'; const LIST_ITEM_NATIVE_ID: string = 'kHelpBubbleMixinTestListItemElementId'; +const NESTED_CHILD_NATIVE_ID: string = 'kHelpBubbleMixinTestChildElementId'; const EVENT1_NAME: string = 'kFirstExampleCustomEvent'; const EVENT2_NAME: string = 'kSecondExampleCustomEvent'; const CLOSE_BUTTON_ALT_TEXT: string = 'Close help bubble.'; @@ -45,7 +46,9 @@ let p1Bubble: HelpBubbleController; let bulletListBubble: HelpBubbleController; let spanBubble: HelpBubbleController; +let nestedChildBubble: HelpBubbleController; +// HelpBubbleMixinTestElement export class HelpBubbleMixinTestElement extends HelpBubbleMixinTestElementBase { static get is() { return 'help-bubble-mixin-test-element'; @@ -61,6 +64,7 @@ <li>List item 2</li> </ul> <span>Span text</span> + <container-element id='container-element'></container-element> </div>`; } @@ -74,18 +78,41 @@ p1Bubble = this.registerHelpBubble(PARAGRAPH_NATIVE_ID, '#p1')!; bulletListBubble = this.registerHelpBubble(LIST_NATIVE_ID, '#bulletList')!; spanBubble = this.registerHelpBubble(SPAN_NATIVE_ID, spanEl)!; - } -} -declare global { - interface HTMLElementTagNameMap { - 'help-bubble-mixin-test-element': HelpBubbleMixinTestElement; + // using different types of selectors to test query mechanism + nestedChildBubble = this.registerHelpBubble( + NESTED_CHILD_NATIVE_ID, ['#container-element', '.child-element'])!; } } customElements.define( HelpBubbleMixinTestElement.is, HelpBubbleMixinTestElement); +// HelpBubbleMixinTestContainerElement +export class HelpBubbleMixinTestContainerElement extends PolymerElement { + static get is() { + return 'container-element'; + } + + static get template() { + return html` + <div> + <div class='child-element'></div> + </div>`; + } +} + +customElements.define( + HelpBubbleMixinTestContainerElement.is, + HelpBubbleMixinTestContainerElement); + +declare global { + interface HTMLElementTagNameMap { + 'help-bubble-mixin-test-element': HelpBubbleMixinTestElement; + 'container-element': HelpBubbleMixinTestContainerElement; + } +} + class TestHelpBubbleHandler extends TestBrowserProxy implements HelpBubbleHandlerInterface { constructor() { @@ -258,6 +285,33 @@ assertTrue(spanBubble.isShowing()); }); + test( + 'help bubble mixin can pierce shadow dom to anchor to deep query', () => { + const containerElement = + container.shadowRoot!.querySelector('#container-element'); + let childElement = + container.shadowRoot!.querySelector('.child-element'); + + assertTrue(containerElement !== null, 'container element is found'); + assertTrue( + childElement === null, 'child element is isolated from container'); + + childElement = + containerElement.shadowRoot!.querySelector('.child-element'); + assertTrue( + childElement !== null, 'child element is rendered in shadow dom'); + + assertTrue( + childElement === nestedChildBubble.getAnchor(), + 'help bubble anchors to correct element in shadow dom'); + + assertFalse(container.isHelpBubbleShowing()); + assertFalse(nestedChildBubble.isShowing()); + container.showHelpBubble(nestedChildBubble, defaultParams); + assertTrue(container.isHelpBubbleShowing()); + assertTrue(nestedChildBubble.isShowing()); + }); + test('help bubble mixin reports not open for other elements', () => { // Valid but not open. assertFalse(container.isHelpBubbleShowingForTesting('title')); @@ -413,7 +467,7 @@ await waitAfterNextRender(container); // Since we're watching four elements, we get events for all four. assertEquals( - 4, + 5, testProxy.getHandler().getCallCount( 'helpBubbleAnchorVisibilityChanged')); assertDeepEquals( @@ -422,6 +476,7 @@ [PARAGRAPH_NATIVE_ID, true], [LIST_NATIVE_ID, true], [SPAN_NATIVE_ID, true], + [NESTED_CHILD_NATIVE_ID, true], ], testProxy.getHandler().getArgs('helpBubbleAnchorVisibilityChanged')); }); @@ -430,7 +485,7 @@ container.style.display = 'none'; await waitForVisibilityEvents(); assertEquals( - 8, + 10, testProxy.getHandler().getCallCount( 'helpBubbleAnchorVisibilityChanged')); assertDeepEquals( @@ -439,10 +494,12 @@ [PARAGRAPH_NATIVE_ID, true], [LIST_NATIVE_ID, true], [SPAN_NATIVE_ID, true], + [NESTED_CHILD_NATIVE_ID, true], [TITLE_NATIVE_ID, false], [PARAGRAPH_NATIVE_ID, false], [LIST_NATIVE_ID, false], [SPAN_NATIVE_ID, false], + [NESTED_CHILD_NATIVE_ID, false], ], testProxy.getHandler().getArgs('helpBubbleAnchorVisibilityChanged')); });
diff --git a/chrome/test/data/webui/settings/privacy_page_test.ts b/chrome/test/data/webui/settings/privacy_page_test.ts index eb5c989..5692a8dc 100644 --- a/chrome/test/data/webui/settings/privacy_page_test.ts +++ b/chrome/test/data/webui/settings/privacy_page_test.ts
@@ -117,6 +117,11 @@ '#thirdPartyCookiesLinkRow'))); assertFalse(Boolean( page.shadowRoot!.querySelector<HTMLElement>('#cookiesLinkRow'))); + assertEquals( + page.i18n('thirdPartyCookiesLinkRowLabel'), + page.shadowRoot! + .querySelector<CrLinkRowElement>( + '#thirdPartyCookiesLinkRow')!.label); }); test('cookiesLinkRowSublabel', async function() { @@ -227,6 +232,10 @@ page.shadowRoot!.querySelector<HTMLElement>('#cookiesLinkRow'))); assertFalse(Boolean(page.shadowRoot!.querySelector<HTMLElement>( '#thirdPartyCookiesLinkRow'))); + assertEquals( + page.i18n('cookiePageTitle'), + page.shadowRoot!.querySelector<CrLinkRowElement>( + '#cookiesLinkRow')!.label); }); test('cookiesLinkRowSublabel', async function() { @@ -248,6 +257,15 @@ assertTrue(isChildVisible(page, '#privacySandboxLinkRow')); }); + test('privacySandboxRowLabel', function() { + const privacySandboxLinkRow = + page.shadowRoot!.querySelector<CrLinkRowElement>( + '#privacySandboxLinkRow')!; + assertEquals( + loadTimeData.getString('privacySandboxTitle'), + privacySandboxLinkRow.label); + }); + test('privacySandboxRowSublabel', async function() { page.set('prefs.privacy_sandbox.apis_enabled_v2.value', true); assertTrue(isChildVisible(page, '#privacySandboxLinkRow')); @@ -331,6 +349,15 @@ assertTrue(isChildVisible(page, '#privacySandboxLinkRow')); }); + test('privacySandboxRowLabel', function() { + const privacySandboxLinkRow = + page.shadowRoot!.querySelector<CrLinkRowElement>( + '#privacySandboxLinkRow')!; + assertEquals( + loadTimeData.getString('adPrivacyLinkRowLabel'), + privacySandboxLinkRow.label); + }); + test('privacySandboxRowSublabel', async function() { page.set('prefs.privacy_sandbox.apis_enabled_v2.value', true); assertTrue(isChildVisible(page, '#privacySandboxLinkRow')); @@ -384,7 +411,7 @@ page.shadowRoot!.querySelector<PolymerElement>('#cookies'); assertTrue(!!cookiesSubpage); assertEquals( - page.i18n('thirdPartyCookiesLinkRowLabel'), + page.i18n('thirdPartyCookiesPageTitle'), cookiesSubpage.getAttribute('page-title')); const associatedControl = cookiesSubpage.get('associatedControl'); assertTrue(!!associatedControl);
diff --git a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts index 7e7ad95..fe5de86 100644 --- a/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts +++ b/chrome/test/data/webui/settings/privacy_sandbox_page_test.ts
@@ -346,7 +346,11 @@ // Block topic. const item = currentTopicsSection.querySelector('privacy-sandbox-interest-item')!; - item.shadowRoot!.querySelector('cr-button')!.click(); + const blockButton = item.shadowRoot!.querySelector('cr-button'); + assertEquals( + page.i18n('topicsPageBlockTopicA11yLabel', 'test-topic-1'), + blockButton!.getAttribute('aria-label')); + blockButton!.click(); assertEquals( 'Settings.PrivacySandbox.Topics.TopicRemoved', await metricsBrowserProxy.whenCalled('recordAction')); @@ -369,7 +373,11 @@ let blockedItems = blockedTopicsList.querySelectorAll('privacy-sandbox-interest-item'); assertEquals(2, blockedItems.length); - blockedItems[0]!.shadowRoot!.querySelector('cr-button')!.click(); + const allowButton = blockedItems[0]!.shadowRoot!.querySelector('cr-button'); + assertEquals( + page.i18n('topicsPageAllowTopicA11yLabel', 'test-topic-1'), + allowButton!.getAttribute('aria-label')); + allowButton!.click(); await testPrivacySandboxBrowserProxy.whenCalled('setTopicAllowed'); assertEquals( 'Settings.PrivacySandbox.Topics.TopicAdded', @@ -629,7 +637,11 @@ // Block site. const item = currentSitesSection.querySelector('privacy-sandbox-interest-item')!; - item.shadowRoot!.querySelector('cr-button')!.click(); + const blockButton = item.shadowRoot!.querySelector('cr-button'); + assertEquals( + page.i18n('fledgePageBlockSiteA11yLabel', 'test-site-one.com'), + blockButton!.getAttribute('aria-label')); + blockButton!.click(); await testPrivacySandboxBrowserProxy.whenCalled('setFledgeJoiningAllowed'); assertEquals( 'Settings.PrivacySandbox.Fledge.SiteRemoved', @@ -652,7 +664,11 @@ let blockedItems = blockedSitesList.querySelectorAll('privacy-sandbox-interest-item'); assertEquals(2, blockedItems.length); - blockedItems[0]!.shadowRoot!.querySelector('cr-button')!.click(); + const allowButton = blockedItems[0]!.shadowRoot!.querySelector('cr-button'); + assertEquals( + page.i18n('fledgePageAllowSiteA11yLabel', 'test-site-one.com'), + allowButton!.getAttribute('aria-label')); + allowButton!.click(); await testPrivacySandboxBrowserProxy.whenCalled('setFledgeJoiningAllowed'); assertEquals( 'Settings.PrivacySandbox.Fledge.SiteAdded',
diff --git a/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts b/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts index 9d0a577..8907a1e2 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/test_bookmarks_api_proxy.ts
@@ -31,6 +31,8 @@ 'contextMenuOpenBookmarkInNewTab', 'contextMenuOpenBookmarkInNewWindow', 'contextMenuOpenBookmarkInIncognitoWindow', + 'contextMenuAddToBookmarksBar', + 'contextMenuRemoveFromBookmarksBar', 'contextMenuDelete', 'copyBookmark', 'createFolder', @@ -90,6 +92,14 @@ this.methodCalled('contextMenuOpenBookmarkInIncognitoWindow', ids, source); } + contextMenuAddToBookmarksBar(id: string, source: ActionSource) { + this.methodCalled('contextMenuAddToBookmarksBar', id, source); + } + + contextMenuRemoveFromBookmarksBar(id: string, source: ActionSource) { + this.methodCalled('contextMenuRemoveFromBookmarksBar', id, source); + } + contextMenuDelete(id: string, source: ActionSource) { this.methodCalled('contextMenuDelete', id, source); }
diff --git a/chrome/test/interaction/tracked_element_webcontents.cc b/chrome/test/interaction/tracked_element_webcontents.cc index 3b42cc31..fa2d36cf 100644 --- a/chrome/test/interaction/tracked_element_webcontents.cc +++ b/chrome/test/interaction/tracked_element_webcontents.cc
@@ -22,6 +22,10 @@ ui::ElementTracker::GetFrameworkDelegate()->NotifyElementShown(this); } +gfx::Rect TrackedElementWebContents::GetScreenBounds() const { + return owner_->web_contents()->GetContainerBounds(); +} + std::string TrackedElementWebContents::ToString() const { auto result = TrackedElement::ToString(); result.append(" with contents ");
diff --git a/chrome/test/interaction/tracked_element_webcontents.h b/chrome/test/interaction/tracked_element_webcontents.h index 7a557c04..d024c9a 100644 --- a/chrome/test/interaction/tracked_element_webcontents.h +++ b/chrome/test/interaction/tracked_element_webcontents.h
@@ -25,6 +25,8 @@ DECLARE_FRAMEWORK_SPECIFIC_METADATA() + // TrackedElement: + gfx::Rect GetScreenBounds() const override; std::string ToString() const override; WebContentsInteractionTestUtil* owner() { return owner_; }
diff --git a/chrome/updater/policy/service.cc b/chrome/updater/policy/service.cc index edd4254..637116a 100644 --- a/chrome/updater/policy/service.cc +++ b/chrome/updater/policy/service.cc
@@ -17,6 +17,7 @@ #include "base/ranges/algorithm.h" #include "base/sequence_checker.h" #include "base/strings/string_util.h" +#include "base/task/thread_pool.h" #include "base/time/time.h" #include "build/build_config.h" #include "chrome/updater/constants.h" @@ -133,15 +134,25 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); VLOG(1) << __func__; - // TODO(crbug/1259428): The managers may need to be reinitialized even when - // dm_policy_manager is not provided, the next CL will address this. - if (dm_policy_manager) { - policy_managers_ = SortManagers(CreatePolicyManagerVector( - external_constants_, is_system_install_scenario, - std::move(dm_policy_manager))); - } - - std::move(callback).Run(result); + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::MayBlock()}, + base::BindOnce( + [](scoped_refptr<ExternalConstants> external_constants, + bool is_system_install_scenario, + scoped_refptr<PolicyManagerInterface> dm_policy_manager) { + return CreatePolicyManagerVector(external_constants, + is_system_install_scenario, + std::move(dm_policy_manager)); + }, + external_constants_, is_system_install_scenario, dm_policy_manager), + base::BindOnce( + [](scoped_refptr<PolicyService> self, + base::OnceCallback<void(int)> callback, int result, + PolicyService::PolicyManagerVector managers) { + self->policy_managers_ = SortManagers(std::move(managers)); + std::move(callback).Run(result); + }, + base::WrapRefCounted(this), std::move(callback), result)); } std::string PolicyService::source() const {
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn index 5368790e..9295bee6 100644 --- a/chromecast/BUILD.gn +++ b/chromecast/BUILD.gn
@@ -679,8 +679,8 @@ deps = [ ":cast_shell_apk_locale_assets", ":cast_shell_pak", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", - "//v8:v8_external_startup_data_assets", ] disable_compression = true }
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java index e0bf8cff7..70a3e26 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastContentWindowAndroid.java
@@ -41,10 +41,10 @@ @SuppressWarnings("unused") @CalledByNative private static CastContentWindowAndroid create(long nativeCastContentWindowAndroid, - boolean enableTouchInput, boolean isRemoteControlMode, boolean turnOnScreen, + boolean enableTouchInput, boolean shouldRequestAudioFocus, boolean turnOnScreen, boolean keepScreenOn, String sessionId, String displayId) { return new CastContentWindowAndroid(nativeCastContentWindowAndroid, - getContextWithDisplay(displayId), enableTouchInput, isRemoteControlMode, + getContextWithDisplay(displayId), enableTouchInput, shouldRequestAudioFocus, turnOnScreen, keepScreenOn, sessionId); } @@ -66,7 +66,7 @@ } private CastContentWindowAndroid(long nativeCastContentWindowAndroid, final Context context, - boolean enableTouchInput, boolean isRemoteControlMode, boolean turnOnScreen, + boolean enableTouchInput, boolean shouldRequestAudioFocus, boolean turnOnScreen, boolean keepScreenOn, String sessionId) { mNativeCastContentWindowAndroid = nativeCastContentWindowAndroid; mContext = context; @@ -74,7 +74,7 @@ "Creating new CastContentWindowAndroid(No. " + sInstanceId++ + ") Seesion ID: " + sessionId); mComponent = new CastWebContentsComponent(sessionId, this, this, enableTouchInput, - isRemoteControlMode, turnOnScreen, keepScreenOn); + shouldRequestAudioFocus, turnOnScreen, keepScreenOn); } @SuppressWarnings("unused")
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsComponent.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsComponent.java index 16d5abd..38a59569 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsComponent.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsComponent.java
@@ -88,7 +88,7 @@ if (mStarted) return; // No-op if already started. if (DEBUG) Log.d(TAG, "start: SHOW_WEB_CONTENT in activity"); startCastActivity(params.context, params.webContents, mEnableTouchInput, - mIsRemoteControlMode, mTurnOnScreen); + mShouldRequestAudioFocus, mTurnOnScreen); mStarted = true; } @@ -100,9 +100,9 @@ } private void startCastActivity(Context context, WebContents webContents, boolean enableTouch, - boolean isRemoteControlMode, boolean turnOnScreen) { + boolean shouldRequestAudioFocus, boolean turnOnScreen) { Intent intent = CastWebContentsIntentUtils.requestStartCastActivity(context, webContents, - enableTouch, isRemoteControlMode, turnOnScreen, mKeepScreenOn, mSessionId); + enableTouch, shouldRequestAudioFocus, turnOnScreen, mKeepScreenOn, mSessionId); int displayId = DisplayAndroidManager.getDefaultDisplayForContext(context).getDisplayId(); if (DEBUG) Log.d(TAG, "start activity by intent: " + intent + " on display: " + displayId); sResumeIntent.set(intent); @@ -160,26 +160,26 @@ private boolean mStarted; private boolean mEnableTouchInput; private boolean mMediaPlaying; - private final boolean mIsRemoteControlMode; + private final boolean mShouldRequestAudioFocus; private final boolean mTurnOnScreen; private final boolean mKeepScreenOn; public CastWebContentsComponent(String sessionId, OnComponentClosedHandler onComponentClosedHandler, SurfaceEventHandler surfaceEventHandler, boolean enableTouchInput, - boolean isRemoteControlMode, boolean turnOnScreen, boolean keepScreenOn) { + boolean shouldRequestAudioFocus, boolean turnOnScreen, boolean keepScreenOn) { if (DEBUG) { Log.d(TAG, "New CastWebContentsComponent. Instance ID: " + sessionId + "; enableTouchInput:" + enableTouchInput - + "; isRemoteControlMode:" + isRemoteControlMode); + + "; shouldRequestAudioFocus:" + shouldRequestAudioFocus); } mComponentClosedHandler = onComponentClosedHandler; mEnableTouchInput = enableTouchInput; mSessionId = sessionId; mSurfaceEventHandler = surfaceEventHandler; - mIsRemoteControlMode = isRemoteControlMode; + mShouldRequestAudioFocus = shouldRequestAudioFocus; mTurnOnScreen = turnOnScreen; mKeepScreenOn = keepScreenOn;
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java index 6aef0e14..8ff09890 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsIntentUtils.java
@@ -96,8 +96,8 @@ /** Key of extra value of the intent to start a web content, value is true is if cast app is * a remote control app. */ - static final String INTENT_EXTRA_REMOTE_CONTROL_MODE = - "com.google.android.apps.castshell.intent.extra.REMOTE_CONTROL_MODE"; + static final String INTENT_EXTRA_SHOULD_REQUEST_AUDIO_FOCUS = + "com.google.android.apps.castshell.intent.extra.SHOULD_REQUEST_AUDIO_FOCUS"; /** Key for extra value for intent to start web contents. true if the app should turn on the * display. */ @@ -187,7 +187,7 @@ // CastWebContentsComponent.Receiver -> CastWebContentsActivity public static Intent requestStartCastActivity(Context context, WebContents webContents, - boolean enableTouch, boolean isRemoteControlMode, boolean turnOnScreen, + boolean enableTouch, boolean shouldRequestAudioFocus, boolean turnOnScreen, boolean keepScreenOn, String instanceId) { WebContentsRegistry.addWebContents(instanceId, webContents); Intent intent = @@ -197,7 +197,7 @@ intent.putExtra(INTENT_EXTRA_TOUCH_INPUT_ENABLED, enableTouch); intent.putExtra(INTENT_EXTRA_TURN_ON_SCREEN, turnOnScreen); intent.putExtra(INTENT_EXTRA_KEEP_SCREEN_ON, keepScreenOn); - intent.putExtra(INTENT_EXTRA_REMOTE_CONTROL_MODE, isRemoteControlMode); + intent.putExtra(INTENT_EXTRA_SHOULD_REQUEST_AUDIO_FOCUS, shouldRequestAudioFocus); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_TASK_ON_HOME); return intent; @@ -273,13 +273,13 @@ } // Used by ACTION_VIEW - public static boolean isRemoteControlMode(Bundle bundle) { - return bundle.getBoolean(INTENT_EXTRA_REMOTE_CONTROL_MODE); + public static boolean shouldRequestAudioFocus(Bundle bundle) { + return bundle.getBoolean(INTENT_EXTRA_SHOULD_REQUEST_AUDIO_FOCUS); } // Used by ACTION_VIEW - public static boolean isRemoteControlMode(Intent in) { - return isRemoteControlMode(in.getExtras()); + public static boolean shouldRequestAudioFocus(Intent in) { + return shouldRequestAudioFocus(in.getExtras()); } // Used by ACTION_VIEW
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java index 0e0fbf6..121d94c 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java
@@ -52,14 +52,14 @@ public static class StartParams { public final Uri uri; public final WebContents webContents; - public final boolean isRemoteControlMode; + public final boolean shouldRequestAudioFocus; public final boolean touchInputEnabled; - public StartParams(Uri uri, WebContents webContents, boolean isRemoteControlMode, + public StartParams(Uri uri, WebContents webContents, boolean shouldRequestAudioFocus, boolean touchInputEnabled) { this.uri = uri; this.webContents = webContents; - this.isRemoteControlMode = isRemoteControlMode; + this.shouldRequestAudioFocus = shouldRequestAudioFocus; this.touchInputEnabled = touchInputEnabled; } @@ -68,7 +68,7 @@ if (other instanceof StartParams) { StartParams that = (StartParams) other; return this.uri.equals(that.uri) && this.webContents.equals(that.webContents) - && this.isRemoteControlMode == that.isRemoteControlMode + && this.shouldRequestAudioFocus == that.shouldRequestAudioFocus && this.touchInputEnabled == that.touchInputEnabled; } return false; @@ -92,10 +92,10 @@ return null; } - final boolean isRemoteControlMode = - CastWebContentsIntentUtils.isRemoteControlMode(bundle); + final boolean shouldRequestAudioFocus = + CastWebContentsIntentUtils.shouldRequestAudioFocus(bundle); final boolean touchInputEnabled = CastWebContentsIntentUtils.isTouchable(bundle); - return new StartParams(uri, webContents, isRemoteControlMode, touchInputEnabled); + return new StartParams(uri, webContents, shouldRequestAudioFocus, touchInputEnabled); } } @@ -166,8 +166,11 @@ .map(Both::getFirst) .subscribe(Observers.onExit(WebContents::tearDownDialogOverlays)); - // Take audio focus when receiving new WebContents if not the remote control app. - mStartParamsState.filter(params -> !params.isRemoteControlMode) + // Take audio focus when receiving new WebContents if requested. In most cases, we do want + // to take audio focus when starting the Cast UI, but there are some exceptions, such as + // when launching a remote control app or when starting an app by voice request, when the + // TTS may still be retaining audio focus. + mStartParamsState.filter(params -> params.shouldRequestAudioFocus) .map(params -> mMediaSessionGetter.get(params.webContents)) .subscribe(Observers.onEnter(MediaSessionImpl::requestSystemAudioFocus));
diff --git a/chromecast/browser/android/cast_content_window_android.cc b/chromecast/browser/android/cast_content_window_android.cc index 29efb38..d6c64110 100644 --- a/chromecast/browser/android/cast_content_window_android.cc +++ b/chromecast/browser/android/cast_content_window_android.cc
@@ -21,14 +21,14 @@ base::android::ScopedJavaLocalRef<jobject> CreateJavaWindow( jlong native_window, bool enable_touch_input, - bool is_remote_control_mode, + bool should_request_audio_focus, bool turn_on_screen, bool keep_screen_on, const std::string& session_id, const std::string& display_id) { JNIEnv* env = base::android::AttachCurrentThread(); return Java_CastContentWindowAndroid_create( - env, native_window, enable_touch_input, is_remote_control_mode, + env, native_window, enable_touch_input, should_request_audio_focus, turn_on_screen, keep_screen_on, ConvertUTF8ToJavaString(env, session_id), ConvertUTF8ToJavaString(env, display_id)); } @@ -41,7 +41,7 @@ web_contents_attached_(false), java_window_(CreateJavaWindow(reinterpret_cast<jlong>(this), params_->enable_touch_input, - params_->is_remote_control_mode, + params_->should_request_audio_focus, params_->turn_on_screen, params_->keep_screen_on, params_->session_id,
diff --git a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java index 4ea926d..a72bf04 100644 --- a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java +++ b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsIntentUtilsTest.java
@@ -66,8 +66,8 @@ @Test public void testRequestStartCastActivity() { Intent in = CastWebContentsIntentUtils.requestStartCastActivity( - mActivity, mWebContents, true, false, true, false, SESSION_ID); - Assert.assertFalse(CastWebContentsIntentUtils.isRemoteControlMode(in)); + mActivity, mWebContents, true, true, true, false, SESSION_ID); + Assert.assertTrue(CastWebContentsIntentUtils.shouldRequestAudioFocus(in)); Assert.assertNull(in.getData()); String uri = CastWebContentsIntentUtils.getUriString(in); Assert.assertNotNull(uri);
diff --git a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java index fae57349..2bf7c5f 100644 --- a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java +++ b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelperTest.java
@@ -54,7 +54,7 @@ private static class StartParamsBuilder { private String mId = "0"; private WebContents mWebContents = mock(WebContents.class); - private boolean mIsRemoteControlMode; + private boolean mShouldRequestAudioFocus; private boolean mIsTouchInputEnabled; public StartParamsBuilder withId(String id) { @@ -67,8 +67,8 @@ return this; } - public StartParamsBuilder withIsRemoteControlMode(boolean isRemoteControlMode) { - mIsRemoteControlMode = isRemoteControlMode; + public StartParamsBuilder withShouldRequestAudioFocus(boolean shouldRequestAudioFocus) { + mShouldRequestAudioFocus = shouldRequestAudioFocus; return this; } @@ -79,7 +79,7 @@ public StartParams build() { return new StartParams(CastWebContentsIntentUtils.getInstanceUri(mId), mWebContents, - mIsRemoteControlMode, mIsTouchInputEnabled); + mShouldRequestAudioFocus, mIsTouchInputEnabled); } } @@ -106,20 +106,23 @@ } @Test - public void testRequestsAudioFocusOnNewStartParams() { + public void testRequestsAudioFocusWhenNewStartParamsAsk() { WebContents webContents = mock(WebContents.class); - StartParams params = new StartParamsBuilder().withWebContents(webContents).build(); + StartParams params = new StartParamsBuilder() + .withWebContents(webContents) + .withShouldRequestAudioFocus(true) + .build(); mSurfaceHelper.onNewStartParams(params); verify(mMediaSessionImpl).requestSystemAudioFocus(); } @Test - public void testDoesNotTakeAudioFocusInRemoteControlMode() { + public void testDoesNotTakeAudioFocusWhenStartParamsAskNotTo() { WebContents webContents = mock(WebContents.class); StartParams params = new StartParamsBuilder() .withId("3") .withWebContents(webContents) - .withIsRemoteControlMode(true) + .withShouldRequestAudioFocus(false) .build(); mSurfaceHelper.onNewStartParams(params); verify(mMediaSessionImpl, never()).requestSystemAudioFocus();
diff --git a/chromecast/browser/mojom/cast_web_service.mojom b/chromecast/browser/mojom/cast_web_service.mojom index 90f4a64..a0d9f5c 100644 --- a/chromecast/browser/mojom/cast_web_service.mojom +++ b/chromecast/browser/mojom/cast_web_service.mojom
@@ -133,7 +133,7 @@ bool enable_touch_input = false; // Enable if this CastContentWindow is for running a remote control app. - bool is_remote_control_mode = false; + bool should_request_audio_focus = true; // Turns on the device screen when the window is made visible. bool turn_on_screen = true;
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc b/chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc index 0b5c5ca..a980733 100644 --- a/chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc +++ b/chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc
@@ -300,10 +300,10 @@ params->renderer_type = mojom::RendererType::MOJO_RENDERER; params->handle_inner_contents = true; params->session_id = runtime_application_->GetCastSessionId(); - params->is_remote_control_mode = IsRemoteControlMode(); - params->activity_id = params->is_remote_control_mode - ? params->session_id - : runtime_application_->GetAppId(); + params->should_request_audio_focus = !IsRemoteControlMode(); + params->activity_id = params->should_request_audio_focus + ? runtime_application_->GetAppId() + : params->session_id; params->enabled_for_dev = IsEnabledForDev(); params->enable_url_rewrite_rules = false; return web_service_->CreateWebViewInternal(std::move(params));
diff --git a/chromeos/ash/components/browser_context_helper/BUILD.gn b/chromeos/ash/components/browser_context_helper/BUILD.gn index bc21c5eb4..35ba2324 100644 --- a/chromeos/ash/components/browser_context_helper/BUILD.gn +++ b/chromeos/ash/components/browser_context_helper/BUILD.gn
@@ -17,6 +17,8 @@ sources = [ "browser_context_helper.cc", "browser_context_helper.h", + "browser_context_types.cc", + "browser_context_types.h", ] } @@ -30,5 +32,8 @@ "//components/user_manager:test_support", "//content/test:test_support", ] - sources = [ "browser_context_helper_unittest.cc" ] + sources = [ + "browser_context_helper_unittest.cc", + "browser_context_types_unittest.cc", + ] }
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc index 073fee4..600a2d7 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.cc
@@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/strings/strcat.h" #include "base/strings/string_util.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/user_manager/user.h" #include "components/user_manager/user_manager.h" #include "content/public/browser/browser_context.h" @@ -35,6 +36,12 @@ } // namespace +// static +const char BrowserContextHelper::kLegacyBrowserContextDirName[] = "user"; + +// static +const char BrowserContextHelper::kTestUserBrowserContextDirName[] = "test-user"; + BrowserContextHelper::BrowserContextHelper(std::unique_ptr<Delegate> delegate) : delegate_(std::move(delegate)) { DCHECK(!g_instance); @@ -107,23 +114,6 @@ } // static -const char BrowserContextHelper::kSigninBrowserContextBaseName[] = "Default"; - -// static -const char BrowserContextHelper::kLockScreenAppBrowserContextBaseName[] = - "LockScreenAppsProfile"; - -// static -const char BrowserContextHelper::kLockScreenBrowserContextBaseName[] = - "LockScreenProfile"; - -// static -const char BrowserContextHelper::kLegacyBrowserContextDirName[] = "user"; - -// static -const char BrowserContextHelper::kTestUserBrowserContextDirName[] = "test-user"; - -// static std::string BrowserContextHelper::GetUserBrowserContextDirName( base::StringPiece user_id_hash) { CHECK(!user_id_hash.empty());
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper.h b/chromeos/ash/components/browser_context_helper/browser_context_helper.h index 22a7f0c..9faf9eab 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper.h +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper.h
@@ -58,6 +58,12 @@ virtual const base::FilePath* GetUserDataDir() = 0; }; + // Legacy profile dir that was used when only one cryptohome has been mounted. + static const char kLegacyBrowserContextDirName[]; + + // This must be kept in sync with TestingProfile::kTestUserProfileDir. + static const char kTestUserBrowserContextDirName[]; + explicit BrowserContextHelper(std::unique_ptr<Delegate> delegate); BrowserContextHelper(const BrowserContextHelper&) = delete; BrowserContextHelper& operator=(const BrowserContextHelper&) = delete; @@ -82,32 +88,6 @@ content::BrowserContext* GetBrowserContextByUser( const user_manager::User* user); - // In ash-chrome, we have three special browser context instances - // (a.k.a. Profile). - // 1) Singin browser context, which is used on login screen. - // 2) Lock-screen-app browser context, which is used for launching platform - // apps that can display windows on top of the lock screen. - // 3) Lock-screen browser context, which is used during online authentication - // on the lock screen. - - // Base name of the signin browser context. - static const char kSigninBrowserContextBaseName[]; - - // Base name of the lock-screen-app browser context. - static const char kLockScreenAppBrowserContextBaseName[]; - - // Base name of the lock-screen browser context. - static const char kLockScreenBrowserContextBaseName[]; - - // Hereafter, define two additional directory names, one for compatibility - // and the other for testing. - - // Legacy profile dir that was used when only one cryptohome has been mounted. - static const char kLegacyBrowserContextDirName[]; - - // This must be kept in sync with TestingProfile::kTestUserProfileDir. - static const char kTestUserBrowserContextDirName[]; - // Returns user browser context dir in a format of "u-${user_id_hash}". static std::string GetUserBrowserContextDirName( base::StringPiece user_id_hash);
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc index b6167db..e94d03a 100644 --- a/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc +++ b/chromeos/ash/components/browser_context_helper/browser_context_helper_unittest.cc
@@ -5,6 +5,7 @@ #include "chromeos/ash/components/browser_context_helper/browser_context_helper.h" #include "base/files/file_path.h" +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" #include "components/account_id/account_id.h" #include "components/user_manager/fake_user_manager.h" #include "components/user_manager/scoped_user_manager.h" @@ -258,15 +259,13 @@ // Load the signin browser context. delegate_ptr->CreateBrowserContext( - delegate_ptr->GetUserDataDir()->Append( - BrowserContextHelper::kSigninBrowserContextBaseName), + delegate_ptr->GetUserDataDir()->Append(kSigninBrowserContextBaseName), /*is_off_the_record=*/false); // Then it should start returning the instance. auto* signin_browser_context = helper.GetSigninBrowserContext(); ASSERT_TRUE(signin_browser_context); - EXPECT_EQ(BrowserContextHelper::kSigninBrowserContextBaseName, - signin_browser_context->GetPath().BaseName().value()); + EXPECT_TRUE(IsSigninBrowserContext(signin_browser_context)); EXPECT_TRUE(signin_browser_context->IsOffTheRecord()); } @@ -294,15 +293,13 @@ // Load the lock screen browser context. delegate_ptr->CreateBrowserContext( - delegate_ptr->GetUserDataDir()->Append( - BrowserContextHelper::kLockScreenBrowserContextBaseName), + delegate_ptr->GetUserDataDir()->Append(kLockScreenBrowserContextBaseName), /*is_off_the_record=*/false); // Then it should start returning the instance. auto* lock_screen_browser_context = helper.GetLockScreenBrowserContext(); ASSERT_TRUE(lock_screen_browser_context); - EXPECT_EQ(BrowserContextHelper::kLockScreenBrowserContextBaseName, - lock_screen_browser_context->GetPath().BaseName().value()); + EXPECT_TRUE(IsLockScreenBrowserContext(lock_screen_browser_context)); EXPECT_TRUE(lock_screen_browser_context->IsOffTheRecord()); }
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_types.cc b/chromeos/ash/components/browser_context_helper/browser_context_types.cc new file mode 100644 index 0000000..074245b --- /dev/null +++ b/chromeos/ash/components/browser_context_helper/browser_context_types.cc
@@ -0,0 +1,43 @@ +// 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. + +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" + +#include "base/files/file_path.h" +#include "content/public/browser/browser_context.h" + +namespace ash { + +const char kSigninBrowserContextBaseName[] = "Default"; +const char kLockScreenAppBrowserContextBaseName[] = "LockScreenAppsProfile"; +const char kLockScreenBrowserContextBaseName[] = "LockScreenProfile"; + +bool IsSigninBrowserContext(content::BrowserContext* browser_context) { + return browser_context && browser_context->GetPath().BaseName().value() == + kSigninBrowserContextBaseName; +} + +bool IsLockScreenAppBrowserContext(content::BrowserContext* browser_context) { + return browser_context && browser_context->GetPath().BaseName().value() == + kLockScreenAppBrowserContextBaseName; +} + +bool IsLockScreenBrowserContext(content::BrowserContext* browser_context) { + return browser_context && browser_context->GetPath().BaseName().value() == + kLockScreenBrowserContextBaseName; +} + +bool IsUserBrowserContext(content::BrowserContext* browser_context) { + return browser_context && + IsUserBrowserContextBaseName(browser_context->GetPath().BaseName()); +} + +bool IsUserBrowserContextBaseName(const base::FilePath& base_name) { + const auto& value = base_name.value(); + return value != kSigninBrowserContextBaseName && + value != kLockScreenAppBrowserContextBaseName && + value != kLockScreenBrowserContextBaseName; +} + +} // namespace ash
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_types.h b/chromeos/ash/components/browser_context_helper/browser_context_types.h new file mode 100644 index 0000000..acaf439 --- /dev/null +++ b/chromeos/ash/components/browser_context_helper/browser_context_types.h
@@ -0,0 +1,74 @@ +// 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. + +#ifndef CHROMEOS_ASH_COMPONENTS_BROWSER_CONTEXT_HELPER_BROWSER_CONTEXT_TYPES_H_ +#define CHROMEOS_ASH_COMPONENTS_BROWSER_CONTEXT_HELPER_BROWSER_CONTEXT_TYPES_H_ + +// Ash has three special BrowserContext (a.k.a. Profile) types as follows: +// 1) Singin browser context, which is used on login screen. +// 2) Lock-screen-app browser context, which is used for launching platform +// apps that can display windows on top of the lock screen. +// 3) Lock-screen browser context, which is used during online authentication +// on the lock screen. +// +// This file provides convenient utilities to check those. +// In order to obtain a BrowserContext instance for those, please take a look +// at getter methods in ash::BrowserContextHelper. + +#include "base/component_export.h" + +namespace base { +class FilePath; +} // namespace base + +namespace content { +class BrowserContext; +} // namespace content + +namespace ash { + +// Base name of the signin browser context. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +extern const char kSigninBrowserContextBaseName[]; + +// Base name of the lock-screen-app browser context. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +extern const char kLockScreenAppBrowserContextBaseName[]; + +// Base name of the lock-screen browser context. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +extern const char kLockScreenBrowserContextBaseName[]; + +// Returns true if given |browser_context| is for signin. +// Returns false if nullptr is given. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +bool IsSigninBrowserContext(content::BrowserContext* browser_context); + +// Returns true if given |browser_context| is for Lock-screen-app. +// Returns false if nullptr is given. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +bool IsLockScreenAppBrowserContext(content::BrowserContext* browser_context); + +// Returns true if given |browser_context| is for Lock-screen. +// Returns false if nullptr is given. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +bool IsLockScreenBrowserContext(content::BrowserContext* browser_context); + +// Returns true if the given |browser_context| is none of these special +// BrowserContext instances. Returns false if nullptr is given. +// Note: System and Guest Profiles are considered User BrowserContext. +// To check on that `Profile` specific method that checks the profile type +// should be used such as `Profile::IsRegularProfile()` or +// `Profile::IsSystemProfile()`. +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +bool IsUserBrowserContext(content::BrowserContext* browser_context); + +// Returns true if the given |base_name| that is for BrowserContext directory's +// base name is for a user's (i.e. none of these special BrowserContexts'). +COMPONENT_EXPORT(ASH_BROWSER_CONTEXT_HELPER) +bool IsUserBrowserContextBaseName(const base::FilePath& base_name); + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_BROWSER_CONTEXT_HELPER_BROWSER_CONTEXT_TYPES_H_
diff --git a/chromeos/ash/components/browser_context_helper/browser_context_types_unittest.cc b/chromeos/ash/components/browser_context_helper/browser_context_types_unittest.cc new file mode 100644 index 0000000..4456137 --- /dev/null +++ b/chromeos/ash/components/browser_context_helper/browser_context_types_unittest.cc
@@ -0,0 +1,67 @@ +// 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. + +#include "chromeos/ash/components/browser_context_helper/browser_context_types.h" + +#include <memory> + +#include "base/files/file_path.h" +#include "content/public/test/browser_task_environment.h" +#include "content/public/test/test_browser_context.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { + +TEST(BrowserContextTypeTest, Test) { + content::BrowserTaskEnvironment env; + + auto signin_browser_context = std::make_unique<content::TestBrowserContext>( + base::FilePath(kSigninBrowserContextBaseName)); + auto lock_screen_app_browser_context = + std::make_unique<content::TestBrowserContext>( + base::FilePath(kLockScreenAppBrowserContextBaseName)); + auto lock_screen_browser_context = + std::make_unique<content::TestBrowserContext>( + base::FilePath(kLockScreenBrowserContextBaseName)); + auto user_browser_context = std::make_unique<content::TestBrowserContext>( + base::FilePath("test-user")); + + EXPECT_FALSE(IsSigninBrowserContext(nullptr)); + EXPECT_TRUE(IsSigninBrowserContext(signin_browser_context.get())); + EXPECT_FALSE(IsSigninBrowserContext(lock_screen_app_browser_context.get())); + EXPECT_FALSE(IsSigninBrowserContext(lock_screen_browser_context.get())); + EXPECT_FALSE(IsSigninBrowserContext(user_browser_context.get())); + + EXPECT_FALSE(IsLockScreenAppBrowserContext(nullptr)); + EXPECT_FALSE(IsLockScreenAppBrowserContext(signin_browser_context.get())); + EXPECT_TRUE( + IsLockScreenAppBrowserContext(lock_screen_app_browser_context.get())); + EXPECT_FALSE( + IsLockScreenAppBrowserContext(lock_screen_browser_context.get())); + EXPECT_FALSE(IsLockScreenAppBrowserContext(user_browser_context.get())); + + EXPECT_FALSE(IsLockScreenBrowserContext(nullptr)); + EXPECT_FALSE(IsLockScreenBrowserContext(signin_browser_context.get())); + EXPECT_FALSE( + IsLockScreenBrowserContext(lock_screen_app_browser_context.get())); + EXPECT_TRUE(IsLockScreenBrowserContext(lock_screen_browser_context.get())); + EXPECT_FALSE(IsLockScreenBrowserContext(user_browser_context.get())); + + EXPECT_FALSE(IsUserBrowserContext(nullptr)); + EXPECT_FALSE(IsUserBrowserContext(signin_browser_context.get())); + EXPECT_FALSE(IsUserBrowserContext(lock_screen_app_browser_context.get())); + EXPECT_FALSE(IsUserBrowserContext(lock_screen_browser_context.get())); + EXPECT_TRUE(IsUserBrowserContext(user_browser_context.get())); + + EXPECT_FALSE(IsUserBrowserContextBaseName( + signin_browser_context->GetPath().BaseName())); + EXPECT_FALSE(IsUserBrowserContextBaseName( + lock_screen_app_browser_context->GetPath().BaseName())); + EXPECT_FALSE(IsUserBrowserContextBaseName( + lock_screen_browser_context->GetPath().BaseName())); + EXPECT_TRUE( + IsUserBrowserContextBaseName(user_browser_context->GetPath().BaseName())); +} + +} // namespace ash
diff --git a/chromeos/ash/components/dbus/shill/fake_shill_device_client.cc b/chromeos/ash/components/dbus/shill/fake_shill_device_client.cc index 2719ef1..4c9b145 100644 --- a/chromeos/ash/components/dbus/shill/fake_shill_device_client.cc +++ b/chromeos/ash/components/dbus/shill/fake_shill_device_client.cc
@@ -171,7 +171,7 @@ base::OnceClosure callback, ErrorCallback error_callback) { VLOG(1) << "RequirePin: " << device_path.value(); - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -194,7 +194,7 @@ base::OnceClosure callback, ErrorCallback error_callback) { VLOG(1) << "EnterPin: " << device_path.value(); - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -216,7 +216,7 @@ base::OnceClosure callback, ErrorCallback error_callback) { VLOG(1) << "UnblockPin: " << device_path.value(); - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -245,7 +245,7 @@ base::OnceClosure callback, ErrorCallback error_callback) { VLOG(1) << "ChangePin: " << device_path.value(); - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -277,15 +277,17 @@ PostNotFoundError(std::move(error_callback)); return; } - base::Value* scan_results = - device_properties->FindKey(shill::kFoundNetworksProperty); + base::Value::List* scan_results = + device_properties->GetDict().FindList(shill::kFoundNetworksProperty); if (!scan_results) { PostError("No Cellular scan results", std::move(error_callback)); return; } - for (auto& network : scan_results->GetList()) { - std::string id = network.FindKey(shill::kNetworkIdProperty)->GetString(); - std::string status = id == network_id ? "current" : "available"; + for (auto& network : *scan_results) { + const std::string* id = + network.GetDict().FindString(shill::kNetworkIdProperty); + DCHECK(id); + std::string status = (*id == network_id) ? "current" : "available"; network.SetKey(shill::kStatusProperty, base::Value(status)); } base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( @@ -295,7 +297,7 @@ void FakeShillDeviceClient::Reset(const dbus::ObjectPath& device_path, base::OnceClosure callback, ErrorCallback error_callback) { - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -308,7 +310,7 @@ const std::string& source, base::OnceClosure callback, ErrorCallback error_callback) { - if (!stub_devices_.FindKey(device_path.value())) { + if (!stub_devices_.GetDict().contains(device_path.value())) { PostNotFoundError(std::move(error_callback)); return; } @@ -404,9 +406,10 @@ LOG(ERROR) << "Device path not found: " << device_path; return; } - std::string type = - device_properties->FindKey(shill::kTypeProperty)->GetString(); - if (type != shill::kTypeCellular) { + const std::string* type = + device_properties->GetDict().FindString(shill::kTypeProperty); + DCHECK(type); + if (*type != shill::kTypeCellular) { LOG(ERROR) << "AddCellularNetwork called for non Cellular network: " << device_path; return; @@ -414,7 +417,7 @@ // Add a new scan result entry base::Value* scan_results = - device_properties->FindKey(shill::kFoundNetworksProperty); + device_properties->GetDict().Find(shill::kFoundNetworksProperty); if (!scan_results) { scan_results = device_properties->SetKey(shill::kFoundNetworksProperty, base::Value(base::Value::List())); @@ -585,13 +588,15 @@ LOG(ERROR) << "Notify for unknown device: " << path; return; } - base::Value* value = device_properties->FindKey(property); - if (!value) { + + if (!device_properties->GetDict().contains(property)) { LOG(ERROR) << "Notify for unknown property: " << path << " : " << property; return; } - for (auto& observer : GetObserverList(device_path)) + const base::Value* value = device_properties->GetDict().Find(property); + for (auto& observer : GetObserverList(device_path)) { observer.OnPropertyChanged(property, *value); + } } base::Value* FakeShillDeviceClient::GetDeviceProperties(
diff --git a/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc b/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc index cf87b62..9457905 100644 --- a/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc +++ b/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc
@@ -829,9 +829,10 @@ } bool FakeShillManagerClient::GetFastTransitionStatus() { - base::Value* fast_transition_status = stub_properties_.FindKey( - base::StringPiece(shill::kWifiGlobalFTEnabledProperty)); - return fast_transition_status && fast_transition_status->GetBool(); + absl::optional<bool> fast_transition_status = + stub_properties_.GetDict().FindBool( + base::StringPiece(shill::kWifiGlobalFTEnabledProperty)); + return fast_transition_status && fast_transition_status.value(); } void FakeShillManagerClient::SetSimulateConfigurationResult( @@ -1196,7 +1197,7 @@ void FakeShillManagerClient::NotifyObserversPropertyChanged( const std::string& property) { VLOG(1) << "NotifyObserversPropertyChanged: " << property; - base::Value* value = stub_properties_.FindKey(property); + base::Value* value = stub_properties_.GetDict().Find(property); if (!value) { LOG(ERROR) << "Notify for unknown property: " << property; return;
diff --git a/chromeos/ash/components/dbus/shill/fake_shill_profile_client.cc b/chromeos/ash/components/dbus/shill/fake_shill_profile_client.cc index cb914a3..19b4c96f 100644 --- a/chromeos/ash/components/dbus/shill/fake_shill_profile_client.cc +++ b/chromeos/ash/components/dbus/shill/fake_shill_profile_client.cc
@@ -200,8 +200,9 @@ << " for: " << service_path; return false; } - if (profile->entries.FindKey(service_path)) + if (profile->entries.GetDict().contains(service_path)) { return false; + } return AddOrUpdateServiceImpl(profile_path, service_path, profile); } @@ -213,7 +214,7 @@ << " for: " << service_path; return false; } - if (!profile->entries.FindKey(service_path)) { + if (!profile->entries.GetDict().contains(service_path)) { LOG(ERROR) << "UpdateService: Profile: " << profile_path << " does not contain Service: " << service_path; return false;
diff --git a/chromeos/ash/components/dbus/shill/fake_shill_service_client.cc b/chromeos/ash/components/dbus/shill/fake_shill_service_client.cc index f7d0703..bf4ff5c 100644 --- a/chromeos/ash/components/dbus/shill/fake_shill_service_client.cc +++ b/chromeos/ash/components/dbus/shill/fake_shill_service_client.cc
@@ -92,8 +92,8 @@ const base::Value& service_properties, base::StringPiece key) { const base::Value* template_service_value = - template_service_properties.FindKey(key); - const base::Value* service_value = service_properties.FindKey(key); + template_service_properties.GetDict().Find(key); + const base::Value* service_value = service_properties.GetDict().Find(key); return template_service_value && service_value && *template_service_value == *service_value; } @@ -649,7 +649,7 @@ base::Value(std::string())); for (const std::string& property_to_retain : kIntrinsicServiceProperties) { - const base::Value* value = service_dict->FindKey(property_to_retain); + const base::Value* value = service_dict->GetDict().Find(property_to_retain); if (!value) continue; properties_after_delete_entry.SetKey(property_to_retain, value->Clone()); @@ -750,7 +750,7 @@ LOG(ERROR) << "Notify for unknown service: " << path; return; } - const base::Value* value = dict->FindKey(property); + const base::Value* value = dict->GetDict().Find(property); if (!value) { LOG(ERROR) << "Notify for unknown property: " << path << " : " << property; return;
diff --git a/chromeos/chromeos_strings.grd b/chromeos/chromeos_strings.grd index d5618e2..12c653c 100644 --- a/chromeos/chromeos_strings.grd +++ b/chromeos/chromeos_strings.grd
@@ -3717,6 +3717,84 @@ <message name="IDS_SHORTCUT_CUSTOMIZATION_KEY_ESCAPE" desc="Lowercase name of the keyboard key 'Escape', abbreviated if possible" translateable="false">esc</message> <message name="IDS_SHORTCUT_CUSTOMIZATION_KEY_RETURN" desc="Lowercase name of the keyboard key 'Enter'" translateable="false">enter</message> <message name="IDS_SHORTCUT_CUSTOMIZATION_KEY_BACKSPACE" desc="Lowercase name of the keyboard key 'Backspace'" translateable="false">backspace</message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_DOWN" desc="The text read aloud by the screen reader describing the keyboard icon 'arrow down'." translateable="false"> + arrow down + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_LEFT" desc="The text read aloud by the screen reader describing the keyboard icon 'arrow left'." translateable="false"> + arrow left + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_RIGHT" desc="The text read aloud by the screen reader describing the keyboard icon 'arrow right'." translateable="false"> + arrow right + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ARROW_UP" desc="The text read aloud by the screen reader describing the keyboard icon 'arrow up'." translateable="false"> + arrow up + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_DOWN" desc="The text read aloud by the screen reader describing the keyboard icon 'volume down'." translateable="false"> + volume down + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_MUTE" desc="The text read aloud by the screen reader describing the keyboard icon 'volume mute'." translateable="false"> + volume mute + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_AUDIO_VOLUME_UP" desc="The text read aloud by the screen reader describing the keyboard icon 'volume up'." translateable="false"> + volume up + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BRIGHTNESS_DOWN" desc="The text read aloud by the screen reader describing the keyboard icon 'brightness down'." translateable="false"> + brightness down + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BRIGHTNESS_UP" desc="The text read aloud by the screen reader describing the keyboard icon 'brightness up'." translateable="false"> + brightness up + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_BACK" desc="The text read aloud by the screen reader describing the keyboard icon 'back'." translateable="false"> + back + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_FORWARD" desc="The text read aloud by the screen reader describing the keyboard icon 'forward'." translateable="false"> + forward + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_BROWSER_REFRESH" desc="The text read aloud by the screen reader describing the keyboard icon 'refresh'." translateable="false"> + refresh + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BACKLIGHT_TOGGLE" desc="The text read aloud by the screen reader describing the keyboard icon 'toggle keyboard backlight'." translateable="false"> + toggle keyboard backlight + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BRIGHTNESS_UP" desc="The text read aloud by the screen reader describing the keyboard icon 'keyboard brightness up'." translateable="false"> + keyboard brightness up + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_KEYBOARD_BRIGHTNESS_DOWN" desc="The text read aloud by the screen reader describing the keyboard icon 'keyboard brightness down'." translateable="false"> + keyboard brightness down + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_LAUNCH_APPLICATION1" desc="The text read aloud by the screen reader describing the keyboard icon 'overview'." translateable="false"> + overview + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_LAUNCH_ASSISTANT" desc="The text read aloud by the screen reader describing the keyboard icon 'assistant'." translateable="false"> + assistant + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_PLAY_PAUSE" desc="The text read aloud by the screen reader describing the keyboard icon 'play pause'." translateable="false"> + play pause + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_TRACK_NEXT" desc="The text read aloud by the screen reader describing the keyboard icon 'next track'." translateable="false"> + next track + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MEDIA_TRACK_PREVIOUS" desc="The text read aloud by the screen reader describing the keyboard icon 'previous track'." translateable="false"> + previous track + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_MICROPHONE_MUTE_TOGGLE" desc="The text read aloud by the screen reader describing the keyboard icon 'toggle microphone mute'." translateable="false"> + toggle microphone mute + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_OPEN_LAUNCHER" desc="The text read aloud by the screen reader describing the keyboard icon 'launcher'." translateable="false"> + launcher + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_POWER" desc="The text read aloud by the screen reader describing the keyboard icon 'power'." translateable="false"> + power + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_PRINT_SCREEN" desc="The text read aloud by the screen reader describing the keyboard icon 'screenshot'." translateable="false"> + screenshot + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_PRIVACY_SCREEN_TOGGLE" desc="The text read aloud by the screen reader describing the keyboard icon 'toggle privacy screen'." translateable="false"> + toggle privacy screen + </message> + <message name="IDS_SHORTCUT_CUSTOMIZATION_ICON_LABEL_ZOOM_TOGGLE" desc="The text read aloud by the screen reader describing the keyboard icon 'full screen'." translateable="false"> + full screen + </message> <!-- End of Shortcut Customization --> <!-- APN -->
diff --git a/chromeos/components/onc/onc_validator.cc b/chromeos/components/onc/onc_validator.cc index b2095eb..4deacae 100644 --- a/chromeos/components/onc/onc_validator.cc +++ b/chromeos/components/onc/onc_validator.cc
@@ -55,7 +55,7 @@ bool FieldIsSetToValueOrRecommended(const base::Value& object, const std::string& field_name, const base::Value& expected_value) { - const base::Value* actual_value = object.FindKey(field_name); + const base::Value* actual_value = object.GetDict().Find(field_name); if (actual_value && expected_value == *actual_value) return true; @@ -374,7 +374,7 @@ bool Validator::IsInDevicePolicy(base::Value* result, const std::string& field_name) { - if (result->FindKey(field_name)) { + if (result->GetDict().contains(field_name)) { if (onc_source_ != ::onc::ONC_SOURCE_DEVICE_POLICY) { std::ostringstream msg; msg << "Field '" << field_name << "' is only allowed in a device policy."; @@ -435,17 +435,21 @@ bool Validator::FieldExistsAndIsEmpty(const base::Value& object, const std::string& field_name) { - const base::Value* value = object.FindKey(field_name); - if (!value) + const base::Value::Dict& dict = object.GetDict(); + if (!dict.contains(field_name)) { return false; + } - const std::string* str = value->GetIfString(); - if (str) { - if (!(*str).empty()) + const std::string* maybe_str = dict.FindString(field_name); + const base::Value::List* maybe_list = dict.FindList(field_name); + if (maybe_str) { + if (!(*maybe_str).empty()) { return false; - } else if (value->is_list()) { - if (!value->GetList().empty()) + } + } else if (maybe_list) { + if (!(*maybe_list).empty()) { return false; + } } else { NOTREACHED(); return false; @@ -454,15 +458,17 @@ path_.push_back(field_name); std::ostringstream msg; msg << "Found an empty string, but expected a non-empty string."; - AddValidationIssue(true /* is_error */, msg.str()); + AddValidationIssue(/*is_error=*/true, /*debug_info=*/msg.str()); path_.pop_back(); return true; } bool Validator::FieldShouldExistOrBeRecommended(const base::Value& object, const std::string& field_name) { - if (object.FindKey(field_name) || FieldIsRecommended(object, field_name)) + if (object.GetDict().contains(field_name) || + FieldIsRecommended(object, field_name)) { return true; + } std::ostringstream msg; msg << "Field " << field_name << " is not found, but expected either to be " @@ -474,7 +480,8 @@ bool Validator::OnlyOneFieldSet(const base::Value& object, const std::string& field_name1, const std::string& field_name2) { - if (object.FindKey(field_name1) && object.FindKey(field_name2)) { + if (object.GetDict().contains(field_name1) && + object.GetDict().contains(field_name2)) { std::ostringstream msg; msg << "At most one of '" << field_name1 << "' and '" << field_name2 << "' can be set."; @@ -520,7 +527,7 @@ // If the HexSSID field is present, ignore errors in SSID because these // might be caused by the usage of a non-UTF-8 encoding when the SSID // field was automatically added (see FillInHexSSIDField). - if (!object->FindKey(::onc::wifi::kHexSSID)) { + if (!object->GetDict().contains(::onc::wifi::kHexSSID)) { AddValidationIssue(true /* is_error */, msg.str()); path_.pop_back(); return false; @@ -572,8 +579,9 @@ bool Validator::RequireField(const base::Value& dict, const std::string& field_name) { - if (dict.FindKey(field_name)) + if (dict.GetDict().contains(field_name)) { return true; + } std::ostringstream msg; msg << "The required field '" << field_name << "' is missing."; @@ -603,7 +611,8 @@ bool Validator::IsGlobalNetworkConfigInUserImport( const base::Value& onc_object) { if (onc_source_ == ::onc::ONC_SOURCE_USER_IMPORT && - onc_object.FindKey(::onc::toplevel_config::kGlobalNetworkConfiguration)) { + onc_object.GetDict().contains( + ::onc::toplevel_config::kGlobalNetworkConfiguration)) { std::ostringstream msg; msg << "Field '" << ::onc::toplevel_config::kGlobalNetworkConfiguration << "' is prohibited in ONC user imports"; @@ -802,10 +811,12 @@ bool all_required_exist = RequireField(*result, ::onc::wifi::kSecurity); // One of {kSSID, kHexSSID} must be present. - if (!result->FindKey(::onc::wifi::kSSID)) + if (!result->GetDict().contains(::onc::wifi::kSSID)) { all_required_exist &= RequireField(*result, ::onc::wifi::kHexSSID); - if (!result->FindKey(::onc::wifi::kHexSSID)) + } + if (!result->GetDict().contains(::onc::wifi::kHexSSID)) { all_required_exist &= RequireField(*result, ::onc::wifi::kSSID); + } std::string security = GetStringFromDict(*result, ::onc::wifi::kSecurity); if (security == ::onc::wifi::kWEP_8021X || security == ::onc::wifi::kWPA_EAP) @@ -881,9 +892,10 @@ // For cert-based or EAP-based authentication, server CA must exist. // For PSK-based authentication, server CA must not exist. - bool has_server_ca_cert = result->FindKey(::onc::ipsec::kServerCARefs) || - result->FindKey(::onc::ipsec::kServerCARef) || - result->FindKey(::onc::ipsec::kServerCAPEMs); + const base::Value::Dict& dict = result->GetDict(); + bool has_server_ca_cert = dict.contains(::onc::ipsec::kServerCARefs) || + dict.contains(::onc::ipsec::kServerCARef) || + dict.contains(::onc::ipsec::kServerCAPEMs); if ((auth == ::onc::ipsec::kCert || auth == ::onc::ipsec::kEAP) && !has_server_ca_cert) { all_required_exist = false; @@ -981,16 +993,17 @@ } bool Validator::ValidateWireGuard(base::Value* result) { - const base::Value* peers = result->FindKey(::onc::wireguard::kPeers); + const base::Value::Dict& dict = result->GetDict(); + const base::Value::List* peers = dict.FindList(::onc::wireguard::kPeers); std::ostringstream msg; - if (!peers->is_list()) { + if (!peers) { msg << "A " << ::onc::wireguard::kPeers << " list is required but not present."; AddValidationIssue(true /* is_error */, msg.str()); return false; } - for (const base::Value& p : peers->GetList()) { - if (!p.FindKey(::onc::wireguard::kPublicKey)) { + for (const base::Value& p : *peers) { + if (!p.GetDict().contains(::onc::wireguard::kPublicKey)) { msg << ::onc::wireguard::kPublicKey << " field is required for each peer."; AddValidationIssue(true /* is_error */, msg.str()); @@ -1033,9 +1046,10 @@ bool Validator::ValidateCertificatePattern(base::Value* result) { bool all_required_exist = true; - if (!result->FindKey(::onc::client_cert::kSubject) && - !result->FindKey(::onc::client_cert::kIssuer) && - !result->FindKey(::onc::client_cert::kIssuerCARef)) { + const base::Value::Dict& dict = result->GetDict(); + if (!dict.contains(::onc::client_cert::kSubject) && + !dict.contains(::onc::client_cert::kIssuer) && + !dict.contains(::onc::client_cert::kIssuerCARef)) { all_required_exist = false; std::ostringstream msg; msg << "None of the fields '" << ::onc::client_cert::kSubject << "', '" @@ -1050,7 +1064,8 @@ bool Validator::ValidateGlobalNetworkConfiguration(base::Value* result) { // Replace the deprecated kBlacklistedHexSSIDs with kBlockedHexSSIDs. - if (!result->FindKey(::onc::global_network_config::kBlockedHexSSIDs)) { + if (!result->GetDict().contains( + ::onc::global_network_config::kBlockedHexSSIDs)) { absl::optional<base::Value> blocked = result->ExtractKey(::onc::global_network_config::kBlacklistedHexSSIDs); if (blocked) {
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni index c57e15c..f5c3fd3 100644 --- a/chromeos/tast_control.gni +++ b/chromeos/tast_control.gni
@@ -343,7 +343,4 @@ # https://crbug.com/1376638 "lacros.AudioRecord", - - # https://crbug.com/1399370 - "security.ChromeSandboxed.lacros", ]
diff --git a/components/BUILD.gn b/components/BUILD.gn index f558d0f2..fa17c16 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn
@@ -23,7 +23,6 @@ if (is_android) { import("//build/config/android/rules.gni") import("//build/config/compiler/compiler.gni") - import("//tools/v8_context_snapshot/v8_context_snapshot.gni") } if (is_ios) { @@ -519,17 +518,13 @@ "//components/webapps/browser/android:unit_tests", "//content/public/android:content_java", "//content/public/browser", + "//gin:v8_snapshot_assets", "//net", "//services/data_decoder/public/cpp/android:safe_json_java", "//ui/android:ui_java", "//ui/base", "//ui/gfx", ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } if (enable_chrome_android_internal) { data_deps += [ "//clank/build/bot/filters:components_unittests_filters" ] @@ -742,13 +737,9 @@ deps = [ ":components_tests_pak", "//content/shell:pak", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } } android_library("components_browsertests_java") { @@ -1038,12 +1029,10 @@ ] if (is_android) { - deps += [ "//ui/android:ui_java" ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } + deps += [ + "//gin:v8_snapshot_assets", + "//ui/android:ui_java", + ] } if (!is_android) {
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn index 208d5e142..c02caa8 100644 --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn
@@ -106,16 +106,13 @@ "internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobServiceTest.java", "internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverterTest.java", "internal/android/java/src/org/chromium/components/background_task_scheduler/internal/MockBackgroundTaskSchedulerDelegate.java", - "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java", - "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUmaTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BroadcastReceiverRobolectricTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/ExtrasToProtoConverterTest.java", - "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/ShadowGcmNetworkManager.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/TaskInfoTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/TestBackgroundTask.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/TestBackgroundTaskFactory.java", @@ -123,11 +120,6 @@ deps = [ ":background_task_scheduler_task_ids_java", - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_gcm_java", - "$google_play_services_package:google_play_services_tasks_java", "internal:internal_java", "internal:proto_java", "//base:base_java",
diff --git a/components/background_task_scheduler/README.md b/components/background_task_scheduler/README.md index 6ae425d..96fbeb5d 100644 --- a/components/background_task_scheduler/README.md +++ b/components/background_task_scheduler/README.md
@@ -8,40 +8,14 @@ ## Background -In Android M+ it is encouraged to use `JobScheduler` for all background jobs, +In Android it is encouraged to use `JobScheduler` for all background jobs, instead of using things like `IntentService` or polling using alarms. Using the system API is beneficial as it has a full view of what goes on in the system and can schedule jobs accordingly. -However, that leaves an API gap for Android L and below. Prior to Android L, the -`JobScheduler` API was not available at all. It was introduced in Android L; but -is not recommended on that platform, because it limits task execution time to 1 -minute. This is not really practically usable. For example, merely setting up a -network connection will often burn through much of that budget. Android M+ -extends this execution time limit to 10 minutes. - -For these older platforms, we can leverage the GcmNetworkManager API provided by -Google Play services to implement a suitable replacement for the JobScheduler -API. The `background_task_scheduler` component provides a new framework for use -within Chromium to schedule and execute background jobs using the frameworks -available on a given version of Android. The public API of the framework is -similar to that of the Android `JobScheduler`, but it is backed by either the -system `JobScheduler` API or by GcmNetworkManager. What service is used to back -the framework remains a black box to callers of the API. - -In practice, we prefer to use system APIs, since they do not require including -external libraries, which would bloat the APK size of Chrome and add unnecessary -complexity. Thus, the GcmNetworkManager is only used when the system API is not -available (or available but not considered stable enough). That is, the -JobScheduler API is used on Android M+; and the GcmNetworkManager is used -otherwise. - -> NOTE: Some of the pre-M devices do not include Google Play services and -> therefore remain unsupported by `background_task_scheduler`. -> Ultimately, this component hopes to provide a full compatibility -> layer on top of `JobScheduler`. However, until that is implemented, please be -> thoughtful about whether this component provides the coverage that your -> background task needs. +The `background_task_scheduler` component provides a framework for use within +Chromium to schedule and execute background jobs using the system API. The +API of the framework is similar to that of the Android `JobScheduler`. ## What is a task
diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java index 08d325c..26cd1a5 100644 --- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java +++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java
@@ -10,8 +10,7 @@ /** * A BackgroundTaskScheduler is used to schedule jobs that run in the background. - * It is backed by system APIs ({@link android.app.job.JobScheduler}) on newer platforms - * and by GCM ({@link com.google.android.gms.gcm.GcmNetworkManager}) on older platforms. + * It is backed by the system API ({@link android.app.job.JobScheduler}). * * To get an instance of this class, use {@link BackgroundTaskSchedulerFactory#getScheduler()}. */ @@ -47,14 +46,11 @@ boolean isScheduled(Context context, int taskId); /** - * Checks whether OS was upgraded and triggers rescheduling if it is necessary. - * Rescheduling is necessary if type of background task scheduler delegate is different for a - * new version of the OS. - * - * @param context the current context. + * Performs data migrations and flushes cached UMA data. Must not be invoked until native has + * been loaded. */ @MainThread - void checkForOSUpgrade(Context context); + void doMaintenance(); /** * Reschedules all the tasks currently scheduler through BackgroundTaskSheduler.
diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn index 7fe456b..c087781 100644 --- a/components/background_task_scheduler/internal/BUILD.gn +++ b/components/background_task_scheduler/internal/BUILD.gn
@@ -11,12 +11,10 @@ android_library("internal_java") { sources = [ "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java", - "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java", - "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java", @@ -27,10 +25,6 @@ deps = [ ":proto_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_gcm_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//build/android:build_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java index 0d54cba..c1a9a85 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java
@@ -9,9 +9,7 @@ import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; -import android.net.NetworkInfo; import android.os.BatteryManager; -import android.os.Build; import android.os.PowerManager; import android.os.SystemClock; import android.text.format.DateUtils; @@ -39,7 +37,8 @@ private static final String WAKELOCK_TAG = "Chromium:" + TAG; // Wakelock is only held for 3 minutes, in order to be consistent with the restrictions of - // the GcmTaskService: + // the GcmTaskService, which was used in earlier versions of Chrome on pre-Android M versions + // of Android: // https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmTaskService. // Here the waiting is done for only 90% of this time. private static final long MAX_TIMEOUT_MS = 162 * DateUtils.SECOND_IN_MILLIS; @@ -169,13 +168,8 @@ ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService( Context.CONNECTIVITY_SERVICE); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - Network network = ApiHelperForM.getActiveNetwork(connectivityManager); - if (requiredNetworkType == TaskInfo.NetworkType.ANY) return (network != null); - } else { - NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); - if (requiredNetworkType == TaskInfo.NetworkType.ANY) return (networkInfo != null); - } + Network network = ApiHelperForM.getActiveNetwork(connectivityManager); + if (requiredNetworkType == TaskInfo.NetworkType.ANY) return (network != null); return (!connectivityManager.isActiveNetworkMetered()); }
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java deleted file mode 100644 index 44a25b5..0000000 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java +++ /dev/null
@@ -1,160 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.components.background_task_scheduler.internal; - -import android.os.Build; - -import androidx.annotation.VisibleForTesting; - -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.GcmTaskService; -import com.google.android.gms.gcm.TaskParams; - -import org.chromium.base.ContextUtils; -import org.chromium.base.Log; -import org.chromium.base.ThreadUtils; -import org.chromium.components.background_task_scheduler.BackgroundTask; -import org.chromium.components.background_task_scheduler.TaskParameters; - -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; - -/** Delegates calls out to various tasks that need to run in the background. */ -public class BackgroundTaskGcmTaskService extends GcmTaskService { - private static final String TAG = "BkgrdTaskGcmTS"; - - private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = System::currentTimeMillis; - - @VisibleForTesting - void setClockForTesting(BackgroundTaskSchedulerGcmNetworkManager.Clock clock) { - mClock = clock; - } - - /** Class that waits for the processing to be done. */ - private static class Waiter { - // Wakelock is only held for 3 minutes by default for GcmTaskService. - private static final long MAX_TIMEOUT_SECONDS = 179; - private final CountDownLatch mLatch; - private long mWaiterTimeoutSeconds; - private boolean mIsRescheduleNeeded; - private boolean mHasTaskTimedOut; - - public Waiter(long waiterTimeoutSeconds) { - mLatch = new CountDownLatch(1); - mWaiterTimeoutSeconds = Math.min(waiterTimeoutSeconds, MAX_TIMEOUT_SECONDS); - } - - /** Start waiting for the processing to finish. */ - public void startWaiting() { - try { - mHasTaskTimedOut = !mLatch.await(mWaiterTimeoutSeconds, TimeUnit.SECONDS); - } catch (InterruptedException e) { - Log.d(TAG, "Waiter interrupted while waiting."); - } - } - - /** Called to finish waiting. */ - public void onWaitDone(boolean needsRescheduling) { - mIsRescheduleNeeded = needsRescheduling; - mLatch.countDown(); - } - - /** @return Whether last task timed out. */ - public boolean hasTaskTimedOut() { - return mHasTaskTimedOut; - } - - /** @return Whether task needs to be rescheduled. */ - public boolean isRescheduleNeeded() { - return mIsRescheduleNeeded; - } - } - - private static class TaskFinishedCallbackGcmTaskService - implements BackgroundTask.TaskFinishedCallback { - private final Waiter mWaiter; - - public TaskFinishedCallbackGcmTaskService(Waiter waiter) { - mWaiter = waiter; - } - - @Override - public void taskFinished(final boolean needsReschedule) { - ThreadUtils.runOnUiThreadBlocking(new Runnable() { - @Override - public void run() { - mWaiter.onWaitDone(needsReschedule); - } - }); - } - } - - @Override - public int onRunTask(TaskParams params) { - final TaskParameters taskParams = - BackgroundTaskSchedulerGcmNetworkManager.getTaskParametersFromTaskParams(params); - - final BackgroundTask backgroundTask = - BackgroundTaskSchedulerFactoryInternal.getBackgroundTaskFromTaskId( - taskParams.getTaskId()); - if (backgroundTask == null) { - Log.w(TAG, "Failed to start task. Could not instantiate BackgroundTask class."); - // Cancel task if the BackgroundTask class is not found anymore. We assume this means - // that the task has been deprecated. - BackgroundTaskSchedulerFactoryInternal.getScheduler().cancel( - ContextUtils.getApplicationContext(), taskParams.getTaskId()); - return GcmNetworkManager.RESULT_FAILURE; - } - - if (BackgroundTaskSchedulerGcmNetworkManager.didTaskExpire( - params, mClock.currentTimeMillis())) { - BackgroundTaskSchedulerUma.getInstance().reportTaskExpired(taskParams.getTaskId()); - return GcmNetworkManager.RESULT_FAILURE; - } - - final Waiter waiter = new Waiter(Waiter.MAX_TIMEOUT_SECONDS); - - final AtomicBoolean taskNeedsBackgroundProcessing = new AtomicBoolean(); - ThreadUtils.runOnUiThreadBlocking(new Runnable() { - @Override - public void run() { - BackgroundTaskSchedulerUma.getInstance().reportTaskStarted(taskParams.getTaskId()); - taskNeedsBackgroundProcessing.set( - backgroundTask.onStartTask(ContextUtils.getApplicationContext(), taskParams, - new TaskFinishedCallbackGcmTaskService(waiter))); - } - }); - - if (!taskNeedsBackgroundProcessing.get()) return GcmNetworkManager.RESULT_SUCCESS; - - waiter.startWaiting(); - - if (waiter.isRescheduleNeeded()) return GcmNetworkManager.RESULT_RESCHEDULE; - if (!waiter.hasTaskTimedOut()) return GcmNetworkManager.RESULT_SUCCESS; - - final AtomicBoolean taskNeedsRescheduling = new AtomicBoolean(); - ThreadUtils.runOnUiThreadBlocking(new Runnable() { - @Override - public void run() { - BackgroundTaskSchedulerUma.getInstance().reportTaskStopped(taskParams.getTaskId()); - taskNeedsRescheduling.set(backgroundTask.onStopTask( - ContextUtils.getApplicationContext(), taskParams)); - } - }); - - if (taskNeedsRescheduling.get()) return GcmNetworkManager.RESULT_RESCHEDULE; - - return GcmNetworkManager.RESULT_SUCCESS; - } - - @Override - public void onInitializeTasks() { - // Ignore the event on OSs supporting JobScheduler. - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return; - BackgroundTaskSchedulerFactoryInternal.getScheduler().reschedule( - ContextUtils.getApplicationContext()); - } -}
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java index e0f6223..6943225e 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java
@@ -8,7 +8,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import androidx.annotation.VisibleForTesting; @@ -16,7 +15,6 @@ import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.ThreadUtils; -import org.chromium.base.compat.ApiHelperForM; import org.chromium.components.background_task_scheduler.TaskInfo; import org.chromium.components.background_task_scheduler.TaskParameters; @@ -109,14 +107,7 @@ // TODO(crbug.com/1190755): Either remove this or make sure it's compatible with Android S. @Override public void visit(TaskInfo.ExactInfo exactInfo) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - ApiHelperForM.setAlarmManagerExactAndAllowWhileIdle(mAlarmManager, - /*type= */ AlarmManager.RTC_WAKEUP, exactInfo.getTriggerAtMs(), - mPendingIntent); - return; - } - - mAlarmManager.setExact( + mAlarmManager.setExactAndAllowWhileIdle( /*type= */ AlarmManager.RTC_WAKEUP, exactInfo.getTriggerAtMs(), mPendingIntent); } }
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java index 47388cc..b00526a 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java
@@ -10,8 +10,7 @@ /** * The internal representation of a {@link BackgroundTaskScheduler} to make it possible to use - * system APIs ({@link android.app.job.JobScheduler} on newer platforms and GCM - * ({@link com.google.android.gms.gcm.GcmNetworkManager}) on older platforms. + * system API ({@link android.app.job.JobScheduler}. */ interface BackgroundTaskSchedulerDelegate { String BACKGROUND_TASK_ID_KEY = "_background_task_id";
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java index 0cb4638..cdf5d9d 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
@@ -4,8 +4,6 @@ package org.chromium.components.background_task_scheduler.internal; -import android.os.Build; - import androidx.annotation.VisibleForTesting; import org.chromium.base.ThreadUtils; @@ -20,14 +18,6 @@ private static BackgroundTaskScheduler sBackgroundTaskScheduler; private static BackgroundTaskFactory sBackgroundTaskFactory; - static BackgroundTaskSchedulerDelegate getSchedulerDelegateForSdk(int sdkInt) { - if (sdkInt >= Build.VERSION_CODES.M) { - return new BackgroundTaskSchedulerJobService(); - } else { - return new BackgroundTaskSchedulerGcmNetworkManager(); - } - } - /** * @return the current instance of the {@link BackgroundTaskScheduler}. Creates one if none * exist. @@ -35,9 +25,9 @@ public static BackgroundTaskScheduler getScheduler() { ThreadUtils.assertOnUiThread(); if (sBackgroundTaskScheduler == null) { - sBackgroundTaskScheduler = new BackgroundTaskSchedulerImpl( - getSchedulerDelegateForSdk(Build.VERSION.SDK_INT), - new BackgroundTaskSchedulerAlarmManager()); + sBackgroundTaskScheduler = + new BackgroundTaskSchedulerImpl(new BackgroundTaskSchedulerJobService(), + new BackgroundTaskSchedulerAlarmManager()); } return sBackgroundTaskScheduler; }
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java deleted file mode 100644 index 065ef55..0000000 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java +++ /dev/null
@@ -1,257 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.components.background_task_scheduler.internal; - -import android.content.Context; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; - -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.OneoffTask; -import com.google.android.gms.gcm.PeriodicTask; -import com.google.android.gms.gcm.Task; -import com.google.android.gms.gcm.TaskParams; - -import org.chromium.base.Log; -import org.chromium.base.ThreadUtils; -import org.chromium.components.background_task_scheduler.TaskInfo; -import org.chromium.components.background_task_scheduler.TaskParameters; -import org.chromium.gms.ChromiumPlayServicesAvailability; - -import java.util.concurrent.TimeUnit; - -/** - * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services - * {@link GcmNetworkManager} to schedule jobs. - */ -class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedulerDelegate { - private static final String TAG = "BkgrdTaskSchedGcmNM"; - - /** Delta time for expiration checks, after the end time. */ - static final long DEADLINE_DELTA_MS = 1000; - - /** Clock to use so we can mock time in tests. */ - public interface Clock { long currentTimeMillis(); } - - private static Clock sClock = System::currentTimeMillis; - - @VisibleForTesting - static void setClockForTesting(Clock clock) { - sClock = clock; - } - - /** - * Checks if a task expired, based on the current time of the service. - * - * @param taskParams parameters sent to the service, which contain the scheduling information - * regarding expiration. - * @param currentTimeMs the current time of the service. - * @return true if the task expired and false otherwise. - */ - static boolean didTaskExpire(TaskParams taskParams, long currentTimeMs) { - Bundle extras = taskParams.getExtras(); - if (extras == null || !extras.containsKey(BACKGROUND_TASK_SCHEDULE_TIME_KEY)) { - return false; - } - - long scheduleTimeMs = extras.getLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY); - if (extras.containsKey(BACKGROUND_TASK_END_TIME_KEY)) { - long endTimeMs = - extras.getLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY); - return TaskInfo.OneOffInfo.getExpirationStatus( - scheduleTimeMs, endTimeMs, currentTimeMs); - } else { - long intervalTimeMs = extras.getLong(BACKGROUND_TASK_INTERVAL_TIME_KEY); - - // If flex is never set, it is given a default value of 10% of the period time, as - // per the GcmNetworkManager behaviour. This default value is set in - // https://developers.google.com/android/reference/com/google/android/gms/gcm/PeriodicTask. - double defaultFlexAsFractionOfInterval = 0.1f; - - long flexTimeMs = extras.getLong(BACKGROUND_TASK_FLEX_TIME_KEY, - /*defaultValue=*/(long) (defaultFlexAsFractionOfInterval * intervalTimeMs)); - - return TaskInfo.PeriodicInfo.getExpirationStatus( - scheduleTimeMs, intervalTimeMs, flexTimeMs, currentTimeMs); - } - } - - /** - * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as - * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other - * values are stripped at the time when the task is scheduled. - * - * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from. - * @return the {@link TaskParameters} for the current job. - */ - static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) { - int taskId; - try { - taskId = Integer.parseInt(taskParams.getTag()); - } catch (NumberFormatException e) { - Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag()); - return null; - } - - TaskParameters.Builder builder = TaskParameters.create(taskId); - - Bundle extras = taskParams.getExtras(); - Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY); - builder.addExtras(taskExtras); - - return builder.build(); - } - - @VisibleForTesting - static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) { - Bundle taskExtras = new Bundle(); - taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras()); - - TaskBuilderVisitor taskBuilderVisitor = new TaskBuilderVisitor(taskExtras); - taskInfo.getTimingInfo().accept(taskBuilderVisitor); - Task.Builder builder = taskBuilderVisitor.getBuilder(); - - builder.setPersisted(taskInfo.isPersisted()) - .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType( - taskInfo.getRequiredNetworkType())) - .setRequiresCharging(taskInfo.requiresCharging()) - .setService(BackgroundTaskGcmTaskService.class) - .setTag(taskIdToTaskTag(taskInfo.getTaskId())) - .setUpdateCurrent(taskInfo.shouldUpdateCurrent()); - - return builder.build(); - } - - private static class TaskBuilderVisitor implements TaskInfo.TimingInfoVisitor { - private Task.Builder mBuilder; - private final Bundle mTaskExtras; - - TaskBuilderVisitor(Bundle taskExtras) { - mTaskExtras = taskExtras; - } - - // Only valid after a TimingInfo object was visited. - Task.Builder getBuilder() { - return mBuilder; - } - - @Override - public void visit(TaskInfo.OneOffInfo oneOffInfo) { - if (oneOffInfo.expiresAfterWindowEndTime()) { - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis()); - mTaskExtras.putLong(BACKGROUND_TASK_END_TIME_KEY, oneOffInfo.getWindowEndTimeMs()); - } - - OneoffTask.Builder builder = new OneoffTask.Builder(); - long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint() - ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs()) - : 0; - long windowEndTimeMs = oneOffInfo.getWindowEndTimeMs(); - if (oneOffInfo.expiresAfterWindowEndTime()) { - windowEndTimeMs += DEADLINE_DELTA_MS; - } - builder.setExecutionWindow( - windowStartSeconds, TimeUnit.MILLISECONDS.toSeconds(windowEndTimeMs)); - builder.setExtras(mTaskExtras); - mBuilder = builder; - } - - @Override - public void visit(TaskInfo.PeriodicInfo periodicInfo) { - if (periodicInfo.expiresAfterWindowEndTime()) { - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis()); - mTaskExtras.putLong( - BACKGROUND_TASK_INTERVAL_TIME_KEY, periodicInfo.getIntervalMs()); - if (periodicInfo.hasFlex()) { - mTaskExtras.putLong(BACKGROUND_TASK_FLEX_TIME_KEY, periodicInfo.getFlexMs()); - } - } - - PeriodicTask.Builder builder = new PeriodicTask.Builder(); - builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs())); - if (periodicInfo.hasFlex()) { - builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs())); - } - builder.setExtras(mTaskExtras); - mBuilder = builder; - } - - @Override - public void visit(TaskInfo.ExactInfo exactInfo) { - throw new RuntimeException("Exact tasks should not be scheduled with " - + "GcmNetworkManager."); - } - } - - private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType( - @TaskInfo.NetworkType int networkType) { - switch (networkType) { - // This is correct: GcmNM ANY means no network is guaranteed. - case TaskInfo.NetworkType.NONE: - return Task.NETWORK_STATE_ANY; - case TaskInfo.NetworkType.ANY: - return Task.NETWORK_STATE_CONNECTED; - case TaskInfo.NetworkType.UNMETERED: - return Task.NETWORK_STATE_UNMETERED; - default: - assert false; - } - return Task.NETWORK_STATE_ANY; - } - - @Override - public boolean schedule(Context context, @NonNull TaskInfo taskInfo) { - ThreadUtils.assertOnUiThread(); - - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context); - if (gcmNetworkManager == null) { - Log.e(TAG, "GcmNetworkManager is not available."); - return false; - } - - try { - Task task = createTaskFromTaskInfo(taskInfo); - gcmNetworkManager.schedule(task); - } catch (IllegalArgumentException e) { - String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage(); - Log.e(TAG, - "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage); - return false; - } - - return true; - } - - @Override - public void cancel(Context context, int taskId) { - ThreadUtils.assertOnUiThread(); - - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context); - if (gcmNetworkManager == null) { - Log.e(TAG, "GcmNetworkManager is not available."); - return; - } - - try { - gcmNetworkManager.cancelTask( - taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class); - } catch (IllegalArgumentException e) { - Log.e(TAG, "GcmNetworkManager failed to cancel task."); - } - } - - private GcmNetworkManager getGcmNetworkManager(Context context) { - if (ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(context)) { - return GcmNetworkManager.getInstance(context); - } - return null; - } - - private static String taskIdToTaskTag(int taskId) { - return Integer.toString(taskId); - } -}
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java index 25464ce..b2e2507 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java
@@ -5,19 +5,16 @@ package org.chromium.components.background_task_scheduler.internal; import android.content.Context; -import android.os.Build; import org.chromium.base.CommandLine; import org.chromium.base.Log; import org.chromium.base.ThreadUtils; import org.chromium.base.TraceEvent; -import org.chromium.build.BuildConfig; import org.chromium.components.background_task_scheduler.BackgroundTask; import org.chromium.components.background_task_scheduler.BackgroundTaskScheduler; import org.chromium.components.background_task_scheduler.TaskInfo; import java.util.Map; -import java.util.Set; /** * This {@link BackgroundTaskScheduler} is the only one used in production code, and it is used to @@ -158,40 +155,19 @@ } @Override - public void checkForOSUpgrade(Context context) { + public void doMaintenance() { try (TraceEvent te = TraceEvent.scoped("BackgroundTaskScheduler.checkForOSUpgrade")) { ThreadUtils.assertOnUiThread(); - int oldSdkInt = BackgroundTaskSchedulerPrefs.getLastSdkVersion(); - int newSdkInt = Build.VERSION.SDK_INT; // Update tasks stored in the old format to the proto format at Chrome Startup, if // tasks are found to be stored in the old format. This allows to keep only one // implementation of the storage methods. + // This proto store was added in M78, and should be deleted when upgrades from that + // of Chrome is no longer considered a core user journey. + // TODO(crbug.com/1406114) Remove this migration and the underlying preferences. BackgroundTaskSchedulerPrefs.migrateStoredTasksToProto(); - if (oldSdkInt != newSdkInt) { - // Save the current SDK version to preferences. - BackgroundTaskSchedulerPrefs.setLastSdkVersion(newSdkInt); - } - - // No OS upgrade detected or OS upgrade does not change delegate. - if (oldSdkInt == newSdkInt || !osUpgradeChangesDelegateType(oldSdkInt, newSdkInt)) { - BackgroundTaskSchedulerUma.getInstance().flushStats(); - return; - } - - BackgroundTaskSchedulerUma.getInstance().removeCachedStats(); - - // Explicitly create and invoke old delegate type to cancel all scheduled tasks. - // All preference entries are kept until reschedule call, which removes then then. - BackgroundTaskSchedulerDelegate oldDelegate = - BackgroundTaskSchedulerFactoryInternal.getSchedulerDelegateForSdk(oldSdkInt); - Set<Integer> scheduledTaskIds = BackgroundTaskSchedulerPrefs.getScheduledTaskIds(); - for (int taskId : scheduledTaskIds) { - oldDelegate.cancel(context, taskId); - } - - reschedule(context); + BackgroundTaskSchedulerUma.getInstance().flushStats(); } } @@ -223,13 +199,6 @@ } } - private boolean osUpgradeChangesDelegateType(int oldSdkInt, int newSdkInt) { - // Assuming no upgrades from L->N (without going through M) allows us to remove - // GCMNetworkManager codepaths for Monochrome and above. - return BuildConfig.MIN_SDK_VERSION < Build.VERSION_CODES.N - && oldSdkInt < Build.VERSION_CODES.M && newSdkInt >= Build.VERSION_CODES.M; - } - private void selectDelegateAndCancel( Context context, ScheduledTaskProto.ScheduledTask.Type taskType, int taskId) { if (taskType == ScheduledTaskProto.ScheduledTask.Type.EXACT) {
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplWithMockTest.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplWithMockTest.java index 8f66027..3f48c94 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplWithMockTest.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplWithMockTest.java
@@ -23,8 +23,7 @@ * Tests for {@link BackgroundTaskSchedulerImpl}. */ @RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE, - shadows = {ShadowGcmNetworkManager.class, ShadowChromiumPlayServicesAvailability.class}) +@Config(manifest = Config.NONE, shadows = {ShadowChromiumPlayServicesAvailability.class}) public class BackgroundTaskSchedulerImplWithMockTest { private static final int TEST_MINUTES = 10;
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java index 6af0767..236eb00 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java
@@ -9,7 +9,6 @@ import android.app.job.JobScheduler; import android.content.ComponentName; import android.content.Context; -import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; @@ -62,12 +61,6 @@ return TaskInfo.OneOffInfo.getExpirationStatus( scheduleTimeMs, endTimeMs, currentTimeMs); } else { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - // Before Android N, there was no control over when the job will execute within - // the given interval. This makes it impossible to check for an expiration time. - return false; - } - long intervalTimeMs = extras.getLong(BACKGROUND_TASK_INTERVAL_TIME_KEY); // Based on the JobInfo documentation, attempting to declare a smaller period than // this when scheduling a job will result in a job that is still periodic, but will @@ -179,7 +172,7 @@ } mBuilder.setExtras(mJobExtras); - if (periodicInfo.hasFlex() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if (periodicInfo.hasFlex()) { mBuilder.setPeriodic(periodicInfo.getIntervalMs(), periodicInfo.getFlexMs()); return; }
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobServiceTest.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobServiceTest.java index 9bf5313..7db1b597 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobServiceTest.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobServiceTest.java
@@ -5,7 +5,6 @@ package org.chromium.components.background_task_scheduler.internal; import android.app.job.JobInfo; -import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; @@ -16,7 +15,6 @@ import org.robolectric.RuntimeEnvironment; import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.base.test.util.MinAndroidSdkLevel; import org.chromium.components.background_task_scheduler.TaskIds; import org.chromium.components.background_task_scheduler.TaskInfo; @@ -26,7 +24,6 @@ * Tests for {@link BackgroundTaskSchedulerJobService}. */ @RunWith(BaseRobolectricTestRunner.class) -@MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP_MR1) public class BackgroundTaskSchedulerJobServiceTest { private static final long CLOCK_TIME_MS = 1415926535000L; private static final long TIME_50_MIN_TO_MS = TimeUnit.MINUTES.toMillis(50); @@ -65,11 +62,11 @@ RuntimeEnvironment.getApplication(), oneOffTask); Assert.assertEquals(END_TIME_WITH_DEADLINE_MS, jobInfo.getMaxExecutionDelayMillis()); Assert.assertEquals(CLOCK_TIME_MS, - jobInfo.getExtras().getLong(BackgroundTaskSchedulerGcmNetworkManager - .BACKGROUND_TASK_SCHEDULE_TIME_KEY)); + jobInfo.getExtras().getLong( + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_SCHEDULE_TIME_KEY)); Assert.assertEquals(TIME_200_MIN_TO_MS, jobInfo.getExtras().getLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_END_TIME_KEY)); + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY)); } @Test @@ -101,11 +98,11 @@ oneOffTask.getOneOffInfo().getWindowStartTimeMs(), jobInfo.getMinLatencyMillis()); Assert.assertEquals(END_TIME_WITH_DEADLINE_MS, jobInfo.getMaxExecutionDelayMillis()); Assert.assertEquals(CLOCK_TIME_MS, - jobInfo.getExtras().getLong(BackgroundTaskSchedulerGcmNetworkManager - .BACKGROUND_TASK_SCHEDULE_TIME_KEY)); + jobInfo.getExtras().getLong( + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_SCHEDULE_TIME_KEY)); Assert.assertEquals(TIME_200_MIN_TO_MS, jobInfo.getExtras().getLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_END_TIME_KEY)); + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY)); } @Test @@ -130,9 +127,7 @@ JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTaskInfo( RuntimeEnvironment.getApplication(), periodicTask); Assert.assertEquals(TIME_200_MIN_TO_MS, jobInfo.getIntervalMillis()); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - Assert.assertEquals(TIME_50_MIN_TO_MS, jobInfo.getFlexMillis()); - } + Assert.assertEquals(TIME_50_MIN_TO_MS, jobInfo.getFlexMillis()); } @Test
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java index af4ea72..62105c0 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java
@@ -6,7 +6,6 @@ import android.content.Context; import android.content.SharedPreferences; -import android.os.Build; import android.os.Bundle; import android.util.Base64; @@ -277,26 +276,6 @@ PREF_PACKAGE, Context.MODE_PRIVATE); } - /** Gets the last SDK version on which this instance ran. Defaults to current SDK version. */ - public static int getLastSdkVersion() { - try (TraceEvent te = TraceEvent.scoped("BackgroundTaskSchedulerPrefs.getLastSdkVersion")) { - int sdkInt = ContextUtils.getAppSharedPreferences().getInt( - KEY_LAST_SDK_VERSION, Build.VERSION.SDK_INT); - return sdkInt; - } - } - - /** Gets the last SDK version on which this instance ran. */ - public static void setLastSdkVersion(int sdkVersion) { - try (TraceEvent te = TraceEvent.scoped("BackgroundTaskSchedulerPrefs.setLastSdkVersion", - Integer.toString(sdkVersion))) { - ContextUtils.getAppSharedPreferences() - .edit() - .putInt(KEY_LAST_SDK_VERSION, sdkVersion) - .apply(); - } - } - private static ScheduledTaskProto.ScheduledTask.RequiredNetworkType convertToRequiredNetworkType(@TaskInfo.NetworkType int networkType) { switch (networkType) {
diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverterTest.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverterTest.java index 40feca00..c5af88f 100644 --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverterTest.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BundleToPersistableBundleConverterTest.java
@@ -4,7 +4,6 @@ package org.chromium.components.background_task_scheduler.internal; -import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; @@ -13,7 +12,6 @@ import org.junit.runner.RunWith; import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.base.test.util.MinAndroidSdkLevel; import java.util.ArrayList; import java.util.Arrays; @@ -21,7 +19,6 @@ /** Tests for {@link BundleToPersistableBundleConverter}. */ @RunWith(BaseRobolectricTestRunner.class) -@MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP_MR1) public class BundleToPersistableBundleConverterTest { @Test public void testAllValidConversions() {
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java deleted file mode 100644 index be648a1..0000000 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java +++ /dev/null
@@ -1,359 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.components.background_task_scheduler.internal; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import android.content.Context; -import android.os.Build; -import android.os.Bundle; - -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.TaskParams; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.annotation.Config; -import org.robolectric.util.ReflectionHelpers; - -import org.chromium.base.ContextUtils; -import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.base.test.util.Feature; -import org.chromium.components.background_task_scheduler.BackgroundTask; -import org.chromium.components.background_task_scheduler.BackgroundTaskFactory; -import org.chromium.components.background_task_scheduler.TaskIds; -import org.chromium.components.background_task_scheduler.TaskInfo; -import org.chromium.components.background_task_scheduler.TaskParameters; - -import java.util.concurrent.TimeUnit; - -/** Unit tests for {@link BackgroundTaskGcmTaskService}. */ -@RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE) -public class BackgroundTaskGcmTaskServiceTest { - static TestBackgroundTaskWithParams sLastTask; - static boolean sReturnThroughCallback; - static boolean sNeedsRescheduling; - private static BackgroundTaskSchedulerGcmNetworkManager.Clock sClock = () -> 1415926535000L; - private static BackgroundTaskSchedulerGcmNetworkManager.Clock sZeroClock = () -> 0L; - @Mock - private BackgroundTaskSchedulerDelegate mDelegate; - @Mock - private BackgroundTaskSchedulerDelegate mAlarmManagerDelegate; - @Mock - private BackgroundTaskSchedulerUma mBackgroundTaskSchedulerUma; - @Mock - private BackgroundTaskSchedulerImpl mBackgroundTaskSchedulerImpl; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - BackgroundTaskSchedulerFactoryInternal.setSchedulerForTesting( - new BackgroundTaskSchedulerImpl(mDelegate, mAlarmManagerDelegate)); - BackgroundTaskSchedulerUma.setInstanceForTesting(mBackgroundTaskSchedulerUma); - sReturnThroughCallback = false; - sNeedsRescheduling = false; - sLastTask = null; - TestBackgroundTask.reset(); - } - - private static class TestBackgroundTaskWithParams extends TestBackgroundTask { - private TaskParameters mTaskParameters; - - public TestBackgroundTaskWithParams() {} - - @Override - public boolean onStartTask( - Context context, TaskParameters taskParameters, TaskFinishedCallback callback) { - mTaskParameters = taskParameters; - callback.taskFinished(sNeedsRescheduling); - sLastTask = this; - return sReturnThroughCallback; - } - - public TaskParameters getTaskParameters() { - return mTaskParameters; - } - } - - private static class TestBackgroundTaskWithParamsFactory implements BackgroundTaskFactory { - @Override - public BackgroundTask getBackgroundTaskFromTaskId(int taskId) { - return new TestBackgroundTaskWithParams(); - } - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testStartsAnytimeWithoutDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - Bundle taskExtras = new Bundle(); - taskExtras.putString("foo", "bar"); - TaskParams taskParams = buildOneOffTaskParams(TaskIds.TEST, taskExtras, null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - assertEquals(GcmNetworkManager.RESULT_SUCCESS, taskService.onRunTask(taskParams)); - - assertNotNull(sLastTask); - TaskParameters parameters = sLastTask.getTaskParameters(); - - assertEquals(TaskIds.TEST, parameters.getTaskId()); - assertEquals("bar", parameters.getExtras().getString("foo")); - - verify(mBackgroundTaskSchedulerUma, times(1)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskDoesNotStartExactlyAtDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - TaskParams taskParams = buildOneOffTaskParams(TaskIds.TEST, new Bundle(), new Long(0)); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sClock); - assertEquals(GcmNetworkManager.RESULT_FAILURE, taskService.onRunTask(taskParams)); - - assertNull(sLastTask); - - verify(mBackgroundTaskSchedulerUma, times(0)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskDoesNotStartAfterDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - TaskParams taskParams = - buildOneOffTaskParams(TaskIds.TEST, new Bundle(), -sClock.currentTimeMillis()); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sClock); - assertEquals(GcmNetworkManager.RESULT_FAILURE, taskService.onRunTask(taskParams)); - - assertNull(sLastTask); - - verify(mBackgroundTaskSchedulerUma, times(0)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskStartsBeforeDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - TaskParams taskParams = - buildOneOffTaskParams(TaskIds.TEST, new Bundle(), sClock.currentTimeMillis()); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sZeroClock); - assertEquals(GcmNetworkManager.RESULT_SUCCESS, taskService.onRunTask(taskParams)); - - assertNotNull(sLastTask); - TaskParameters parameters = sLastTask.getTaskParameters(); - - assertEquals(TaskIds.TEST, parameters.getTaskId()); - - verify(mBackgroundTaskSchedulerUma, times(1)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskOnRuntaskNeedsReschedulingFromCallback() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - sReturnThroughCallback = true; - sNeedsRescheduling = true; - TaskParams taskParams = buildOneOffTaskParams(TaskIds.TEST, new Bundle(), null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - assertEquals(GcmNetworkManager.RESULT_RESCHEDULE, taskService.onRunTask(taskParams)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskOnRuntaskDontRescheduleFromCallback() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - sReturnThroughCallback = true; - sNeedsRescheduling = false; - TaskParams taskParams = buildOneOffTaskParams(TaskIds.TEST, new Bundle(), null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - assertEquals(GcmNetworkManager.RESULT_SUCCESS, taskService.onRunTask(taskParams)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskOnInitializeTasksOnPreM() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - ReflectionHelpers.setStaticField( - Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.LOLLIPOP); - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TimeUnit.DAYS.toMillis(1)).build(); - TaskInfo task = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - BackgroundTaskSchedulerPrefs.addScheduledTask(task); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - - new BackgroundTaskGcmTaskService().onInitializeTasks(); - assertEquals(1, TestBackgroundTask.getRescheduleCalls()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskOnInitializeTasksOnMPlus() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.M); - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TimeUnit.DAYS.toMillis(1)).build(); - TaskInfo task = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - BackgroundTaskSchedulerPrefs.addScheduledTask(task); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - - new BackgroundTaskGcmTaskService().onInitializeTasks(); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testCancelTaskIfTaskIdNotFound() { - BackgroundTaskSchedulerFactoryInternal.setSchedulerForTesting(mBackgroundTaskSchedulerImpl); - - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - TaskParams taskParams = buildOneOffTaskParams( - TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID, new Bundle(), sClock.currentTimeMillis()); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sZeroClock); - assertEquals(GcmNetworkManager.RESULT_FAILURE, taskService.onRunTask(taskParams)); - - verify(mBackgroundTaskSchedulerImpl, times(1)) - .cancel(eq(ContextUtils.getApplicationContext()), - eq(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID)); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskStartsAnytimeWithoutDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - TaskParams taskParams = - buildPeriodicTaskParams(TaskIds.TEST, new Bundle(), null, null, null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - assertEquals(GcmNetworkManager.RESULT_SUCCESS, taskService.onRunTask(taskParams)); - - verify(mBackgroundTaskSchedulerUma, times(1)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskStartsWithinDeadlineTimeFrame() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - TaskParams taskParams = buildPeriodicTaskParams(TaskIds.TEST, new Bundle(), - sClock.currentTimeMillis() - TimeUnit.MINUTES.toMillis(14), - TimeUnit.MINUTES.toMillis(15), null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sClock); - assertEquals(GcmNetworkManager.RESULT_SUCCESS, taskService.onRunTask(taskParams)); - - verify(mBackgroundTaskSchedulerUma, times(1)).reportTaskStarted(eq(TaskIds.TEST)); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskDoesNotStartExactlyAtDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - - TaskParams taskParams = buildPeriodicTaskParams(TaskIds.TEST, new Bundle(), - sClock.currentTimeMillis(), TimeUnit.MINUTES.toMillis(15), null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sClock); - assertEquals(GcmNetworkManager.RESULT_FAILURE, taskService.onRunTask(taskParams)); - - verify(mBackgroundTaskSchedulerUma, times(0)).reportTaskStarted(eq(TaskIds.TEST)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskDoesNotStartAfterDeadline() { - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskWithParamsFactory()); - - TaskParams taskParams = buildPeriodicTaskParams(TaskIds.TEST, new Bundle(), - sClock.currentTimeMillis() - TimeUnit.MINUTES.toMillis(3), - TimeUnit.MINUTES.toMillis(15), null); - - BackgroundTaskGcmTaskService taskService = new BackgroundTaskGcmTaskService(); - taskService.setClockForTesting(sClock); - assertEquals(GcmNetworkManager.RESULT_FAILURE, taskService.onRunTask(taskParams)); - - verify(mBackgroundTaskSchedulerUma, times(0)).reportTaskStarted(eq(TaskIds.TEST)); - } - - private static TaskParams buildOneOffTaskParams( - int taskId, Bundle taskExtras, Long windowEndTimeForDeadlineMs) { - Bundle extras = new Bundle(); - extras.putBundle( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); - if (windowEndTimeForDeadlineMs != null) { - extras.putLong(BackgroundTaskSchedulerJobService.BACKGROUND_TASK_SCHEDULE_TIME_KEY, - sClock.currentTimeMillis()); - extras.putLong(BackgroundTaskSchedulerJobService.BACKGROUND_TASK_END_TIME_KEY, - windowEndTimeForDeadlineMs); - } - - return new TaskParams(Integer.toString(taskId), extras); - } - - private static TaskParams buildPeriodicTaskParams(int taskId, Bundle taskExtras, - Long schedulingTimeMs, Long intervalForDeadlineMs, Long flexForDeadlineMs) { - Bundle extras = new Bundle(); - extras.putBundle( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); - if (schedulingTimeMs != null) { - extras.putLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_SCHEDULE_TIME_KEY, - schedulingTimeMs); - extras.putLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_INTERVAL_TIME_KEY, - intervalForDeadlineMs); - if (flexForDeadlineMs != null) { - extras.putLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_FLEX_TIME_KEY, - flexForDeadlineMs); - } - } - - return new TaskParams(Integer.toString(taskId), extras); - } -}
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java index b46a360..a88c8ee4 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java
@@ -186,14 +186,14 @@ int taskId, Long schedulingTimeMs, Long windowEndTimeForDeadlineMs) { PersistableBundle extras = new PersistableBundle(); if (windowEndTimeForDeadlineMs != null) { - extras.putLong(BackgroundTaskSchedulerJobService.BACKGROUND_TASK_SCHEDULE_TIME_KEY, + extras.putLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_SCHEDULE_TIME_KEY, schedulingTimeMs); - extras.putLong(BackgroundTaskSchedulerJobService.BACKGROUND_TASK_END_TIME_KEY, + extras.putLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY, windowEndTimeForDeadlineMs); } PersistableBundle taskExtras = new PersistableBundle(); extras.putPersistableBundle( - BackgroundTaskSchedulerJobService.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); return new JobParameters(null /* callback */, taskId, extras, null /* transientExtras */, null /* clipData */, 0 /* clipGrantFlags */, false /* overrideDeadlineExpired */, @@ -205,20 +205,18 @@ int taskId, Long schedulingTimeMs, Long intervalForDeadlineMs, Long flexForDeadlineMs) { PersistableBundle extras = new PersistableBundle(); if (schedulingTimeMs != null) { - extras.putLong(BackgroundTaskSchedulerJobService.BACKGROUND_TASK_SCHEDULE_TIME_KEY, + extras.putLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_SCHEDULE_TIME_KEY, schedulingTimeMs); - extras.putLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_INTERVAL_TIME_KEY, + extras.putLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_INTERVAL_TIME_KEY, intervalForDeadlineMs); if (flexForDeadlineMs != null) { - extras.putLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_FLEX_TIME_KEY, + extras.putLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_FLEX_TIME_KEY, flexForDeadlineMs); } } PersistableBundle taskExtras = new PersistableBundle(); extras.putPersistableBundle( - BackgroundTaskSchedulerJobService.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); + BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); return new JobParameters(null /* callback */, taskId, extras, null /* transientExtras */, null /* clipData */, 0 /* clipGrantFlags */, false /* overrideDeadlineExpired */,
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java index fa6ecbf7..da9ec6f 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java
@@ -20,24 +20,17 @@ import org.chromium.components.background_task_scheduler.TaskIds; import org.chromium.components.background_task_scheduler.TaskInfo; -import java.util.concurrent.TimeUnit; - /** Unit tests for {@link BackgroundTaskSchedulerAlarmManager}. */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) public class BackgroundTaskSchedulerAlarmManagerTest { private static final long CLOCK_TIME_MS = 1415926535000L; - private static final long TIME_200_MIN_TO_MS = TimeUnit.MINUTES.toMillis(200); - - private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = () -> CLOCK_TIME_MS; @Test @Feature({"BackgroundTaskScheduler"}) public void testExactTaskParameters() { TaskInfo.TimingInfo timingInfo = - TaskInfo.ExactInfo.create() - .setTriggerAtMs(mClock.currentTimeMillis() + TIME_200_MIN_TO_MS) - .build(); + TaskInfo.ExactInfo.create().setTriggerAtMs(CLOCK_TIME_MS).build(); TaskInfo exactTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); PendingIntent pendingIntent = BackgroundTaskSchedulerAlarmManager.createPendingIntentFromTaskId(
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java deleted file mode 100644 index 54deb55..0000000 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java +++ /dev/null
@@ -1,348 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.components.background_task_scheduler.internal; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import android.os.Bundle; - -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.OneoffTask; -import com.google.android.gms.gcm.PeriodicTask; -import com.google.android.gms.gcm.Task; -import com.google.android.gms.gcm.TaskParams; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.annotation.Config; -import org.robolectric.shadow.api.Shadow; - -import org.chromium.base.ContextUtils; -import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.base.test.util.Feature; -import org.chromium.components.background_task_scheduler.BackgroundTask; -import org.chromium.components.background_task_scheduler.TaskIds; -import org.chromium.components.background_task_scheduler.TaskInfo; -import org.chromium.components.background_task_scheduler.TaskParameters; -import org.chromium.gms.shadows.ShadowChromiumPlayServicesAvailability; - -import java.util.concurrent.TimeUnit; - -/** Unit tests for {@link BackgroundTaskSchedulerGcmNetworkManager}. */ -@RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE, - shadows = {ShadowGcmNetworkManager.class, ShadowChromiumPlayServicesAvailability.class}) -public class BackgroundTaskSchedulerGcmNetworkManagerTest { - ShadowGcmNetworkManager mGcmNetworkManager; - - private static final long CLOCK_TIME_MS = 1415926535000L; - private static final long TIME_100_MIN_TO_MS = TimeUnit.MINUTES.toMillis(100); - private static final long TIME_100_MIN_TO_S = TimeUnit.MINUTES.toSeconds(100); - private static final long TIME_200_MIN_TO_MS = TimeUnit.MINUTES.toMillis(200); - private static final long TIME_200_MIN_TO_S = TimeUnit.MINUTES.toSeconds(200); - private static final long TIME_24_H_TO_MS = TimeUnit.HOURS.toMillis(1); - private static final long END_TIME_WITH_DEADLINE_S = - (TIME_200_MIN_TO_MS + BackgroundTaskSchedulerGcmNetworkManager.DEADLINE_DELTA_MS) - / 1000; - - private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = () -> CLOCK_TIME_MS; - - @Before - public void setUp() { - ShadowChromiumPlayServicesAvailability.setIsGooglePlayServicesAvailable(true); - mGcmNetworkManager = (ShadowGcmNetworkManager) Shadow.extract( - GcmNetworkManager.getInstance(ContextUtils.getApplicationContext())); - BackgroundTaskSchedulerGcmNetworkManager.setClockForTesting(mClock); - BackgroundTaskSchedulerFactoryInternal.setBackgroundTaskFactory( - new TestBackgroundTaskFactory()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskWithDeadline() { - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_200_MIN_TO_MS).build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo); - assertTrue(task instanceof OneoffTask); - OneoffTask oneOffTask = (OneoffTask) task; - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertEquals(TIME_200_MIN_TO_S, oneOffTask.getWindowEnd()); - assertEquals(0, oneOffTask.getWindowStart()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskWithDeadlineAndExpiration() { - TaskInfo.TimingInfo timingInfo = TaskInfo.OneOffInfo.create() - .setWindowEndTimeMs(TIME_200_MIN_TO_MS) - .setExpiresAfterWindowEndTime(true) - .build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo); - assertTrue(task instanceof OneoffTask); - OneoffTask oneOffTask = (OneoffTask) task; - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertEquals(END_TIME_WITH_DEADLINE_S, oneOffTask.getWindowEnd()); - assertEquals(0, oneOffTask.getWindowStart()); - assertEquals(CLOCK_TIME_MS, - task.getExtras().getLong(BackgroundTaskSchedulerGcmNetworkManager - .BACKGROUND_TASK_SCHEDULE_TIME_KEY)); - assertEquals(TIME_200_MIN_TO_MS, - task.getExtras().getLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_END_TIME_KEY)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskWithWindow() { - TaskInfo.TimingInfo timingInfo = TaskInfo.OneOffInfo.create() - .setWindowStartTimeMs(TIME_100_MIN_TO_MS) - .setWindowEndTimeMs(TIME_200_MIN_TO_MS) - .build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo); - assertTrue(task instanceof OneoffTask); - OneoffTask oneOffTask = (OneoffTask) task; - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertEquals(TIME_200_MIN_TO_S, oneOffTask.getWindowEnd()); - assertEquals(TIME_100_MIN_TO_S, oneOffTask.getWindowStart()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskWithWindowAndExpiration() { - TaskInfo.TimingInfo timingInfo = TaskInfo.OneOffInfo.create() - .setWindowStartTimeMs(TIME_100_MIN_TO_MS) - .setWindowEndTimeMs(TIME_200_MIN_TO_MS) - .setExpiresAfterWindowEndTime(true) - .build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo); - assertTrue(task instanceof OneoffTask); - OneoffTask oneOffTask = (OneoffTask) task; - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertEquals(END_TIME_WITH_DEADLINE_S, oneOffTask.getWindowEnd()); - assertEquals(TIME_100_MIN_TO_S, oneOffTask.getWindowStart()); - assertEquals(CLOCK_TIME_MS, - task.getExtras().getLong(BackgroundTaskSchedulerGcmNetworkManager - .BACKGROUND_TASK_SCHEDULE_TIME_KEY)); - assertEquals(TIME_200_MIN_TO_MS, - task.getExtras().getLong( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_END_TIME_KEY)); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskWithoutFlex() { - TaskInfo.TimingInfo timingInfo = - TaskInfo.PeriodicInfo.create().setIntervalMs(TIME_200_MIN_TO_MS).build(); - TaskInfo periodicTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = - BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(periodicTaskInfo); - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertTrue(task instanceof PeriodicTask); - PeriodicTask periodicTask = (PeriodicTask) task; - assertEquals(TIME_200_MIN_TO_S, periodicTask.getPeriod()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskWithFlex() { - TaskInfo.TimingInfo timingInfo = TaskInfo.PeriodicInfo.create() - .setIntervalMs(TIME_200_MIN_TO_MS) - .setFlexMs(TimeUnit.MINUTES.toMillis(50)) - .build(); - TaskInfo periodicTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - Task task = - BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(periodicTaskInfo); - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertTrue(task instanceof PeriodicTask); - PeriodicTask periodicTask = (PeriodicTask) task; - assertEquals(TIME_200_MIN_TO_S, periodicTask.getPeriod()); - assertEquals(TimeUnit.MINUTES.toSeconds(50), periodicTask.getFlex()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testOneOffTaskInfoWithExtras() { - Bundle userExtras = new Bundle(); - userExtras.putString("foo", "bar"); - userExtras.putBoolean("bools", true); - userExtras.putLong("longs", 1342543L); - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_200_MIN_TO_MS).build(); - TaskInfo oneOffTaskInfo = - TaskInfo.createTask(TaskIds.TEST, timingInfo).setExtras(userExtras).build(); - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo); - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertTrue(task instanceof OneoffTask); - - Bundle taskExtras = task.getExtras(); - Bundle bundle = taskExtras.getBundle( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_EXTRAS_KEY); - assertEquals(userExtras.keySet().size(), bundle.keySet().size()); - assertEquals(userExtras.getString("foo"), bundle.getString("foo")); - assertEquals(userExtras.getBoolean("bools"), bundle.getBoolean("bools")); - assertEquals(userExtras.getLong("longs"), bundle.getLong("longs")); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testPeriodicTaskInfoWithExtras() { - Bundle userExtras = new Bundle(); - userExtras.putString("foo", "bar"); - userExtras.putBoolean("bools", true); - userExtras.putLong("longs", 1342543L); - TaskInfo.TimingInfo timingInfo = - TaskInfo.PeriodicInfo.create().setIntervalMs(TIME_200_MIN_TO_MS).build(); - TaskInfo periodicTaskInfo = - TaskInfo.createTask(TaskIds.TEST, timingInfo).setExtras(userExtras).build(); - Task task = - BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(periodicTaskInfo); - assertEquals(Integer.toString(TaskIds.TEST), task.getTag()); - assertTrue(task instanceof PeriodicTask); - - Bundle taskExtras = task.getExtras(); - Bundle bundle = taskExtras.getBundle( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_EXTRAS_KEY); - assertEquals(userExtras.keySet().size(), bundle.keySet().size()); - assertEquals(userExtras.getString("foo"), bundle.getString("foo")); - assertEquals(userExtras.getBoolean("bools"), bundle.getBoolean("bools")); - assertEquals(userExtras.getLong("longs"), bundle.getLong("longs")); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testTaskInfoWithManyConstraints() { - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_200_MIN_TO_MS).build(); - TaskInfo.Builder taskBuilder = TaskInfo.createTask(TaskIds.TEST, timingInfo); - - Task task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo( - taskBuilder.setIsPersisted(true).build()); - assertTrue(task.isPersisted()); - - task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo( - taskBuilder.setRequiredNetworkType(TaskInfo.NetworkType.UNMETERED).build()); - assertEquals(Task.NETWORK_STATE_UNMETERED, task.getRequiredNetwork()); - - task = BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo( - taskBuilder.setRequiresCharging(true).build()); - assertTrue(task.getRequiresCharging()); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testGetTaskParametersFromTaskParams() { - Bundle extras = new Bundle(); - Bundle taskExtras = new Bundle(); - taskExtras.putString("foo", "bar"); - extras.putBundle( - BackgroundTaskSchedulerGcmNetworkManager.BACKGROUND_TASK_EXTRAS_KEY, taskExtras); - - TaskParams params = new TaskParams(Integer.toString(TaskIds.TEST), extras); - - TaskParameters parameters = - BackgroundTaskSchedulerGcmNetworkManager.getTaskParametersFromTaskParams(params); - assertEquals(TaskIds.TEST, parameters.getTaskId()); - assertEquals("bar", parameters.getExtras().getString("foo")); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testGetBackgroundTaskFromTaskParams() { - TaskParams params = new TaskParams(Integer.toString(TaskIds.TEST), new Bundle()); - BackgroundTask backgroundTask = - BackgroundTaskSchedulerFactoryInternal.getBackgroundTaskFromTaskId( - Integer.valueOf(params.getTag())); - - assertNotNull(backgroundTask); - assertTrue(backgroundTask instanceof TestBackgroundTask); - } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testSchedule() { - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_24_H_TO_MS).build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - - assertNull(mGcmNetworkManager.getScheduledTask()); - - BackgroundTaskSchedulerDelegate delegate = new BackgroundTaskSchedulerGcmNetworkManager(); - - assertTrue(delegate.schedule(ContextUtils.getApplicationContext(), oneOffTaskInfo)); - - // Check that a task was scheduled using GCM Network Manager. - assertNotNull(mGcmNetworkManager.getScheduledTask()); - - // Verify details of the scheduled task. - Task scheduledTask = mGcmNetworkManager.getScheduledTask(); - assertTrue(scheduledTask instanceof OneoffTask); - OneoffTask oneOffTask = (OneoffTask) scheduledTask; - - assertEquals(Integer.toString(TaskIds.TEST), scheduledTask.getTag()); - assertEquals(TimeUnit.HOURS.toSeconds(1), oneOffTask.getWindowEnd()); - assertEquals(0, oneOffTask.getWindowStart()); - } - - @Test - @Feature("BackgroundTaskScheduler") - public void testScheduleNoGooglePlayServices() { - ShadowChromiumPlayServicesAvailability.setIsGooglePlayServicesAvailable(false); - - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_24_H_TO_MS).build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - - assertFalse(new BackgroundTaskSchedulerGcmNetworkManager().schedule( - ContextUtils.getApplicationContext(), oneOffTaskInfo)); - } - - @Test - @Feature("BackgroundTaskScheduler") - public void testCancel() { - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_24_H_TO_MS).build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - - BackgroundTaskSchedulerDelegate delegate = new BackgroundTaskSchedulerGcmNetworkManager(); - - assertTrue(delegate.schedule(ContextUtils.getApplicationContext(), oneOffTaskInfo)); - delegate.cancel(ContextUtils.getApplicationContext(), TaskIds.TEST); - - Task canceledTask = mGcmNetworkManager.getCanceledTask(); - assertEquals(Integer.toString(TaskIds.TEST), canceledTask.getTag()); - } - - @Test - @Feature("BackgroundTaskScheduler") - public void testCancelNoGooglePlayServices() { - // This simulates situation where Google Play Services is uninstalled. - ShadowChromiumPlayServicesAvailability.setIsGooglePlayServicesAvailable(false); - - TaskInfo.TimingInfo timingInfo = - TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TIME_24_H_TO_MS).build(); - TaskInfo oneOffTaskInfo = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); - - // Ensure there was a previously scheduled task. - mGcmNetworkManager.schedule( - BackgroundTaskSchedulerGcmNetworkManager.createTaskFromTaskInfo(oneOffTaskInfo)); - - BackgroundTaskSchedulerDelegate delegate = new BackgroundTaskSchedulerGcmNetworkManager(); - - // This call is expected to have no effect on GCM Network Manager, because Play Services are - // not available. - delegate.cancel(ContextUtils.getApplicationContext(), TaskIds.TEST); - assertNull(mGcmNetworkManager.getCanceledTask()); - assertNotNull(mGcmNetworkManager.getScheduledTask()); - } -}
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplTest.java index a859b9d..79809e0 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImplTest.java
@@ -13,10 +13,6 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.os.Build; - -import com.google.android.gms.gcm.GcmNetworkManager; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -24,23 +20,18 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; -import org.robolectric.shadow.api.Shadow; -import org.robolectric.util.ReflectionHelpers; -import org.chromium.base.ContextUtils; import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Feature; import org.chromium.components.background_task_scheduler.BackgroundTaskScheduler; import org.chromium.components.background_task_scheduler.TaskIds; import org.chromium.components.background_task_scheduler.TaskInfo; -import org.chromium.gms.shadows.ShadowChromiumPlayServicesAvailability; import java.util.concurrent.TimeUnit; /** Unit tests for {@link BackgroundTaskScheduler}. */ @RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE, - shadows = {ShadowGcmNetworkManager.class, ShadowChromiumPlayServicesAvailability.class}) +@Config(manifest = Config.NONE) public class BackgroundTaskSchedulerImplTest { @Mock private BackgroundTaskSchedulerDelegate mDelegate; @@ -48,7 +39,6 @@ private BackgroundTaskSchedulerDelegate mAlarmManagerDelegate; @Mock private BackgroundTaskSchedulerUma mBackgroundTaskSchedulerUma; - private ShadowGcmNetworkManager mGcmNetworkManager; private TaskInfo mTask; private TaskInfo mExpirationTask; @@ -62,11 +52,6 @@ BackgroundTaskSchedulerUma.setInstanceForTesting(mBackgroundTaskSchedulerUma); TestBackgroundTask.reset(); - // Initialize Google Play Services and GCM Network Manager for upgrade testing. - ShadowChromiumPlayServicesAvailability.setIsGooglePlayServicesAvailable(true); - mGcmNetworkManager = (ShadowGcmNetworkManager) Shadow.extract( - GcmNetworkManager.getInstance(ContextUtils.getApplicationContext())); - TaskInfo.TimingInfo timingInfo = TaskInfo.OneOffInfo.create().setWindowEndTimeMs(TimeUnit.DAYS.toMillis(1)).build(); mTask = TaskInfo.createTask(TaskIds.TEST, timingInfo).build(); @@ -193,52 +178,4 @@ verify(mAlarmManagerDelegate, times(0)) .cancel(eq(RuntimeEnvironment.application), eq(TaskIds.TEST)); } - - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testCheckForOSUpgrade_PreMToMPlus() { - BackgroundTaskSchedulerPrefs.setLastSdkVersion(Build.VERSION_CODES.LOLLIPOP); - BackgroundTaskSchedulerPrefs.addScheduledTask(mTask); - ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.M); - - BackgroundTaskSchedulerFactoryInternal.getScheduler().checkForOSUpgrade( - RuntimeEnvironment.application); - - assertEquals(Build.VERSION_CODES.M, BackgroundTaskSchedulerPrefs.getLastSdkVersion()); - assertTrue(mGcmNetworkManager.getCanceledTaskTags().contains( - Integer.toString(mTask.getTaskId()))); - assertEquals(1, TestBackgroundTask.getRescheduleCalls()); - } - - /** This scenario tests upgrade from pre-M to pre-M OS, which requires no rescheduling. */ - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testCheckForOSUpgrade_PreMToPreM() { - BackgroundTaskSchedulerPrefs.setLastSdkVersion(Build.VERSION_CODES.KITKAT); - BackgroundTaskSchedulerPrefs.addScheduledTask(mTask); - ReflectionHelpers.setStaticField( - Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.LOLLIPOP); - - BackgroundTaskSchedulerFactoryInternal.getScheduler().checkForOSUpgrade( - RuntimeEnvironment.application); - - assertEquals( - Build.VERSION_CODES.LOLLIPOP, BackgroundTaskSchedulerPrefs.getLastSdkVersion()); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - } - - /** This scenario tests upgrade from M+ to M+ OS, which requires no rescheduling. */ - @Test - @Feature({"BackgroundTaskScheduler"}) - public void testCheckForOSUpgrade_MPlusToMPlus() { - BackgroundTaskSchedulerPrefs.setLastSdkVersion(Build.VERSION_CODES.M); - BackgroundTaskSchedulerPrefs.addScheduledTask(mTask); - ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.N); - - BackgroundTaskSchedulerFactoryInternal.getScheduler().checkForOSUpgrade( - RuntimeEnvironment.application); - - assertEquals(Build.VERSION_CODES.N, BackgroundTaskSchedulerPrefs.getLastSdkVersion()); - assertEquals(0, TestBackgroundTask.getRescheduleCalls()); - } }
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java index 0ca7855..601e92d 100644 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java +++ b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefsTest.java
@@ -10,14 +10,12 @@ import static org.junit.Assert.assertTrue; import android.content.SharedPreferences; -import android.os.Build; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; import org.robolectric.annotation.LooperMode; -import org.robolectric.util.ReflectionHelpers; import org.chromium.base.ContextUtils; import org.chromium.base.test.BaseRobolectricTestRunner; @@ -172,18 +170,6 @@ @Test @Feature("BackgroundTaskScheduler") - public void testLastSdkVersion() { - ReflectionHelpers.setStaticField( - Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.KITKAT); - assertEquals("Current SDK version should be default.", Build.VERSION_CODES.KITKAT, - BackgroundTaskSchedulerPrefs.getLastSdkVersion()); - BackgroundTaskSchedulerPrefs.setLastSdkVersion(Build.VERSION_CODES.LOLLIPOP); - assertEquals( - Build.VERSION_CODES.LOLLIPOP, BackgroundTaskSchedulerPrefs.getLastSdkVersion()); - } - - @Test - @Feature("BackgroundTaskScheduler") public void testMigrationToProto() { SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); Set<String> scheduledTasks = prefs.getStringSet(
diff --git a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/ShadowGcmNetworkManager.java b/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/ShadowGcmNetworkManager.java deleted file mode 100644 index 5dc6557b..0000000 --- a/components/background_task_scheduler/internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/ShadowGcmNetworkManager.java +++ /dev/null
@@ -1,64 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.components.background_task_scheduler.internal; - -import com.google.android.gms.gcm.GcmNetworkManager; -import com.google.android.gms.gcm.GcmTaskService; -import com.google.android.gms.gcm.Task; - -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; - -import java.util.HashSet; -import java.util.Set; - -/** - * Custom shadow for the OS's GcmNetworkManager. We use this to hook the call to GcmNetworkManager - * to make sure it was invoked as we expect. - */ -@Implements(GcmNetworkManager.class) -public class ShadowGcmNetworkManager { - private Task mTask; - private Task mCanceledTask; - private Set<String> mCanceledTaskTags; - - public ShadowGcmNetworkManager() { - mCanceledTaskTags = new HashSet<>(); - } - - @Implementation - public void schedule(Task task) { - mTask = task; - mCanceledTask = null; - } - - @Implementation - public void cancelTask(String tag, Class<? extends GcmTaskService> gcmTaskService) { - if (mTask != null && mTask.getTag().equals(tag) - && mTask.getServiceName().equals(gcmTaskService.getName())) { - mCanceledTask = mTask; - mTask = null; - } - mCanceledTaskTags.add(tag); - } - - public Task getScheduledTask() { - return mTask; - } - - public Task getCanceledTask() { - return mCanceledTask; - } - - public Set<String> getCanceledTaskTags() { - return mCanceledTaskTags; - } - - public void clear() { - mTask = null; - mCanceledTask = null; - mCanceledTaskTags = new HashSet<>(); - } -}
diff --git a/components/background_task_scheduler/internal/proto/scheduled_task.proto b/components/background_task_scheduler/internal/proto/scheduled_task.proto index 461bd6f..b2e1990d 100644 --- a/components/background_task_scheduler/internal/proto/scheduled_task.proto +++ b/components/background_task_scheduler/internal/proto/scheduled_task.proto
@@ -66,16 +66,16 @@ // Extras for the BackgroundTask, stored for an ExactTask. OneOffTask and // PeriodicTask objects store their extras through their scheduling backend - // (JobScheduler and GcmNetworkManager). + // JobScheduler. repeated ExtraItem extras = 3; // Required network type, stored for an ExactTask. OneOffTask and PeriodicTask // objects store their required network type through their scheduling backend - // (JobScheduler and GCMNetworkManager). + // JobScheduler. RequiredNetworkType required_network_type = 4; // Bool representing whether the task requires charging. Stored for an // ExactTask. OneOffTask and PeriodicTask objects store this info through - // their scheduling backend (JobScheduler and GCMNetworkManager). + // their scheduling backend JobScheduler. bool requires_charging = 5; -} \ No newline at end of file +}
diff --git a/components/breadcrumbs/core/breadcrumb_manager.cc b/components/breadcrumbs/core/breadcrumb_manager.cc index 787dc86..d06ef72 100644 --- a/components/breadcrumbs/core/breadcrumb_manager.cc +++ b/components/breadcrumbs/core/breadcrumb_manager.cc
@@ -53,7 +53,15 @@ void BreadcrumbManager::SetPreviousSessionEvents( const std::vector<std::string>& events) { - breadcrumbs_.insert(breadcrumbs_.begin(), events.begin(), events.end()); + // Insert `events` into the event log, skipping the oldest events (which are + // at the front) if needed to keep the event log below `kMaxBreadcrumbs`. + const size_t breadcrumbs_capacity = kMaxBreadcrumbs - breadcrumbs_.size(); + const size_t breadcrumbs_to_insert = + std::min(events.size(), breadcrumbs_capacity); + + breadcrumbs_.insert(breadcrumbs_.begin(), + events.end() - breadcrumbs_to_insert, events.end()); + for (auto& observer : observers_) { observer.PreviousSessionEventsAdded(); }
diff --git a/components/breadcrumbs/core/breadcrumb_manager_unittest.cc b/components/breadcrumbs/core/breadcrumb_manager_unittest.cc index 8a706a94..eb13a0a8 100644 --- a/components/breadcrumbs/core/breadcrumb_manager_unittest.cc +++ b/components/breadcrumbs/core/breadcrumb_manager_unittest.cc
@@ -5,7 +5,9 @@ #include "components/breadcrumbs/core/breadcrumb_manager.h" #include <string> +#include <vector> +#include "base/strings/string_number_conversions.h" #include "base/test/task_environment.h" #include "base/time/time.h" #include "testing/gtest/include/gtest/gtest.h" @@ -20,6 +22,10 @@ BreadcrumbManager::GetInstance().AddEvent(event); } +void SetPreviousSessionEvents(const std::vector<std::string>& events) { + BreadcrumbManager::GetInstance().SetPreviousSessionEvents(events); +} + } // namespace // Test fixture for testing BreadcrumbManager class. @@ -77,4 +83,57 @@ EXPECT_EQ("101:41:40 event4", events.back()); } +// Tests that previous session events are inserted at the start of the event +// log. +TEST_F(BreadcrumbManagerTest, SetPreviousSessionEvents) { + const auto& events = BreadcrumbManager::GetInstance().GetEvents(); + ASSERT_EQ(0u, events.size()); + + std::vector<std::string> previous_events; + previous_events.push_back("0:00:00 event 1"); + previous_events.push_back("0:00:00 event 2"); + SetPreviousSessionEvents(previous_events); + + // The previous session events should have been added to the event log. + EXPECT_EQ(2u, events.size()); + EXPECT_EQ("0:00:00 event 1", events.front()); + EXPECT_EQ("0:00:00 event 2", events.back()); + + previous_events.clear(); + previous_events.push_back("0:00:00 event 3"); + SetPreviousSessionEvents(previous_events); + + // The previous session events should be at the front of the event log. + EXPECT_EQ(3u, events.size()); + EXPECT_EQ("0:00:00 event 3", events.front()); +} + +// Tests that no more than `kMaxBreadcrumbs` events are stored after previous +// session events are retrieved. +TEST_F(BreadcrumbManagerTest, SetPreviousSessionEventsMaxEvents) { + const auto& events = BreadcrumbManager::GetInstance().GetEvents(); + AddEvent("current event"); + ASSERT_EQ(1u, events.size()); + + // Set the previous session events to a large list of events, such that the + // event log will become oversized when it's inserted. + const std::string previous_event = "0:00:00 previous event "; + std::vector<std::string> oversized_events; + oversized_events.reserve(kMaxBreadcrumbs); + int previous_event_num = 1; + for (size_t i = 0u; i < kMaxBreadcrumbs; i++) { + oversized_events.push_back(previous_event + + base::NumberToString(previous_event_num)); + previous_event_num++; + } + ASSERT_EQ(kMaxBreadcrumbs, oversized_events.size()); + SetPreviousSessionEvents(oversized_events); + + // The oldest previous event should have been removed to keep the number of + // events limited to `kMaxBreadcrumbs`. + EXPECT_EQ(kMaxBreadcrumbs, events.size()); + EXPECT_EQ("0:00:00 previous event 2", events.front()); + EXPECT_EQ("0:00:00 current event", events.back()); +} + } // namespace breadcrumbs
diff --git a/components/cast_streaming/browser/playback_command_dispatcher.cc b/components/cast_streaming/browser/playback_command_dispatcher.cc index 639f342..7be837bc4 100644 --- a/components/cast_streaming/browser/playback_command_dispatcher.cc +++ b/components/cast_streaming/browser/playback_command_dispatcher.cc
@@ -71,7 +71,7 @@ renderer_call_translator_->set_handle(AcquireHandle()); demuxer_stream_handler_ = std::make_unique<remoting::RpcDemuxerStreamHandler>( - this, + task_runner_, this, base::BindRepeating(&PlaybackCommandDispatcher::AcquireHandle, base::Unretained(this)), base::BindRepeating(
diff --git a/components/cast_streaming/browser/rpc_demuxer_stream_handler.cc b/components/cast_streaming/browser/rpc_demuxer_stream_handler.cc index 4c014bf..517a2492 100644 --- a/components/cast_streaming/browser/rpc_demuxer_stream_handler.cc +++ b/components/cast_streaming/browser/rpc_demuxer_stream_handler.cc
@@ -8,6 +8,7 @@ #include "base/functional/bind.h" #include "base/logging.h" +#include "base/task/sequenced_task_runner.h" #include "components/cast_streaming/public/remoting_message_factories.h" #include "third_party/openscreen/src/cast/streaming/remoting.pb.h" @@ -15,17 +16,23 @@ namespace { // The number of frames requested in each ReadUntil RPC message. -constexpr int kNumFramesInEachReadUntil = 16; +constexpr int kNumFramesInEachReadUntil = 24; + +// Minimum frequency with which RPC_DS_READUNTIL RPC messages may be sent. +constexpr base::TimeDelta kMinReadUntilCallFequency = base::Milliseconds(200); } // namespace RpcDemuxerStreamHandler::RpcDemuxerStreamHandler( + scoped_refptr<base::SequencedTaskRunner> task_runner, Client* client, HandleFactory handle_factory, RpcProcessMessageCB process_message_cb) - : client_(client), + : task_runner_(std::move(task_runner)), + client_(client), handle_factory_(std::move(handle_factory)), process_message_cb_(std::move(process_message_cb)) { + DCHECK(task_runner_); DCHECK(handle_factory_); DCHECK(process_message_cb_); } @@ -39,7 +46,7 @@ // initialize the DemuxerStreams. if (audio_stream_handle != openscreen::cast::RpcMessenger::kInvalidHandle) { audio_message_processor_ = std::make_unique<MessageProcessor>( - client_, process_message_cb_, handle_factory_.Run(), + task_runner_, client_, process_message_cb_, handle_factory_.Run(), audio_stream_handle, MessageProcessor::Type::kAudio); std::unique_ptr<openscreen::cast::RpcMessage> message = remoting::CreateMessageForDemuxerStreamInitialize( @@ -50,7 +57,7 @@ if (video_stream_handle != openscreen::cast::RpcMessenger::kInvalidHandle) { video_message_processor_ = std::make_unique<MessageProcessor>( - client_, process_message_cb_, handle_factory_.Run(), + task_runner_, client_, process_message_cb_, handle_factory_.Run(), video_stream_handle, MessageProcessor::Type::kVideo); std::unique_ptr<openscreen::cast::RpcMessage> message = remoting::CreateMessageForDemuxerStreamInitialize( @@ -158,17 +165,20 @@ RpcDemuxerStreamHandler::Client::~Client() = default; RpcDemuxerStreamHandler::MessageProcessor::MessageProcessor( + scoped_refptr<base::SequencedTaskRunner> task_runner, Client* client, RpcProcessMessageCB process_message_cb, openscreen::cast::RpcMessenger::Handle local_handle, openscreen::cast::RpcMessenger::Handle remote_handle, Type type) - : client_(client), + : task_runner_(std::move(task_runner)), + client_(client), process_message_cb_(std::move(process_message_cb)), local_handle_(local_handle), remote_handle_(remote_handle), type_(type), weak_factory_(this) { + DCHECK(task_runner_); DCHECK(client_); DCHECK_NE(local_handle_, openscreen::cast::RpcMessenger::kInvalidHandle); DCHECK_NE(remote_handle_, openscreen::cast::RpcMessenger::kInvalidHandle); @@ -242,7 +252,18 @@ set_read_until_call_pending(); auto message = CreateMessageForDemuxerStreamReadUntil( local_handle(), total_frames_received() + kNumFramesInEachReadUntil); - process_message_cb_.Run(remote_handle(), std::move(message)); + + const auto now = base::TimeTicks::Now(); + auto remaining_time = (last_request_time_ + kMinReadUntilCallFequency) - now; + if (remaining_time < base::Microseconds(0)) { + remaining_time = base::Microseconds(0); + } + + task_runner_->PostDelayedTask( + FROM_HERE, + base::BindOnce(process_message_cb_, remote_handle(), std::move(message)), + remaining_time); + last_request_time_ = now + remaining_time; } void RpcDemuxerStreamHandler::MessageProcessor::OnError() {
diff --git a/components/cast_streaming/browser/rpc_demuxer_stream_handler.h b/components/cast_streaming/browser/rpc_demuxer_stream_handler.h index fab91e8..162dee3 100644 --- a/components/cast_streaming/browser/rpc_demuxer_stream_handler.h +++ b/components/cast_streaming/browser/rpc_demuxer_stream_handler.h
@@ -9,13 +9,19 @@ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" +#include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" +#include "base/time/time.h" #include "components/cast_streaming/browser/demuxer_stream_client.h" #include "components/cast_streaming/public/rpc_call_message_handler.h" #include "media/base/audio_decoder_config.h" #include "media/base/video_decoder_config.h" #include "third_party/openscreen/src/cast/streaming/rpc_messenger.h" +namespace base { +class SequencedTaskRunner; +} // namespace base + namespace openscreen::cast { class RpcMessage; } // namespace openscreen::cast @@ -44,7 +50,8 @@ using RpcProcessMessageCB = base::RepeatingCallback<void( openscreen::cast::RpcMessenger::Handle, std::unique_ptr<openscreen::cast::RpcMessage>)>; - RpcDemuxerStreamHandler(Client* client, + RpcDemuxerStreamHandler(scoped_refptr<base::SequencedTaskRunner> task_runner, + Client* client, HandleFactory handle_factory, RpcProcessMessageCB process_message_cb); @@ -78,7 +85,8 @@ // |remote_handle| is the handle received from the remote sender in the // OnRpcAcquiredDemuxer() call and used as the handle for sending messages // back to the sender. - MessageProcessor(Client* client, + MessageProcessor(scoped_refptr<base::SequencedTaskRunner> task_runner, + Client* client, RpcProcessMessageCB process_message_cb, openscreen::cast::RpcMessenger::Handle local_handle, openscreen::cast::RpcMessenger::Handle remote_handle, @@ -115,6 +123,9 @@ void OnNoBuffersAvailable() override; void OnError() override; + base::TimeTicks last_request_time_; + + scoped_refptr<base::SequencedTaskRunner> task_runner_; raw_ptr<Client> client_; RpcProcessMessageCB process_message_cb_; openscreen::cast::RpcMessenger::Handle local_handle_; @@ -149,6 +160,7 @@ openscreen::cast::RpcMessenger::Handle handle, bool succeeded) override; + scoped_refptr<base::SequencedTaskRunner> task_runner_; const raw_ptr<Client> client_; HandleFactory handle_factory_; RpcProcessMessageCB process_message_cb_;
diff --git a/components/cast_streaming/browser/rpc_demuxer_stream_handler_unittests.cc b/components/cast_streaming/browser/rpc_demuxer_stream_handler_unittests.cc index e39c7078..b7a553f 100644 --- a/components/cast_streaming/browser/rpc_demuxer_stream_handler_unittests.cc +++ b/components/cast_streaming/browser/rpc_demuxer_stream_handler_unittests.cc
@@ -7,6 +7,7 @@ #include <memory> #include <utility> +#include "base/test/task_environment.h" #include "media/base/audio_codecs.h" #include "media/base/audio_decoder_config.h" #include "media/base/buffering_state.h" @@ -94,6 +95,7 @@ media::EmptyExtraData(), media::EncryptionScheme::kUnencrypted), stream_handler_( + task_environment_.GetMainThreadTaskRunner(), &client_, base::BindRepeating(&RpcDemuxerStreamHandlerTest::GetHandle, base::Unretained(this)), @@ -198,6 +200,9 @@ base::Unretained(this))); } + base::test::SingleThreadTaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + openscreen::cast::RpcMessenger::Handle audio_remote_handle_ = 123; openscreen::cast::RpcMessenger::Handle video_remote_handle_ = 456; @@ -287,10 +292,15 @@ }); OnRpcReadUntilCallback(audio_local_handle_, test_audio_config_, absl::nullopt, uint32_t{1}); + EXPECT_CALL(*this, SendMessage(_, _)) .WillOnce( CheckReadUntilCall(audio_remote_handle_, audio_local_handle_, 1)); RequestMoreAudioBuffers(); + task_environment_.RunUntilIdle(); + + RequestMoreAudioBuffers(); + task_environment_.RunUntilIdle(); EXPECT_CALL(client_, OnNewAudioConfig(_)) .WillOnce([this](media::AudioDecoderConfig config) { @@ -298,10 +308,15 @@ }); OnRpcReadUntilCallback(audio_local_handle_, test_audio_config_, absl::nullopt, uint32_t{17}); + + RequestMoreAudioBuffers(); EXPECT_CALL(*this, SendMessage(_, _)) .WillOnce( CheckReadUntilCall(audio_remote_handle_, audio_local_handle_, 17)); + task_environment_.FastForwardBy(base::Seconds(1)); + RequestMoreAudioBuffers(); + task_environment_.RunUntilIdle(); } TEST_F(RpcDemuxerStreamHandlerTest, RequestMoreVideoBuffers) { @@ -311,10 +326,15 @@ }); OnRpcReadUntilCallback(video_local_handle_, absl::nullopt, test_video_config_, uint32_t{12}); + EXPECT_CALL(*this, SendMessage(_, _)) .WillOnce( CheckReadUntilCall(video_remote_handle_, video_local_handle_, 12)); RequestMoreVideoBuffers(); + task_environment_.RunUntilIdle(); + + RequestMoreVideoBuffers(); + task_environment_.RunUntilIdle(); EXPECT_CALL(client_, OnNewVideoConfig(_)) .WillOnce([this](media::VideoDecoderConfig config) { @@ -322,10 +342,15 @@ }); OnRpcReadUntilCallback(video_local_handle_, absl::nullopt, test_video_config_, uint32_t{42}); + + RequestMoreVideoBuffers(); EXPECT_CALL(*this, SendMessage(_, _)) .WillOnce( CheckReadUntilCall(video_remote_handle_, video_local_handle_, 42)); + task_environment_.FastForwardBy(base::Seconds(1)); + RequestMoreVideoBuffers(); + task_environment_.RunUntilIdle(); } TEST_F(RpcDemuxerStreamHandlerTest, OnAudioError) {
diff --git a/components/enterprise/browser/device_trust/device_trust_key_manager.h b/components/enterprise/browser/device_trust/device_trust_key_manager.h index 4a2390f..e9cf4130 100644 --- a/components/enterprise/browser/device_trust/device_trust_key_manager.h +++ b/components/enterprise/browser/device_trust/device_trust_key_manager.h
@@ -21,18 +21,24 @@ public: virtual ~DeviceTrustKeyManager() = default; + enum class KeyRotationResult { + SUCCESS = 0, + FAILURE = 1, + CANCELLATION = 2, + }; + + enum class PermanentFailure { + kCreationUploadConflict = 0, + kInsufficientPermissions = 1 + }; + struct KeyMetadata { enterprise_management::BrowserPublicKeyUploadRequest::KeyTrustLevel trust_level{}; crypto::SignatureVerifier::SignatureAlgorithm algorithm{}; std::string spki_bytes{}; absl::optional<int> synchronization_response_code = absl::nullopt; - }; - - enum class KeyRotationResult { - SUCCESS = 0, - FAILURE = 1, - CANCELLATION = 2, + absl::optional<PermanentFailure> permanent_failure = absl::nullopt; }; // Starts the initialization of the manager which includes trying to load the @@ -63,6 +69,12 @@ // Returns KeyMetadata for the currently loaded key. If no key is loaded, // returns absl::nullopt. virtual absl::optional<KeyMetadata> GetLoadedKeyMetadata() const = 0; + + // Returns true if the manager hit a permanent failure for which retrying + // would do no good. Permanent failures will prevent retrying for the lifespan + // of the browser process. The browser will retry key creation again upon + // restart. + virtual bool HasPermanentFailure() const = 0; }; } // namespace enterprise_connectors
diff --git a/components/exo/wayland/BUILD.gn b/components/exo/wayland/BUILD.gn index 6028ac39..29931ca 100644 --- a/components/exo/wayland/BUILD.gn +++ b/components/exo/wayland/BUILD.gn
@@ -238,10 +238,14 @@ sources = [ "zcr_ui_controls.cc" ] deps = [ ":wayland", + "//ash", "//base", + "//base/test:test_support", "//components/exo", "//third_party/wayland:wayland_server", "//third_party/wayland-protocols:ui_controls_protocol", + "//ui/base:test_support", + "//ui/events", ] }
diff --git a/components/exo/wayland/zcr_ui_controls.cc b/components/exo/wayland/zcr_ui_controls.cc index e5b286c..1d8b502 100644 --- a/components/exo/wayland/zcr_ui_controls.cc +++ b/components/exo/wayland/zcr_ui_controls.cc
@@ -8,21 +8,66 @@ #include <ui-controls-unstable-v1-server-protocol.h> #include <wayland-server-core.h> +#include "ash/shell.h" +#include "base/logging.h" #include "base/notreached.h" +#include "base/test/bind.h" #include "components/exo/wayland/server.h" +#include "components/exo/wayland/server_util.h" +#include "ui/base/test/ui_controls.h" +#include "ui/events/keycodes/dom/keycode_converter.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" namespace exo::wayland { +struct UiControls::UiControlsState { + UiControlsState() = default; + UiControlsState(const UiControlsState&) = delete; + UiControlsState& operator=(const UiControlsState&) = delete; + + // Keeps track of the IDs of pending requests for that we still need to emit + // request_processed events. This is per wl_resource so that we can drop + // pending requests for a resource when the resource is destroyed. + std::map<wl_resource*, std::set<uint32_t>> pending_request_ids_; +}; + namespace { +using UiControlsState = UiControls::UiControlsState; + constexpr uint32_t kUiControlsVersion = 1; +base::OnceClosure UpdateStateAndBindEmitProcessed(struct wl_resource* resource, + uint32_t id) { + auto* state = GetUserDataAs<UiControlsState>(resource); + auto pending_request_ids = + state->pending_request_ids_.try_emplace(resource).first->second; + pending_request_ids.insert(id); + + return base::BindLambdaForTesting([=]() { + // Ensure |resource| hasn't been destroyed in the meantime. + if (base::Contains(state->pending_request_ids_, resource)) { + zcr_ui_controls_v1_send_request_processed(resource, id); + state->pending_request_ids_[resource].erase(id); + } + }); +} + void ui_controls_send_key_press(struct wl_client* client, struct wl_resource* resource, uint32_t key, uint32_t pressed_modifiers, uint32_t id) { - NOTIMPLEMENTED(); + auto emit_processed = UpdateStateAndBindEmitProcessed(resource, id); + auto* window = ash::Shell::GetPrimaryRootWindow(); + auto dom_code = ui::KeycodeConverter::EvdevCodeToDomCode(key); + auto key_code = ui::DomCodeToUsLayoutNonLocatedKeyboardCode(dom_code); + bool control = (pressed_modifiers & ZCR_UI_CONTROLS_V1_MODIFIER_CONTROL) != 0; + bool shift = (pressed_modifiers & ZCR_UI_CONTROLS_V1_MODIFIER_SHIFT) != 0; + bool alt = (pressed_modifiers & ZCR_UI_CONTROLS_V1_MODIFIER_ALT) != 0; + ui_controls::SendKeyPressNotifyWhenDone(window, key_code, control, shift, alt, + /*command=*/false, + std::move(emit_processed)); } void ui_controls_send_mouse_move(struct wl_client* client, @@ -31,7 +76,15 @@ int32_t y, struct wl_resource* surface, uint32_t id) { - NOTIMPLEMENTED(); + if (surface) { + LOG(WARNING) + << "The `surface` parameter for ui_controls.send_mouse_move should be " + "NULL on LaCrOS, but it isn't. Why aren't we using screen " + "coordinates?"; + } + + auto emit_processed = UpdateStateAndBindEmitProcessed(resource, id); + ui_controls::SendMouseMoveNotifyWhenDone(x, y, std::move(emit_processed)); } void ui_controls_send_mouse_button(struct wl_client* client, @@ -40,7 +93,10 @@ uint32_t button_state, uint32_t pressed_modifiers, uint32_t id) { - NOTIMPLEMENTED(); + auto emit_processed = UpdateStateAndBindEmitProcessed(resource, id); + ui_controls::SendMouseEventsNotifyWhenDone( + static_cast<ui_controls::MouseButton>(button), button_state, + std::move(emit_processed), pressed_modifiers); } void ui_controls_send_touch(struct wl_client* client, @@ -51,7 +107,15 @@ int32_t y, struct wl_resource* surface, uint32_t id) { - NOTIMPLEMENTED(); + if (surface) { + LOG(WARNING) + << "The `surface` parameter for ui_controls.send_touch should be NULL " + "on LaCrOS, but it isn't. Why aren't we using screen coordinates?"; + } + + auto emit_processed = UpdateStateAndBindEmitProcessed(resource, id); + ui_controls::SendTouchEventsNotifyWhenDone(action, touch_id, x, y, + std::move(emit_processed)); } void ui_controls_set_toplevel_bounds(struct wl_client* client, @@ -61,6 +125,8 @@ int32_t y, uint32_t width, uint32_t height) { + // Exo supports aura_shell, which already has an equivalent request. This + // request only needs to be implemented by Weston. NOTIMPLEMENTED(); } @@ -69,6 +135,11 @@ ui_controls_send_mouse_button, ui_controls_send_touch, ui_controls_set_toplevel_bounds}; +void destroy_ui_controls_resource(struct wl_resource* resource) { + auto* state = GetUserDataAs<UiControlsState>(resource); + state->pending_request_ids_.erase(resource); +} + void bind_ui_controls(wl_client* client, void* data, uint32_t version, @@ -77,14 +148,15 @@ wl_resource_create(client, &zcr_ui_controls_v1_interface, version, id); wl_resource_set_implementation(resource, &ui_controls_implementation, data, - nullptr); + destroy_ui_controls_resource); } } // namespace -UiControls::UiControls(Server* server) { +UiControls::UiControls(Server* server) + : state_(std::make_unique<UiControlsState>()) { wl_global_create(server->GetWaylandDisplay(), &zcr_ui_controls_v1_interface, - kUiControlsVersion, nullptr, bind_ui_controls); + kUiControlsVersion, state_.get(), bind_ui_controls); } UiControls::~UiControls() = default;
diff --git a/components/exo/wayland/zcr_ui_controls.h b/components/exo/wayland/zcr_ui_controls.h index 25cc701..7967a7c 100644 --- a/components/exo/wayland/zcr_ui_controls.h +++ b/components/exo/wayland/zcr_ui_controls.h
@@ -5,6 +5,8 @@ #ifndef COMPONENTS_EXO_WAYLAND_ZCR_UI_CONTROLS_H_ #define COMPONENTS_EXO_WAYLAND_ZCR_UI_CONTROLS_H_ +#include <memory> + #include "base/component_export.h" namespace exo::wayland { @@ -16,6 +18,12 @@ UiControls(const UiControls&) = delete; UiControls& operator=(const UiControls&) = delete; ~UiControls(); + + // Tracks button and mouse states as well as pending requests testing. + struct UiControlsState; + + private: + std::unique_ptr<UiControlsState> state_; }; } // namespace exo::wayland
diff --git a/components/exo/wayland/zcr_ui_controls_stub.cc b/components/exo/wayland/zcr_ui_controls_stub.cc index ae218c8d..e720f456 100644 --- a/components/exo/wayland/zcr_ui_controls_stub.cc +++ b/components/exo/wayland/zcr_ui_controls_stub.cc
@@ -10,4 +10,6 @@ UiControls::~UiControls() = default; +struct UiControls::UiControlsState {}; + } // namespace exo::wayland
diff --git a/components/headless/command_handler/BUILD.gn b/components/headless/command_handler/BUILD.gn index 35b481a..5f3917f9 100644 --- a/components/headless/command_handler/BUILD.gn +++ b/components/headless/command_handler/BUILD.gn
@@ -33,7 +33,6 @@ deps = [ "//base", - "//base:i18n", "//components/devtools/simple_devtools_protocol_client", "//content", "//content/public/app",
diff --git a/components/history/core/browser/features.cc b/components/history/core/browser/features.cc index 7216cb00..37d4f62 100644 --- a/components/history/core/browser/features.cc +++ b/components/history/core/browser/features.cc
@@ -4,30 +4,45 @@ #include "components/history/core/browser/features.h" +#include "build/build_config.h" #include "components/history/core/browser/top_sites_impl.h" namespace history { +namespace { +constexpr auto kOrganicRepeatableQueriesDefaultValue = + BUILDFLAG(IS_ANDROID) ? base::FEATURE_ENABLED_BY_DEFAULT + : base::FEATURE_DISABLED_BY_DEFAULT; + +// Specifies the scaling behavior, i.e. whether the relevance scales of the +// top sites and repeatable queries should be first aligned. +// The default behavior is to mix the two lists as is. +constexpr bool kScaleRepeatableQueriesScoresDefaultValue = + BUILDFLAG(IS_ANDROID) ? true : false; + +// Defines the maximum number of repeatable queries that can be shown. +// The default behavior is having no limit, i.e., the number of the tiles. +constexpr int kMaxNumRepeatableQueriesDefaultValue = + BUILDFLAG(IS_ANDROID) ? 4 : kTopSitesNumber; +} // namespace // If enabled, the most repeated queries from the user browsing history are // shown in the Most Visited tiles. BASE_FEATURE(kOrganicRepeatableQueries, "OrganicRepeatableQueries", - base::FEATURE_DISABLED_BY_DEFAULT); + kOrganicRepeatableQueriesDefaultValue); // The maximum number of repeatable queries to show in the Most Visited tiles. -// The default behavior is having no limit, i.e., the number of the tiles. const base::FeatureParam<int> kMaxNumRepeatableQueries( &kOrganicRepeatableQueries, "MaxNumRepeatableQueries", - kTopSitesNumber); + kMaxNumRepeatableQueriesDefaultValue); // Whether the scores for the repeatable queries and the most visited sites // should first be scaled to an equivalent range before mixing. -// The default behavior is to mix the two lists as is. const base::FeatureParam<bool> kScaleRepeatableQueriesScores( &kOrganicRepeatableQueries, "ScaleRepeatableQueriesScores", - false); + kScaleRepeatableQueriesScoresDefaultValue); // Whether a repeatable query should precede a most visited site with equal // score. The default behavior is for the sites to precede the queries.
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc index 8042995..66ea8963 100644 --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -648,6 +648,9 @@ } // Omnibox UI simplification - Uniform Suggestion Row Heights +bool OmniboxFieldTrial::IsSquareSuggestIconEnabled() { + return base::FeatureList::IsEnabled(omnibox::kSquareSuggestIcons); +} bool OmniboxFieldTrial::IsUniformRowHeightEnabled() { return base::FeatureList::IsEnabled(omnibox::kUniformRowHeight);
diff --git a/components/omnibox/browser/omnibox_field_trial.h b/components/omnibox/browser/omnibox_field_trial.h index 715a7c4..d7f2bb1 100644 --- a/components/omnibox/browser/omnibox_field_trial.h +++ b/components/omnibox/browser/omnibox_field_trial.h
@@ -369,6 +369,9 @@ // scopes for Site Search. bool IsSiteSearchStarterPackEnabled(); +// Omnibox UI Simplification - Square icon backgrounds. +bool IsSquareSuggestIconEnabled(); + // Omnibox UI simplification - uniform row heights. // Returns true if the feature to enable uniform row height is enabled. bool IsUniformRowHeightEnabled();
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc index 40fd5bc..166b2b1 100644 --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc
@@ -411,6 +411,12 @@ "OmniboxMostVisitedTilesAddRecycledViewPool", base::FEATURE_DISABLED_BY_DEFAULT); +// If enabled, adds a grey square background to search icons, and makes answer +// icon square instead of round. +BASE_FEATURE(kSquareSuggestIcons, + "OmniboxSquareIcons", + base::FEATURE_DISABLED_BY_DEFAULT); + // If enabled, forces omnibox suggestion rows to be uniformly sized. BASE_FEATURE(kUniformRowHeight, "OmniboxUniformRowHeight", @@ -451,6 +457,7 @@ BASE_FEATURE(kDefaultTypedNavigationsToHttps, "OmniboxDefaultTypedNavigationsToHttps", enabled_by_default_desktop_android); + // Parameter name used to look up the delay before falling back to the HTTP URL // while trying an HTTPS URL. The parameter is treated as a TimeDelta, so the // unit must be included in the value as well (e.g. 3s for 3 seconds).
diff --git a/components/omnibox/common/omnibox_features.h b/components/omnibox/common/omnibox_features.h index 78bcfa3f..551e12f 100644 --- a/components/omnibox/common/omnibox_features.h +++ b/components/omnibox/common/omnibox_features.h
@@ -96,6 +96,7 @@ BASE_DECLARE_FEATURE(kOmniboxDefaultBrowserPedal); BASE_DECLARE_FEATURE(kOmniboxMatchToolbarAndStatusBarColor); BASE_DECLARE_FEATURE(kOmniboxMostVisitedTilesAddRecycledViewPool); +BASE_DECLARE_FEATURE(kSquareSuggestIcons); BASE_DECLARE_FEATURE(kUniformRowHeight); BASE_DECLARE_FEATURE(kWebUIOmniboxPopup);
diff --git a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc index 152f7a3f..b56d5b3 100644 --- a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc +++ b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc
@@ -147,7 +147,7 @@ WebFeature::kTrustTokenXhr, WebFeature::kTrustTokenFetch, WebFeature::kTrustTokenIframe, - WebFeature::kV8Document_HasTrustToken_Method, + WebFeature::kV8Document_HasPrivateToken_Method, WebFeature::kV8HTMLVideoElement_RequestVideoFrameCallback_Method, WebFeature::kV8HTMLVideoElement_CancelVideoFrameCallback_Method, WebFeature::kSchemefulSameSiteContextDowngrade,
diff --git a/components/password_manager/core/browser/password_list_sorter.cc b/components/password_manager/core/browser/password_list_sorter.cc index b14e3587..6b0f625d 100644 --- a/components/password_manager/core/browser/password_list_sorter.cc +++ b/components/password_manager/core/browser/password_list_sorter.cc
@@ -89,22 +89,27 @@ } std::string CreateUsernamePasswordSortKey(const PasswordForm& form) { + return CreateUsernamePasswordSortKey(CredentialUIEntry(form)); +} + +std::string CreateUsernamePasswordSortKey(const CredentialUIEntry& credential) { std::string key; // The origin isn't taken into account for normal credentials since we want to // group them together. - if (!form.blocked_by_user) { - key += base::UTF16ToUTF8(form.username_value) + kSortKeyPartsSeparator + - base::UTF16ToUTF8(form.password_value); + if (!credential.blocked_by_user) { + key += base::UTF16ToUTF8(credential.username) + kSortKeyPartsSeparator + + base::UTF16ToUTF8(credential.password); key += kSortKeyPartsSeparator; - if (!form.federation_origin.opaque()) - key += form.federation_origin.host(); - else + if (!credential.federation_origin.opaque()) { + key += credential.federation_origin.host(); + } else { key += kSortKeyNoFederationSymbol; + } } else { // Key for blocked by user credential since it does not store username and // password. These credentials are not grouped together. - key = GetShownOrigin(CredentialUIEntry(form)); + key = GetShownOrigin(credential); } return key; }
diff --git a/components/password_manager/core/browser/password_list_sorter.h b/components/password_manager/core/browser/password_list_sorter.h index a809b9c6..0ccfca8 100644 --- a/components/password_manager/core/browser/password_list_sorter.h +++ b/components/password_manager/core/browser/password_list_sorter.h
@@ -37,6 +37,8 @@ // Creates a key to map passwords within an affiliated group with the same // username and password. std::string CreateUsernamePasswordSortKey(const PasswordForm& form); +// Same as |CreateUsernamePasswordSortKey| for |PasswordForm|. +std::string CreateUsernamePasswordSortKey(const CredentialUIEntry& credential); // Sort entries of |list| based on sort key. The key is the concatenation of // origin, entry type (non-Android credential, Android w/ affiliated web realm
diff --git a/components/password_manager/core/browser/ui/password_grouping_util.cc b/components/password_manager/core/browser/ui/password_grouping_util.cc index 50103678..5af69cd 100644 --- a/components/password_manager/core/browser/ui/password_grouping_util.cc +++ b/components/password_manager/core/browser/ui/password_grouping_util.cc
@@ -43,6 +43,29 @@ PasswordGroupingInfo& PasswordGroupingInfo::operator=( PasswordGroupingInfo&& other) = default; +std::vector<PasswordForm> PasswordGroupingInfo::GetPasswordFormsVector( + const CredentialUIEntry& credential) const { + std::vector<PasswordForm> forms; + auto group_id_iterator = map_signon_realm_to_group_id.find( + SignonRealm(credential.GetFirstSignonRealm())); + if (group_id_iterator == map_signon_realm_to_group_id.end()) { + return forms; + } + GroupId group_id = group_id_iterator->second; + auto group_iterator = map_group_id_to_forms.find(group_id); + if (group_iterator == map_group_id_to_forms.end()) { + return forms; + } + std::map<UsernamePasswordKey, std::vector<PasswordForm>> map = + group_iterator->second; + auto forms_iterator = + map.find(UsernamePasswordKey(CreateUsernamePasswordSortKey(credential))); + if (forms_iterator != map.end()) { + forms = forms_iterator->second; + } + return forms; +} + FacetBrandingInfo CreateBrandingInfoFromFacetURI( const CredentialUIEntry& credential) { FacetBrandingInfo branding_info;
diff --git a/components/password_manager/core/browser/ui/password_grouping_util.h b/components/password_manager/core/browser/ui/password_grouping_util.h index 9a787334..45148c83 100644 --- a/components/password_manager/core/browser/ui/password_grouping_util.h +++ b/components/password_manager/core/browser/ui/password_grouping_util.h
@@ -41,6 +41,19 @@ // Structure to keep track of the blocked sites by user. They are not grouped // into affiliated groups. std::vector<password_manager::CredentialUIEntry> blocked_sites; + + // Call clear method on all the variables in this struct. + void clear() { + map_signon_realm_to_group_id.clear(); + map_group_id_to_branding_info.clear(); + map_group_id_to_forms.clear(); + blocked_sites.clear(); + } + + // Returns the vector of PasswordForm corresponding to the CredentialUIEntry + // object. + std::vector<PasswordForm> GetPasswordFormsVector( + const CredentialUIEntry& credential) const; }; // Apply grouping algorithm to credentials. The grouping algorithm group
diff --git a/components/password_manager/core/browser/ui/saved_passwords_presenter.cc b/components/password_manager/core/browser/ui/saved_passwords_presenter.cc index 543cf4ce..9fda875c 100644 --- a/components/password_manager/core/browser/ui/saved_passwords_presenter.cc +++ b/components/password_manager/core/browser/ui/saved_passwords_presenter.cc
@@ -129,6 +129,7 @@ void SavedPasswordsPresenter::Init() { // Clear old cache. sort_key_to_password_forms_.clear(); + password_grouping_info_.clear(); profile_store_->AddObserver(this); if (account_store_) @@ -155,24 +156,21 @@ bool SavedPasswordsPresenter::RemoveCredential( const CredentialUIEntry& credential) { - const auto range = - sort_key_to_password_forms_.equal_range(CreateSortKey(credential)); - bool removed = false; + std::vector<PasswordForm> forms_to_delete = + GetCorrespondingPasswordForms(credential); undo_helper_->StartGroupingActions(); - std::for_each(range.first, range.second, [&](const auto& pair) { - const auto& current_form = pair.second; + for (const auto& current_form : forms_to_delete) { // Make sure |credential| and |current_form| share the same store. if (credential.stored_in.contains(current_form.in_store)) { // |current_form| is unchanged result obtained from - // 'OnGetPasswordStoreResultsFrom'. So it can be present only in one store - // at a time.. + // 'OnGetPasswordStoreResultsFrom'. So it can be present only in one + // store at a time. GetStoreFor(current_form).RemoveLogin(current_form); undo_helper_->PasswordRemoved(current_form); - removed = true; } - }); + } undo_helper_->EndGroupingActions(); - return removed; + return !forms_to_delete.empty(); } void SavedPasswordsPresenter::UndoLastRemoval() { @@ -463,11 +461,17 @@ std::vector<PasswordForm> SavedPasswordsPresenter::GetCorrespondingPasswordForms( const CredentialUIEntry& credential) const { - const auto range = - sort_key_to_password_forms_.equal_range(CreateSortKey(credential)); std::vector<PasswordForm> forms; - base::ranges::transform(range.first, range.second, std::back_inserter(forms), - [](const auto& pair) { return pair.second; }); + if (base::FeatureList::IsEnabled( + password_manager::features::kPasswordsGrouping)) { + forms = password_grouping_info_.GetPasswordFormsVector(credential); + } else { + const auto range = + sort_key_to_password_forms_.equal_range(CreateSortKey(credential)); + base::ranges::transform(range.first, range.second, + std::back_inserter(forms), + [](const auto& pair) { return pair.second; }); + } return forms; }
diff --git a/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc b/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc index 5b3652b..d4d66b0 100644 --- a/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc +++ b/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc
@@ -12,6 +12,7 @@ #include "base/scoped_observation.h" #include "base/strings/utf_string_conversions.h" #include "base/test/bind.h" +#include "base/test/gmock_callback_support.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/mock_callback.h" #include "base/test/scoped_feature_list.h" @@ -1513,6 +1514,98 @@ ElementsAre(profile_store_form)))); } +// Tests whether editing passwords in a credential group modify them properly. +TEST_F(SavedPasswordsPresenterTest, EditPasswordsInCredentialGroup) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + password_manager::features::kPasswordsGrouping); + + PasswordForm form = + CreateTestPasswordForm(PasswordForm::Store::kProfileStore); + PasswordForm form2 = + CreateTestPasswordForm(PasswordForm::Store::kProfileStore); + form2.url = GURL("https://m.test0.com"); + form2.signon_realm = form2.url.spec(); + + store().AddLogin(form); + store().AddLogin(form2); + + std::vector<password_manager::GroupedFacets> grouped_facets(1); + Facet facet; + facet.uri = FacetURI::FromPotentiallyInvalidSpec(form.signon_realm); + grouped_facets[0].facets.push_back(std::move(facet)); + Facet facet2; + facet2.uri = FacetURI::FromPotentiallyInvalidSpec(form2.signon_realm); + grouped_facets[0].facets.push_back(std::move(facet2)); + EXPECT_CALL(affiliation_service(), GetAllGroups) + .WillRepeatedly(base::test::RunOnceCallback<0>(grouped_facets)); + + RunUntilIdle(); + + std::vector<PasswordForm> original_forms = {form, form2}; + CredentialUIEntry original_credential(original_forms); + + // Prepare updated credential. + const std::u16string new_password = u"new_password"; + CredentialUIEntry updated_credential(original_forms); + updated_credential.password = new_password; + + // Expect successful passwords editing. + EXPECT_EQ(SavedPasswordsPresenter::EditResult::kSuccess, + presenter().EditSavedCredentials(CredentialUIEntry({form, form2}), + updated_credential)); + base::Time date_password_modified = base::Time::Now(); + RunUntilIdle(); + + // Prepare expected updated forms. + PasswordForm updated1 = form; + updated1.password_value = new_password; + updated1.date_password_modified = date_password_modified; + PasswordForm updated2 = form2; + updated2.password_value = new_password; + updated2.date_password_modified = date_password_modified; + + EXPECT_THAT(store().stored_passwords(), + UnorderedElementsAre( + Pair(form.signon_realm, UnorderedElementsAre(updated1)), + Pair(form2.signon_realm, ElementsAre(updated2)))); +} + +// Tests whether deleting passwords in a credential group works properly. +TEST_F(SavedPasswordsPresenterTest, DeletePasswordsInCredentialGroup) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + password_manager::features::kPasswordsGrouping); + + PasswordForm form = + CreateTestPasswordForm(PasswordForm::Store::kProfileStore); + PasswordForm form2 = + CreateTestPasswordForm(PasswordForm::Store::kProfileStore); + form2.url = GURL("https://m.test0.com"); + form2.signon_realm = form2.url.spec(); + + store().AddLogin(form); + store().AddLogin(form2); + + std::vector<password_manager::GroupedFacets> grouped_facets(1); + Facet facet; + facet.uri = FacetURI::FromPotentiallyInvalidSpec(form.signon_realm); + grouped_facets[0].facets.push_back(std::move(facet)); + Facet facet2; + facet2.uri = FacetURI::FromPotentiallyInvalidSpec(form2.signon_realm); + grouped_facets[0].facets.push_back(std::move(facet2)); + EXPECT_CALL(affiliation_service(), GetAllGroups) + .WillRepeatedly(base::test::RunOnceCallback<0>(grouped_facets)); + + RunUntilIdle(); + + // Delete credential with multiple facets. + presenter().RemoveCredential(CredentialUIEntry({form, form2})); + RunUntilIdle(); + + EXPECT_TRUE(store().IsEmpty()); +} + // Tests that duplicates of credentials are removed only from the store that // the initial credential belonged to. TEST_F(SavedPasswordsPresenterWithTwoStoresTest, DeleteCredentialProfileStore) {
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc index de8b377..79c681e 100644 --- a/components/password_manager/core/common/password_manager_features.cc +++ b/components/password_manager/core/common/password_manager_features.cc
@@ -106,6 +106,12 @@ BASE_FEATURE(kIOSPasswordManagerCrossOriginIframeSupport, "IOSPasswordManagerCrossOriginIframeSupport", base::FEATURE_DISABLED_BY_DEFAULT); + +// Enables displaying and managing compromised, weak and reused credentials in +// the Password Manager. +BASE_FEATURE(kIOSPasswordCheckup, + "IOSPasswordCheckup", + base::FEATURE_DISABLED_BY_DEFAULT); #endif // IS_IOS // Enables (un)muting compromised passwords from bulk leak check in settings.
diff --git a/components/password_manager/core/common/password_manager_features.h b/components/password_manager/core/common/password_manager_features.h index b99f6004a..bdf0e57 100644 --- a/components/password_manager/core/common/password_manager_features.h +++ b/components/password_manager/core/common/password_manager_features.h
@@ -43,6 +43,7 @@ #if BUILDFLAG(IS_IOS) BASE_DECLARE_FEATURE(kIOSPasswordUISplit); BASE_DECLARE_FEATURE(kIOSPasswordManagerCrossOriginIframeSupport); +BASE_DECLARE_FEATURE(kIOSPasswordCheckup); #endif // IS_IOS BASE_DECLARE_FEATURE(kMuteCompromisedPasswords); BASE_DECLARE_FEATURE(kNewRegexForOtpFields);
diff --git a/components/permissions/contexts/window_management_permission_context.cc b/components/permissions/contexts/window_management_permission_context.cc index c1c5abf..3c905eb 100644 --- a/components/permissions/contexts/window_management_permission_context.cc +++ b/components/permissions/contexts/window_management_permission_context.cc
@@ -4,7 +4,9 @@ #include "components/permissions/contexts/window_management_permission_context.h" +#include "base/feature_list.h" #include "components/content_settings/core/common/content_settings_types.h" +#include "components/permissions/features.h" #include "components/permissions/permission_request_id.h" #include "content/public/browser/render_frame_host.h" #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom.h" @@ -17,7 +19,7 @@ : PermissionContextBase( browser_context, ContentSettingsType::WINDOW_MANAGEMENT, - blink::mojom::PermissionsPolicyFeature::kWindowPlacement) {} + blink::mojom::PermissionsPolicyFeature::kWindowManagement) {} WindowManagementPermissionContext::~WindowManagementPermissionContext() = default;
diff --git a/components/permissions/features.cc b/components/permissions/features.cc index f139d2f5..251d95d 100644 --- a/components/permissions/features.cc +++ b/components/permissions/features.cc
@@ -120,6 +120,13 @@ #endif // BUILDFLAG(IS_ANDROID) +// When enabled "window-management" may be used as an alias for +// "window-placement". Additionally, reverse mappings (i.e. enum to string) will +// default to the new alias. +BASE_FEATURE(kWindowManagementPermissionAlias, + "WindowManagementPermissionAlias", + base::FEATURE_DISABLED_BY_DEFAULT); + } // namespace features namespace feature_params {
diff --git a/components/permissions/features.h b/components/permissions/features.h index 093ab50..c12d327 100644 --- a/components/permissions/features.h +++ b/components/permissions/features.h
@@ -70,6 +70,9 @@ #endif // BUILDFLAG(IS_ANDROID) +COMPONENT_EXPORT(PERMISSIONS_COMMON) +BASE_DECLARE_FEATURE(kWindowManagementPermissionAlias); + } // namespace features namespace feature_params {
diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc index 7d98e5d..cb870c9 100644 --- a/components/permissions/permission_uma_util.cc +++ b/components/permissions/permission_uma_util.cc
@@ -159,7 +159,7 @@ case RequestTypeForUma::PERMISSION_CAMERA_PAN_TILT_ZOOM: return "CameraPanTiltZoom"; case RequestTypeForUma::PERMISSION_WINDOW_MANAGEMENT: - return "WindowPlacement"; + return "WindowManagement"; case RequestTypeForUma::PERMISSION_LOCAL_FONTS: return "LocalFonts"; case RequestTypeForUma::PERMISSION_IDLE_DETECTION:
diff --git a/components/permissions/request_type.cc b/components/permissions/request_type.cc index 8ef7546..f7d5b4d 100644 --- a/components/permissions/request_type.cc +++ b/components/permissions/request_type.cc
@@ -5,10 +5,12 @@ #include "components/permissions/request_type.h" #include "base/check.h" +#include "base/feature_list.h" #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "build/build_config.h" #include "components/content_settings/core/common/content_settings_types.h" +#include "components/permissions/features.h" #include "components/permissions/permission_request.h" #include "components/permissions/permissions_client.h" @@ -349,7 +351,12 @@ return "vr_session"; #if !BUILDFLAG(IS_ANDROID) case permissions::RequestType::kWindowManagement: - return "window_placement"; + if (base::FeatureList::IsEnabled( + features::kWindowManagementPermissionAlias)) { + return "window_management"; + } else { + return "window_placement"; + } #endif }
diff --git a/components/policy/resources/webui/BUILD.gn b/components/policy/resources/webui/BUILD.gn index 91fd9f7..9b84361 100644 --- a/components/policy/resources/webui/BUILD.gn +++ b/components/policy/resources/webui/BUILD.gn
@@ -2,16 +2,102 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//tools/grit/grit_rule.gni") +import("//tools/grit/preprocess_if_expr.gni") import("//tools/polymer/html_to_wrapper.gni") +import("//tools/typescript/ts_library.gni") +import("//ui/webui/resources/tools/generate_grd.gni") + +preprocess_dir = "${target_gen_dir}/preprocessed" +tsc_dir = "${target_gen_dir}/tsc" + +static_files = [ + "policy.css", + "policy.html", +] + +# TODO(b/265198461): Migrate to TypeScript and then simplify the build setup by +# leveraging build_webui(). +web_component_files = [ + "policy_conflict.js", + "policy_row.js", + "policy_precedence_row.js", + "policy_table.js", + "status_box.js", +] + +html_files = [] +foreach(f, web_component_files) { + html_files += [ string_replace(f, ".js", ".html") ] +} + +html_wrapper_files = [] +foreach(f, html_files) { + html_wrapper_files += [ f + ".js" ] +} + +non_web_component_files = [ + "policy_base.js", + "policy.js", +] + +preprocess_if_expr("preprocess_static_files") { + in_folder = "." + out_folder = preprocess_dir + in_files = static_files + out_manifest = "${target_gen_dir}/preprocess_static_files_manifest.json" +} + +preprocess_if_expr("preprocess") { + in_folder = "." + out_folder = preprocess_dir + in_files = html_files + web_component_files + non_web_component_files +} html_to_wrapper("html_wrapper_files") { - in_files = [ - "policy_conflict.html", - "policy_row.html", - "policy_precedence_row.html", - "policy_table.html", - "status_box.html", - ] + in_folder = preprocess_dir + out_folder = preprocess_dir + in_files = html_files template = "native" use_js = true + deps = [ ":preprocess" ] +} + +ts_library("build_ts") { + root_dir = preprocess_dir + out_dir = tsc_dir + tsconfig_base = "tsconfig_base.json" + + in_files = html_wrapper_files + web_component_files + non_web_component_files + + extra_deps = [ + ":html_wrapper_files", + ":preprocess", + ] +} + +generate_grd("build_grd") { + grd_prefix = "policy" + out_grd = "$target_gen_dir/resources.grd" + + deps = [ ":preprocess_static_files" ] + manifest_files = [ "${target_gen_dir}/preprocess_static_files_manifest.json" ] + + deps += [ ":build_ts" ] + manifest_files += + filter_include(get_target_outputs(":build_ts"), [ "*.manifest" ]) +} + +grit("resources") { + # These arguments are needed since the grd is generated at build time. + enable_input_discovery_for_gn_analyze = false + source = "$target_gen_dir/resources.grd" + deps = [ ":build_grd" ] + outputs = [ + "grit/policy_resources.h", + "grit/policy_resources_map.cc", + "grit/policy_resources_map.h", + "policy_resources.pak", + ] + output_dir = "$root_gen_dir/components" }
diff --git a/components/policy/resources/webui/tsconfig_base.json b/components/policy/resources/webui/tsconfig_base.json new file mode 100644 index 0000000..e03f617 --- /dev/null +++ b/components/policy/resources/webui/tsconfig_base.json
@@ -0,0 +1,8 @@ +{ + "extends": "../../../../tools/typescript/tsconfig_base.json", + "compilerOptions": { + "allowJs": true, + "noUnusedLocals": false, + "strictPropertyInitialization": false + } +}
diff --git a/components/power_bookmarks/common/search_params.h b/components/power_bookmarks/common/search_params.h index e61f5da1..f1f8a677 100644 --- a/components/power_bookmarks/common/search_params.h +++ b/components/power_bookmarks/common/search_params.h
@@ -15,6 +15,9 @@ struct SearchParams { // Specifies a plain text query that will be matched against the contents of // powers. The exact semantics of matching depend on the power type. + // + // TODO(crbug.com/1376612): add an option to *not* look for matches in the URL + // string. std::string query; // Unless equal to POWER_TYPE_UNSPECIFIED, narrows the search to a single
diff --git a/components/power_bookmarks/core/power_bookmark_service.cc b/components/power_bookmarks/core/power_bookmark_service.cc index 5ead4524..47c6144b 100644 --- a/components/power_bookmarks/core/power_bookmark_service.cc +++ b/components/power_bookmarks/core/power_bookmark_service.cc
@@ -65,10 +65,19 @@ .Then(std::move(callback)); } -void PowerBookmarkService::Search(const SearchParams& search_params, - PowersCallback callback) { +void PowerBookmarkService::SearchPowers(const SearchParams& search_params, + PowersCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - backend_.AsyncCall(&PowerBookmarkBackend::Search) + backend_.AsyncCall(&PowerBookmarkBackend::SearchPowers) + .WithArgs(search_params) + .Then(std::move(callback)); +} + +void PowerBookmarkService::SearchPowerOverviews( + const SearchParams& search_params, + PowerOverviewsCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + backend_.AsyncCall(&PowerBookmarkBackend::SearchPowerOverviews) .WithArgs(search_params) .Then(std::move(callback)); }
diff --git a/components/power_bookmarks/core/power_bookmark_service.h b/components/power_bookmarks/core/power_bookmark_service.h index abeff25..adb477a 100644 --- a/components/power_bookmarks/core/power_bookmark_service.h +++ b/components/power_bookmarks/core/power_bookmark_service.h
@@ -81,7 +81,18 @@ // Returns a vector of Powers matching the given `search_params`. The results // are ordered by the url they're associated with. - void Search(const SearchParams& search_params, PowersCallback callback); + void SearchPowers(const SearchParams& search_params, PowersCallback callback); + + // Returns a vector of PowerOverviews matching the given `search_params`. The + // results: + // - are ordered by their url and PowerType. + // - have the same `PowerOverview.count` value as if returned by + // GetPowerOverviewsForType - which is the number of Powers with the same + // url and type. + // - have the `PowerOverview.power` that is the most recently modified Power + // which matches the `search_params`. + void SearchPowerOverviews(const SearchParams& search_params, + PowerOverviewsCallback callback); // Create the given `power` in the database. If it already exists, then it // will be updated. Success of the operation is returned through the given
diff --git a/components/power_bookmarks/core/power_bookmark_service_unittest.cc b/components/power_bookmarks/core/power_bookmark_service_unittest.cc index 3bdb990..8548118 100644 --- a/components/power_bookmarks/core/power_bookmark_service_unittest.cc +++ b/components/power_bookmarks/core/power_bookmark_service_unittest.cc
@@ -203,7 +203,7 @@ RunUntilIdle(); } -TEST_F(PowerBookmarkServiceTest, Search) { +TEST_F(PowerBookmarkServiceTest, SearchPowers) { base::MockCallback<SuccessCallback> success_cb; EXPECT_CALL(success_cb, Run(IsTrue())).Times(3); @@ -225,11 +225,11 @@ EXPECT_CALL(powers_cb, Run(SizeIs(2))); SearchParams search_params{.query = "/a"}; - service()->Search(search_params, powers_cb.Get()); + service()->SearchPowers(search_params, powers_cb.Get()); RunUntilIdle(); } -TEST_F(PowerBookmarkServiceTest, SearchNoteText) { +TEST_F(PowerBookmarkServiceTest, SearchPowersNoteText) { base::MockCallback<SuccessCallback> success_cb; EXPECT_CALL(success_cb, Run(IsTrue())).Times(2); @@ -259,7 +259,33 @@ EXPECT_CALL(powers_cb, Run(SizeIs(1))); SearchParams search_params{.query = "lorem"}; - service()->Search(search_params, powers_cb.Get()); + service()->SearchPowers(search_params, powers_cb.Get()); + RunUntilIdle(); +} + +TEST_F(PowerBookmarkServiceTest, SearchPowerOverviews) { + base::MockCallback<SuccessCallback> success_cb; + EXPECT_CALL(success_cb, Run(IsTrue())).Times(3); + + service()->CreatePower( + MakePower(GURL("https://example.com/a1.html"), + sync_pb::PowerBookmarkSpecifics::POWER_TYPE_MOCK), + success_cb.Get()); + service()->CreatePower( + MakePower(GURL("https://example.com/b1.html"), + sync_pb::PowerBookmarkSpecifics::POWER_TYPE_MOCK), + success_cb.Get()); + service()->CreatePower( + MakePower(GURL("https://example.com/a1.html"), + sync_pb::PowerBookmarkSpecifics::POWER_TYPE_MOCK), + success_cb.Get()); + RunUntilIdle(); + + base::MockCallback<PowerOverviewsCallback> result_cb; + EXPECT_CALL(result_cb, Run(SizeIs(1))); + + SearchParams search_params{.query = "/a"}; + service()->SearchPowerOverviews(search_params, result_cb.Get()); RunUntilIdle(); }
diff --git a/components/power_bookmarks/storage/empty_power_bookmark_database.cc b/components/power_bookmarks/storage/empty_power_bookmark_database.cc index fecb418..11a854a 100644 --- a/components/power_bookmarks/storage/empty_power_bookmark_database.cc +++ b/components/power_bookmarks/storage/empty_power_bookmark_database.cc
@@ -40,6 +40,12 @@ return std::vector<std::unique_ptr<Power>>(); } +std::vector<std::unique_ptr<PowerOverview>> +EmptyPowerBookmarkDatabase::GetPowerOverviewsForSearchParams( + const SearchParams& search_params) { + return std::vector<std::unique_ptr<PowerOverview>>(); +} + bool EmptyPowerBookmarkDatabase::CreatePower(std::unique_ptr<Power> power) { return false; }
diff --git a/components/power_bookmarks/storage/empty_power_bookmark_database.h b/components/power_bookmarks/storage/empty_power_bookmark_database.h index 9c45632..49b24a69 100644 --- a/components/power_bookmarks/storage/empty_power_bookmark_database.h +++ b/components/power_bookmarks/storage/empty_power_bookmark_database.h
@@ -34,6 +34,8 @@ const sync_pb::PowerBookmarkSpecifics::PowerType& power_type) override; std::vector<std::unique_ptr<Power>> GetPowersForSearchParams( const SearchParams& search_params) override; + std::vector<std::unique_ptr<PowerOverview>> GetPowerOverviewsForSearchParams( + const SearchParams& search_params) override; bool CreatePower(std::unique_ptr<Power> power) override; bool UpdatePower(std::unique_ptr<Power> power) override; bool DeletePower(const base::GUID& guid) override;
diff --git a/components/power_bookmarks/storage/power_bookmark_backend.cc b/components/power_bookmarks/storage/power_bookmark_backend.cc index e633a44..ef6f6d3 100644 --- a/components/power_bookmarks/storage/power_bookmark_backend.cc +++ b/components/power_bookmarks/storage/power_bookmark_backend.cc
@@ -75,12 +75,18 @@ return db_->GetPowerOverviewsForType(power_type); } -std::vector<std::unique_ptr<Power>> PowerBookmarkBackend::Search( +std::vector<std::unique_ptr<Power>> PowerBookmarkBackend::SearchPowers( const SearchParams& search_params) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return db_->GetPowersForSearchParams(search_params); } +std::vector<std::unique_ptr<PowerOverview>> +PowerBookmarkBackend::SearchPowerOverviews(const SearchParams& search_params) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + return db_->GetPowerOverviewsForSearchParams(search_params); +} + bool PowerBookmarkBackend::CreatePower(std::unique_ptr<Power> power) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/components/power_bookmarks/storage/power_bookmark_backend.h b/components/power_bookmarks/storage/power_bookmark_backend.h index 8a6368c..a90b60f 100644 --- a/components/power_bookmarks/storage/power_bookmark_backend.h +++ b/components/power_bookmarks/storage/power_bookmark_backend.h
@@ -51,7 +51,12 @@ const sync_pb::PowerBookmarkSpecifics::PowerType& power_type); // Returns a vector of Powers matching the given `search_params`. - std::vector<std::unique_ptr<Power>> Search(const SearchParams& search_params); + std::vector<std::unique_ptr<Power>> SearchPowers( + const SearchParams& search_params); + + // Returns a vector of PowerOverviews matching the given `search_params`. + std::vector<std::unique_ptr<PowerOverview>> SearchPowerOverviews( + const SearchParams& search_params); // Create the given `power` in the database. If it already exists, then it // will be updated. Returns whether the operation was successful.
diff --git a/components/power_bookmarks/storage/power_bookmark_database.h b/components/power_bookmarks/storage/power_bookmark_database.h index 1a1d5d2..ad7ef52b 100644 --- a/components/power_bookmarks/storage/power_bookmark_database.h +++ b/components/power_bookmarks/storage/power_bookmark_database.h
@@ -43,6 +43,10 @@ virtual std::vector<std::unique_ptr<Power>> GetPowersForSearchParams( const SearchParams& search_params) = 0; + // Returns a vector of PowerOverviews for the given `search_params`. + virtual std::vector<std::unique_ptr<PowerOverview>> + GetPowerOverviewsForSearchParams(const SearchParams& search_params) = 0; + // Create the given `power` in the database. If it already exists, then it // will be updated. Returns whether the operation was successful. virtual bool CreatePower(std::unique_ptr<Power> power) = 0;
diff --git a/components/power_bookmarks/storage/power_bookmark_database_impl.cc b/components/power_bookmarks/storage/power_bookmark_database_impl.cc index 04c772f..e14105db 100644 --- a/components/power_bookmarks/storage/power_bookmark_database_impl.cc +++ b/components/power_bookmarks/storage/power_bookmark_database_impl.cc
@@ -4,6 +4,7 @@ #include "components/power_bookmarks/storage/power_bookmark_database_impl.h" +#include "base/check.h" #include "base/files/file_util.h" #include "base/notreached.h" #include "base/strings/pattern.h" @@ -375,6 +376,82 @@ return search_results; } +std::vector<std::unique_ptr<PowerOverview>> +PowerBookmarkDatabaseImpl::GetPowerOverviewsForSearchParams( + const SearchParams& search_params) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // TODO(crbug.com/1382855): Optimize this query to avoid SCAN TABLE. + static constexpr char kGetPowerOverviewsForSearchParamsSql[] = + // clang-format off + "SELECT blobs.id, blobs.specifics, url, power_type " + "FROM blobs JOIN saves ON blobs.id=saves.id " + "ORDER BY url ASC, power_type ASC, time_modified DESC"; + // clang-format on + DCHECK(db_.IsSQLValid(kGetPowerOverviewsForSearchParamsSql)); + + sql::Statement statement(db_.GetCachedStatement( + SQL_FROM_HERE, kGetPowerOverviewsForSearchParamsSql)); + + std::vector<std::unique_ptr<PowerOverview>> search_results; + // Between loop iterations these are the URL and PowerType of the last seen + // power. + std::string prev_url; + sync_pb::PowerBookmarkSpecifics::PowerType prev_power_type = + sync_pb::PowerBookmarkSpecifics::POWER_TYPE_UNSPECIFIED; + // Between loop iterations this is the matched power that will be used to make + // a PowerOverview. If set, it must match `prev_url` and `prev_power_type`. + std::unique_ptr<Power> first_matching_power; + // Between loop iterations this is the total count powers seen with + // `prev_power_type` and `prev_url`. + size_t overview_count = 0; + while (statement.Step()) { + DCHECK_EQ(4, statement.ColumnCount()); + + std::string current_url = statement.ColumnString(2); + sync_pb::PowerBookmarkSpecifics::PowerType current_power_type = + (sync_pb::PowerBookmarkSpecifics::PowerType)statement.ColumnInt(3); + + if (current_url == prev_url && current_power_type == prev_power_type) { + overview_count++; + // Skip matching, if we already have a match for this URL and PowerType. + if (first_matching_power) { + continue; + } + } else { + // We've scanned all powers for this URL and PowerType pair - saving the + // matched power if we have one. + if (first_matching_power) { + search_results.emplace_back(std::make_unique<PowerOverview>( + std::move(first_matching_power), overview_count)); + } + DCHECK(!first_matching_power); + prev_url = current_url; + prev_power_type = current_power_type; + overview_count = 1; + } + + absl::optional<sync_pb::PowerBookmarkSpecifics> specifics = + DeserializeOrDelete( + statement.ColumnString(1), + base::GUID::ParseLowercase(statement.ColumnString(0))); + if (!specifics.has_value()) { + continue; + } + if (!MatchesSearchParams(specifics.value(), search_params)) { + continue; + } + + first_matching_power = CreatePowerFromSpecifics(specifics.value()); + } + + if (first_matching_power) { + search_results.emplace_back(std::make_unique<PowerOverview>( + std::move(first_matching_power), overview_count)); + } + return search_results; +} + bool PowerBookmarkDatabaseImpl::CreatePower(std::unique_ptr<Power> power) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/components/power_bookmarks/storage/power_bookmark_database_impl.h b/components/power_bookmarks/storage/power_bookmark_database_impl.h index ee5b514..68cb2ad 100644 --- a/components/power_bookmarks/storage/power_bookmark_database_impl.h +++ b/components/power_bookmarks/storage/power_bookmark_database_impl.h
@@ -41,6 +41,8 @@ const sync_pb::PowerBookmarkSpecifics::PowerType& power_type) override; std::vector<std::unique_ptr<Power>> GetPowersForSearchParams( const SearchParams& search_params) override; + std::vector<std::unique_ptr<PowerOverview>> GetPowerOverviewsForSearchParams( + const SearchParams& search_params) override; bool CreatePower(std::unique_ptr<Power> power) override; bool UpdatePower(std::unique_ptr<Power> power) override; bool DeletePower(const base::GUID& guid) override;
diff --git a/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc b/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc index 1964e9b..3010c461 100644 --- a/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc +++ b/components/power_bookmarks/storage/power_bookmark_database_impl_unittest.cc
@@ -96,6 +96,21 @@ return false; } +bool ContainsPowerOverview( + const std::vector<std::unique_ptr<PowerOverview>>& list, + sync_pb::PowerBookmarkSpecifics::PowerType power_type, + GURL url, + size_t count) { + for (const std::unique_ptr<PowerOverview>& power_overview : list) { + if (power_overview->power()->power_type() == power_type && + power_overview->power()->url() == url && + power_overview->count() == count) { + return true; + } + } + return false; +} + } // namespace class PowerBookmarkDatabaseImplTest : public testing::Test { @@ -628,17 +643,15 @@ EXPECT_TRUE(pbdb->Init()); EXPECT_TRUE(pbdb->CreatePower( - MakePower(GURL("https://example.com/a1.html"), - sync_pb::PowerBookmarkSpecifics::POWER_TYPE_MOCK))); + MakePower(GURL("https://example.com/a1.html"), kMockType))); { std::unique_ptr<sync_pb::PowerEntity> note_specifics = std::make_unique<sync_pb::PowerEntity>(); note_specifics->mutable_note_entity()->set_plain_text("lorem ipsum"); - EXPECT_TRUE(pbdb->CreatePower( - MakePower(GURL("https://example.com/a2.html"), - sync_pb::PowerBookmarkSpecifics::POWER_TYPE_NOTE, - std::move(note_specifics)))); + EXPECT_TRUE( + pbdb->CreatePower(MakePower(GURL("https://example.com/a2.html"), + kNoteType, std::move(note_specifics)))); } SearchParams search_params{ @@ -647,11 +660,153 @@ pbdb->GetPowersForSearchParams(search_params); EXPECT_EQ(1u, search_results.size()); - EXPECT_TRUE(ContainsPower(search_results, - sync_pb::PowerBookmarkSpecifics::POWER_TYPE_MOCK, + EXPECT_TRUE(ContainsPower(search_results, kMockType, GURL("https://example.com/a1.html"))); } +TEST_F(PowerBookmarkDatabaseImplTest, GetPowerOverviewsForSearchParams) { + std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = + std::make_unique<PowerBookmarkDatabaseImpl>(db_dir()); + EXPECT_TRUE(pbdb->Init()); + + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kNoteType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a3.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/a1.html"), kMockType))); + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/b1.html"), kMockType))); + + SearchParams search_params{.query = "/a"}; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(3u, search_results.size()); + EXPECT_TRUE(ContainsPowerOverview(search_results, kMockType, + GURL("https://example.com/a3.html"), 2)); + EXPECT_TRUE(ContainsPowerOverview(search_results, kNoteType, + GURL("https://example.com/a3.html"), 1)); + EXPECT_TRUE(ContainsPowerOverview(search_results, kMockType, + GURL("https://example.com/a1.html"), 1)); +} + +TEST_F(PowerBookmarkDatabaseImplTest, + GetPowerOverviewsForSearchParamsMatchNoteText) { + std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = + std::make_unique<PowerBookmarkDatabaseImpl>(db_dir()); + EXPECT_TRUE(pbdb->Init()); + + { + std::unique_ptr<sync_pb::PowerEntity> note_specifics = + std::make_unique<sync_pb::PowerEntity>(); + note_specifics->mutable_note_entity()->set_plain_text("lorem ipsum 1"); + std::unique_ptr<Power> note_power = + MakePower(GURL("https://example.com/a1.html"), kNoteType, + std::move(note_specifics)); + note_power->set_time_modified(base::Time::FromTimeT(1100000000)); + EXPECT_TRUE(pbdb->CreatePower(std::move(note_power))); + } + { + std::unique_ptr<sync_pb::PowerEntity> note_specifics = + std::make_unique<sync_pb::PowerEntity>(); + note_specifics->mutable_note_entity()->set_plain_text("lorem ipsum 2"); + std::unique_ptr<Power> note_power = + MakePower(GURL("https://example.com/a1.html"), kNoteType, + std::move(note_specifics)); + note_power->set_time_modified(base::Time::FromTimeT(1200000000)); + EXPECT_TRUE(pbdb->CreatePower(std::move(note_power))); + } + { + std::unique_ptr<sync_pb::PowerEntity> note_specifics = + std::make_unique<sync_pb::PowerEntity>(); + note_specifics->mutable_note_entity()->set_plain_text("lorem ipsum 3"); + std::unique_ptr<Power> note_power = + MakePower(GURL("https://example.com/a1.html"), kNoteType, + std::move(note_specifics)); + note_power->set_time_modified(base::Time::FromTimeT(1300000000)); + EXPECT_TRUE(pbdb->CreatePower(std::move(note_power))); + } + { + std::unique_ptr<sync_pb::PowerEntity> note_specifics = + std::make_unique<sync_pb::PowerEntity>(); + note_specifics->mutable_note_entity()->set_plain_text("only ipsum"); + std::unique_ptr<Power> note_power = + MakePower(GURL("https://example.com/a1.html"), kNoteType, + std::move(note_specifics)); + note_power->set_time_modified(base::Time::FromTimeT(1400000000)); + EXPECT_TRUE(pbdb->CreatePower(std::move(note_power))); + } + EXPECT_TRUE(pbdb->CreatePower( + MakePower(GURL("https://example.com/lorem_ipsum.html"), kMockType))); + + // Test matches URL. + { + SearchParams search_params{.query = "lorem"}; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(2u, search_results.size()); + EXPECT_TRUE( + ContainsPowerOverview(search_results, kMockType, + GURL("https://example.com/lorem_ipsum.html"), 1)); + EXPECT_TRUE(ContainsPowerOverview(search_results, kNoteType, + GURL("https://example.com/a1.html"), 4)); + } + // Test doesn't match the latest power. + { + SearchParams search_params{ + .query = "lorem", + .power_type = kNoteType, + }; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(1u, search_results.size()); + EXPECT_TRUE(ContainsPowerOverview(search_results, kNoteType, + GURL("https://example.com/a1.html"), 4)); + EXPECT_EQ("lorem ipsum 3", search_results.at(0) + ->power() + ->power_entity() + ->note_entity() + .plain_text()); + EXPECT_EQ(base::Time::FromTimeT(1300000000), + search_results.at(0)->power()->time_modified()); + } + // Test matches the latest power. + { + SearchParams search_params{ + .query = "ipsum", + .power_type = kNoteType, + }; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(1u, search_results.size()); + EXPECT_TRUE(ContainsPowerOverview(search_results, kNoteType, + GURL("https://example.com/a1.html"), 4)); + EXPECT_EQ("only ipsum", search_results.at(0) + ->power() + ->power_entity() + ->note_entity() + .plain_text()); + EXPECT_EQ(base::Time::FromTimeT(1400000000), + search_results.at(0)->power()->time_modified()); + } + // Test matches no powers. + { + SearchParams search_params{ + .query = "not found anywhere", + }; + std::vector<std::unique_ptr<PowerOverview>> search_results = + pbdb->GetPowerOverviewsForSearchParams(search_params); + + EXPECT_EQ(0u, search_results.size()); + } +} + TEST_F(PowerBookmarkDatabaseImplTest, DeletePower) { std::unique_ptr<PowerBookmarkDatabaseImpl> pbdb = std::make_unique<PowerBookmarkDatabaseImpl>(db_dir());
diff --git a/components/privacy_sandbox_strings.grdp b/components/privacy_sandbox_strings.grdp index 7682dde..ee27cad 100644 --- a/components/privacy_sandbox_strings.grdp +++ b/components/privacy_sandbox_strings.grdp
@@ -207,6 +207,9 @@ <message name="IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC" desc="A button associated with each of the user's topics. If the user clicks 'Block', that topic will get moved to the 'Topics you blocked' page."> Block </message> + <message name="IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_A11Y_LABEL" desc="A button label read by screen readers that indicates which topic will get blocked. The full 'pool of topics' is published at https://github.com/patcg-individual-drafts/topics/blob/main/taxonomy_v1.md"> + Block <ph name="TOPIC">$1<ex>Movies</ex></ph> + </message> <message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_HEADING" desc="A label that serves as a button to open the 'Topics you blocked' page." formatter_data="android_java"> Topics you blocked </message> @@ -219,6 +222,9 @@ <message name="IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC" desc="A button associated with each of the user's topics. When the user clicks 'Add', it makes that topic eligible in the 'pool of topics' that Chrome can use to estimate the user's topics of interest. Clicking 'Add' doesn't automatically put the added topic back onto the list of 'Your topics'. For that to happen, a user would have to browse sites associated with the 'Add'ed topic and Chrome would have to estimate the topic as relevant to that user."> Add </message> + <message name="IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL" desc="A button label read by screen readers that indicates which topic will get added back to the pool of potential topics."> + Add <ph name="TOPIC">$1<ex>Movies</ex></ph> + </message> <message name="IDS_SETTINGS_TOPICS_PAGE_LEARN_MORE_HEADING" desc="The title of a dialog box that offers more information about the Topics setting." formatter_data="android_java"> More about ad topics </message>
diff --git a/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL.png.sha1 b/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL.png.sha1 new file mode 100644 index 0000000..a1e91a54 --- /dev/null +++ b/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_ALLOW_TOPIC_A11Y_LABEL.png.sha1
@@ -0,0 +1 @@ +6ba45f70e2a112d36da0149e01454fa0bd51421d \ No newline at end of file
diff --git a/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_A11Y_LABEL.png.sha1 b/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_A11Y_LABEL.png.sha1 new file mode 100644 index 0000000..2ebd7d5 --- /dev/null +++ b/components/privacy_sandbox_strings_grdp/IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_A11Y_LABEL.png.sha1
@@ -0,0 +1 @@ +4c0ba7b57793f0bed91db7612204467099f61c16 \ No newline at end of file
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc index 892fa4b5..a06ca76 100644 --- a/components/proxy_config/pref_proxy_config_tracker_impl.cc +++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
@@ -45,8 +45,8 @@ "Users can choose the proxy configurations in settings under " "'Advanced/Network/Change proxy settings...'." policy_exception_justification: - "Using either of 'ProxyMode', 'ProxyServer', or 'ProxyPacUrl' " - "policies can set Chrome to use a specific proxy settings." + "Using 'ProxySettings' policy can set Chrome to use specific " + "proxy settings." })"); } // namespace
diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn index 8f81d1c..e57424ce 100644 --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn
@@ -81,7 +81,6 @@ deps = [ "//components/crash/core/browser/resources:build_ts", "//components/local_state:build", - "//components/policy/resources/webui:html_wrapper_files", ] output_dir = "$root_gen_dir/components" }
diff --git a/components/resources/dev_ui_components_resources.grd b/components/resources/dev_ui_components_resources.grd index 952fa5b..67116184 100644 --- a/components/resources/dev_ui_components_resources.grd +++ b/components/resources/dev_ui_components_resources.grd
@@ -22,7 +22,6 @@ <part file="local_state.grdp" /> <part file="net_log_resources.grdp" /> <part file="ntp_tiles_dev_ui_resources.grdp" /> - <part file="policy_resources.grdp" /> <part file="security_interstitials_dev_ui_resources.grdp" /> <part file="signin_resources.grdp" /> <part file="user_actions_ui_resources.grdp" />
diff --git a/components/resources/policy_resources.grdp b/components/resources/policy_resources.grdp deleted file mode 100644 index dddefb5..0000000 --- a/components/resources/policy_resources.grdp +++ /dev/null
@@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grit-part> - <include name="IDR_POLICY_CSS" file="../policy/resources/webui/policy.css" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_HTML" file="../policy/resources/webui/policy.html" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_BASE_JS" file="../policy/resources/webui/policy_base.js" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_JS" file="../policy/resources/webui/policy.js" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_CONFLICT_HTML_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_conflict.html.js" preprocess="true" use_base_dir="false" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_CONFLICT_JS" file="../policy/resources/webui/policy_conflict.js" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_PRECEDENCE_ROW_HTML_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_precedence_row.html.js" preprocess="true" use_base_dir="false" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_PRECEDENCE_ROW_JS" file="../policy/resources/webui/policy_precedence_row.js" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_ROW_HTML_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_row.html.js" preprocess="true" use_base_dir="false" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_ROW_JS" file="../policy/resources/webui/policy_row.js" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_TABLE_HTML_JS" file="${root_gen_dir}/components/policy/resources/webui/policy_table.html.js" preprocess="true" use_base_dir="false" type="BINDATA" /> - <include name="IDR_POLICY_POLICY_TABLE_JS" file="../policy/resources/webui/policy_table.js" preprocess="true" type="BINDATA" /> - <include name="IDR_POLICY_STATUS_BOX_HTML_JS" file="${root_gen_dir}/components/policy/resources/webui/status_box.html.js" use_base_dir="false" type="BINDATA" /> - <include name="IDR_POLICY_STATUS_BOX_JS" file="../policy/resources/webui/status_box.js" type="BINDATA" /> -</grit-part>
diff --git a/components/safe_browsing/core/browser/hash_database_mechanism.cc b/components/safe_browsing/core/browser/hash_database_mechanism.cc index e84921ed..fe916e5 100644 --- a/components/safe_browsing/core/browser/hash_database_mechanism.cc +++ b/components/safe_browsing/core/browser/hash_database_mechanism.cc
@@ -35,7 +35,7 @@ bool safe_synchronously = can_check_db_ ? CallCheckBrowseUrl() : true; return StartCheckResult( /*is_safe_synchronously=*/safe_synchronously, - /*did_check_allowlist=*/false); + /*did_check_url_real_time_allowlist=*/false); } bool HashDatabaseMechanism::CallCheckBrowseUrl() { @@ -55,8 +55,8 @@ is_async_database_manager_check_in_progress_ = false; CompleteCheck(std::make_unique<CompleteCheckResult>( url, threat_type, metadata, - /*is_from_real_time_check=*/false, - /*real_time_lookup_response=*/nullptr)); + /*is_from_url_real_time_check=*/false, + /*url_real_time_lookup_response=*/nullptr)); } } // namespace safe_browsing
diff --git a/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.cc b/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.cc index 193b2501..110d832 100644 --- a/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.cc +++ b/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.cc
@@ -20,21 +20,21 @@ SafeBrowsingLookupMechanism::StartCheckResult::StartCheckResult( bool is_safe_synchronously, - bool did_check_allowlist) + bool did_check_url_real_time_allowlist) : is_safe_synchronously(is_safe_synchronously), - did_check_allowlist(did_check_allowlist) {} + did_check_url_real_time_allowlist(did_check_url_real_time_allowlist) {} SafeBrowsingLookupMechanism::CompleteCheckResult::CompleteCheckResult( const GURL& url, SBThreatType threat_type, const ThreatMetadata& metadata, - bool is_from_real_time_check, - std::unique_ptr<RTLookupResponse> real_time_lookup_response) + bool is_from_url_real_time_check, + std::unique_ptr<RTLookupResponse> url_real_time_lookup_response) : url(url), threat_type(threat_type), metadata(metadata), - is_from_real_time_check(is_from_real_time_check), - real_time_lookup_response(std::move(real_time_lookup_response)) {} + is_from_url_real_time_check(is_from_url_real_time_check), + url_real_time_lookup_response(std::move(url_real_time_lookup_response)) {} SafeBrowsingLookupMechanism::CompleteCheckResult::~CompleteCheckResult() = default;
diff --git a/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.h b/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.h index 3859c699..13e1350 100644 --- a/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.h +++ b/components/safe_browsing/core/browser/safe_browsing_lookup_mechanism.h
@@ -21,9 +21,10 @@ class SafeBrowsingLookupMechanism { public: struct StartCheckResult { - StartCheckResult(bool is_safe_synchronously, bool did_check_allowlist); + StartCheckResult(bool is_safe_synchronously, + bool did_check_url_real_time_allowlist); bool is_safe_synchronously; - bool did_check_allowlist; + bool did_check_url_real_time_allowlist; }; // This is used by individual lookup mechanisms as the input for the @@ -34,14 +35,14 @@ const GURL& url, SBThreatType threat_type, const ThreatMetadata& metadata, - bool is_from_real_time_check, - std::unique_ptr<RTLookupResponse> real_time_lookup_response); + bool is_from_url_real_time_check, + std::unique_ptr<RTLookupResponse> url_real_time_lookup_response); ~CompleteCheckResult(); GURL url; SBThreatType threat_type; ThreatMetadata metadata; - bool is_from_real_time_check; - std::unique_ptr<RTLookupResponse> real_time_lookup_response; + bool is_from_url_real_time_check; + std::unique_ptr<RTLookupResponse> url_real_time_lookup_response; }; using CompleteCheckResultCallback = base::OnceCallback<void(std::unique_ptr<CompleteCheckResult> result)>;
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc index d56cd77..805b2e8 100644 --- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc +++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
@@ -257,11 +257,11 @@ /*rt_lookup_response=*/nullptr, /*timed_out=*/true); } else { - OnUrlResultInternal(result.value()->url, result.value()->threat_type, - result.value()->metadata, - result.value()->is_from_real_time_check, - std::move(result.value()->real_time_lookup_response), - /*timed_out=*/false); + OnUrlResultInternal( + result.value()->url, result.value()->threat_type, + result.value()->metadata, result.value()->is_from_url_real_time_check, + std::move(result.value()->url_real_time_lookup_response), + /*timed_out=*/false); } } @@ -451,7 +451,7 @@ SafeBrowsingLookupMechanism::StartCheckResult start_check_result = lookup_mechanism_runner_->Run(); urls_[next_index_].did_check_allowlist = - start_check_result.did_check_allowlist; + start_check_result.did_check_url_real_time_allowlist; if (start_check_result.is_safe_synchronously) { lookup_mechanism_runner_.reset();
diff --git a/components/safe_browsing/core/browser/url_realtime_mechanism.cc b/components/safe_browsing/core/browser/url_realtime_mechanism.cc index 079f9af..9c54759 100644 --- a/components/safe_browsing/core/browser/url_realtime_mechanism.cc +++ b/components/safe_browsing/core/browser/url_realtime_mechanism.cc
@@ -89,7 +89,7 @@ return StartCheckResult( /*is_safe_synchronously=*/false, - /*did_check_allowlist=*/check_allowlist); + /*did_check_url_real_time_allowlist=*/check_allowlist); } void UrlRealTimeMechanism::OnCheckUrlForHighConfidenceAllowlist( @@ -223,7 +223,7 @@ } else { CompleteCheck(std::make_unique<CompleteCheckResult>( url_, sb_threat_type, ThreatMetadata(), - /*is_from_real_time_check=*/true, std::move(response))); + /*is_from_url_real_time_check=*/true, std::move(response))); } } @@ -297,8 +297,8 @@ } CompleteCheck(std::make_unique<CompleteCheckResult>( url_, threat_type, metadata, - /*is_from_real_time_check=*/false, - /*real_time_lookup_response=*/nullptr)); + /*is_from_url_real_time_check=*/false, + /*url_real_time_lookup_response=*/nullptr)); } } // namespace safe_browsing
diff --git a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java index f7265095..a8ea0b1 100644 --- a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java +++ b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java
@@ -21,10 +21,11 @@ /** * Called to get the segment selection result synchronously from the backend. - * + * @deprecated in favor of {@link getSelectedSegment}. * @param segmentationKey The key to be used to distinguish between different segmentation * usages. * @return The result of segment selection */ + @Deprecated SegmentSelectionResult getCachedSegmentResult(String segmentationKey); }
diff --git a/components/user_education/views/help_bubble_factory_mac.mm b/components/user_education/views/help_bubble_factory_mac.mm index fbc7028..37a03e1b 100644 --- a/components/user_education/views/help_bubble_factory_mac.mm +++ b/components/user_education/views/help_bubble_factory_mac.mm
@@ -30,7 +30,7 @@ views::ElementTrackerViews::GetInstance()->GetWidgetForContext( element_mac->context()); auto* const anchor_view = widget->GetRootView(); - gfx::Rect anchor_rect = element_mac->screen_bounds(); + gfx::Rect anchor_rect = element_mac->GetScreenBounds(); // We don't want the bubble to be flush with either the side or top of the // Mac native menu, because it looks funny.
diff --git a/components/viz/service/display_embedder/skia_output_device_buffer_queue_unittest.cc b/components/viz/service/display_embedder/skia_output_device_buffer_queue_unittest.cc index e7211fbc..3da721e 100644 --- a/components/viz/service/display_embedder/skia_output_device_buffer_queue_unittest.cc +++ b/components/viz/service/display_embedder/skia_output_device_buffer_queue_unittest.cc
@@ -186,7 +186,6 @@ } std::unique_ptr<gpu::SharedImageBacking> CreateSharedImage( const gpu::Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/content/browser/attribution_reporting/attribution_interop_unittest.cc b/content/browser/attribution_reporting/attribution_interop_unittest.cc index 44fc01a7..941e09d 100644 --- a/content/browser/attribution_reporting/attribution_interop_unittest.cc +++ b/content/browser/attribution_reporting/attribution_interop_unittest.cc
@@ -111,8 +111,6 @@ .output_options = AttributionSimulationOutputOptions{ .remove_report_ids = true, - .report_time_format = - AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch, .remove_assembled_report = true, .remove_actual_report_times = true, },
diff --git a/content/browser/attribution_reporting/privacy_sandbox_ads_apis_browsertest.cc b/content/browser/attribution_reporting/privacy_sandbox_ads_apis_browsertest.cc index 66ee178..4fe0ea0 100644 --- a/content/browser/attribution_reporting/privacy_sandbox_ads_apis_browsertest.cc +++ b/content/browser/attribution_reporting/privacy_sandbox_ads_apis_browsertest.cc
@@ -135,7 +135,7 @@ PrivacySandboxAdsAPIsAllEnabledBrowserTest() { feature_list_.InitWithFeatures( {blink::features::kPrivacySandboxAdsAPIs, - blink::features::kBrowsingTopics, + blink::features::kBrowsingTopics, blink::features::kBrowsingTopicsXHR, blink::features::kInterestGroupStorage, blink::features::kFencedFrames, blink::features::kSharedStorageAPI}, /*disabled_features=*/{}); @@ -230,12 +230,66 @@ EXPECT_FALSE(last_topics_header()); } +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsAllEnabledBrowserTest, + OriginTrialEnabled_TopicsAllowedForXhr) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_EQ("success", EvalJs(shell()->web_contents(), + R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', 'https://example.test/page_without_ads_apis_ot.html'); + xhr.deprecatedBrowsingTopics = true; + xhr.send();)", + EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + EXPECT_TRUE(last_request_is_topics_request()); + EXPECT_TRUE(last_topics_header()); + EXPECT_EQ(last_topics_header().value(), + "1;version=\"chrome.1:1:2\";config_version=\"chrome.1\";model_" + "version=\"2\";taxonomy_version=\"1\""); +} + +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsAllEnabledBrowserTest, + OriginTrialDisabled_TopicsNotAllowedForXhr) { + // Navigate to a page without an OT token. + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_without_ads_apis_ot.html"))); + + EXPECT_EQ("success", EvalJs(shell()->web_contents(), + R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', 'https://example.test/page_without_ads_apis_ot.html'); + xhr.deprecatedBrowsingTopics = true; + xhr.send();)", + EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + EXPECT_FALSE(last_request_is_topics_request()); + EXPECT_FALSE(last_topics_header()); +} + class PrivacySandboxAdsAPIsTopicsDisabledBrowserTest : public PrivacySandboxAdsAPIsBrowserTestBase { public: PrivacySandboxAdsAPIsTopicsDisabledBrowserTest() { - feature_list_.InitWithFeatures({blink::features::kPrivacySandboxAdsAPIs}, - {blink::features::kBrowsingTopics}); + feature_list_.InitWithFeatures( + /*enabled_features=*/{blink::features::kPrivacySandboxAdsAPIs, + blink::features::kBrowsingTopicsXHR}, + /*disabled_features=*/{blink::features::kBrowsingTopics}); } private: @@ -257,6 +311,113 @@ EXPECT_EQ(false, EvalJs(shell(), "document.browsingTopics !== undefined")); } +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsTopicsDisabledBrowserTest, + OriginTrialEnabled_TopicsNotAllowedForFetch) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_TRUE( + ExecJs(shell()->web_contents(), + content::JsReplace( + "fetch($1, {browsingTopics: true})", + GURL("https://example.test/page_without_ads_apis_ot.html")))); + + EXPECT_FALSE(last_request_is_topics_request()); + EXPECT_FALSE(last_topics_header()); +} + +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsTopicsDisabledBrowserTest, + OriginTrialEnabled_TopicsNotAllowedForXhr) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_EQ("success", EvalJs(shell()->web_contents(), + R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', 'https://example.test/page_without_ads_apis_ot.html'); + xhr.deprecatedBrowsingTopics = true; + xhr.send();)", + EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + EXPECT_FALSE(last_request_is_topics_request()); + EXPECT_FALSE(last_topics_header()); +} + +class PrivacySandboxAdsAPIsTopicsXHRDisabledBrowserTest + : public PrivacySandboxAdsAPIsBrowserTestBase { + public: + PrivacySandboxAdsAPIsTopicsXHRDisabledBrowserTest() { + feature_list_.InitWithFeatures( + /*enabled_features=*/{blink::features::kPrivacySandboxAdsAPIs, + blink::features::kBrowsingTopics}, + /*disabled_features=*/{blink::features::kBrowsingTopicsXHR}); + } + + private: + base::test::ScopedFeatureList feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsTopicsXHRDisabledBrowserTest, + OriginTrialEnabled_TopicsFeatureDetected) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_EQ(true, EvalJs(shell(), + "document.featurePolicy.features().includes('" + "browsing-topics')")); + + EXPECT_EQ(true, EvalJs(shell(), "document.browsingTopics !== undefined")); +} + +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsTopicsXHRDisabledBrowserTest, + OriginTrialEnabled_TopicsAllowedForFetch) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_TRUE( + ExecJs(shell()->web_contents(), + content::JsReplace( + "fetch($1, {browsingTopics: true})", + GURL("https://example.test/page_without_ads_apis_ot.html")))); + + EXPECT_TRUE(last_request_is_topics_request()); + EXPECT_TRUE(last_topics_header()); + EXPECT_EQ(last_topics_header().value(), + "1;version=\"chrome.1:1:2\";config_version=\"chrome.1\";model_" + "version=\"2\";taxonomy_version=\"1\""); +} + +IN_PROC_BROWSER_TEST_F(PrivacySandboxAdsAPIsTopicsXHRDisabledBrowserTest, + OriginTrialEnabled_TopicsNotAllowedForXhr) { + EXPECT_TRUE(NavigateToURL( + shell(), GURL("https://example.test/page_with_ads_apis_ot.html"))); + + EXPECT_EQ("success", EvalJs(shell()->web_contents(), + R"( + const xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + domAutomationController.send('success'); + } + } + + xhr.open('GET', 'https://example.test/page_without_ads_apis_ot.html'); + xhr.deprecatedBrowsingTopics = true; + xhr.send();)", + EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + EXPECT_FALSE(last_request_is_topics_request()); + EXPECT_FALSE(last_topics_header()); +} + class PrivacySandboxAdsAPIsSharedStorageDisabledBrowserTest : public PrivacySandboxAdsAPIsBrowserTestBase { public:
diff --git a/content/browser/devtools/protocol/browser_handler.cc b/content/browser/devtools/protocol/browser_handler.cc index a280e1d2..81d10de 100644 --- a/content/browser/devtools/protocol/browser_handler.cc +++ b/content/browser/devtools/protocol/browser_handler.cc
@@ -208,6 +208,10 @@ *permission_type = PermissionType::WAKE_LOCK_SYSTEM; } else if (name == "nfc") { *permission_type = PermissionType::NFC; + } else if (name == "window-management" && + base::FeatureList::IsEnabled( + blink::features::kWindowManagementPermissionAlias)) { + *permission_type = PermissionType::WINDOW_MANAGEMENT; } else if (name == "window-placement") { *permission_type = PermissionType::WINDOW_MANAGEMENT; } else if (name == "local-fonts") {
diff --git a/content/browser/web_contents/view_structure_builder_android.cc b/content/browser/web_contents/view_structure_builder_android.cc index 6dbf38e..6503bfb 100644 --- a/content/browser/web_contents/view_structure_builder_android.cc +++ b/content/browser/web_contents/view_structure_builder_android.cc
@@ -40,10 +40,15 @@ JniIntWrapper parent_relative_left, JniIntWrapper parent_relative_top, JniIntWrapper width, - JniIntWrapper height) { + JniIntWrapper height, + JniIntWrapper unclipped_left, + JniIntWrapper unclipped_top, + JniIntWrapper unclipped_width, + JniIntWrapper unclipped_height) { Java_ViewStructureBuilder_setViewStructureNodeBounds( env, obj, node, is_root_node, parent_relative_left, parent_relative_top, - width, height); + width, height, unclipped_left, unclipped_top, unclipped_width, + unclipped_height); } void ViewStructureBuilder_setViewStructureNodeHtmlInfo(
diff --git a/content/browser/web_contents/view_structure_builder_android.h b/content/browser/web_contents/view_structure_builder_android.h index d445ef9..f95b96fa 100644 --- a/content/browser/web_contents/view_structure_builder_android.h +++ b/content/browser/web_contents/view_structure_builder_android.h
@@ -38,7 +38,11 @@ JniIntWrapper parent_relative_left, JniIntWrapper parent_relative_top, JniIntWrapper width, - JniIntWrapper height); + JniIntWrapper height, + JniIntWrapper unclipped_left, + JniIntWrapper unclipped_top, + JniIntWrapper unclipped_width, + JniIntWrapper unclipped_height); void ViewStructureBuilder_setViewStructureNodeHtmlInfo( JNIEnv* env,
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc index 1dc5a46..0b824b8 100644 --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc
@@ -118,7 +118,9 @@ // Bounding box. ViewStructureBuilder_setViewStructureNodeBounds( env, j_view_structure_builder, j_view_structure_node, is_root, - node->rect.x(), node->rect.y(), node->rect.width(), node->rect.height()); + node->rect.x(), node->rect.y(), node->rect.width(), node->rect.height(), + node->unclipped_rect.x(), node->unclipped_rect.y(), + node->unclipped_rect.width(), node->unclipped_rect.height()); // HTML/CSS attributes. ScopedJavaLocalRef<jstring> j_html_tag =
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index 06f986c..6a6e2833 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -315,6 +315,7 @@ kSetOnlyIfOverridden}, {"AndroidDownloadableFontsMatching", features::kAndroidDownloadableFontsMatching}, + {"FirstPartySets", features::kFirstPartySets}, {"Fledge", blink::features::kFledge, kSetOnlyIfOverridden}, {"Fledge", features::kPrivacySandboxAdsAPIsOverride, kSetOnlyIfOverridden}, @@ -322,11 +323,13 @@ {"LegacyWindowsDWriteFontFallback", features::kLegacyWindowsDWriteFontFallback}, {"OriginIsolationHeader", features::kOriginIsolationHeader}, - {"FirstPartySets", features::kFirstPartySets}, + {"PartitionedCookies", net::features::kPartitionedCookies}, {"ReduceAcceptLanguage", network::features::kReduceAcceptLanguage}, {"StorageAccessAPI", net::features::kStorageAccessAPI}, {"TopicsAPI", features::kPrivacySandboxAdsAPIsOverride, kSetOnlyIfOverridden}, + {"TopicsXHR", features::kPrivacySandboxAdsAPIsOverride, + kSetOnlyIfOverridden}, {"TrustedTypesFromLiteral", features::kTrustedTypesFromLiteral}, {"WebAppTabStrip", features::kDesktopPWAsTabStrip}, {"WGIGamepadTriggerRumble", @@ -602,14 +605,23 @@ WebRuntimeFeatures::EnableFencedFrames(false); } - // Topics API cannot be enabled without the support of the browser process. - if (base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIsOverride) && - !base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { + // Topics API cannot be enabled without the support of the browser process, + // and the XHR attribute should be additionally gated by the + // `kBrowsingTopicsXHR` feature. + if (!base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsAPIEnabled()) << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" - << blink::features::kBrowsingTopics.name << " instead."; + << blink::features::kBrowsingTopics.name << " in addition."; WebRuntimeFeatures::EnableTopicsAPI(false); + WebRuntimeFeatures::EnableTopicsXHR(false); + } else if (!base::FeatureList::IsEnabled( + blink::features::kBrowsingTopicsXHR)) { + LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsXHREnabled()) + << "Topics XHR cannot be enabled in this configuration. Use --" + << switches::kEnableFeatures << "=" + << blink::features::kBrowsingTopicsXHR.name << " in addition."; + WebRuntimeFeatures::EnableTopicsXHR(false); } // Storage Access API ForSite cannot be enabled unless the larger Storage
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/ViewStructureBuilder.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/ViewStructureBuilder.java index 8ba8874..251064d 100644 --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/ViewStructureBuilder.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/ViewStructureBuilder.java
@@ -4,6 +4,11 @@ package org.chromium.content.browser.accessibility; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_HEIGHT; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_LEFT; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_TOP; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_WIDTH; + import android.app.assist.AssistStructure.ViewNode; import android.graphics.Rect; import android.os.Build; @@ -58,7 +63,8 @@ @CalledByNative private void setViewStructureNodeBounds(ViewStructure node, boolean isRootNode, - int parentRelativeLeft, int parentRelativeTop, int width, int height) { + int parentRelativeLeft, int parentRelativeTop, int width, int height, int unclippedLeft, + int unclippedTop, int unclippedWidth, int unclippedHeight) { int left = (int) mRenderCoordinates.fromLocalCssToPix(parentRelativeLeft); int top = (int) mRenderCoordinates.fromLocalCssToPix(parentRelativeTop); width = (int) mRenderCoordinates.fromLocalCssToPix(width); @@ -70,6 +76,18 @@ } node.setDimens(boundsInParent.left, boundsInParent.top, 0, 0, width, height); + + // Add unclipped bounds in the Bundle extras for services interested in these values. + int unclippedLeftCSS = (int) mRenderCoordinates.fromLocalCssToPix(unclippedLeft); + int unclippedTopCSS = (int) mRenderCoordinates.fromLocalCssToPix(unclippedTop); + int unclippedWidthCSS = (int) mRenderCoordinates.fromLocalCssToPix(unclippedWidth); + int unclippedHeightCSS = (int) mRenderCoordinates.fromLocalCssToPix(unclippedHeight); + + Bundle extras = node.getExtras(); + extras.putInt(EXTRAS_KEY_UNCLIPPED_LEFT, unclippedLeftCSS); + extras.putInt(EXTRAS_KEY_UNCLIPPED_TOP, unclippedTopCSS); + extras.putInt(EXTRAS_KEY_UNCLIPPED_WIDTH, unclippedWidthCSS); + extras.putInt(EXTRAS_KEY_UNCLIPPED_HEIGHT, unclippedHeightCSS); } @CalledByNative
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java index d117d4e..08fbfe8 100644 --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
@@ -153,8 +153,12 @@ "ACTION_ARGUMENT_HTML_ELEMENT_STRING_VALUES"; public static final String EXTRAS_KEY_TARGET_URL = "AccessibilityNodeInfo.targetUrl"; public static final String EXTRAS_KEY_UNCLIPPED_TOP = "AccessibilityNodeInfo.unclippedTop"; + public static final String EXTRAS_KEY_UNCLIPPED_LEFT = "AccessibilityNodeInfo.unclippedLeft"; public static final String EXTRAS_KEY_UNCLIPPED_BOTTOM = "AccessibilityNodeInfo.unclippedBottom"; + public static final String EXTRAS_KEY_UNCLIPPED_WIDTH = "AccessibilityNodeInfo.unclippedWidth"; + public static final String EXTRAS_KEY_UNCLIPPED_HEIGHT = + "AccessibilityNodeInfo.unclippedHeight"; public static final String EXTRAS_KEY_URL = "url"; // Constants defined for requests to add data to AccessibilityNodeInfo Bundle extras.
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/accessibility/AssistViewStructureTest.java b/content/public/android/javatests/src/org/chromium/content/browser/accessibility/AssistViewStructureTest.java index 166b9c3d..4137f6da 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/accessibility/AssistViewStructureTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/accessibility/AssistViewStructureTest.java
@@ -4,6 +4,11 @@ package org.chromium.content.browser.accessibility; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_HEIGHT; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_LEFT; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_TOP; +import static org.chromium.content.browser.accessibility.WebContentsAccessibilityImpl.EXTRAS_KEY_UNCLIPPED_WIDTH; + import android.app.assist.AssistStructure.ViewNode; import android.os.Bundle; @@ -512,4 +517,25 @@ TestViewStructure grandchild = child.getChild(0); Assert.assertEquals("•••", grandchild.getText()); } + + /** + * Test that the snapshot contains Bundle extras for unclipped bounds. + */ + @Test + @MediumTest + public void testUnclippedBounds() throws Throwable { + TestViewStructure root = getViewStructureFromHtml("<p>Hello world</p>").getChild(0); + TestViewStructure paragraph = root.getChild(0); + + Bundle extras = paragraph.getExtras(); + int unclippedLeft = extras.getInt(EXTRAS_KEY_UNCLIPPED_LEFT, -1); + int unclippedTop = extras.getInt(EXTRAS_KEY_UNCLIPPED_TOP, -1); + int unclippedWidth = extras.getInt(EXTRAS_KEY_UNCLIPPED_WIDTH, -1); + int unclippedHeight = extras.getInt(EXTRAS_KEY_UNCLIPPED_HEIGHT, -1); + + Assert.assertTrue(unclippedLeft > 0); + Assert.assertTrue(unclippedTop > 0); + Assert.assertTrue(unclippedWidth > 0); + Assert.assertTrue(unclippedHeight > 0); + } }
diff --git a/content/public/test/attribution_simulator.h b/content/public/test/attribution_simulator.h index b2b4e36d..a22e89bc 100644 --- a/content/public/test/attribution_simulator.h +++ b/content/public/test/attribution_simulator.h
@@ -18,13 +18,6 @@ namespace content { -enum class AttributionReportTimeFormat { - // Times are an integer number of milliseconds since the Unix epoch. - kMillisecondsSinceUnixEpoch, - // Times are strings in the ISO 8601 format. - kISO8601, -}; - struct AttributionSimulationOutputOptions { // If true, removes the `report_id` field from reports before output. // @@ -33,9 +26,6 @@ // of nondeterminism in the output. bool remove_report_ids = false; - AttributionReportTimeFormat report_time_format = - AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch; - // If true, removes the `shared_info`, `aggregation_service_payloads` and // `source_registration_time` fields from aggregatable reports before output. //
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc index 1f8c52f..2acff07 100644 --- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc +++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -827,6 +827,48 @@ base::test::ScopedFeatureList feature_list_; }; +TEST_F(BlinkAXActionTargetTest, TestSetRangeValue) { + constexpr char html[] = R"HTML( + <body> + <input type=range min=1 value=2 max=3 step=1> + </body> + )HTML"; + LoadHTMLAndRefreshAccessibilityTree(html); + + WebDocument document = GetMainFrame()->GetDocument(); + WebAXObject root_obj = WebAXObject::FromWebDocument(document); + WebAXObject html_elem = root_obj.ChildAt(0); + WebAXObject body = html_elem.ChildAt(0); + WebAXObject input_range = body.ChildAt(0); + + float value = 0.0f; + EXPECT_TRUE(input_range.ValueForRange(&value)); + EXPECT_EQ(2.0f, value); + std::unique_ptr<ui::AXActionTarget> input_range_action_target = + AXActionTargetFactory::CreateFromNodeId(document, nullptr, + input_range.AxID()); + EXPECT_EQ(ui::AXActionTarget::Type::kBlink, + input_range_action_target->GetType()); + + std::string value_to_set("1.0"); + { + ui::AXActionData action_data; + action_data.action = ax::mojom::Action::kSetValue; + action_data.value = value_to_set; + EXPECT_TRUE(input_range.PerformAction(action_data)); + } + EXPECT_TRUE(input_range.ValueForRange(&value)); + EXPECT_EQ(1.0f, value); + + SendPendingAccessibilityEvents(); + EXPECT_EQ(1, CountAccessibilityNodesSentToBrowser()); + { + // Make sure it's the input range object that was updated. + ui::AXTreeUpdate update = GetLastAccUpdate(); + EXPECT_EQ(input_range.AxID(), update.nodes[0].id); + } +} + TEST_F(BlinkAXActionTargetTest, TestMethods) { // Exercise the methods on BlinkAXActionTarget to ensure they have the // expected effects.
diff --git a/content/services/auction_worklet/BUILD.gn b/content/services/auction_worklet/BUILD.gn index 4786100..38ff60a6 100644 --- a/content/services/auction_worklet/BUILD.gn +++ b/content/services/auction_worklet/BUILD.gn
@@ -167,9 +167,5 @@ deps += [ "//gin" ] } - if (is_android) { - deps += [ "//v8:v8_external_startup_data_assets" ] - } - configs += [ "//v8:external_startup_data" ] }
diff --git a/content/shell/android/BUILD.gn b/content/shell/android/BUILD.gn index 772d9f8..cbcc2e8 100644 --- a/content/shell/android/BUILD.gn +++ b/content/shell/android/BUILD.gn
@@ -5,7 +5,6 @@ import("//build/config/android/config.gni") import("//build/config/android/rules.gni") import("//third_party/icu/config.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") content_shell_manifest = "$target_gen_dir/content_shell_manifest/AndroidManifest.xml" @@ -174,13 +173,9 @@ disable_compression = true deps = [ "//content/shell:pak", + "//gin:v8_snapshot_assets", "//third_party/icu:icu_assets", ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } } template("content_shell_apk_tmpl") {
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 0e6faf1..63fed1e3 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -24,7 +24,6 @@ import("//tools/grit/grit_rule.gni") import("//tools/grit/preprocess_if_expr.gni") import("//tools/typescript/ts_library.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") import("//v8/gni/v8.gni") if (is_android) { @@ -3026,6 +3025,7 @@ "//build/config/freetype", "//components/download/internal/common:internal_java", "//content/public/android:content_java", + "//gin:v8_snapshot_assets", "//gpu/command_buffer/service:android_texture_owner_test_support", "//services/data_decoder/public/cpp/android:safe_json_java", "//third_party/blink/public/common", @@ -3033,12 +3033,6 @@ "//ui/android:android", ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } - defines += [ "APPCACHE_USE_SIMPLE_CACHE" ] } else { # Non-Android.
diff --git a/content/test/attribution_simulator_impl.cc b/content/test/attribution_simulator_impl.cc index ce449115..c1950022 100644 --- a/content/test/attribution_simulator_impl.cc +++ b/content/test/attribution_simulator_impl.cc
@@ -33,7 +33,6 @@ #include "base/test/task_environment.h" #include "base/test/values_test_util.h" #include "base/time/time.h" -#include "base/time/time_to_iso8601.h" #include "base/values.h" #include "components/attribution_reporting/parsing_utils.h" #include "content/browser/aggregation_service/aggregation_service_features.h" @@ -230,13 +229,7 @@ std::string FormatTime(base::Time time) const { base::TimeDelta time_delta = time - time_origin; - - switch (options.report_time_format) { - case AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch: - return base::NumberToString(time_delta.InMilliseconds()); - case AttributionReportTimeFormat::kISO8601: - return base::TimeToISO8601(base::Time::UnixEpoch() + time_delta); - } + return base::NumberToString(time_delta.InMilliseconds()); } bool AdjustScheduledReportTime(base::Value::Dict& report_body,
diff --git a/content/test/attribution_simulator_impl_unittest.cc b/content/test/attribution_simulator_impl_unittest.cc index 649a4c5..2a4360e 100644 --- a/content/test/attribution_simulator_impl_unittest.cc +++ b/content/test/attribution_simulator_impl_unittest.cc
@@ -93,19 +93,6 @@ options.noise_seed = value; } - if (const std::string* report_time_format = - dict.FindStringKey("report_time_format")) { - if (*report_time_format == "iso8601") { - options.output_options.report_time_format = - AttributionReportTimeFormat::kISO8601; - } else { - ASSERT_EQ(*report_time_format, "milliseconds_since_unix_epoch") - << "unknown report time format: " << *report_time_format; - options.output_options.report_time_format = - AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch; - } - } - if (absl::optional<bool> skip_debug_cookie_checks = dict.FindBoolKey("skip_debug_cookie_checks")) { options.skip_debug_cookie_checks = *skip_debug_cookie_checks; @@ -126,8 +113,6 @@ .output_options = AttributionSimulationOutputOptions{ .remove_report_ids = true, - .report_time_format = - AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch, .remove_assembled_report = true, .remove_actual_report_times = true, },
diff --git a/content/test/data/accessibility/aom/aom-live-region-expected-uia-win7.txt b/content/test/data/accessibility/aom/aom-live-region-expected-uia-win7.txt deleted file mode 100644 index 163a0a3..0000000 --- a/content/test/data/accessibility/aom/aom-live-region-expected-uia-win7.txt +++ /dev/null
@@ -1,5 +0,0 @@ -Document LocalizedControlType='document' AriaProperties='readonly=true;expanded=false;multiline=false;multiselectable=false;required=false' -++Text LocalizedControlType='marquee' IsControlElement=false AriaProperties='atomic=false;readonly=true;expanded=false;live=off;multiline=false;multiselectable=false;relevant=additions text;required=false' -++Text LocalizedControlType='marquee' IsControlElement=false AriaProperties='atomic=false;readonly=true;expanded=false;live=polite;multiline=false;multiselectable=false;relevant=additions text;required=false' -++StatusBar LocalizedControlType='status bar' IsControlElement=false AriaProperties='atomic=true;readonly=true;expanded=false;live=assertive;multiline=false;multiselectable=false;relevant=additions text;required=false' -++Text LocalizedControlType='alert' IsControlElement=false AriaProperties='atomic=true;readonly=true;expanded=false;live=assertive;multiline=false;multiselectable=false;relevant=additions text;required=false'
diff --git a/content/test/data/accessibility/aom/aom-modal-dialog-expected-uia-win7.txt b/content/test/data/accessibility/aom/aom-modal-dialog-expected-uia-win7.txt deleted file mode 100644 index 443fa44d..0000000 --- a/content/test/data/accessibility/aom/aom-modal-dialog-expected-uia-win7.txt +++ /dev/null
@@ -1,7 +0,0 @@ -#<skip -- crbug.com/1289698> -Document LocalizedControlType='document' -++Group LocalizedControlType='group' IsControlElement=false -++++Text LocalizedControlType='text' Name='Content outside modal dialog. ' -++++Button LocalizedControlType='button' Name='Button outside modal dialog.' -++Window LocalizedControlType='pane' Name='Modal dialog.' Window.IsModal=true -++++Button LocalizedControlType='button' Name='Button inside modal dialog.'
diff --git a/content/test/data/accessibility/aria/aria-contentinfo-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-contentinfo-expected-uia-win7.txt deleted file mode 100644 index 00a31d3..0000000 --- a/content/test/data/accessibility/aria/aria-contentinfo-expected-uia-win7.txt +++ /dev/null
@@ -1,3 +0,0 @@ -Document -++Group LocalizedControlType='content information' -++++Text Name='This is ARIA role contentinfo.'
diff --git a/content/test/data/accessibility/aria/aria-describedby-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-describedby-expected-uia-win7.txt deleted file mode 100644 index dc9221b..0000000 --- a/content/test/data/accessibility/aria/aria-describedby-expected-uia-win7.txt +++ /dev/null
@@ -1,5 +0,0 @@ -Document -++Edit -++ToolTip Name='Your username should be your email id' -++++Text Name='Your username should be your email id' IsControlElement=false -++Edit
diff --git a/content/test/data/accessibility/aria/aria-description-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-description-expected-uia-win7.txt deleted file mode 100644 index 6eaa4dc5..0000000 --- a/content/test/data/accessibility/aria/aria-description-expected-uia-win7.txt +++ /dev/null
@@ -1,5 +0,0 @@ -Document -++Group Name='description' -++Group Name='both' -++ToolTip Name='Description from describedby' -++++Text Name='Description from describedby' IsControlElement=false
diff --git a/content/test/data/accessibility/aria/aria-details-multiple-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-details-multiple-expected-uia-win7.txt deleted file mode 100644 index 65ddf5e..0000000 --- a/content/test/data/accessibility/aria/aria-details-multiple-expected-uia-win7.txt +++ /dev/null
@@ -1,11 +0,0 @@ -Document -++Text Name='Some ' -++Text -++++Text Name='highlighted text' -++Text Name=' example.' -++Group -++++Text Name='Good job!' -++ListItem -++++Text Name='Some footnote.' -++Group -++++Text Name='The meaning is.'
diff --git a/content/test/data/accessibility/aria/aria-tree-discontinuous-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-tree-discontinuous-expected-uia-win7.txt deleted file mode 100644 index 92a3e0f47..0000000 --- a/content/test/data/accessibility/aria/aria-tree-discontinuous-expected-uia-win7.txt +++ /dev/null
@@ -1,7 +0,0 @@ -Document -++Tree Selection.CanSelectMultiple=false Selection.IsSelectionRequired=false -++++TreeItem Name='card content' ExpandCollapse.ExpandCollapseState='LeafNode' SelectionItem.IsSelected=false -++++++Text Name='card content' IsControlElement=false -++++Group -++++TreeItem Name='card content' ExpandCollapse.ExpandCollapseState='LeafNode' SelectionItem.IsSelected=false -++++++Text Name='card content' IsControlElement=false
diff --git a/content/test/data/accessibility/aria/aria-treegrid-expected-uia-win7.txt b/content/test/data/accessibility/aria/aria-treegrid-expected-uia-win7.txt deleted file mode 100644 index 4d72953..0000000 --- a/content/test/data/accessibility/aria/aria-treegrid-expected-uia-win7.txt +++ /dev/null
@@ -1,79 +0,0 @@ -Document -++DataGrid Grid.ColumnCount=2 Grid.RowCount=8 Selection.CanSelectMultiple=false Selection.IsSelectionRequired=false Table.RowOrColumnMajor='RowMajor' -++++TreeItem Name='Cell 1, row 1, level 1 Cell 2, row 1, level 1' -++++++DataItem Name='Cell 1, row 1, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 1, level 1' IsControlElement=false -++++++DataItem Name='Cell 2, row 1, level 1' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 -++++++++Text Name='Cell 2, row 1, level 1' IsControlElement=false -++++TreeItem Name='Cell 1, row 2, level 1 Cell 2, row 2, level 1' -++++++DataItem Name='Cell 1, row 2, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 2, level 1' IsControlElement=false -++++++DataItem Name='Cell 2, row 2, level 1' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 -++++++++Text Name='Cell 2, row 2, level 1' IsControlElement=false -++++TreeItem Name='Cell 1, row 3, level 1 Cell 2, row 3, level 1' -++++++DataItem Name='Cell 1, row 3, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 3, level 1' IsControlElement=false -++++++DataItem Name='Cell 2, row 3, level 1' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 -++++++++Text Name='Cell 2, row 3, level 1' IsControlElement=false -++++TreeItem Name='Cell 1, row 1, level 2' -++++++DataItem Name='Cell 1, row 1, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 1, level 2' IsControlElement=false -++++TreeItem Name='Cell 1, row 2, level 2' -++++++DataItem Name='Cell 1, row 2, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 2, level 2' IsControlElement=false -++++TreeItem Name='Cell 1, row 3, level 2' -++++++DataItem Name='Cell 1, row 3, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 3, level 2' IsControlElement=false -++++TreeItem Name='Cell 1, row 4, level 2' -++++++DataItem Name='Cell 1, row 4, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=6 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 4, level 2' IsControlElement=false -++++TreeItem Name='Cell 1, row 2, level 2' -++++++DataItem Name='Cell 1, row 2, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=7 GridItem.RowSpan=1 -++++++++Text Name='Cell 1, row 2, level 2' IsControlElement=false -++DataGrid Grid.ColumnCount=3 Grid.RowCount=7 Selection.CanSelectMultiple=false Selection.IsSelectionRequired=false Table.RowOrColumnMajor='RowMajor' -++++Group -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 1' -++++++++DataItem Name='Cell 1, row 1, rowgroup 1, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 1, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 2, rowgroup 1, level 1' -++++++++DataItem Name='Cell 1, row 2, rowgroup 1, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 2, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 3, rowgroup 1, level 1' -++++++++DataItem Name='Cell 1, row 3, rowgroup 1, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 3, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 2' -++++++++DataItem Name='Cell 1, row 1, rowgroup 1, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 1, rowgroup 1, level 2' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 1' -++++++++DataItem Name='Cell 1, row 1, rowgroup 1, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 1, rowgroup 1, level 1' IsControlElement=false -++++Group -++++++TreeItem Name='Cell 1, row 1, rowgroup 2, level 1 Cell 2, row 1, rowgroup 2, level 1' -++++++++DataItem Name='Cell 1, row 1, rowgroup 2, level 1' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 1, rowgroup 2, level 1' IsControlElement=false -++++++++DataItem Name='Cell 2, row 1, rowgroup 2, level 1' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 -++++++++++Text Name='Cell 2, row 1, rowgroup 2, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 2, level 2 Cell 2, row 1, rowgroup 2, level 2 Cell 3, row 1, rowgroup 2, level 2' -++++++++DataItem Name='Cell 1, row 1, rowgroup 2, level 2' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=6 GridItem.RowSpan=1 -++++++++++Text Name='Cell 1, row 1, rowgroup 2, level 2' IsControlElement=false -++++++++DataItem Name='Cell 2, row 1, rowgroup 2, level 2' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=6 GridItem.RowSpan=1 -++++++++++Text Name='Cell 2, row 1, rowgroup 2, level 2' IsControlElement=false -++++++++DataItem Name='Cell 3, row 1, rowgroup 2, level 2' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=6 GridItem.RowSpan=1 -++++++++++Text Name='Cell 3, row 1, rowgroup 2, level 2' IsControlElement=false -++DataGrid Grid.ColumnCount=0 Grid.RowCount=0 Selection.CanSelectMultiple=false Selection.IsSelectionRequired=false Table.RowOrColumnMajor='RowMajor' -++++Group -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 1' -++++++++Text Name='Cell 1, row 1, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 2, rowgroup 1, level 1' -++++++++Text Name='Cell 1, row 2, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 3, rowgroup 1, level 1' -++++++++Text Name='Cell 1, row 3, rowgroup 1, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 2' -++++++++Text Name='Cell 1, row 1, rowgroup 1, level 2' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 1, level 1' -++++++++Text Name='Cell 1, row 1, rowgroup 1, level 1' IsControlElement=false -++++Group -++++++TreeItem Name='Cell 1, row 1, rowgroup 2, level 1 Cell 2, row 1, rowgroup 2, level 1' -++++++++Text Name='Cell 1, row 1, rowgroup 2, level 1 Cell 2, row 1, rowgroup 2, level 1' IsControlElement=false -++++++TreeItem Name='Cell 1, row 1, rowgroup 2, level 2 Cell 2, row 1, rowgroup 2, level 2 Cell 3, row 1, rowgroup 2, level 2' -++++++++Text Name='Cell 1, row 1, rowgroup 2, level 2 Cell 2, row 1, rowgroup 2, level 2 Cell 3, row 1, rowgroup 2, level 2' IsControlElement=false \ No newline at end of file
diff --git a/content/test/data/accessibility/event/add-alert-content-expected-uia-win7.txt b/content/test/data/accessibility/event/add-alert-content-expected-uia-win7.txt deleted file mode 100644 index 2aa360ca..0000000 --- a/content/test/data/accessibility/event/add-alert-content-expected-uia-win7.txt +++ /dev/null
@@ -1,5 +0,0 @@ -LiveRegionChanged on role=alert, name=Foo -=== Start Continuation === -LiveRegionChanged on role=alert, name=Bar -=== Start Continuation === -LiveRegionChanged on role=alert, name=Baz
diff --git a/content/test/data/accessibility/event/add-dialog-described-by-expected-uia-win7.txt b/content/test/data/accessibility/event/add-dialog-described-by-expected-uia-win7.txt deleted file mode 100644 index 1486541..0000000 --- a/content/test/data/accessibility/event/add-dialog-described-by-expected-uia-win7.txt +++ /dev/null
@@ -1,6 +0,0 @@ -AriaProperties changed on role=dialog -AriaProperties changed on role=heading, name=Described by dialog title -AriaProperties changed on role=textbox -IsDataValidForForm changed on role=textbox -StructureChanged/ChildAdded on role=dialog -StructureChanged/ChildrenReordered on role=document
diff --git a/content/test/data/accessibility/event/add-dialog-expected-uia-win7.txt b/content/test/data/accessibility/event/add-dialog-expected-uia-win7.txt deleted file mode 100644 index 7905d6a..0000000 --- a/content/test/data/accessibility/event/add-dialog-expected-uia-win7.txt +++ /dev/null
@@ -1,6 +0,0 @@ -AriaProperties changed on role=dialog, name=Dialog title -AriaProperties changed on role=heading, name=Dialog title -AriaProperties changed on role=textbox -IsDataValidForForm changed on role=textbox -StructureChanged/ChildAdded on role=dialog, name=Dialog title -StructureChanged/ChildrenReordered on role=document
diff --git a/content/test/data/accessibility/event/add-dialog-no-info-expected-uia-win7.txt b/content/test/data/accessibility/event/add-dialog-no-info-expected-uia-win7.txt deleted file mode 100644 index 6145419..0000000 --- a/content/test/data/accessibility/event/add-dialog-no-info-expected-uia-win7.txt +++ /dev/null
@@ -1,6 +0,0 @@ -AriaProperties changed on role=dialog -AriaProperties changed on role=heading, name=Dialog title -AriaProperties changed on role=textbox -IsDataValidForForm changed on role=textbox -StructureChanged/ChildAdded on role=dialog -StructureChanged/ChildrenReordered on role=document
diff --git a/content/test/data/accessibility/event/aria-combo-box-collapse-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-combo-box-collapse-expected-uia-win7.txt deleted file mode 100644 index 3a52630..0000000 --- a/content/test/data/accessibility/event/aria-combo-box-collapse-expected-uia-win7.txt +++ /dev/null
@@ -1,5 +0,0 @@ -AriaProperties changed on role=combobox -AutomationFocusChanged on role=combobox -AutomationFocusChanged on role=combobox -AutomationFocusChanged on role=option, name=Orange -ExpandCollapseExpandCollapseState changed on role=combobox
diff --git a/content/test/data/accessibility/event/aria-flow-to-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-flow-to-expected-uia-win7.txt deleted file mode 100644 index f8223695..0000000 --- a/content/test/data/accessibility/event/aria-flow-to-expected-uia-win7.txt +++ /dev/null
@@ -1,11 +0,0 @@ -FlowsTo changed on role=group, name=a1 -=== Start Continuation === -FlowsTo changed on role=group, name=c2 -=== Start Continuation === -FlowsTo changed on role=group, name=c3 -=== Start Continuation === -FlowsTo changed on role=group, name=a4 -=== Start Continuation === -FlowsTo changed on role=group, name=a5 -=== Start Continuation === -FlowsTo changed on role=group, name=a6
diff --git a/content/test/data/accessibility/event/aria-level-changed-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-level-changed-expected-uia-win7.txt deleted file mode 100644 index 073c1f8..0000000 --- a/content/test/data/accessibility/event/aria-level-changed-expected-uia-win7.txt +++ /dev/null
@@ -1,3 +0,0 @@ -AriaProperties changed on role=heading, name=Item2 -AriaProperties changed on role=heading, name=Item3 -AriaProperties changed on role=heading, name=Item4
diff --git a/content/test/data/accessibility/event/aria-live-changed-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-live-changed-expected-uia-win7.txt deleted file mode 100644 index 72df9b59..0000000 --- a/content/test/data/accessibility/event/aria-live-changed-expected-uia-win7.txt +++ /dev/null
@@ -1,4 +0,0 @@ -AriaProperties changed on role=heading, name=Item2 -AriaProperties changed on role=heading, name=Item3 -AriaProperties changed on role=heading, name=Item4 -AriaProperties changed on role=heading, name=Item5
diff --git a/content/test/data/accessibility/event/aria-posinset-changed-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-posinset-changed-expected-uia-win7.txt deleted file mode 100644 index 8f1bdff4..0000000 --- a/content/test/data/accessibility/event/aria-posinset-changed-expected-uia-win7.txt +++ /dev/null
@@ -1,2 +0,0 @@ -AriaProperties changed on role=option, name=Li1 -AriaProperties changed on role=option, name=Li2
diff --git a/content/test/data/accessibility/event/aria-setsize-changed-expected-uia-win7.txt b/content/test/data/accessibility/event/aria-setsize-changed-expected-uia-win7.txt deleted file mode 100644 index 6877448..0000000 --- a/content/test/data/accessibility/event/aria-setsize-changed-expected-uia-win7.txt +++ /dev/null
@@ -1,3 +0,0 @@ -AriaProperties changed on role=option, name=Li1 -AriaProperties changed on role=option, name=Li2 -AriaProperties changed on role=option, name=Li3
diff --git a/content/test/data/accessibility/event/description-change-expected-uia-win7.txt b/content/test/data/accessibility/event/description-change-expected-uia-win7.txt deleted file mode 100644 index e69de29..0000000 --- a/content/test/data/accessibility/event/description-change-expected-uia-win7.txt +++ /dev/null
diff --git a/content/test/data/accessibility/event/description-change-indirect-expected-uia-win7.txt b/content/test/data/accessibility/event/description-change-indirect-expected-uia-win7.txt deleted file mode 100644 index 22b973d7..0000000 --- a/content/test/data/accessibility/event/description-change-indirect-expected-uia-win7.txt +++ /dev/null
@@ -1,4 +0,0 @@ -Name changed on role=heading, name=oranges -StructureChanged/ChildAdded on role=heading, name=oranges -StructureChanged/ChildRemoved on role=heading, name=oranges -StructureChanged/ChildrenReordered on role=heading, name=oranges
diff --git a/content/test/data/accessibility/event/live-region-add-expected-uia-win7.txt b/content/test/data/accessibility/event/live-region-add-expected-uia-win7.txt deleted file mode 100644 index fe8f434..0000000 --- a/content/test/data/accessibility/event/live-region-add-expected-uia-win7.txt +++ /dev/null
@@ -1,4 +0,0 @@ -LiveRegionChanged on role=group -StructureChanged/ChildAdded on role=group -StructureChanged/ChildrenReordered on role=group -Text_TextChanged on role=document
diff --git a/content/test/data/accessibility/event/live-region-add-live-attribute-expected-uia-win7.txt b/content/test/data/accessibility/event/live-region-add-live-attribute-expected-uia-win7.txt deleted file mode 100644 index 20d199f..0000000 --- a/content/test/data/accessibility/event/live-region-add-live-attribute-expected-uia-win7.txt +++ /dev/null
@@ -1,2 +0,0 @@ -AriaProperties changed on role=group -LiveRegionChanged on role=group
diff --git a/content/test/data/accessibility/event/live-region-change-expected-uia-win7.txt b/content/test/data/accessibility/event/live-region-change-expected-uia-win7.txt deleted file mode 100644 index d377859b..0000000 --- a/content/test/data/accessibility/event/live-region-change-expected-uia-win7.txt +++ /dev/null
@@ -1,2 +0,0 @@ -LiveRegionChanged on role=group -Text_TextChanged on role=description, name=After
diff --git a/content/test/data/accessibility/event/menubar-show-hide-menus-expected-uia-win7.txt b/content/test/data/accessibility/event/menubar-show-hide-menus-expected-uia-win7.txt deleted file mode 100644 index ccaf8fe..0000000 --- a/content/test/data/accessibility/event/menubar-show-hide-menus-expected-uia-win7.txt +++ /dev/null
@@ -1,32 +0,0 @@ -ExpandCollapseExpandCollapseState changed on role=menuitem, name=File -ExpandCollapseExpandCollapseState changed on role=menuitem, name=New -MenuOpened on role=menu, name=File -MenuOpened on role=menu, name=New -MenuOpened on role=region -MenuOpened on role=region -Name changed on role=group, name=open file and new done -=== Start Continuation === -ExpandCollapseExpandCollapseState changed on role=menuitem, name=File -MenuClosed -MenuClosed -MenuClosed -MenuClosed -Name changed on role=group, name=close file and new done -=== Start Continuation === -Name changed on role=group, name=open new done -=== Start Continuation === -ExpandCollapseExpandCollapseState changed on role=menuitem, name=File -ExpandCollapseExpandCollapseState changed on role=menuitem, name=New -MenuOpened on role=menu, name=File -MenuOpened on role=menu, name=New -MenuOpened on role=region -MenuOpened on role=region -Name changed on role=group, name=open file done -=== Start Continuation === -MenuClosed -MenuClosed -MenuClosed -MenuClosed -Name changed on role=group, name=hide menubar done -=== Start Continuation === -Name changed on role=group, name=show menubar done
diff --git a/content/test/data/accessibility/event/menulist-collapse-expected-uia-win7.txt b/content/test/data/accessibility/event/menulist-collapse-expected-uia-win7.txt deleted file mode 100644 index ff95e032..0000000 --- a/content/test/data/accessibility/event/menulist-collapse-expected-uia-win7.txt +++ /dev/null
@@ -1,8 +0,0 @@ -#<skip -- crbug.com/1083492> -AutomationFocusChanged on role=combobox -AutomationFocusChanged on role=combobox -=== Start Continuation === -AriaProperties changed on role=combobox -SelectionItemIsSelected changed on role=combobox -SelectionItem_ElementRemovedFromSelection on role=combobox -ValueValue changed on role=combobox
diff --git a/content/test/data/accessibility/event/menulist-collapse-next-expected-uia-win7.txt b/content/test/data/accessibility/event/menulist-collapse-next-expected-uia-win7.txt deleted file mode 100644 index 9280d2a..0000000 --- a/content/test/data/accessibility/event/menulist-collapse-next-expected-uia-win7.txt +++ /dev/null
@@ -1,11 +0,0 @@ -#<skip -- crbug.com/1083492> -AutomationFocusChanged on role=combobox -AutomationFocusChanged on role=combobox -=== Start Continuation === -AriaProperties changed on role=combobox -AriaProperties changed on role=listitem, name=Orange -AutomationFocusChanged on role=combobox -SelectionItemIsSelected changed on role=combobox -SelectionItemIsSelected changed on role=listitem, name=Orange -SelectionItem_ElementSelected on role=listitem, name=Orange -ValueValue changed on role=combobox
diff --git a/content/test/data/accessibility/event/visibility-hidden-changed-expected-uia-win7.txt b/content/test/data/accessibility/event/visibility-hidden-changed-expected-uia-win7.txt deleted file mode 100644 index c6206d6..0000000 --- a/content/test/data/accessibility/event/visibility-hidden-changed-expected-uia-win7.txt +++ /dev/null
@@ -1,3 +0,0 @@ -AriaProperties changed on role=document -AriaProperties changed on role=heading, name=Item2 -AriaProperties changed on role=heading, name=Item4
diff --git a/content/test/data/accessibility/html/a-name-calc-expected-uia-win7.txt b/content/test/data/accessibility/html/a-name-calc-expected-uia-win7.txt deleted file mode 100644 index 73728b2..0000000 --- a/content/test/data/accessibility/html/a-name-calc-expected-uia-win7.txt +++ /dev/null
@@ -1,15 +0,0 @@ -Document -++Hyperlink Name='InnerText0' -++++Text Name='InnerText0' IsControlElement=false -++Text Name=' ' -++Hyperlink Name='InnerText1' -++++Text Name='InnerText1' IsControlElement=false -++Text Name=' ' -++Hyperlink Name='Title2' -++++Text Name='InnerText2' IsControlElement=false -++Text Name=' ' -++Hyperlink Name='LabelledBy3' -++++Text Name='InnerText3' IsControlElement=false -++Hyperlink Name='Title4' -++Hyperlink Name='Label5' -++Hyperlink Name='LabelledBy6'
diff --git a/content/test/data/accessibility/html/button-name-calc-expected-uia-win7.txt b/content/test/data/accessibility/html/button-name-calc-expected-uia-win7.txt deleted file mode 100644 index 479732d..0000000 --- a/content/test/data/accessibility/html/button-name-calc-expected-uia-win7.txt +++ /dev/null
@@ -1,20 +0,0 @@ -Document -++Button Name='InnerText0' -++Button Name='InnerText1' -++Button Name='AriaLabel2' -++Button Name='LabelledBy3' -++Button Name='LabelledBy4' -++Button Name='InnerText5' -++Button Name='Outer inner' -++++Text Name='Outer' IsControlElement=false -++++Group IsControlElement=false -++++++Text Name='inner' IsControlElement=false -++Button Name='Outer inner1' -++++Text Name='Outer' IsControlElement=false -++++Group Name='inner1' -++++++Text Name='inner2' IsControlElement=false -++Button Name='Outer grandchild' -++++Text Name='Outer' IsControlElement=false -++++Group -++++++Group IsControlElement=false -++++++++Text Name='grandchild' IsControlElement=false
diff --git a/content/test/data/accessibility/html/footer-expected-uia-win7.txt b/content/test/data/accessibility/html/footer-expected-uia-win7.txt deleted file mode 100644 index 0aedab9..0000000 --- a/content/test/data/accessibility/html/footer-expected-uia-win7.txt +++ /dev/null
@@ -1,3 +0,0 @@ -Document -++Group LocalizedControlType='footer' -++++Text Name='Footer element'
diff --git a/content/test/data/accessibility/html/input-date-with-popup-open-expected-uia-win7.txt b/content/test/data/accessibility/html/input-date-with-popup-open-expected-uia-win7.txt deleted file mode 100644 index 45ab732..0000000 --- a/content/test/data/accessibility/html/input-date-with-popup-open-expected-uia-win7.txt +++ /dev/null
@@ -1,134 +0,0 @@ -Document -++Group IsControlElement=false -++++Edit LocalizedControlType='date picker' ControllerFor='{document}' Value.Value='2008-09-01' -++++++Group IsControlElement=false -++++++++Group IsControlElement=false -++++++++++Spinner Name='Month' RangeValue.IsReadOnly=false RangeValue.LargeChange=0.00 RangeValue.SmallChange=0.00 RangeValue.Maximum=12.00 RangeValue.Minimum=1.00 RangeValue.Value=9.00 Value.Value='09' -++++++++++Text Name='/' -++++++++++Spinner Name='Day' RangeValue.IsReadOnly=false RangeValue.LargeChange=0.00 RangeValue.SmallChange=0.00 RangeValue.Maximum=31.00 RangeValue.Minimum=1.00 RangeValue.Value=1.00 Value.Value='01' -++++++++++Text Name='/' -++++++++++Spinner Name='Year' RangeValue.IsReadOnly=false RangeValue.LargeChange=0.00 RangeValue.SmallChange=0.00 RangeValue.Maximum=275760.00 RangeValue.Minimum=1.00 RangeValue.Value=2008.00 Value.Value='2008' -++++++Button Name='Show date picker' ExpandCollapse.ExpandCollapseState='Collapsed' -++++++Pane Name='Chrome Legacy Window' IsControlElement=false -++++++++Document -++++++++++Group -++++++++++++Group IsControlElement=false -++++++++++++++Group IsControlElement=false -++++++++++++++++Group IsControlElement=false -++++++++++++++++++Button Name='Show month selection panel' -++++++++++++++++++++Text Name='September, 2008' IsControlElement=false -++++++++++++++++++++Image -++++++++++++++++Button Name='Show previous month' -++++++++++++++++++Image -++++++++++++++++Button Name='Show next month' -++++++++++++++++++Image -++++++++++++++++DataGrid Grid.ColumnCount=7 Grid.RowCount=6 Selection.CanSelectMultiple=false Selection.IsSelectionRequired=false Table.RowOrColumnMajor='RowMajor' -++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Su' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Mo' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Tu' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='We' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Th' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Fr' -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++Text Name='Sa' -++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++Group IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, August 31, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='31' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, September 1, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=true -++++++++++++++++++++++++++Text Name='1' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, September 2, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='2' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, September 3, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='3' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, September 4, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='4' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, September 5, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='5' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, September 6, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=0 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='6' IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, September 7, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='7' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, September 8, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='8' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, September 9, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='9' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, September 10, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='10' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, September 11, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='11' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, September 12, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='12' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, September 13, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=1 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='13' IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, September 14, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='14' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, September 15, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='15' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, September 16, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='16' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, September 17, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='17' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, September 18, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='18' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, September 19, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='19' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, September 20, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=2 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='20' IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, September 21, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='21' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, September 22, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='22' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, September 23, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='23' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, September 24, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='24' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, September 25, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='25' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, September 26, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='26' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, September 27, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=3 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='27' IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, September 28, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='28' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, September 29, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='29' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, September 30, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='30' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, October 1, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='1' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, October 2, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='2' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, October 3, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='3' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, October 4, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=4 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='4' IsControlElement=false -++++++++++++++++++++++DataItem -++++++++++++++++++++++++DataItem Name='Sunday, October 5, 2008' GridItem.Column=0 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='5' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Monday, October 6, 2008' GridItem.Column=1 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='6' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Tuesday, October 7, 2008' GridItem.Column=2 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='7' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Wednesday, October 8, 2008' GridItem.Column=3 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='8' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Thursday, October 9, 2008' GridItem.Column=4 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='9' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Friday, October 10, 2008' GridItem.Column=5 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='10' IsControlElement=false -++++++++++++++++++++++++DataItem Name='Saturday, October 11, 2008' GridItem.Column=6 GridItem.ColumnSpan=1 GridItem.Row=5 GridItem.RowSpan=1 SelectionItem.IsSelected=false -++++++++++++++++++++++++++Text Name='11' IsControlElement=false -++++++++++++++++++Button Name='Clear' -++++++++++++++++++Button Name='Today' \ No newline at end of file
diff --git a/content/test/data/accessibility/html/list-item-aria-setsize-unknown-expected-uia-win7.txt b/content/test/data/accessibility/html/list-item-aria-setsize-unknown-expected-uia-win7.txt deleted file mode 100644 index 7b8a943..0000000 --- a/content/test/data/accessibility/html/list-item-aria-setsize-unknown-expected-uia-win7.txt +++ /dev/null
@@ -1,15 +0,0 @@ -Document -++List -++++ListItem Name='Level 1, item 5 of set size unknown' -++++++Text Name='Level 1, item 5 of set size unknown' -++++ListItem Name='Level 1, item 6 of set size unknown' -++++++Text Name='Level 1, item 6 of set size unknown' -++++++List -++++++++ListItem Name='Level 2, item 6 of set size unknown' -++++++++++Text Name='Level 2, item 6 of set size unknown' -++++++++ListItem Name='Level 2, item 7 of set size unknown' -++++++++++Text Name='Level 2, item 7 of set size unknown' -++++ListItem Name='Level 1, item 7 of set size 2' -++++++Text Name='Level 1, item 7 of set size 2' -++++ListItem Name='Level 1, item 8 of set size 3' -++++++Text Name='Level 1, item 8 of set size 3'
diff --git a/content/test/data/accessibility/html/list-item-aria-setsize-unknown-flattened-expected-uia-win7.txt b/content/test/data/accessibility/html/list-item-aria-setsize-unknown-flattened-expected-uia-win7.txt deleted file mode 100644 index a5f0fa75..0000000 --- a/content/test/data/accessibility/html/list-item-aria-setsize-unknown-flattened-expected-uia-win7.txt +++ /dev/null
@@ -1,32 +0,0 @@ -Document -++List -++++ListItem Name='Level 1, item 1 of set size unknown' -++++++Text Name='Level 1, item 1 of set size unknown' -++List -++++ListItem Name='++Level 2, item 1 of set size unknown' -++++++Text Name='++Level 2, item 1 of set size unknown' -++List -++++ListItem Name='++Level 2, item 2 of set size unknown' -++++++Text Name='++Level 2, item 2 of set size unknown' -++List -++++ListItem Name='++Level 2, item 3 of set size unknown' -++++++Text Name='++Level 2, item 3 of set size unknown' -++List -++++ListItem Name='++++Level 3, item 1 of set size unknown' -++++++Text Name='++++Level 3, item 1 of set size unknown' -++List -++++ListItem Name='++++Level 3, item 2 of set size unknown' -++++++Text Name='++++Level 3, item 2 of set size unknown' -++List -++++ListItem Name='Level 1, item 2 of set size unknown' -++++++Text Name='Level 1, item 2 of set size unknown' -++List -++++ListItem Name='Level 1, item 3 of set size unknown' -++++++Text Name='Level 1, item 3 of set size unknown' -++List -++++List -++++++ListItem Name='Level Unspecified, aria-setsize attribute does not exist, item 4 of set size 4' -++++++++Text Name='Level Unspecified, aria-setsize attribute does not exist, item 4 of set size 4' -++++List -++++++ListItem Name='Level Unspecified, aria-setsize attribute does not exist, item 5 of set size 5' -++++++++Text Name='Level Unspecified, aria-setsize attribute does not exist, item 5 of set size 5'
diff --git a/content/test/data/accessibility/html/output-expected-uia-win7.txt b/content/test/data/accessibility/html/output-expected-uia-win7.txt deleted file mode 100644 index 84b0aaf..0000000 --- a/content/test/data/accessibility/html/output-expected-uia-win7.txt +++ /dev/null
@@ -1,7 +0,0 @@ -Document LocalizedControlType='document' -++Group LocalizedControlType='group' -++++Spinner LocalizedControlType='spinner' RangeValue.IsReadOnly=false RangeValue.LargeChange=10.00 RangeValue.SmallChange=1.00 RangeValue.Maximum=0.00 RangeValue.Minimum=0.00 RangeValue.Value=0.00 -++++Text LocalizedControlType='text' Name=' + ' -++++Spinner LocalizedControlType='spinner' RangeValue.IsReadOnly=false RangeValue.LargeChange=10.00 RangeValue.SmallChange=1.00 RangeValue.Maximum=0.00 RangeValue.Minimum=0.00 RangeValue.Value=0.00 -++++Text LocalizedControlType='text' Name=' =' -++++StatusBar LocalizedControlType='status bar' IsControlElement=false \ No newline at end of file
diff --git a/content/test/data/attribution_reporting/simulator/basic_iso8601.input.json b/content/test/data/attribution_reporting/simulator/basic_iso8601.input.json deleted file mode 100644 index 163aa30..0000000 --- a/content/test/data/attribution_reporting/simulator/basic_iso8601.input.json +++ /dev/null
@@ -1,28 +0,0 @@ -{ - "sources": [ - { - "timestamp": "1643235573123", - "source_origin": "https://s.test", - "reporting_origin": "https://r.test", - "source_type": "navigation", - "Attribution-Reporting-Register-Source": { - "destination": "https://d.test", - "source_event_id": "123" - } - } - ], - "triggers": [ - { - "timestamp": "1643235574123", - "reporting_origin": "https://r.test", - "destination_origin": "https://d.test", - "Attribution-Reporting-Register-Trigger": { - "event_trigger_data": [ - { - "trigger_data": "7" - } - ] - } - } - ] -}
diff --git a/content/test/data/attribution_reporting/simulator/basic_iso8601.options.json b/content/test/data/attribution_reporting/simulator/basic_iso8601.options.json deleted file mode 100644 index b0a2bed..0000000 --- a/content/test/data/attribution_reporting/simulator/basic_iso8601.options.json +++ /dev/null
@@ -1,3 +0,0 @@ -{ - "report_time_format": "iso8601" -}
diff --git a/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json b/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json deleted file mode 100644 index 124cc9c5..0000000 --- a/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json +++ /dev/null
@@ -1,19 +0,0 @@ -{ - "event_level_reports": [ - { - "report": { - "attribution_destination": "https://d.test", - "randomized_trigger_rate": 0.0024, - "scheduled_report_time": "1643411973", - "source_event_id": "123", - "source_type": "navigation", - "trigger_data": "7" - }, - "intended_report_time": "2022-01-28T23:19:33.123Z", - "report_url": "https://r.test/.well-known/attribution-reporting/report-event-attribution", - "test_info": { - "randomized_trigger": false - } - } - ] -}
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt index 8acd371..fd7bfe12 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -672,7 +672,8 @@ crbug.com/1399117 [ chromeos chromeos-board-amd64-generic passthrough ] WebglExtension_WEBGL_provoking_vertex [ Skip ] crbug.com/1401968 [ chromeos chromeos-board-amd64-generic passthrough ] conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html [ RetryOnFailure ] crbug.com/1401968 [ chromeos chromeos-board-amd64-generic passthrough ] conformance2/textures/video/tex-3d-rg32f-rg-float.html [ RetryOnFailure ] - +crbug.com/1406875 [ chromeos chromeos-board-amd64-generic passthrough ] deqp/functional/gles3/shaderoperator/unary_operator_01.html [ Failure ] +crbug.com/1406875 [ chromeos chromeos-board-amd64-generic passthrough ] deqp/functional/gles3/shaderoperator/unary_operator_02.html [ Failure ] # Must investigate ChromeOS failures with passthrough command decoder. crbug.com/angleproject/5038 [ chromeos passthrough ] conformance/extensions/ext-color-buffer-half-float.html [ Failure ]
diff --git a/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc b/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc index ccd4309..5c247d4a 100644 --- a/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc +++ b/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
@@ -60,6 +60,18 @@ return can_call; } +// Filter the fetched dynamic/session rules by the user provided rule filter. +void FilterRules(std::vector<dnr_api::Rule>& rules, + const dnr_api::GetRulesFilter& rule_filter) { + // Filter the rules by the rule IDs, if provided. + if (rule_filter.rule_ids) { + const base::flat_set<int>& rule_ids = *rule_filter.rule_ids; + base::EraseIf(rules, [rule_ids](const auto& rule) { + return !rule_ids.contains(rule.id); + }); + } +} + } // namespace DeclarativeNetRequestUpdateDynamicRulesFunction:: @@ -119,6 +131,13 @@ ExtensionFunction::ResponseAction DeclarativeNetRequestGetDynamicRulesFunction::Run() { + using Params = dnr_api::GetDynamicRules::Params; + + std::u16string error; + std::unique_ptr<Params> params(Params::Create(args(), &error)); + EXTENSION_FUNCTION_VALIDATE(params); + EXTENSION_FUNCTION_VALIDATE(error.empty()); + auto source = declarative_net_request::FileBackedRulesetSource::CreateDynamic( browser_context(), extension()->id()); @@ -132,11 +151,12 @@ FROM_HERE, std::move(read_dynamic_rules), base::BindOnce( &DeclarativeNetRequestGetDynamicRulesFunction::OnDynamicRulesFetched, - this)); + this, std::move(params))); return RespondLater(); } void DeclarativeNetRequestGetDynamicRulesFunction::OnDynamicRulesFetched( + std::unique_ptr<dnr_api::GetDynamicRules::Params> params, declarative_net_request::ReadJSONRulesResult read_json_result) { using Status = declarative_net_request::ReadJSONRulesResult::Status; @@ -152,6 +172,10 @@ return; } + if (params->filter) { + FilterRules(read_json_result.rules, *params->filter); + } + Respond(ArgumentList( dnr_api::GetDynamicRules::Results::Create(read_json_result.rules))); } @@ -210,12 +234,25 @@ ExtensionFunction::ResponseAction DeclarativeNetRequestGetSessionRulesFunction::Run() { + using Params = dnr_api::GetSessionRules::Params; + + std::u16string error; + std::unique_ptr<Params> params(Params::Create(args(), &error)); + EXTENSION_FUNCTION_VALIDATE(params); + EXTENSION_FUNCTION_VALIDATE(error.empty()); + auto* rules_monitor_service = declarative_net_request::RulesMonitorService::Get(browser_context()); DCHECK(rules_monitor_service); - return RespondNow(OneArgument(base::Value( - rules_monitor_service->GetSessionRulesValue(extension_id()).Clone()))); + auto rules = rules_monitor_service->GetSessionRules(extension_id()); + + if (params->filter) { + FilterRules(rules, *params->filter); + } + + return RespondNow( + ArgumentList(dnr_api::GetSessionRules::Results::Create(rules))); } DeclarativeNetRequestUpdateEnabledRulesetsFunction::
diff --git a/extensions/browser/api/declarative_net_request/declarative_net_request_api.h b/extensions/browser/api/declarative_net_request/declarative_net_request_api.h index d52eebf..c4f3374 100644 --- a/extensions/browser/api/declarative_net_request/declarative_net_request_api.h +++ b/extensions/browser/api/declarative_net_request/declarative_net_request_api.h
@@ -15,6 +15,10 @@ struct ReadJSONRulesResult; } // namespace declarative_net_request +namespace api::declarative_net_request::GetDynamicRules { +struct Params; +} + class DeclarativeNetRequestUpdateDynamicRulesFunction : public ExtensionFunction { public: @@ -46,6 +50,7 @@ private: void OnDynamicRulesFetched( + std::unique_ptr<api::declarative_net_request::GetDynamicRules::Params>, declarative_net_request::ReadJSONRulesResult read_json_result); };
diff --git a/extensions/common/api/declarative_net_request.idl b/extensions/common/api/declarative_net_request.idl index e714767..5f1971f 100644 --- a/extensions/common/api/declarative_net_request.idl +++ b/extensions/common/api/declarative_net_request.idl
@@ -391,6 +391,12 @@ }; [noinline_doc] + dictionary GetRulesFilter { + // If specified, only rules with matching IDs are included. + long[]? ruleIds; + }; + + [noinline_doc] dictionary MatchedRuleInfo { MatchedRule rule; @@ -611,10 +617,15 @@ UpdateRuleOptions options, optional EmptyCallback callback); - // Returns the current set of dynamic rules for the extension. + // Returns the current set of dynamic rules for the extension. Callers can + // optionally filter the list of fetched rules by specifying a + // <code>filter</code>. + // |filter|: An object to filter the list of fetched rules. // |callback|: Called with the set of dynamic rules. An error might be // raised in case of transient internal errors. - [supportsPromises] static void getDynamicRules(GetRulesCallback callback); + [supportsPromises] static void getDynamicRules( + optional GetRulesFilter filter, + GetRulesCallback callback); // Modifies the current set of session scoped rules for the extension. // The rules with IDs listed in <code>options.removeRuleIds</code> are first @@ -637,8 +648,13 @@ optional EmptyCallback callback); // Returns the current set of session scoped rules for the extension. + // Callers can optionally filter the list of fetched rules by specifying a + // <code>filter</code>. + // |filter|: An object to filter the list of fetched rules. // |callback|: Called with the set of session scoped rules. - [supportsPromises] static void getSessionRules(GetRulesCallback callback); + [supportsPromises] static void getSessionRules( + optional GetRulesFilter filter, + GetRulesCallback callback); // Updates the set of enabled static rulesets for the extension. The // rulesets with IDs listed in <code>options.disableRulesetIds</code> are @@ -682,8 +698,8 @@ GetDisabledRuleIdsCallback callback); // Returns all rules matched for the extension. Callers can optionally - // filter the list of matched rules by specifying a |filter|. This method is - // only available to extensions with the + // filter the list of matched rules by specifying a <code>filter</code>. + // This method is only available to extensions with the // <code>declarativeNetRequestFeedback</code> permission or having the // <code>activeTab</code> permission granted for the <code>tabId</code> // specified in <code>filter</code>.
diff --git a/gin/BUILD.gn b/gin/BUILD.gn index af8c59c..d222717 100644 --- a/gin/BUILD.gn +++ b/gin/BUILD.gn
@@ -2,6 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +if (is_android) { + import("//build/config/android/rules.gni") +} import("//base/allocator/partition_allocator/partition_alloc.gni") import("//testing/test.gni") import("//tools/v8_context_snapshot/v8_context_snapshot.gni") @@ -118,6 +121,58 @@ configs += [ "//v8:external_startup_data" ] } +if (is_android && enable_java_templates && + current_toolchain == default_toolchain) { + android_assets("v8_snapshot_assets") { + if (v8_use_external_startup_data) { + disable_compression = true + if (use_v8_context_snapshot) { + deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ] + sources = [ "$root_build_dir/$v8_context_snapshot_filename" ] + } else { + if (current_cpu == "arm" || current_cpu == "x86") { + _arch_suffix = "32" + } else { + _arch_suffix = "64" + } + renaming_sources = [ "$root_build_dir/snapshot_blob.bin" ] + renaming_destinations = [ "snapshot_blob_$_arch_suffix.bin" ] + + # TODO(crbug.com/1402705): Use this more direct target instead in order + # to avoid building all of v8 just to create the snapshot. + deps = [ "//v8" ] + + # deps = [ "//v8:run_mksnapshot_default" ] + } + } + } + + if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { + android_assets("v8_snapshot_secondary_abi_assets") { + assert(android_64bit_target_cpu, + "32-bit targets shouldn't have secondary abi") + disable_compression = true + if (use_v8_context_snapshot) { + sources = [ "$root_out_dir/v8_context_snapshot_32.bin" ] + deps = + [ "//tools/v8_context_snapshot($android_secondary_abi_toolchain)" ] + } else { + _secondary_abi_out_dir = + get_label_info("//v8($android_secondary_abi_toolchain)", + "root_out_dir") + renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ] + renaming_destinations = [ "snapshot_blob_32.bin" ] + + # TODO(crbug.com/1402705): Use this more direct target instead in order + # to avoid building all of v8 just to create the snapshot. + deps = [ "//v8($android_secondary_abi_toolchain)" ] + + # deps = [ "//v8:run_mksnapshot_default($android_secondary_abi_toolchain)" ] + } + } + } +} + source_set("gin_test") { testonly = true sources = [ @@ -186,7 +241,7 @@ # On Android, the APK must bundle the startup data. if (is_android) { - deps += [ "//v8:v8_external_startup_data_assets" ] + deps += [ ":v8_snapshot_assets" ] } if (is_fuchsia) {
diff --git a/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.cc index 54c2914..9bdba35 100644 --- a/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.cc
@@ -815,7 +815,6 @@ std::unique_ptr<SharedImageBacking> AHardwareBufferImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.h b/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.h index dcc6f26..a424c8b 100644 --- a/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/ahardwarebuffer_image_backing_factory.h
@@ -63,7 +63,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc index 80213ef..6c74708 100644 --- a/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc
@@ -75,7 +75,6 @@ std::unique_ptr<SharedImageBacking> AngleVulkanImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.h b/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.h index fe816ee..1fa6b445 100644 --- a/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.h
@@ -40,7 +40,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/compound_image_backing_unittest.cc b/gpu/command_buffer/service/shared_image/compound_image_backing_unittest.cc index 01ef43a..8306791 100644 --- a/gpu/command_buffer/service/shared_image/compound_image_backing_unittest.cc +++ b/gpu/command_buffer/service/shared_image/compound_image_backing_unittest.cc
@@ -60,7 +60,6 @@ } std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing.cc b/gpu/command_buffer/service/shared_image/d3d_image_backing.cc index 42709cda..59b4967 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing.cc
@@ -171,12 +171,20 @@ // The GL internal format can differ from the underlying swap chain or texture // format e.g. RGBA or RGB instead of BGRA or RED/RG for NV12 texture planes. // See EGL_ANGLE_d3d_texture_client_buffer spec for format restrictions. - const auto internal_format = GLInternalFormat(format); - const auto data_type = GLDataType(format); + GLFormatDesc gl_format_desc; + if (format.is_multi_plane()) { + gl_format_desc = + ToGLFormatDesc(format, plane_index, /*use_angle_rgbx_format=*/false); + } else { + // For legacy multiplanar formats, `format` is already plane format (eg. + // RED, RG), so we pass plane_index=0. + gl_format_desc = ToGLFormatDesc(format, /*plane_index=*/0, + /*use_angle_rgbx_format=*/false); + } auto image = base::MakeRefCounted<gl::GLImageD3D>( - size, internal_format, data_type, d3d11_texture, array_slice, plane_index, - swap_chain); - DCHECK_EQ(image->GetDataFormat(), GLDataFormat(format)); + size, gl_format_desc.image_internal_format, gl_format_desc.data_type, + d3d11_texture, array_slice, plane_index, swap_chain); + DCHECK_EQ(image->GetDataFormat(), gl_format_desc.data_format); if (!image->Initialize()) { LOG(ERROR) << "GLImageD3D::Initialize failed"; api->glDeleteTexturesFn(1, &service_id); @@ -231,7 +239,7 @@ } return base::WrapUnique(new D3DImageBacking( mailbox, format, size, color_space, surface_origin, alpha_type, usage, - std::move(d3d11_texture), std::move(gl_texture), + std::move(d3d11_texture), {gl_texture}, /*dxgi_shared_handle_state=*/nullptr, GL_TEXTURE_2D, /*array_slice=*/0u, /*plane_index=*/0u, std::move(swap_chain), is_back_buffer)); } @@ -255,22 +263,30 @@ // composition where fences are used instead. DCHECK(!has_webgpu_usage || dxgi_shared_handle_state); + std::vector<scoped_refptr<gles2::TexturePassthrough>> gl_textures; // Do not cache a GL texture in the backing if it could be owned by WebGPU // since there's no GL context to MakeCurrent in the destructor. - scoped_refptr<gles2::TexturePassthrough> gl_texture; if (!has_webgpu_usage) { - // Creating the GL texture doesn't require exclusive access to the - // underlying D3D11 texture. - gl_texture = CreateGLTexture(format, size, color_space, d3d11_texture, - texture_target, array_slice, plane_index); - if (!gl_texture) { - LOG(ERROR) << "Failed to create GL texture"; - return nullptr; + for (int plane = 0; plane < format.NumberOfPlanes(); plane++) { + // For legacy multiplanar formats, format() is plane format (eg. RED, RG) + // which is_single_plane(), but the real plane is in plane_index so we + // pass that. + unsigned plane_id = format.is_single_plane() ? plane_index : plane; + // Creating the GL texture doesn't require exclusive access to the + // underlying D3D11 texture. + scoped_refptr<gles2::TexturePassthrough> gl_texture = + CreateGLTexture(format, size, color_space, d3d11_texture, + texture_target, array_slice, plane_id); + if (!gl_texture) { + LOG(ERROR) << "Failed to create GL texture"; + return nullptr; + } + gl_textures.push_back(std::move(gl_texture)); } } auto backing = base::WrapUnique(new D3DImageBacking( mailbox, format, size, color_space, surface_origin, alpha_type, usage, - std::move(d3d11_texture), std::move(gl_texture), + std::move(d3d11_texture), std::move(gl_textures), std::move(dxgi_shared_handle_state), texture_target, array_slice, plane_index)); return backing; @@ -289,9 +305,8 @@ size_t array_slice) { return base::WrapUnique(new D3DImageBacking( mailbox, viz::SharedImageFormat::SinglePlane(format), size, color_space, - surface_origin, alpha_type, usage, std::move(d3d11_texture), - std::move(gl_texture), /*dxgi_shared_handle_state=*/nullptr, - gl_texture->target(), array_slice)); + surface_origin, alpha_type, usage, std::move(d3d11_texture), {gl_texture}, + /*dxgi_shared_handle_state=*/nullptr, gl_texture->target(), array_slice)); } // static @@ -332,23 +347,24 @@ // Do not cache a GL texture in the backing if it could be owned by WebGPU // since there's no GL context to MakeCurrent in the destructor. - scoped_refptr<gles2::TexturePassthrough> gl_texture; + std::vector<scoped_refptr<gles2::TexturePassthrough>> gl_textures; if (!has_webgpu_usage) { // Creating the GL texture doesn't require exclusive access to the // underlying D3D11 texture. - gl_texture = CreateGLTexture(plane_format, plane_size, kInvalidColorSpace, - d3d11_texture, kTextureTarget, array_slice, - plane_index); - if (!gl_texture) { + auto texture = CreateGLTexture(plane_format, plane_size, + kInvalidColorSpace, d3d11_texture, + kTextureTarget, array_slice, plane_index); + if (!texture) { LOG(ERROR) << "Failed to create GL texture"; return {}; } + gl_textures.push_back(std::move(texture)); } shared_images[plane_index] = base::WrapUnique(new D3DImageBacking( mailbox, plane_format, plane_size, kInvalidColorSpace, kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, usage, d3d11_texture, - std::move(gl_texture), dxgi_shared_handle_state, kTextureTarget, + std::move(gl_textures), dxgi_shared_handle_state, kTextureTarget, array_slice, plane_index)); if (!shared_images[plane_index]) return {}; @@ -367,27 +383,24 @@ SkAlphaType alpha_type, uint32_t usage, Microsoft::WRL::ComPtr<ID3D11Texture2D> d3d11_texture, - scoped_refptr<gles2::TexturePassthrough> gl_texture, + std::vector<scoped_refptr<gles2::TexturePassthrough>> gl_textures, scoped_refptr<DXGISharedHandleState> dxgi_shared_handle_state, GLenum texture_target, size_t array_slice, size_t plane_index, Microsoft::WRL::ComPtr<IDXGISwapChain1> swap_chain, bool is_back_buffer) - : ClearTrackingSharedImageBacking( - mailbox, - format, - size, - color_space, - surface_origin, - alpha_type, - usage, - gl_texture - ? gl_texture->estimated_size() - : gfx::BufferSizeForBufferFormat(size, ToBufferFormat(format)), - false /* is_thread_safe */), + : ClearTrackingSharedImageBacking(mailbox, + format, + size, + color_space, + surface_origin, + alpha_type, + usage, + format.EstimatedSizeInBytes(size), + false /* is_thread_safe */), d3d11_texture_(std::move(d3d11_texture)), - gl_texture_(std::move(gl_texture)), + gl_textures_(std::move(gl_textures)), dxgi_shared_handle_state_(std::move(dxgi_shared_handle_state)), texture_target_(texture_target), array_slice_(array_slice), @@ -395,15 +408,18 @@ swap_chain_(std::move(swap_chain)), is_back_buffer_(is_back_buffer) { const bool has_webgpu_usage = !!(usage & SHARED_IMAGE_USAGE_WEBGPU); - DCHECK(has_webgpu_usage || gl_texture_); + DCHECK(has_webgpu_usage || !gl_textures_.empty()); if (d3d11_texture_) d3d11_texture_->GetDevice(&d3d11_device_); } D3DImageBacking::~D3DImageBacking() { - if (!have_context()) - gl_texture_->MarkContextLost(); - gl_texture_.reset(); + if (!have_context()) { + for (auto& texture : gl_textures_) { + texture->MarkContextLost(); + } + } + gl_textures_.clear(); dxgi_shared_handle_state_.reset(); swap_chain_.Reset(); d3d11_texture_.Reset(); @@ -904,8 +920,10 @@ } gl::GLImage* D3DImageBacking::GetGLImage() const { - return gl_texture_ ? gl_texture_->GetLevelImage(gl_texture_->target(), 0u) - : nullptr; + DCHECK(format().is_single_plane()); + return !gl_textures_.empty() + ? gl_textures_[0]->GetLevelImage(gl_textures_[0]->target(), 0u) + : nullptr; } bool D3DImageBacking::PresentSwapChain() { @@ -928,11 +946,11 @@ } gl::GLApi* const api = gl::g_current_gl_context; - - DCHECK_EQ(gl_texture_->target(), static_cast<unsigned>(GL_TEXTURE_2D)); gl::ScopedRestoreTexture scoped_restore(api, GL_TEXTURE_2D); - api->glBindTextureFn(GL_TEXTURE_2D, gl_texture_->service_id()); + DCHECK(format().is_single_plane()); + DCHECK_EQ(gl_textures_[0]->target(), static_cast<unsigned>(GL_TEXTURE_2D)); + api->glBindTextureFn(GL_TEXTURE_2D, gl_textures_[0]->service_id()); DCHECK(GetGLImage()); if (!GetGLImage()->BindTexImage(GL_TEXTURE_2D)) { LOG(ERROR) << "GLImage::BindTexImage failed"; @@ -950,18 +968,27 @@ MemoryTypeTracker* tracker) { TRACE_EVENT0("gpu", "D3DImageBacking::ProduceGLTexturePassthrough"); // Lazily create a GL texture if it wasn't provided on initialization. - auto gl_texture = gl_texture_; - if (!gl_texture) { - gl_texture = CreateGLTexture(format(), size(), color_space(), - d3d11_texture_, texture_target_, array_slice_, - plane_index_, swap_chain_); - if (!gl_texture) { - LOG(ERROR) << "Failed to create GL texture"; - return nullptr; + auto gl_textures = gl_textures_; + if (gl_textures.empty()) { + for (int plane = 0; plane < format().NumberOfPlanes(); plane++) { + // For legacy multiplanar formats, format() is plane format (eg. RED, RG) + // which is_single_plane(), but the real plane is in plane_index_ so we + // pass that. + unsigned plane_id = format().is_single_plane() ? plane_index_ : plane; + // Creating the GL texture doesn't require exclusive access to the + // underlying D3D11 texture. + scoped_refptr<gles2::TexturePassthrough> gl_texture = + CreateGLTexture(format(), size(), color_space(), d3d11_texture_, + texture_target_, array_slice_, plane_id, swap_chain_); + if (!gl_texture) { + LOG(ERROR) << "Failed to create GL texture"; + return nullptr; + } + gl_textures.push_back(std::move(gl_texture)); } } return std::make_unique<GLTexturePassthroughD3DImageRepresentation>( - manager, this, tracker, std::move(gl_texture)); + manager, this, tracker, std::move(gl_textures)); } std::unique_ptr<SkiaImageRepresentation> D3DImageBacking::ProduceSkia(
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing.h b/gpu/command_buffer/service/shared_image/d3d_image_backing.h index 69fce96..9d4f5f4 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing.h +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing.h
@@ -196,7 +196,7 @@ SkAlphaType alpha_type, uint32_t usage, Microsoft::WRL::ComPtr<ID3D11Texture2D> d3d11_texture, - scoped_refptr<gles2::TexturePassthrough> gl_texture, + std::vector<scoped_refptr<gles2::TexturePassthrough>> gl_textures, scoped_refptr<DXGISharedHandleState> dxgi_shared_handle_state = nullptr, GLenum texture_target = GL_TEXTURE_2D, size_t array_slice = 0u, @@ -219,7 +219,7 @@ Microsoft::WRL::ComPtr<ID3D11Texture2D> d3d11_texture_; // Can be null for backings owned by non-GL producers e.g. WebGPU. - scoped_refptr<gles2::TexturePassthrough> gl_texture_; + std::vector<scoped_refptr<gles2::TexturePassthrough>> gl_textures_; // Holds DXGI shared handle and the keyed mutex if present. Can be shared // between plane shared image backings of a multi-plane texture, or between
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc index ea89e6cb..f787e74 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc
@@ -79,32 +79,41 @@ // Formats supported by CreateSharedImage(GMB). DXGI_FORMAT GetDXGIFormat(viz::SharedImageFormat format) { - switch (format.resource_format()) { - case viz::ResourceFormat::RGBA_8888: - return DXGI_FORMAT_R8G8B8A8_UNORM; - case viz::ResourceFormat::BGRA_8888: - return DXGI_FORMAT_B8G8R8A8_UNORM; - case viz::ResourceFormat::RGBA_F16: - return DXGI_FORMAT_R16G16B16A16_FLOAT; - case viz::ResourceFormat::YUV_420_BIPLANAR: - return DXGI_FORMAT_NV12; - default: - return DXGI_FORMAT_UNKNOWN; + if (format.is_single_plane()) { + switch (format.resource_format()) { + case viz::ResourceFormat::RGBA_8888: + return DXGI_FORMAT_R8G8B8A8_UNORM; + case viz::ResourceFormat::BGRA_8888: + return DXGI_FORMAT_B8G8R8A8_UNORM; + case viz::ResourceFormat::RGBA_F16: + return DXGI_FORMAT_R16G16B16A16_FLOAT; + case viz::ResourceFormat::YUV_420_BIPLANAR: + return DXGI_FORMAT_NV12; + default: + return DXGI_FORMAT_UNKNOWN; + } } + if (format == viz::MultiPlaneFormat::kYUV_420_BIPLANAR) { + return DXGI_FORMAT_NV12; + } + return DXGI_FORMAT_UNKNOWN; } // Typeless formats supported by CreateSharedImage(GMB) for XR. DXGI_FORMAT GetDXGITypelessFormat(viz::SharedImageFormat format) { - switch (format.resource_format()) { - case viz::ResourceFormat::RGBA_8888: - return DXGI_FORMAT_R8G8B8A8_TYPELESS; - case viz::ResourceFormat::BGRA_8888: - return DXGI_FORMAT_B8G8R8A8_TYPELESS; - case viz::ResourceFormat::RGBA_F16: - return DXGI_FORMAT_R16G16B16A16_TYPELESS; - default: - return DXGI_FORMAT_UNKNOWN; + if (format.is_single_plane()) { + switch (format.resource_format()) { + case viz::ResourceFormat::RGBA_8888: + return DXGI_FORMAT_R8G8B8A8_TYPELESS; + case viz::ResourceFormat::BGRA_8888: + return DXGI_FORMAT_B8G8R8A8_TYPELESS; + case viz::ResourceFormat::RGBA_F16: + return DXGI_FORMAT_R16G16B16A16_TYPELESS; + default: + return DXGI_FORMAT_UNKNOWN; + } } + return DXGI_FORMAT_UNKNOWN; } scoped_refptr<DXGISharedHandleState> ValidateAndOpenSharedHandle( @@ -421,7 +430,20 @@ std::unique_ptr<SharedImageBacking> D3DImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, + viz::SharedImageFormat format, + const gfx::Size& size, + const gfx::ColorSpace& color_space, + GrSurfaceOrigin surface_origin, + SkAlphaType alpha_type, + uint32_t usage, + gfx::GpuMemoryBufferHandle handle) { + return CreateSharedImageGMBs(mailbox, std::move(handle), format, + gfx::BufferPlane::DEFAULT, size, color_space, + surface_origin, alpha_type, usage); +} + +std::unique_ptr<SharedImageBacking> D3DImageBackingFactory::CreateSharedImage( + const Mailbox& mailbox, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane, @@ -435,43 +457,11 @@ << " for format " << gfx::BufferFormatToString(buffer_format); return nullptr; } - if (!gpu::IsImageSizeValidForGpuMemoryBufferFormat(size, buffer_format)) { - LOG(ERROR) << "Invalid image size " << size.ToString() << " for " - << gfx::BufferFormatToString(buffer_format); - return nullptr; - } - DCHECK_EQ(handle.type, gfx::DXGI_SHARED_HANDLE); - DCHECK(plane == gfx::BufferPlane::DEFAULT || plane == gfx::BufferPlane::Y || - plane == gfx::BufferPlane::UV); - - auto si_format = viz::SharedImageFormat::SinglePlane( + auto format = viz::SharedImageFormat::SinglePlane( viz::GetResourceFormat(buffer_format)); - scoped_refptr<DXGISharedHandleState> dxgi_shared_handle_state = - ValidateAndOpenSharedHandle(dxgi_shared_handle_manager_.get(), - std::move(handle), si_format, size); - if (!dxgi_shared_handle_state) - return nullptr; - - auto d3d11_texture = dxgi_shared_handle_state->d3d11_texture(); - - // Get format and size per plane. For multiplanar formats, `plane_format` is - // R/RG based on channels in plane. - const gfx::Size plane_size = GetPlaneSize(plane, size); - const viz::SharedImageFormat plane_format = - viz::SharedImageFormat::SinglePlane( - viz::GetResourceFormat(GetPlaneBufferFormat(plane, buffer_format))); - const GLenum texture_target = GL_TEXTURE_2D; - const size_t plane_index = plane == gfx::BufferPlane::UV ? 1 : 0; - - auto backing = D3DImageBacking::Create( - mailbox, plane_format, plane_size, color_space, surface_origin, - alpha_type, usage, std::move(d3d11_texture), - std::move(dxgi_shared_handle_state), texture_target, /*array_slice=*/0u, - /*plane_index=*/plane_index); - if (backing) - backing->SetCleared(); - return backing; + return CreateSharedImageGMBs(mailbox, std::move(handle), format, plane, size, + color_space, surface_origin, alpha_type, usage); } bool D3DImageBackingFactory::UseMapOnDefaultTextures() { @@ -500,10 +490,6 @@ gfx::GpuMemoryBufferType gmb_type, GrContextType gr_context_type, base::span<const uint8_t> pixel_data) { - if (format.is_multi_plane()) { - return false; - } - if (!pixel_data.empty()) { return false; } @@ -531,4 +517,64 @@ return true; } +std::unique_ptr<SharedImageBacking> +D3DImageBackingFactory::CreateSharedImageGMBs( + const Mailbox& mailbox, + gfx::GpuMemoryBufferHandle handle, + viz::SharedImageFormat format, + gfx::BufferPlane plane, + const gfx::Size& size, + const gfx::ColorSpace& color_space, + GrSurfaceOrigin surface_origin, + SkAlphaType alpha_type, + uint32_t usage) { + const gfx::BufferFormat buffer_format = gpu::ToBufferFormat(format); + if (!gpu::IsImageSizeValidForGpuMemoryBufferFormat(size, buffer_format)) { + LOG(ERROR) << "Invalid image size " << size.ToString() << " for " + << gfx::BufferFormatToString(buffer_format); + return nullptr; + } + + DCHECK_EQ(handle.type, gfx::DXGI_SHARED_HANDLE); + DCHECK(plane == gfx::BufferPlane::DEFAULT || plane == gfx::BufferPlane::Y || + plane == gfx::BufferPlane::UV); + + scoped_refptr<DXGISharedHandleState> dxgi_shared_handle_state = + ValidateAndOpenSharedHandle(dxgi_shared_handle_manager_.get(), + std::move(handle), format, size); + if (!dxgi_shared_handle_state) { + return nullptr; + } + + auto d3d11_texture = dxgi_shared_handle_state->d3d11_texture(); + + const GLenum texture_target = GL_TEXTURE_2D; + std::unique_ptr<D3DImageBacking> backing; + if (format.IsLegacyMultiplanar()) { + // Get format and size per plane. For multiplanar formats, `plane_format` is + // R/RG based on channels in plane. + const gfx::Size plane_size = GetPlaneSize(plane, size); + const viz::SharedImageFormat plane_format = + viz::SharedImageFormat::SinglePlane( + viz::GetResourceFormat(GetPlaneBufferFormat(plane, buffer_format))); + const size_t plane_index = plane == gfx::BufferPlane::UV ? 1 : 0; + backing = D3DImageBacking::Create( + mailbox, plane_format, plane_size, color_space, surface_origin, + alpha_type, usage, std::move(d3d11_texture), + std::move(dxgi_shared_handle_state), texture_target, /*array_slice=*/0u, + /*plane_index=*/plane_index); + } else { + backing = D3DImageBacking::Create( + mailbox, format, size, color_space, surface_origin, alpha_type, usage, + std::move(d3d11_texture), std::move(dxgi_shared_handle_state), + texture_target, /*array_slice=*/0u, + /*plane_index=*/0); + } + + if (backing) { + backing->SetCleared(); + } + return backing; +} + } // namespace gpu
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.h b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.h index b16f520..9368b36 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.h
@@ -93,7 +93,15 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, + viz::SharedImageFormat format, + const gfx::Size& size, + const gfx::ColorSpace& color_space, + GrSurfaceOrigin surface_origin, + SkAlphaType alpha_type, + uint32_t usage, + gfx::GpuMemoryBufferHandle handle) override; + std::unique_ptr<SharedImageBacking> CreateSharedImage( + const Mailbox& mailbox, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane, @@ -116,6 +124,21 @@ } private: + // `format` can be single planar format, multiplanar format (with + // BufferPlane::DEFAULT) or legacy multiplanar format converted to single + // planar for per plane access eg. BufferFormat::YUV_420_BIPLANAR converted + // to RED_8 (for BufferPlane::Y), RG_88 (for BufferPlane::UV). It does not + // support external sampler use cases. + std::unique_ptr<SharedImageBacking> CreateSharedImageGMBs( + const Mailbox& mailbox, + gfx::GpuMemoryBufferHandle handle, + viz::SharedImageFormat format, + gfx::BufferPlane plane, + const gfx::Size& size, + const gfx::ColorSpace& color_space, + GrSurfaceOrigin surface_origin, + SkAlphaType alpha_type, + uint32_t usage); bool UseMapOnDefaultTextures(); Microsoft::WRL::ComPtr<ID3D11Device> d3d11_device_;
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory_unittest.cc b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory_unittest.cc index e866b6f..073cf15 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory_unittest.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory_unittest.cc
@@ -16,6 +16,7 @@ #include "base/test/test_timeouts.h" #include "base/unguessable_token.h" #include "components/viz/common/resources/resource_format_utils.h" +#include "components/viz/common/resources/shared_image_format.h" #include "gpu/command_buffer/common/shared_image_usage.h" #include "gpu/command_buffer/service/dxgi_shared_handle_manager.h" #include "gpu/command_buffer/service/service_utils.h" @@ -541,9 +542,14 @@ uint8_t u_fill_value, uint8_t v_fill_value, bool use_shared_handle, - bool use_factory); - void RunVideoTest(bool use_shared_handle, bool use_factory); - void RunOverlayTest(bool use_shared_handle, bool use_factory); + bool use_factory_per_plane, + bool use_factory_multiplanar); + void RunVideoTest(bool use_shared_handle, + bool use_factory_per_plane, + bool use_factory_multiplanar); + void RunOverlayTest(bool use_shared_handle, + bool use_factory_per_plane, + bool use_factory_multiplanar); void RunCreateSharedImageFromHandleTest(DXGI_FORMAT dxgi_format); scoped_refptr<SharedContextState> context_state_; @@ -1241,8 +1247,8 @@ auto dup_handle = gpu_memory_buffer_handle.Clone(); auto backing = shared_image_factory_->CreateSharedImage( - mailbox, 0, std::move(gpu_memory_buffer_handle), buffer_format, plane, - size, color_space, surface_origin, alpha_type, usage); + mailbox, std::move(gpu_memory_buffer_handle), buffer_format, plane, size, + color_space, surface_origin, alpha_type, usage); ASSERT_NE(backing, nullptr); EXPECT_EQ(backing->format(), format); @@ -1262,7 +1268,7 @@ // shared handle state and texture with the first backing. auto dup_mailbox = Mailbox::GenerateForSharedImage(); auto dup_backing = shared_image_factory_->CreateSharedImage( - dup_mailbox, 0, std::move(dup_handle), buffer_format, plane, size, + dup_mailbox, std::move(dup_handle), buffer_format, plane, size, color_space, surface_origin, alpha_type, usage); ASSERT_NE(dup_backing, nullptr); @@ -1535,7 +1541,8 @@ uint8_t u_fill_value, uint8_t v_fill_value, bool use_shared_handle, - bool use_factory) { + bool use_factory_per_plane, + bool use_factory_multiplanar) { DCHECK(IsD3DSharedImageSupported()); Microsoft::WRL::ComPtr<ID3D11Device> d3d11_device = @@ -1594,7 +1601,7 @@ gfx::BufferPlane::UV}; std::vector<std::unique_ptr<SharedImageBacking>> shared_image_backings; - if (use_factory) { + if (use_factory_per_plane) { HANDLE dup_handle = nullptr; if (!::DuplicateHandle(::GetCurrentProcess(), shared_handle.get(), ::GetCurrentProcess(), &dup_handle, 0, false, @@ -1618,7 +1625,7 @@ for (size_t plane = 0; plane < kNumPlanes; plane++) { auto backing = shared_image_factory_->CreateSharedImage( - mailboxes[plane], 0, std::move(gmb_handles[plane]), + mailboxes[plane], std::move(gmb_handles[plane]), gfx::BufferFormat::YUV_420_BIPLANAR, planes[plane], size, gfx::ColorSpace(), kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, usage); @@ -1626,6 +1633,21 @@ return {}; shared_image_backings.push_back(std::move(backing)); } + } else if (use_factory_multiplanar) { + gfx::GpuMemoryBufferHandle gmb_handle; + gmb_handle.type = gfx::DXGI_SHARED_HANDLE; + gmb_handle.dxgi_handle = std::move(shared_handle); + DCHECK(gmb_handle.dxgi_handle.IsValid()); + gmb_handle.dxgi_token = gfx::DXGIHandleToken(); + + auto backing = shared_image_factory_->CreateSharedImage( + mailboxes[0], viz::MultiPlaneFormat::kYUV_420_BIPLANAR, size, + gfx::ColorSpace(), kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, usage, + std::move(gmb_handle)); + if (!backing) { + return {}; + } + shared_image_backings.push_back(std::move(backing)); } else { scoped_refptr<DXGISharedHandleState> dxgi_shared_handle_state; if (use_shared_handle) { @@ -1638,23 +1660,41 @@ mailboxes, DXGI_FORMAT_NV12, size, usage, d3d11_texture, /*array_slice=*/0, std::move(dxgi_shared_handle_state)); } - EXPECT_EQ(shared_image_backings.size(), kNumPlanes); - - const gfx::Size plane_sizes[kNumPlanes] = { - size, gfx::Size(size.width() / 2, size.height() / 2)}; - const viz::ResourceFormat plane_formats[kNumPlanes] = {viz::RED_8, - viz::RG_88}; std::vector<std::unique_ptr<SharedImageRepresentationFactoryRef>> shared_image_refs; - for (size_t i = 0; i < std::min(shared_image_backings.size(), kNumPlanes); - i++) { - auto& backing = shared_image_backings[i]; + if (!use_factory_multiplanar) { + EXPECT_EQ(shared_image_backings.size(), kNumPlanes); - EXPECT_EQ(backing->mailbox(), mailboxes[i]); - EXPECT_EQ(backing->size(), plane_sizes[i]); - EXPECT_EQ(backing->format(), - viz::SharedImageFormat::SinglePlane(plane_formats[i])); + const gfx::Size plane_sizes[kNumPlanes] = { + size, gfx::Size(size.width() / 2, size.height() / 2)}; + const viz::ResourceFormat plane_formats[kNumPlanes] = {viz::RED_8, + viz::RG_88}; + + for (size_t i = 0; i < std::min(shared_image_backings.size(), kNumPlanes); + i++) { + auto& backing = shared_image_backings[i]; + + EXPECT_EQ(backing->mailbox(), mailboxes[i]); + EXPECT_EQ(backing->size(), plane_sizes[i]); + EXPECT_EQ(backing->format(), + viz::SharedImageFormat::SinglePlane(plane_formats[i])); + EXPECT_EQ(backing->color_space(), gfx::ColorSpace()); + EXPECT_EQ(backing->surface_origin(), kTopLeft_GrSurfaceOrigin); + EXPECT_EQ(backing->alpha_type(), kPremul_SkAlphaType); + EXPECT_EQ(backing->usage(), usage); + EXPECT_TRUE(backing->IsCleared()); + + shared_image_refs.push_back(shared_image_manager_.Register( + std::move(backing), memory_type_tracker_.get())); + } + } else { + EXPECT_EQ(shared_image_backings.size(), 1u); + + auto& backing = shared_image_backings[0]; + EXPECT_EQ(backing->mailbox(), mailboxes[0]); + EXPECT_EQ(backing->size(), size); + EXPECT_EQ(backing->format(), viz::MultiPlaneFormat::kYUV_420_BIPLANAR); EXPECT_EQ(backing->color_space(), gfx::ColorSpace()); EXPECT_EQ(backing->surface_origin(), kTopLeft_GrSurfaceOrigin); EXPECT_EQ(backing->alpha_type(), kPremul_SkAlphaType); @@ -1669,7 +1709,8 @@ } void D3DImageBackingFactoryTest::RunVideoTest(bool use_shared_handle, - bool use_factory) { + bool use_factory_per_plane, + bool use_factory_multiplanar) { if (!IsD3DSharedImageSupported()) return; @@ -1679,10 +1720,14 @@ const uint8_t kUFillValue = 0x23; const uint8_t kVFillValue = 0x34; - auto shared_image_refs = - CreateVideoImages(size, kYFillValue, kUFillValue, kVFillValue, - use_shared_handle, use_factory); - ASSERT_EQ(shared_image_refs.size(), 2u); + auto shared_image_refs = CreateVideoImages( + size, kYFillValue, kUFillValue, kVFillValue, use_shared_handle, + use_factory_per_plane, use_factory_multiplanar); + if (use_factory_multiplanar) { + ASSERT_EQ(shared_image_refs.size(), 1u); + } else { + ASSERT_EQ(shared_image_refs.size(), 2u); + } // Setup GL shaders, framebuffers, uniforms, etc. static const char* kVideoFragmentShaderSrcTextureExternal = @@ -1722,8 +1767,9 @@ SCOPED_GL_CLEANUP_VAR(api, DeleteShader, fragment_shader); ASSERT_NE(fragment_shader, 0u); api->glShaderSourceFn(fragment_shader, 1, - use_factory ? &kVideoFragmentShaderSrcTexture2D - : &kVideoFragmentShaderSrcTextureExternal, + (use_factory_per_plane || use_factory_multiplanar) + ? &kVideoFragmentShaderSrcTexture2D + : &kVideoFragmentShaderSrcTextureExternal, nullptr); api->glCompileShaderFn(fragment_shader); api->glGetShaderivFn(fragment_shader, GL_COMPILE_STATUS, &status); @@ -1788,7 +1834,7 @@ // Create the representations for the planes, get the texture ids, bind to // samplers, and draw. - { + if (!use_factory_multiplanar) { auto y_texture = shared_image_representation_factory_->ProduceGLTexturePassthrough( shared_image_refs[0]->mailbox()); @@ -1810,13 +1856,57 @@ ASSERT_NE(uv_texture_access, nullptr); api->glActiveTextureFn(GL_TEXTURE0); - api->glBindTextureFn(use_factory ? GL_TEXTURE_2D : GL_TEXTURE_EXTERNAL_OES, - y_texture->GetTexturePassthrough()->service_id()); + api->glBindTextureFn( + use_factory_per_plane ? GL_TEXTURE_2D : GL_TEXTURE_EXTERNAL_OES, + y_texture->GetTexturePassthrough()->service_id()); ASSERT_EQ(api->glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); api->glActiveTextureFn(GL_TEXTURE1); - api->glBindTextureFn(use_factory ? GL_TEXTURE_2D : GL_TEXTURE_EXTERNAL_OES, - uv_texture->GetTexturePassthrough()->service_id()); + api->glBindTextureFn( + use_factory_per_plane ? GL_TEXTURE_2D : GL_TEXTURE_EXTERNAL_OES, + uv_texture->GetTexturePassthrough()->service_id()); + ASSERT_EQ(api->glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); + + api->glUseProgramFn(program); + + api->glEnableVertexAttribArrayFn(vertex_location); + api->glVertexAttribPointerFn(vertex_location, 2, GL_FLOAT, GL_FALSE, 0, + nullptr); + + api->glUniform1iFn(y_texture_location, 0); + api->glUniform1iFn(uv_texture_location, 1); + + api->glDrawArraysFn(GL_TRIANGLES, 0, 6); + ASSERT_EQ(api->glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); + + GLubyte pixel_color[4]; + api->glReadPixelsFn(size.width() / 2, size.height() / 2, 1, 1, GL_RGBA, + GL_UNSIGNED_BYTE, pixel_color); + EXPECT_EQ(kYFillValue, pixel_color[0]); + EXPECT_EQ(kUFillValue, pixel_color[1]); + EXPECT_EQ(kVFillValue, pixel_color[2]); + EXPECT_EQ(255, pixel_color[3]); + } else { + auto texture = + shared_image_representation_factory_->ProduceGLTexturePassthrough( + shared_image_refs[0]->mailbox()); + ASSERT_NE(texture, nullptr); + + auto texture_access = texture->BeginScopedAccess( + GL_SHARED_IMAGE_ACCESS_MODE_READ_CHROMIUM, + SharedImageRepresentation::AllowUnclearedAccess::kNo); + ASSERT_NE(texture_access, nullptr); + + api->glActiveTextureFn(GL_TEXTURE0); + api->glBindTextureFn( + GL_TEXTURE_2D, + texture->GetTexturePassthrough(/*plane_index=*/0)->service_id()); + ASSERT_EQ(api->glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); + + api->glActiveTextureFn(GL_TEXTURE1); + api->glBindTextureFn( + GL_TEXTURE_2D, + texture->GetTexturePassthrough(/*plane_index=*/1)->service_id()); ASSERT_EQ(api->glGetErrorFn(), static_cast<GLenum>(GL_NO_ERROR)); api->glUseProgramFn(program); @@ -1843,19 +1933,29 @@ } TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTexture) { - RunVideoTest(/*use_shared_handle=*/false, /*use_factory=*/false); + RunVideoTest(/*use_shared_handle=*/false, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/false); } TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureSharedHandle) { - RunVideoTest(/*use_shared_handle=*/true, /*use_factory=*/false); + RunVideoTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/false); } -TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureViaFactory) { - RunVideoTest(/*use_shared_handle=*/true, /*use_factory=*/true); +TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureViaFactoryPerPlane) { + RunVideoTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/true, + /*use_factory_multiplanar=*/false); +} + +TEST_F(D3DImageBackingFactoryTest, + CreateFromVideoTextureViaFactoryMultiplanar) { + RunVideoTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/true); } void D3DImageBackingFactoryTest::RunOverlayTest(bool use_shared_handle, - bool use_factory) { + bool use_factory_per_plane, + bool use_factory_multiplanar) { if (!IsD3DSharedImageSupported()) return; @@ -1865,10 +1965,14 @@ constexpr uint8_t kUFillValue = 0x23; constexpr uint8_t kVFillValue = 0x34; - auto shared_image_refs = - CreateVideoImages(size, kYFillValue, kUFillValue, kVFillValue, - use_shared_handle, use_factory); - ASSERT_EQ(shared_image_refs.size(), 2u); + auto shared_image_refs = CreateVideoImages( + size, kYFillValue, kUFillValue, kVFillValue, use_shared_handle, + use_factory_per_plane, use_factory_multiplanar); + if (use_factory_multiplanar) { + ASSERT_EQ(shared_image_refs.size(), 1u); + } else { + ASSERT_EQ(shared_image_refs.size(), 2u); + } auto overlay_representation = shared_image_representation_factory_->ProduceOverlay( @@ -1912,15 +2016,25 @@ } TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureOverlay) { - RunOverlayTest(/*use_shared_handle=*/false, /*use_factory=*/false); + RunOverlayTest(/*use_shared_handle=*/false, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/false); } TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureSharedHandleOverlay) { - RunOverlayTest(/*use_shared_handle=*/true, /*use_factory=*/false); + RunOverlayTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/false); } -TEST_F(D3DImageBackingFactoryTest, CreateFromVideoTextureViaFactoryOverlay) { - RunOverlayTest(/*use_shared_handle=*/true, /*use_factory=*/true); +TEST_F(D3DImageBackingFactoryTest, + CreateFromVideoTextureViaFactoryPerPlaneOverlay) { + RunOverlayTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/true, + /*use_factory_multiplanar=*/false); +} + +TEST_F(D3DImageBackingFactoryTest, + CreateFromVideoTextureViaFactoryMultiplanarOverlay) { + RunOverlayTest(/*use_shared_handle=*/true, /*use_factory_per_plane=*/false, + /*use_factory_multiplanar=*/true); } TEST_F(D3DImageBackingFactoryTest, CreateFromSharedMemory) {
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_representation.cc b/gpu/command_buffer/service/shared_image/d3d_image_representation.cc index 4dacf38..fd57216 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_representation.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_representation.cc
@@ -16,41 +16,41 @@ SharedImageManager* manager, SharedImageBacking* backing, MemoryTypeTracker* tracker, - scoped_refptr<gles2::TexturePassthrough> texture) + std::vector<scoped_refptr<gles2::TexturePassthrough>> textures) : GLTexturePassthroughImageRepresentation(manager, backing, tracker), - texture_(std::move(texture)) {} + textures_(std::move(textures)) {} const scoped_refptr<gles2::TexturePassthrough>& GLTexturePassthroughD3DImageRepresentation::GetTexturePassthrough( int plane_index) { - DCHECK_EQ(plane_index, 0); - return texture_; + return textures_[plane_index]; } GLTexturePassthroughD3DImageRepresentation:: ~GLTexturePassthroughD3DImageRepresentation() = default; bool GLTexturePassthroughD3DImageRepresentation::BeginAccess(GLenum mode) { - // Bind the GLImage if necessary. - auto texture = - GLTexturePassthroughImageRepresentation::GetTexturePassthrough(); - if (texture->is_bind_pending()) { - GLenum target = texture->target(); - gl::GLImage* image = texture->GetLevelImage(target, 0); + D3DImageBacking* d3d_image_backing = static_cast<D3DImageBacking*>(backing()); + for (int plane = 0; plane < format().NumberOfPlanes(); plane++) { + // Bind the GLImage if necessary. + auto texture = GetTexturePassthrough(plane); + if (texture->is_bind_pending()) { + GLenum target = texture->target(); + gl::GLImage* image = texture->GetLevelImage(target, 0); - if (image) { - // First ensure that |target| is bound to |texture|. - gl::GLApi* const api = gl::g_current_gl_context; - gl::ScopedRestoreTexture scoped_restore(api, target); - api->glBindTextureFn(target, texture->service_id()); + if (image) { + // First ensure that |target| is bound to |texture|. + gl::GLApi* const api = gl::g_current_gl_context; + gl::ScopedRestoreTexture scoped_restore(api, target); + api->glBindTextureFn(target, texture->service_id()); - // Now bind the GLImage to |texture| via |target|. - image->BindTexImage(target); + // Now bind the GLImage to |texture| via |target|. + image->BindTexImage(target); - texture->clear_bind_pending(); + texture->clear_bind_pending(); + } } } - D3DImageBacking* d3d_image_backing = static_cast<D3DImageBacking*>(backing()); bool write_access = mode == GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM; return d3d_image_backing->BeginAccessD3D11(write_access); }
diff --git a/gpu/command_buffer/service/shared_image/d3d_image_representation.h b/gpu/command_buffer/service/shared_image/d3d_image_representation.h index 5c8166a..6c9cdcf 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_representation.h +++ b/gpu/command_buffer/service/shared_image/d3d_image_representation.h
@@ -31,7 +31,7 @@ SharedImageManager* manager, SharedImageBacking* backing, MemoryTypeTracker* tracker, - scoped_refptr<gles2::TexturePassthrough> texture); + std::vector<scoped_refptr<gles2::TexturePassthrough>> textures); ~GLTexturePassthroughD3DImageRepresentation() override; const scoped_refptr<gles2::TexturePassthrough>& GetTexturePassthrough( @@ -41,7 +41,7 @@ bool BeginAccess(GLenum mode) override; void EndAccess() override; - scoped_refptr<gles2::TexturePassthrough> texture_; + std::vector<scoped_refptr<gles2::TexturePassthrough>> textures_; }; // Representation of a D3DImageBacking as a Dawn Texture
diff --git a/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.cc index 3f52e88..5c040c1c 100644 --- a/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.cc
@@ -87,7 +87,6 @@ std::unique_ptr<SharedImageBacking> DCompImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.h b/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.h index 5319b4e4..801f204 100644 --- a/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/dcomp_image_backing_factory.h
@@ -52,7 +52,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc index dd14571c..08ed4265 100644 --- a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.cc
@@ -64,7 +64,6 @@ std::unique_ptr<SharedImageBacking> EGLImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.h b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.h index 6a2a0a1..093b54c 100644 --- a/gpu/command_buffer/service/shared_image/egl_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/egl_image_backing_factory.h
@@ -58,7 +58,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc index 8bc771b..548c25f 100644 --- a/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc
@@ -132,7 +132,6 @@ std::unique_ptr<SharedImageBacking> ExternalVkImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h b/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h index 809b5f2..0e4b56e0 100644 --- a/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h
@@ -55,7 +55,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.cc index 6af2f07..4307a8b 100644 --- a/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.cc
@@ -79,7 +79,6 @@ std::unique_ptr<SharedImageBacking> GLTextureImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.h b/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.h index 1f98342..3d8a0f0 100644 --- a/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/gl_texture_image_backing_factory.h
@@ -62,7 +62,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.h b/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.h index f5075b4..247ed3f 100644 --- a/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.h
@@ -89,7 +89,6 @@ gfx::GpuMemoryBufferHandle handle) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.mm b/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.mm index f0a0fd1..ae075ef 100644 --- a/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.mm +++ b/gpu/command_buffer/service/shared_image/iosurface_image_backing_factory.mm
@@ -434,7 +434,6 @@ std::unique_ptr<SharedImageBacking> IOSurfaceImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.cc index 4163bfe1..3a80dea 100644 --- a/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.cc
@@ -150,7 +150,6 @@ std::unique_ptr<SharedImageBacking> OzoneImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.h b/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.h index 90e0b58c..adb66f5c 100644 --- a/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/ozone_image_backing_factory.h
@@ -64,7 +64,6 @@ std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.cc index 0f3dc110..417cf9c 100644 --- a/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.cc
@@ -48,7 +48,6 @@ std::unique_ptr<SharedImageBacking> RawDrawImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.h b/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.h index 735bacc..593a13a 100644 --- a/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/raw_draw_image_backing_factory.h
@@ -38,7 +38,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/shared_image_backing_factory.h b/gpu/command_buffer/service/shared_image/shared_image_backing_factory.h index c27e2992..104f302 100644 --- a/gpu/command_buffer/service/shared_image/shared_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/shared_image_backing_factory.h
@@ -61,7 +61,6 @@ gfx::GpuMemoryBufferHandle handle); virtual std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/shared_image_factory.cc b/gpu/command_buffer/service/shared_image/shared_image_factory.cc index 64c4316..4f171044 100644 --- a/gpu/command_buffer/service/shared_image/shared_image_factory.cc +++ b/gpu/command_buffer/service/shared_image/shared_image_factory.cc
@@ -431,7 +431,6 @@ } bool SharedImageFactory::CreateSharedImage(const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane, @@ -478,8 +477,8 @@ factory, kAllowShmOverlays, mailbox, std::move(handle), format, plane, size, color_space, surface_origin, alpha_type, usage); } else { - backing = factory->CreateSharedImage(mailbox, client_id, std::move(handle), - format, plane, size, color_space, + backing = factory->CreateSharedImage(mailbox, std::move(handle), format, + plane, size, color_space, surface_origin, alpha_type, usage); }
diff --git a/gpu/command_buffer/service/shared_image/shared_image_factory.h b/gpu/command_buffer/service/shared_image/shared_image_factory.h index 78813af..2097182f 100644 --- a/gpu/command_buffer/service/shared_image/shared_image_factory.h +++ b/gpu/command_buffer/service/shared_image/shared_image_factory.h
@@ -76,7 +76,6 @@ uint32_t usage, gfx::GpuMemoryBufferHandle buffer_handle); bool CreateSharedImage(const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.cc index 86ffd03..dc3a820 100644 --- a/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.cc
@@ -50,7 +50,6 @@ std::unique_ptr<SharedImageBacking> SharedMemoryImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.h b/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.h index b60a5e9..14e4d69 100644 --- a/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/shared_memory_image_backing_factory.h
@@ -43,7 +43,6 @@ std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.cc index 7c8f187..890ad26 100644 --- a/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.cc
@@ -85,7 +85,6 @@ std::unique_ptr<SharedImageBacking> WrappedSkImageBackingFactory::CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat buffer_format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.h b/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.h index 66cd69e..e12f7a5 100644 --- a/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.h +++ b/gpu/command_buffer/service/shared_image/wrapped_sk_image_backing_factory.h
@@ -51,7 +51,6 @@ base::span<const uint8_t> pixel_data) override; std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/command_buffer/service/shared_image_interface_in_process.cc b/gpu/command_buffer/service/shared_image_interface_in_process.cc index ec63ac13..eec9952 100644 --- a/gpu/command_buffer/service/shared_image_interface_in_process.cc +++ b/gpu/command_buffer/service/shared_image_interface_in_process.cc
@@ -20,7 +20,6 @@ #include "gpu/config/gpu_driver_bug_workarounds.h" #include "gpu/config/gpu_feature_info.h" #include "gpu/config/gpu_preferences.h" -#include "gpu/ipc/common/gpu_client_ids.h" #include "ui/gl/gl_context.h" namespace gpu { @@ -354,8 +353,8 @@ DCHECK(shared_image_factory_); if (!shared_image_factory_->CreateSharedImage( - mailbox, kDisplayCompositorClientId, std::move(handle), format, plane, - size, color_space, surface_origin, alpha_type, usage)) { + mailbox, std::move(handle), format, plane, size, color_space, + surface_origin, alpha_type, usage)) { context_state_->MarkContextLost(); return; }
diff --git a/gpu/ipc/common/gpu_client_ids.h b/gpu/ipc/common/gpu_client_ids.h index 0bd5f10..1f87005 100644 --- a/gpu/ipc/common/gpu_client_ids.h +++ b/gpu/ipc/common/gpu_client_ids.h
@@ -21,11 +21,6 @@ // namespace for these shaders. constexpr int32_t kGrShaderCacheClientId = -2; -// The ID used by PlatformVideoFramePool for video decoding buffer allocation -// in the GPU process. These are never accessed on the host side so we can use -// the same client ID for all clients. -constexpr int32_t kPlatformVideoFramePoolClientId = -3; - inline bool IsReservedClientId(int32_t client_id) { return client_id < 0; }
diff --git a/gpu/ipc/service/image_decode_accelerator_stub.cc b/gpu/ipc/service/image_decode_accelerator_stub.cc index 2c68516..e307959 100644 --- a/gpu/ipc/service/image_decode_accelerator_stub.cc +++ b/gpu/ipc/service/image_decode_accelerator_stub.cc
@@ -308,9 +308,9 @@ // SurfaceHandle was used to create the original buffers). gpu::Mailbox mailbox = gpu::Mailbox::GenerateForSharedImage(); if (!channel_->shared_image_stub()->CreateSharedImage( - mailbox, channel_->client_id(), std::move(plane_handle), - plane_format, gfx::BufferPlane::DEFAULT, plane_size, - gfx::ColorSpace(), kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, + mailbox, std::move(plane_handle), plane_format, + gfx::BufferPlane::DEFAULT, plane_size, gfx::ColorSpace(), + kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, SHARED_IMAGE_USAGE_RASTER | SHARED_IMAGE_USAGE_OOP_RASTERIZATION)) { DLOG(ERROR) << "Could not create SharedImage"; return;
diff --git a/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc b/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc index 667af3db..cac2d044 100644 --- a/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc +++ b/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc
@@ -166,7 +166,6 @@ } std::unique_ptr<SharedImageBacking> CreateSharedImage( const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/gpu/ipc/service/shared_image_stub.cc b/gpu/ipc/service/shared_image_stub.cc index 63a98199..339df9d 100644 --- a/gpu/ipc/service/shared_image_stub.cc +++ b/gpu/ipc/service/shared_image_stub.cc
@@ -123,7 +123,6 @@ } bool SharedImageStub::CreateSharedImage(const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane, @@ -144,9 +143,9 @@ OnError(); return false; } - if (!factory_->CreateSharedImage(mailbox, client_id, std::move(handle), - format, plane, size, color_space, - surface_origin, alpha_type, usage)) { + if (!factory_->CreateSharedImage(mailbox, std::move(handle), format, plane, + size, color_space, surface_origin, + alpha_type, usage)) { LOG(ERROR) << "SharedImageStub: Unable to create shared image"; OnError(); return false; @@ -300,11 +299,10 @@ mojom::CreateGMBSharedImageParamsPtr params) { TRACE_EVENT2("gpu", "SharedImageStub::OnCreateGMBSharedImage", "width", params->size.width(), "height", params->size.height()); - if (!CreateSharedImage(params->mailbox, channel_->client_id(), - std::move(params->buffer_handle), params->format, - params->plane, params->size, params->color_space, - params->surface_origin, params->alpha_type, - params->usage)) { + if (!CreateSharedImage(params->mailbox, std::move(params->buffer_handle), + params->format, params->plane, params->size, + params->color_space, params->surface_origin, + params->alpha_type, params->usage)) { return; }
diff --git a/gpu/ipc/service/shared_image_stub.h b/gpu/ipc/service/shared_image_stub.h index c7f09a36..734a3601 100644 --- a/gpu/ipc/service/shared_image_stub.h +++ b/gpu/ipc/service/shared_image_stub.h
@@ -50,7 +50,6 @@ const Mailbox& mailbox); bool CreateSharedImage(const Mailbox& mailbox, - int client_id, gfx::GpuMemoryBufferHandle handle, gfx::BufferFormat format, gfx::BufferPlane plane,
diff --git a/headless/app/headless_shell.cc b/headless/app/headless_shell.cc index 22b713ad..e80272e 100644 --- a/headless/app/headless_shell.cc +++ b/headless/app/headless_shell.cc
@@ -87,7 +87,6 @@ void Shutdown(); raw_ptr<HeadlessBrowser> browser_ = nullptr; - raw_ptr<HeadlessBrowserContext> browser_context_ = nullptr; }; void HeadlessShell::OnBrowserStart(HeadlessBrowser* browser) { @@ -112,8 +111,8 @@ // Create browser context and set it as the default. The default browser // context is used by the Target.createTarget() DevTools command when no other // context is given. - browser_context_ = context_builder.Build(); - browser_->SetDefaultBrowserContext(browser_context_); + HeadlessBrowserContext* browser_context = context_builder.Build(); + browser_->SetDefaultBrowserContext(browser_context); // If no explicit URL is present navigate to about:blank unless we're being // driven by a debugger. @@ -127,12 +126,12 @@ } GURL target_url = ConvertArgumentToURL(args.front()); + HeadlessWebContents::Builder builder( + browser_context->CreateWebContentsBuilder()); // If driven by a debugger just open the target page and // leave expecting the debugger will do what they need. if (IsRemoteDebuggingEnabled()) { - HeadlessWebContents::Builder builder( - browser_context_->CreateWebContentsBuilder()); HeadlessWebContents* web_contents = builder.SetInitialURL(target_url).Build(); if (!web_contents) { @@ -146,8 +145,6 @@ // execute the commands against the target page. #if defined(HEADLESS_ENABLE_COMMANDS) GURL handler_url = HeadlessCommandHandler::GetHandlerUrl(); - HeadlessWebContents::Builder builder( - browser_context_->CreateWebContentsBuilder()); HeadlessWebContents* web_contents = builder.SetInitialURL(handler_url).Build(); if (!web_contents) { @@ -173,47 +170,10 @@ browser_->Shutdown(); } -int RunContentMain( - HeadlessBrowser::Options options, - base::OnceCallback<void(HeadlessBrowser*)> on_browser_start_callback) { - content::ContentMainParams params(nullptr); -#if BUILDFLAG(IS_WIN) - // Sandbox info has to be set and initialized. - CHECK(options.sandbox_info); - params.instance = options.instance; - params.sandbox_info = std::move(options.sandbox_info); -#elif !BUILDFLAG(IS_ANDROID) - params.argc = options.argc; - params.argv = options.argv; -#endif - - auto browser = std::make_unique<HeadlessBrowserImpl>( - std::move(on_browser_start_callback), std::move(options)); - HeadlessContentMainDelegate delegate(std::move(browser)); +void HeadlessChildMain(content::ContentMainParams params) { + HeadlessContentMainDelegate delegate(nullptr); params.delegate = &delegate; - return content::ContentMain(std::move(params)); -} - -#if BUILDFLAG(IS_WIN) -void RunChildProcessIfNeeded(HINSTANCE instance, - sandbox::SandboxInterfaceInfo* sandbox_info) { - base::CommandLine::Init(0, nullptr); - HeadlessBrowser::Options::Builder builder(0, nullptr); - builder.SetInstance(instance); - builder.SetSandboxInfo(std::move(sandbox_info)); -#else -void RunChildProcessIfNeeded(int argc, const char** argv) { - base::CommandLine::Init(argc, argv); - HeadlessBrowser::Options::Builder builder(argc, argv); -#endif // BUILDFLAG(IS_WIN) - const base::CommandLine& command_line( - *base::CommandLine::ForCurrentProcess()); - - if (!command_line.HasSwitch(::switches::kProcessType)) - return; - - int rc = RunContentMain(builder.Build(), - base::OnceCallback<void(HeadlessBrowser*)>()); + int rc = content::ContentMain(std::move(params)); // Note that exiting from here means that base::AtExitManager objects will not // have a chance to be destroyed (typically in main/WinMain). @@ -222,7 +182,8 @@ base::Process::TerminateCurrentProcessImmediately(rc); } -int HeadlessBrowserMain(HeadlessBrowser::Options options) { +int HeadlessBrowserMain(content::ContentMainParams params) { + base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); #if DCHECK_IS_ON() // The browser can only be initialized once. static bool browser_was_initialized; @@ -230,53 +191,56 @@ browser_was_initialized = true; // Child processes should not end up here. - DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch( - ::switches::kProcessType)); + DCHECK(!command_line.HasSwitch(::switches::kProcessType)); #endif HeadlessShell shell; - return RunContentMain( - std::move(options), - base::BindOnce(&HeadlessShell::OnBrowserStart, base::Unretained(&shell))); + HeadlessBrowser::Options::Builder builder; + +#if defined(HEADLESS_ENABLE_COMMANDS) + if ((command_line.HasSwitch(::switches::kRemoteDebuggingPort) || + command_line.HasSwitch(::switches::kRemoteDebuggingPipe)) && + HeadlessCommandHandler::HasHeadlessCommandSwitches(command_line)) { + LOG(ERROR) << "Headless commands are not compatible with remote debugging."; + return EXIT_FAILURE; + } +#endif + + if (!HandleCommandLineSwitches(command_line, builder)) { + return EXIT_FAILURE; + } + + auto browser = std::make_unique<HeadlessBrowserImpl>( + base::BindOnce(&HeadlessShell::OnBrowserStart, base::Unretained(&shell)), + builder.Build()); + HeadlessContentMainDelegate delegate(std::move(browser)); + params.delegate = &delegate; + return content::ContentMain(std::move(params)); } } // namespace -// An entry point for chrome. -int HeadlessShellMain(const content::ContentMainParams& params) { +int HeadlessShellMain(content::ContentMainParams params) { #if BUILDFLAG(IS_WIN) - return HeadlessShellMain(params.instance, params.sandbox_info); -#else - return HeadlessShellMain(params.argc, params.argv); -#endif -} - -#if BUILDFLAG(IS_WIN) -int HeadlessShellMain(HINSTANCE instance, - sandbox::SandboxInterfaceInfo* sandbox_info) { base::CommandLine::Init(0, nullptr); -#if defined(HEADLESS_USE_CRASHPAD) +#else + base::CommandLine::Init(params.argc, params.argv); +#endif // BUILDFLAG(IS_WIN) + base::CommandLine& command_line(*base::CommandLine::ForCurrentProcess()); std::string process_type = - base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( - ::switches::kProcessType); + command_line.GetSwitchValueASCII(::switches::kProcessType); +#if defined(HEADLESS_USE_CRASHPAD) if (process_type == crash_reporter::switches::kCrashpadHandler) { return crash_reporter::RunAsCrashpadHandler( *base::CommandLine::ForCurrentProcess(), base::FilePath(), ::switches::kProcessType, switches::kUserDataDir); } #endif // defined(HEADLESS_USE_CRASHPAD) - RunChildProcessIfNeeded(instance, sandbox_info); - HeadlessBrowser::Options::Builder builder(0, nullptr); - builder.SetInstance(instance); - builder.SetSandboxInfo(std::move(sandbox_info)); -#else -int HeadlessShellMain(int argc, const char** argv) { - base::CommandLine::Init(argc, argv); - RunChildProcessIfNeeded(argc, argv); - HeadlessBrowser::Options::Builder builder(argc, argv); -#endif // BUILDFLAG(IS_WIN) - base::CommandLine& command_line(*base::CommandLine::ForCurrentProcess()); + if (!process_type.empty()) { + HeadlessChildMain(std::move(params)); + NOTREACHED(); + } #if BUILDFLAG(IS_MAC) command_line.AppendSwitch(os_crypt::switches::kUseMockKeychain); @@ -292,20 +256,7 @@ return EXIT_FAILURE; } -#if defined(HEADLESS_ENABLE_COMMANDS) - if ((command_line.HasSwitch(::switches::kRemoteDebuggingPort) || - command_line.HasSwitch(::switches::kRemoteDebuggingPipe)) && - HeadlessCommandHandler::HasHeadlessCommandSwitches(command_line)) { - LOG(ERROR) << "Headless commands are not compatible with remote debugging."; - return EXIT_FAILURE; - } -#endif - - if (!HandleCommandLineSwitches(command_line, builder)) { - return EXIT_FAILURE; - } - - return HeadlessBrowserMain(builder.Build()); + return HeadlessBrowserMain(std::move(params)); } } // namespace headless
diff --git a/headless/app/headless_shell_main.cc b/headless/app/headless_shell_main.cc index 35736145..f828768 100644 --- a/headless/app/headless_shell_main.cc +++ b/headless/app/headless_shell_main.cc
@@ -14,11 +14,15 @@ #endif int main(int argc, const char** argv) { + content::ContentMainParams params(nullptr); #if BUILDFLAG(IS_WIN) sandbox::SandboxInterfaceInfo sandbox_info = {nullptr}; content::InitializeSandboxInfo(&sandbox_info); - return headless::HeadlessShellMain(0, &sandbox_info); -#else + // Sandbox info has to be set and initialized. + params.sandbox_info = &sandbox_info; +#elif !BUILDFLAG(IS_ANDROID) + params.argc = argc; + params.argv = argv; #if BUILDFLAG(IS_MAC) sandbox::SeatbeltExecServer::CreateFromArgumentsResult seatbelt = sandbox::SeatbeltExecServer::CreateFromArguments( @@ -27,7 +31,7 @@ CHECK(seatbelt.server->InitializeSandbox()); } #endif // BUILDFLAG(IS_MAC) - - return headless::HeadlessShellMain(argc, argv); #endif // BUILDFLAG(IS_WIN) + + return headless::HeadlessShellMain(std::move(params)); }
diff --git a/headless/lib/headless_content_main_delegate.cc b/headless/lib/headless_content_main_delegate.cc index 4e2957f3..e97a409 100644 --- a/headless/lib/headless_content_main_delegate.cc +++ b/headless/lib/headless_content_main_delegate.cc
@@ -158,7 +158,6 @@ HeadlessContentMainDelegate::HeadlessContentMainDelegate( std::unique_ptr<HeadlessBrowserImpl> browser) : browser_(std::move(browser)) { - DCHECK(browser_); DCHECK(!g_current_headless_content_main_delegate); g_current_headless_content_main_delegate = this; } @@ -420,8 +419,14 @@ return g_current_headless_content_main_delegate; } -HeadlessBrowser::Options* HeadlessContentMainDelegate::options() { - return browser_->options(); +const HeadlessBrowser::Options* HeadlessContentMainDelegate::options() { + if (browser_) { + return browser_->options(); + } + // TODO(caseq): get rid of this. + static base::NoDestructor<HeadlessBrowser::Options> + s_dummy_for_child_processes(HeadlessBrowser::Options::Builder().Build()); + return s_dummy_for_child_processes.get(); } content::ContentClient* HeadlessContentMainDelegate::CreateContentClient() { @@ -430,6 +435,7 @@ content::ContentBrowserClient* HeadlessContentMainDelegate::CreateContentBrowserClient() { + DCHECK(browser_); browser_client_ = std::make_unique<HeadlessContentBrowserClient>(browser_.get()); return browser_client_.get();
diff --git a/headless/lib/headless_content_main_delegate.h b/headless/lib/headless_content_main_delegate.h index 3db8708..de74059 100644 --- a/headless/lib/headless_content_main_delegate.h +++ b/headless/lib/headless_content_main_delegate.h
@@ -38,6 +38,7 @@ ~HeadlessContentMainDelegate() override; + private: // content::ContentMainDelegate implementation: absl::optional<int> BasicStartupComplete() override; void PreSandboxStartup() override; @@ -54,16 +55,18 @@ absl::optional<int> PostEarlyInitialization(InvokedIn invoked_in) override; + // TODO(caseq): get rid of this method and GetInstance(), tests should get + // browser through other means. + // Note this is nullptr in processes other than the browser. HeadlessBrowserImpl* browser() const { return browser_.get(); } #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) void ZygoteForked() override; #endif - private: friend class HeadlessBrowserTest; - HeadlessBrowser::Options* options(); + const HeadlessBrowser::Options* options(); static HeadlessContentMainDelegate* GetInstance();
diff --git a/headless/public/headless_browser.cc b/headless/public/headless_browser.cc index e469b34..17f83fe3 100644 --- a/headless/public/headless_browser.cc +++ b/headless/public/headless_browser.cc
@@ -30,10 +30,8 @@ } // namespace -Options::Options(int argc, const char** argv) - : argc(argc), - argv(argv), - user_agent(content::BuildUserAgentFromProduct( +Options::Options() + : user_agent(content::BuildUserAgentFromProduct( HeadlessBrowser::GetProductNameAndVersion())), window_size(kDefaultWindowSize), font_render_hinting(kDefaultFontRenderHinting) {} @@ -48,9 +46,7 @@ return (devtools_pipe_enabled || !devtools_endpoint.IsEmpty()); } -Builder::Builder(int argc, const char** argv) : options_(argc, argv) {} - -Builder::Builder() : options_(0, nullptr) {} +Builder::Builder() = default; Builder::~Builder() = default; @@ -84,18 +80,6 @@ return *this; } -#if BUILDFLAG(IS_WIN) -Builder& Builder::SetInstance(HINSTANCE hinstance) { - options_.instance = hinstance; - return *this; -} - -Builder& Builder::SetSandboxInfo(sandbox::SandboxInterfaceInfo* info) { - options_.sandbox_info = info; - return *this; -} -#endif // BUILDFLAG(IS_WIN) - Builder& Builder::SetUserDataDir(const base::FilePath& dir) { options_.user_data_dir = dir; return *this;
diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h index cb66a076..222f81c0 100644 --- a/headless/public/headless_browser.h +++ b/headless/public/headless_browser.h
@@ -111,18 +111,6 @@ Options& operator=(Options&& options); - // Command line options to be passed to browser. Initialized in constructor. - int argc; - raw_ptr<const char*> argv; - -#if BUILDFLAG(IS_WIN) - // Set hardware instance if available, otherwise it defaults to 0. - HINSTANCE instance = 0; - - // Set with sandbox information. This has to be already initialized. - raw_ptr<sandbox::SandboxInterfaceInfo> sandbox_info = nullptr; -#endif - // Address at which DevTools should listen for connections. Disabled by // default. net::HostPortPair devtools_endpoint; @@ -170,12 +158,11 @@ // Reminder: when adding a new field here, do not forget to add it to // HeadlessBrowserContextOptions (where appropriate). private: - Options(int argc, const char** argv); + Options(); }; class HEADLESS_EXPORT HeadlessBrowser::Options::Builder { public: - Builder(int argc, const char** argv); Builder(); Builder(const Builder&) = delete; @@ -189,10 +176,6 @@ Builder& EnableDevToolsPipe(); Builder& SetGLImplementation(const std::string& implementation); Builder& SetANGLEImplementation(const std::string& implementation); -#if BUILDFLAG(IS_WIN) - Builder& SetInstance(HINSTANCE hinstance); - Builder& SetSandboxInfo(sandbox::SandboxInterfaceInfo* info); -#endif // Per-context settings.
diff --git a/headless/public/headless_shell.h b/headless/public/headless_shell.h index e370fe1..f436687e 100644 --- a/headless/public/headless_shell.h +++ b/headless/public/headless_shell.h
@@ -5,28 +5,15 @@ #ifndef HEADLESS_PUBLIC_HEADLESS_SHELL_H_ #define HEADLESS_PUBLIC_HEADLESS_SHELL_H_ -#include "build/build_config.h" #include "content/public/app/content_main.h" -#if BUILDFLAG(IS_WIN) -#include "sandbox/win/src/sandbox_types.h" -#endif - namespace headless { -// Start the headless shell applications from a |ContentMainParams| object. +// Start the headless shell applications. // Note that the |ContentMainDelegate| is ignored and // |HeadlessContentMainDelegate| is used instead. -int HeadlessShellMain(const content::ContentMainParams& params); +int HeadlessShellMain(const content::ContentMainParams params); -// Start the Headless Shell application. Intended to be called early in main(). -// Returns the exit code for the process. -#if BUILDFLAG(IS_WIN) -int HeadlessShellMain(HINSTANCE instance, - sandbox::SandboxInterfaceInfo* sandbox_info); -#else -int HeadlessShellMain(int argc, const char** argv); -#endif // BUILDFLAG(IS_WIN) } // namespace headless #endif // HEADLESS_PUBLIC_HEADLESS_SHELL_H_
diff --git a/infra/config/generated/cq-builders.md b/infra/config/generated/cq-builders.md index 9e7fd08..e149fb5 100644 --- a/infra/config/generated/cq-builders.md +++ b/infra/config/generated/cq-builders.md
@@ -349,17 +349,6 @@ Location filters: * [`//build/.*check_gn_headers.*`](https://cs.chromium.org/search?q=+file:build/.*check_gn_headers.*) -* [linux_layout_tests_layout_ng_disabled](https://ci.chromium.org/p/chromium/builders/try/linux_layout_tests_layout_ng_disabled) ([definition](https://cs.chromium.org/search?q=+file:/try/.*\.star$+""linux_layout_tests_layout_ng_disabled"")) - - Location filters: - * [`//third_party/blink/renderer/core/editing/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/editing/) - * [`//third_party/blink/renderer/core/layout/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/layout/) - * [`//third_party/blink/renderer/core/paint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/paint/) - * [`//third_party/blink/renderer/core/svg/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/svg/) - * [`//third_party/blink/renderer/platform/fonts/shaping/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/fonts/shaping/) - * [`//third_party/blink/renderer/platform/graphics/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/graphics/) - * [`//third_party/blink/web_tests/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/) - * [linux_optional_gpu_tests_rel](https://ci.chromium.org/p/chromium/builders/try/linux_optional_gpu_tests_rel) ([definition](https://cs.chromium.org/search?q=+file:/try/.*\.star$+""linux_optional_gpu_tests_rel"")) Location filters:
diff --git a/infra/config/generated/cq-usage/full.cfg b/infra/config/generated/cq-usage/full.cfg index 401cc0b..8f3acd1 100644 --- a/infra/config/generated/cq-usage/full.cfg +++ b/infra/config/generated/cq-usage/full.cfg
@@ -1811,61 +1811,6 @@ } } builders { - name: "chromium/try/linux_layout_tests_layout_ng_disabled" - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/editing/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/layout/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/paint/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/svg/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/platform/fonts/shaping/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/platform/graphics/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/web_tests/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "docs/.+" - exclude: true - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "infra/config/.+" - exclude: true - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "infra/config/generated/builders/try/linux_layout_tests_layout_ng_disabled/.+" - } - } - builders { name: "chromium/try/linux_optional_gpu_tests_rel" location_filters { gerrit_host_regexp: ".*"
diff --git a/infra/config/generated/luci/commit-queue.cfg b/infra/config/generated/luci/commit-queue.cfg index f3f3800..070737c 100644 --- a/infra/config/generated/luci/commit-queue.cfg +++ b/infra/config/generated/luci/commit-queue.cfg
@@ -3036,58 +3036,7 @@ } builders { name: "chromium/try/linux_layout_tests_layout_ng_disabled" - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/editing/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/layout/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/paint/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/core/svg/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/platform/fonts/shaping/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/renderer/platform/graphics/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "third_party/blink/web_tests/.+" - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "docs/.+" - exclude: true - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "infra/config/.+" - exclude: true - } - location_filters { - gerrit_host_regexp: ".*" - gerrit_project_regexp: ".*" - path_regexp: "infra/config/generated/builders/try/linux_layout_tests_layout_ng_disabled/.+" - } + includable_only: true } builders { name: "chromium/try/linux_optional_gpu_tests_rel"
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.linux.star b/infra/config/subprojects/chromium/try/tryserver.chromium.linux.star index 662c49d..8945d62 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.linux.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.linux.star
@@ -640,17 +640,6 @@ ), ), main_list_view = "try", - tryjob = try_.job( - location_filters = [ - "third_party/blink/renderer/core/editing/.+", - "third_party/blink/renderer/core/layout/.+", - "third_party/blink/renderer/core/paint/.+", - "third_party/blink/renderer/core/svg/.+", - "third_party/blink/renderer/platform/fonts/shaping/.+", - "third_party/blink/renderer/platform/graphics/.+", - "third_party/blink/web_tests/.+", - ], - ), ) try_.builder(
diff --git a/ios/chrome/app/resources/BUILD.gn b/ios/chrome/app/resources/BUILD.gn index d047840..540ada4 100644 --- a/ios/chrome/app/resources/BUILD.gn +++ b/ios/chrome/app/resources/BUILD.gn
@@ -63,6 +63,7 @@ "$root_gen_dir/components/dev_ui_components_resources.pak", "$root_gen_dir/components/download_internals_resources.pak", "$root_gen_dir/components/optimization_guide_internals_resources.pak", + "$root_gen_dir/components/policy_resources.pak", "$root_gen_dir/components/sync_driver_sync_internals_resources.pak", "$root_gen_dir/ios/chrome/ios_resources.pak", "$root_gen_dir/ios/web/ios_web_resources.pak", @@ -74,6 +75,7 @@ ":ios_resources", "//components/download/resources/download_internals:resources", "//components/optimization_guide/optimization_guide_internals/resources", + "//components/policy/resources/webui:resources", "//components/resources", "//components/sync/driver/resources", "//ios/web:resources",
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 5622a9dc..ffc3a4d 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -1254,7 +1254,9 @@ {"intents-on-email", flag_descriptions::kEmailName, flag_descriptions::kEmailDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableEmails)}, - + {"ios-password-checkup", flag_descriptions::kIOSPasswordCheckupName, + flag_descriptions::kIOSPasswordCheckupDescription, flags_ui::kOsIos, + FEATURE_VALUE_TYPE(password_manager::features::kIOSPasswordCheckup)}, }; bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index 5d8ff72..f5c9a3896e 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -432,6 +432,11 @@ "When enabled, a prompt will be presented after a device restore to " "allow the user to sign in again."; +const char kIOSPasswordCheckupName[] = "Password Checkup"; +const char kIOSPasswordCheckupDescription[] = + "Enables displaying and managing compromised, weak and reused credentials " + "in the Password Manager."; + const char kIOSPasswordUISplitName[] = "Password Manager UI Split"; const char kIOSPasswordUISplitDescription[] = "Splits Password Settings and "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index 32b3b8a..4e42f68 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -383,6 +383,11 @@ extern const char kIOSNewPostRestoreExperienceName[]; extern const char kIOSNewPostRestoreExperienceDescription[]; +// Title and description for the flag to enabled displaying and managing +// compromised, weak and reused credentials in the Password Manager. +extern const char kIOSPasswordCheckupName[]; +extern const char kIOSPasswordCheckupDescription[]; + // Title and description for the flag to split password settings and password // management into two separate UIs. extern const char kIOSPasswordUISplitName[];
diff --git a/ios/chrome/browser/ui/content_suggestions/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/BUILD.gn index 8d4f9c84..0a057b663 100644 --- a/ios/chrome/browser/ui/content_suggestions/BUILD.gn +++ b/ios/chrome/browser/ui/content_suggestions/BUILD.gn
@@ -362,6 +362,7 @@ "//ios/chrome/browser/signin:system_identity_manager", "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/authentication:eg_test_support+eg2", + "//ios/chrome/browser/ui/authentication/cells:constants", "//ios/chrome/browser/ui/content_suggestions/cells:constants", "//ios/chrome/browser/ui/ntp:constants", "//ios/chrome/browser/ui/ntp:feature_flags",
diff --git a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm index 1b5cf566..b7c2439 100644 --- a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm +++ b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
@@ -14,6 +14,7 @@ #import "ios/chrome/browser/prefs/pref_names.h" #import "ios/chrome/browser/signin/capabilities_types.h" #import "ios/chrome/browser/signin/fake_system_identity.h" +#import "ios/chrome/browser/ui/authentication/cells/signin_promo_view_constants.h" #import "ios/chrome/browser/ui/authentication/signin_earl_grey.h" #import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.h" #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_cells_constants.h" @@ -1268,6 +1269,34 @@ [self checkDiscoverSettingsToggleVisible:YES]; } +// Tests that the feed top sync promo is visible when conditions are met, and +// that pressing the dismiss button makes it disappear. +// TODO(crbug.com/1406885): Enable test when feed is supported. +- (void)DISABLED_testFeedTopSyncPromoIsVisibleAndDismiss { + // Scroll into feed to trigger engagement condition. + [[EarlGrey selectElementWithMatcher:chrome_test_util::NTPCollectionView()] + performAction:grey_swipeFastInDirection(kGREYDirectionUp)]; + + // Relaunch the app + AppLaunchConfiguration config = [self appConfigurationForTestCase]; + config.relaunch_policy = ForceRelaunchByCleanShutdown; + config.features_enabled.push_back(kEnableDiscoverFeedTopSyncPromo); + [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config]; + + // Scroll down a bit and check that the promo is visible. + [[EarlGrey selectElementWithMatcher:chrome_test_util::NTPCollectionView()] + performAction:grey_scrollInDirection(kGREYDirectionDown, 100)]; + [[EarlGrey selectElementWithMatcher:grey_accessibilityID(kSigninPromoViewId)] + assertWithMatcher:grey_sufficientlyVisible()]; + + // Tap the dismiss button and check that the promo is no longer visible. + [[EarlGrey + selectElementWithMatcher:grey_accessibilityID(kSigninPromoCloseButtonId)] + performAction:grey_tap()]; + [[EarlGrey selectElementWithMatcher:grey_accessibilityID(kSigninPromoViewId)] + assertWithMatcher:grey_not(grey_sufficientlyVisible())]; +} + #pragma mark - Helpers // Opens the Settings menu and ensures that the visibility of the Discover
diff --git a/ios/chrome/browser/ui/list_model/list_model_unittest.mm b/ios/chrome/browser/ui/list_model/list_model_unittest.mm index cfffba7..f45a36b 100644 --- a/ios/chrome/browser/ui/list_model/list_model_unittest.mm +++ b/ios/chrome/browser/ui/list_model/list_model_unittest.mm
@@ -17,18 +17,20 @@ #error "This file requires ARC support." #endif -@interface ListModel (Testing) +// Category adding convenience method to add ListItem* to the ListModel* with a +// specific type. This helps keep the test methods short and to the point. +@interface ListModel (ListModelTest) // Adds an item with the given type to the section with the given identifier. // It is possible to add multiple items with the same type to the same section. // Sharing types across sections is undefined behavior. -- (void)addItemWithType:(NSInteger)itemType - toSectionWithIdentifier:(NSInteger)sectionIdentifier; +- (void)crTest_addItemWithType:(NSInteger)itemType + toSectionWithIdentifier:(NSInteger)sectionIdentifier; @end -@implementation ListModel (Testing) +@implementation ListModel (ListModelTest) -- (void)addItemWithType:(NSInteger)itemType - toSectionWithIdentifier:(NSInteger)sectionIdentifier { +- (void)crTest_addItemWithType:(NSInteger)itemType + toSectionWithIdentifier:(NSInteger)sectionIdentifier { ListItem* item = [[ListItem alloc] initWithType:itemType]; [self addItem:item toSectionWithIdentifier:sectionIdentifier]; } @@ -95,12 +97,12 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; // Check there are some items but not more. EXPECT_EQ(NO, [model hasItemAtIndexPath:nil]); @@ -138,11 +140,11 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; // "Gouda" is intentionally omitted. - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; // Check the item type <-> item correspondance methods. EXPECT_EQ(ItemTypeCheeseCheddar, @@ -158,15 +160,15 @@ [model addSectionWithIdentifier:SectionIdentifierCheese]; // "Cheddar" and "Gouda" are intentionally omitted. - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; // "Ron" is intentionally omitted. - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Check the collection view data sourcing methods. EXPECT_EQ(2, [model numberOfSections]); @@ -196,13 +198,13 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Check the index path retrieval method for a single item. NSIndexPath* indexPath = @@ -223,17 +225,17 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; NSIndexPath* indexPath = [model indexPathForItemType:ItemTypeWeasleyArthur @@ -256,21 +258,21 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Check the index path <-> index in item type correspondance method. EXPECT_EQ( @@ -340,22 +342,22 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; [model removeItemWithType:ItemTypeCheesePepperJack fromSectionWithIdentifier:SectionIdentifierCheese]; @@ -392,16 +394,16 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; [model deleteAllItemsFromSectionWithIdentifier:SectionIdentifierCheese]; @@ -419,8 +421,8 @@ EXPECT_EQ(1, indexPath.section); EXPECT_EQ(0, indexPath.item); - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; // Check we could still add to the section. EXPECT_EQ(1, [model numberOfItemsInSection:0]); @@ -433,10 +435,10 @@ [model addSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Check we have no more items in first section. EXPECT_EQ(0, [model numberOfItemsInSection:0]); @@ -460,10 +462,10 @@ // Section with items. [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; // Check the collection view data sourcing methods. EXPECT_EQ(2, [model numberOfSections]); @@ -496,12 +498,12 @@ // Section with items. [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; EXPECT_TRUE([model hasSectionForSectionIdentifier:SectionIdentifierCheese]); EXPECT_FALSE([model hasItemForItemType:ItemTypeCheeseCheddar @@ -538,10 +540,10 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; ListItem* cheddarItem = [[ListItem alloc] initWithType:ItemTypeCheeseCheddar]; [model insertItem:cheddarItem inSectionWithIdentifier:SectionIdentifierCheese @@ -573,22 +575,22 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; // Added at index 1. ListItem* item1 = [[ListItem alloc] initWithType:ItemTypeWeasleyRon]; [model addItem:item1 toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Repeated item added at index 4. ListItem* item4 = [[ListItem alloc] initWithType:ItemTypeWeasleyArthur]; [model addItem:item4 toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Item not added. ListItem* notAddedItem = [[ListItem alloc] initWithType:ItemTypeCheeseGouda]; @@ -611,31 +613,31 @@ // 1st section: Cheddar, Cheddar, Ron, Cheddar, Ron. [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierCheese]; // 2nd section: Ron, Cheddar, Ron, Ron, Cheddar, Cheddar. [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierWeasley]; NSArray<NSIndexPath*>* indexPaths = [model indexPathsForItemType:ItemTypeCheeseCheddar @@ -671,15 +673,15 @@ ListItem* cheeseHeader = [[ListItem alloc] initWithType:ItemTypeCheeseHeader]; [model setHeader:cheeseHeader forSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; NSInteger cheeseSection = [model sectionForSectionIdentifier:SectionIdentifierCheese]; @@ -698,15 +700,15 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseGouda - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseGouda + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; ListItem* weasleyFooter = [[ListItem alloc] initWithType:ItemTypeWeasleyFooter]; [model setFooter:weasleyFooter @@ -730,20 +732,20 @@ ListModel* model = [[ListModel alloc] init]; [model addSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheesePepperJack - toSectionWithIdentifier:SectionIdentifierCheese]; - [model addItemWithType:ItemTypeCheeseCheddar - toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheesePepperJack + toSectionWithIdentifier:SectionIdentifierCheese]; + [model crTest_addItemWithType:ItemTypeCheeseCheddar + toSectionWithIdentifier:SectionIdentifierCheese]; [model addSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyRon - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyGinny - toSectionWithIdentifier:SectionIdentifierWeasley]; - [model addItemWithType:ItemTypeWeasleyArthur - toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyRon + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyGinny + toSectionWithIdentifier:SectionIdentifierWeasley]; + [model crTest_addItemWithType:ItemTypeWeasleyArthur + toSectionWithIdentifier:SectionIdentifierWeasley]; // Check that gouda cannot be found. EXPECT_EQ(nil, [model indexPathForItemType:ItemTypeCheeseGouda]);
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm index 0201365a..7ab5cfe 100644 --- a/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm +++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm
@@ -255,7 +255,7 @@ isEqualToString:base::SysUTF16ToNSString(credential.password)]; }); if (it != self.mediator.credentials.end()) { - int index = it - self.mediator.credentials.begin(); + int index = std::distance(self.mediator.credentials.begin(), it); DCHECK((unsigned long)index < self.mediator.credentials.size()); [self showPasswordDeleteDialogWithOrigin:password.origin compromisedPassword:password.isCompromised
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm index 9aaf86f..a0d51f0 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm
@@ -1018,6 +1018,7 @@ /*pinned=*/NO)]; } +// Adds an observations to every non-pinned WebState. - (void)addWebStateObservations { int firstIndex = IsPinnedTabsEnabled() ? self.webStateList->GetIndexOfFirstNonPinnedWebState()
diff --git a/ios/chrome/browser/ui/webui/policy/BUILD.gn b/ios/chrome/browser/ui/webui/policy/BUILD.gn index a908e27..04b564b9 100644 --- a/ios/chrome/browser/ui/webui/policy/BUILD.gn +++ b/ios/chrome/browser/ui/webui/policy/BUILD.gn
@@ -18,8 +18,8 @@ "//components/policy:generated", "//components/policy/core/browser", "//components/policy/core/common", + "//components/policy/resources/webui:resources", "//components/prefs", - "//components/resources", "//components/strings", "//components/version_info", "//ios/chrome/app/strings",
diff --git a/ios/chrome/browser/ui/webui/policy/policy_ui.mm b/ios/chrome/browser/ui/webui/policy/policy_ui.mm index cb90f228..ecf25de7 100644 --- a/ios/chrome/browser/ui/webui/policy/policy_ui.mm +++ b/ios/chrome/browser/ui/webui/policy/policy_ui.mm
@@ -7,7 +7,7 @@ #import <memory> #import <string> -#import "components/grit/dev_ui_components_resources.h" +#import "components/grit/policy_resources.h" #import "components/strings/grit/components_strings.h" #import "ios/chrome/browser/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/ui/webui/policy/policy_ui_handler.h" @@ -91,9 +91,9 @@ source->AddBoolean("hideExportButton", true); - source->AddResourcePath("policy.css", IDR_POLICY_CSS); - source->AddResourcePath("policy_base.js", IDR_POLICY_BASE_JS); - source->AddResourcePath("policy.js", IDR_POLICY_JS); + source->AddResourcePath("policy.css", IDR_POLICY_POLICY_CSS); + source->AddResourcePath("policy_base.js", IDR_POLICY_POLICY_BASE_JS); + source->AddResourcePath("policy.js", IDR_POLICY_POLICY_JS); source->AddResourcePath("policy_conflict.html.js", IDR_POLICY_POLICY_CONFLICT_HTML_JS); source->AddResourcePath("policy_conflict.js", IDR_POLICY_POLICY_CONFLICT_JS); @@ -108,7 +108,7 @@ source->AddResourcePath("policy_table.js", IDR_POLICY_POLICY_TABLE_JS); source->AddResourcePath("status_box.html.js", IDR_POLICY_STATUS_BOX_HTML_JS); source->AddResourcePath("status_box.js", IDR_POLICY_STATUS_BOX_JS); - source->SetDefaultResource(IDR_POLICY_HTML); + source->SetDefaultResource(IDR_POLICY_POLICY_HTML); source->EnableReplaceI18nInJS(); return source; }
diff --git a/ios/web/download/download_native_task_impl_unittest.mm b/ios/web/download/download_native_task_impl_unittest.mm index 21b662b..16600da 100644 --- a/ios/web/download/download_native_task_impl_unittest.mm +++ b/ios/web/download/download_native_task_impl_unittest.mm
@@ -35,27 +35,27 @@ // Test fixture for testing DownloadTaskImplTest class. class DownloadNativeTaskImplTest : public PlatformTest { protected: - DownloadNativeTaskImplTest() - : fake_task_bridge_([[FakeNativeTaskBridge alloc] - initWithDownload:fake_download_ - delegate:fake_delegate_]), - task_(std::make_unique<DownloadNativeTaskImpl>( - &web_state_, - GURL(kUrl), - kHttpMethod, - kContentDisposition, - /*total_bytes=*/-1, - kMimeType, - @(kIdentifier), - base::ThreadPool::CreateSequencedTaskRunner( - {base::MayBlock(), base::TaskPriority::USER_BLOCKING}), - fake_task_bridge_)) {} + DownloadNativeTaskImplTest() { + // TODO(crbug.com/1227419): When removing this if condition, these variables + // can be generated through the constructor's initializer list. + if (@available(iOS 15, *)) { + fake_task_bridge_ = + [[FakeNativeTaskBridge alloc] initWithDownload:fake_download_ + delegate:fake_delegate_]; + task_ = std::make_unique<DownloadNativeTaskImpl>( + &web_state_, GURL(kUrl), kHttpMethod, kContentDisposition, + /*total_bytes=*/-1, kMimeType, @(kIdentifier), + base::ThreadPool::CreateSequencedTaskRunner( + {base::MayBlock(), base::TaskPriority::USER_BLOCKING}), + fake_task_bridge_); + } + } base::test::TaskEnvironment task_environment_; FakeWebState web_state_; WKDownload* fake_download_ API_AVAILABLE(ios(15)) = nil; id<DownloadNativeTaskBridgeDelegate> fake_delegate_ = nil; - FakeNativeTaskBridge* fake_task_bridge_; + FakeNativeTaskBridge* fake_task_bridge_ = nil; std::unique_ptr<DownloadNativeTaskImpl> task_; };
diff --git a/ios/web/public/test/earl_grey/web_view_actions.mm b/ios/web/public/test/earl_grey/web_view_actions.mm index abdd9e6..a8a95a6 100644 --- a/ios/web/public/test/earl_grey/web_view_actions.mm +++ b/ios/web/public/test/earl_grey/web_view_actions.mm
@@ -7,7 +7,6 @@ #import <WebKit/WebKit.h> #import "base/functional/bind.h" -#import "base/functional/callback_helpers.h" #import "base/logging.h" #import "base/mac/foundation_util.h" #import "base/strings/stringprintf.h" @@ -18,9 +17,10 @@ #import "ios/testing/earl_grey/earl_grey_app.h" #import "ios/web/public/test/earl_grey/web_view_matchers.h" #import "ios/web/public/test/element_selector.h" +#import "ios/web/public/test/web_state_test_util.h" #import "ios/web/public/test/web_view_interaction_test_util.h" #import "ios/web/public/web_state.h" -#import "ios/web/web_state/web_state_impl.h" +#import "ios/web/web_state/ui/crw_web_controller.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -38,70 +38,6 @@ // is reduced on devices. constexpr base::TimeDelta kWaitForVerificationTimeout = base::Seconds(8); -// Generic verification injector. Injects one-time mousedown verification into -// `web_state` that will set the boolean pointed to by `verified` to true when -// `web_state`'s webview registers the mousedown event. -base::CallbackListSubscription AddVerifierToElementWithPrefix( - web::WebState* web_state, - ElementSelector* selector, - const std::string& prefix, - bool* verified) { - const char kCallbackCommand[] = "verified"; - const std::string kCallbackInvocation = prefix + '.' + kCallbackCommand; - - const char kAddInteractionVerifierScriptTemplate[] = - "(function() {" - // First template param: element. - " var element = %1$s;" - " if (!element)" - " return 'Element not found';" - " var invokeType = typeof __gCrWeb.message;" - " if (invokeType != 'object')" - " return 'Host invocation not installed (' + invokeType + ')';" - " var options = {'capture' : true, 'once' : true, 'passive' : true};" - " element.addEventListener('mousedown', function(event) {" - " __gCrWeb.message.invokeOnHost(" - // Second template param: callback command. - " {'command' : '%2$s' });" - " }, options);" - " return true;" - "})();"; - - std::string selector_script = - base::SysNSStringToUTF8(selector.selectorScript); - const std::string kAddVerifierScript = - base::StringPrintf(kAddInteractionVerifierScriptTemplate, - selector_script.c_str(), kCallbackInvocation.c_str()); - - bool success = base::test::ios::WaitUntilConditionOrTimeout( - base::test::ios::kWaitForUIElementTimeout, ^{ - std::unique_ptr<base::Value> value = - web::test::ExecuteJavaScript(web_state, kAddVerifierScript); - if (value) { - if (value->is_string()) { - DLOG(ERROR) << "Verifier injection failed: " << value->GetString() - << ", retrying."; - } else if (value->is_bool()) { - return true; - } - } - return false; - }); - - if (!success) - return {}; - - // The callback doesn't care about any of the parameters, just whether it is - // called or not. - auto callback = base::BindRepeating( - ^(const base::Value& /* json */, const GURL& /* origin_url */, - bool /* user_is_interacting */, web::WebFrame* /* sender_frame */) { - *verified = true; - }); - - return web_state->AddScriptCommandCallback(callback, prefix); -} - // Returns a no element found error. id<GREYAction> WebViewElementNotFound(ElementSelector* selector) { NSString* description = [NSString @@ -156,37 +92,53 @@ NSString* action_name = [NSString stringWithFormat:@"Verified action (%@) on webview element %@.", action.name, selector.selectorDescription]; - const std::string prefix = - base::StringPrintf("__web_test_%p_interaction", &selector); GREYPerformBlock verified_tap = ^BOOL(id element, __strong NSError** error) { - // A pointer to `verified` is passed into AddVerifierToElementWithPrefix() - // so the verifier can update its value, but `verified` also needs to be - // marked as __block so that waitUntilCondition(), below, can access it by - // reference. - __block bool verified = false; + NSString* verifier_script = [NSString + stringWithFormat: + @"return await new Promise((resolve) => {" + " var element = %@;" + " if (!element) {" + " resolve('No element');" + " }" + " const timeoutId = setTimeout(() => {" + " resolve(false);" + // JS timeout slightly shorter than `kWaitForVerificationTimeout` + " }, 7900);" + " var options = { 'capture': true, 'once': true, 'passive': true " + "};" + " element.addEventListener('mousedown', function(event) {" + " clearTimeout(timeoutId);" + " resolve(true);" + " }, options);" + "});", + selector.selectorScript]; - __block base::CallbackListSubscription subscription; + __block bool async_call_complete = false; + __block bool verified = false; // GREYPerformBlock executes on background thread by default in EG2. // Dispatch any call involving UI API to UI thread as they can't be executed // on background thread. See go/eg2-migration#greyactions-threading-behavior grey_dispatch_sync_on_main_thread(^{ - // Inject the verifier. - subscription = - AddVerifierToElementWithPrefix(state, selector, prefix, &verified); - }); + WKWebView* web_view = + [web::test::GetWebController(state) ensureWebViewCreated]; - if (!subscription) { - NSString* description = [NSString - stringWithFormat:@"It wasn't possible to add the verification " - @"javascript for element %@", - selector.selectorDescription]; - NSDictionary* user_info = @{NSLocalizedDescriptionKey : description}; - *error = [NSError errorWithDomain:kGREYInteractionErrorDomain - code:kGREYInteractionActionFailedErrorCode - userInfo:user_info]; - return NO; - } + [web_view + callAsyncJavaScript:verifier_script + arguments:nil + inFrame:nil + inContentWorld:[WKContentWorld pageWorld] + completionHandler:^(id result, NSError* async_error) { + if (!async_error) { + if ([result isKindOfClass:[NSString class]]) { + DLOG(ERROR) << base::SysNSStringToUTF8(result); + } else if ([result isKindOfClass:[NSNumber class]]) { + verified = [result boolValue]; + } + } + async_call_complete = true; + }]; + }); // Run the action and wait for the UI to settle. NSError* actionError = nil; @@ -202,17 +154,16 @@ [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; // Wait for the verified to trigger and set `verified`. - NSString* verification_timeout_message = - [NSString stringWithFormat:@"The action (%@) on element %@ wasn't " - @"verified before timing out.", - action.name, selector.selectorDescription]; bool success = base::test::ios::WaitUntilConditionOrTimeout( kWaitForVerificationTimeout, ^{ - return verified; + return async_call_complete; }); if (!success || !verified) { - DLOG(WARNING) << base::SysNSStringToUTF8(verification_timeout_message); + DLOG(WARNING) << base::SysNSStringToUTF8([NSString + stringWithFormat:@"The action (%@) on element %@ wasn't " + @"verified before timing out.", + action.name, selector.selectorDescription]); return NO; }
diff --git a/media/gpu/chromeos/mailbox_video_frame_converter.cc b/media/gpu/chromeos/mailbox_video_frame_converter.cc index ae33789..d6cfbc6 100644 --- a/media/gpu/chromeos/mailbox_video_frame_converter.cc +++ b/media/gpu/chromeos/mailbox_video_frame_converter.cc
@@ -14,7 +14,6 @@ #include "base/trace_event/trace_event.h" #include "gpu/command_buffer/common/shared_image_usage.h" #include "gpu/command_buffer/service/scheduler.h" -#include "gpu/ipc/common/gpu_client_ids.h" #include "gpu/ipc/service/gpu_channel.h" #include "media/base/format_utils.h" #include "media/base/video_frame.h" @@ -69,9 +68,8 @@ DCHECK(shared_image_stub); if (!shared_image_stub->CreateSharedImage( - mailbox, gpu::kPlatformVideoFramePoolClientId, std::move(handle), - format, plane, size, color_space, surface_origin, alpha_type, - usage)) { + mailbox, std::move(handle), format, plane, size, color_space, + surface_origin, alpha_type, usage)) { return base::NullCallback(); }
diff --git a/media/gpu/mac/vt_video_decode_accelerator_mac.cc b/media/gpu/mac/vt_video_decode_accelerator_mac.cc index c1b73080..62ac4879 100644 --- a/media/gpu/mac/vt_video_decode_accelerator_mac.cc +++ b/media/gpu/mac/vt_video_decode_accelerator_mac.cc
@@ -2235,9 +2235,9 @@ gpu::Mailbox mailbox = gpu::Mailbox::GenerateForSharedImage(); bool success = shared_image_stub->CreateSharedImage( - mailbox, /*client_id=*/0, std::move(handle), buffer_format_, - planes[plane], frame_size, color_space, kTopLeft_GrSurfaceOrigin, - kOpaque_SkAlphaType, shared_image_usage); + mailbox, std::move(handle), buffer_format_, planes[plane], frame_size, + color_space, kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, + shared_image_usage); if (!success) { DLOG(ERROR) << "Failed to create shared image"; NotifyError(PLATFORM_FAILURE, SFT_PLATFORM_ERROR);
diff --git a/media/mojo/services/gpu_mojo_media_client_win.cc b/media/mojo/services/gpu_mojo_media_client_win.cc index 32b7ad4..624f1950 100644 --- a/media/mojo/services/gpu_mojo_media_client_win.cc +++ b/media/mojo/services/gpu_mojo_media_client_win.cc
@@ -28,16 +28,11 @@ []() { return gl::QueryD3D11DeviceObjectFromANGLE(); }); } -bool ShouldUseD3D11VideoDecoder( - const gpu::GpuDriverBugWorkarounds& gpu_workarounds) { - return !gpu_workarounds.disable_d3d11_video_decoder; -} - } // namespace std::unique_ptr<VideoDecoder> CreatePlatformVideoDecoder( VideoDecoderTraits& traits) { - if (!ShouldUseD3D11VideoDecoder(*traits.gpu_workarounds)) { + if (traits.gpu_workarounds->disable_d3d11_video_decoder) { if (traits.gpu_workarounds->disable_dxva_video_decoder) return nullptr; return VdaVideoDecoder::Create( @@ -76,7 +71,7 @@ SupportedVideoDecoderConfigs supported_configs; if (gpu_preferences.disable_accelerated_video_decode) return supported_configs; - if (ShouldUseD3D11VideoDecoder(gpu_workarounds)) { + if (!gpu_workarounds.disable_d3d11_video_decoder) { supported_configs = D3D11VideoDecoder::GetSupportedVideoDecoderConfigs( gpu_preferences, gpu_workarounds, GetD3D11DeviceCallback()); } else if (!gpu_workarounds.disable_dxva_video_decoder) { @@ -98,8 +93,8 @@ gpu::GpuDriverBugWorkarounds gpu_workarounds, gpu::GpuPreferences gpu_preferences, const gpu::GPUInfo& gpu_info) { - return ShouldUseD3D11VideoDecoder(gpu_workarounds) ? VideoDecoderType::kD3D11 - : VideoDecoderType::kVda; + return gpu_workarounds.disable_d3d11_video_decoder ? VideoDecoderType::kVda + : VideoDecoderType::kD3D11; } // There is no CdmFactory on windows, so just stub it out.
diff --git a/net/BUILD.gn b/net/BUILD.gn index 3e1bdc1f..c6ae7ee 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn
@@ -3524,6 +3524,8 @@ "data/verify_certificate_chain_unittest/target-and-intermediate/main.test", "data/verify_certificate_chain_unittest/target-and-intermediate/ta-with-constraints.test", "data/verify_certificate_chain_unittest/target-and-intermediate/ta-with-expiration.test", + "data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test", + "data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test", "data/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test", "data/verify_certificate_chain_unittest/target-eku-any/any.test", "data/verify_certificate_chain_unittest/target-eku-any/chain.pem", @@ -3551,6 +3553,12 @@ "data/verify_certificate_chain_unittest/target-eku-none/serverauth.test", "data/verify_certificate_chain_unittest/target-has-512bit-rsa-key/chain.pem", "data/verify_certificate_chain_unittest/target-has-512bit-rsa-key/main.test", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test", + "data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem", "data/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/chain.pem", "data/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/main.test", "data/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/chain.pem", @@ -3559,8 +3567,23 @@ "data/verify_certificate_chain_unittest/target-not-end-entity/main.test", "data/verify_certificate_chain_unittest/target-not-end-entity/strict.test", "data/verify_certificate_chain_unittest/target-only/chain.pem", + "data/verify_certificate_chain_unittest/target-only/trusted_anchor.test", + "data/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test", + "data/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test", + "data/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test", + "data/verify_certificate_chain_unittest/target-only/trusted_leaf.test", + "data/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test", "data/verify_certificate_chain_unittest/target-selfissued/chain.pem", + "data/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test", + "data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test", + "data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test", + "data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test", "data/verify_certificate_chain_unittest/target-selfsigned/chain.pem", + "data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test", + "data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test", + "data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test", + "data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test", + "data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test", "data/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.pem", "data/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.test", "data/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.pem", @@ -3585,6 +3608,8 @@ "data/verify_certificate_chain_unittest/target-signed-with-sha1/main.test", "data/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem", "data/verify_certificate_chain_unittest/target-unknown-critical-extension/main.test", + "data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test", + "data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem", "data/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/chain.pem", "data/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/main.test", "data/verify_certificate_chain_unittest/target-wrong-signature/chain.pem",
diff --git a/net/cert/cert_verify_proc_builtin.cc b/net/cert/cert_verify_proc_builtin.cc index 36b28fa..469e123 100644 --- a/net/cert/cert_verify_proc_builtin.cc +++ b/net/cert/cert_verify_proc_builtin.cc
@@ -492,6 +492,7 @@ if (errors.ContainsError(cert_errors::kDistrustedByTrustStore) || errors.ContainsError(cert_errors::kVerifySignedDataFailed) || errors.ContainsError(cert_errors::kNoIssuersFound) || + errors.ContainsError(cert_errors::kSubjectDoesNotMatchIssuer) || errors.ContainsError(cert_errors::kDeadlineExceeded) || errors.ContainsError(cert_errors::kIterationLimitExceeded)) { *cert_status |= CERT_STATUS_AUTHORITY_INVALID;
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc index 59afd75..8429bea 100644 --- a/net/cert/cert_verify_proc_unittest.cc +++ b/net/cert/cert_verify_proc_unittest.cc
@@ -4316,6 +4316,10 @@ EXPECT_THAT(Verify(), IsOk()); if (VerifyProcTypeIsBuiltin()) { EXPECT_THAT(VerifyWithExpiryAndConstraints(), IsOk()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf()), + IsOk()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustedLeaf()), + IsError(ERR_CERT_AUTHORITY_INVALID)); } } @@ -5113,8 +5117,8 @@ chain_ = CertBuilder::CreateSimpleChain(/*chain_length=*/2); } - int Verify() { - ScopedTestRoot test_root(chain_.front()->GetX509Certificate().get()); + int VerifyWithTrust(CertificateTrust trust) { + ScopedTestRoot test_root(chain_[0]->GetX509Certificate().get(), trust); CertVerifyResult verify_result; int flags = 0; return CertVerifyProcInternalTest::Verify( @@ -5122,6 +5126,12 @@ CRLSet::BuiltinCRLSet().get(), CertificateList(), &verify_result); } + int Verify() { return VerifyWithTrust(CertificateTrust::ForTrustAnchor()); } + + int VerifyAsTrustedLeaf() { + return VerifyWithTrust(CertificateTrust::ForTrustedLeaf()); + } + std::vector<std::unique_ptr<CertBuilder>> chain_; }; @@ -5134,13 +5144,75 @@ // Without changing anything on the test chain, it should validate // successfully. If this is not true then the rest of the tests in this class // are unlikely to be useful. - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf()), + IsOk()); + EXPECT_THAT( + VerifyWithTrust( + CertificateTrust::ForTrustedLeaf().WithRequireLeafSelfSigned()), + IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf() + .WithRequireLeafSelfSigned()), + IsError(ERR_CERT_AUTHORITY_INVALID)); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); } } +TEST_P(CertVerifyProcConstraintsTrustedLeafTest, RootAlsoTrusted) { + // Test verifying a chain where both the leaf and the root are marked as + // trusted. + // (Repeating the ScopedTestRoot before each call is due to the limitation + // with destroying any ScopedTestRoot removing all test roots.) + { + ScopedTestRoot test_root(chain_[1]->GetX509Certificate().get()); + EXPECT_THAT(Verify(), IsOk()); + } + + if (VerifyProcTypeIsBuiltin()) { + { + ScopedTestRoot test_root1(chain_[1]->GetX509Certificate().get()); + // An explicit trust entry for the leaf with a value of Unspecified + // should be no different than the leaf not being in the trust store at + // all. + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForUnspecified()), IsOk()); + } + { + ScopedTestRoot test_root1(chain_[1]->GetX509Certificate().get()); + // If the leaf is explicitly distrusted, verification should fail even if + // the root is trusted. + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForDistrusted()), + IsError(ERR_CERT_AUTHORITY_INVALID)); + } + { + ScopedTestRoot test_root(chain_[1]->GetX509Certificate().get()); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } + { + ScopedTestRoot test_root(chain_[1]->GetX509Certificate().get()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf()), + IsOk()); + } + { + ScopedTestRoot test_root(chain_[1]->GetX509Certificate().get()); + EXPECT_THAT( + VerifyWithTrust( + CertificateTrust::ForTrustedLeaf().WithRequireLeafSelfSigned()), + IsOk()); + } + { + ScopedTestRoot test_root(chain_[1]->GetX509Certificate().get()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf() + .WithRequireLeafSelfSigned()), + IsOk()); + } + } +} + TEST_P(CertVerifyProcConstraintsTrustedLeafTest, BasicConstraintsIsCa) { for (bool has_key_usage_cert_sign : {false, true}) { chain_[0]->SetBasicConstraints(/*is_ca=*/true, /*path_len=*/-1); @@ -5152,8 +5224,10 @@ chain_[0]->SetKeyUsages({KEY_USAGE_BIT_DIGITAL_SIGNATURE}); } - if (VerifyProcTypeIsBuiltin() || - verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5174,7 +5248,10 @@ TEST_P(CertVerifyProcConstraintsTrustedLeafTest, BasicConstraintsMissing) { chain_[0]->EraseExtension(der::Input(kBasicConstraintsOid)); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5196,7 +5273,10 @@ chain_[0]->SetValidity(base::Time::Now() - base::Days(14), base::Time::Now() - base::Days(7)); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsError(ERR_CERT_DATE_INVALID)); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsError(ERR_CERT_DATE_INVALID)); @@ -5218,10 +5298,12 @@ chain_[0]->SetCertificatePolicies({}); } - if (VerifyProcTypeIsBuiltin() || - verify_proc_type() == CERT_VERIFY_PROC_WIN) { - // Fails since neither builtin nor win verifier handle the "directly - // trusted leaf" case, not because the constraint is being enforced. + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { + // Fails since win verifier doesn't handle the "directly trusted leaf" + // case, not because the constraint is being enforced. EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { // Succeeds since the mac/ios/android verifiers appear to not enforce @@ -5239,7 +5321,10 @@ chain_[0]->SetInhibitAnyPolicy(0); chain_[0]->SetCertificatePolicies({kAnyPolicy}); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5251,7 +5336,10 @@ // checked at the TLS layer, not during cert verification. chain_[0]->SetKeyUsages({KEY_USAGE_BIT_CRL_SIGN}); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5263,6 +5351,7 @@ if (VerifyProcTypeIsBuiltin()) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_THAT(VerifyAsTrustedLeaf(), IsError(ERR_CERT_INVALID)); } else { EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); } @@ -5271,7 +5360,12 @@ TEST_P(CertVerifyProcConstraintsTrustedLeafTest, UnknownSignatureAlgorithm) { chain_[0]->SetSignatureAlgorithmTLV(TestOid0SignatureAlgorithmTLV()); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); + // TODO(mattm): this shouldn't be INVALID, the signature doesn't need to be + // checked: + EXPECT_THAT(VerifyAsTrustedLeaf(), IsError(ERR_CERT_INVALID)); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5291,6 +5385,11 @@ } } else if (VerifyProcTypeIsBuiltin()) { EXPECT_THAT(Verify(), IsError(ERR_CERT_AUTHORITY_INVALID)); + if (critical) { + EXPECT_THAT(VerifyAsTrustedLeaf(), IsError(ERR_CERT_INVALID)); + } else { + EXPECT_THAT(VerifyAsTrustedLeaf(), IsOk()); + } } else { EXPECT_THAT(Verify(), IsOk()); } @@ -5308,8 +5407,8 @@ cert_ = std::move(CertBuilder::CreateSimpleChain(/*chain_length=*/1)[0]); } - int Verify() { - ScopedTestRoot test_root(cert_->GetX509Certificate().get()); + int VerifyWithTrust(CertificateTrust trust) { + ScopedTestRoot test_root(cert_->GetX509Certificate().get(), trust); CertVerifyResult verify_result; int flags = 0; return CertVerifyProcInternalTest::Verify( @@ -5317,6 +5416,13 @@ CRLSet::BuiltinCRLSet().get(), CertificateList(), &verify_result); } + int Verify() { return VerifyWithTrust(CertificateTrust::ForTrustAnchor()); } + + int VerifyAsTrustedSelfSignedLeaf() { + return VerifyWithTrust( + CertificateTrust::ForTrustedLeaf().WithRequireLeafSelfSigned()); + } + std::unique_ptr<CertBuilder> cert_; }; @@ -5329,7 +5435,32 @@ // Without changing anything on the test cert, it should validate // successfully. If this is not true then the rest of the tests in this class // are unlikely to be useful. - EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + // Should succeed when verified as a trusted leaf. + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustedLeaf()), IsOk()); + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf()), + IsOk()); + + // Should also be allowed by verifying as anchor for itself. + EXPECT_THAT(Verify(), IsOk()); + + // Should fail if verified as anchor of itself with constraints enabled, + // enforcing the basicConstraints on the anchor will fail since the cert + // has CA=false. + EXPECT_THAT( + VerifyWithTrust( + CertificateTrust::ForTrustAnchor().WithEnforceAnchorConstraints()), + IsError(ERR_CERT_INVALID)); + + // Should be allowed since it will be evaluated as a trusted leaf, so + // anchor constraints being enabled doesn't matter. + EXPECT_THAT(VerifyWithTrust(CertificateTrust::ForTrustAnchorOrLeaf() + .WithEnforceAnchorConstraints()), + IsOk()); + } else { + EXPECT_THAT(Verify(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, BasicConstraintsIsCa) { @@ -5343,6 +5474,9 @@ cert_->SetKeyUsages({KEY_USAGE_BIT_DIGITAL_SIGNATURE}); } EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } } @@ -5351,6 +5485,9 @@ cert_->SetBasicConstraints(/*is_ca=*/false, /*path_len=*/0); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, @@ -5358,6 +5495,9 @@ cert_->SetBasicConstraints(/*is_ca=*/true, /*path_len=*/0); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, @@ -5365,6 +5505,9 @@ cert_->EraseExtension(der::Input(kBasicConstraintsOid)); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, @@ -5373,6 +5516,9 @@ /*excluded_dns_names=*/{}); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, ValidityExpired) { @@ -5380,6 +5526,10 @@ base::Time::Now() - base::Days(7)); EXPECT_THAT(Verify(), IsError(ERR_CERT_DATE_INVALID)); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), + IsError(ERR_CERT_DATE_INVALID)); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, PolicyConstraints) { @@ -5400,6 +5550,7 @@ if (VerifyProcTypeIsBuiltin()) { EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); } else { EXPECT_THAT(Verify(), IsOk()); } @@ -5416,6 +5567,9 @@ cert_->SetCertificatePolicies({kAnyPolicy}); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, @@ -5425,6 +5579,9 @@ cert_->SetKeyUsages({KEY_USAGE_BIT_CRL_SIGN}); EXPECT_THAT(Verify(), IsOk()); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, @@ -5432,12 +5589,18 @@ cert_->SetExtendedKeyUsages({der::Input(kCodeSigning)}); EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsError(ERR_CERT_INVALID)); + } } TEST_P(CertVerifyProcConstraintsTrustedSelfSignedTest, UnknownSignatureAlgorithm) { cert_->SetSignatureAlgorithmTLV(TestOid0SignatureAlgorithmTLV()); - if (VerifyProcTypeIsBuiltin() || verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsError(ERR_CERT_INVALID)); + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); } else { EXPECT_THAT(Verify(), IsOk()); @@ -5449,9 +5612,16 @@ SCOPED_TRACE(critical); cert_->SetExtension(TestOid0(), "hello world", critical); - if (critical) { - if (VerifyProcTypeIsBuiltin() || - verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (VerifyProcTypeIsBuiltin()) { + if (critical) { + EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsError(ERR_CERT_INVALID)); + } else { + EXPECT_THAT(Verify(), IsOk()); + EXPECT_THAT(VerifyAsTrustedSelfSignedLeaf(), IsOk()); + } + } else if (verify_proc_type() == CERT_VERIFY_PROC_WIN) { + if (critical) { EXPECT_THAT(Verify(), IsError(ERR_CERT_INVALID)); } else { EXPECT_THAT(Verify(), IsOk());
diff --git a/net/cert/nss_cert_database_unittest.cc b/net/cert/nss_cert_database_unittest.cc index dabe0aab..0aed43c 100644 --- a/net/cert/nss_cert_database_unittest.cc +++ b/net/cert/nss_cert_database_unittest.cc
@@ -735,11 +735,8 @@ x509_server_cert.get(), "127.0.0.1", /*ocsp_response=*/std::string(), /*sct_list=*/std::string(), flags, crl_set_.get(), empty_cert_list_, &verify_result, NetLogWithSource()); - // This hits the "Cannot verify a chain of length 1" error in the new - // verifier, since path building stops at the leaf which has a distrust - // record. - EXPECT_THAT(error, IsError(ERR_CERT_INVALID)); - EXPECT_EQ(CERT_STATUS_INVALID, verify_result.cert_status); + EXPECT_THAT(error, IsError(ERR_CERT_AUTHORITY_INVALID)); + EXPECT_EQ(CERT_STATUS_AUTHORITY_INVALID, verify_result.cert_status); } TEST_F(CertDatabaseNSSTest, TrustIntermediateCa) {
diff --git a/net/cert/pki/common_cert_errors.cc b/net/cert/pki/common_cert_errors.cc index 68eec97f..86246b46 100644 --- a/net/cert/pki/common_cert_errors.cc +++ b/net/cert/pki/common_cert_errors.cc
@@ -16,7 +16,6 @@ "Certificate.signatureAlgorithm != TBSCertificate.signature"); DEFINE_CERT_ERROR_ID(kChainIsEmpty, "Chain is empty"); -DEFINE_CERT_ERROR_ID(kChainIsLength1, "Cannot verify a chain of length 1"); DEFINE_CERT_ERROR_ID(kUnconsumedCriticalExtension, "Unconsumed critical extension"); DEFINE_CERT_ERROR_ID(kKeyCertSignBitNotSet, "keyCertSign bit is not set");
diff --git a/net/cert/pki/common_cert_errors.h b/net/cert/pki/common_cert_errors.h index fcd736fb..e1cd2860 100644 --- a/net/cert/pki/common_cert_errors.h +++ b/net/cert/pki/common_cert_errors.h
@@ -35,11 +35,6 @@ // Certificate verification was called with an empty chain. NET_EXPORT extern const CertErrorId kChainIsEmpty; -// Certificate verification was called with a chain of length 1, which is not -// supported (i.e. the target certificate cannot also be a trusted -// certificate). See https://crbug.com/814994. -NET_EXPORT extern const CertErrorId kChainIsLength1; - // The certificate contains an unknown extension which is marked as critical. NET_EXPORT extern const CertErrorId kUnconsumedCriticalExtension;
diff --git a/net/cert/pki/path_builder.cc b/net/cert/pki/path_builder.cc index 1d3d9f4..fa349b2d 100644 --- a/net/cert/pki/path_builder.cc +++ b/net/cert/pki/path_builder.cc
@@ -122,6 +122,7 @@ KeyIdentifierMatch key_id_match = CalculateKeyIdentifierMatch(target, issuer); switch (issuer_trust.type) { case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: switch (key_id_match) { case kMatch: return kTrustedAndKeyIdMatch; @@ -131,6 +132,7 @@ return kTrustedAndKeyIdMismatch; } case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_LEAF: switch (key_id_match) { case kMatch: return kKeyIdMatch; @@ -442,6 +444,8 @@ switch (last_cert_trust.type) { case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + case CertificateTrustType::TRUSTED_LEAF: return certs.back().get(); case CertificateTrustType::UNSPECIFIED: case CertificateTrustType::DISTRUSTED: @@ -590,16 +594,50 @@ } } - // If the cert is trusted but is the leaf, treat it as having unspecified - // trust. This may allow a successful path to be built to a different root - // (or to the same cert if it's self-signed). + // Overrides for cert with trust appearing in the wrong place for the type + // of trust (trusted leaf in non-leaf position, or trust anchor in leaf + // position.) switch (next_issuer_.trust.type) { case CertificateTrustType::TRUSTED_ANCHOR: + // If the leaf cert is trusted only as an anchor, treat it as having + // unspecified trust. This may allow a successful path to be built to a + // different root (or to the same cert if it's self-signed). if (cur_path_.Empty()) { DVLOG(1) << "Leaf is a trust anchor, considering as UNSPECIFIED"; next_issuer_.trust = CertificateTrust::ForUnspecified(); } break; + case CertificateTrustType::TRUSTED_LEAF: + // If a non-leaf cert is trusted only as a leaf, treat it as having + // unspecified trust. This may allow a successful path to be built to a + // trusted root. + if (!cur_path_.Empty()) { + DVLOG(1) << "Issuer is a trust leaf, considering as UNSPECIFIED"; + next_issuer_.trust = CertificateTrust::ForUnspecified(); + } + break; + case CertificateTrustType::DISTRUSTED: + case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + // No override necessary. + break; + } + + // Overrides for trusted leaf cert with require_leaf_selfsigned. If the leaf + // isn't actually self-signed, treat it as unspecified. + switch (next_issuer_.trust.type) { + case CertificateTrustType::TRUSTED_LEAF: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + if (cur_path_.Empty() && next_issuer_.trust.require_leaf_selfsigned && + !VerifyCertificateIsSelfSigned(*next_issuer_.cert, + delegate->GetVerifyCache(), + /*errors=*/nullptr)) { + DVLOG(1) << "Leaf is trusted with require_leaf_selfsigned but is " + "not self-signed, considering as UNSPECIFIED"; + next_issuer_.trust = CertificateTrust::ForUnspecified(); + } + break; + case CertificateTrustType::TRUSTED_ANCHOR: case CertificateTrustType::DISTRUSTED: case CertificateTrustType::UNSPECIFIED: // No override necessary. @@ -611,7 +649,9 @@ // distrusted, or because it is trusted) then stop building and return the // path. case CertificateTrustType::DISTRUSTED: - case CertificateTrustType::TRUSTED_ANCHOR: { + case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + case CertificateTrustType::TRUSTED_LEAF: { // If the issuer has a known trust level, can stop building the path. DVLOG(2) << "CertPathIter got anchor: " << CertDebugString(next_issuer_.cert.get());
diff --git a/net/cert/pki/test_helpers.cc b/net/cert/pki/test_helpers.cc index 7f54da8..a3c8813 100644 --- a/net/cert/pki/test_helpers.cc +++ b/net/cert/pki/test_helpers.cc
@@ -12,6 +12,7 @@ #include "net/cert/pki/cert_errors.h" #include "net/cert/pki/simple_path_builder_delegate.h" #include "net/cert/pki/string_util.h" +#include "net/cert/pki/trust_store.h" #include "net/der/parser.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/boringssl/src/include/openssl/bytestring.h" @@ -327,6 +328,13 @@ test->last_cert_trust = CertificateTrust::ForTrustAnchor() .WithEnforceAnchorExpiry() .WithEnforceAnchorConstraints(); + } else if (value == "TRUSTED_ANCHOR_OR_LEAF") { + test->last_cert_trust = CertificateTrust::ForTrustAnchorOrLeaf(); + } else if (value == "TRUSTED_LEAF") { + test->last_cert_trust = CertificateTrust::ForTrustedLeaf(); + } else if (value == "TRUSTED_LEAF_REQUIRE_SELF_SIGNED") { + test->last_cert_trust = + CertificateTrust::ForTrustedLeaf().WithRequireLeafSelfSigned(); } else if (value == "DISTRUSTED") { test->last_cert_trust = CertificateTrust::ForDistrusted(); } else if (value == "UNSPECIFIED") {
diff --git a/net/cert/pki/trust_store.cc b/net/cert/pki/trust_store.cc index 4e5f9871..4a0e7eb 100644 --- a/net/cert/pki/trust_store.cc +++ b/net/cert/pki/trust_store.cc
@@ -10,8 +10,10 @@ switch (type) { case CertificateTrustType::DISTRUSTED: case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_LEAF: return false; case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: return true; } @@ -19,12 +21,29 @@ return false; } +bool CertificateTrust::IsTrustLeaf() const { + switch (type) { + case CertificateTrustType::TRUSTED_LEAF: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + return true; + case CertificateTrustType::DISTRUSTED: + case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_ANCHOR: + return false; + } + + assert(0); // NOTREACHED + return false; +} + bool CertificateTrust::IsDistrusted() const { switch (type) { case CertificateTrustType::DISTRUSTED: return true; case CertificateTrustType::UNSPECIFIED: case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + case CertificateTrustType::TRUSTED_LEAF: return false; } @@ -38,6 +57,8 @@ return true; case CertificateTrustType::DISTRUSTED: case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + case CertificateTrustType::TRUSTED_LEAF: return false; } @@ -57,6 +78,12 @@ case CertificateTrustType::TRUSTED_ANCHOR: result = "TRUSTED_ANCHOR"; break; + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + result = "TRUSTED_ANCHOR_OR_LEAF"; + break; + case CertificateTrustType::TRUSTED_LEAF: + result = "TRUSTED_LEAF"; + break; } if (enforce_anchor_expiry) { result += "+enforce_anchor_expiry"; @@ -64,6 +91,9 @@ if (enforce_anchor_constraints) { result += "+enforce_anchor_constraints"; } + if (require_leaf_selfsigned) { + result += "+require_leaf_selfsigned"; + } return result; }
diff --git a/net/cert/pki/trust_store.h b/net/cert/pki/trust_store.h index edb8af9..514b8bdb 100644 --- a/net/cert/pki/trust_store.h +++ b/net/cert/pki/trust_store.h
@@ -23,6 +23,13 @@ // This certificate is a trust anchor (as defined by RFC 5280). TRUSTED_ANCHOR, + // This certificate can be used as a trust anchor (as defined by RFC 5280) or + // a trusted leaf, depending on context. + TRUSTED_ANCHOR_OR_LEAF, + + // This certificate is a directly trusted leaf. + TRUSTED_LEAF, + LAST = TRUSTED_ANCHOR }; @@ -34,6 +41,18 @@ return result; } + static constexpr CertificateTrust ForTrustAnchorOrLeaf() { + CertificateTrust result; + result.type = CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF; + return result; + } + + static constexpr CertificateTrust ForTrustedLeaf() { + CertificateTrust result; + result.type = CertificateTrustType::TRUSTED_LEAF; + return result; + } + static constexpr CertificateTrust ForUnspecified() { CertificateTrust result; return result; @@ -58,7 +77,15 @@ return result; } + constexpr CertificateTrust WithRequireLeafSelfSigned( + bool value = true) const { + CertificateTrust result = *this; + result.require_leaf_selfsigned = value; + return result; + } + bool IsTrustAnchor() const; + bool IsTrustLeaf() const; bool IsDistrusted() const; bool HasUnspecifiedTrust() const; @@ -72,6 +99,9 @@ // name and SPKI. bool enforce_anchor_expiry = false; bool enforce_anchor_constraints = false; + + // Optionally, require trusted leafs to be self-signed to be trusted. + bool require_leaf_selfsigned = false; }; // Interface for finding intermediates / trust anchors, and testing the
diff --git a/net/cert/pki/trust_store_unittest.cc b/net/cert/pki/trust_store_unittest.cc index 9c45ac42..9500d34 100644 --- a/net/cert/pki/trust_store_unittest.cc +++ b/net/cert/pki/trust_store_unittest.cc
@@ -16,12 +16,40 @@ // unique string value. TEST(CertificateTrustTest, ToDebugStringUniqueness) { std::vector<CertificateTrust> trust_settings = { + // Meaningful combinations with trust anchor CertificateTrust::ForTrustAnchor(), CertificateTrust::ForTrustAnchor().WithEnforceAnchorConstraints(), CertificateTrust::ForTrustAnchor().WithEnforceAnchorExpiry(), CertificateTrust::ForTrustAnchor() .WithEnforceAnchorConstraints() .WithEnforceAnchorExpiry(), + + // Meaningful combinations with trust anchor or leaf + CertificateTrust::ForTrustAnchorOrLeaf(), + + CertificateTrust::ForTrustAnchorOrLeaf().WithEnforceAnchorConstraints(), + CertificateTrust::ForTrustAnchorOrLeaf().WithEnforceAnchorExpiry(), + CertificateTrust::ForTrustAnchorOrLeaf().WithRequireLeafSelfSigned(), + + CertificateTrust::ForTrustAnchorOrLeaf() + .WithEnforceAnchorConstraints() + .WithEnforceAnchorExpiry(), + CertificateTrust::ForTrustAnchorOrLeaf() + .WithEnforceAnchorConstraints() + .WithRequireLeafSelfSigned(), + CertificateTrust::ForTrustAnchorOrLeaf() + .WithEnforceAnchorExpiry() + .WithRequireLeafSelfSigned(), + + CertificateTrust::ForTrustAnchorOrLeaf() + .WithEnforceAnchorConstraints() + .WithEnforceAnchorExpiry() + .WithRequireLeafSelfSigned(), + + // Meaningful combinations with trusted leaf + CertificateTrust::ForTrustedLeaf(), + CertificateTrust::ForTrustedLeaf().WithRequireLeafSelfSigned(), + CertificateTrust::ForUnspecified(), CertificateTrust::ForDistrusted(), };
diff --git a/net/cert/pki/verify_certificate_chain.cc b/net/cert/pki/verify_certificate_chain.cc index 8c37cb1c..ec3175b 100644 --- a/net/cert/pki/verify_certificate_chain.cc +++ b/net/cert/pki/verify_certificate_chain.cc
@@ -679,6 +679,15 @@ CertErrors* errors, bool* shortcircuit_chain_validation); + // Processes verification when the input is a single certificate. This is not + // defined by any standard. We attempt to match the de-facto behaviour of + // Operating System verifiers. + void ProcessSingleCertChain(const ParsedCertificate& cert, + const CertificateTrust& trust, + const der::GeneralizedTime& time, + KeyPurpose required_key_purpose, + CertErrors* errors); + // Parses |spki| to an EVP_PKEY and checks whether the public key is accepted // by |delegate_|. On failure parsing returns nullptr. If either parsing the // key or key policy failed, adds a high-severity error to |errors|. @@ -1303,6 +1312,7 @@ *shortcircuit_chain_validation = false; switch (trust.type) { case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_LEAF: // Doesn't chain to a trust anchor - implicitly distrusted errors->AddError(cert_errors::kCertIsNotTrustAnchor); *shortcircuit_chain_validation = true; @@ -1313,6 +1323,7 @@ *shortcircuit_chain_validation = true; break; case CertificateTrustType::TRUSTED_ANCHOR: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: break; } if (*shortcircuit_chain_validation) @@ -1330,6 +1341,58 @@ working_normalized_issuer_name_ = cert.normalized_subject(); } +void PathVerifier::ProcessSingleCertChain(const ParsedCertificate& cert, + const CertificateTrust& trust, + const der::GeneralizedTime& time, + KeyPurpose required_key_purpose, + CertErrors* errors) { + switch (trust.type) { + case CertificateTrustType::UNSPECIFIED: + case CertificateTrustType::TRUSTED_ANCHOR: + // Target doesn't have a chain and isn't a directly trusted leaf - + // implicitly distrusted. + errors->AddError(cert_errors::kCertIsNotTrustAnchor); + return; + case CertificateTrustType::DISTRUSTED: + // Target is directly distrusted. + errors->AddError(cert_errors::kDistrustedByTrustStore); + return; + case CertificateTrustType::TRUSTED_LEAF: + case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: + break; + } + + // Check the public key for the target certificate regardless of whether + // `require_leaf_selfsigned` is true. This matches the check in WrapUp and + // fulfills the documented behavior of the IsPublicKeyAcceptable delegate. + ParseAndCheckPublicKey(cert.tbs().spki_tlv, errors); + + if (trust.require_leaf_selfsigned) { + if (!VerifyCertificateIsSelfSigned(cert, delegate_->GetVerifyCache(), + errors)) { + // VerifyCertificateIsSelfSigned should have added an error, but just + // double check to be safe. + if (!errors->ContainsAnyErrorWithSeverity(CertError::SEVERITY_HIGH)) { + errors->AddError(cert_errors::kInternalError); + } + return; + } + } + + // There is no standard for what it means to verify a directly trusted leaf + // certificate, so this is basically just checking common sense things that + // also mirror what we observed to be enforced with the Operating System + // native verifiers. + VerifyTimeValidity(cert, time, errors); + VerifyExtendedKeyUsage(cert, required_key_purpose, errors, + /*is_target_cert=*/true, + /*is_target_cert_issuer=*/false); + + // Checking for unknown critical extensions matches Windows, but is stricter + // than the Mac verifier. + VerifyNoUnconsumedCriticalExtensions(cert, errors); +} + bssl::UniquePtr<EVP_PKEY> PathVerifier::ParseAndCheckPublicKey( const der::Input& spki, CertErrors* errors) { @@ -1372,10 +1435,11 @@ return; } - // Verifying a trusted leaf certificate is not permitted. (It isn't a - // well-specified operation.) See https://crbug.com/814994. + // Verifying a trusted leaf certificate isn't a well-specified operation, so + // it's handled separately from the RFC 5280 defined verification process. if (certs.size() == 1) { - errors->GetOtherErrors()->AddError(cert_errors::kChainIsLength1); + ProcessSingleCertChain(*certs.front(), last_cert_trust, time, + required_key_purpose, errors->GetErrorsForCert(0)); return; }
diff --git a/net/cert/pki/verify_certificate_chain_typed_unittest.h b/net/cert/pki/verify_certificate_chain_typed_unittest.h index fc913a8..5b8ac93 100644 --- a/net/cert/pki/verify_certificate_chain_typed_unittest.h +++ b/net/cert/pki/verify_certificate_chain_typed_unittest.h
@@ -48,6 +48,7 @@ this->RunTest("target-and-intermediate/main.test"); this->RunTest("target-and-intermediate/ta-with-expiration.test"); this->RunTest("target-and-intermediate/ta-with-constraints.test"); + this->RunTest("target-and-intermediate/trusted_leaf-and-trust_anchor.test"); } TYPED_TEST_P(VerifyCertificateChainSingleRootTest, BasicConstraintsCa) { @@ -58,6 +59,13 @@ this->RunTest("root-lacks-basic-constraints/ta-with-constraints.test"); this->RunTest("root-basic-constraints-ca-false/main.test"); this->RunTest("root-basic-constraints-ca-false/ta-with-constraints.test"); + + this->RunTest("target-has-ca-basic-constraints/main.test"); + this->RunTest("target-has-ca-basic-constraints/strict.test"); + this->RunTest( + "target-has-ca-basic-constraints/target_only-trusted_leaf.test"); + this->RunTest( + "target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test"); } TYPED_TEST_P(VerifyCertificateChainSingleRootTest, BasicConstraintsPathlen) { @@ -72,6 +80,8 @@ this->RunTest("intermediate-unknown-critical-extension/main.test"); this->RunTest("intermediate-unknown-non-critical-extension/main.test"); this->RunTest("target-unknown-critical-extension/main.test"); + this->RunTest( + "target-unknown-critical-extension/target_only-trusted_leaf.test"); } TYPED_TEST_P(VerifyCertificateChainSingleRootTest, WeakSignature) { @@ -92,6 +102,7 @@ this->RunTest("target-and-intermediate/distrusted-root.test"); this->RunTest("target-and-intermediate/distrusted-root-expired.test"); this->RunTest("target-and-intermediate/unspecified-trust-root.test"); + this->RunTest("target-and-intermediate/trusted_leaf-root.test"); } TYPED_TEST_P(VerifyCertificateChainSingleRootTest, WeakPublicKey) { @@ -237,6 +248,33 @@ this->RunTest("many-names/toomany-dirnames-permitted.test"); } +TYPED_TEST_P(VerifyCertificateChainSingleRootTest, TargetOnly) { + this->RunTest("target-only/trusted_anchor.test"); + this->RunTest("target-only/trusted_leaf-and-trust_anchor.test"); + this->RunTest("target-only/trusted_leaf.test"); + this->RunTest("target-only/trusted_leaf_require_self_signed.test"); + this->RunTest("target-only/trusted_leaf-not_after.test"); + this->RunTest("target-only/trusted_leaf-wrong_eku.test"); + + this->RunTest("target-selfissued/trusted_anchor.test"); + this->RunTest("target-selfissued/trusted_leaf-and-trust_anchor.test"); + this->RunTest("target-selfissued/trusted_leaf.test"); + this->RunTest("target-selfissued/trusted_leaf_require_self_signed.test"); +} + +TYPED_TEST_P(VerifyCertificateChainSingleRootTest, TargetSelfSigned) { + // Note that there is not a test here of target-selfsigned with + // TRUSTED_ANCHOR, since it will have different results when run under + // verify_certificate_chain_unittest.cc and + // path_builder_verify_certificate_chain_unittest.cc + + this->RunTest("target-selfsigned/trusted_leaf-and-trust_anchor.test"); + this->RunTest("target-selfsigned/trusted_leaf.test"); + this->RunTest("target-selfsigned/trusted_leaf_require_self_signed.test"); + this->RunTest("target-selfsigned/trusted_leaf-not_after.test"); + this->RunTest("target-selfsigned/trusted_leaf-wrong_eku.test"); +} + // TODO(eroman): Add test that invalid validity dates where the day or month // ordinal not in range, like "March 39, 2016" are rejected. @@ -258,7 +296,9 @@ TrustAnchorNotSelfSigned, KeyRollover, Policies, - ManyNames); + ManyNames, + TargetOnly, + TargetSelfSigned); } // namespace net
diff --git a/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test b/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test new file mode 100644 index 0000000..417d1ac --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR_OR_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test b/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test new file mode 100644 index 0000000..de20dc4 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=2 (CN=Root) ----- +ERROR: Certificate is not a trust anchor +
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem new file mode 100644 index 0000000..0bd5b9bf --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem
@@ -0,0 +1,268 @@ +[Created by: ./generate-chains.py] + +Certificate chain where the leaf has a basic constraints extension with +CA=true + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 08:bc:87:56:5b:c5:c0:7d:88:48:cc:cc:ca:97:dd:d6:7e:b8:ae:e7 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=Intermediate + Validity + Not Before: Oct 5 12:00:00 2021 GMT + Not After : Oct 5 12:00:00 2022 GMT + Subject: CN=Target + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:be:16:a4:92:0f:af:f6:da:90:19:3e:26:29:a9: + 04:35:24:67:db:93:b7:89:61:5c:c2:84:07:ff:db: + 83:9a:1b:5c:9d:2f:ac:f6:20:87:74:fd:5a:f7:96: + da:aa:8b:77:d0:7d:cb:87:cf:96:37:2d:04:ef:19: + f7:09:6d:aa:73:74:16:b9:1c:f1:7b:15:9f:50:a9: + be:33:08:86:9f:88:9e:0c:b4:3b:2a:98:06:43:0f: + bb:14:ac:65:27:0f:c1:6c:58:d0:54:ce:62:89:ed: + 03:99:3c:c7:f0:2e:ab:c5:f3:f0:5a:b6:91:68:6f: + aa:4b:37:e9:d8:dd:63:0f:6c:a2:0b:f7:72:0e:6f: + a3:ee:b9:7e:c7:4b:a4:cd:69:6c:b8:a3:66:14:14: + 46:96:95:ca:60:64:af:58:93:0b:a2:d8:17:04:5c: + cd:ec:48:85:7a:4b:5b:c2:84:00:52:fa:8f:25:7b: + ce:0b:9b:14:a6:21:cc:48:f6:14:d5:c1:1b:3a:8b: + ba:ae:ef:15:55:0d:63:4d:f6:ea:f1:ca:1c:11:04: + 3a:c9:f8:87:13:c2:8f:cb:f1:1d:18:79:2f:66:1d: + 10:45:2d:4c:55:49:4c:3b:68:28:25:4a:8b:99:a9: + 8d:27:66:86:71:4a:6d:f1:f8:fb:58:7e:db:3b:2d: + 9e:8b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + F8:96:4F:23:BA:6B:B3:8F:4B:07:6E:24:86:07:55:F1:E9:8E:6E:02 + X509v3 Authority Key Identifier: + 0D:33:4F:98:F6:3C:94:C8:20:5B:51:C9:BD:ED:09:3B:F0:B4:F3:D6 + Authority Information Access: + CA Issuers - URI:http://url-for-aia/Intermediate.cer + X509v3 CRL Distribution Points: + Full Name: + URI:http://url-for-crl/Intermediate.crl + X509v3 Key Usage: critical + Digital Signature, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Basic Constraints: critical + CA:TRUE + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 2f:f3:3e:5f:9a:ed:43:1c:58:2e:15:aa:94:d8:d7:37:87:83: + 79:ff:a8:7d:d2:bf:3d:4d:3c:99:91:78:93:84:7b:ce:1e:07: + 55:f8:bd:5d:d1:e6:82:c4:a9:c0:6b:bf:e4:73:df:d0:b6:38: + 09:66:84:23:50:e3:16:37:15:88:89:78:08:31:7d:52:e0:56: + a2:2d:ef:a6:75:5a:a3:44:c5:ae:23:a3:fc:92:81:b6:cf:3f: + bc:ba:a1:4d:da:6d:0a:18:04:95:7a:4f:b3:74:e7:1b:19:97: + fd:c3:32:c3:77:17:15:7a:d5:9b:6c:54:9c:16:1b:3f:37:3e: + b9:ed:97:69:f9:da:3d:cf:e4:aa:2a:39:45:28:2b:2e:4e:d7: + 60:bb:fd:cb:3d:c2:19:85:e0:f6:1d:1e:bb:21:4c:f4:ee:a1: + cf:dc:c9:24:53:cb:80:44:5f:d3:cf:83:09:90:17:1c:32:a8: + c5:49:c1:c9:e6:28:f0:88:7d:36:d1:fe:0b:dc:a9:3f:79:ae: + c9:89:4c:04:ec:49:ac:6d:58:24:67:20:d3:8f:29:c1:87:84: + 2f:69:4f:da:18:7d:f6:a0:88:92:ea:db:47:8d:f0:b3:a3:c9: + 15:6a:c8:e5:84:79:74:cd:e1:ee:fa:02:79:05:1f:5c:76:4a: + 71:ae:58:b8 +-----BEGIN CERTIFICATE----- +MIIDsTCCApmgAwIBAgIUCLyHVlvFwH2ISMzMypfd1n64rucwDQYJKoZIhvcNAQEL +BQAwFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMB4XDTIxMTAwNTEyMDAwMFoXDTIy +MTAwNTEyMDAwMFowETEPMA0GA1UEAwwGVGFyZ2V0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAvhakkg+v9tqQGT4mKakENSRn25O3iWFcwoQH/9uDmhtc +nS+s9iCHdP1a95baqot30H3Lh8+WNy0E7xn3CW2qc3QWuRzxexWfUKm+MwiGn4ie +DLQ7KpgGQw+7FKxlJw/BbFjQVM5iie0DmTzH8C6rxfPwWraRaG+qSzfp2N1jD2yi +C/dyDm+j7rl+x0ukzWlsuKNmFBRGlpXKYGSvWJMLotgXBFzN7EiFektbwoQAUvqP +JXvOC5sUpiHMSPYU1cEbOou6ru8VVQ1jTfbq8cocEQQ6yfiHE8KPy/EdGHkvZh0Q +RS1MVUlMO2goJUqLmamNJ2aGcUpt8fj7WH7bOy2eiwIDAQABo4H6MIH3MB0GA1Ud +DgQWBBT4lk8jumuzj0sHbiSGB1Xx6Y5uAjAfBgNVHSMEGDAWgBQNM0+Y9jyUyCBb +Ucm97Qk78LTz1jA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91 +cmwtZm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0 +dHA6Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAL/M+X5rtQxxYLhWqlNjXN4eDef+ofdK/PU08 +mZF4k4R7zh4HVfi9XdHmgsSpwGu/5HPf0LY4CWaEI1DjFjcViIl4CDF9UuBWoi3v +pnVao0TFriOj/JKBts8/vLqhTdptChgElXpPs3TnGxmX/cMyw3cXFXrVm2xUnBYb +Pzc+ue2XafnaPc/kqio5RSgrLk7XYLv9yz3CGYXg9h0euyFM9O6hz9zJJFPLgERf +08+DCZAXHDKoxUnByeYo8Ih9NtH+C9ypP3muyYlMBOxJrG1YJGcg048pwYeEL2lP +2hh99qCIkurbR43ws6PJFWrI5YR5dM3h7voCeQUfXHZKca5YuA== +-----END CERTIFICATE----- + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 02:6e:e9:d7:f8:5d:44:ad:34:05:15:23:70:65:9e:cc:e0:a7:66:53 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=Root + Validity + Not Before: Oct 5 12:00:00 2021 GMT + Not After : Oct 5 12:00:00 2022 GMT + Subject: CN=Intermediate + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c5:8c:3e:44:f5:7d:89:d5:8d:77:86:f9:d5:a0: + 8b:dc:1d:0f:3e:d0:f8:d1:72:c4:5b:d0:83:56:b5: + 98:0c:4e:0c:3d:48:f7:db:06:e8:c2:eb:5c:fc:f4: + 2f:b0:23:74:fc:95:23:0c:7d:3d:be:29:89:6f:d5: + 97:d3:8b:6f:bf:36:4d:99:4e:c9:fe:59:a2:9a:56: + df:3c:a6:e0:f4:8e:2b:20:00:4a:4d:6e:15:c9:7f: + c0:35:8f:5a:48:08:0b:41:d1:cf:84:c0:fd:99:71: + 26:96:7b:b5:6f:1d:ce:db:74:b1:d3:1d:39:37:70: + d0:e1:53:d5:44:72:e2:80:c2:bb:c7:71:93:4e:02: + 40:ac:a0:af:33:72:a1:6d:9a:44:9b:45:ad:22:74: + fc:18:74:e0:84:34:00:00:76:46:2a:77:f9:ff:a8: + af:71:b9:e6:e6:32:9a:d4:d2:a7:dd:71:f9:2a:49: + 2a:fe:c2:8e:cf:9c:77:f7:39:7d:d3:99:09:b1:49: + 30:35:e5:8d:3a:c3:3e:6c:1d:d6:b7:26:bb:90:e4: + 3b:c3:2e:aa:37:18:bb:28:f3:79:d2:69:9c:87:7f: + 78:5f:c5:97:d1:d8:45:14:17:38:6d:66:23:2e:90: + dd:25:c1:60:3c:7c:f5:9a:d2:16:05:c0:7f:89:3e: + 10:87 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 0D:33:4F:98:F6:3C:94:C8:20:5B:51:C9:BD:ED:09:3B:F0:B4:F3:D6 + X509v3 Authority Key Identifier: + 7A:98:A9:3F:BA:80:DD:68:1B:1C:87:57:2E:42:3F:5F:B3:50:5D:A8 + Authority Information Access: + CA Issuers - URI:http://url-for-aia/Root.cer + X509v3 CRL Distribution Points: + Full Name: + URI:http://url-for-crl/Root.crl + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 76:1d:d7:22:f9:e8:d8:a6:ec:b0:bf:06:92:7c:2a:82:cd:8a: + 7b:13:bd:c6:d9:da:4b:b3:94:12:82:59:a8:16:76:c1:05:c0: + 7e:7d:19:b4:8f:35:c7:58:73:ff:7d:9e:8c:55:6f:0b:b3:e3: + 5f:d0:e8:57:c0:92:6c:47:a7:55:84:77:90:19:c1:67:1f:8a: + 32:70:0c:3e:de:01:6f:c6:79:1e:a0:10:15:a2:ec:f6:1a:19: + 10:ac:aa:bf:63:0b:52:88:3d:61:5e:e9:6b:76:4d:b1:f5:16: + a7:09:4f:68:67:1b:47:b5:62:37:b2:6b:66:e0:e7:51:86:50: + 32:54:b7:b7:e8:77:5c:d8:ff:8d:3b:6e:49:ac:5c:ce:33:38: + 52:0f:41:80:1d:b0:fd:35:8d:37:23:06:e3:1c:89:f4:d3:6c: + 73:d0:d3:8f:72:db:9a:7a:34:40:54:77:97:ae:9f:5b:4d:d8: + 94:99:a7:89:11:04:bb:52:06:ba:32:fd:f9:16:b7:ee:a6:03: + 55:39:31:4f:89:3b:9c:9b:d3:61:4b:a0:f2:ab:24:ad:95:46: + 2e:5e:27:be:03:f2:e0:4d:70:27:63:9a:c1:f9:1b:00:ab:6b: + de:e7:f1:04:a7:b5:bd:85:31:a6:32:4b:0e:e8:a5:ab:8d:c1: + 52:19:f2:b6 +-----BEGIN CERTIFICATE----- +MIIDgDCCAmigAwIBAgIUAm7p1/hdRK00BRUjcGWezOCnZlMwDQYJKoZIhvcNAQEL +BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw +MDBaMBcxFTATBgNVBAMMDEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMWMPkT1fYnVjXeG+dWgi9wdDz7Q+NFyxFvQg1a1mAxODD1I +99sG6MLrXPz0L7AjdPyVIwx9Pb4piW/Vl9OLb782TZlOyf5ZoppW3zym4PSOKyAA +Sk1uFcl/wDWPWkgIC0HRz4TA/ZlxJpZ7tW8dztt0sdMdOTdw0OFT1URy4oDCu8dx +k04CQKygrzNyoW2aRJtFrSJ0/Bh04IQ0AAB2Rip3+f+or3G55uYymtTSp91x+SpJ +Kv7Cjs+cd/c5fdOZCbFJMDXljTrDPmwd1rcmu5DkO8MuqjcYuyjzedJpnId/eF/F +l9HYRRQXOG1mIy6Q3SXBYDx89ZrSFgXAf4k+EIcCAwEAAaOByzCByDAdBgNVHQ4E +FgQUDTNPmPY8lMggW1HJve0JO/C089YwHwYDVR0jBBgwFoAUepipP7qA3WgbHIdX +LkI/X7NQXagwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRwOi8vdXJs +LWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDovL3VybC1m +b3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MA0GCSqGSIb3DQEBCwUAA4IBAQB2Hdci+ejYpuywvwaSfCqCzYp7E73G2dpLs5QS +glmoFnbBBcB+fRm0jzXHWHP/fZ6MVW8Ls+Nf0OhXwJJsR6dVhHeQGcFnH4oycAw+ +3gFvxnkeoBAVouz2GhkQrKq/YwtSiD1hXulrdk2x9RanCU9oZxtHtWI3smtm4OdR +hlAyVLe36Hdc2P+NO25JrFzOMzhSD0GAHbD9NY03IwbjHIn002xz0NOPctuaejRA +VHeXrp9bTdiUmaeJEQS7Uga6Mv35FrfupgNVOTFPiTucm9NhS6DyqyStlUYuXie+ +A/LgTXAnY5rB+RsAq2ve5/EEp7W9hTGmMksO6KWrjcFSGfK2 +-----END CERTIFICATE----- + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 02:6e:e9:d7:f8:5d:44:ad:34:05:15:23:70:65:9e:cc:e0:a7:66:52 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=Root + Validity + Not Before: Oct 5 12:00:00 2021 GMT + Not After : Oct 5 12:00:00 2022 GMT + Subject: CN=Root + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:af:0c:3f:db:02:4b:9e:87:03:a5:64:a7:18:9a: + c1:4c:c8:bf:1b:e7:5a:04:52:70:6c:a2:bc:19:99: + 33:44:f9:9a:6b:30:d8:57:5b:be:a0:dc:8c:97:91: + 20:97:f8:04:ef:21:1d:b1:c7:a3:1b:57:02:c9:bd: + 53:54:f8:58:96:f3:c2:d7:5e:ae:61:c1:d5:08:ff: + 88:bf:80:c1:ef:c8:6d:99:ac:8e:55:f6:e0:da:8f: + f3:31:f1:e5:02:82:2c:f9:42:cb:7c:4c:2b:ba:97: + eb:ef:cd:b0:d5:31:a1:09:f8:5e:62:74:4e:29:02: + 9b:7e:de:0b:31:36:b6:fd:36:e5:a6:a8:ac:05:1f: + 5f:32:e6:60:f7:5f:8f:f3:a5:6e:3d:c4:ec:dd:23: + ac:4b:69:ab:df:41:65:2b:bd:f2:ed:51:e0:94:e4: + 5f:35:6c:be:c8:be:2a:10:27:55:92:6b:82:ac:72: + b7:c4:de:47:04:03:6c:57:fd:de:f1:17:3b:16:0c: + d7:cd:26:28:84:b2:df:19:e7:2f:45:87:2f:91:82: + d5:21:4b:0a:49:77:a0:46:39:2d:fc:ab:63:1f:76: + 2d:c1:4a:03:1c:d8:e0:dc:a3:4d:c8:56:aa:41:1c: + e9:11:63:10:c6:55:03:4e:c8:be:53:7e:3c:a9:d7: + 13:af + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 7A:98:A9:3F:BA:80:DD:68:1B:1C:87:57:2E:42:3F:5F:B3:50:5D:A8 + X509v3 Authority Key Identifier: + 7A:98:A9:3F:BA:80:DD:68:1B:1C:87:57:2E:42:3F:5F:B3:50:5D:A8 + Authority Information Access: + CA Issuers - URI:http://url-for-aia/Root.cer + X509v3 CRL Distribution Points: + Full Name: + URI:http://url-for-crl/Root.crl + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 07:9d:ea:d3:5a:05:0f:1d:14:12:d4:a3:1f:1e:29:e7:5b:8c: + 8f:9f:3e:b9:f3:85:d2:5e:73:9c:41:7c:81:bf:75:fe:61:49: + dd:d9:69:95:43:4c:46:8d:b7:49:1b:b8:4e:a0:e8:f7:ab:dc: + c1:6c:85:43:4b:f1:94:a0:3c:b6:06:db:20:70:fe:cb:b4:a3: + ee:d3:12:93:70:c1:c1:97:30:8e:78:7a:7e:31:f6:35:d4:b6: + e8:f4:9e:1c:11:c9:5b:51:8b:18:da:c3:65:48:d8:0c:9d:7e: + 73:27:26:b1:3c:25:b2:9c:12:79:a8:3e:37:18:14:ca:a9:33: + 78:17:03:12:bd:42:48:6f:78:0a:4f:8d:b5:c0:88:c4:d2:a5: + 99:84:2b:a5:d9:40:85:65:67:aa:12:74:4f:c9:b6:0a:64:17: + d7:af:51:3b:13:08:70:ce:65:af:36:59:46:32:b3:40:45:c3: + 1a:8b:56:3e:2b:81:5d:81:48:a6:f9:8e:5b:26:c2:1a:1a:68: + 57:a1:22:8a:42:2e:9a:51:8c:18:f8:fe:d6:a4:89:b5:7d:64: + 14:5b:b1:5d:26:92:f1:17:54:8a:bb:e6:d7:97:82:6c:e1:b4: + 39:42:68:d1:69:64:a9:21:1c:28:e1:ae:bd:eb:09:78:76:c9: + 7f:cd:79:90 +-----BEGIN CERTIFICATE----- +MIIDeDCCAmCgAwIBAgIUAm7p1/hdRK00BRUjcGWezOCnZlIwDQYJKoZIhvcNAQEL +BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw +MDBaMA8xDTALBgNVBAMMBFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCvDD/bAkuehwOlZKcYmsFMyL8b51oEUnBsorwZmTNE+ZprMNhXW76g3IyX +kSCX+ATvIR2xx6MbVwLJvVNU+FiW88LXXq5hwdUI/4i/gMHvyG2ZrI5V9uDaj/Mx +8eUCgiz5Qst8TCu6l+vvzbDVMaEJ+F5idE4pApt+3gsxNrb9NuWmqKwFH18y5mD3 +X4/zpW49xOzdI6xLaavfQWUrvfLtUeCU5F81bL7IvioQJ1WSa4KscrfE3kcEA2xX +/d7xFzsWDNfNJiiEst8Z5y9Fhy+RgtUhSwpJd6BGOS38q2Mfdi3BSgMc2ODco03I +VqpBHOkRYxDGVQNOyL5Tfjyp1xOvAgMBAAGjgcswgcgwHQYDVR0OBBYEFHqYqT+6 +gN1oGxyHVy5CP1+zUF2oMB8GA1UdIwQYMBaAFHqYqT+6gN1oGxyHVy5CP1+zUF2o +MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAoYbaHR0cDovL3VybC1mb3ItYWlh +L1Jvb3QuY2VyMCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly91cmwtZm9yLWNybC9S +b290LmNybDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG +9w0BAQsFAAOCAQEAB53q01oFDx0UEtSjHx4p51uMj58+ufOF0l5znEF8gb91/mFJ +3dlplUNMRo23SRu4TqDo96vcwWyFQ0vxlKA8tgbbIHD+y7Sj7tMSk3DBwZcwjnh6 +fjH2NdS26PSeHBHJW1GLGNrDZUjYDJ1+cycmsTwlspwSeag+NxgUyqkzeBcDEr1C +SG94Ck+NtcCIxNKlmYQrpdlAhWVnqhJ0T8m2CmQX169ROxMIcM5lrzZZRjKzQEXD +GotWPiuBXYFIpvmOWybCGhpoV6EiikIumlGMGPj+1qSJtX1kFFuxXSaS8RdUirvm +15eCbOG0OUJo0WlkqSEcKOGuvesJeHbJf815kA== +-----END CERTIFICATE-----
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/generate-chains.py b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/generate-chains.py new file mode 100755 index 0000000..8530a7a --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/generate-chains.py
@@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# 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. +"""Certificate chain where the leaf has a basic constraints extension with +CA=true""" + +import sys +sys.path += ['../..'] + +import gencerts + +# Self-signed root certificate. +root = gencerts.create_self_signed_root_certificate('Root') + +# Intermediate certificate. +intermediate = gencerts.create_intermediate_certificate('Intermediate', root) + +# Target certificate (end entity, but has pathlen set). +target = gencerts.create_end_entity_certificate('Target', intermediate) +target.get_extensions().set_property('basicConstraints', 'critical,CA:true') + +chain = [target, intermediate, root] +gencerts.write_chain(__doc__, chain, 'chain.pem') +gencerts.write_chain(__doc__, [target], 'target_only.pem')
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Intermediate.key b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Intermediate.key new file mode 100644 index 0000000..6a35ec4 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Intermediate.key
@@ -0,0 +1,29 @@ +openssl genrsa 2048 +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDFjD5E9X2J1Y13 +hvnVoIvcHQ8+0PjRcsRb0INWtZgMTgw9SPfbBujC61z89C+wI3T8lSMMfT2+KYlv +1ZfTi2+/Nk2ZTsn+WaKaVt88puD0jisgAEpNbhXJf8A1j1pICAtB0c+EwP2ZcSaW +e7VvHc7bdLHTHTk3cNDhU9VEcuKAwrvHcZNOAkCsoK8zcqFtmkSbRa0idPwYdOCE +NAAAdkYqd/n/qK9xuebmMprU0qfdcfkqSSr+wo7PnHf3OX3TmQmxSTA15Y06wz5s +Hda3JruQ5DvDLqo3GLso83nSaZyHf3hfxZfR2EUUFzhtZiMukN0lwWA8fPWa0hYF +wH+JPhCHAgMBAAECggEAFLiD9Di/EmeUyfOdnf4+h/fWWF4+qGgo14E/XXzOYNqz +kZ68khFJ9d65J2E3j/qlc97yyQW+pa/MANp/F+CEIqLVWzN2oC1nuaz2B8cbSRuR +GMS0W9B5tuPQVe3ePY2hHKYfZbXWg93opcJ+bT7LqpzgEBxRxZJu88uWzvIGob8G +j4/XV6+UuTXo7fQXSLt445NnWEutlo/abiTVXrhJvwucCRAlz5Dp+YH8ZK0Cdr3Y +66QopLyIKj0hi8Ra5m7CmZ/1CFq8bPj/dUvH4nhNUX6bLecPq2bJxKvFu8S2utz/ +cpqfbgx/sTSisqqu0gL5O35RUtjAaszWcB3mcEMceQKBgQD3EbeSx0F15ccB/2JX +S+DCbdhYG52Xm6/SbT3gKEX2CeQbqha+z3FfSn25CBb34xBo0u1g2HVhCqlezDkk +xSsX4bOLZbPbnr7fBs0BXd6x9JRFBCfj4DSvevH4BOOUmvTBlqQIDGT/z3nT/xof +q0zNX/ENs50r806iQTag8wpB/wKBgQDMsEZBOA9MmzFceGGaNmCo4Aks/dc0VqGN +Z2kXuVdXuwiHW6PFSKYIqcdk+YZvGFebuAB7p+yavQy6YZ5pGkjjgJNtpd22HTCe +DH5aiArzpvp9VASslrePsA8PYPMiZj4lyNY1qrOZ9vyFghOGp8z2YCtL2AOyW7Zt +Fa4XIx0heQKBgEnH9a0Uadz+UE6taD2vgCAv02KEZKxoprnNO6QcAsB1tbP5OC+l +HTMauK6v1sQR/81957t7CJqBJ5ESpaHwa20HTqm7JlnYbyGFE2VsFdvIsRpnIk5v +nuwkZ+vr8dZn691/0d5BbUvjNntze+anLhlKpF62G6KLVxknJlwsGA0bAoGACpzh +J6SGdoxdZNQBC4PiQx9KmoCW1enf+nrwIgDEHJJgANSpiyMXKL/UzNF7POtgL3y8 +2ax9QhCnRkqlcgGg4draygadlkGxMaCoNH11Q+jWeAURMPmnjtWsEjoOoSv38PGW +2bV+Fm+N7EYwSP0OTX/y/r22g1rp/IHxQtXZPtECgYBvOBHX/bNN5/QPnaf2cht1 +m1TzZ4HqRTcad7mzrH7lUBGrBT9PobcO8UzvnIV7Oq/mEDiKYSN3AFaktKwSw9Nn +C6/Qu8hix+fA3kikz4zVVOl6WHKDqNDS52WmEOvLF0hdGTiftv93mjlle0iIQmnq +dQmE+pR3AxQXxjtFon74XA== +-----END PRIVATE KEY-----
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Root.key b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Root.key new file mode 100644 index 0000000..0304d57 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Root.key
@@ -0,0 +1,29 @@ +openssl genrsa 2048 +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvDD/bAkuehwOl +ZKcYmsFMyL8b51oEUnBsorwZmTNE+ZprMNhXW76g3IyXkSCX+ATvIR2xx6MbVwLJ +vVNU+FiW88LXXq5hwdUI/4i/gMHvyG2ZrI5V9uDaj/Mx8eUCgiz5Qst8TCu6l+vv +zbDVMaEJ+F5idE4pApt+3gsxNrb9NuWmqKwFH18y5mD3X4/zpW49xOzdI6xLaavf +QWUrvfLtUeCU5F81bL7IvioQJ1WSa4KscrfE3kcEA2xX/d7xFzsWDNfNJiiEst8Z +5y9Fhy+RgtUhSwpJd6BGOS38q2Mfdi3BSgMc2ODco03IVqpBHOkRYxDGVQNOyL5T +fjyp1xOvAgMBAAECggEAANrOdQNN2zhNjEExj60xxG42gKxghCTi56Tjxjw5Q9z0 +JBHY/JQ2GhL5nMPYpOVRINnIi1WuNjP2j4WdIo0T4ajPCr4rm86We7TDtiuqxsDz +yAxPpZvO/UI2rcfAloKMNatd0v2MOR0Eyeb3NhNH9gSAcXqf5xNcLwJmi5b4zcO0 +x4vE01JKaUrzGOihCpbu63Or4HwvV0Y7VqY911FydiB0qPVV1G11CODOoxO00Igz +9sCyz0ulyj2HwnKiMrl1hZWoVRwbIdesMv5Da8PcDiTvYCHNcs4GdfuHoXeakvbC +4c7IUWKjEFHSalzOC3edKVQBjf0EP08o+twyP+KUAQKBgQC/wn9FbO4zRAYZroFY +jAwaBaCCEh3PF0gtsbk2Aw3gAbZJhqFv5aYw66LA6Y2XLjYdymIgDh6Ll2LDwh3d +LwEaBKyMVshB5g7cRLhm6ehfxlqMARv/ZUCm44UakPGVrEnoFdfgWccA8XbaVduD +wMAJLNpu2A4LW0NYsTv85BDYRwKBgQDpsIXnUn/JEPzEMq/bOtG4thHBEV+ab6wz +33fKtg6mdhL17KpN5r77/tVmCyA7ADHMHlW+HmIQUF8PAMKwq/XuoghcctDoQsv6 +TNANIpiOMMPerAqUAW+Px4LJBfArZU3+0IOioLS3J0Pc5k4GSKLFif/tIp7HsMuQ +0VFcgemFWQKBgAQULQTbBk4M2lxde97YS8GZ8QoTPJMVGbHvH9NoSTlEkA4MUQ7C +QcC0omecECjxELGdhmzMIBY0CCPF00DLKSjWhJ0Pk37jV9mTlKCLxSeUXoSv2Vqb +Wr6yBDjGcH0QhxnqrQbWogcBG9gVD3BD/1GypIrLCbFwJYSTcIU2jK0tAoGBAK8D +zyURejZhjIx70YyEnrCRWvaXRlxpKjSnNhYRByPP5h9cIae6GmqrzbJgvsCxQpo2 +VczPAG5rYuXfke+yubsAivaB3sczz4QjpuVPdaV4DBlmC34RHTY3G1HmKpq1ghZG +n29aoD1TINX9fY3jNFRxJ8S3Wub/F1XcDe0UNonxAoGACE74clb0g0v5ROuODuT5 +5lI9UKkdEbT2s/sRAY3FgJFbEhs7JHzXqV9Y96vmrUiBRLw3GkpPCCGGR9vi02Je +yt0NFTgBw2sGXWQ+fmidtf42O9Uiku2daaMr0xLd12ouujdMHjtKP7qQOGVzRuXc +mBnf8njMO+RrQsxfpmIDNk0= +-----END PRIVATE KEY-----
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Target.key b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Target.key new file mode 100644 index 0000000..27adebb --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/keys/Target.key
@@ -0,0 +1,29 @@ +openssl genrsa 2048 +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+FqSSD6/22pAZ +PiYpqQQ1JGfbk7eJYVzChAf/24OaG1ydL6z2IId0/Vr3ltqqi3fQfcuHz5Y3LQTv +GfcJbapzdBa5HPF7FZ9Qqb4zCIafiJ4MtDsqmAZDD7sUrGUnD8FsWNBUzmKJ7QOZ +PMfwLqvF8/BatpFob6pLN+nY3WMPbKIL93IOb6PuuX7HS6TNaWy4o2YUFEaWlcpg +ZK9Ykwui2BcEXM3sSIV6S1vChABS+o8le84LmxSmIcxI9hTVwRs6i7qu7xVVDWNN +9urxyhwRBDrJ+IcTwo/L8R0YeS9mHRBFLUxVSUw7aCglSouZqY0nZoZxSm3x+PtY +fts7LZ6LAgMBAAECggEABaIs0vObRKF5EWZyykqeTKNKGs9r6kRi88fEmspQZEfh +chz9VYgo/9DdlfeJGAN+IJp+EUoPZo4mmuIegzX0J6eFgjYj6fgxJTHpCphH0vgn +izs9x0C2r9zGBSM6jdBWqBfE74Ce3nUr5XbYnQOlE9ynTBwkOsyGiTk2DrcoaM9d +GqVV4TK18ZQgSStL2OByYXLwS26VIBq77OT4KuI2jhLgLp5cR2r84gl2PeJZsHn+ +3ZNs87+enHnadHH9fS5xsIig/MYll024QzUxSIBQFxIhOkdhR2NvTdo/DrKkYTj4 +VuJUxoLod5qi/4YJGinmJ8L2erG/hT59uYXXbVpmkQKBgQDVozh+pO4/xuZILmrI +y6BTacTD4eJLw0qjafHtfRO/ENBuCUDHvBuf5Us2IgXuxWUGpCmRfR8bA+ocesv7 +ywhLriw7s2DUOIPMgSQFGowXr+oFCHesKe0UlhtGfhAzFnQZ5EnkXcBCrYKcnhNS +NoBaarTsLuhM2DltJUJWEP4xNwKBgQDjyAJZGFdhKj22OW++DkJsBmD+9JIbMaYu +cgiTckRTFnRbQ+HOa4gMaJAy/8DRZ494E8eLIhm98JtC3C66eufGzua4dTqbWx8P +ZLeX7EvgFRnjs64vGM2NUUrZTuGzIiio7n+zfocLpfxUUyX9T5MXj0sdVgTEAOWr +MgK8Ggo3TQKBgHUwmdbuxjp58ux5ed43xPS8ulDxYd9Je3H0td8ek2xl3s/dh4mJ +KGYns4A4XaTC504jUyIZzqxVE2EYAzlWAHDzVBRTq7P+ZF4UIRwjmeGMgATOxkbM +oN6AEOo0UNKVaI6jad05iDOLVnBvTg31E6eFjUVZ3df5bFbw71ii7a01AoGBANwg +w5wkuPUu5FrBYSr0Dt7kv0JFSxm6vpXuIDmWWU9OyP4WORfKtb0AJDMVFNuKUI1D +2DiuqN/1saZIsWQIOQvZkgE7UXsn8Xln5UGN27nfyphSYggj2So0ILin0djTLyYq +7wChS5NHQvafMHyANW+0TGw6X/qnv0zV1OzB4ZOVAoGBAJIX1DNJggAakxcMCIYu +CqN61ZH9pt4txSjMyeJWfgnvmKCXo6YlNeIxcBMvqOha3XGjzeSZliOUaD9vNrx3 +i+Qk6P++mPkCtRtDgAvvibm+GnqpQ9rOYbWqiKGMeae6Nf45u1bRO4ZotYvqRD7f +akAqiSd4xmHiXitPwszCCizK +-----END PRIVATE KEY-----
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test new file mode 100644 index 0000000..741ec48 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +WARNING: Certificate has Basic Constraints indicating it is a CA when it should not be a CA +
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test new file mode 100644 index 0000000..ad5b666 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR +utc_time: DEFAULT +key_purpose: SERVER_AUTH_STRICT +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Certificate has Basic Constraints indicating it is a CA when it should not be a CA +
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test new file mode 100644 index 0000000..290a403 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test
@@ -0,0 +1,5 @@ +chain: target_only.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH_STRICT +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test new file mode 100644 index 0000000..1b1a40e --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test
@@ -0,0 +1,5 @@ +chain: target_only.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem new file mode 100644 index 0000000..9eaed8e5 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem
@@ -0,0 +1,94 @@ +[Created by: ./generate-chains.py] + +Certificate chain where the leaf has a basic constraints extension with +CA=true + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 08:bc:87:56:5b:c5:c0:7d:88:48:cc:cc:ca:97:dd:d6:7e:b8:ae:e7 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=Intermediate + Validity + Not Before: Oct 5 12:00:00 2021 GMT + Not After : Oct 5 12:00:00 2022 GMT + Subject: CN=Target + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:be:16:a4:92:0f:af:f6:da:90:19:3e:26:29:a9: + 04:35:24:67:db:93:b7:89:61:5c:c2:84:07:ff:db: + 83:9a:1b:5c:9d:2f:ac:f6:20:87:74:fd:5a:f7:96: + da:aa:8b:77:d0:7d:cb:87:cf:96:37:2d:04:ef:19: + f7:09:6d:aa:73:74:16:b9:1c:f1:7b:15:9f:50:a9: + be:33:08:86:9f:88:9e:0c:b4:3b:2a:98:06:43:0f: + bb:14:ac:65:27:0f:c1:6c:58:d0:54:ce:62:89:ed: + 03:99:3c:c7:f0:2e:ab:c5:f3:f0:5a:b6:91:68:6f: + aa:4b:37:e9:d8:dd:63:0f:6c:a2:0b:f7:72:0e:6f: + a3:ee:b9:7e:c7:4b:a4:cd:69:6c:b8:a3:66:14:14: + 46:96:95:ca:60:64:af:58:93:0b:a2:d8:17:04:5c: + cd:ec:48:85:7a:4b:5b:c2:84:00:52:fa:8f:25:7b: + ce:0b:9b:14:a6:21:cc:48:f6:14:d5:c1:1b:3a:8b: + ba:ae:ef:15:55:0d:63:4d:f6:ea:f1:ca:1c:11:04: + 3a:c9:f8:87:13:c2:8f:cb:f1:1d:18:79:2f:66:1d: + 10:45:2d:4c:55:49:4c:3b:68:28:25:4a:8b:99:a9: + 8d:27:66:86:71:4a:6d:f1:f8:fb:58:7e:db:3b:2d: + 9e:8b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + F8:96:4F:23:BA:6B:B3:8F:4B:07:6E:24:86:07:55:F1:E9:8E:6E:02 + X509v3 Authority Key Identifier: + 0D:33:4F:98:F6:3C:94:C8:20:5B:51:C9:BD:ED:09:3B:F0:B4:F3:D6 + Authority Information Access: + CA Issuers - URI:http://url-for-aia/Intermediate.cer + X509v3 CRL Distribution Points: + Full Name: + URI:http://url-for-crl/Intermediate.crl + X509v3 Key Usage: critical + Digital Signature, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Basic Constraints: critical + CA:TRUE + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 2f:f3:3e:5f:9a:ed:43:1c:58:2e:15:aa:94:d8:d7:37:87:83: + 79:ff:a8:7d:d2:bf:3d:4d:3c:99:91:78:93:84:7b:ce:1e:07: + 55:f8:bd:5d:d1:e6:82:c4:a9:c0:6b:bf:e4:73:df:d0:b6:38: + 09:66:84:23:50:e3:16:37:15:88:89:78:08:31:7d:52:e0:56: + a2:2d:ef:a6:75:5a:a3:44:c5:ae:23:a3:fc:92:81:b6:cf:3f: + bc:ba:a1:4d:da:6d:0a:18:04:95:7a:4f:b3:74:e7:1b:19:97: + fd:c3:32:c3:77:17:15:7a:d5:9b:6c:54:9c:16:1b:3f:37:3e: + b9:ed:97:69:f9:da:3d:cf:e4:aa:2a:39:45:28:2b:2e:4e:d7: + 60:bb:fd:cb:3d:c2:19:85:e0:f6:1d:1e:bb:21:4c:f4:ee:a1: + cf:dc:c9:24:53:cb:80:44:5f:d3:cf:83:09:90:17:1c:32:a8: + c5:49:c1:c9:e6:28:f0:88:7d:36:d1:fe:0b:dc:a9:3f:79:ae: + c9:89:4c:04:ec:49:ac:6d:58:24:67:20:d3:8f:29:c1:87:84: + 2f:69:4f:da:18:7d:f6:a0:88:92:ea:db:47:8d:f0:b3:a3:c9: + 15:6a:c8:e5:84:79:74:cd:e1:ee:fa:02:79:05:1f:5c:76:4a: + 71:ae:58:b8 +-----BEGIN CERTIFICATE----- +MIIDsTCCApmgAwIBAgIUCLyHVlvFwH2ISMzMypfd1n64rucwDQYJKoZIhvcNAQEL +BQAwFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMB4XDTIxMTAwNTEyMDAwMFoXDTIy +MTAwNTEyMDAwMFowETEPMA0GA1UEAwwGVGFyZ2V0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAvhakkg+v9tqQGT4mKakENSRn25O3iWFcwoQH/9uDmhtc +nS+s9iCHdP1a95baqot30H3Lh8+WNy0E7xn3CW2qc3QWuRzxexWfUKm+MwiGn4ie +DLQ7KpgGQw+7FKxlJw/BbFjQVM5iie0DmTzH8C6rxfPwWraRaG+qSzfp2N1jD2yi +C/dyDm+j7rl+x0ukzWlsuKNmFBRGlpXKYGSvWJMLotgXBFzN7EiFektbwoQAUvqP +JXvOC5sUpiHMSPYU1cEbOou6ru8VVQ1jTfbq8cocEQQ6yfiHE8KPy/EdGHkvZh0Q +RS1MVUlMO2goJUqLmamNJ2aGcUpt8fj7WH7bOy2eiwIDAQABo4H6MIH3MB0GA1Ud +DgQWBBT4lk8jumuzj0sHbiSGB1Xx6Y5uAjAfBgNVHSMEGDAWgBQNM0+Y9jyUyCBb +Ucm97Qk78LTz1jA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91 +cmwtZm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0 +dHA6Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAL/M+X5rtQxxYLhWqlNjXN4eDef+ofdK/PU08 +mZF4k4R7zh4HVfi9XdHmgsSpwGu/5HPf0LY4CWaEI1DjFjcViIl4CDF9UuBWoi3v +pnVao0TFriOj/JKBts8/vLqhTdptChgElXpPs3TnGxmX/cMyw3cXFXrVm2xUnBYb +Pzc+ue2XafnaPc/kqio5RSgrLk7XYLv9yz3CGYXg9h0euyFM9O6hz9zJJFPLgERf +08+DCZAXHDKoxUnByeYo8Ih9NtH+C9ypP3muyYlMBOxJrG1YJGcg048pwYeEL2lP +2hh99qCIkurbR43ws6PJFWrI5YR5dM3h7voCeQUfXHZKca5YuA== +-----END CERTIFICATE-----
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_anchor.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_anchor.test new file mode 100644 index 0000000..a79783c8 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_anchor.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Certificate is not a trust anchor +
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test new file mode 100644 index 0000000..417d1ac --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR_OR_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test new file mode 100644 index 0000000..82d940e5 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: 221102120000Z +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Time is after notAfter +
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test new file mode 100644 index 0000000..98c6589 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: CLIENT_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: The extended key usage does not include client auth +
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf.test new file mode 100644 index 0000000..15fb7ad0 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test new file mode 100644 index 0000000..8cf374a --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF_REQUIRE_SELF_SIGNED +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: subject does not match issuer +
diff --git a/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test new file mode 100644 index 0000000..a79783c8 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Certificate is not a trust anchor +
diff --git a/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test new file mode 100644 index 0000000..417d1ac --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR_OR_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test new file mode 100644 index 0000000..15fb7ad0 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test new file mode 100644 index 0000000..fe38e84 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF_REQUIRE_SELF_SIGNED +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: VerifySignedData failed +
diff --git a/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test new file mode 100644 index 0000000..417d1ac --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_ANCHOR_OR_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test new file mode 100644 index 0000000..82d940e5 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: 221102120000Z +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Time is after notAfter +
diff --git a/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test new file mode 100644 index 0000000..98c6589 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test
@@ -0,0 +1,8 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: CLIENT_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: The extended key usage does not include client auth +
diff --git a/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test new file mode 100644 index 0000000..15fb7ad0 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test new file mode 100644 index 0000000..b11e365a --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test
@@ -0,0 +1,5 @@ +chain: chain.pem +last_cert_trust: TRUSTED_LEAF_REQUIRE_SELF_SIGNED +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors:
diff --git a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem index 3d0800be..7c68d004 100644 --- a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem +++ b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem
@@ -1,4 +1,4 @@ -[Created by: generate-chains.py] +[Created by: ./generate-chains.py] Certificate chain where the target certificate contains an unknown X.509v3 extension (OID=1.2.3.4) that is marked as critical. @@ -16,7 +16,7 @@ Subject: CN=Target Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) + Public-Key: (2048 bit) Modulus: 00:bd:05:ea:3a:1c:14:a1:db:ad:2c:18:3d:25:9c: dc:1c:0f:2b:1e:42:df:c2:7c:b4:39:e6:4b:45:eb: @@ -41,16 +41,12 @@ X509v3 Subject Key Identifier: D6:55:4E:AC:07:84:35:A9:0D:9A:63:45:82:73:4E:A4:CC:53:B0:02 X509v3 Authority Key Identifier: - keyid:8A:E3:E6:F6:58:6F:1C:90:B4:67:A5:14:D8:64:E7:F7:00:77:61:01 - + 8A:E3:E6:F6:58:6F:1C:90:B4:67:A5:14:D8:64:E7:F7:00:77:61:01 Authority Information Access: CA Issuers - URI:http://url-for-aia/Intermediate.cer - X509v3 CRL Distribution Points: - Full Name: URI:http://url-for-crl/Intermediate.crl - X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: @@ -58,21 +54,22 @@ 1.2.3.4: critical .... Signature Algorithm: sha256WithRSAEncryption - 2d:da:b3:73:a9:3c:2f:ac:6f:a6:db:80:c2:82:ea:0f:6e:bd: - 58:35:f5:d5:69:3f:73:26:e6:80:cd:39:d1:cf:38:f8:19:dd: - f7:cf:57:70:44:3b:83:5a:8d:91:7b:02:a9:e8:ef:06:1e:b6: - 4b:97:ff:0e:96:ee:fe:85:ea:b4:93:ba:0e:b1:15:ef:ff:f6: - be:0d:f2:2a:d6:2d:df:43:a9:e8:a0:e3:50:bb:56:af:51:05: - 1d:50:f3:58:f4:41:f0:ea:b4:1e:34:99:ac:d5:b8:34:78:96: - 73:2e:62:e5:7e:b5:1d:e4:08:52:b4:8f:28:bf:b7:75:23:71: - f2:31:b2:ad:eb:4c:94:ec:79:09:0c:8b:94:38:a8:c8:82:e8: - 42:e4:72:50:bc:4b:8e:0d:e8:c0:77:a7:94:8e:d4:35:36:73: - d4:1e:32:8f:19:14:8e:eb:26:61:bb:c9:9c:b5:71:08:40:61: - 52:8f:1e:a3:3d:01:2c:c8:a5:b5:c7:ac:42:ee:75:2b:a2:e7: - 77:65:98:1d:02:1c:95:d3:8a:1d:17:71:82:86:5c:f3:a9:44: - e0:54:c5:51:84:b4:3c:c9:f1:bd:25:2d:cb:23:f2:72:d2:8c: - f9:2d:c5:2a:4b:14:f5:df:65:53:e5:fb:2e:71:02:03:c5:6e: - 6f:0a:68:69 + Signature Value: + 2d:da:b3:73:a9:3c:2f:ac:6f:a6:db:80:c2:82:ea:0f:6e:bd: + 58:35:f5:d5:69:3f:73:26:e6:80:cd:39:d1:cf:38:f8:19:dd: + f7:cf:57:70:44:3b:83:5a:8d:91:7b:02:a9:e8:ef:06:1e:b6: + 4b:97:ff:0e:96:ee:fe:85:ea:b4:93:ba:0e:b1:15:ef:ff:f6: + be:0d:f2:2a:d6:2d:df:43:a9:e8:a0:e3:50:bb:56:af:51:05: + 1d:50:f3:58:f4:41:f0:ea:b4:1e:34:99:ac:d5:b8:34:78:96: + 73:2e:62:e5:7e:b5:1d:e4:08:52:b4:8f:28:bf:b7:75:23:71: + f2:31:b2:ad:eb:4c:94:ec:79:09:0c:8b:94:38:a8:c8:82:e8: + 42:e4:72:50:bc:4b:8e:0d:e8:c0:77:a7:94:8e:d4:35:36:73: + d4:1e:32:8f:19:14:8e:eb:26:61:bb:c9:9c:b5:71:08:40:61: + 52:8f:1e:a3:3d:01:2c:c8:a5:b5:c7:ac:42:ee:75:2b:a2:e7: + 77:65:98:1d:02:1c:95:d3:8a:1d:17:71:82:86:5c:f3:a9:44: + e0:54:c5:51:84:b4:3c:c9:f1:bd:25:2d:cb:23:f2:72:d2:8c: + f9:2d:c5:2a:4b:14:f5:df:65:53:e5:fb:2e:71:02:03:c5:6e: + 6f:0a:68:69 -----BEGIN CERTIFICATE----- MIIDsDCCApigAwIBAgIUTpqs/zI4wC+25WNjlEVtqqrEtuUwDQYJKoZIhvcNAQEL BQAwFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMB4XDTIxMTAwNTEyMDAwMFoXDTIy @@ -109,7 +106,7 @@ Subject: CN=Intermediate Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) + Public-Key: (2048 bit) Modulus: 00:b8:cf:91:dd:b5:74:07:ba:8a:93:3c:ca:0c:11: 5d:36:29:ec:53:1e:32:8b:90:ae:f9:c0:db:d2:7e: @@ -134,36 +131,33 @@ X509v3 Subject Key Identifier: 8A:E3:E6:F6:58:6F:1C:90:B4:67:A5:14:D8:64:E7:F7:00:77:61:01 X509v3 Authority Key Identifier: - keyid:52:00:A4:BE:8B:5F:23:63:5E:31:05:87:F4:6B:50:A7:01:70:63:DA - + 52:00:A4:BE:8B:5F:23:63:5E:31:05:87:F4:6B:50:A7:01:70:63:DA Authority Information Access: CA Issuers - URI:http://url-for-aia/Root.cer - X509v3 CRL Distribution Points: - Full Name: URI:http://url-for-crl/Root.crl - X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: sha256WithRSAEncryption - 03:01:bd:9d:2d:b0:21:65:4d:11:4b:8d:72:4a:45:c5:cf:0a: - b3:df:9c:a4:0a:2c:c0:10:61:ce:91:c2:79:ef:f8:90:9e:66: - aa:ba:b0:2a:05:bf:76:8d:4d:1b:43:ff:cd:24:d7:79:f9:49: - 73:25:6b:47:d8:3a:59:ab:fa:da:11:5e:7e:ce:bb:07:21:e4: - ea:30:b5:14:b6:34:36:f9:b4:94:ec:31:ae:1f:f2:02:96:68: - 6b:d2:3c:ce:29:7f:0d:af:35:c5:a7:c3:1c:75:b3:c8:04:96: - 7b:3e:b7:10:fa:25:00:8e:f4:f3:65:46:fc:09:5c:19:c4:69: - 56:44:49:1f:db:04:09:04:0b:3e:72:fb:f8:ac:d6:23:31:ec: - 37:70:fa:8b:db:d1:80:25:1f:44:68:ff:48:e0:c2:c0:8e:9d: - 02:ee:ff:e3:b6:ac:22:1f:7e:c4:59:94:f7:06:05:19:23:ff: - 4a:c9:16:99:94:3e:2e:ba:86:6c:01:31:01:1d:17:2c:f7:0b: - 5c:02:8a:2d:28:73:a7:81:b9:8f:91:f7:a3:0b:2a:16:98:e7: - 8d:5c:31:95:48:59:ce:1b:7e:2b:8c:79:1e:c1:27:11:20:07: - 83:ad:b5:1c:aa:77:57:7e:bb:13:19:52:6a:13:6b:5d:32:bf: - 2a:26:5b:5c + Signature Value: + 03:01:bd:9d:2d:b0:21:65:4d:11:4b:8d:72:4a:45:c5:cf:0a: + b3:df:9c:a4:0a:2c:c0:10:61:ce:91:c2:79:ef:f8:90:9e:66: + aa:ba:b0:2a:05:bf:76:8d:4d:1b:43:ff:cd:24:d7:79:f9:49: + 73:25:6b:47:d8:3a:59:ab:fa:da:11:5e:7e:ce:bb:07:21:e4: + ea:30:b5:14:b6:34:36:f9:b4:94:ec:31:ae:1f:f2:02:96:68: + 6b:d2:3c:ce:29:7f:0d:af:35:c5:a7:c3:1c:75:b3:c8:04:96: + 7b:3e:b7:10:fa:25:00:8e:f4:f3:65:46:fc:09:5c:19:c4:69: + 56:44:49:1f:db:04:09:04:0b:3e:72:fb:f8:ac:d6:23:31:ec: + 37:70:fa:8b:db:d1:80:25:1f:44:68:ff:48:e0:c2:c0:8e:9d: + 02:ee:ff:e3:b6:ac:22:1f:7e:c4:59:94:f7:06:05:19:23:ff: + 4a:c9:16:99:94:3e:2e:ba:86:6c:01:31:01:1d:17:2c:f7:0b: + 5c:02:8a:2d:28:73:a7:81:b9:8f:91:f7:a3:0b:2a:16:98:e7: + 8d:5c:31:95:48:59:ce:1b:7e:2b:8c:79:1e:c1:27:11:20:07: + 83:ad:b5:1c:aa:77:57:7e:bb:13:19:52:6a:13:6b:5d:32:bf: + 2a:26:5b:5c -----BEGIN CERTIFICATE----- MIIDgDCCAmigAwIBAgIUBmZRhMJ+/AzPBSdMvNNVI+3LGfkwDQYJKoZIhvcNAQEL BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw @@ -199,7 +193,7 @@ Subject: CN=Root Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) + Public-Key: (2048 bit) Modulus: 00:c0:8e:83:7c:7e:0c:6a:e8:93:2c:f8:e6:80:17: e6:2a:91:f2:1d:1a:b1:51:6e:3e:4d:96:bd:a1:29: @@ -224,36 +218,33 @@ X509v3 Subject Key Identifier: 52:00:A4:BE:8B:5F:23:63:5E:31:05:87:F4:6B:50:A7:01:70:63:DA X509v3 Authority Key Identifier: - keyid:52:00:A4:BE:8B:5F:23:63:5E:31:05:87:F4:6B:50:A7:01:70:63:DA - + 52:00:A4:BE:8B:5F:23:63:5E:31:05:87:F4:6B:50:A7:01:70:63:DA Authority Information Access: CA Issuers - URI:http://url-for-aia/Root.cer - X509v3 CRL Distribution Points: - Full Name: URI:http://url-for-crl/Root.crl - X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: sha256WithRSAEncryption - 8c:cc:8d:39:d4:a7:3f:73:9f:db:20:71:ed:d6:e0:94:76:4f: - ce:d3:05:24:82:bf:31:94:30:bd:7a:77:88:09:95:0e:79:79: - 20:48:59:6a:3c:a6:a0:f3:3b:54:f0:3c:af:83:3d:22:a1:07: - 7a:5b:f0:16:97:b8:ee:a4:d5:5a:f4:1e:89:e5:d3:fb:d0:b2: - cc:81:13:65:57:0f:2c:52:cc:b2:8b:a6:2d:b0:eb:e6:4e:12: - ae:31:e4:5a:5c:c4:65:33:8d:3b:fe:55:c5:65:74:80:92:25: - ef:e3:25:92:f1:b2:90:3f:59:c0:94:0b:fb:26:d8:4e:2f:21: - b2:69:7c:37:fd:28:36:b5:10:c8:04:46:28:3e:ff:5e:39:74: - 50:4d:59:ab:a2:75:bf:ad:78:3a:b2:b6:0c:37:21:78:0f:8c: - 73:b8:cc:36:02:ba:5f:1c:eb:c5:7b:77:c5:50:9e:3b:7e:17: - ce:17:73:50:d0:4c:46:86:f8:0c:d9:d1:eb:bb:3f:e7:f3:6e: - 09:27:49:0b:8f:70:2e:64:8b:15:2e:f2:16:a2:fe:0f:01:87: - 45:b8:2d:a3:a9:e2:5b:0c:f0:e8:79:db:cd:30:45:86:4e:49: - e7:37:38:b8:71:28:92:3a:0e:ac:1c:81:25:d7:d3:1a:c8:e5: - 1d:47:8d:5b + Signature Value: + 8c:cc:8d:39:d4:a7:3f:73:9f:db:20:71:ed:d6:e0:94:76:4f: + ce:d3:05:24:82:bf:31:94:30:bd:7a:77:88:09:95:0e:79:79: + 20:48:59:6a:3c:a6:a0:f3:3b:54:f0:3c:af:83:3d:22:a1:07: + 7a:5b:f0:16:97:b8:ee:a4:d5:5a:f4:1e:89:e5:d3:fb:d0:b2: + cc:81:13:65:57:0f:2c:52:cc:b2:8b:a6:2d:b0:eb:e6:4e:12: + ae:31:e4:5a:5c:c4:65:33:8d:3b:fe:55:c5:65:74:80:92:25: + ef:e3:25:92:f1:b2:90:3f:59:c0:94:0b:fb:26:d8:4e:2f:21: + b2:69:7c:37:fd:28:36:b5:10:c8:04:46:28:3e:ff:5e:39:74: + 50:4d:59:ab:a2:75:bf:ad:78:3a:b2:b6:0c:37:21:78:0f:8c: + 73:b8:cc:36:02:ba:5f:1c:eb:c5:7b:77:c5:50:9e:3b:7e:17: + ce:17:73:50:d0:4c:46:86:f8:0c:d9:d1:eb:bb:3f:e7:f3:6e: + 09:27:49:0b:8f:70:2e:64:8b:15:2e:f2:16:a2:fe:0f:01:87: + 45:b8:2d:a3:a9:e2:5b:0c:f0:e8:79:db:cd:30:45:86:4e:49: + e7:37:38:b8:71:28:92:3a:0e:ac:1c:81:25:d7:d3:1a:c8:e5: + 1d:47:8d:5b -----BEGIN CERTIFICATE----- MIIDeDCCAmCgAwIBAgIUBmZRhMJ+/AzPBSdMvNNVI+3LGfgwDQYJKoZIhvcNAQEL BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw
diff --git a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/generate-chains.py b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/generate-chains.py index e4a28f5b..b4b60d69 100755 --- a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/generate-chains.py +++ b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/generate-chains.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -24,3 +24,5 @@ chain = [target, intermediate, root] gencerts.write_chain(__doc__, chain, 'chain.pem') + +gencerts.write_chain(__doc__, [target], 'target_only.pem')
diff --git a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test new file mode 100644 index 0000000..95b53fe --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test
@@ -0,0 +1,10 @@ +chain: target_only.pem +last_cert_trust: TRUSTED_LEAF +utc_time: DEFAULT +key_purpose: SERVER_AUTH +expected_errors: +----- Certificate i=0 (CN=Target) ----- +ERROR: Unconsumed critical extension + oid: 2A0304 + value: 01020304 +
diff --git a/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem new file mode 100644 index 0000000..0a9bf79 --- /dev/null +++ b/net/data/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem
@@ -0,0 +1,94 @@ +[Created by: ./generate-chains.py] + +Certificate chain where the target certificate contains an unknown X.509v3 +extension (OID=1.2.3.4) that is marked as critical. + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 4e:9a:ac:ff:32:38:c0:2f:b6:e5:63:63:94:45:6d:aa:aa:c4:b6:e5 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=Intermediate + Validity + Not Before: Oct 5 12:00:00 2021 GMT + Not After : Oct 5 12:00:00 2022 GMT + Subject: CN=Target + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:bd:05:ea:3a:1c:14:a1:db:ad:2c:18:3d:25:9c: + dc:1c:0f:2b:1e:42:df:c2:7c:b4:39:e6:4b:45:eb: + d3:a2:1c:2b:dc:f2:8c:08:f5:81:df:bd:fa:a2:1a: + 1c:5c:99:cb:00:c7:31:02:c8:44:5f:31:cf:9c:82: + 6d:3c:0c:5d:f7:d6:cc:91:fe:f3:e7:7a:08:17:85: + d5:75:61:ee:dd:66:55:3c:e2:68:98:36:19:20:e4: + 9b:cd:24:6c:a3:5d:89:84:80:2e:c7:11:4e:c1:82: + b2:80:ce:0f:e9:6a:42:54:10:fb:c0:0a:53:be:19: + 01:38:ba:06:c5:93:93:1c:84:aa:25:c7:c5:9a:4d: + 32:2e:a4:13:5e:6d:07:d6:9d:e5:b0:29:63:da:14: + b7:62:51:63:93:dc:28:ae:4a:bc:35:ac:c0:06:ea: + ea:0b:d5:70:61:3b:05:78:e4:d3:ad:c3:ad:95:f1: + 48:e5:79:a6:dc:12:1f:14:4f:21:9f:ca:6f:7a:dd: + d6:45:c8:8a:60:96:1c:02:06:16:18:80:21:58:6a: + f6:83:3e:1a:98:b8:b2:a9:22:44:c2:25:e9:dc:a9: + aa:bf:1d:2e:3f:2e:a1:78:08:93:04:4c:c4:1f:f9: + b3:34:9f:a7:78:5b:02:a6:ca:d3:1f:fa:ba:4d:34: + a2:bb + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + D6:55:4E:AC:07:84:35:A9:0D:9A:63:45:82:73:4E:A4:CC:53:B0:02 + X509v3 Authority Key Identifier: + 8A:E3:E6:F6:58:6F:1C:90:B4:67:A5:14:D8:64:E7:F7:00:77:61:01 + Authority Information Access: + CA Issuers - URI:http://url-for-aia/Intermediate.cer + X509v3 CRL Distribution Points: + Full Name: + URI:http://url-for-crl/Intermediate.crl + X509v3 Key Usage: critical + Digital Signature, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + 1.2.3.4: critical + .... + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 2d:da:b3:73:a9:3c:2f:ac:6f:a6:db:80:c2:82:ea:0f:6e:bd: + 58:35:f5:d5:69:3f:73:26:e6:80:cd:39:d1:cf:38:f8:19:dd: + f7:cf:57:70:44:3b:83:5a:8d:91:7b:02:a9:e8:ef:06:1e:b6: + 4b:97:ff:0e:96:ee:fe:85:ea:b4:93:ba:0e:b1:15:ef:ff:f6: + be:0d:f2:2a:d6:2d:df:43:a9:e8:a0:e3:50:bb:56:af:51:05: + 1d:50:f3:58:f4:41:f0:ea:b4:1e:34:99:ac:d5:b8:34:78:96: + 73:2e:62:e5:7e:b5:1d:e4:08:52:b4:8f:28:bf:b7:75:23:71: + f2:31:b2:ad:eb:4c:94:ec:79:09:0c:8b:94:38:a8:c8:82:e8: + 42:e4:72:50:bc:4b:8e:0d:e8:c0:77:a7:94:8e:d4:35:36:73: + d4:1e:32:8f:19:14:8e:eb:26:61:bb:c9:9c:b5:71:08:40:61: + 52:8f:1e:a3:3d:01:2c:c8:a5:b5:c7:ac:42:ee:75:2b:a2:e7: + 77:65:98:1d:02:1c:95:d3:8a:1d:17:71:82:86:5c:f3:a9:44: + e0:54:c5:51:84:b4:3c:c9:f1:bd:25:2d:cb:23:f2:72:d2:8c: + f9:2d:c5:2a:4b:14:f5:df:65:53:e5:fb:2e:71:02:03:c5:6e: + 6f:0a:68:69 +-----BEGIN CERTIFICATE----- +MIIDsDCCApigAwIBAgIUTpqs/zI4wC+25WNjlEVtqqrEtuUwDQYJKoZIhvcNAQEL +BQAwFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMB4XDTIxMTAwNTEyMDAwMFoXDTIy +MTAwNTEyMDAwMFowETEPMA0GA1UEAwwGVGFyZ2V0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAvQXqOhwUodutLBg9JZzcHA8rHkLfwny0OeZLRevTohwr +3PKMCPWB3736ohocXJnLAMcxAshEXzHPnIJtPAxd99bMkf7z53oIF4XVdWHu3WZV +POJomDYZIOSbzSRso12JhIAuxxFOwYKygM4P6WpCVBD7wApTvhkBOLoGxZOTHISq +JcfFmk0yLqQTXm0H1p3lsClj2hS3YlFjk9workq8NazABurqC9VwYTsFeOTTrcOt +lfFI5Xmm3BIfFE8hn8pvet3WRciKYJYcAgYWGIAhWGr2gz4amLiyqSJEwiXp3Kmq +vx0uPy6heAiTBEzEH/mzNJ+neFsCpsrTH/q6TTSiuwIDAQABo4H5MIH2MB0GA1Ud +DgQWBBTWVU6sB4Q1qQ2aY0WCc06kzFOwAjAfBgNVHSMEGDAWgBSK4+b2WG8ckLRn +pRTYZOf3AHdhATA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91 +cmwtZm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0 +dHA6Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDKgMEAQH/BAQBAgME +MA0GCSqGSIb3DQEBCwUAA4IBAQAt2rNzqTwvrG+m24DCguoPbr1YNfXVaT9zJuaA +zTnRzzj4Gd33z1dwRDuDWo2RewKp6O8GHrZLl/8Olu7+heq0k7oOsRXv//a+DfIq +1i3fQ6nooONQu1avUQUdUPNY9EHw6rQeNJms1bg0eJZzLmLlfrUd5AhStI8ov7d1 +I3HyMbKt60yU7HkJDIuUOKjIguhC5HJQvEuODejAd6eUjtQ1NnPUHjKPGRSO6yZh +u8mctXEIQGFSjx6jPQEsyKW1x6xC7nUroud3ZZgdAhyV04odF3GChlzzqUTgVMVR +hLQ8yfG9JS3LI/Jy0oz5LcUqSxT132VT5fsucQIDxW5vCmhp +-----END CERTIFICATE-----
diff --git a/net/proxy_resolution/proxy_config_service.cc b/net/proxy_resolution/proxy_config_service.cc index 85ed8e1d..d80af1c 100644 --- a/net/proxy_resolution/proxy_config_service.cc +++ b/net/proxy_resolution/proxy_config_service.cc
@@ -55,9 +55,8 @@ "User cannot override system proxy settings, but can change them " "through 'Advanced/System/Open proxy settings'." policy_exception_justification: - "Using either of 'ProxyMode', 'ProxyServer', or 'ProxyPacUrl' " - "policies can set Chrome to use a specific proxy settings and avoid " - "system proxy." + "Using 'ProxySettings' policy can set Chrome to use specific " + "proxy settings and avoid system proxy." })"); #endif
diff --git a/net/proxy_resolution/proxy_config_with_annotation.cc b/net/proxy_resolution/proxy_config_with_annotation.cc index 37ef504..e8adb508 100644 --- a/net/proxy_resolution/proxy_config_with_annotation.cc +++ b/net/proxy_resolution/proxy_config_with_annotation.cc
@@ -29,9 +29,8 @@ "This isn't a real network request. A proxy can be selected in " "settings." policy_exception_justification: - "Using either of 'ProxyMode', 'ProxyServer', or 'ProxyPacUrl' policies " - "can set Chrome to use a specific proxy settings and avoid directly " - "connecting to the websites." + "Using 'ProxySettings' policy can set Chrome to use specific proxy " + "settings and avoid directly connecting to the websites." })"); } // namespace
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index deadb1c..a4fbfe7 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc
@@ -6168,10 +6168,10 @@ auto cert_verifier = std::make_unique<MockCertVerifier>(); cert_verifier->AddResultForCert(cert.get(), verify_result, OK); + MockCertificateReportSender mock_report_sender; // Must outlive `context`. auto context_builder = CreateTestURLRequestContextBuilder(); context_builder->SetCertVerifier(std::move(cert_verifier)); auto context = context_builder->Build(); - MockCertificateReportSender mock_report_sender; context->transport_security_state()->EnableStaticPinsForTesting(); context->transport_security_state()->SetPinningListAlwaysTimelyForTesting( true); @@ -6235,10 +6235,10 @@ auto mock_cert_verifier = std::make_unique<MockCertVerifier>(); mock_cert_verifier->AddResultForCert(cert.get(), verify_result, OK); + MockCertificateReportSender mock_report_sender; // Must outlive `context`. auto context_builder = CreateTestURLRequestContextBuilder(); context_builder->SetCertVerifier(std::move(mock_cert_verifier)); auto context = context_builder->Build(); - MockCertificateReportSender mock_report_sender; context->transport_security_state()->EnableStaticPinsForTesting(); context->transport_security_state()->SetPinningListAlwaysTimelyForTesting( true); @@ -6296,10 +6296,10 @@ SetTransportSecurityStateSourceForTesting(&test_default::kHSTSSource); + MockCertificateReportSender mock_report_sender; // Must outlive `context`. auto context_builder = CreateTestURLRequestContextBuilder(); context_builder->SetCertVerifier(std::move(cert_verifier)); auto context = context_builder->Build(); - MockCertificateReportSender mock_report_sender; context->transport_security_state()->EnableStaticPinsForTesting(); context->transport_security_state()->SetPinningListAlwaysTimelyForTesting( true);
diff --git a/remoting/host/installer/win/chromoting.wxs b/remoting/host/installer/win/chromoting.wxs index 1ac2d5e2..55dd7f6 100644 --- a/remoting/host/installer/win/chromoting.wxs +++ b/remoting/host/installer/win/chromoting.wxs
@@ -99,8 +99,8 @@ <PropertyRef Id="WIX_ACCOUNT_ADMINISTRATORS" /> <Condition - Message="$(var.ChromotingHost) is only supported on Windows 7 and above."> - <![CDATA[Installed OR (VersionNT >= 601)]]> + Message="$(var.ChromotingHost) is only supported on Windows 10 and above."> + <![CDATA[Installed OR (VersionNT >= 1000)]]> </Condition> <!-- The upgrade rules below could be expressed with MajorUpgrade element.
diff --git a/remoting/resources/remoting_strings.grd b/remoting/resources/remoting_strings.grd index 805de5a4..784cf4d9 100644 --- a/remoting/resources/remoting_strings.grd +++ b/remoting/resources/remoting_strings.grd
@@ -353,7 +353,7 @@ Google LLC </message> <message name="IDS_COPYRIGHT" desc="The copyright message specified in the version information of each Chrome Remote Desktop Host executable. It should be updated every year."> - Copyright 2022 Google LLC. All Rights Reserved. + Copyright 2023 Google LLC. All Rights Reserved. </message> <message name="IDS_DISPLAY_SERVICE_NAME" desc="The name of the Windows service installed by Chrome Remote Desktop."> Chrome Remote Desktop Service @@ -395,7 +395,7 @@ The Chromium Authors </message> <message name="IDS_COPYRIGHT" desc="The copyright message specified in the version information of each Chromoting Host executable. It should be updated every year."> - Copyright 2022 The Chromium Authors. All Rights Reserved. + Copyright 2023 The Chromium Authors. All Rights Reserved. </message> <message name="IDS_DISPLAY_SERVICE_NAME" desc="The name of the Windows service installed by Chromoting."> Chromoting Service
diff --git a/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc b/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc index b489e7c4..859c3dd 100644 --- a/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc +++ b/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc
@@ -24,8 +24,8 @@ #endif #include <linux/futex.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/posix/eintr_wrapper.h" #include "base/synchronization/waitable_event.h"
diff --git a/sandbox/linux/integration_tests/seccomp_broker_process_unittest.cc b/sandbox/linux/integration_tests/seccomp_broker_process_unittest.cc index 533d826..967b507 100644 --- a/sandbox/linux/integration_tests/seccomp_broker_process_unittest.cc +++ b/sandbox/linux/integration_tests/seccomp_broker_process_unittest.cc
@@ -14,8 +14,6 @@ #include <type_traits> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_path_watcher.h" @@ -23,6 +21,8 @@ #include "base/files/file_util.h" #include "base/files/scoped_file.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/posix/eintr_wrapper.h"
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc index 00fbabc..cc6a1f8 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
@@ -17,7 +17,7 @@ #include <time.h> #include <unistd.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/posix/eintr_wrapper.h" #include "base/synchronization/waitable_event.h" #include "base/system/sys_info.h"
diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc index 2866abc1..e284c59 100644 --- a/sandbox/linux/services/credentials.cc +++ b/sandbox/linux/services/credentials.cc
@@ -16,10 +16,10 @@ #include <sys/wait.h> #include <unistd.h> -#include "base/bind.h" #include "base/compiler_specific.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" #include "base/process/launch.h"
diff --git a/sandbox/linux/services/init_process_reaper.cc b/sandbox/linux/services/init_process_reaper.cc index 4ec0bf5..a685b428 100644 --- a/sandbox/linux/services/init_process_reaper.cc +++ b/sandbox/linux/services/init_process_reaper.cc
@@ -11,7 +11,7 @@ #include <sys/wait.h> #include <unistd.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h"
diff --git a/sandbox/linux/services/init_process_reaper.h b/sandbox/linux/services/init_process_reaper.h index af7063d..f895250 100644 --- a/sandbox/linux/services/init_process_reaper.h +++ b/sandbox/linux/services/init_process_reaper.h
@@ -5,7 +5,7 @@ #ifndef SANDBOX_LINUX_SERVICES_INIT_PROCESS_REAPER_H_ #define SANDBOX_LINUX_SERVICES_INIT_PROCESS_REAPER_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "sandbox/sandbox_export.h" namespace sandbox {
diff --git a/sandbox/linux/services/scoped_process.cc b/sandbox/linux/services/scoped_process.cc index 6363951..882470e 100644 --- a/sandbox/linux/services/scoped_process.cc +++ b/sandbox/linux/services/scoped_process.cc
@@ -14,8 +14,8 @@ #include <ostream> -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/callback.h" #include "base/notreached.h" #include "base/posix/eintr_wrapper.h" #include "build/build_config.h"
diff --git a/sandbox/linux/services/scoped_process.h b/sandbox/linux/services/scoped_process.h index cbf5b9d2..2ac1b92 100644 --- a/sandbox/linux/services/scoped_process.h +++ b/sandbox/linux/services/scoped_process.h
@@ -5,7 +5,7 @@ #ifndef SANDBOX_LINUX_SERVICES_SCOPED_PROCESS_H_ #define SANDBOX_LINUX_SERVICES_SCOPED_PROCESS_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/process/process_handle.h" #include "sandbox/sandbox_export.h"
diff --git a/sandbox/linux/services/scoped_process_unittest.cc b/sandbox/linux/services/scoped_process_unittest.cc index 57dde0e1..5be1602 100644 --- a/sandbox/linux/services/scoped_process_unittest.cc +++ b/sandbox/linux/services/scoped_process_unittest.cc
@@ -11,12 +11,12 @@ #include <sys/wait.h> #include <unistd.h> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/check.h" #include "base/files/file_util.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/posix/eintr_wrapper.h" #include "base/threading/platform_thread.h" #include "base/time/time.h"
diff --git a/sandbox/linux/services/thread_helpers.cc b/sandbox/linux/services/thread_helpers.cc index 3b23481..7cde06e 100644 --- a/sandbox/linux/services/thread_helpers.cc +++ b/sandbox/linux/services/thread_helpers.cc
@@ -13,9 +13,9 @@ #include <string> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" #include "base/strings/string_number_conversions.h"
diff --git a/sandbox/linux/services/yama_unittest.cc b/sandbox/linux/services/yama_unittest.cc index 9809cae..bd6e2ae1 100644 --- a/sandbox/linux/services/yama_unittest.cc +++ b/sandbox/linux/services/yama_unittest.cc
@@ -9,9 +9,9 @@ #include <sys/types.h> #include <unistd.h> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/posix/eintr_wrapper.h" #include "base/strings/string_util.h" #include "base/system/sys_info.h"
diff --git a/sandbox/linux/syscall_broker/broker_process.cc b/sandbox/linux/syscall_broker/broker_process.cc index 8e9fa26..a55b548 100644 --- a/sandbox/linux/syscall_broker/broker_process.cc +++ b/sandbox/linux/syscall_broker/broker_process.cc
@@ -18,8 +18,8 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/files/file_util.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" #include "base/process/process_metrics.h"
diff --git a/sandbox/linux/syscall_broker/broker_process.h b/sandbox/linux/syscall_broker/broker_process.h index 5290d88..797ce6e5 100644 --- a/sandbox/linux/syscall_broker/broker_process.h +++ b/sandbox/linux/syscall_broker/broker_process.h
@@ -11,7 +11,7 @@ #include <string> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "sandbox/linux/syscall_broker/broker_sandbox_config.h" #include "sandbox/sandbox_export.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/sandbox/linux/syscall_broker/broker_process_unittest.cc b/sandbox/linux/syscall_broker/broker_process_unittest.cc index 235423c..cb85c87 100644 --- a/sandbox/linux/syscall_broker/broker_process_unittest.cc +++ b/sandbox/linux/syscall_broker/broker_process_unittest.cc
@@ -20,13 +20,13 @@ #include <string> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/flat_map.h" #include "base/containers/flat_set.h" #include "base/files/file_util.h" #include "base/files/scoped_file.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" #include "base/posix/unix_domain_socket.h"
diff --git a/sandbox/linux/syscall_broker/broker_simple_message_unittest.cc b/sandbox/linux/syscall_broker/broker_simple_message_unittest.cc index 755c8d9..d5fa4a85 100644 --- a/sandbox/linux/syscall_broker/broker_simple_message_unittest.cc +++ b/sandbox/linux/syscall_broker/broker_simple_message_unittest.cc
@@ -7,9 +7,9 @@ #include <linux/kcmp.h> #include <unistd.h> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h"
diff --git a/sandbox/linux/syscall_broker/remote_syscall_arg_handler_unittest.cc b/sandbox/linux/syscall_broker/remote_syscall_arg_handler_unittest.cc index e5e0b048..15b2ee66 100644 --- a/sandbox/linux/syscall_broker/remote_syscall_arg_handler_unittest.cc +++ b/sandbox/linux/syscall_broker/remote_syscall_arg_handler_unittest.cc
@@ -11,9 +11,9 @@ #include <cstring> #include <tuple> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/page_size.h" #include "base/posix/unix_domain_socket.h" #include "base/test/bind.h"
diff --git a/sandbox/linux/tests/main.cc b/sandbox/linux/tests/main.cc index f89f6aa..7ba9e9f 100644 --- a/sandbox/linux/tests/main.cc +++ b/sandbox/linux/tests/main.cc
@@ -4,10 +4,10 @@ #include "base/at_exit.h" #include "base/base_switches.h" -#include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/test/test_suite.h" #include "base/test/test_timeouts.h"
diff --git a/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc b/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc index 3fec49fc..a416057 100644 --- a/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc +++ b/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc
@@ -31,7 +31,6 @@ #include <utility> #include "base/base_paths.h" -#include "base/bind.h" #include "base/clang_profiling_buildflags.h" #include "base/command_line.h" #include "base/containers/span.h" @@ -41,6 +40,7 @@ #include "base/fuchsia/filtered_service_directory.h" #include "base/fuchsia/fuchsia_logging.h" #include "base/fuchsia/process_context.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/path_service.h" #include "base/process/launch.h"
diff --git a/sandbox/policy/linux/sandbox_linux.cc b/sandbox/policy/linux/sandbox_linux.cc index 2f7289d56..224fd111 100644 --- a/sandbox/policy/linux/sandbox_linux.cc +++ b/sandbox/policy/linux/sandbox_linux.cc
@@ -18,11 +18,11 @@ #include <string> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/feature_list.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/singleton.h" #include "base/posix/eintr_wrapper.h"
diff --git a/sandbox/policy/linux/sandbox_seccomp_bpf_linux.h b/sandbox/policy/linux/sandbox_seccomp_bpf_linux.h index 91fdc53..7f4c4c7 100644 --- a/sandbox/policy/linux/sandbox_seccomp_bpf_linux.h +++ b/sandbox/policy/linux/sandbox_seccomp_bpf_linux.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback.h" #include "base/files/scoped_file.h" +#include "base/functional/callback.h" #include "build/build_config.h" #include "sandbox/linux/bpf_dsl/policy.h" #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
diff --git a/sandbox/policy/win/sandbox_diagnostics.h b/sandbox/policy/win/sandbox_diagnostics.h index 2ebeb1f..1a1bc1a 100644 --- a/sandbox/policy/win/sandbox_diagnostics.h +++ b/sandbox/policy/win/sandbox_diagnostics.h
@@ -13,7 +13,7 @@ #include <utility> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "base/values.h" #include "sandbox/constants.h"
diff --git a/sandbox/policy/win/sandbox_win.h b/sandbox/policy/win/sandbox_win.h index d1adadc..41329ac 100644 --- a/sandbox/policy/win/sandbox_win.h +++ b/sandbox/policy/win/sandbox_win.h
@@ -9,8 +9,8 @@ #include <string> -#include "base/bind.h" -#include "base/callback_forward.h" +#include "base/functional/bind.h" +#include "base/functional/callback_forward.h" #include "base/process/launch.h" #include "base/process/process_handle.h" #include "sandbox/policy/export.h"
diff --git a/sandbox/win/src/crosscall_server.h b/sandbox/win/src/crosscall_server.h index 075f9c8..cef734c 100644 --- a/sandbox/win/src/crosscall_server.h +++ b/sandbox/win/src/crosscall_server.h
@@ -10,7 +10,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "sandbox/win/src/crosscall_params.h" #include "sandbox/win/src/ipc_tags.h"
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc index db37ff4..e051f52 100644 --- a/sandbox/win/src/sandbox_policy_base.cc +++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -9,7 +9,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/win/sid.h" #include "base/win/win_util.h"
diff --git a/sandbox/win/src/sharedmem_ipc_server.cc b/sandbox/win/src/sharedmem_ipc_server.cc index edf117fa..f8b9820 100644 --- a/sandbox/win/src/sharedmem_ipc_server.cc +++ b/sandbox/win/src/sharedmem_ipc_server.cc
@@ -7,8 +7,8 @@ #include <stddef.h> #include <stdint.h> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/notreached.h" #include "sandbox/win/src/crosscall_params.h"
diff --git a/sandbox/win/tests/integration_tests/integration_tests.cc b/sandbox/win/tests/integration_tests/integration_tests.cc index fa14044..3e73642 100644 --- a/sandbox/win/tests/integration_tests/integration_tests.cc +++ b/sandbox/win/tests/integration_tests/integration_tests.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "base/test/test_timeouts.h"
diff --git a/sandbox/win/tests/unit_tests/unit_tests.cc b/sandbox/win/tests/unit_tests/unit_tests.cc index 7c7a12c9..4704ac3 100644 --- a/sandbox/win/tests/unit_tests/unit_tests.cc +++ b/sandbox/win/tests/unit_tests/unit_tests.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/sandbox/win/tests/validation_tests/unit_tests.cc b/sandbox/win/tests/validation_tests/unit_tests.cc index 0f3a95199..c363b5ee 100644 --- a/sandbox/win/tests/validation_tests/unit_tests.cc +++ b/sandbox/win/tests/validation_tests/unit_tests.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" -#include "testing/gtest/include/gtest/gtest.h" #include "sandbox/win/tests/common/controller.h" +#include "testing/gtest/include/gtest/gtest.h" int wmain(int argc, wchar_t **argv) { if (argc >= 2) {
diff --git a/services/BUILD.gn b/services/BUILD.gn index bd7c75f8..f5c2b5dd 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn
@@ -4,7 +4,6 @@ import("//build/config/ui.gni") import("//testing/test.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") # One Big Target for services to register their unit test sources. This exists # to avoid having to maintain a separate test binary for every service. @@ -75,14 +74,10 @@ # Some tests make network requests. "//net/android:net_java", - ] - # Some tests need to initialize V8. - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } + # Some tests need to initialize V8. + "//gin:v8_snapshot_assets", + ] } if (!is_android && !is_ios) {
diff --git a/services/audio/debug_recording.cc b/services/audio/debug_recording.cc index e5230f2a..8f9713dd 100644 --- a/services/audio/debug_recording.cc +++ b/services/audio/debug_recording.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "media/audio/aecdump_recording_manager.h" #include "media/audio/audio_debug_recording_manager.h" #include "media/audio/audio_manager.h"
diff --git a/services/audio/debug_recording_unittest.cc b/services/audio/debug_recording_unittest.cc index b9dcecc..68eb168d 100644 --- a/services/audio/debug_recording_unittest.cc +++ b/services/audio/debug_recording_unittest.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "media/audio/aecdump_recording_manager.h"
diff --git a/services/audio/device_listener_output_stream.cc b/services/audio/device_listener_output_stream.cc index d2c9300..784fc172f 100644 --- a/services/audio/device_listener_output_stream.cc +++ b/services/audio/device_listener_output_stream.cc
@@ -4,7 +4,7 @@ #include "services/audio/device_listener_output_stream.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/audio/device_listener_output_stream.h b/services/audio/device_listener_output_stream.h index 8f67ba07..e2ca605 100644 --- a/services/audio/device_listener_output_stream.h +++ b/services/audio/device_listener_output_stream.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_AUDIO_DEVICE_LISTENER_OUTPUT_STREAM_H_ #define SERVICES_AUDIO_DEVICE_LISTENER_OUTPUT_STREAM_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/task/single_thread_task_runner.h" #include "media/audio/audio_io.h"
diff --git a/services/audio/device_notifier.cc b/services/audio/device_notifier.cc index dd72eed..aa9fed61 100644 --- a/services/audio/device_notifier.cc +++ b/services/audio/device_notifier.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/trace_event/trace_event.h"
diff --git a/services/audio/group_coordinator.h b/services/audio/group_coordinator.h index eed64978..8e2f341d 100644 --- a/services/audio/group_coordinator.h +++ b/services/audio/group_coordinator.h
@@ -9,8 +9,8 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/unguessable_token.h"
diff --git a/services/audio/input_controller.cc b/services/audio/input_controller.cc index 5c660d9..f4e44e8 100644 --- a/services/audio/input_controller.cc +++ b/services/audio/input_controller.cc
@@ -11,8 +11,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/cxx17_backports.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/services/audio/input_glitch_counter.h b/services/audio/input_glitch_counter.h index 70be327..60eb12d 100644 --- a/services/audio/input_glitch_counter.h +++ b/services/audio/input_glitch_counter.h
@@ -7,7 +7,7 @@ #include <cstddef> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" namespace audio {
diff --git a/services/audio/input_stream.cc b/services/audio/input_stream.cc index 81c9aaf1..fbcb609 100644 --- a/services/audio/input_stream.cc +++ b/services/audio/input_stream.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/strings/strcat.h" #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h"
diff --git a/services/audio/input_stream_unittest.cc b/services/audio/input_stream_unittest.cc index a3e0b684..8994dae 100644 --- a/services/audio/input_stream_unittest.cc +++ b/services/audio/input_stream_unittest.cc
@@ -8,8 +8,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/test/task_environment.h" #include "media/audio/audio_io.h"
diff --git a/services/audio/local_muter.cc b/services/audio/local_muter.cc index 2c65928..aa756c4 100644 --- a/services/audio/local_muter.cc +++ b/services/audio/local_muter.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/audio/loopback_group_member.h" namespace audio {
diff --git a/services/audio/local_muter.h b/services/audio/local_muter.h index ebe9ac8..9a14662 100644 --- a/services/audio/local_muter.h +++ b/services/audio/local_muter.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_AUDIO_LOCAL_MUTER_H_ #define SERVICES_AUDIO_LOCAL_MUTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/audio/loopback_stream.cc b/services/audio/loopback_stream.cc index 418a7c0..b88e942 100644 --- a/services/audio/loopback_stream.cc +++ b/services/audio/loopback_stream.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/sync_socket.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/audio/loopback_stream.h b/services/audio/loopback_stream.h index f86cb1b..4e71f4e 100644 --- a/services/audio/loopback_stream.h +++ b/services/audio/loopback_stream.h
@@ -10,7 +10,7 @@ #include <utility> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/services/audio/loopback_stream_unittest.cc b/services/audio/loopback_stream_unittest.cc index d8e61c5..f7637ff 100644 --- a/services/audio/loopback_stream_unittest.cc +++ b/services/audio/loopback_stream_unittest.cc
@@ -8,8 +8,8 @@ #include <cstdint> #include <memory> -#include "base/bind.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/ranges/algorithm.h"
diff --git a/services/audio/mixing_graph.h b/services/audio/mixing_graph.h index c033d77..7f74646 100644 --- a/services/audio/mixing_graph.h +++ b/services/audio/mixing_graph.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/audio/audio_io.h" #include "media/base/audio_bus.h"
diff --git a/services/audio/output_controller.cc b/services/audio/output_controller.cc index 9c712050..3b6aad5 100644 --- a/services/audio/output_controller.cc +++ b/services/audio/output_controller.cc
@@ -10,10 +10,10 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/compiler_specific.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_conversions.h"
diff --git a/services/audio/output_controller.h b/services/audio/output_controller.h index 3f9016ae..5051ae8 100644 --- a/services/audio/output_controller.h +++ b/services/audio/output_controller.h
@@ -12,8 +12,8 @@ #include <vector> #include "base/atomic_ref_count.h" -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/strings/string_piece.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h"
diff --git a/services/audio/output_controller_unittest.cc b/services/audio/output_controller_unittest.cc index 8c90c09..e859362 100644 --- a/services/audio/output_controller_unittest.cc +++ b/services/audio/output_controller_unittest.cc
@@ -10,10 +10,10 @@ #include <vector> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" #include "base/environment.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h"
diff --git a/services/audio/output_device_mixer.h b/services/audio/output_device_mixer.h index a2c45cdc..68dfaff 100644 --- a/services/audio/output_device_mixer.h +++ b/services/audio/output_device_mixer.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "media/base/audio_parameters.h" #include "services/audio/reference_output.h"
diff --git a/services/audio/output_device_mixer_impl.h b/services/audio/output_device_mixer_impl.h index 36ece8d..8b47983 100644 --- a/services/audio/output_device_mixer_impl.h +++ b/services/audio/output_device_mixer_impl.h
@@ -9,10 +9,10 @@ #include <set> #include <string> -#include "base/callback.h" #include "base/check.h" #include "base/containers/unique_ptr_adapters.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback.h" #include "base/synchronization/lock.h" #include "base/timer/timer.h" #include "media/audio/audio_io.h"
diff --git a/services/audio/output_device_mixer_manager.h b/services/audio/output_device_mixer_manager.h index 1b484ed..26658b0 100644 --- a/services/audio/output_device_mixer_manager.h +++ b/services/audio/output_device_mixer_manager.h
@@ -9,8 +9,8 @@ #include <set> #include <string> -#include "base/callback.h" #include "base/containers/flat_map.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/audio/output_glitch_counter.h b/services/audio/output_glitch_counter.h index 0084ac86..95a90545 100644 --- a/services/audio/output_glitch_counter.h +++ b/services/audio/output_glitch_counter.h
@@ -6,7 +6,7 @@ #define SERVICES_AUDIO_OUTPUT_GLITCH_COUNTER_H_ #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "media/base/audio_latency.h" namespace audio {
diff --git a/services/audio/output_stream.cc b/services/audio/output_stream.cc index 1b2a986..566a817 100644 --- a/services/audio/output_stream.cc +++ b/services/audio/output_stream.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/audio/output_stream.h b/services/audio/output_stream.h index 38e3086..e6cb24e 100644 --- a/services/audio/output_stream.h +++ b/services/audio/output_stream.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/audio/output_stream_unittest.cc b/services/audio/output_stream_unittest.cc index 501f54faf..6ed9dda 100644 --- a/services/audio/output_stream_unittest.cc +++ b/services/audio/output_stream_unittest.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/mock_callback.h" #include "base/test/task_environment.h" #include "base/unguessable_token.h"
diff --git a/services/audio/output_tapper.h b/services/audio/output_tapper.h index 2f913dc..aca68b6 100644 --- a/services/audio/output_tapper.h +++ b/services/audio/output_tapper.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h" #include "base/strings/string_piece.h"
diff --git a/services/audio/processing_audio_fifo.h b/services/audio/processing_audio_fifo.h index 25c34839..1591b51 100644 --- a/services/audio/processing_audio_fifo.h +++ b/services/audio/processing_audio_fifo.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_AUDIO_PROCESSING_AUDIO_FIFO_H_ #define SERVICES_AUDIO_PROCESSING_AUDIO_FIFO_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/sequence_checker.h" #include "base/strings/string_piece.h" #include "base/synchronization/atomic_flag.h"
diff --git a/services/audio/processing_audio_fifo_unittest.cc b/services/audio/processing_audio_fifo_unittest.cc index 2c486c1..820db142 100644 --- a/services/audio/processing_audio_fifo_unittest.cc +++ b/services/audio/processing_audio_fifo_unittest.cc
@@ -6,8 +6,8 @@ #include <cstring> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "media/audio/simple_sources.h"
diff --git a/services/audio/public/cpp/audio_system_to_service_adapter.cc b/services/audio/public/cpp/audio_system_to_service_adapter.cc index 5396a20..b5f23dd0a 100644 --- a/services/audio/public/cpp/audio_system_to_service_adapter.cc +++ b/services/audio/public/cpp/audio_system_to_service_adapter.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/notreached.h" #include "base/trace_event/trace_event.h"
diff --git a/services/audio/public/cpp/audio_system_to_service_adapter.h b/services/audio/public/cpp/audio_system_to_service_adapter.h index 9bb893c..060d164 100644 --- a/services/audio/public/cpp/audio_system_to_service_adapter.h +++ b/services/audio/public/cpp/audio_system_to_service_adapter.h
@@ -8,8 +8,8 @@ #include <memory> #include <string> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/threading/thread_checker.h" #include "base/time/time.h" #include "base/timer/timer.h"
diff --git a/services/audio/public/cpp/debug_recording_session.cc b/services/audio/public/cpp/debug_recording_session.cc index 5c1a502..ed67383 100644 --- a/services/audio/public/cpp/debug_recording_session.cc +++ b/services/audio/public/cpp/debug_recording_session.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/strings/string_number_conversions.h" #include "base/task/thread_pool.h" #include "build/build_config.h"
diff --git a/services/audio/public/cpp/device_factory.cc b/services/audio/public/cpp/device_factory.cc index 5719eff..3e8be2a 100644 --- a/services/audio/public/cpp/device_factory.cc +++ b/services/audio/public/cpp/device_factory.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/threading/platform_thread.h" #include "services/audio/public/cpp/input_ipc.h"
diff --git a/services/audio/public/cpp/fake_system_info.cc b/services/audio/public/cpp/fake_system_info.cc index 0aa50ae..d8309438 100644 --- a/services/audio/public/cpp/fake_system_info.cc +++ b/services/audio/public/cpp/fake_system_info.cc
@@ -4,8 +4,8 @@ #include "services/audio/public/cpp/fake_system_info.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "services/audio/service.h" namespace audio {
diff --git a/services/audio/public/cpp/input_ipc.cc b/services/audio/public/cpp/input_ipc.cc index 2fb45b4..1b660c4b 100644 --- a/services/audio/public/cpp/input_ipc.cc +++ b/services/audio/public/cpp/input_ipc.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/read_only_shared_memory_region.h" #include "media/mojo/common/input_error_code_converter.h" #include "media/mojo/mojom/audio_data_pipe.mojom.h"
diff --git a/services/audio/public/cpp/input_ipc.h b/services/audio/public/cpp/input_ipc.h index f96a524..258ae0e 100644 --- a/services/audio/public/cpp/input_ipc.h +++ b/services/audio/public/cpp/input_ipc.h
@@ -8,8 +8,8 @@ #include <memory> #include <string> -#include "base/callback_helpers.h" #include "base/component_export.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/audio/public/cpp/input_ipc_unittest.cc b/services/audio/public/cpp/input_ipc_unittest.cc index 01f8a48..27a579d 100644 --- a/services/audio/public/cpp/input_ipc_unittest.cc +++ b/services/audio/public/cpp/input_ipc_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/task_environment.h" #include "media/base/audio_capturer_source.h" #include "media/mojo/mojom/audio_data_pipe.mojom.h"
diff --git a/services/audio/public/cpp/output_device.cc b/services/audio/public/cpp/output_device.cc index 46510bdd..702a1ee 100644 --- a/services/audio/public/cpp/output_device.cc +++ b/services/audio/public/cpp/output_device.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/threading/thread_restrictions.h" #include "media/audio/audio_output_device_thread_callback.h" #include "media/mojo/mojom/audio_data_pipe.mojom.h"
diff --git a/services/audio/public/cpp/output_device_unittest.cc b/services/audio/public/cpp/output_device_unittest.cc index c574baf..1ea5b649 100644 --- a/services/audio/public/cpp/output_device_unittest.cc +++ b/services/audio/public/cpp/output_device_unittest.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/audio/public/cpp/sounds/audio_stream_handler.cc b/services/audio/public/cpp/sounds/audio_stream_handler.cc index 646bc96..8eb329f 100644 --- a/services/audio/public/cpp/sounds/audio_stream_handler.cc +++ b/services/audio/public/cpp/sounds/audio_stream_handler.cc
@@ -9,8 +9,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/cancelable_callback.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/synchronization/lock.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc b/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc index e15f82d..e2c7ed8 100644 --- a/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc +++ b/services/audio/public/cpp/sounds/audio_stream_handler_unittest.cc
@@ -7,9 +7,9 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/audio/public/cpp/sounds/sounds_manager.h b/services/audio/public/cpp/sounds/sounds_manager.h index ae5d079..13a9ccb4 100644 --- a/services/audio/public/cpp/sounds/sounds_manager.h +++ b/services/audio/public/cpp/sounds/sounds_manager.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_AUDIO_PUBLIC_CPP_SOUNDS_SOUNDS_MANAGER_H_ #define SERVICES_AUDIO_PUBLIC_CPP_SOUNDS_SOUNDS_MANAGER_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/strings/string_piece.h" #include "base/time/time.h"
diff --git a/services/audio/public/cpp/sounds/sounds_manager_unittest.cc b/services/audio/public/cpp/sounds/sounds_manager_unittest.cc index 9fa870e5..86377e41 100644 --- a/services/audio/public/cpp/sounds/sounds_manager_unittest.cc +++ b/services/audio/public/cpp/sounds/sounds_manager_unittest.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/callback_helpers.h" #include "base/compiler_specific.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/strings/string_piece.h" #include "base/test/test_message_loop.h"
diff --git a/services/audio/public/cpp/sounds/test_data.h b/services/audio/public/cpp/sounds/test_data.h index 21a00828..f68407c 100644 --- a/services/audio/public/cpp/sounds/test_data.h +++ b/services/audio/public/cpp/sounds/test_data.h
@@ -9,8 +9,8 @@ #include <memory> -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/audio/realtime_audio_thread_test.cc b/services/audio/realtime_audio_thread_test.cc index 67c6f334..3f47165d 100644 --- a/services/audio/realtime_audio_thread_test.cc +++ b/services/audio/realtime_audio_thread_test.cc
@@ -6,8 +6,8 @@ #include <cstring> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "media/audio/simple_sources.h"
diff --git a/services/audio/service.cc b/services/audio/service.cc index 73f0a89..c95ca4e 100644 --- a/services/audio/service.cc +++ b/services/audio/service.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/system/system_monitor.h" #include "base/task/deferred_sequenced_task_runner.h"
diff --git a/services/audio/service_factory.cc b/services/audio/service_factory.cc index 2768a900..07211495 100644 --- a/services/audio/service_factory.cc +++ b/services/audio/service_factory.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "media/audio/audio_manager.h" #include "media/base/media_switches.h" #include "services/audio/in_process_audio_manager_accessor.h"
diff --git a/services/audio/snooper_node.cc b/services/audio/snooper_node.cc index 41b5c2c1..12d14e6 100644 --- a/services/audio/snooper_node.cc +++ b/services/audio/snooper_node.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <cmath> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/numerics/checked_math.h" #include "base/trace_event/trace_event.h" #include "media/base/audio_bus.h"
diff --git a/services/audio/snooper_node_unittest.cc b/services/audio/snooper_node_unittest.cc index 392532f..9f98fbce 100644 --- a/services/audio/snooper_node_unittest.cc +++ b/services/audio/snooper_node_unittest.cc
@@ -8,9 +8,9 @@ #include <memory> #include <vector> -#include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h" #include "base/strings/string_piece.h"
diff --git a/services/audio/stream_factory.cc b/services/audio/stream_factory.cc index 52c5fa7..c049275 100644 --- a/services/audio/stream_factory.cc +++ b/services/audio/stream_factory.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/task/sequenced_task_runner.h" #include "base/trace_event/trace_event.h"
diff --git a/services/audio/stream_factory.h b/services/audio/stream_factory.h index 3e141b7..2ef0f94 100644 --- a/services/audio/stream_factory.h +++ b/services/audio/stream_factory.h
@@ -9,9 +9,9 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/containers/flat_set.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/audio/sync_reader.h b/services/audio/sync_reader.h index 957e3a0a..d4829306 100644 --- a/services/audio/sync_reader.h +++ b/services/audio/sync_reader.h
@@ -10,8 +10,8 @@ #include <memory> #include <string> -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/memory/unsafe_shared_memory_region.h" #include "base/process/process.h" #include "base/sync_socket.h"
diff --git a/services/audio/sync_reader_unittest.cc b/services/audio/sync_reader_unittest.cc index e1b32f48..23ad041 100644 --- a/services/audio/sync_reader_unittest.cc +++ b/services/audio/sync_reader_unittest.cc
@@ -10,8 +10,8 @@ #include <type_traits> #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/unsafe_shared_memory_region.h" #include "base/sync_socket.h"
diff --git a/services/audio/test/audio_system_to_service_adapter_test.cc b/services/audio/test/audio_system_to_service_adapter_test.cc index 57013f3..21f4f49a 100644 --- a/services/audio/test/audio_system_to_service_adapter_test.cc +++ b/services/audio/test/audio_system_to_service_adapter_test.cc
@@ -4,7 +4,7 @@ #include "services/audio/public/cpp/audio_system_to_service_adapter.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/test/mock_callback.h" #include "base/test/task_environment.h"
diff --git a/services/audio/test/debug_recording_session_unittest.cc b/services/audio/test/debug_recording_session_unittest.cc index 79ec9c5..a2e82cd 100644 --- a/services/audio/test/debug_recording_session_unittest.cc +++ b/services/audio/test/debug_recording_session_unittest.cc
@@ -7,10 +7,10 @@ #include <limits> #include <memory> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/strings/string_number_conversions.h" #include "base/test/gtest_util.h" #include "base/test/task_environment.h"
diff --git a/services/audio/test/in_process_service_test.cc b/services/audio/test/in_process_service_test.cc index 2690f658..bd0a7ee 100644 --- a/services/audio/test/in_process_service_test.cc +++ b/services/audio/test/in_process_service_test.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/test/task_environment.h" #include "media/audio/audio_system_test_util.h"
diff --git a/services/audio/test/mock_log.h b/services/audio/test/mock_log.h index 4cf3f4f..f91ccb7e 100644 --- a/services/audio/test/mock_log.h +++ b/services/audio/test/mock_log.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "media/base/audio_parameters.h" #include "media/mojo/mojom/audio_logging.mojom.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/audio/testing_api_binder.h b/services/audio/testing_api_binder.h index fe2630e..7476e4b 100644 --- a/services/audio/testing_api_binder.h +++ b/services/audio/testing_api_binder.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_AUDIO_TESTING_API_BINDER_H_ #define SERVICES_AUDIO_TESTING_API_BINDER_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "services/audio/public/mojom/system_info.mojom.h" #include "services/audio/public/mojom/testing_api.mojom.h"
diff --git a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_test.cc b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_test.cc index 3c7069df..e3f7bdd 100644 --- a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_test.cc +++ b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_test.cc
@@ -4,7 +4,7 @@ #include "services/cert_verifier/cert_net_url_loader/cert_net_fetcher_test.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.h"
diff --git a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc index f60f869..eab6ac4 100644 --- a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc +++ b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc
@@ -62,9 +62,9 @@ #include <tuple> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h"
diff --git a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.h b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.h index 56ec198..ae79bb9 100644 --- a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.h +++ b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_CERT_VERIFIER_CERT_NET_URL_LOADER_CERT_NET_FETCHER_URL_LOADER_H_ #define SERVICES_CERT_VERIFIER_CERT_NET_URL_LOADER_CERT_NET_FETCHER_URL_LOADER_H_ -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/cert/cert_net_fetcher.h"
diff --git a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader_unittest.cc b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader_unittest.cc index 2f6ba10..98c98c0e 100644 --- a/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader_unittest.cc +++ b/services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader_unittest.cc
@@ -8,7 +8,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/message_loop/message_pump_type.h" #include "base/run_loop.h"
diff --git a/services/cert_verifier/cert_verifier_service.cc b/services/cert_verifier/cert_verifier_service.cc index f3f10ae1..b2ccdea 100644 --- a/services/cert_verifier/cert_verifier_service.cc +++ b/services/cert_verifier/cert_verifier_service.cc
@@ -4,7 +4,7 @@ #include "services/cert_verifier/cert_verifier_service.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "mojo/public/cpp/bindings/message.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/cert_verifier/cert_verifier_service_factory.cc b/services/cert_verifier/cert_verifier_service_factory.cc index c66c92b..0b40127b 100644 --- a/services/cert_verifier/cert_verifier_service_factory.cc +++ b/services/cert_verifier/cert_verifier_service_factory.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h"
diff --git a/services/cert_verifier/cert_verifier_service_factory_unittest.cc b/services/cert_verifier/cert_verifier_service_factory_unittest.cc index 8ab4137..d34d793 100644 --- a/services/cert_verifier/cert_verifier_service_factory_unittest.cc +++ b/services/cert_verifier/cert_verifier_service_factory_unittest.cc
@@ -8,8 +8,8 @@ #include <memory> #include <vector> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/test/bind.h"
diff --git a/services/cert_verifier/cert_verifier_service_unittest.cc b/services/cert_verifier/cert_verifier_service_unittest.cc index ecff9eca..a15789d3 100644 --- a/services/cert_verifier/cert_verifier_service_unittest.cc +++ b/services/cert_verifier/cert_verifier_service_unittest.cc
@@ -11,8 +11,8 @@ #include <string> #include <tuple> -#include "base/callback_helpers.h" #include "base/containers/adapters.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h"
diff --git a/services/data_decoder/data_decoder_service.cc b/services/data_decoder/data_decoder_service.cc index 7f8f247..605ed4d 100644 --- a/services/data_decoder/data_decoder_service.cc +++ b/services/data_decoder/data_decoder_service.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/time/time.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h"
diff --git a/services/data_decoder/gzipper_unittest.cc b/services/data_decoder/gzipper_unittest.cc index 8926e63a..d7b5fbf4 100644 --- a/services/data_decoder/gzipper_unittest.cc +++ b/services/data_decoder/gzipper_unittest.cc
@@ -4,7 +4,7 @@ #include "services/data_decoder/gzipper.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/services/data_decoder/image_decoder_impl_unittest.cc b/services/data_decoder/image_decoder_impl_unittest.cc index 4d58d6b..971e9f5 100644 --- a/services/data_decoder/image_decoder_impl_unittest.cc +++ b/services/data_decoder/image_decoder_impl_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <vector> -#include "base/bind.h" #include "base/containers/span.h" +#include "base/functional/bind.h" #include "base/lazy_instance.h" #include "base/memory/raw_ptr.h" #include "base/test/bind.h"
diff --git a/services/data_decoder/public/cpp/data_decoder.cc b/services/data_decoder/public/cpp/data_decoder.cc index 35d52cd..358bdac 100644 --- a/services/data_decoder/public/cpp/data_decoder.cc +++ b/services/data_decoder/public/cpp/data_decoder.cc
@@ -4,7 +4,7 @@ #include "services/data_decoder/public/cpp/data_decoder.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/json/json_reader.h" #include "base/memory/ref_counted.h" #include "base/no_destructor.h"
diff --git a/services/data_decoder/public/cpp/data_decoder.h b/services/data_decoder/public/cpp/data_decoder.h index 92023b1..5a8a42b 100644 --- a/services/data_decoder/public/cpp/data_decoder.h +++ b/services/data_decoder/public/cpp/data_decoder.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "base/time/time.h" #include "base/types/expected.h"
diff --git a/services/data_decoder/public/cpp/data_decoder_unittest.cc b/services/data_decoder/public/cpp/data_decoder_unittest.cc index 244b11e1..4d6b640 100644 --- a/services/data_decoder/public/cpp/data_decoder_unittest.cc +++ b/services/data_decoder/public/cpp/data_decoder_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/parsing_buildflags.h" #include "base/run_loop.h" #include "base/task/thread_pool/thread_pool_instance.h"
diff --git a/services/data_decoder/public/cpp/decode_image.cc b/services/data_decoder/public/cpp/decode_image.cc index e4037c7..4d66ea4 100644 --- a/services/data_decoder/public/cpp/decode_image.cc +++ b/services/data_decoder/public/cpp/decode_image.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/debug/dump_without_crashing.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" #include "base/time/time.h" #include "base/timer/elapsed_timer.h"
diff --git a/services/data_decoder/public/cpp/json_sanitizer.h b/services/data_decoder/public/cpp/json_sanitizer.h index 2656f14..675bc26 100644 --- a/services/data_decoder/public/cpp/json_sanitizer.h +++ b/services/data_decoder/public/cpp/json_sanitizer.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace data_decoder {
diff --git a/services/data_decoder/public/cpp/json_sanitizer_android.cc b/services/data_decoder/public/cpp/json_sanitizer_android.cc index 87a43b9..b450c30 100644 --- a/services/data_decoder/public/cpp/json_sanitizer_android.cc +++ b/services/data_decoder/public/cpp/json_sanitizer_android.cc
@@ -5,8 +5,8 @@ #include "services/data_decoder/public/cpp/json_sanitizer.h" #include "base/android/jni_string.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/string_util.h" #include "base/task/sequenced_task_runner.h" #include "services/data_decoder/public/cpp/android/safe_json_jni_headers/JsonSanitizer_jni.h"
diff --git a/services/data_decoder/public/cpp/json_sanitizer_non_android.cc b/services/data_decoder/public/cpp/json_sanitizer_non_android.cc index 2f6483e..50c0a5d4 100644 --- a/services/data_decoder/public/cpp/json_sanitizer_non_android.cc +++ b/services/data_decoder/public/cpp/json_sanitizer_non_android.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_writer.h" #include "base/values.h" #include "services/data_decoder/public/cpp/data_decoder.h"
diff --git a/services/data_decoder/public/cpp/json_sanitizer_unittest.cc b/services/data_decoder/public/cpp/json_sanitizer_unittest.cc index e68f725..f4efb99 100644 --- a/services/data_decoder/public/cpp/json_sanitizer_unittest.cc +++ b/services/data_decoder/public/cpp/json_sanitizer_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/run_loop.h"
diff --git a/services/data_decoder/public/cpp/safe_web_bundle_parser.cc b/services/data_decoder/public/cpp/safe_web_bundle_parser.cc index b039da3..dc12b3d4 100644 --- a/services/data_decoder/public/cpp/safe_web_bundle_parser.cc +++ b/services/data_decoder/public/cpp/safe_web_bundle_parser.cc
@@ -4,7 +4,7 @@ #include "services/data_decoder/public/cpp/safe_web_bundle_parser.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h"
diff --git a/services/data_decoder/public/cpp/safe_xml_parser.cc b/services/data_decoder/public/cpp/safe_xml_parser.cc index ba72779b..3d1b359 100644 --- a/services/data_decoder/public/cpp/safe_xml_parser.cc +++ b/services/data_decoder/public/cpp/safe_xml_parser.cc
@@ -4,8 +4,8 @@ #include "services/data_decoder/public/cpp/safe_xml_parser.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/threading/thread_checker.h" #include "base/values.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/data_decoder/public/cpp/safe_xml_parser.h b/services/data_decoder/public/cpp/safe_xml_parser.h index e3b554a..80b938d 100644 --- a/services/data_decoder/public/cpp/safe_xml_parser.h +++ b/services/data_decoder/public/cpp/safe_xml_parser.h
@@ -10,7 +10,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/token.h" #include "base/values.h"
diff --git a/services/data_decoder/public/cpp/safe_xml_parser_unittest.cc b/services/data_decoder/public/cpp/safe_xml_parser_unittest.cc index e6d537e..9b4086f2 100644 --- a/services/data_decoder/public/cpp/safe_xml_parser_unittest.cc +++ b/services/data_decoder/public/cpp/safe_xml_parser_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/bind.h" #include "base/values.h" #include "build/build_config.h"
diff --git a/services/data_decoder/structured_headers_parser_impl.cc b/services/data_decoder/structured_headers_parser_impl.cc index 0b78c95..2c1e827 100644 --- a/services/data_decoder/structured_headers_parser_impl.cc +++ b/services/data_decoder/structured_headers_parser_impl.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "net/http/structured_headers.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/services/data_decoder/xml_parser_fuzzer.cc b/services/data_decoder/xml_parser_fuzzer.cc index f8c55de..40290a6 100644 --- a/services/data_decoder/xml_parser_fuzzer.cc +++ b/services/data_decoder/xml_parser_fuzzer.cc
@@ -7,7 +7,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_executor.h" #include "services/data_decoder/xml_parser.h"
diff --git a/services/data_decoder/xml_parser_unittest.cc b/services/data_decoder/xml_parser_unittest.cc index 15488036..a2baaec 100644 --- a/services/data_decoder/xml_parser_unittest.cc +++ b/services/data_decoder/xml_parser_unittest.cc
@@ -4,8 +4,8 @@ #include <memory> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/test/values_test_util.h" #include "services/data_decoder/xml_parser.h" #include "testing/gmock/include/gmock/gmock.h"
diff --git a/services/device/battery/battery_monitor_impl.cc b/services/device/battery/battery_monitor_impl.cc index 51dba0d..eae88d1 100644 --- a/services/device/battery/battery_monitor_impl.cc +++ b/services/device/battery/battery_monitor_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
diff --git a/services/device/battery/battery_monitor_impl_unittest.cc b/services/device/battery/battery_monitor_impl_unittest.cc index 64a7549..dc620e60 100644 --- a/services/device/battery/battery_monitor_impl_unittest.cc +++ b/services/device/battery/battery_monitor_impl_unittest.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/battery/battery_status_manager_linux.cc b/services/device/battery/battery_status_manager_linux.cc index c6aa1b8..7002afb0 100644 --- a/services/device/battery/battery_status_manager_linux.cc +++ b/services/device/battery/battery_status_manager_linux.cc
@@ -13,8 +13,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/message_loop/message_pump_type.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/battery/battery_status_manager_linux_unittest.cc b/services/device/battery/battery_status_manager_linux_unittest.cc index 62e20502..ebbd87a 100644 --- a/services/device/battery/battery_status_manager_linux_unittest.cc +++ b/services/device/battery/battery_status_manager_linux_unittest.cc
@@ -8,7 +8,7 @@ #include <list> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/synchronization/waitable_event.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/battery/battery_status_manager_win.cc b/services/device/battery/battery_status_manager_win.cc index de01095..0f5d0574 100644 --- a/services/device/battery/battery_status_manager_win.cc +++ b/services/device/battery/battery_status_manager_win.cc
@@ -7,7 +7,7 @@ #include <memory> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/win/message_window.h" #include "services/device/battery/battery_status_manager.h"
diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc index b47d61d..2098570 100644 --- a/services/device/battery/battery_status_service.cc +++ b/services/device/battery/battery_status_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/no_destructor.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/battery/battery_status_service_unittest.cc b/services/device/battery/battery_status_service_unittest.cc index 560bcaa..29d0262 100644 --- a/services/device/battery/battery_status_service_unittest.cc +++ b/services/device/battery/battery_status_service_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/device/binder_overrides.h b/services/device/binder_overrides.h index 6ab293d..80a3eb6 100644 --- a/services/device/binder_overrides.h +++ b/services/device/binder_overrides.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_DEVICE_BINDER_OVERRIDES_H_ #define SERVICES_DEVICE_BINDER_OVERRIDES_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/device/public/mojom/geolocation_context.mojom.h"
diff --git a/services/device/compute_pressure/platform_collector.cc b/services/device/compute_pressure/platform_collector.cc index 03f33b8..46c01ef 100644 --- a/services/device/compute_pressure/platform_collector.cc +++ b/services/device/compute_pressure/platform_collector.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_forward.h" +#include "base/functional/bind.h" +#include "base/functional/callback_forward.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h"
diff --git a/services/device/compute_pressure/platform_collector.h b/services/device/compute_pressure/platform_collector.h index d3561977..ddddfdc 100644 --- a/services/device/compute_pressure/platform_collector.h +++ b/services/device/compute_pressure/platform_collector.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback.h" -#include "base/callback_forward.h" +#include "base/functional/callback.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/compute_pressure/platform_collector_unittest.cc b/services/device/compute_pressure/platform_collector_unittest.cc index 08dbd4a..a80151f 100644 --- a/services/device/compute_pressure/platform_collector_unittest.cc +++ b/services/device/compute_pressure/platform_collector_unittest.cc
@@ -8,8 +8,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/sequence_checker.h" #include "base/test/bind.h"
diff --git a/services/device/compute_pressure/pressure_manager_impl.cc b/services/device/compute_pressure/pressure_manager_impl.cc index 8788a3bc..489ddcd2 100644 --- a/services/device/compute_pressure/pressure_manager_impl.cc +++ b/services/device/compute_pressure/pressure_manager_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/time/time.h" #include "mojo/public/cpp/bindings/message.h"
diff --git a/services/device/device_posture/device_posture_provider_impl.cc b/services/device/device_posture/device_posture_provider_impl.cc index e680991..a6afebef 100644 --- a/services/device/device_posture/device_posture_provider_impl.cc +++ b/services/device/device_posture/device_posture_provider_impl.cc
@@ -4,7 +4,7 @@ #include "services/device/device_posture/device_posture_provider_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/remote_set.h" #include "services/device/device_posture/device_posture_platform_provider.h"
diff --git a/services/device/device_service.cc b/services/device/device_service.cc index 1f8a587..eaee3293 100644 --- a/services/device/device_service.cc +++ b/services/device/device_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/task/thread_pool.h"
diff --git a/services/device/device_service.h b/services/device/device_service.h index 3ee5d67..cc20b70e 100644 --- a/services/device/device_service.h +++ b/services/device/device_service.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/device_service_test_base.cc b/services/device/device_service_test_base.cc index 457a29c..9463e13 100644 --- a/services/device/device_service_test_base.cc +++ b/services/device/device_service_test_base.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/task/single_thread_task_runner.h" #include "base/task/thread_pool.h"
diff --git a/services/device/fingerprint/fingerprint_chromeos.cc b/services/device/fingerprint/fingerprint_chromeos.cc index 7f6660f5..49898e9 100644 --- a/services/device/fingerprint/fingerprint_chromeos.cc +++ b/services/device/fingerprint/fingerprint_chromeos.cc
@@ -6,8 +6,8 @@ #include <string.h> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "chromeos/ash/components/dbus/biod/biod_client.h" #include "dbus/object_path.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/device/fingerprint/fingerprint_chromeos_unittest.cc b/services/device/fingerprint/fingerprint_chromeos_unittest.cc index f64fc334..5febc2f 100644 --- a/services/device/fingerprint/fingerprint_chromeos_unittest.cc +++ b/services/device/fingerprint/fingerprint_chromeos_unittest.cc
@@ -4,7 +4,7 @@ #include "services/device/fingerprint/fingerprint_chromeos.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/device/generic_sensor/generic_sensor_service_unittest.cc b/services/device/generic_sensor/generic_sensor_service_unittest.cc index 7ce5e5b..8bb262d 100644 --- a/services/device/generic_sensor/generic_sensor_service_unittest.cc +++ b/services/device/generic_sensor/generic_sensor_service_unittest.cc
@@ -3,8 +3,8 @@ // found in the LICENSE file. #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/memory/read_only_shared_memory_region.h"
diff --git a/services/device/generic_sensor/linux/sensor_data_linux.cc b/services/device/generic_sensor/linux/sensor_data_linux.cc index 8d0cbe1..e25b211 100644 --- a/services/device/generic_sensor/linux/sensor_data_linux.cc +++ b/services/device/generic_sensor/linux/sensor_data_linux.cc
@@ -4,7 +4,7 @@ #include "services/device/generic_sensor/linux/sensor_data_linux.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/system/sys_info.h" #include "base/version.h" #include "build/chromeos_buildflags.h"
diff --git a/services/device/generic_sensor/linux/sensor_device_manager.cc b/services/device/generic_sensor/linux/sensor_device_manager.cc index 35dd7eb..df7b52b 100644 --- a/services/device/generic_sensor/linux/sensor_device_manager.cc +++ b/services/device/generic_sensor/linux/sensor_device_manager.cc
@@ -4,8 +4,8 @@ #include "services/device/generic_sensor/linux/sensor_device_manager.h" -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/strings/string_number_conversions.h" #include "base/task/sequenced_task_runner.h" #include "base/threading/scoped_blocking_call.h"
diff --git a/services/device/generic_sensor/platform_sensor.cc b/services/device/generic_sensor/platform_sensor.cc index b8f35682..b0c9d52 100644 --- a/services/device/generic_sensor/platform_sensor.cc +++ b/services/device/generic_sensor/platform_sensor.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/check.h" #include "base/containers/cxx20_erase.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/observer_list.h" #include "base/task/sequenced_task_runner.h" #include "services/device/generic_sensor/platform_sensor_provider.h"
diff --git a/services/device/generic_sensor/platform_sensor.h b/services/device/generic_sensor/platform_sensor.h index cd9b2c7..95eb072 100644 --- a/services/device/generic_sensor/platform_sensor.h +++ b/services/device/generic_sensor/platform_sensor.h
@@ -9,7 +9,7 @@ #include <map> #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h"
diff --git a/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc b/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc index db0b406..f85f59b 100644 --- a/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc +++ b/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
@@ -8,7 +8,7 @@ #include <cmath> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/numerics/math_constants.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc b/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc index e72a4cdd..501f144 100644 --- a/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc +++ b/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc
@@ -8,7 +8,7 @@ #include <IOKit/IOMessage.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/time/time.h" #include "device/base/synchronization/shared_memory_seqlock_buffer.h" #include "services/device/generic_sensor/generic_sensor_consts.h"
diff --git a/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc b/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc index 1e76e2e..1337c4e7 100644 --- a/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc +++ b/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc
@@ -5,7 +5,7 @@ #include <memory> #include "services/device/generic_sensor/platform_sensor_provider.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/memory/shared_memory_mapping.h" #include "base/test/task_environment.h"
diff --git a/services/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc b/services/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc index 2ac4ba3..3e3d2ad 100644 --- a/services/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc +++ b/services/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc
@@ -6,9 +6,9 @@ #include <memory> #include "base/barrier_closure.h" -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/memory/shared_memory_mapping.h"
diff --git a/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc b/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc index 3d3f6caf..4119b558 100644 --- a/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc +++ b/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc
@@ -6,7 +6,7 @@ #include <sensors.h> #include <wrl/implements.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/memory/shared_memory_mapping.h" #include "base/numerics/math_constants.h"
diff --git a/services/device/generic_sensor/platform_sensor_android.cc b/services/device/generic_sensor/platform_sensor_android.cc index 0c49dba..6800c60 100644 --- a/services/device/generic_sensor/platform_sensor_android.cc +++ b/services/device/generic_sensor/platform_sensor_android.cc
@@ -4,7 +4,7 @@ #include "services/device/generic_sensor/platform_sensor_android.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "services/device/generic_sensor/jni_headers/PlatformSensor_jni.h" #include "services/device/public/cpp/device_features.h"
diff --git a/services/device/generic_sensor/platform_sensor_chromeos.cc b/services/device/generic_sensor/platform_sensor_chromeos.cc index 16169005..cdc6f8e8 100644 --- a/services/device/generic_sensor/platform_sensor_chromeos.cc +++ b/services/device/generic_sensor/platform_sensor_chromeos.cc
@@ -7,8 +7,8 @@ #include <iterator> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/strings/string_number_conversions.h" #include "base/time/time.h"
diff --git a/services/device/generic_sensor/platform_sensor_fusion.cc b/services/device/generic_sensor/platform_sensor_fusion.cc index d08aa3b..7bc2cc3 100644 --- a/services/device/generic_sensor/platform_sensor_fusion.cc +++ b/services/device/generic_sensor/platform_sensor_fusion.cc
@@ -4,8 +4,8 @@ #include "services/device/generic_sensor/platform_sensor_fusion.h" -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/notreached.h"
diff --git a/services/device/generic_sensor/platform_sensor_fusion_unittest.cc b/services/device/generic_sensor/platform_sensor_fusion_unittest.cc index 576cf2de..0fdc0d8f 100644 --- a/services/device/generic_sensor/platform_sensor_fusion_unittest.cc +++ b/services/device/generic_sensor/platform_sensor_fusion_unittest.cc
@@ -4,8 +4,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/device/generic_sensor/platform_sensor_linux.cc b/services/device/generic_sensor/platform_sensor_linux.cc index 2b81f44..5d49b02 100644 --- a/services/device/generic_sensor/platform_sensor_linux.cc +++ b/services/device/generic_sensor/platform_sensor_linux.cc
@@ -4,7 +4,7 @@ #include "services/device/generic_sensor/platform_sensor_linux.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/time/time.h" #include "services/device/generic_sensor/linux/sensor_data_linux.h"
diff --git a/services/device/generic_sensor/platform_sensor_provider_base.cc b/services/device/generic_sensor/platform_sensor_provider_base.cc index 3a39b52..f5850967 100644 --- a/services/device/generic_sensor/platform_sensor_provider_base.cc +++ b/services/device/generic_sensor/platform_sensor_provider_base.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "services/device/public/mojom/sensor_provider.mojom.h" namespace device {
diff --git a/services/device/generic_sensor/platform_sensor_provider_chromeos.cc b/services/device/generic_sensor/platform_sensor_provider_chromeos.cc index f05158c..cd154927 100644 --- a/services/device/generic_sensor/platform_sensor_provider_chromeos.cc +++ b/services/device/generic_sensor/platform_sensor_provider_chromeos.cc
@@ -8,9 +8,9 @@ #include <iterator> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/containers/cxx20_erase_map.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/ranges/algorithm.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/device/generic_sensor/platform_sensor_provider_linux.cc b/services/device/generic_sensor/platform_sensor_provider_linux.cc index 8bbfdd8..ec5ac7a 100644 --- a/services/device/generic_sensor/platform_sensor_provider_linux.cc +++ b/services/device/generic_sensor/platform_sensor_provider_linux.cc
@@ -7,9 +7,9 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/compiler_specific.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/task/thread_pool.h" #include "services/device/generic_sensor/linux/sensor_data_linux.h"
diff --git a/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc b/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc index 9d94920..94cfc43b 100644 --- a/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc +++ b/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/task_environment.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/services/device/generic_sensor/platform_sensor_provider_win.cc b/services/device/generic_sensor/platform_sensor_provider_win.cc index 6cfa095..48a2b7a2 100644 --- a/services/device/generic_sensor/platform_sensor_provider_win.cc +++ b/services/device/generic_sensor/platform_sensor_provider_win.cc
@@ -9,7 +9,7 @@ #include <iomanip> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h"
diff --git a/services/device/generic_sensor/platform_sensor_reader_linux.cc b/services/device/generic_sensor/platform_sensor_reader_linux.cc index fd75c5f6..52873317 100644 --- a/services/device/generic_sensor/platform_sensor_reader_linux.cc +++ b/services/device/generic_sensor/platform_sensor_reader_linux.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/sequence_checker.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h"
diff --git a/services/device/generic_sensor/platform_sensor_reader_linux.h b/services/device/generic_sensor/platform_sensor_reader_linux.h index 650e4b1..6fd3274 100644 --- a/services/device/generic_sensor/platform_sensor_reader_linux.h +++ b/services/device/generic_sensor/platform_sensor_reader_linux.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_READER_LINUX_H_ #define SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_READER_LINUX_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" namespace device {
diff --git a/services/device/generic_sensor/platform_sensor_reader_win.cc b/services/device/generic_sensor/platform_sensor_reader_win.cc index 93c8118..e6220eb 100644 --- a/services/device/generic_sensor/platform_sensor_reader_win.cc +++ b/services/device/generic_sensor/platform_sensor_reader_win.cc
@@ -11,7 +11,7 @@ #include <iomanip> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/numerics/math_constants.h"
diff --git a/services/device/generic_sensor/platform_sensor_reader_winrt.h b/services/device/generic_sensor/platform_sensor_reader_winrt.h index 746172c1..66fdc60 100644 --- a/services/device/generic_sensor/platform_sensor_reader_winrt.h +++ b/services/device/generic_sensor/platform_sensor_reader_winrt.h
@@ -12,7 +12,7 @@ #include <functional> #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/synchronization/lock.h" #include "base/thread_annotations.h"
diff --git a/services/device/generic_sensor/platform_sensor_win.cc b/services/device/generic_sensor/platform_sensor_win.cc index ac2561d..3ee3c1f 100644 --- a/services/device/generic_sensor/platform_sensor_win.cc +++ b/services/device/generic_sensor/platform_sensor_win.cc
@@ -4,7 +4,7 @@ #include "services/device/generic_sensor/platform_sensor_win.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "services/device/public/cpp/generic_sensor/sensor_traits.h"
diff --git a/services/device/generic_sensor/sensor_provider_impl.cc b/services/device/generic_sensor/sensor_provider_impl.cc index 85c1e44..d5156f2 100644 --- a/services/device/generic_sensor/sensor_provider_impl.cc +++ b/services/device/generic_sensor/sensor_provider_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/device/generic_sensor/platform_sensor_provider.h"
diff --git a/services/device/geolocation/fake_location_provider.cc b/services/device/geolocation/fake_location_provider.cc index 5e4c5ea3..b10de65 100644 --- a/services/device/geolocation/fake_location_provider.cc +++ b/services/device/geolocation/fake_location_provider.cc
@@ -9,9 +9,9 @@ #include "services/device/geolocation/fake_location_provider.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/geolocation/geolocation_config.cc b/services/device/geolocation/geolocation_config.cc index f788cce..6006152 100644 --- a/services/device/geolocation/geolocation_config.cc +++ b/services/device/geolocation/geolocation_config.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/geolocation_config.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" namespace device {
diff --git a/services/device/geolocation/geolocation_impl.cc b/services/device/geolocation/geolocation_impl.cc index 13ee127..24aa8af 100644 --- a/services/device/geolocation/geolocation_impl.cc +++ b/services/device/geolocation/geolocation_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/device/geolocation/geolocation_context.h" #include "services/device/public/cpp/geolocation/geoposition.h"
diff --git a/services/device/geolocation/geolocation_provider_impl.cc b/services/device/geolocation/geolocation_provider_impl.cc index ac7cf3c..e270dc6b 100644 --- a/services/device/geolocation/geolocation_provider_impl.cc +++ b/services/device/geolocation/geolocation_provider_impl.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/lazy_instance.h" #include "base/location.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/geolocation/geolocation_provider_impl.h b/services/device/geolocation/geolocation_provider_impl.h index f464230..40a204df6 100644 --- a/services/device/geolocation/geolocation_provider_impl.h +++ b/services/device/geolocation/geolocation_provider_impl.h
@@ -9,8 +9,8 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/compiler_specific.h" +#include "base/functional/callback_forward.h" #include "base/threading/thread.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/device/geolocation/geolocation_provider_impl_unittest.cc b/services/device/geolocation/geolocation_provider_impl_unittest.cc index 074866ff..c5c8b99c 100644 --- a/services/device/geolocation/geolocation_provider_impl_unittest.cc +++ b/services/device/geolocation/geolocation_provider_impl_unittest.cc
@@ -8,8 +8,8 @@ #include <string> #include "base/at_exit.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/services/device/geolocation/geolocation_service_unittest.cc b/services/device/geolocation/geolocation_service_unittest.cc index 9d83ab1..a36a2cc 100644 --- a/services/device/geolocation/geolocation_service_unittest.cc +++ b/services/device/geolocation/geolocation_service_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/scoped_feature_list.h"
diff --git a/services/device/geolocation/location_api_adapter_android.cc b/services/device/geolocation/location_api_adapter_android.cc index b377810..06c46fd 100644 --- a/services/device/geolocation/location_api_adapter_android.cc +++ b/services/device/geolocation/location_api_adapter_android.cc
@@ -6,7 +6,7 @@ #include "base/android/jni_android.h" #include "base/android/jni_string.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h"
diff --git a/services/device/geolocation/location_arbitrator.cc b/services/device/geolocation/location_arbitrator.cc index 0c48a3e..03f0801 100644 --- a/services/device/geolocation/location_arbitrator.cc +++ b/services/device/geolocation/location_arbitrator.cc
@@ -8,8 +8,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h"
diff --git a/services/device/geolocation/location_arbitrator.h b/services/device/geolocation/location_arbitrator.h index c4073e6..87d8967 100644 --- a/services/device/geolocation/location_arbitrator.h +++ b/services/device/geolocation/location_arbitrator.h
@@ -10,8 +10,8 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/cancelable_callback.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h"
diff --git a/services/device/geolocation/location_arbitrator_unittest.cc b/services/device/geolocation/location_arbitrator_unittest.cc index 6e93dca..3be207ff 100644 --- a/services/device/geolocation/location_arbitrator_unittest.cc +++ b/services/device/geolocation/location_arbitrator_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/test/task_environment.h"
diff --git a/services/device/geolocation/location_provider_android.cc b/services/device/geolocation/location_provider_android.cc index 893354de..23eb17a 100644 --- a/services/device/geolocation/location_provider_android.cc +++ b/services/device/geolocation/location_provider_android.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "services/device/geolocation/location_api_adapter_android.h"
diff --git a/services/device/geolocation/network_location_provider.cc b/services/device/geolocation/network_location_provider.cc index 5f6f0f61..539c4aac 100644 --- a/services/device/geolocation/network_location_provider.cc +++ b/services/device/geolocation/network_location_provider.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/metrics/histogram_macros.h"
diff --git a/services/device/geolocation/network_location_provider_unittest.cc b/services/device/geolocation/network_location_provider_unittest.cc index 22c9cac..114e538a 100644 --- a/services/device/geolocation/network_location_provider_unittest.cc +++ b/services/device/geolocation/network_location_provider_unittest.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/run_loop.h"
diff --git a/services/device/geolocation/network_location_request.cc b/services/device/geolocation/network_location_request.cc index ae26ef6..14c47ad 100644 --- a/services/device/geolocation/network_location_request.cc +++ b/services/device/geolocation/network_location_request.cc
@@ -11,7 +11,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/geolocation/network_location_request.h b/services/device/geolocation/network_location_request.h index dc5e91388..f0806e4 100644 --- a/services/device/geolocation/network_location_request.h +++ b/services/device/geolocation/network_location_request.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h" #include "services/device/geolocation/wifi_data_provider.h"
diff --git a/services/device/geolocation/public_ip_address_geolocation_provider.cc b/services/device/geolocation/public_ip_address_geolocation_provider.cc index cc30b8d..b0da0715 100644 --- a/services/device/geolocation/public_ip_address_geolocation_provider.cc +++ b/services/device/geolocation/public_ip_address_geolocation_provider.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/public_ip_address_geolocation_provider.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/device/geolocation/public_ip_address_geolocator.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
diff --git a/services/device/geolocation/public_ip_address_geolocator.cc b/services/device/geolocation/public_ip_address_geolocator.cc index d757754..98e2f327 100644 --- a/services/device/geolocation/public_ip_address_geolocator.cc +++ b/services/device/geolocation/public_ip_address_geolocator.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/public_ip_address_geolocator.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/device/geolocation/public_ip_address_location_notifier.h"
diff --git a/services/device/geolocation/public_ip_address_geolocator.h b/services/device/geolocation/public_ip_address_geolocator.h index 8acb97c..06aa8743 100644 --- a/services/device/geolocation/public_ip_address_geolocator.h +++ b/services/device/geolocation/public_ip_address_geolocator.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "net/traffic_annotation/network_traffic_annotation.h"
diff --git a/services/device/geolocation/public_ip_address_geolocator_unittest.cc b/services/device/geolocation/public_ip_address_geolocator_unittest.cc index 4865a090..b45f927 100644 --- a/services/device/geolocation/public_ip_address_geolocator_unittest.cc +++ b/services/device/geolocation/public_ip_address_geolocator_unittest.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/strings/string_util.h" #include "base/test/task_environment.h"
diff --git a/services/device/geolocation/public_ip_address_location_notifier.cc b/services/device/geolocation/public_ip_address_location_notifier.cc index 9441264..c9d565c6 100644 --- a/services/device/geolocation/public_ip_address_location_notifier.cc +++ b/services/device/geolocation/public_ip_address_location_notifier.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/device/geolocation/wifi_data.h"
diff --git a/services/device/geolocation/public_ip_address_location_notifier.h b/services/device/geolocation/public_ip_address_location_notifier.h index 71c321ef..6dc34a18 100644 --- a/services/device/geolocation/public_ip_address_location_notifier.h +++ b/services/device/geolocation/public_ip_address_location_notifier.h
@@ -7,9 +7,9 @@ #include <memory> -#include "base/callback.h" #include "base/callback_list.h" #include "base/cancelable_callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "net/traffic_annotation/network_traffic_annotation.h"
diff --git a/services/device/geolocation/public_ip_address_location_notifier_unittest.cc b/services/device/geolocation/public_ip_address_location_notifier_unittest.cc index c952b7d..508f0b3 100644 --- a/services/device/geolocation/public_ip_address_location_notifier_unittest.cc +++ b/services/device/geolocation/public_ip_address_location_notifier_unittest.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/public_ip_address_location_notifier.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/test/task_environment.h"
diff --git a/services/device/geolocation/wifi_data_provider.cc b/services/device/geolocation/wifi_data_provider.cc index ca6e076..495b778 100644 --- a/services/device/geolocation/wifi_data_provider.cc +++ b/services/device/geolocation/wifi_data_provider.cc
@@ -4,8 +4,8 @@ #include "services/device/geolocation/wifi_data_provider.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/geolocation/wifi_data_provider.h b/services/device/geolocation/wifi_data_provider.h index 27d629d..793fd1e8 100644 --- a/services/device/geolocation/wifi_data_provider.h +++ b/services/device/geolocation/wifi_data_provider.h
@@ -7,7 +7,7 @@ #include <set> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/geolocation/wifi_data_provider_chromeos.cc b/services/device/geolocation/wifi_data_provider_chromeos.cc index 3a3a25ba..eae9cf3 100644 --- a/services/device/geolocation/wifi_data_provider_chromeos.cc +++ b/services/device/geolocation/wifi_data_provider_chromeos.cc
@@ -8,7 +8,7 @@ #include <stdint.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/geolocation/wifi_data_provider_common.cc b/services/device/geolocation/wifi_data_provider_common.cc index b519b3b..8331c3f 100644 --- a/services/device/geolocation/wifi_data_provider_common.cc +++ b/services/device/geolocation/wifi_data_provider_common.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/wifi_data_provider_common.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/metrics/histogram_macros.h" #include "base/strings/stringprintf.h"
diff --git a/services/device/geolocation/wifi_data_provider_common_unittest.cc b/services/device/geolocation/wifi_data_provider_common_unittest.cc index 53c4a20..5162f7a0 100644 --- a/services/device/geolocation/wifi_data_provider_common_unittest.cc +++ b/services/device/geolocation/wifi_data_provider_common_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/services/device/geolocation/wifi_data_provider_handle.h b/services/device/geolocation/wifi_data_provider_handle.h index 53ac3cb..78ba28fc 100644 --- a/services/device/geolocation/wifi_data_provider_handle.h +++ b/services/device/geolocation/wifi_data_provider_handle.h
@@ -15,8 +15,8 @@ #ifndef SERVICES_DEVICE_GEOLOCATION_WIFI_DATA_PROVIDER_HANDLE_H_ #define SERVICES_DEVICE_GEOLOCATION_WIFI_DATA_PROVIDER_HANDLE_H_ -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/strings/string_util.h"
diff --git a/services/device/geolocation/wifi_data_provider_lacros.cc b/services/device/geolocation/wifi_data_provider_lacros.cc index 86ca255..360ba0c 100644 --- a/services/device/geolocation/wifi_data_provider_lacros.cc +++ b/services/device/geolocation/wifi_data_provider_lacros.cc
@@ -4,7 +4,7 @@ #include "services/device/geolocation/wifi_data_provider_lacros.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/time/time.h" #include "base/timer/timer.h"
diff --git a/services/device/geolocation/win/fake_geolocator_winrt.cc b/services/device/geolocation/win/fake_geolocator_winrt.cc index 75739b7..6c5ca9f 100644 --- a/services/device/geolocation/win/fake_geolocator_winrt.cc +++ b/services/device/geolocation/win/fake_geolocator_winrt.cc
@@ -4,8 +4,8 @@ #include "services/device/geolocation/win/fake_geolocator_winrt.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "services/device/geolocation/win/fake_geocoordinate_winrt.h" #include "services/device/geolocation/win/fake_position_changed_event_args_winrt.h"
diff --git a/services/device/geolocation/win/location_provider_winrt.cc b/services/device/geolocation/win/location_provider_winrt.cc index cd392c9e..f2c737a 100644 --- a/services/device/geolocation/win/location_provider_winrt.cc +++ b/services/device/geolocation/win/location_provider_winrt.cc
@@ -8,8 +8,8 @@ #include <windows.foundation.h> #include <wrl/event.h> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/strings/string_number_conversions.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/geolocation/win/location_provider_winrt_unittest.cc b/services/device/geolocation/win/location_provider_winrt_unittest.cc index e1f47cb0..d4eabaa 100644 --- a/services/device/geolocation/win/location_provider_winrt_unittest.cc +++ b/services/device/geolocation/win/location_provider_winrt_unittest.cc
@@ -4,10 +4,12 @@ #include "services/device/geolocation/win/location_provider_winrt.h" +#include <memory> +#include <utility> + #include "base/run_loop.h" #include "base/test/task_environment.h" #include "base/win/scoped_winrt_initializer.h" -#include "base/win/windows_version.h" #include "services/device/geolocation/win/fake_geocoordinate_winrt.h" #include "services/device/geolocation/win/fake_geolocator_winrt.h" #include "services/device/public/cpp/geolocation/geoposition.h" @@ -21,7 +23,7 @@ class MockLocationObserver { public: - MockLocationObserver(base::OnceClosure update_called) + explicit MockLocationObserver(base::OnceClosure update_called) : update_called_(std::move(update_called)) {} ~MockLocationObserver() = default; @@ -90,9 +92,6 @@ base::Unretained(observer_.get()))) {} void SetUp() override { - if (base::win::GetVersion() < base::win::Version::WIN8) - GTEST_SKIP(); - winrt_initializer_.emplace(); ASSERT_TRUE(winrt_initializer_->Succeeded()); }
diff --git a/services/device/hid/hid_connection.h b/services/device/hid/hid_connection.h index b896b55..46982cf 100644 --- a/services/device/hid/hid_connection.h +++ b/services/device/hid/hid_connection.h
@@ -9,8 +9,8 @@ #include <stdint.h> #include <tuple> -#include "base/callback_forward.h" #include "base/containers/queue.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/sequence_checker.h"
diff --git a/services/device/hid/hid_connection_impl.cc b/services/device/hid/hid_connection_impl.cc index c413123e..467074f 100644 --- a/services/device/hid/hid_connection_impl.cc +++ b/services/device/hid/hid_connection_impl.cc
@@ -4,7 +4,7 @@ #include "services/device/hid/hid_connection_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" namespace device {
diff --git a/services/device/hid/hid_connection_impl_unittest.cc b/services/device/hid/hid_connection_impl_unittest.cc index 25f715fa..0c79812 100644 --- a/services/device/hid/hid_connection_impl_unittest.cc +++ b/services/device/hid/hid_connection_impl_unittest.cc
@@ -4,8 +4,8 @@ #include "services/device/hid/hid_connection_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted_memory.h" #include "build/build_config.h"
diff --git a/services/device/hid/hid_connection_linux.cc b/services/device/hid/hid_connection_linux.cc index fbccc63..1947e28 100644 --- a/services/device/hid/hid_connection_linux.cc +++ b/services/device/hid/hid_connection_linux.cc
@@ -12,8 +12,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/files/file_descriptor_watcher_posix.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "base/posix/eintr_wrapper.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/hid/hid_connection_mac.cc b/services/device/hid/hid_connection_mac.cc index 07d0abb..9951c88 100644 --- a/services/device/hid/hid_connection_mac.cc +++ b/services/device/hid/hid_connection_mac.cc
@@ -4,7 +4,7 @@ #include "services/device/hid/hid_connection_mac.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/mac/foundation_util.h" #include "base/memory/ref_counted_memory.h"
diff --git a/services/device/hid/hid_connection_unittest.cc b/services/device/hid/hid_connection_unittest.cc index e945bee..953baeb 100644 --- a/services/device/hid/hid_connection_unittest.cc +++ b/services/device/hid/hid_connection_unittest.cc
@@ -10,8 +10,8 @@ #include <string> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted_memory.h" #include "base/run_loop.h" #include "base/scoped_observation.h"
diff --git a/services/device/hid/hid_connection_win.cc b/services/device/hid/hid_connection_win.cc index 0f2c557e..b989e91 100644 --- a/services/device/hid/hid_connection_win.cc +++ b/services/device/hid/hid_connection_win.cc
@@ -7,9 +7,9 @@ #include <cstring> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/files/file.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "base/numerics/safe_conversions.h" #include "base/ranges/algorithm.h"
diff --git a/services/device/hid/hid_manager_impl.cc b/services/device/hid/hid_manager_impl.cc index 61a160e..50b506df 100644 --- a/services/device/hid/hid_manager_impl.cc +++ b/services/device/hid/hid_manager_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/lazy_instance.h" #include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/device/hid/hid_manager_impl.h b/services/device/hid/hid_manager_impl.h index 631d639..f8dcd58 100644 --- a/services/device/hid/hid_manager_impl.h +++ b/services/device/hid/hid_manager_impl.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_DEVICE_HID_HID_MANAGER_IMPL_H_ #define SERVICES_DEVICE_HID_HID_MANAGER_IMPL_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h"
diff --git a/services/device/hid/hid_manager_unittest.cc b/services/device/hid/hid_manager_unittest.cc index a3dc5f2..f8481ee6 100644 --- a/services/device/hid/hid_manager_unittest.cc +++ b/services/device/hid/hid_manager_unittest.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h"
diff --git a/services/device/hid/hid_service.cc b/services/device/hid/hid_service.cc index 6bcc5912..23047fb 100644 --- a/services/device/hid/hid_service.cc +++ b/services/device/hid/hid_service.cc
@@ -6,8 +6,8 @@ #include "base/at_exit.h" #include "base/base64.h" -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/hid/hid_service.h b/services/device/hid/hid_service.h index fe0c7e4..82e5284 100644 --- a/services/device/hid/hid_service.h +++ b/services/device/hid/hid_service.h
@@ -10,8 +10,8 @@ #include <string> #include <vector> -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h"
diff --git a/services/device/hid/hid_service_linux.cc b/services/device/hid/hid_service_linux.cc index 41cdc14..4c1fe47f 100644 --- a/services/device/hid/hid_service_linux.cc +++ b/services/device/hid/hid_service_linux.cc
@@ -13,12 +13,12 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/sequence_checker.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/device/hid/hid_service_mac.cc b/services/device/hid/hid_service_mac.cc index f48c666..f9408ebf 100644 --- a/services/device/hid/hid_service_mac.cc +++ b/services/device/hid/hid_service_mac.cc
@@ -11,7 +11,7 @@ #include <string> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/mac/foundation_util.h"
diff --git a/services/device/hid/hid_service_unittest.cc b/services/device/hid/hid_service_unittest.cc index 9733dffc..1e1712d 100644 --- a/services/device/hid/hid_service_unittest.cc +++ b/services/device/hid/hid_service_unittest.cc
@@ -4,7 +4,7 @@ #include "services/device/hid/hid_service.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "services/device/public/mojom/hid.mojom.h"
diff --git a/services/device/hid/hid_service_win.cc b/services/device/hid/hid_service_win.cc index 50b31945..029a6c4 100644 --- a/services/device/hid/hid_service_win.cc +++ b/services/device/hid/hid_service_win.cc
@@ -19,9 +19,9 @@ #include <set> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/free_deleter.h" #include "base/strings/string_split.h"
diff --git a/services/device/hid/input_service_linux.cc b/services/device/hid/input_service_linux.cc index 27b9b6e..9d8b0fd 100644 --- a/services/device/hid/input_service_linux.cc +++ b/services/device/hid/input_service_linux.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/scoped_observation.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/device/hid/input_service_linux_unittest.cc b/services/device/hid/input_service_linux_unittest.cc index 958734e..85efab90 100644 --- a/services/device/hid/input_service_linux_unittest.cc +++ b/services/device/hid/input_service_linux_unittest.cc
@@ -6,8 +6,8 @@ #include <vector> -#include "base/bind.h" #include "base/files/file_descriptor_watcher_posix.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "services/device/hid/input_service_linux.h"
diff --git a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc index bd2c66a..ae82ec0 100644 --- a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc +++ b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
@@ -6,7 +6,7 @@ #include <algorithm> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "dbus/bus.h" #include "dbus/message.h"
diff --git a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h index 12a78be..b185279 100644 --- a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h +++ b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h
@@ -16,7 +16,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "services/device/public/mojom/mtp_file_entry.mojom.h"
diff --git a/services/device/media_transfer_protocol/mtp_device_manager.cc b/services/device/media_transfer_protocol/mtp_device_manager.cc index 1cf9447..cf641785 100644 --- a/services/device/media_transfer_protocol/mtp_device_manager.cc +++ b/services/device/media_transfer_protocol/mtp_device_manager.cc
@@ -4,9 +4,9 @@ #include "services/device/media_transfer_protocol/mtp_device_manager.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "chromeos/ash/components/dbus/dbus_thread_manager.h" #include "dbus/bus.h" #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/services/device/public/cpp/geolocation/geolocation_manager.h b/services/device/public/cpp/geolocation/geolocation_manager.h index 90b3ae76..190f8b99 100644 --- a/services/device/public/cpp/geolocation/geolocation_manager.h +++ b/services/device/public/cpp/geolocation/geolocation_manager.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GEOLOCATION_GEOLOCATION_MANAGER_H_ #define SERVICES_DEVICE_PUBLIC_CPP_GEOLOCATION_GEOLOCATION_MANAGER_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/observer_list_threadsafe.h" #include "services/device/public/cpp/geolocation/location_system_permission_status.h"
diff --git a/services/device/public/cpp/geolocation/location_provider.h b/services/device/public/cpp/geolocation/location_provider.h index ed13d2f6..82daac4c 100644 --- a/services/device/public/cpp/geolocation/location_provider.h +++ b/services/device/public/cpp/geolocation/location_provider.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GEOLOCATION_LOCATION_PROVIDER_H_ #define SERVICES_DEVICE_PUBLIC_CPP_GEOLOCATION_LOCATION_PROVIDER_H_ -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "services/device/public/mojom/geoposition.mojom.h" namespace device {
diff --git a/services/device/public/cpp/power_monitor/power_monitor_broadcast_source.cc b/services/device/public/cpp/power_monitor/power_monitor_broadcast_source.cc index 5847d34..98a7874 100644 --- a/services/device/public/cpp/power_monitor/power_monitor_broadcast_source.cc +++ b/services/device/public/cpp/power_monitor/power_monitor_broadcast_source.cc
@@ -4,7 +4,7 @@ #include "services/device/public/cpp/power_monitor/power_monitor_broadcast_source.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/device/public/cpp/test/fake_serial_port_manager.cc b/services/device/public/cpp/test/fake_serial_port_manager.cc index 9c1dd5f..5dc73942 100644 --- a/services/device/public/cpp/test/fake_serial_port_manager.cc +++ b/services/device/public/cpp/test/fake_serial_port_manager.cc
@@ -7,7 +7,7 @@ #include <utility> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/device/public/cpp/test/fake_usb_device.cc b/services/device/public/cpp/test/fake_usb_device.cc index 354f022..0484f87 100644 --- a/services/device/public/cpp/test/fake_usb_device.cc +++ b/services/device/public/cpp/test/fake_usb_device.cc
@@ -8,10 +8,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/ranges/algorithm.h" #include "services/device/public/cpp/test/mock_usb_mojo_device.h"
diff --git a/services/device/public/cpp/test/scoped_geolocation_overrider.cc b/services/device/public/cpp/test/scoped_geolocation_overrider.cc index 7836d8b..150d79e 100644 --- a/services/device/public/cpp/test/scoped_geolocation_overrider.cc +++ b/services/device/public/cpp/test/scoped_geolocation_overrider.cc
@@ -4,8 +4,8 @@ #include <vector> -#include "base/callback_helpers.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/device/public/cpp/test/scoped_geolocation_overrider.h b/services/device/public/cpp/test/scoped_geolocation_overrider.h index a00d2b5..722ae00 100644 --- a/services/device/public/cpp/test/scoped_geolocation_overrider.h +++ b/services/device/public/cpp/test/scoped_geolocation_overrider.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_DEVICE_PUBLIC_CPP_TEST_SCOPED_GEOLOCATION_OVERRIDER_H_ #define SERVICES_DEVICE_PUBLIC_CPP_TEST_SCOPED_GEOLOCATION_OVERRIDER_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/device/public/mojom/geoposition.mojom.h" namespace device {
diff --git a/services/device/public/cpp/test/scoped_nfc_overrider.cc b/services/device/public/cpp/test/scoped_nfc_overrider.cc index 3e85cb7..d76728c 100644 --- a/services/device/public/cpp/test/scoped_nfc_overrider.cc +++ b/services/device/public/cpp/test/scoped_nfc_overrider.cc
@@ -5,7 +5,7 @@ #include "services/device/public/cpp/test/scoped_nfc_overrider.h" #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/device/device_service.h" #include "services/device/public/mojom/nfc.mojom.h"
diff --git a/services/device/public/cpp/test/scoped_pressure_manager_overrider.cc b/services/device/public/cpp/test/scoped_pressure_manager_overrider.cc index d4d2269..0c5aff2 100644 --- a/services/device/public/cpp/test/scoped_pressure_manager_overrider.cc +++ b/services/device/public/cpp/test/scoped_pressure_manager_overrider.cc
@@ -4,7 +4,7 @@ #include "services/device/public/cpp/test/scoped_pressure_manager_overrider.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "services/device/device_service.h" #include "services/device/public/mojom/pressure_update.mojom.h"
diff --git a/services/device/public/cpp/test/test_wake_lock_provider.cc b/services/device/public/cpp/test/test_wake_lock_provider.cc index 10006e3..0c67baf 100644 --- a/services/device/public/cpp/test/test_wake_lock_provider.cc +++ b/services/device/public/cpp/test/test_wake_lock_provider.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/services/device/public/cpp/test/test_wake_lock_provider.h b/services/device/public/cpp/test/test_wake_lock_provider.h index 91903ba0..b866715 100644 --- a/services/device/public/cpp/test/test_wake_lock_provider.h +++ b/services/device/public/cpp/test/test_wake_lock_provider.h
@@ -10,7 +10,7 @@ #include <set> #include <string> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/services/device/serial/bluetooth_serial_port_impl.cc b/services/device/serial/bluetooth_serial_port_impl.cc index 9f5c035..ba1d63f 100644 --- a/services/device/serial/bluetooth_serial_port_impl.cc +++ b/services/device/serial/bluetooth_serial_port_impl.cc
@@ -8,9 +8,9 @@ #include <algorithm> -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "net/base/io_buffer.h" #include "services/device/public/cpp/bluetooth/bluetooth_utils.h" #include "services/device/public/cpp/serial/serial_switches.h"
diff --git a/services/device/serial/serial_io_handler.cc b/services/device/serial/serial_io_handler.cc index a6a67da..7d2099e 100644 --- a/services/device/serial/serial_io_handler.cc +++ b/services/device/serial/serial_io_handler.cc
@@ -7,9 +7,9 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/strings/string_util.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/serial/serial_io_handler.h b/services/device/serial/serial_io_handler.h index c1463b9..4bedfc3 100644 --- a/services/device/serial/serial_io_handler.h +++ b/services/device/serial/serial_io_handler.h
@@ -10,8 +10,8 @@ #include <memory> #include <string> -#include "base/callback.h" #include "base/files/file.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/sequence_checker.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/serial/serial_io_handler_posix.cc b/services/device/serial/serial_io_handler_posix.cc index 21535df..4580013a 100644 --- a/services/device/serial/serial_io_handler_posix.cc +++ b/services/device/serial/serial_io_handler_posix.cc
@@ -10,8 +10,8 @@ #include <algorithm> #include <utility> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/posix/eintr_wrapper.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h"
diff --git a/services/device/serial/serial_io_handler_win.cc b/services/device/serial/serial_io_handler_win.cc index c3134b59..1dd9b3d 100644 --- a/services/device/serial/serial_io_handler_win.cc +++ b/services/device/serial/serial_io_handler_win.cc
@@ -9,7 +9,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/sequence_checker.h" #include "base/task/current_thread.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/serial/serial_port_impl.cc b/services/device/serial/serial_port_impl.cc index a7971b7..885c3db 100644 --- a/services/device/serial/serial_port_impl.cc +++ b/services/device/serial/serial_port_impl.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "services/device/serial/serial_io_handler.h"
diff --git a/services/device/serial/serial_port_manager_impl.cc b/services/device/serial/serial_port_manager_impl.cc index 68196c6a..70d7c32 100644 --- a/services/device/serial/serial_port_manager_impl.cc +++ b/services/device/serial/serial_port_manager_impl.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "device/bluetooth/bluetooth_adapter_factory.h"
diff --git a/services/device/serial/serial_port_manager_impl_unittest.cc b/services/device/serial/serial_port_manager_impl_unittest.cc index 8722fc4..2f06a0c 100644 --- a/services/device/serial/serial_port_manager_impl_unittest.cc +++ b/services/device/serial/serial_port_manager_impl_unittest.cc
@@ -9,8 +9,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h"
diff --git a/services/device/test/usb_test_gadget_impl.cc b/services/device/test/usb_test_gadget_impl.cc index 9e8ff19a..b3da77b6 100644 --- a/services/device/test/usb_test_gadget_impl.cc +++ b/services/device/test/usb_test_gadget_impl.cc
@@ -9,11 +9,11 @@ #include <string> #include <vector> -#include "base/bind.h" #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/files/file.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/time_zone_monitor/time_zone_monitor_fuchsia.cc b/services/device/time_zone_monitor/time_zone_monitor_fuchsia.cc index b731545..712676a 100644 --- a/services/device/time_zone_monitor/time_zone_monitor_fuchsia.cc +++ b/services/device/time_zone_monitor/time_zone_monitor_fuchsia.cc
@@ -6,9 +6,9 @@ #include <memory> -#include "base/bind.h" #include "base/fuchsia/fuchsia_logging.h" #include "base/fuchsia/intl_profile_watcher.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/strings/string_piece.h"
diff --git a/services/device/time_zone_monitor/time_zone_monitor_linux.cc b/services/device/time_zone_monitor/time_zone_monitor_linux.cc index 4cb93230..5c39626d 100644 --- a/services/device/time_zone_monitor/time_zone_monitor_linux.cc +++ b/services/device/time_zone_monitor/time_zone_monitor_linux.cc
@@ -10,9 +10,9 @@ #include <memory> #include <vector> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_path_watcher.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/time_zone_monitor/time_zone_monitor_win.cc b/services/device/time_zone_monitor/time_zone_monitor_win.cc index 2f2c5c7..3163be2 100644 --- a/services/device/time_zone_monitor/time_zone_monitor_win.cc +++ b/services/device/time_zone_monitor/time_zone_monitor_win.cc
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/weak_ptr.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/usb/fake_usb_device_handle.cc b/services/device/usb/fake_usb_device_handle.cc index 386e1e3..8cf522b 100644 --- a/services/device/usb/fake_usb_device_handle.cc +++ b/services/device/usb/fake_usb_device_handle.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted_memory.h" #include "base/notreached.h" #include "services/device/usb/usb_device.h"
diff --git a/services/device/usb/mojo/device_impl.cc b/services/device/usb/mojo/device_impl.cc index a84c15e..04cd5ef 100644 --- a/services/device/usb/mojo/device_impl.cc +++ b/services/device/usb/mojo/device_impl.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted_memory.h" #include "base/ranges/algorithm.h"
diff --git a/services/device/usb/mojo/device_impl.h b/services/device/usb/mojo/device_impl.h index dfd016f..5600e44 100644 --- a/services/device/usb/mojo/device_impl.h +++ b/services/device/usb/mojo/device_impl.h
@@ -8,9 +8,9 @@ #include <stdint.h> #include <vector> -#include "base/callback_forward.h" #include "base/containers/flat_set.h" #include "base/containers/span.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h"
diff --git a/services/device/usb/mojo/device_impl_unittest.cc b/services/device/usb/mojo/device_impl_unittest.cc index 2c8589e1..12268de 100644 --- a/services/device/usb/mojo/device_impl_unittest.cc +++ b/services/device/usb/mojo/device_impl_unittest.cc
@@ -15,10 +15,10 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/containers/queue.h" #include "base/containers/span.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "base/ranges/algorithm.h" #include "base/run_loop.h"
diff --git a/services/device/usb/mojo/device_manager_impl.cc b/services/device/usb/mojo/device_manager_impl.cc index d460769d..43456a0 100644 --- a/services/device/usb/mojo/device_manager_impl.cc +++ b/services/device/usb/mojo/device_manager_impl.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/associated_remote.h"
diff --git a/services/device/usb/mojo/device_manager_impl.h b/services/device/usb/mojo/device_manager_impl.h index 795e125..0d41fd0 100644 --- a/services/device/usb/mojo/device_manager_impl.h +++ b/services/device/usb/mojo/device_manager_impl.h
@@ -11,7 +11,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h"
diff --git a/services/device/usb/mojo/device_manager_impl_unittest.cc b/services/device/usb/mojo/device_manager_impl_unittest.cc index ef29edef..f7549c0e 100644 --- a/services/device/usb/mojo/device_manager_impl_unittest.cc +++ b/services/device/usb/mojo/device_manager_impl_unittest.cc
@@ -12,7 +12,7 @@ #include <utility> #include "base/barrier_closure.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/device/usb/usb_descriptors.cc b/services/device/usb/usb_descriptors.cc index cff600d..f5f5e8ed 100644 --- a/services/device/usb/usb_descriptors.cc +++ b/services/device/usb/usb_descriptors.cc
@@ -13,7 +13,7 @@ #include <vector> #include "base/barrier_closure.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "services/device/public/cpp/usb/usb_utils.h" #include "services/device/usb/usb_device_handle.h"
diff --git a/services/device/usb/usb_descriptors.h b/services/device/usb/usb_descriptors.h index 4a78fb7..bac98eb 100644 --- a/services/device/usb/usb_descriptors.h +++ b/services/device/usb/usb_descriptors.h
@@ -12,7 +12,7 @@ #include <string> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "services/device/public/mojom/usb_device.mojom.h"
diff --git a/services/device/usb/usb_descriptors_unittest.cc b/services/device/usb/usb_descriptors_unittest.cc index 5a31534b..b5b36d7 100644 --- a/services/device/usb/usb_descriptors_unittest.cc +++ b/services/device/usb/usb_descriptors_unittest.cc
@@ -11,7 +11,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/utf_string_conversions.h" #include "services/device/usb/mock_usb_device_handle.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/services/device/usb/usb_device.h b/services/device/usb/usb_device.h index 85768ba..9a26fac 100644 --- a/services/device/usb/usb_device.h +++ b/services/device/usb/usb_device.h
@@ -12,7 +12,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/observer_list.h" #include "base/strings/string_util.h"
diff --git a/services/device/usb/usb_device_android.cc b/services/device/usb/usb_device_android.cc index 1d921149..33fd59c 100644 --- a/services/device/usb/usb_device_android.cc +++ b/services/device/usb/usb_device_android.cc
@@ -10,7 +10,7 @@ #include "base/android/build_info.h" #include "base/android/jni_string.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "services/device/usb/jni_headers/ChromeUsbDevice_jni.h"
diff --git a/services/device/usb/usb_device_handle.h b/services/device/usb/usb_device_handle.h index 1cfa6727..90844fe 100644 --- a/services/device/usb/usb_device_handle.h +++ b/services/device/usb/usb_device_handle.h
@@ -11,7 +11,7 @@ #include <map> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "services/device/public/mojom/usb_device.mojom.h" #include "services/device/usb/usb_descriptors.h"
diff --git a/services/device/usb/usb_device_handle_android.cc b/services/device/usb/usb_device_handle_android.cc index 9a3420f..e9721125a 100644 --- a/services/device/usb/usb_device_handle_android.cc +++ b/services/device/usb/usb_device_handle_android.cc
@@ -4,7 +4,7 @@ #include "services/device/usb/usb_device_handle_android.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "services/device/usb/jni_headers/ChromeUsbConnection_jni.h" #include "services/device/usb/usb_device.h"
diff --git a/services/device/usb/usb_device_handle_impl.cc b/services/device/usb/usb_device_handle_impl.cc index c9241de..fcdf881 100644 --- a/services/device/usb/usb_device_handle_impl.cc +++ b/services/device/usb/usb_device_handle_impl.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ref_counted_memory.h" #include "base/sequence_checker.h"
diff --git a/services/device/usb/usb_device_handle_impl.h b/services/device/usb/usb_device_handle_impl.h index a3e6afd..738c0de7 100644 --- a/services/device/usb/usb_device_handle_impl.h +++ b/services/device/usb/usb_device_handle_impl.h
@@ -13,7 +13,7 @@ #include <set> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/sequence_checker.h"
diff --git a/services/device/usb/usb_device_handle_unittest.cc b/services/device/usb/usb_device_handle_unittest.cc index 04a52d0f..3576b69 100644 --- a/services/device/usb/usb_device_handle_unittest.cc +++ b/services/device/usb/usb_device_handle_unittest.cc
@@ -8,7 +8,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/services/device/usb/usb_device_handle_usbfs.cc b/services/device/usb/usb_device_handle_usbfs.cc index 843bdaf1..3657aa49 100644 --- a/services/device/usb/usb_device_handle_usbfs.cc +++ b/services/device/usb/usb_device_handle_usbfs.cc
@@ -13,10 +13,10 @@ #include <tuple> #include <utility> -#include "base/bind.h" #include "base/cancelable_callback.h" #include "base/containers/contains.h" #include "base/files/file_descriptor_watcher_posix.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ref_counted_memory.h" #include "base/numerics/checked_math.h"
diff --git a/services/device/usb/usb_device_handle_win.cc b/services/device/usb/usb_device_handle_win.cc index e046eda..8aa79bf 100644 --- a/services/device/usb/usb_device_handle_win.cc +++ b/services/device/usb/usb_device_handle_win.cc
@@ -17,9 +17,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted_memory.h"
diff --git a/services/device/usb/usb_device_handle_win.h b/services/device/usb/usb_device_handle_win.h index ecbabd4..cd8381d 100644 --- a/services/device/usb/usb_device_handle_win.h +++ b/services/device/usb/usb_device_handle_win.h
@@ -10,7 +10,7 @@ #include <memory> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h"
diff --git a/services/device/usb/usb_device_impl.cc b/services/device/usb/usb_device_impl.cc index d9c7930..025a122f 100644 --- a/services/device/usb/usb_device_impl.cc +++ b/services/device/usb/usb_device_impl.cc
@@ -9,7 +9,7 @@ #include <algorithm> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/posix/eintr_wrapper.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/usb/usb_device_impl.h b/services/device/usb/usb_device_impl.h index 6c676f4..5a5a8bb 100644 --- a/services/device/usb/usb_device_impl.h +++ b/services/device/usb/usb_device_impl.h
@@ -11,8 +11,8 @@ #include <string> #include <utility> -#include "base/callback.h" #include "base/files/scoped_file.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "build/build_config.h" #include "services/device/usb/scoped_libusb_device_ref.h"
diff --git a/services/device/usb/usb_device_linux.cc b/services/device/usb/usb_device_linux.cc index 4bc092b..a9208c7 100644 --- a/services/device/usb/usb_device_linux.cc +++ b/services/device/usb/usb_device_linux.cc
@@ -9,9 +9,9 @@ #include <algorithm> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/posix/eintr_wrapper.h" #include "base/strings/utf_string_conversions.h"
diff --git a/services/device/usb/usb_device_win.cc b/services/device/usb/usb_device_win.cc index d9ef58b..ca4eb1f9 100644 --- a/services/device/usb/usb_device_win.cc +++ b/services/device/usb/usb_device_win.cc
@@ -8,7 +8,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/strings/string_util.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/device/usb/usb_service.cc b/services/device/usb/usb_service.cc index 3d8e457a..031e06f 100644 --- a/services/device/usb/usb_service.cc +++ b/services/device/usb/usb_service.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/observer_list.h"
diff --git a/services/device/usb/usb_service.h b/services/device/usb/usb_service.h index 5269db1..1fddf4e 100644 --- a/services/device/usb/usb_service.h +++ b/services/device/usb/usb_service.h
@@ -11,8 +11,8 @@ #include <unordered_set> #include <vector> -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/observer_list.h" #include "base/sequence_checker.h"
diff --git a/services/device/usb/usb_service_android.cc b/services/device/usb/usb_service_android.cc index 028b522..14a0e3d 100644 --- a/services/device/usb/usb_service_android.cc +++ b/services/device/usb/usb_service_android.cc
@@ -7,8 +7,8 @@ #include <string> #include <vector> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "components/device_event_log/device_event_log.h"
diff --git a/services/device/usb/usb_service_impl.cc b/services/device/usb/usb_service_impl.cc index 9acfb68..99456d1 100644 --- a/services/device/usb/usb_service_impl.cc +++ b/services/device/usb/usb_service_impl.cc
@@ -12,9 +12,9 @@ #include <utility> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ref_counted_memory.h" #include "base/memory/weak_ptr.h"
diff --git a/services/device/usb/usb_service_linux.cc b/services/device/usb/usb_service_linux.cc index f52eb264..a089651 100644 --- a/services/device/usb/usb_service_linux.cc +++ b/services/device/usb/usb_service_linux.cc
@@ -9,11 +9,11 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/usb/usb_service_unittest.cc b/services/device/usb/usb_service_unittest.cc index 6038554..45fb218 100644 --- a/services/device/usb/usb_service_unittest.cc +++ b/services/device/usb/usb_service_unittest.cc
@@ -4,7 +4,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/test/scoped_feature_list.h"
diff --git a/services/device/usb/usb_service_win.cc b/services/device/usb/usb_service_win.cc index 95172961..17e34dcab 100644 --- a/services/device/usb/usb_service_win.cc +++ b/services/device/usb/usb_service_win.cc
@@ -15,8 +15,8 @@ #include <stdint.h> #include <usbiodef.h> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/free_deleter.h" #include "base/memory/ptr_util.h"
diff --git a/services/device/usb/usb_string_read_fuzzer.cc b/services/device/usb/usb_string_read_fuzzer.cc index f469cf8..02dc4ae5 100644 --- a/services/device/usb/usb_string_read_fuzzer.cc +++ b/services/device/usb/usb_string_read_fuzzer.cc
@@ -7,7 +7,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/utf_string_conversions.h" #include "services/device/usb/fake_usb_device_handle.h" #include "services/device/usb/usb_descriptors.h"
diff --git a/services/device/usb/webusb_descriptors.cc b/services/device/usb/webusb_descriptors.cc index c0e41bf..6ced072 100644 --- a/services/device/usb/webusb_descriptors.cc +++ b/services/device/usb/webusb_descriptors.cc
@@ -6,9 +6,9 @@ #include <limits> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/span.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/ref_counted_memory.h" #include "components/device_event_log/device_event_log.h"
diff --git a/services/device/usb/webusb_descriptors.h b/services/device/usb/webusb_descriptors.h index 480f1d1..e3c4ea0c 100644 --- a/services/device/usb/webusb_descriptors.h +++ b/services/device/usb/webusb_descriptors.h
@@ -7,8 +7,8 @@ #include <stdint.h> -#include "base/callback_forward.h" #include "base/containers/span.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/services/device/usb/webusb_descriptors_fuzzer.cc b/services/device/usb/webusb_descriptors_fuzzer.cc index 2461d8e5..6eca4ed 100644 --- a/services/device/usb/webusb_descriptors_fuzzer.cc +++ b/services/device/usb/webusb_descriptors_fuzzer.cc
@@ -6,7 +6,7 @@ #include <stdint.h> #include "base/at_exit.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/i18n/icu_util.h" #include "services/device/usb/fake_usb_device_handle.h" #include "services/device/usb/webusb_descriptors.h"
diff --git a/services/device/usb/webusb_descriptors_unittest.cc b/services/device/usb/webusb_descriptors_unittest.cc index 98f6e8e5..e338842 100644 --- a/services/device/usb/webusb_descriptors_unittest.cc +++ b/services/device/usb/webusb_descriptors_unittest.cc
@@ -9,7 +9,7 @@ #include <algorithm> #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/device/usb/mock_usb_device_handle.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/services/device/wake_lock/power_save_blocker/power_save_blocker_android.cc b/services/device/wake_lock/power_save_blocker/power_save_blocker_android.cc index 9ab636c..c4d774d 100644 --- a/services/device/wake_lock/power_save_blocker/power_save_blocker_android.cc +++ b/services/device/wake_lock/power_save_blocker/power_save_blocker_android.cc
@@ -5,8 +5,8 @@ #include "services/device/wake_lock/power_save_blocker/power_save_blocker.h" #include "base/android/jni_android.h" -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/device/wake_lock/power_save_blocker/power_save_blocker_ash.cc b/services/device/wake_lock/power_save_blocker/power_save_blocker_ash.cc index 1c87df7..111b062 100644 --- a/services/device/wake_lock/power_save_blocker/power_save_blocker_ash.cc +++ b/services/device/wake_lock/power_save_blocker/power_save_blocker_ash.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/ref_counted.h" #include "base/notreached.h"
diff --git a/services/device/wake_lock/power_save_blocker/power_save_blocker_linux.cc b/services/device/wake_lock/power_save_blocker/power_save_blocker_linux.cc index 4ebbba6..21c117c 100644 --- a/services/device/wake_lock/power_save_blocker/power_save_blocker_linux.cc +++ b/services/device/wake_lock/power_save_blocker/power_save_blocker_linux.cc
@@ -8,10 +8,10 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ref_counted.h"
diff --git a/services/device/wake_lock/power_save_blocker/power_save_blocker_mac.cc b/services/device/wake_lock/power_save_blocker/power_save_blocker_mac.cc index aeda6e5..b7c6f8a16 100644 --- a/services/device/wake_lock/power_save_blocker/power_save_blocker_mac.cc +++ b/services/device/wake_lock/power_save_blocker/power_save_blocker_mac.cc
@@ -6,7 +6,7 @@ #include <IOKit/pwr_mgt/IOPMLib.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/lazy_instance.h" #include "base/logging.h" #include "base/mac/scoped_cftyperef.h"
diff --git a/services/device/wake_lock/power_save_blocker/power_save_blocker_win.cc b/services/device/wake_lock/power_save_blocker/power_save_blocker_win.cc index b3ab7d7..93d2554 100644 --- a/services/device/wake_lock/power_save_blocker/power_save_blocker_win.cc +++ b/services/device/wake_lock/power_save_blocker/power_save_blocker_win.cc
@@ -6,8 +6,8 @@ #include <windows.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" @@ -19,11 +19,6 @@ HANDLE CreatePowerRequest(POWER_REQUEST_TYPE type, const std::string& description) { - if (type == PowerRequestExecutionRequired && - base::win::GetVersion() == base::win::Version::WIN7) { - return INVALID_HANDLE_VALUE; - } - std::wstring wide_description = base::ASCIIToWide(description); REASON_CONTEXT context = {0}; context.Version = POWER_REQUEST_CONTEXT_VERSION; @@ -48,11 +43,6 @@ if (!request_handle.IsValid()) return; - if (type == PowerRequestExecutionRequired && - base::win::GetVersion() == base::win::Version::WIN7) { - return; - } - BOOL success = ::PowerClearRequest(request_handle.Get(), type); DCHECK(success); } @@ -120,9 +110,6 @@ type_ == mojom::WakeLockType::kPreventDisplaySleepAllowDimming) return PowerRequestDisplayRequired; - if (base::win::GetVersion() == base::win::Version::WIN7) - return PowerRequestSystemRequired; - return PowerRequestExecutionRequired; }
diff --git a/services/image_annotation/annotator.cc b/services/image_annotation/annotator.cc index 569bd77..e336fe2 100644 --- a/services/image_annotation/annotator.cc +++ b/services/image_annotation/annotator.cc
@@ -9,10 +9,10 @@ #include <utility> #include "base/base64.h" -#include "base/bind.h" #include "base/containers/contains.h" #include "base/containers/cxx20_erase.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/location.h"
diff --git a/services/image_annotation/annotator_unittest.cc b/services/image_annotation/annotator_unittest.cc index e5cded0..5d760af 100644 --- a/services/image_annotation/annotator_unittest.cc +++ b/services/image_annotation/annotator_unittest.cc
@@ -6,9 +6,9 @@ #include <cstring> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/strings/stringprintf.h"
diff --git a/services/image_annotation/image_annotation_service.cc b/services/image_annotation/image_annotation_service.cc index 70fca6d..2a6a6ea79 100644 --- a/services/image_annotation/image_annotation_service.cc +++ b/services/image_annotation/image_annotation_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "base/time/time.h" #include "url/gurl.h"
diff --git a/services/image_annotation/public/cpp/image_processor.cc b/services/image_annotation/public/cpp/image_processor.cc index 3a562c0..b27ecb4 100644 --- a/services/image_annotation/public/cpp/image_processor.cc +++ b/services/image_annotation/public/cpp/image_processor.cc
@@ -4,7 +4,7 @@ #include "services/image_annotation/public/cpp/image_processor.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool.h" #include "services/image_annotation/image_annotation_metrics.h"
diff --git a/services/image_annotation/public/cpp/image_processor.h b/services/image_annotation/public/cpp/image_processor.h index f5b166a..5cfc35de 100644 --- a/services/image_annotation/public/cpp/image_processor.h +++ b/services/image_annotation/public/cpp/image_processor.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_IMAGE_ANNOTATION_PUBLIC_CPP_IMAGE_PROCESSOR_H_ #define SERVICES_IMAGE_ANNOTATION_PUBLIC_CPP_IMAGE_PROCESSOR_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/image_annotation/public/cpp/image_processor_unittest.cc b/services/image_annotation/public/cpp/image_processor_unittest.cc index b600a95..f8b99c9 100644 --- a/services/image_annotation/public/cpp/image_processor_unittest.cc +++ b/services/image_annotation/public/cpp/image_processor_unittest.cc
@@ -7,7 +7,7 @@ #include <cmath> #include <limits> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "services/image_annotation/image_annotation_metrics.h"
diff --git a/services/media_session/audio_focus_manager.cc b/services/media_session/audio_focus_manager.cc index 01360fb2..8e09d8f 100644 --- a/services/media_session/audio_focus_manager.cc +++ b/services/media_session/audio_focus_manager.cc
@@ -7,9 +7,9 @@ #include <iterator> #include <utility> -#include "base/bind.h" #include "base/containers/adapters.h" #include "base/containers/cxx20_erase.h" +#include "base/functional/bind.h" #include "base/power_monitor/power_monitor.h" #include "base/power_monitor/power_observer.h" #include "base/unguessable_token.h"
diff --git a/services/media_session/audio_focus_manager_unittest.cc b/services/media_session/audio_focus_manager_unittest.cc index 6eae723..590a7c0 100644 --- a/services/media_session/audio_focus_manager_unittest.cc +++ b/services/media_session/audio_focus_manager_unittest.cc
@@ -8,9 +8,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/adapters.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/ranges/algorithm.h" #include "base/run_loop.h" #include "base/test/power_monitor_test.h"
diff --git a/services/media_session/audio_focus_request.h b/services/media_session/audio_focus_request.h index 7035c074..f5ba664 100644 --- a/services/media_session/audio_focus_request.h +++ b/services/media_session/audio_focus_request.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_MEDIA_SESSION_AUDIO_FOCUS_REQUEST_H_ #define SERVICES_MEDIA_SESSION_AUDIO_FOCUS_REQUEST_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/media_session/media_session_service_impl.cc b/services/media_session/media_session_service_impl.cc index 90cc548..580e713 100644 --- a/services/media_session/media_session_service_impl.cc +++ b/services/media_session/media_session_service_impl.cc
@@ -4,7 +4,7 @@ #include "services/media_session/media_session_service_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/media_session/audio_focus_manager.h" namespace media_session {
diff --git a/services/media_session/public/cpp/test/audio_focus_test_util.cc b/services/media_session/public/cpp/test/audio_focus_test_util.cc index 815e1b5..53c011fc 100644 --- a/services/media_session/public/cpp/test/audio_focus_test_util.cc +++ b/services/media_session/public/cpp/test/audio_focus_test_util.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "services/media_session/public/cpp/test/audio_focus_test_util.h" -#include "base/bind.h" +#include "base/functional/bind.h" namespace media_session { namespace test {
diff --git a/services/media_session/public/cpp/test/mock_media_session.cc b/services/media_session/public/cpp/test/mock_media_session.cc index a2153b2..66b020e 100644 --- a/services/media_session/public/cpp/test/mock_media_session.cc +++ b/services/media_session/public/cpp/test/mock_media_session.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" namespace media_session {
diff --git a/services/metrics/public/cpp/delegating_ukm_recorder.cc b/services/metrics/public/cpp/delegating_ukm_recorder.cc index f97d5c9..351c6ae 100644 --- a/services/metrics/public/cpp/delegating_ukm_recorder.cc +++ b/services/metrics/public/cpp/delegating_ukm_recorder.cc
@@ -5,7 +5,7 @@ #include "services/metrics/public/cpp/delegating_ukm_recorder.h" #include "services/metrics/public/cpp/ukm_source_id.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/lazy_instance.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/public/cpp/ukm_recorder.cc index 66c6f10..fc0d5aee3 100644 --- a/services/metrics/public/cpp/ukm_recorder.cc +++ b/services/metrics/public/cpp/ukm_recorder.cc
@@ -4,8 +4,8 @@ #include "services/metrics/public/cpp/ukm_recorder.h" -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "build/build_config.h" #include "services/metrics/public/cpp/delegating_ukm_recorder.h" #include "services/metrics/public/cpp/ukm_entry_builder.h"
diff --git a/services/metrics/public/cpp/ukm_recorder.h b/services/metrics/public/cpp/ukm_recorder.h index ebd9d628..3c0e235 100644 --- a/services/metrics/public/cpp/ukm_recorder.h +++ b/services/metrics/public/cpp/ukm_recorder.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_METRICS_PUBLIC_CPP_UKM_RECORDER_H_ #define SERVICES_METRICS_PUBLIC_CPP_UKM_RECORDER_H_ -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/threading/thread_checker.h" #include "base/types/pass_key.h" #include "services/metrics/public/cpp/metrics_export.h"
diff --git a/services/network/BUILD.gn b/services/network/BUILD.gn index 7551a96..5c4cfc60 100644 --- a/services/network/BUILD.gn +++ b/services/network/BUILD.gn
@@ -267,6 +267,7 @@ "//mojo/public/cpp/system", "//net", "//net:extras", + "//services/network/attribution", "//services/network/first_party_sets:first_party_sets_manager", "//services/network/public/cpp", "//services/network/public/cpp:crash_keys", @@ -473,6 +474,8 @@ "//net:simple_quic_tools", "//net:test_support", "//net/http:transport_security_state_unittest_data_default", + "//services/network/attribution", + "//services/network/attribution:tests", "//services/network/first_party_sets:first_party_sets_manager", "//services/network/first_party_sets:tests", "//services/network/public/cpp",
diff --git a/services/network/attribution/BUILD.gn b/services/network/attribution/BUILD.gn new file mode 100644 index 0000000..1076b25 --- /dev/null +++ b/services/network/attribution/BUILD.gn
@@ -0,0 +1,47 @@ +# 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. + +source_set("attribution") { + visibility = [ + ":*", + "//services/network:network_service", + "//services/network:test_support", + "//services/network:tests", + ] + defines = [ "IS_NETWORK_SERVICE_IMPL" ] + sources = [ + "attribution_attestation_mediator.cc", + "attribution_attestation_mediator.h", + ] + deps = [ + "//base", + "//net", + "//services/network/public/cpp", + "//services/network/public/mojom", + "//services/network/trust_tokens", + "//url", + ] +} + +source_set("tests") { + testonly = true + + defines = [ "IS_NETWORK_SERVICE_IMPL" ] + + sources = [ + "attribution_attestation_mediator_unittest.cc", + "attribution_test_utils.cc", + "attribution_test_utils.h", + ] + + deps = [ + ":attribution", + "//base", + "//base/test:test_support", + "//services/network/public/mojom", + "//services/network/trust_tokens", + "//testing/gtest", + "//url", + ] +}
diff --git a/services/network/attribution/DIR_METADATA b/services/network/attribution/DIR_METADATA new file mode 100644 index 0000000..0598e0e --- /dev/null +++ b/services/network/attribution/DIR_METADATA
@@ -0,0 +1 @@ +mixins: "//content/browser/attribution_reporting/COMMON_METADATA"
diff --git a/services/network/attribution/OWNERS b/services/network/attribution/OWNERS new file mode 100644 index 0000000..9f8d221 --- /dev/null +++ b/services/network/attribution/OWNERS
@@ -0,0 +1,4 @@ +anthonygarant@chromium.org +csharrison@chromium.org + +file://content/browser/attribution_reporting/OWNERS
diff --git a/services/network/attribution/README.md b/services/network/attribution/README.md new file mode 100644 index 0000000..2418036 --- /dev/null +++ b/services/network/attribution/README.md
@@ -0,0 +1,13 @@ +# Attribution + +`//services/network/attribution` contains logic supporting the [Attribution +Reporting API](https://github.com/WICG/attribution-reporting-api) in the network +service. Specific use cases are detailed below. + +## Attribution Attestation + +The directory contains logic that orchestrates [Trigger +Attestation](https://github.com/WICG/attribution-reporting-api/blob/main/trigger_attestation.md). +Hooked in the url_loader when applicable, it adds and parse specific headers +which allow reporting origins to submit a token attesting to the veracity of +a trigger registration.
diff --git a/services/network/attribution/attribution_attestation_mediator.cc b/services/network/attribution/attribution_attestation_mediator.cc new file mode 100644 index 0000000..5bdd3b4 --- /dev/null +++ b/services/network/attribution/attribution_attestation_mediator.cc
@@ -0,0 +1,175 @@ +// 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. + +#include "services/network/attribution/attribution_attestation_mediator.h" + +#include <utility> + +#include "base/bind.h" +#include "base/check.h" +#include "base/task/thread_pool.h" +#include "net/http/http_request_headers.h" +#include "net/http/http_response_headers.h" +#include "services/network/public/cpp/trust_token_http_headers.h" +#include "services/network/trust_tokens/suitable_trust_token_origin.h" +#include "services/network/trust_tokens/trust_token_key_commitment_getter.h" +#include "services/network/trust_tokens/types.h" +#include "url/origin.h" + +namespace network { + +using Cryptographer = AttributionAttestationMediator::Cryptographer; + +struct AttributionAttestationMediator::CryptographerAndBlindMessage { + std::unique_ptr<Cryptographer> cryptographer; + absl::optional<std::string> blind_message; +}; + +struct AttributionAttestationMediator::CryptographerAndToken { + std::unique_ptr<Cryptographer> cryptographer; + absl::optional<std::string> token; +}; + +AttributionAttestationMediator::AttributionAttestationMediator( + const TrustTokenKeyCommitmentGetter* key_commitment_getter, + std::unique_ptr<Cryptographer> cryptographer) + : key_commitment_getter_(std::move(key_commitment_getter)), + cryptographer_(std::move(cryptographer)) { + DCHECK(key_commitment_getter_); + DCHECK(cryptographer_); +} + +AttributionAttestationMediator::~AttributionAttestationMediator() = default; + +void AttributionAttestationMediator::GetHeadersForAttestation( + const GURL& url, + const std::string& message, + base::OnceCallback<void(net::HttpRequestHeaders)> done) { + DCHECK(!message_); + message_ = message; + + absl::optional<SuitableTrustTokenOrigin> issuer = + SuitableTrustTokenOrigin::Create(url); + if (!issuer.has_value()) { + std::move(done).Run(net::HttpRequestHeaders()); + return; + } + + key_commitment_getter_->Get( + issuer.value(), + base::BindOnce(&AttributionAttestationMediator::OnGotKeyCommitment, + weak_ptr_factory_.GetWeakPtr(), std::move(done))); +} + +void AttributionAttestationMediator::OnGotKeyCommitment( + base::OnceCallback<void(net::HttpRequestHeaders)> done, + mojom::TrustTokenKeyCommitmentResultPtr commitment_result) { + if (!commitment_result) { + std::move(done).Run(net::HttpRequestHeaders()); + return; + } + + if (!cryptographer_->Initialize(commitment_result->protocol_version)) { + std::move(done).Run(net::HttpRequestHeaders()); + return; + } + + for (const mojom::TrustTokenVerificationKeyPtr& key : + commitment_result->keys) { + if (!cryptographer_->AddKey(key->body)) { + std::move(done).Run(net::HttpRequestHeaders()); + return; + } + } + + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, + base::BindOnce( + [](std::unique_ptr<Cryptographer> cryptographer, + std::string message) { + absl::optional<std::string> blind_message = + cryptographer->BeginIssuance(message); + return AttributionAttestationMediator::CryptographerAndBlindMessage{ + std::move(cryptographer), std::move(blind_message)}; + }, + std::move(cryptographer_), message_.value()), + base::BindOnce(&AttributionAttestationMediator::OnDoneBeginIssuance, + weak_ptr_factory_.GetWeakPtr(), + commitment_result->protocol_version, std::move(done))); +} + +void AttributionAttestationMediator::OnDoneBeginIssuance( + mojom::TrustTokenProtocolVersion protocol_version, + base::OnceCallback<void(net::HttpRequestHeaders)> done, + AttributionAttestationMediator::CryptographerAndBlindMessage + cryptographer_and_blind_message) { + cryptographer_ = std::move(cryptographer_and_blind_message.cryptographer); + + if (!cryptographer_and_blind_message.blind_message.has_value()) { + std::move(done).Run(net::HttpRequestHeaders()); + return; + } + + net::HttpRequestHeaders request_headers; + request_headers.SetHeader( + kTriggerAttestationHeader, + std::move(cryptographer_and_blind_message.blind_message.value())); + request_headers.SetHeader( + kTrustTokensSecTrustTokenVersionHeader, + internal::ProtocolVersionToString(protocol_version)); + std::move(done).Run(std::move(request_headers)); +} + +void AttributionAttestationMediator::ProcessAttestationToGetToken( + net::HttpResponseHeaders& response_headers, + base::OnceCallback<void(absl::optional<std::string>)> done) { + DCHECK(message_.has_value()); + + std::string header_value; + + // EnumerateHeader(|iter|=nullptr) asks for the first instance of the header, + // if any. At most one `kTriggerAttestationHeader` is expected as only one + // token can attest to a trigger. Subsequent instances of the header are + // ignored. + if (!response_headers.EnumerateHeader( + /*iter=*/nullptr, kTriggerAttestationHeader, &header_value)) { + std::move(done).Run(absl::nullopt); + return; + } + response_headers.RemoveHeader(kTriggerAttestationHeader); + + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, + base::BindOnce( + [](std::unique_ptr<Cryptographer> cryptographer, + std::string blind_token) { + absl::optional<std::string> token = + cryptographer->ConfirmIssuanceAndBeginRedemption(blind_token); + + return AttributionAttestationMediator::CryptographerAndToken{ + std::move(cryptographer), std::move(token)}; + }, + std::move(cryptographer_), std::move(header_value)), + base::BindOnce( + &AttributionAttestationMediator::OnDoneProcessingIssuanceResponse, + weak_ptr_factory_.GetWeakPtr(), std::move(done))); +} + +void AttributionAttestationMediator::OnDoneProcessingIssuanceResponse( + base::OnceCallback<void(absl::optional<std::string>)> done, + AttributionAttestationMediator::CryptographerAndToken + cryptographer_and_token) { + cryptographer_ = std::move(cryptographer_and_token.cryptographer); + + if (!cryptographer_and_token.token.has_value()) { + // The response was rejected by the underlying cryptographic library as + // malformed or otherwise invalid. + std::move(done).Run(absl::nullopt); + return; + } + + std::move(done).Run(std::move(cryptographer_and_token.token.value())); +} + +} // namespace network
diff --git a/services/network/attribution/attribution_attestation_mediator.h b/services/network/attribution/attribution_attestation_mediator.h new file mode 100644 index 0000000..b03fadbb --- /dev/null +++ b/services/network/attribution/attribution_attestation_mediator.h
@@ -0,0 +1,177 @@ +// 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. + +#ifndef SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_ATTESTATION_MEDIATOR_H_ +#define SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_ATTESTATION_MEDIATOR_H_ + +#include <memory> +#include <string> + +#include "base/memory/raw_ptr.h" +#include "base/memory/weak_ptr.h" +#include "base/strings/string_piece_forward.h" +#include "net/http/http_request_headers.h" +#include "net/http/http_response_headers.h" +#include "services/network/public/mojom/trust_tokens.mojom-forward.h" + +namespace network { + +class TrustTokenKeyCommitmentGetter; + +// Class `AttributionAttestationMediator` handles a single trigger attestation +// operation +// (https://github.com/WICG/attribution-reporting-api/blob/main/trigger_attestation.md): +// it generates a blind message using an underlying cryptographic library, asks +// a private state token issuer to sign the blind message to obtain a blind +// token, verifies and unblinds it using the cryptographic library to obtain a +// token which is returned. +class AttributionAttestationMediator { + public: + class Cryptographer { + public: + virtual ~Cryptographer() = default; + + // Initializes the Cryptographer. `issuer_configured_version` must be the + // "protocol_version" value from the issuer's key commitment. + // + // Returns true on success and false if an internal error occurred in the + // underlying cryptographic library. + [[nodiscard]] virtual bool Initialize( + mojom::TrustTokenProtocolVersion issuer_configured_version) = 0; + + // Stores a Private State Tokens issuance verification key for a subsequent + // use verifying a blind token in `ConfirmIssuanceAndBeginRedemption`. May + // be called multiple times to add multiple keys permissible for use during + // this issuance. + // + // Returns true on success and false if the key is malformed or if an + // internal error occurred in the underlying cryptographic library. Does not + // forbid adding duplicates; however, duplicates might contribute to an + // overall limit on the number of permitted keys, so the caller may wish to + // ensure this is called at most once per distinct key. + [[nodiscard]] virtual bool AddKey(base::StringPiece key) = 0; + + // On success, returns a base64-encoded string representing the blinded + // `message`. on error, returns nullopt. + // + // `message` is a string representing the data that we want + // to attest to. We "blind" it as part of the blind signature protocol + // before sending it to the issuer for signature. + [[nodiscard]] virtual absl::optional<std::string> BeginIssuance( + base::StringPiece message) = 0; + + // Given a base64-encoded issuance `response header`, attempts to unblind a + // blind token represented by the header using the keys previously added by + // AddKey. If successful, it returns a token suitable for attachment in the + // Sec-Attribution-Reporting-Private-State-Token header. On error, it + // returns nullopt. + [[nodiscard]] virtual absl::optional<std::string> + ConfirmIssuanceAndBeginRedemption(base::StringPiece response_header) = 0; + }; + + static constexpr char kTriggerAttestationHeader[] = + "Sec-Attribution-Reporting-Private-State-Token"; + + AttributionAttestationMediator( + const TrustTokenKeyCommitmentGetter* key_commitment_getter, + std::unique_ptr<Cryptographer> cryptographer); + ~AttributionAttestationMediator(); + + AttributionAttestationMediator(const AttributionAttestationMediator&) = + delete; + AttributionAttestationMediator& operator=( + const AttributionAttestationMediator&) = delete; + + // Returns headers used for attestation if the `url`'s origin is configured as + // a private state tokens issuer. + // + // 1. Get the issuer's key commitment; if unavailable or unsuccessful, returns + // no headers + // 2. Blind the message received; if unsuccessful, returns no headers + // 3. Returns two headers; + // * Sec-Attribution-Reporting-Private-State-Token: with the blinded + // message. + // * Sec-Trust-Token-Version: with the protocol version configured in the + // issuers' key commitments + // + // `message` is a string representing the data that we want to attest to. The + // `message` will be blinded before being sent to the issuer for signature. + // + // Later, when receiving the data with a token, the issuer will need to + // re-generate this message to verify the token. + void GetHeadersForAttestation( + const GURL& url, + const std::string& message, + base::OnceCallback<void(net::HttpRequestHeaders)> done); + + // Process headers from an attestation response; if present and valid, + // generates and returns a token that can be used for redemption. + // 1. Checks `response_headers` for an attestation response header. + // 2. If the header is present, strips it from `response_headers` and passes + // its value (blind token) to an underlying cryptographic library, which + // parses, validates and unblind the header to return a token. + // + // If both of these steps are successful, returns a token that can be send to + // and verified by the issuer that signed the blind message. + void ProcessAttestationToGetToken( + net::HttpResponseHeaders& response_headers, + base::OnceCallback< + void(absl::optional<std::string> maybe_redemption_token)> done); + + private: + struct CryptographerAndToken; + struct CryptographerAndBlindMessage; + + // Continuation of `GetHeadersForAttestation` after asynchronous key + // commitment fetching concludes. `done` is `GetHeadersForAttestation`'s + // parameter, passed on to the continuation; `commitment_result` is the result + // of the key commitment fetch. + void OnGotKeyCommitment( + base::OnceCallback<void(net::HttpRequestHeaders)> done, + mojom::TrustTokenKeyCommitmentResultPtr commitment_result); + + // Continuation of `GetHeadersForAttestation` after an off-thread execution of + // issuance operation (`Cryptographer::BeginIssuance`).`protocol_version` is + // the private state issuer configured protocol versions; `done` is + // `GetHeadersForAttestation`'s parameter, passed on to the continuation. + // Receives ownership of the cryptographer back from the asynchronous callback + // and stores it back in `cryptographer_` to reuse during + // `ProcessAttestationToGetToken`. + void OnDoneBeginIssuance( + mojom::TrustTokenProtocolVersion protocol_version, + base::OnceCallback<void(net::HttpRequestHeaders)> done, + CryptographerAndBlindMessage cryptographer_and_blinded_token); + + // Continuation of `ProcessAttestationToGetToken` after an off-thread + // execution to complete the issuance + // (`Cryptographer::ConfirmIssuanceAndBeginRedemption`). `done` is + // `ProcessAttestationToGetToken`'s parameter, passed on to the continuation. + // Receives ownership of the cryptographer back from the asynchronous + // callback. + void OnDoneProcessingIssuanceResponse( + base::OnceCallback<void(absl::optional<std::string>)> done, + CryptographerAndToken cryptographer_and_redemption_token); + + // `message_` needs to be a nullable type because it is initialized in + // `GetHeadersForAttestation`, but, once initialized, it will never be mutated + // over the course of the operation's execution. + absl::optional<std::string> message_; + + // The key_commitment_getter_ instance is a singleton owned by NetworkService, + // it will always outlive this. + const raw_ptr<const TrustTokenKeyCommitmentGetter> key_commitment_getter_; + + // Relinquishes ownership during posted tasks for the potentially + // computationally intensive cryptographic operations + // (Cryptographer::BeginIssuance, + // Cryptographer::ConfirmIssuanceAndBeginRedemption); repopulated when + // regaining ownership upon receiving each operation's results. + std::unique_ptr<Cryptographer> cryptographer_; + + base::WeakPtrFactory<AttributionAttestationMediator> weak_ptr_factory_{this}; +}; + +} // namespace network + +#endif // SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_ATTESTATION_MEDIATOR_H_
diff --git a/services/network/attribution/attribution_attestation_mediator_unittest.cc b/services/network/attribution/attribution_attestation_mediator_unittest.cc new file mode 100644 index 0000000..58531f0 --- /dev/null +++ b/services/network/attribution/attribution_attestation_mediator_unittest.cc
@@ -0,0 +1,224 @@ +// 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. + +#include "services/network/attribution/attribution_attestation_mediator.h" + +#include <memory> +#include <set> +#include <string> + +#include "base/run_loop.h" +#include "base/strings/string_piece_forward.h" +#include "base/test/bind.h" +#include "base/test/task_environment.h" +#include "net/http/http_request_headers.h" +#include "net/http/http_response_headers.h" +#include "services/network/attribution/attribution_test_utils.h" +#include "services/network/public/mojom/trust_tokens.mojom-shared.h" +#include "services/network/public/mojom/url_response_head.mojom.h" +#include "services/network/trust_tokens/trust_token_key_commitments.h" +#include "services/network/trust_tokens/types.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace network { + +class AttributionAttestationMediatorTest : public testing::Test { + protected: + void SetUp() override { + key_commitment_getter_ = CreateTestTrustTokenKeyCommitments( + /*key=*/example_verification_key_, + /*protocol_version=*/example_protocol_version_, + /*issuer_url=*/example_valid_request_url_); + + auto fake_cryptographer = std::make_unique<FakeCryptographer>(); + fake_cryptographer_ = fake_cryptographer.get(); + + mediator_ = std::make_unique<AttributionAttestationMediator>( + key_commitment_getter_.get(), std::move(fake_cryptographer)); + } + + net::HttpRequestHeaders RunGetHeadersForAttestationWith( + const GURL& url, + const std::string& message) { + base::RunLoop run_loop; + + net::HttpRequestHeaders headers; + mediator_->GetHeadersForAttestation( + url, message, + base::BindLambdaForTesting( + [&run_loop, &headers](net::HttpRequestHeaders h) { + headers = h; + run_loop.Quit(); + })); + + run_loop.Run(); + return headers; + } + + void RunGetHeadersForAttestationWithValidParams() { + RunGetHeadersForAttestationWith( + /*url=*/example_valid_request_url_, /*message=*/"message"); + } + + absl::optional<std::string> RunProcessAttestationToGetTokenWith( + net::HttpResponseHeaders& response_headers) { + base::RunLoop run_loop; + + absl::optional<std::string> maybe_token; + mediator_->ProcessAttestationToGetToken( + response_headers, + base::BindLambdaForTesting( + [&run_loop, &maybe_token](absl::optional<std::string> m) { + maybe_token = m; + + run_loop.Quit(); + })); + + run_loop.Run(); + + return maybe_token; + } + + GURL example_valid_request_url_ = + GURL("https://reporting-origin.example/test/path/#123"); + mojom::TrustTokenProtocolVersion example_protocol_version_ = + mojom::TrustTokenProtocolVersion::kTrustTokenV3Pmb; + std::string example_verification_key_ = "example-key"; + + base::test::TaskEnvironment task_environment_; + + std::unique_ptr<TrustTokenKeyCommitments> key_commitment_getter_; + + // We hold onto a raw ptr to configure the call expectations, the helper owns + // the unique_ptr. + base::raw_ptr<FakeCryptographer> fake_cryptographer_; + std::unique_ptr<AttributionAttestationMediator> mediator_; +}; + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_HeadersReturned) { + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/example_valid_request_url_, /*message=*/"message"); + + std::string attestation_header; + headers.GetHeader("Sec-Attribution-Reporting-Private-State-Token", + &attestation_header); + // Check that the message was blinded by the Cryptographer before being added + // as an attestation header. + EXPECT_TRUE(FakeCryptographer::IsBlindMessage(attestation_header, "message")); + + std::string version_header; + headers.GetHeader("Sec-Trust-Token-Version", &version_header); + EXPECT_EQ(version_header, + internal::ProtocolVersionToString(example_protocol_version_)); + + EXPECT_TRUE( + base::Contains(fake_cryptographer_->keys, example_verification_key_)); +} + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_NonSuitableIssuer) { + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/GURL("http://not-https-url.example/path"), + /*message=*/"does-not-matter"); + + EXPECT_TRUE(headers.IsEmpty()); +} + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_NoIssuerReturned) { + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/GURL("https://not-registered-origin-url.example/path"), + /*message=*/"does-not-matter"); + + EXPECT_TRUE(headers.IsEmpty()); +} + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_CryptographerInitializationFails) { + fake_cryptographer_->set_should_fail_initialize(true); + + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/example_valid_request_url_, /*message=*/"does-not-matter"); + + EXPECT_TRUE(headers.IsEmpty()); +} + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_CryprographerAddKeyFails) { + fake_cryptographer_->set_should_fail_add_key(true); + + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/example_valid_request_url_, /*message=*/"does-not-matter"); + + EXPECT_TRUE(headers.IsEmpty()); +} + +TEST_F(AttributionAttestationMediatorTest, + GetHeadersForAttestation_CryptographerReturnsNoBlindMessage) { + fake_cryptographer_->set_should_fail_begin_issuance(true); + + net::HttpRequestHeaders headers = RunGetHeadersForAttestationWith( + /*url=*/example_valid_request_url_, /*message=*/"does-not-matter"); + + EXPECT_TRUE(headers.IsEmpty()); +} + +TEST_F(AttributionAttestationMediatorTest, + ProcessAttestationToGetToken_HeaderValueReturned) { + RunGetHeadersForAttestationWithValidParams(); + + auto response_head = mojom::URLResponseHead::New(); + response_head->headers = net::HttpResponseHeaders::TryToCreate(""); + response_head->headers->AddHeader( + "Sec-Attribution-Reporting-Private-State-Token", "blind-token"); + + absl::optional<std::string> maybe_token = + RunProcessAttestationToGetTokenWith(*response_head->headers.get()); + // Check that that the blind-token returned by the issuer has been formed in + // a token by the Cryptographer. + EXPECT_TRUE(FakeCryptographer::IsToken(maybe_token.value(), "blind-token")); + + // Check that the header has been removed after beein processed. + EXPECT_FALSE(response_head->headers->HasHeader( + "Sec-Attribution-Reporting-Private-State-Token")); +} + +TEST_F(AttributionAttestationMediatorTest, + ProcessAttestationToGetToken_ResponseHeaderIsMissing) { + RunGetHeadersForAttestationWithValidParams(); + + auto response_head = mojom::URLResponseHead::New(); + response_head->headers = net::HttpResponseHeaders::TryToCreate(""); + + absl::optional<std::string> maybe_token = + RunProcessAttestationToGetTokenWith(*response_head->headers.get()); + + EXPECT_FALSE(maybe_token.has_value()); +} + +TEST_F(AttributionAttestationMediatorTest, + ProcessAttestationToGetToken_CryptographerReturnsNoToken) { + RunGetHeadersForAttestationWithValidParams(); + + auto response_head = mojom::URLResponseHead::New(); + response_head->headers = net::HttpResponseHeaders::TryToCreate(""); + response_head->headers->AddHeader( + "Sec-Attribution-Reporting-Private-State-Token", "blind-token"); + + fake_cryptographer_->set_should_fail_confirm_issuance(true); + + absl::optional<std::string> maybe_token = + RunProcessAttestationToGetTokenWith(*response_head->headers.get()); + + EXPECT_FALSE(maybe_token.has_value()); + + // The header should have been removed even if not able to get a + // token from it. + EXPECT_FALSE(response_head->headers->HasHeader( + "Sec-Attribution-Reporting-Private-State-Token")); +} + +} // namespace network
diff --git a/services/network/attribution/attribution_test_utils.cc b/services/network/attribution/attribution_test_utils.cc new file mode 100644 index 0000000..b2060612 --- /dev/null +++ b/services/network/attribution/attribution_test_utils.cc
@@ -0,0 +1,89 @@ +// 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. + +#include "services/network/attribution/attribution_test_utils.h" + +#include <memory> +#include <string> + +#include "base/strings/strcat.h" +#include "base/strings/string_piece_forward.h" +#include "services/network/public/mojom/trust_tokens.mojom-shared.h" +#include "services/network/trust_tokens/trust_token_key_commitments.h" +#include "url/gurl.h" + +namespace network { + +FakeCryptographer::FakeCryptographer() = default; +FakeCryptographer::~FakeCryptographer() = default; + +bool FakeCryptographer::Initialize( + mojom::TrustTokenProtocolVersion issuer_configured_version) { + if (should_fail_initialize_) { + return false; + } + + version_ = issuer_configured_version; + return true; +} + +bool FakeCryptographer::AddKey(base::StringPiece key) { + if (should_fail_add_key_) { + return false; + } + + keys.insert(std::string(key)); + return true; +} + +absl::optional<std::string> FakeCryptographer::BeginIssuance( + base::StringPiece message) { + if (should_fail_begin_issuance_) { + return absl::nullopt; + } + return base::StrCat({kBlindingKey, message}); +} + +bool FakeCryptographer::IsBlindMessage( + const std::string& potential_blind_message, + const std::string& message) { + return potential_blind_message == base::StrCat({kBlindingKey, message}); +} + +absl::optional<std::string> +FakeCryptographer::ConfirmIssuanceAndBeginRedemption( + base::StringPiece blind_token) { + if (should_fail_confirm_issuance_) { + return absl::nullopt; + } + return base::StrCat({kUnblindKey, blind_token}); +} + +bool FakeCryptographer::IsToken(const std::string& potential_token, + const std::string& blind_token) { + return potential_token == base::StrCat({kUnblindKey, blind_token}); +} + +std::unique_ptr<TrustTokenKeyCommitments> CreateTestTrustTokenKeyCommitments( + std::string key, + mojom::TrustTokenProtocolVersion protocol_version, + GURL issuer_url) { + auto key_commitment_getter = std::make_unique<TrustTokenKeyCommitments>(); + + auto key_commitment = mojom::TrustTokenKeyCommitmentResult::New(); + key_commitment->id = 1; + key_commitment->keys.push_back( + mojom::TrustTokenVerificationKey::New(key, /*expiry=*/base::Time::Max())); + key_commitment->batch_size = 10; + key_commitment->protocol_version = protocol_version; + + base::flat_map<url::Origin, mojom::TrustTokenKeyCommitmentResultPtr> map; + map[SuitableTrustTokenOrigin::Create(issuer_url).value()] = + std::move(key_commitment); + key_commitment_getter->Set(std::move(map)); + + return key_commitment_getter; +} + +} // namespace network
diff --git a/services/network/attribution/attribution_test_utils.h b/services/network/attribution/attribution_test_utils.h new file mode 100644 index 0000000..45fcf60 --- /dev/null +++ b/services/network/attribution/attribution_test_utils.h
@@ -0,0 +1,85 @@ +// 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. + +#ifndef SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_TEST_UTILS_H_ +#define SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_TEST_UTILS_H_ + +#include <set> +#include <string> + +#include "base/strings/string_piece_forward.h" +#include "services/network/attribution/attribution_attestation_mediator.h" +#include "services/network/public/mojom/trust_tokens.mojom-shared.h" +#include "services/network/trust_tokens/trust_token_key_commitments.h" +#include "url/gurl.h" + +namespace network { + +class FakeCryptographer : public AttributionAttestationMediator::Cryptographer { + public: + FakeCryptographer(); + ~FakeCryptographer() override; + + bool Initialize( + mojom::TrustTokenProtocolVersion issuer_configured_version) override; + + bool AddKey(base::StringPiece key) override; + + absl::optional<std::string> BeginIssuance(base::StringPiece message) override; + + absl::optional<std::string> ConfirmIssuanceAndBeginRedemption( + base::StringPiece response_header) override; + + //*********************** + // Helper methods below + //*********************** + + // Returns true if `potential_blind_message` is the blind version of `message` + static bool IsBlindMessage(const std::string& potential_blind_message, + const std::string& message); + + // Returns true if `potential_token` is a token for `blind_token` + static bool IsToken(const std::string& potential_token, + const std::string& blind_token); + + mojom::TrustTokenProtocolVersion version() const { return version_; } + + void set_should_fail_initialize(bool should_fail) { + should_fail_initialize_ = should_fail; + } + + void set_should_fail_add_key(bool should_fail) { + should_fail_add_key_ = should_fail; + } + + void set_should_fail_begin_issuance(bool should_fail) { + should_fail_begin_issuance_ = should_fail; + } + + void set_should_fail_confirm_issuance(bool should_fail) { + should_fail_confirm_issuance_ = should_fail; + } + + std::set<std::string> keys; + + private: + static constexpr char kBlindingKey[] = "blind-"; + static constexpr char kUnblindKey[] = "token-for-"; + + mojom::TrustTokenProtocolVersion version_; + + bool should_fail_initialize_ = false; + bool should_fail_add_key_ = false; + bool should_fail_begin_issuance_ = false; + bool should_fail_confirm_issuance_ = false; +}; + +std::unique_ptr<TrustTokenKeyCommitments> CreateTestTrustTokenKeyCommitments( + std::string key, + mojom::TrustTokenProtocolVersion protocol_version, + GURL issuer_url); + +} // namespace network + +#endif // SERVICES_NETWORK_ATTRIBUTION_ATTRIBUTION_TEST_UTILS_H_
diff --git a/services/network/cert_verifier_with_trust_anchors.cc b/services/network/cert_verifier_with_trust_anchors.cc index ef71d51..8a02282 100644 --- a/services/network/cert_verifier_with_trust_anchors.cc +++ b/services/network/cert_verifier_with_trust_anchors.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" #include "net/cert/caching_cert_verifier.h" #include "net/cert/cert_verifier.h"
diff --git a/services/network/cert_verifier_with_trust_anchors.h b/services/network/cert_verifier_with_trust_anchors.h index 9c29e16..674d59a 100644 --- a/services/network/cert_verifier_with_trust_anchors.h +++ b/services/network/cert_verifier_with_trust_anchors.h
@@ -8,9 +8,9 @@ #include <memory> #include <vector> -#include "base/callback.h" #include "base/compiler_specific.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/threading/thread_checker.h" #include "net/base/completion_once_callback.h"
diff --git a/services/network/cert_verifier_with_trust_anchors_unittest.cc b/services/network/cert_verifier_with_trust_anchors_unittest.cc index 6cf524a..9048f834 100644 --- a/services/network/cert_verifier_with_trust_anchors_unittest.cc +++ b/services/network/cert_verifier_with_trust_anchors_unittest.cc
@@ -8,9 +8,9 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/chunked_data_pipe_upload_data_stream.cc b/services/network/chunked_data_pipe_upload_data_stream.cc index 54f0633..6b1add5 100644 --- a/services/network/chunked_data_pipe_upload_data_stream.cc +++ b/services/network/chunked_data_pipe_upload_data_stream.cc
@@ -4,9 +4,9 @@ #include "services/network/chunked_data_pipe_upload_data_stream.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/c/system/types.h"
diff --git a/services/network/conditional_cache_deletion_helper.cc b/services/network/conditional_cache_deletion_helper.cc index ce3e03b..820109c 100644 --- a/services/network/conditional_cache_deletion_helper.cc +++ b/services/network/conditional_cache_deletion_helper.cc
@@ -4,8 +4,8 @@ #include "services/network/conditional_cache_deletion_helper.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "net/http/http_cache.h"
diff --git a/services/network/conditional_cache_deletion_helper.h b/services/network/conditional_cache_deletion_helper.h index 116ead3..6e23125 100644 --- a/services/network/conditional_cache_deletion_helper.h +++ b/services/network/conditional_cache_deletion_helper.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner_helpers.h"
diff --git a/services/network/cookie_access_delegate_impl.cc b/services/network/cookie_access_delegate_impl.cc index 4f59c1c..ab310b7 100644 --- a/services/network/cookie_access_delegate_impl.cc +++ b/services/network/cookie_access_delegate_impl.cc
@@ -6,9 +6,9 @@ #include <set> -#include "base/callback_forward.h" #include "base/containers/flat_map.h" #include "base/containers/flat_set.h" +#include "base/functional/callback_forward.h" #include "net/base/schemeful_site.h" #include "net/cookies/cookie_constants.h" #include "net/cookies/cookie_util.h"
diff --git a/services/network/cookie_access_delegate_impl.h b/services/network/cookie_access_delegate_impl.h index a3d03cb..50c3a309 100644 --- a/services/network/cookie_access_delegate_impl.h +++ b/services/network/cookie_access_delegate_impl.h
@@ -7,10 +7,10 @@ #include <set> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/containers/flat_map.h" #include "base/containers/flat_set.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "net/base/schemeful_site.h" #include "net/cookies/cookie_access_delegate.h"
diff --git a/services/network/cookie_manager.cc b/services/network/cookie_manager.cc index c41dc5ae..d4b5f1f 100644 --- a/services/network/cookie_manager.cc +++ b/services/network/cookie_manager.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/process/process.h" #include "build/build_config.h" #include "components/content_settings/core/common/content_settings_pattern.h"
diff --git a/services/network/cookie_manager_unittest.cc b/services/network/cookie_manager_unittest.cc index 3238387..130f1a3 100644 --- a/services/network/cookie_manager_unittest.cc +++ b/services/network/cookie_manager_unittest.cc
@@ -7,8 +7,8 @@ #include <algorithm> #include <vector> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/strings/strcat.h"
diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc index 87feee6..9ab7846 100644 --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc
@@ -7,9 +7,9 @@ #include <functional> #include <iterator> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/ranges/algorithm.h" #include "base/types/optional_util.h" #include "components/content_settings/core/common/content_settings.h"
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc index 76e99b2..9d04b48 100644 --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc
@@ -7,10 +7,10 @@ #include <sstream> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/containers/flat_set.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/strings/strcat.h" #include "base/strings/string_split.h"
diff --git a/services/network/cors/cors_url_loader_factory.cc b/services/network/cors/cors_url_loader_factory.cc index a08e573f..963d5a9 100644 --- a/services/network/cors/cors_url_loader_factory.cc +++ b/services/network/cors/cors_url_loader_factory.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/debug/crash_logging.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/types/optional_util.h" #include "mojo/public/cpp/bindings/message.h"
diff --git a/services/network/cors/cors_url_loader_tao_unittest.cc b/services/network/cors/cors_url_loader_tao_unittest.cc index 1056259..6475d25 100644 --- a/services/network/cors/cors_url_loader_tao_unittest.cc +++ b/services/network/cors/cors_url_loader_tao_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <vector> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_piece.h" #include "base/test/metrics/histogram_tester.h" #include "mojo/public/cpp/bindings/message.h"
diff --git a/services/network/cors/cors_url_loader_test_util.cc b/services/network/cors/cors_url_loader_test_util.cc index a5a68ceee..47558a4 100644 --- a/services/network/cors/cors_url_loader_test_util.cc +++ b/services/network/cors/cors_url_loader_test_util.cc
@@ -4,7 +4,7 @@ #include "services/network/cors/cors_url_loader_test_util.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/notreached.h" #include "base/run_loop.h"
diff --git a/services/network/cors/cors_url_loader_test_util.h b/services/network/cors/cors_url_loader_test_util.h index 307ea3c..5168767 100644 --- a/services/network/cors/cors_url_loader_test_util.h +++ b/services/network/cors/cors_url_loader_test_util.h
@@ -11,8 +11,8 @@ #include <utility> #include <vector> -#include "base/callback_forward.h" #include "base/check.h" +#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "base/test/task_environment.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/network/cors/cors_url_loader_unittest.cc b/services/network/cors/cors_url_loader_unittest.cc index 2ae010d..55caf33 100644 --- a/services/network/cors/cors_url_loader_unittest.cc +++ b/services/network/cors/cors_url_loader_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <vector> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h" #include "mojo/public/cpp/bindings/message.h"
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc index f9e3584..a226c93 100644 --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_functions.h"
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h index 1a74bd9..da0a094b 100644 --- a/services/network/cors/preflight_controller.h +++ b/services/network/cors/preflight_controller.h
@@ -7,9 +7,9 @@ #include <memory> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/types/expected.h"
diff --git a/services/network/cors/preflight_controller_unittest.cc b/services/network/cors/preflight_controller_unittest.cc index fc3d39e..cd1c2ff 100644 --- a/services/network/cors/preflight_controller_unittest.cc +++ b/services/network/cors/preflight_controller_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h"
diff --git a/services/network/crl_set_distributor.cc b/services/network/crl_set_distributor.cc index 870c584..35073be 100644 --- a/services/network/crl_set_distributor.cc +++ b/services/network/crl_set_distributor.cc
@@ -6,9 +6,9 @@ #include <string> -#include "base/bind.h" #include "base/containers/span.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/observer_list.h" #include "base/strings/string_piece.h"
diff --git a/services/network/crl_set_distributor.h b/services/network/crl_set_distributor.h index aaadfb21..0162b18 100644 --- a/services/network/crl_set_distributor.h +++ b/services/network/crl_set_distributor.h
@@ -7,9 +7,9 @@ #include <stdint.h> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/span.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h"
diff --git a/services/network/ct_log_list_distributor.cc b/services/network/ct_log_list_distributor.cc index 8fbde86..499715d 100644 --- a/services/network/ct_log_list_distributor.cc +++ b/services/network/ct_log_list_distributor.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/callback.h" #include "base/callback_list.h" +#include "base/functional/callback.h" #include "net/cert/ct_log_verifier.h" #include "services/network/public/cpp/features.h"
diff --git a/services/network/ct_log_list_distributor.h b/services/network/ct_log_list_distributor.h index a92b8084..2863c7b 100644 --- a/services/network/ct_log_list_distributor.h +++ b/services/network/ct_log_list_distributor.h
@@ -5,9 +5,9 @@ #ifndef SERVICES_NETWORK_CT_LOG_LIST_DISTRIBUTOR_H_ #define SERVICES_NETWORK_CT_LOG_LIST_DISTRIBUTOR_H_ -#include "base/callback_forward.h" #include "base/callback_list.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "net/cert/multi_log_ct_verifier.h" #include "services/network/public/mojom/ct_log_info.mojom.h"
diff --git a/services/network/ct_log_list_distributor_unittest.cc b/services/network/ct_log_list_distributor_unittest.cc index 1eb9b35..73b1a6b 100644 --- a/services/network/ct_log_list_distributor_unittest.cc +++ b/services/network/ct_log_list_distributor_unittest.cc
@@ -5,9 +5,9 @@ #include "services/network/ct_log_list_distributor.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/callback_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/test/task_environment.h" #include "crypto/sha2.h" #include "net/cert/ct_log_verifier.h"
diff --git a/services/network/data_pipe_element_reader.cc b/services/network/data_pipe_element_reader.cc index 7a0ff46e..06793d3 100644 --- a/services/network/data_pipe_element_reader.cc +++ b/services/network/data_pipe_element_reader.cc
@@ -4,9 +4,9 @@ #include "services/network/data_pipe_element_reader.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/c/system/types.h"
diff --git a/services/network/dhcp_pac_file_fetcher_mojo.cc b/services/network/dhcp_pac_file_fetcher_mojo.cc index 3028691..27eacb1 100644 --- a/services/network/dhcp_pac_file_fetcher_mojo.cc +++ b/services/network/dhcp_pac_file_fetcher_mojo.cc
@@ -4,7 +4,7 @@ #include "services/network/dhcp_pac_file_fetcher_mojo.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "net/proxy_resolution/pac_file_fetcher.h" #include "net/proxy_resolution/pac_file_fetcher_impl.h"
diff --git a/services/network/first_party_sets/first_party_sets_access_delegate.h b/services/network/first_party_sets/first_party_sets_access_delegate.h index d304d6fa..fe2b44f 100644 --- a/services/network/first_party_sets/first_party_sets_access_delegate.h +++ b/services/network/first_party_sets/first_party_sets_access_delegate.h
@@ -7,9 +7,9 @@ #include <memory> -#include "base/callback.h" #include "base/containers/circular_deque.h" #include "base/containers/flat_set.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h" #include "base/thread_annotations.h"
diff --git a/services/network/first_party_sets/first_party_sets_manager.h b/services/network/first_party_sets/first_party_sets_manager.h index 287f673..68a89c07 100644 --- a/services/network/first_party_sets/first_party_sets_manager.h +++ b/services/network/first_party_sets/first_party_sets_manager.h
@@ -9,10 +9,10 @@ #include <memory> #include <set> -#include "base/callback.h" #include "base/containers/circular_deque.h" #include "base/containers/flat_map.h" #include "base/containers/flat_set.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/thread_annotations.h" #include "base/time/time.h"
diff --git a/services/network/host_resolver.cc b/services/network/host_resolver.cc index b993e16b..594c2e2c 100644 --- a/services/network/host_resolver.cc +++ b/services/network/host_resolver.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/lazy_instance.h" #include "base/task/sequenced_task_runner.h" #include "build/build_config.h"
diff --git a/services/network/host_resolver.h b/services/network/host_resolver.h index 8798c62..84daf18 100644 --- a/services/network/host_resolver.h +++ b/services/network/host_resolver.h
@@ -9,9 +9,9 @@ #include <set> #include <string> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/network/host_resolver_mdns_listener.cc b/services/network/host_resolver_mdns_listener.cc index f09b059..79f60f6 100644 --- a/services/network/host_resolver_mdns_listener.cc +++ b/services/network/host_resolver_mdns_listener.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "net/base/host_port_pair.h" #include "net/dns/host_resolver.h" #include "net/dns/public/mdns_listener_update_type.h"
diff --git a/services/network/host_resolver_mdns_listener.h b/services/network/host_resolver_mdns_listener.h index 1baaa3ea..09728e71 100644 --- a/services/network/host_resolver_mdns_listener.h +++ b/services/network/host_resolver_mdns_listener.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/ip_endpoint.h"
diff --git a/services/network/http_cache_data_counter.cc b/services/network/http_cache_data_counter.cc index 130ce0c..2214a0bf 100644 --- a/services/network/http_cache_data_counter.cc +++ b/services/network/http_cache_data_counter.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/http_cache_data_counter.h b/services/network/http_cache_data_counter.h index 611431d..29c152b 100644 --- a/services/network/http_cache_data_counter.h +++ b/services/network/http_cache_data_counter.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h"
diff --git a/services/network/http_cache_data_counter_unittest.cc b/services/network/http_cache_data_counter_unittest.cc index 1ae220ab..0904853 100644 --- a/services/network/http_cache_data_counter_unittest.cc +++ b/services/network/http_cache_data_counter_unittest.cc
@@ -10,8 +10,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/task_environment.h"
diff --git a/services/network/http_cache_data_remover.cc b/services/network/http_cache_data_remover.cc index edf8345..966d6d4 100644 --- a/services/network/http_cache_data_remover.cc +++ b/services/network/http_cache_data_remover.cc
@@ -7,7 +7,7 @@ #include <set> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
diff --git a/services/network/http_cache_data_remover.h b/services/network/http_cache_data_remover.h index 887801f..a76f067 100644 --- a/services/network/http_cache_data_remover.h +++ b/services/network/http_cache_data_remover.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "services/network/conditional_cache_deletion_helper.h"
diff --git a/services/network/http_cache_data_remover_unittest.cc b/services/network/http_cache_data_remover_unittest.cc index 8f6a030..f87568dd 100644 --- a/services/network/http_cache_data_remover_unittest.cc +++ b/services/network/http_cache_data_remover_unittest.cc
@@ -6,8 +6,8 @@ #include <string> #include <vector> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h"
diff --git a/services/network/http_server_properties_pref_delegate.cc b/services/network/http_server_properties_pref_delegate.cc index 9cc63fa..83541ae1 100644 --- a/services/network/http_server_properties_pref_delegate.cc +++ b/services/network/http_server_properties_pref_delegate.cc
@@ -4,7 +4,7 @@ #include "services/network/http_server_properties_pref_delegate.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/values.h" #include "components/prefs/pref_registry_simple.h"
diff --git a/services/network/http_server_properties_pref_delegate.h b/services/network/http_server_properties_pref_delegate.h index 82333883..ba1115c 100644 --- a/services/network/http_server_properties_pref_delegate.h +++ b/services/network/http_server_properties_pref_delegate.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_HTTP_SERVER_PROPERTIES_PREF_DELEGATE_H_ #define SERVICES_NETWORK_HTTP_SERVER_PROPERTIES_PREF_DELEGATE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/values.h" #include "components/prefs/pref_change_registrar.h"
diff --git a/services/network/mdns_responder.cc b/services/network/mdns_responder.cc index bcf34c3..46be7f02 100644 --- a/services/network/mdns_responder.cc +++ b/services/network/mdns_responder.cc
@@ -12,7 +12,7 @@ #include "services/network/mdns_responder.h" #include "base/big_endian.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/guid.h" #include "base/logging.h" #include "base/memory/raw_ptr.h"
diff --git a/services/network/mdns_responder.h b/services/network/mdns_responder.h index 5c1042a..4cd463aba2 100644 --- a/services/network/mdns_responder.h +++ b/services/network/mdns_responder.h
@@ -11,9 +11,9 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/containers/flat_set.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/time/default_tick_clock.h"
diff --git a/services/network/mdns_responder_unittest.cc b/services/network/mdns_responder_unittest.cc index f0b0b40..4a0bf52 100644 --- a/services/network/mdns_responder_unittest.cc +++ b/services/network/mdns_responder_unittest.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_piece.h"
diff --git a/services/network/mojo_host_resolver_impl.cc b/services/network/mojo_host_resolver_impl.cc index a5819dd1..3fae7bb 100644 --- a/services/network/mojo_host_resolver_impl.cc +++ b/services/network/mojo_host_resolver_impl.cc
@@ -7,7 +7,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/services/network/mojo_host_resolver_impl_unittest.cc b/services/network/mojo_host_resolver_impl_unittest.cc index 8b4aac0d..4a5434cf 100644 --- a/services/network/mojo_host_resolver_impl_unittest.cc +++ b/services/network/mojo_host_resolver_impl_unittest.cc
@@ -9,8 +9,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "base/time/time.h"
diff --git a/services/network/net_log_exporter.cc b/services/network/net_log_exporter.cc index 8a8ed06..5642bc95 100644 --- a/services/network/net_log_exporter.cc +++ b/services/network/net_log_exporter.cc
@@ -6,12 +6,12 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" #include "base/values.h"
diff --git a/services/network/network_change_manager.cc b/services/network/network_change_manager.cc index 3bb0a893..87f4ea7 100644 --- a/services/network/network_change_manager.cc +++ b/services/network/network_change_manager.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h"
diff --git a/services/network/network_context.cc b/services/network/network_context.cc index d3063425..47bba434 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -11,13 +11,13 @@ #include "base/barrier_closure.h" #include "base/base64.h" -#include "base/bind.h" #include "base/build_time.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/unique_ptr_adapters.h" #include "base/dcheck_is_on.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h"
diff --git a/services/network/network_context.h b/services/network/network_context.h index d36162b4..eb77d02 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h
@@ -14,11 +14,11 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/flat_map.h" #include "base/containers/flat_set.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "base/types/pass_key.h"
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc index 05bd22b..2a448211 100644 --- a/services/network/network_context_unittest.cc +++ b/services/network/network_context_unittest.cc
@@ -12,8 +12,6 @@ #include <vector> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" #include "base/containers/span.h" @@ -21,6 +19,8 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/metrics/field_trial.h"
diff --git a/services/network/network_qualities_pref_delegate.cc b/services/network/network_qualities_pref_delegate.cc index 01145ee..1c70d7b7 100644 --- a/services/network/network_qualities_pref_delegate.cc +++ b/services/network/network_qualities_pref_delegate.cc
@@ -7,7 +7,7 @@ #include <memory> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_macros.h"
diff --git a/services/network/network_qualities_pref_delegate_unittest.cc b/services/network/network_qualities_pref_delegate_unittest.cc index 7b63e94..55bef22 100644 --- a/services/network/network_qualities_pref_delegate_unittest.cc +++ b/services/network/network_qualities_pref_delegate_unittest.cc
@@ -7,7 +7,7 @@ #include <map> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "components/prefs/testing_pref_service.h"
diff --git a/services/network/network_service.cc b/services/network/network_service.cc index 0452c272..d5f95d7 100644 --- a/services/network/network_service.cc +++ b/services/network/network_service.cc
@@ -8,8 +8,6 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/check.h" #include "base/check_op.h" #include "base/command_line.h" @@ -19,6 +17,8 @@ #include "base/environment.h" #include "base/feature_list.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/services/network/network_service_network_delegate.cc b/services/network/network_service_network_delegate.cc index 54de03c..addc5c0 100644 --- a/services/network/network_service_network_delegate.cc +++ b/services/network/network_service_network_delegate.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" #include "base/debug/dump_without_crashing.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/strings/utf_string_conversions.h" #include "base/types/optional_util.h"
diff --git a/services/network/network_service_proxy_delegate.cc b/services/network/network_service_proxy_delegate.cc index 8deca2b..2ed6e59 100644 --- a/services/network/network_service_proxy_delegate.cc +++ b/services/network/network_service_proxy_delegate.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "services/network/network_service_proxy_delegate.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "net/base/url_util.h" #include "net/http/http_request_headers.h"
diff --git a/services/network/network_service_unittest.cc b/services/network/network_service_unittest.cc index cc34e2ee..46263f1 100644 --- a/services/network/network_service_unittest.cc +++ b/services/network/network_service_unittest.cc
@@ -8,11 +8,11 @@ #include <utility> #include "base/base64.h" -#include "base/bind.h" #include "base/command_line.h" #include "base/containers/span.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/json/json_file_value_serializer.h" #include "base/path_service.h" #include "base/ranges/algorithm.h"
diff --git a/services/network/p2p/socket.cc b/services/network/p2p/socket.cc index 8149629e..667ab40 100644 --- a/services/network/p2p/socket.cc +++ b/services/network/p2p/socket.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/sys_byteorder.h" #include "net/base/net_errors.h"
diff --git a/services/network/p2p/socket_manager.cc b/services/network/p2p/socket_manager.cc index be64ea5..c7f3af9 100644 --- a/services/network/p2p/socket_manager.cc +++ b/services/network/p2p/socket_manager.cc
@@ -8,7 +8,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/task/thread_pool.h"
diff --git a/services/network/p2p/socket_manager.h b/services/network/p2p/socket_manager.h index 9d3eaeff..4e204ce1 100644 --- a/services/network/p2p/socket_manager.h +++ b/services/network/p2p/socket_manager.h
@@ -12,9 +12,9 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/containers/flat_map.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/services/network/p2p/socket_tcp.cc b/services/network/p2p/socket_tcp.cc index 40faf5a..9a9dfe0 100644 --- a/services/network/p2p/socket_tcp.cc +++ b/services/network/p2p/socket_tcp.cc
@@ -7,7 +7,7 @@ #include <stddef.h> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/sys_byteorder.h" #include "base/time/time.h" #include "components/webrtc/fake_ssl_client_socket.h"
diff --git a/services/network/p2p/socket_test_utils.cc b/services/network/p2p/socket_test_utils.cc index 05b7aab..e9e995d6 100644 --- a/services/network/p2p/socket_test_utils.cc +++ b/services/network/p2p/socket_test_utils.cc
@@ -6,8 +6,8 @@ #include <stddef.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "base/sys_byteorder.h"
diff --git a/services/network/p2p/socket_udp.cc b/services/network/p2p/socket_udp.cc index cb04772..10a1dac4 100644 --- a/services/network/p2p/socket_udp.cc +++ b/services/network/p2p/socket_udp.cc
@@ -6,8 +6,8 @@ #include <tuple> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/strings/stringprintf.h"
diff --git a/services/network/p2p/socket_udp.h b/services/network/p2p/socket_udp.h index aa397f0..146d376 100644 --- a/services/network/p2p/socket_udp.h +++ b/services/network/p2p/socket_udp.h
@@ -12,9 +12,9 @@ #include <set> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/circular_deque.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/network/p2p/socket_udp_unittest.cc b/services/network/p2p/socket_udp_unittest.cc index 7e5039931..9652d41 100644 --- a/services/network/p2p/socket_udp_unittest.cc +++ b/services/network/p2p/socket_udp_unittest.cc
@@ -8,9 +8,9 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/check.h" #include "base/containers/circular_deque.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/notreached.h" #include "base/run_loop.h"
diff --git a/services/network/pending_callback_chain.cc b/services/network/pending_callback_chain.cc index 0e4de78..e36747b 100644 --- a/services/network/pending_callback_chain.cc +++ b/services/network/pending_callback_chain.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "services/network/pending_callback_chain.h" -#include "base/bind.h" +#include "base/functional/bind.h" namespace network {
diff --git a/services/network/proxy_lookup_request.cc b/services/network/proxy_lookup_request.cc index c61f7617..74ed5e14 100644 --- a/services/network/proxy_lookup_request.cc +++ b/services/network/proxy_lookup_request.cc
@@ -6,7 +6,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" #include "net/http/http_network_session.h" #include "net/http/http_transaction_factory.h"
diff --git a/services/network/proxy_resolver_factory_mojo.cc b/services/network/proxy_resolver_factory_mojo.cc index 23cb31e4..ac0b8b69 100644 --- a/services/network/proxy_resolver_factory_mojo.cc +++ b/services/network/proxy_resolver_factory_mojo.cc
@@ -10,9 +10,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/raw_ptr.h"
diff --git a/services/network/proxy_resolver_factory_mojo_unittest.cc b/services/network/proxy_resolver_factory_mojo_unittest.cc index 48dbcc1..33b15a4e 100644 --- a/services/network/proxy_resolver_factory_mojo_unittest.cc +++ b/services/network/proxy_resolver_factory_mojo_unittest.cc
@@ -12,9 +12,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/queue.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/proxy_resolving_client_socket.cc b/services/network/proxy_resolving_client_socket.cc index eaa2612..66cc2ffa 100644 --- a/services/network/proxy_resolving_client_socket.cc +++ b/services/network/proxy_resolving_client_socket.cc
@@ -8,10 +8,10 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/notreached.h" #include "net/base/io_buffer.h" #include "net/base/ip_address.h"
diff --git a/services/network/proxy_resolving_socket_mojo.cc b/services/network/proxy_resolving_socket_mojo.cc index d6afb17..25b08a7 100644 --- a/services/network/proxy_resolving_socket_mojo.cc +++ b/services/network/proxy_resolving_socket_mojo.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" #include "services/network/public/mojom/tls_socket.mojom.h" #include "services/network/socket_data_pump.h"
diff --git a/services/network/proxy_service_mojo.cc b/services/network/proxy_service_mojo.cc index 4bf6c3b..5d26b6e 100644 --- a/services/network/proxy_service_mojo.cc +++ b/services/network/proxy_service_mojo.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "net/base/network_delegate.h" #include "net/proxy_resolution/configured_proxy_resolution_service.h"
diff --git a/services/network/proxy_service_mojo_unittest.cc b/services/network/proxy_service_mojo_unittest.cc index a7e308a..b8a807f8 100644 --- a/services/network/proxy_service_mojo_unittest.cc +++ b/services/network/proxy_service_mojo_unittest.cc
@@ -9,7 +9,7 @@ #include <string> #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/strings/utf_string_conversions.h"
diff --git a/services/network/public/cpp/cert_verifier/mojo_cert_verifier.cc b/services/network/public/cpp/cert_verifier/mojo_cert_verifier.cc index 2fcb699..b84a344 100644 --- a/services/network/public/cpp/cert_verifier/mojo_cert_verifier.cc +++ b/services/network/public/cpp/cert_verifier/mojo_cert_verifier.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/network/public/cpp/cert_verifier/mojo_cert_verifier.h b/services/network/public/cpp/cert_verifier/mojo_cert_verifier.h index 1916580..ac0038a9 100644 --- a/services/network/public/cpp/cert_verifier/mojo_cert_verifier.h +++ b/services/network/public/cpp/cert_verifier/mojo_cert_verifier.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_CERT_VERIFIER_MOJO_CERT_VERIFIER_H_ #define SERVICES_NETWORK_PUBLIC_CPP_CERT_VERIFIER_MOJO_CERT_VERIFIER_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/completion_once_callback.h"
diff --git a/services/network/public/cpp/cert_verifier/mojo_cert_verifier_unittest.cc b/services/network/public/cpp/cert_verifier/mojo_cert_verifier_unittest.cc index 86f4f96..dd41f44 100644 --- a/services/network/public/cpp/cert_verifier/mojo_cert_verifier_unittest.cc +++ b/services/network/public/cpp/cert_verifier/mojo_cert_verifier_unittest.cc
@@ -7,8 +7,8 @@ #include <map> #include <tuple> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/bind.h"
diff --git a/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.cc b/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.cc index 57d34ac..c0562b9 100644 --- a/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.cc +++ b/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory_unittest.cc b/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory_unittest.cc index a677c7a0..efb767f 100644 --- a/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory_unittest.cc +++ b/services/network/public/cpp/cross_thread_pending_shared_url_loader_factory_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/public/cpp/data_pipe_to_source_stream.cc b/services/network/public/cpp/data_pipe_to_source_stream.cc index c18ebdc4..64e34735 100644 --- a/services/network/public/cpp/data_pipe_to_source_stream.cc +++ b/services/network/public/cpp/data_pipe_to_source_stream.cc
@@ -7,7 +7,7 @@ #include <utility> #include "base/auto_reset.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/numerics/checked_math.h" #include "base/task/sequenced_task_runner.h" #include "net/base/io_buffer.h"
diff --git a/services/network/public/cpp/empty_url_loader_client.cc b/services/network/public/cpp/empty_url_loader_client.cc index e173604..8c05577 100644 --- a/services/network/public/cpp/empty_url_loader_client.cc +++ b/services/network/public/cpp/empty_url_loader_client.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "services/network/public/cpp/record_ontransfersizeupdate_utils.h" #include "services/network/public/mojom/early_hints.mojom.h" #include "services/network/public/mojom/url_response_head.mojom.h"
diff --git a/services/network/public/cpp/empty_url_loader_client.h b/services/network/public/cpp/empty_url_loader_client.h index 873da3d..886fe44 100644 --- a/services/network/public/cpp/empty_url_loader_client.h +++ b/services/network/public/cpp/empty_url_loader_client.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/network/public/cpp/network_connection_tracker.cc b/services/network/public/cpp/network_connection_tracker.cc index 1d2a7b9..3984bb6 100644 --- a/services/network/public/cpp/network_connection_tracker.cc +++ b/services/network/public/cpp/network_connection_tracker.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/observer_list.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/network/public/cpp/network_connection_tracker.h b/services/network/public/cpp/network_connection_tracker.h index 89279ebf..ffcc2769 100644 --- a/services/network/public/cpp/network_connection_tracker.h +++ b/services/network/public/cpp/network_connection_tracker.h
@@ -9,8 +9,8 @@ #include <memory> #include "base/atomicops.h" -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/observer_list_threadsafe.h" #include "base/scoped_observation_traits.h"
diff --git a/services/network/public/cpp/network_connection_tracker_unittest.cc b/services/network/public/cpp/network_connection_tracker_unittest.cc index 4f59793..4773aa57 100644 --- a/services/network/public/cpp/network_connection_tracker_unittest.cc +++ b/services/network/public/cpp/network_connection_tracker_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <tuple> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/public/cpp/network_quality_tracker.cc b/services/network/public/cpp/network_quality_tracker.cc index 3f4c567..cff02a14 100644 --- a/services/network/public/cpp/network_quality_tracker.cc +++ b/services/network/public/cpp/network_quality_tracker.cc
@@ -7,8 +7,8 @@ #include <limits> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/observer_list.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/network/public/mojom/network_service.mojom.h"
diff --git a/services/network/public/cpp/network_quality_tracker.h b/services/network/public/cpp/network_quality_tracker.h index 0ecb42ce..4ae4c7b 100644 --- a/services/network/public/cpp/network_quality_tracker.h +++ b/services/network/public/cpp/network_quality_tracker.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_NETWORK_QUALITY_TRACKER_H_ #define SERVICES_NETWORK_PUBLIC_CPP_NETWORK_QUALITY_TRACKER_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/observer_list.h" #include "base/sequence_checker.h" #include "base/time/time.h"
diff --git a/services/network/public/cpp/network_quality_tracker_unittest.cc b/services/network/public/cpp/network_quality_tracker_unittest.cc index c1b6bfc3..656ca73 100644 --- a/services/network/public/cpp/network_quality_tracker_unittest.cc +++ b/services/network/public/cpp/network_quality_tracker_unittest.cc
@@ -6,7 +6,7 @@ #include <limits> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/public/cpp/server/http_server.cc b/services/network/public/cpp/server/http_server.cc index 074df51b..a6b5d2b 100644 --- a/services/network/public/cpp/server/http_server.cc +++ b/services/network/public/cpp/server/http_server.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/network/public/cpp/server/http_server_unittest.cc b/services/network/public/cpp/server/http_server_unittest.cc index d848cdc7..d42423e 100644 --- a/services/network/public/cpp/server/http_server_unittest.cc +++ b/services/network/public/cpp/server/http_server_unittest.cc
@@ -10,8 +10,8 @@ #include <vector> #include "base/auto_reset.h" -#include "base/bind.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h"
diff --git a/services/network/public/cpp/session_cookie_delete_predicate.h b/services/network/public/cpp/session_cookie_delete_predicate.h index a13b8125..5d98d24 100644 --- a/services/network/public/cpp/session_cookie_delete_predicate.h +++ b/services/network/public/cpp/session_cookie_delete_predicate.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" namespace network { // A DeleteCookiePredicate callback function decides if the cookie associated
diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc index d0e715a..a85ba8d 100644 --- a/services/network/public/cpp/simple_url_loader.cc +++ b/services/network/public/cpp/simple_url_loader.cc
@@ -9,12 +9,12 @@ #include <algorithm> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" #include "base/debug/alias.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h"
diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/public/cpp/simple_url_loader.h index 12e9352c..614fd19 100644 --- a/services/network/public/cpp/simple_url_loader.h +++ b/services/network/public/cpp/simple_url_loader.h
@@ -12,8 +12,8 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "services/network/public/cpp/url_loader_completion_status.h" #include "services/network/public/mojom/url_response_head.mojom-forward.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/services/network/public/cpp/simple_url_loader_stream_consumer.h b/services/network/public/cpp/simple_url_loader_stream_consumer.h index 737f72d..be3d6a7 100644 --- a/services/network/public/cpp/simple_url_loader_stream_consumer.h +++ b/services/network/public/cpp/simple_url_loader_stream_consumer.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_SIMPLE_URL_LOADER_STREAM_CONSUMER_H_ #define SERVICES_NETWORK_PUBLIC_CPP_SIMPLE_URL_LOADER_STREAM_CONSUMER_H_ -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/strings/string_piece.h" namespace network {
diff --git a/services/network/public/cpp/simple_url_loader_throttle.h b/services/network/public/cpp/simple_url_loader_throttle.h index acae642..fedcaa51 100644 --- a/services/network/public/cpp/simple_url_loader_throttle.h +++ b/services/network/public/cpp/simple_url_loader_throttle.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_SIMPLE_URL_LOADER_THROTTLE_H_ #define SERVICES_NETWORK_PUBLIC_CPP_SIMPLE_URL_LOADER_THROTTLE_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/time/time.h" #include "base/timer/timer.h"
diff --git a/services/network/public/cpp/simple_url_loader_unittest.cc b/services/network/public/cpp/simple_url_loader_unittest.cc index e0171ff9..ac238dcd1 100644 --- a/services/network/public/cpp/simple_url_loader_unittest.cc +++ b/services/network/public/cpp/simple_url_loader_unittest.cc
@@ -12,12 +12,12 @@ #include <vector> #include "base/base_paths.h" -#include "base/bind.h" #include "base/check_op.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/notreached.h"
diff --git a/services/network/public/cpp/single_request_url_loader_factory.cc b/services/network/public/cpp/single_request_url_loader_factory.cc index 2665e44..a0a6332b 100644 --- a/services/network/public/cpp/single_request_url_loader_factory.cc +++ b/services/network/public/cpp/single_request_url_loader_factory.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/task/sequenced_task_runner.h" #include "services/network/public/cpp/resource_request.h"
diff --git a/services/network/public/cpp/source_stream_to_data_pipe.cc b/services/network/public/cpp/source_stream_to_data_pipe.cc index 40bcf6f..bfd85b1a 100644 --- a/services/network/public/cpp/source_stream_to_data_pipe.cc +++ b/services/network/public/cpp/source_stream_to_data_pipe.cc
@@ -4,7 +4,7 @@ #include "services/network/public/cpp/source_stream_to_data_pipe.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/numerics/checked_math.h" #include "base/task/sequenced_task_runner.h" #include "net/filter/source_stream.h"
diff --git a/services/network/public/cpp/source_stream_to_data_pipe.h b/services/network/public/cpp/source_stream_to_data_pipe.h index 8fe1e15e..321f97e 100644 --- a/services/network/public/cpp/source_stream_to_data_pipe.h +++ b/services/network/public/cpp/source_stream_to_data_pipe.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_SOURCE_STREAM_TO_DATA_PIPE_H_ #define SERVICES_NETWORK_PUBLIC_CPP_SOURCE_STREAM_TO_DATA_PIPE_H_ -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/system/data_pipe.h" #include "mojo/public/cpp/system/simple_watcher.h"
diff --git a/services/network/public/cpp/source_stream_to_data_pipe_unittest.cc b/services/network/public/cpp/source_stream_to_data_pipe_unittest.cc index 6505359..752e3d3 100644 --- a/services/network/public/cpp/source_stream_to_data_pipe_unittest.cc +++ b/services/network/public/cpp/source_stream_to_data_pipe_unittest.cc
@@ -4,7 +4,7 @@ #include "services/network/public/cpp/source_stream_to_data_pipe.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/test/task_environment.h" #include "net/filter/mock_source_stream.h"
diff --git a/services/network/public/cpp/transferable_directory.h b/services/network/public/cpp/transferable_directory.h index 6041d71..b108c63 100644 --- a/services/network/public/cpp/transferable_directory.h +++ b/services/network/public/cpp/transferable_directory.h
@@ -5,9 +5,9 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_TRANSFERABLE_DIRECTORY_H_ #define SERVICES_NETWORK_PUBLIC_CPP_TRANSFERABLE_DIRECTORY_H_ -#include "base/callback_helpers.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback_helpers.h" #include "mojo/public/cpp/bindings/union_traits.h" #include "mojo/public/cpp/platform/platform_handle.h"
diff --git a/services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h b/services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h index 6167e72..1695464 100644 --- a/services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h +++ b/services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_PUBLIC_CPP_WEAK_WRAPPER_SHARED_URL_LOADER_FACTORY_H_ #define SERVICES_NETWORK_PUBLIC_CPP_WEAK_WRAPPER_SHARED_URL_LOADER_FACTORY_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/network/resolve_host_request.cc b/services/network/resolve_host_request.cc index fd76753f..cb4d2891 100644 --- a/services/network/resolve_host_request.cc +++ b/services/network/resolve_host_request.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/strings/string_util.h" #include "base/types/optional_util.h"
diff --git a/services/network/resource_scheduler/resource_scheduler.cc b/services/network/resource_scheduler/resource_scheduler.cc index 3584f4c..4f0741e 100644 --- a/services/network/resource_scheduler/resource_scheduler.cc +++ b/services/network/resource_scheduler/resource_scheduler.cc
@@ -9,8 +9,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h"
diff --git a/services/network/resource_scheduler/resource_scheduler.h b/services/network/resource_scheduler/resource_scheduler.h index 3a72d6a..f321bfa 100644 --- a/services/network/resource_scheduler/resource_scheduler.h +++ b/services/network/resource_scheduler/resource_scheduler.h
@@ -14,10 +14,10 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/compiler_specific.h" #include "base/component_export.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h"
diff --git a/services/network/resource_scheduler/resource_scheduler_unittest.cc b/services/network/resource_scheduler/resource_scheduler_unittest.cc index aec617c..882407b9 100644 --- a/services/network/resource_scheduler/resource_scheduler_unittest.cc +++ b/services/network/resource_scheduler/resource_scheduler_unittest.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h"
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc index b5a0107..46cc41e 100644 --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc
@@ -8,9 +8,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/compiler_specific.h" // for [[fallthrough]]; +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_macros.h"
diff --git a/services/network/restricted_cookie_manager_unittest.cc b/services/network/restricted_cookie_manager_unittest.cc index e7f276f..427a1bc 100644 --- a/services/network/restricted_cookie_manager_unittest.cc +++ b/services/network/restricted_cookie_manager_unittest.cc
@@ -6,8 +6,8 @@ #include <set> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/bind.h"
diff --git a/services/network/sct_auditing/sct_auditing_cache.cc b/services/network/sct_auditing/sct_auditing_cache.cc index ba7f85b..519c2495 100644 --- a/services/network/sct_auditing/sct_auditing_cache.cc +++ b/services/network/sct_auditing/sct_auditing_cache.cc
@@ -6,7 +6,7 @@ #include <algorithm> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/metrics/histogram_functions.h" #include "base/rand_util.h" #include "base/time/time.h"
diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/network/sct_auditing/sct_auditing_handler.cc index 7e3f230..5e38f3f 100644 --- a/services/network/sct_auditing/sct_auditing_handler.cc +++ b/services/network/sct_auditing/sct_auditing_handler.cc
@@ -5,11 +5,11 @@ #include "services/network/sct_auditing/sct_auditing_handler.h" #include "base/base64.h" -#include "base/bind.h" #include "base/containers/cxx20_erase.h" #include "base/containers/span.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" #include "base/metrics/histogram_functions.h"
diff --git a/services/network/sct_auditing/sct_auditing_reporter.cc b/services/network/sct_auditing/sct_auditing_reporter.cc index 484a1f1..4fc7935a 100644 --- a/services/network/sct_auditing/sct_auditing_reporter.cc +++ b/services/network/sct_auditing/sct_auditing_reporter.cc
@@ -5,9 +5,9 @@ #include "services/network/sct_auditing/sct_auditing_reporter.h" #include "base/base64.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/json/json_reader.h" #include "base/json/values_util.h" #include "base/metrics/histogram_functions.h"
diff --git a/services/network/sct_auditing/sct_auditing_reporter.h b/services/network/sct_auditing/sct_auditing_reporter.h index 0e33ed4..ab06610b 100644 --- a/services/network/sct_auditing/sct_auditing_reporter.h +++ b/services/network/sct_auditing/sct_auditing_reporter.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h"
diff --git a/services/network/sct_auditing/sct_auditing_reporter_unittest.cc b/services/network/sct_auditing/sct_auditing_reporter_unittest.cc index 0d426e5..2b5ee883 100644 --- a/services/network/sct_auditing/sct_auditing_reporter_unittest.cc +++ b/services/network/sct_auditing/sct_auditing_reporter_unittest.cc
@@ -5,7 +5,7 @@ #include "services/network/sct_auditing/sct_auditing_reporter.h" #include "base/base64.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_number_conversions.h" #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/services/network/session_cleanup_cookie_store.cc b/services/network/session_cleanup_cookie_store.cc index 02423adf..2ba9d24 100644 --- a/services/network/session_cleanup_cookie_store.cc +++ b/services/network/session_cleanup_cookie_store.cc
@@ -7,10 +7,10 @@ #include <list> #include <memory> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/task/sequenced_task_runner.h" #include "base/values.h"
diff --git a/services/network/session_cleanup_cookie_store.h b/services/network/session_cleanup_cookie_store.h index 82f34374..001e551 100644 --- a/services/network/session_cleanup_cookie_store.h +++ b/services/network/session_cleanup_cookie_store.h
@@ -10,9 +10,9 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/compiler_specific.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "net/cookies/cookie_monster.h" #include "net/extras/sqlite/sqlite_persistent_cookie_store.h"
diff --git a/services/network/session_cleanup_cookie_store_unittest.cc b/services/network/session_cleanup_cookie_store_unittest.cc index 8132aff..22aa2d3 100644 --- a/services/network/session_cleanup_cookie_store_unittest.cc +++ b/services/network/session_cleanup_cookie_store_unittest.cc
@@ -4,9 +4,9 @@ #include "services/network/session_cleanup_cookie_store.h" -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/socket_data_pump.cc b/services/network/socket_data_pump.cc index adcb6a1..13c7bbcc 100644 --- a/services/network/socket_data_pump.cc +++ b/services/network/socket_data_pump.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/numerics/safe_conversions.h"
diff --git a/services/network/socket_data_pump_unittest.cc b/services/network/socket_data_pump_unittest.cc index b58f7634..7388d716 100644 --- a/services/network/socket_data_pump_unittest.cc +++ b/services/network/socket_data_pump_unittest.cc
@@ -7,7 +7,7 @@ #include <utility> #include <vector> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/tcp_bound_socket.cc b/services/network/tcp_bound_socket.cc index 0d5e4ca..ee571cc0 100644 --- a/services/network/tcp_bound_socket.cc +++ b/services/network/tcp_bound_socket.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/numerics/safe_conversions.h" #include "net/base/ip_endpoint.h"
diff --git a/services/network/tcp_bound_socket_unittest.cc b/services/network/tcp_bound_socket_unittest.cc index a1e8f1e..735cfcb 100644 --- a/services/network/tcp_bound_socket_unittest.cc +++ b/services/network/tcp_bound_socket_unittest.cc
@@ -8,7 +8,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/test/bind.h"
diff --git a/services/network/tcp_client_socket_brokered.cc b/services/network/tcp_client_socket_brokered.cc index 20bd765b..c9b05524 100644 --- a/services/network/tcp_client_socket_brokered.cc +++ b/services/network/tcp_client_socket_brokered.cc
@@ -4,7 +4,7 @@ #include "services/network/tcp_client_socket_brokered.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "build/build_config.h" #include "net/base/address_list.h"
diff --git a/services/network/tcp_connected_socket.cc b/services/network/tcp_connected_socket.cc index f9f1a9d..49b407d 100644 --- a/services/network/tcp_connected_socket.cc +++ b/services/network/tcp_connected_socket.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" #include "base/cxx17_backports.h" +#include "base/functional/bind.h" #include "base/numerics/safe_conversions.h" #include "net/base/net_errors.h" #include "net/log/net_log.h"
diff --git a/services/network/tcp_server_socket.cc b/services/network/tcp_server_socket.cc index a408c6b..2c1cae30 100644 --- a/services/network/tcp_server_socket.cc +++ b/services/network/tcp_server_socket.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/numerics/safe_conversions.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/network/tcp_socket_unittest.cc b/services/network/tcp_socket_unittest.cc index 4965ad65..1ed305ef 100644 --- a/services/network/tcp_socket_unittest.cc +++ b/services/network/tcp_socket_unittest.cc
@@ -7,9 +7,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h"
diff --git a/services/network/test/test_cookie_manager.cc b/services/network/test/test_cookie_manager.cc index 8647fd6c..472b2e6 100644 --- a/services/network/test/test_cookie_manager.cc +++ b/services/network/test/test_cookie_manager.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "net/cookies/canonical_cookie.h" #include "net/cookies/cookie_inclusion_status.h"
diff --git a/services/network/test/test_cookie_manager.h b/services/network/test/test_cookie_manager.h index 428aaeb..eef701ee 100644 --- a/services/network/test/test_cookie_manager.h +++ b/services/network/test/test_cookie_manager.h
@@ -8,7 +8,7 @@ #include <string> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/network/public/mojom/cookie_manager.mojom.h"
diff --git a/services/network/test/test_data_pipe_getter.cc b/services/network/test/test_data_pipe_getter.cc index d1eeebc..747a77b 100644 --- a/services/network/test/test_data_pipe_getter.cc +++ b/services/network/test/test_data_pipe_getter.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "services/network/test/test_data_pipe_getter.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include <algorithm>
diff --git a/services/network/test/test_dns_util.cc b/services/network/test/test_dns_util.cc index b7ad4f67..dc4eefd 100644 --- a/services/network/test/test_dns_util.cc +++ b/services/network/test/test_dns_util.cc
@@ -4,7 +4,7 @@ #include "services/network/test/test_dns_util.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/network/test/test_network_connection_tracker.cc b/services/network/test/test_network_connection_tracker.cc index 1819caf9..4c32ebe 100644 --- a/services/network/test/test_network_connection_tracker.cc +++ b/services/network/test/test_network_connection_tracker.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/test/test_url_loader_client.cc b/services/network/test/test_url_loader_client.cc index 087c4f5..e60f69f0 100644 --- a/services/network/test/test_url_loader_client.cc +++ b/services/network/test/test_url_loader_client.cc
@@ -4,7 +4,7 @@ #include "services/network/test/test_url_loader_client.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "services/network/public/mojom/early_hints.mojom.h"
diff --git a/services/network/test/test_url_loader_client.h b/services/network/test/test_url_loader_client.h index 77fbbb1..b26afb7 100644 --- a/services/network/test/test_url_loader_client.h +++ b/services/network/test/test_url_loader_client.h
@@ -8,7 +8,7 @@ #include <stdint.h> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/c/system/data_pipe.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/network/test/trust_token_request_handler.cc b/services/network/test/trust_token_request_handler.cc index 9b1c53a..c188fb35 100644 --- a/services/network/test/trust_token_request_handler.cc +++ b/services/network/test/trust_token_request_handler.cc
@@ -5,9 +5,9 @@ #include "services/network/test/trust_token_request_handler.h" #include "base/base64.h" -#include "base/callback.h" #include "base/check.h" #include "base/containers/span.h" +#include "base/functional/callback.h" #include "base/json/json_string_value_serializer.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_piece.h"
diff --git a/services/network/test_mojo_proxy_resolver_factory.cc b/services/network/test_mojo_proxy_resolver_factory.cc index 8e47bff..ae5b34d 100644 --- a/services/network/test_mojo_proxy_resolver_factory.cc +++ b/services/network/test_mojo_proxy_resolver_factory.cc
@@ -4,9 +4,9 @@ #include "services/network/test_mojo_proxy_resolver_factory.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" namespace network {
diff --git a/services/network/throttling/throttling_controller_unittest.cc b/services/network/throttling/throttling_controller_unittest.cc index abcd0c55..b273a590 100644 --- a/services/network/throttling/throttling_controller_unittest.cc +++ b/services/network/throttling/throttling_controller_unittest.cc
@@ -10,7 +10,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/network/throttling/throttling_network_interceptor.cc b/services/network/throttling/throttling_network_interceptor.cc index b57effd..bd776ef 100644 --- a/services/network/throttling/throttling_network_interceptor.cc +++ b/services/network/throttling/throttling_network_interceptor.cc
@@ -9,7 +9,7 @@ #include <limits> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/time/time.h" #include "net/base/net_errors.h" #include "services/network/throttling/network_conditions.h"
diff --git a/services/network/throttling/throttling_network_transaction.cc b/services/network/throttling/throttling_network_transaction.cc index ca30dbe..acbdcf75 100644 --- a/services/network/throttling/throttling_network_transaction.cc +++ b/services/network/throttling/throttling_network_transaction.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/time/time.h" #include "net/base/load_timing_info.h" #include "net/base/net_errors.h"
diff --git a/services/network/throttling/throttling_upload_data_stream.cc b/services/network/throttling/throttling_upload_data_stream.cc index 57d2d21..b38d99d 100644 --- a/services/network/throttling/throttling_upload_data_stream.cc +++ b/services/network/throttling/throttling_upload_data_stream.cc
@@ -4,7 +4,7 @@ #include "services/network/throttling/throttling_upload_data_stream.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" namespace network {
diff --git a/services/network/tls_client_socket.cc b/services/network/tls_client_socket.cc index 8662b87..10d2e88 100644 --- a/services/network/tls_client_socket.cc +++ b/services/network/tls_client_socket.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "net/base/net_errors.h" #include "net/socket/client_socket_factory.h"
diff --git a/services/network/tls_client_socket_unittest.cc b/services/network/tls_client_socket_unittest.cc index 3e97380..d93bd0ba 100644 --- a/services/network/tls_client_socket_unittest.cc +++ b/services/network/tls_client_socket_unittest.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/task_environment.h"
diff --git a/services/network/transitional_url_loader_factory_owner.cc b/services/network/transitional_url_loader_factory_owner.cc index 17fe9b0f..c95ac67 100644 --- a/services/network/transitional_url_loader_factory_owner.cc +++ b/services/network/transitional_url_loader_factory_owner.cc
@@ -4,7 +4,7 @@ #include "services/network/transitional_url_loader_factory_owner.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" #include "base/memory/ref_counted_delete_on_sequence.h"
diff --git a/services/network/trust_tokens/BUILD.gn b/services/network/trust_tokens/BUILD.gn index 8d21fb0..5b25f5be 100644 --- a/services/network/trust_tokens/BUILD.gn +++ b/services/network/trust_tokens/BUILD.gn
@@ -12,6 +12,8 @@ "//services/network:network_service", "//services/network:test_support", "//services/network:tests", + "//services/network/attribution", + "//services/network/attribution:tests", ] defines = [ "IS_NETWORK_SERVICE_IMPL" ]
diff --git a/services/network/trust_tokens/boringssl_trust_token_redemption_cryptographer.cc b/services/network/trust_tokens/boringssl_trust_token_redemption_cryptographer.cc index 7686f51..64be057 100644 --- a/services/network/trust_tokens/boringssl_trust_token_redemption_cryptographer.cc +++ b/services/network/trust_tokens/boringssl_trust_token_redemption_cryptographer.cc
@@ -5,7 +5,7 @@ #include "services/network/trust_tokens/boringssl_trust_token_redemption_cryptographer.h" #include "base/base64.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "net/http/structured_headers.h" #include "services/network/trust_tokens/scoped_boringssl_bytes.h" #include "services/network/trust_tokens/trust_token_client_data_canonicalization.h"
diff --git a/services/network/trust_tokens/in_memory_trust_token_persister.h b/services/network/trust_tokens/in_memory_trust_token_persister.h index 2ccec314..733af4f 100644 --- a/services/network/trust_tokens/in_memory_trust_token_persister.h +++ b/services/network/trust_tokens/in_memory_trust_token_persister.h
@@ -9,7 +9,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "services/network/trust_tokens/proto/public.pb.h" #include "services/network/trust_tokens/proto/storage.pb.h" #include "services/network/trust_tokens/suitable_trust_token_origin.h"
diff --git a/services/network/trust_tokens/operating_system_matching.h b/services/network/trust_tokens/operating_system_matching.h index fbc6409..f07020c 100644 --- a/services/network/trust_tokens/operating_system_matching.h +++ b/services/network/trust_tokens/operating_system_matching.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_TRUST_TOKENS_OPERATING_SYSTEM_MATCHING_H_ #define SERVICES_NETWORK_TRUST_TOKENS_OPERATING_SYSTEM_MATCHING_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "services/network/public/mojom/trust_tokens.mojom.h" namespace network {
diff --git a/services/network/trust_tokens/pending_trust_token_store.h b/services/network/trust_tokens/pending_trust_token_store.h index 47ff02b..d42351c4 100644 --- a/services/network/trust_tokens/pending_trust_token_store.h +++ b/services/network/trust_tokens/pending_trust_token_store.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/callback.h" #include "base/containers/circular_deque.h" +#include "base/functional/callback.h" #include "services/network/trust_tokens/trust_token_store.h" namespace network {
diff --git a/services/network/trust_tokens/trust_token_database_owner.h b/services/network/trust_tokens/trust_token_database_owner.h index 07a50e9..c4fda65 100644 --- a/services/network/trust_tokens/trust_token_database_owner.h +++ b/services/network/trust_tokens/trust_token_database_owner.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/trust_tokens/trust_token_key_commitment_controller.cc b/services/network/trust_tokens/trust_token_key_commitment_controller.cc index ccac16c3..e5faf22b 100644 --- a/services/network/trust_tokens/trust_token_key_commitment_controller.cc +++ b/services/network/trust_tokens/trust_token_key_commitment_controller.cc
@@ -7,7 +7,7 @@ #include <memory> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/string_util.h" #include "net/base/load_flags.h" #include "net/http/http_request_headers.h"
diff --git a/services/network/trust_tokens/trust_token_key_commitment_controller.h b/services/network/trust_tokens/trust_token_key_commitment_controller.h index 9d1a6bfa..ec2d46f 100644 --- a/services/network/trust_tokens/trust_token_key_commitment_controller.h +++ b/services/network/trust_tokens/trust_token_key_commitment_controller.h
@@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/strings/string_piece_forward.h" #include "services/network/public/cpp/simple_url_loader.h"
diff --git a/services/network/trust_tokens/trust_token_key_commitment_controller_unittest.cc b/services/network/trust_tokens/trust_token_key_commitment_controller_unittest.cc index d50d143b..fa4edf5e 100644 --- a/services/network/trust_tokens/trust_token_key_commitment_controller_unittest.cc +++ b/services/network/trust_tokens/trust_token_key_commitment_controller_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/bind.h" #include "base/test/task_environment.h" #include "net/base/load_flags.h"
diff --git a/services/network/trust_tokens/trust_token_key_commitment_getter.h b/services/network/trust_tokens/trust_token_key_commitment_getter.h index fd9266a..4442661a 100644 --- a/services/network/trust_tokens/trust_token_key_commitment_getter.h +++ b/services/network/trust_tokens/trust_token_key_commitment_getter.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_KEY_COMMITMENT_GETTER_H_ #define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_KEY_COMMITMENT_GETTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "services/network/public/mojom/trust_tokens.mojom.h" #include "url/origin.h"
diff --git a/services/network/trust_tokens/trust_token_key_commitments.h b/services/network/trust_tokens/trust_token_key_commitments.h index 32a5e33..8d6d571 100644 --- a/services/network/trust_tokens/trust_token_key_commitments.h +++ b/services/network/trust_tokens/trust_token_key_commitments.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_KEY_COMMITMENTS_H_ #define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_KEY_COMMITMENTS_H_ -#include "base/callback.h" #include "base/containers/flat_map.h" +#include "base/functional/callback.h" #include "services/network/public/mojom/trust_tokens.mojom.h" #include "services/network/trust_tokens/suitable_trust_token_origin.h" #include "services/network/trust_tokens/trust_token_key_commitment_getter.h"
diff --git a/services/network/trust_tokens/trust_token_query_answerer.h b/services/network/trust_tokens/trust_token_query_answerer.h index 34ee1ee..03da2f1 100644 --- a/services/network/trust_tokens/trust_token_query_answerer.h +++ b/services/network/trust_tokens/trust_token_query_answerer.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_QUERY_ANSWERER_H_ #define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_QUERY_ANSWERER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "services/network/public/mojom/trust_tokens.mojom.h" #include "services/network/trust_tokens/pending_trust_token_store.h"
diff --git a/services/network/trust_tokens/trust_token_request_helper.h b/services/network/trust_tokens/trust_token_request_helper.h index 7e822d9..857733d 100644 --- a/services/network/trust_tokens/trust_token_request_helper.h +++ b/services/network/trust_tokens/trust_token_request_helper.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_H_ #define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "services/network/public/mojom/trust_tokens.mojom.h" namespace net {
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory.h b/services/network/trust_tokens/trust_token_request_helper_factory.h index 4379f1c..bdcbae6 100644 --- a/services/network/trust_tokens/trust_token_request_helper_factory.h +++ b/services/network/trust_tokens/trust_token_request_helper_factory.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "net/http/http_request_headers.h" #include "net/log/net_log_with_source.h"
diff --git a/services/network/trust_tokens/trust_token_request_issuance_helper.cc b/services/network/trust_tokens/trust_token_request_issuance_helper.cc index e406d96b..21f5bb2 100644 --- a/services/network/trust_tokens/trust_token_request_issuance_helper.cc +++ b/services/network/trust_tokens/trust_token_request_issuance_helper.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/callback.h" #include "base/command_line.h" +#include "base/functional/callback.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_functions.h" #include "base/ranges/algorithm.h"
diff --git a/services/network/trust_tokens/trust_token_request_issuance_helper.h b/services/network/trust_tokens/trust_token_request_issuance_helper.h index 16860a3d..e8843ad0 100644 --- a/services/network/trust_tokens/trust_token_request_issuance_helper.h +++ b/services/network/trust_tokens/trust_token_request_issuance_helper.h
@@ -10,7 +10,7 @@ #include <string> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/strings/string_piece_forward.h"
diff --git a/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc b/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc index f721424..55682eb 100644 --- a/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc +++ b/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/no_destructor.h" #include "base/strings/stringprintf.h" #include "base/test/bind.h"
diff --git a/services/network/trust_tokens/trust_token_request_redemption_helper.cc b/services/network/trust_tokens/trust_token_request_redemption_helper.cc index 973153a..e71171b 100644 --- a/services/network/trust_tokens/trust_token_request_redemption_helper.cc +++ b/services/network/trust_tokens/trust_token_request_redemption_helper.cc
@@ -7,8 +7,8 @@ #include <algorithm> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/metrics/histogram_functions.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h"
diff --git a/services/network/trust_tokens/trust_token_request_redemption_helper.h b/services/network/trust_tokens/trust_token_request_redemption_helper.h index 212123f08..68f0668db 100644 --- a/services/network/trust_tokens/trust_token_request_redemption_helper.h +++ b/services/network/trust_tokens/trust_token_request_redemption_helper.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/strings/string_piece_forward.h"
diff --git a/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc b/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc index 59e779fa..6f92b2af 100644 --- a/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc +++ b/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/no_destructor.h" #include "base/strings/stringprintf.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/services/network/trust_tokens/trust_token_request_signing_helper.h b/services/network/trust_tokens/trust_token_request_signing_helper.h index 319ae12..dbbbadc 100644 --- a/services/network/trust_tokens/trust_token_request_signing_helper.h +++ b/services/network/trust_tokens/trust_token_request_signing_helper.h
@@ -8,9 +8,9 @@ #include <memory> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/containers/span.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "net/http/http_request_headers.h" #include "net/log/net_log_with_source.h"
diff --git a/services/network/trust_tokens/trust_token_store.h b/services/network/trust_tokens/trust_token_store.h index 1a3d50f..8a4829ad 100644 --- a/services/network/trust_tokens/trust_token_store.h +++ b/services/network/trust_tokens/trust_token_store.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h" #include "services/network/public/mojom/network_context.mojom.h"
diff --git a/services/network/trust_tokens/trust_token_store_unittest.cc b/services/network/trust_tokens/trust_token_store_unittest.cc index 17eb525..fc72c3f 100644 --- a/services/network/trust_tokens/trust_token_store_unittest.cc +++ b/services/network/trust_tokens/trust_token_store_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/task_environment.h" #include "base/time/time.h" #include "services/network/public/cpp/trust_token_parameterization.h"
diff --git a/services/network/udp_socket.cc b/services/network/udp_socket.cc index a362c94..b221e2af 100644 --- a/services/network/udp_socket.cc +++ b/services/network/udp_socket.cc
@@ -7,9 +7,9 @@ #include <algorithm> #include <utility> -#include "base/bind.h" #include "base/check_op.h" #include "base/cxx17_backports.h" +#include "base/functional/bind.h" #include "base/numerics/checked_math.h" #include "base/numerics/safe_conversions.h" #include "net/base/io_buffer.h"
diff --git a/services/network/udp_socket_unittest.cc b/services/network/udp_socket_unittest.cc index 801dc13a..00ce0073 100644 --- a/services/network/udp_socket_unittest.cc +++ b/services/network/udp_socket_unittest.cc
@@ -10,7 +10,7 @@ #include "services/network/udp_socket.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/notreached.h" #include "base/run_loop.h"
diff --git a/services/network/upload_progress_tracker.h b/services/network/upload_progress_tracker.h index e595f0f..2e2471ff 100644 --- a/services/network/upload_progress_tracker.h +++ b/services/network/upload_progress_tracker.h
@@ -7,8 +7,8 @@ #include <stdint.h> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/upload_progress_tracker_unittest.cc b/services/network/upload_progress_tracker_unittest.cc index 360d4c0..bab1e7ba 100644 --- a/services/network/upload_progress_tracker_unittest.cc +++ b/services/network/upload_progress_tracker_unittest.cc
@@ -4,7 +4,7 @@ #include "services/network/upload_progress_tracker.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/ref_counted.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc index 56199ea..ee50fdf 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc
@@ -10,13 +10,13 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/fixed_flat_set.h" #include "base/debug/alias.h" #include "base/debug/dump_without_crashing.h" #include "base/files/file.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h"
diff --git a/services/network/url_loader.h b/services/network/url_loader.h index 55bbfa3..75c9872 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h
@@ -11,8 +11,8 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/raw_ref.h" #include "base/memory/scoped_refptr.h"
diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc index f0f256bf..7e1c8a9 100644 --- a/services/network/url_loader_factory.cc +++ b/services/network/url_loader_factory.cc
@@ -8,8 +8,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/message.h"
diff --git a/services/network/url_loader_unittest.cc b/services/network/url_loader_unittest.cc index b0eb56c..7c1d147 100644 --- a/services/network/url_loader_unittest.cc +++ b/services/network/url_loader_unittest.cc
@@ -12,11 +12,11 @@ #include <vector> #include "base/auto_reset.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h"
diff --git a/services/network/url_request_context_builder_mojo_unittest.cc b/services/network/url_request_context_builder_mojo_unittest.cc index eb8c769..43463e3e 100644 --- a/services/network/url_request_context_builder_mojo_unittest.cc +++ b/services/network/url_request_context_builder_mojo_unittest.cc
@@ -4,7 +4,7 @@ #include "services/network/url_request_context_builder_mojo.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/test/task_environment.h"
diff --git a/services/network/web_bundle/web_bundle_manager.cc b/services/network/web_bundle/web_bundle_manager.cc index 0963da7..161e764 100644 --- a/services/network/web_bundle/web_bundle_manager.cc +++ b/services/network/web_bundle/web_bundle_manager.cc
@@ -4,8 +4,8 @@ #include "services/network/web_bundle/web_bundle_manager.h" -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/ranges/algorithm.h" #include "base/time/time.h"
diff --git a/services/network/web_bundle/web_bundle_url_loader_factory.cc b/services/network/web_bundle/web_bundle_url_loader_factory.cc index f4f05d1c..eba6b4fb 100644 --- a/services/network/web_bundle/web_bundle_url_loader_factory.cc +++ b/services/network/web_bundle/web_bundle_url_loader_factory.cc
@@ -4,7 +4,7 @@ #include "services/network/web_bundle/web_bundle_url_loader_factory.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/metrics/histogram_functions.h" #include "base/ranges/algorithm.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/network/web_bundle/web_bundle_url_loader_factory_unittest.cc b/services/network/web_bundle/web_bundle_url_loader_factory_unittest.cc index 1e7fb577..6fee8897 100644 --- a/services/network/web_bundle/web_bundle_url_loader_factory_unittest.cc +++ b/services/network/web_bundle/web_bundle_url_loader_factory_unittest.cc
@@ -4,7 +4,7 @@ #include "services/network/web_bundle/web_bundle_url_loader_factory.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "components/web_package/web_bundle_builder.h"
diff --git a/services/network/web_transport.cc b/services/network/web_transport.cc index ad2f680..0489f140 100644 --- a/services/network/web_transport.cc +++ b/services/network/web_transport.cc
@@ -5,7 +5,7 @@ #include "services/network/web_transport.h" #include "base/auto_reset.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/notreached.h" #include "base/strings/string_util.h"
diff --git a/services/network/websocket.cc b/services/network/websocket.cc index 4ad144b..637e57c 100644 --- a/services/network/websocket.cc +++ b/services/network/websocket.cc
@@ -11,11 +11,11 @@ #include <tuple> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" #include "base/check_op.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/raw_ptr.h"
diff --git a/services/network/websocket_factory.cc b/services/network/websocket_factory.cc index 6158732..6bcf0e1 100644 --- a/services/network/websocket_factory.cc +++ b/services/network/websocket_factory.cc
@@ -4,7 +4,7 @@ #include "services/network/websocket_factory.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/message.h" #include "net/base/isolation_info.h" #include "net/base/url_util.h"
diff --git a/services/network/websocket_factory.h b/services/network/websocket_factory.h index dbaa2be..2a8d681 100644 --- a/services/network/websocket_factory.h +++ b/services/network/websocket_factory.h
@@ -8,8 +8,8 @@ #include <set> #include <vector> -#include "base/callback_forward.h" #include "base/containers/unique_ptr_adapters.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "services/network/public/mojom/network_context.mojom.h"
diff --git a/services/network/websocket_interceptor.cc b/services/network/websocket_interceptor.cc index 183c555..bf98bb1 100644 --- a/services/network/websocket_interceptor.cc +++ b/services/network/websocket_interceptor.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "services/network/websocket_interceptor.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" #include "services/network/throttling/throttling_controller.h" #include "services/network/throttling/throttling_network_interceptor.h"
diff --git a/services/network/websocket_interceptor.h b/services/network/websocket_interceptor.h index 6594ad3..c3a44f1 100644 --- a/services/network/websocket_interceptor.h +++ b/services/network/websocket_interceptor.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_NETWORK_WEBSOCKET_INTERCEPTOR_H_ #define SERVICES_NETWORK_WEBSOCKET_INTERCEPTOR_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/unguessable_token.h" #include "services/network/throttling/scoped_throttling_token.h" #include "services/network/throttling/throttling_network_interceptor.h"
diff --git a/services/network/windows_system_proxy_resolver_mojo.cc b/services/network/windows_system_proxy_resolver_mojo.cc index fb63cc2..6766cbd 100644 --- a/services/network/windows_system_proxy_resolver_mojo.cc +++ b/services/network/windows_system_proxy_resolver_mojo.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/services/network/windows_system_proxy_resolver_mojo_unittest.cc b/services/network/windows_system_proxy_resolver_mojo_unittest.cc index dd84fb7..55bdd3fd 100644 --- a/services/network/windows_system_proxy_resolver_mojo_unittest.cc +++ b/services/network/windows_system_proxy_resolver_mojo_unittest.cc
@@ -8,8 +8,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h" #include "base/task/task_runner.h"
diff --git a/services/preferences/public/cpp/dictionary_value_update.h b/services/preferences/public/cpp/dictionary_value_update.h index aea2bd6..41003a9f 100644 --- a/services/preferences/public/cpp/dictionary_value_update.h +++ b/services/preferences/public/cpp/dictionary_value_update.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr_exclusion.h" #include "base/strings/string_piece.h" #include "base/values.h"
diff --git a/services/preferences/public/cpp/scoped_pref_update.cc b/services/preferences/public/cpp/scoped_pref_update.cc index 807fd28..6effed1 100644 --- a/services/preferences/public/cpp/scoped_pref_update.cc +++ b/services/preferences/public/cpp/scoped_pref_update.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/string_piece.h" #include "components/prefs/pref_service.h" #include "services/preferences/public/cpp/dictionary_value_update.h"
diff --git a/services/preferences/tracked/dictionary_hash_store_contents.cc b/services/preferences/tracked/dictionary_hash_store_contents.cc index 2016f3b..564109a 100644 --- a/services/preferences/tracked/dictionary_hash_store_contents.cc +++ b/services/preferences/tracked/dictionary_hash_store_contents.cc
@@ -6,8 +6,8 @@ #include <ostream> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/notreached.h" #include "base/values.h" #include "components/pref_registry/pref_registry_syncable.h"
diff --git a/services/preferences/tracked/interceptable_pref_filter.cc b/services/preferences/tracked/interceptable_pref_filter.cc index c1d3d6ea..b9dc1de 100644 --- a/services/preferences/tracked/interceptable_pref_filter.cc +++ b/services/preferences/tracked/interceptable_pref_filter.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" InterceptablePrefFilter::InterceptablePrefFilter() {} InterceptablePrefFilter::~InterceptablePrefFilter() {}
diff --git a/services/preferences/tracked/interceptable_pref_filter.h b/services/preferences/tracked/interceptable_pref_filter.h index d274e71..08dcd9f 100644 --- a/services/preferences/tracked/interceptable_pref_filter.h +++ b/services/preferences/tracked/interceptable_pref_filter.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_PREFERENCES_TRACKED_INTERCEPTABLE_PREF_FILTER_H_ #define SERVICES_PREFERENCES_TRACKED_INTERCEPTABLE_PREF_FILTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/values.h" #include "components/prefs/pref_filter.h"
diff --git a/services/preferences/tracked/interceptable_pref_filter_unittest.cc b/services/preferences/tracked/interceptable_pref_filter_unittest.cc index beb710c..517c8a5 100644 --- a/services/preferences/tracked/interceptable_pref_filter_unittest.cc +++ b/services/preferences/tracked/interceptable_pref_filter_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/values.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/services/preferences/tracked/pref_hash_calculator.cc b/services/preferences/tracked/pref_hash_calculator.cc index 87acedef..7723163 100644 --- a/services/preferences/tracked/pref_hash_calculator.cc +++ b/services/preferences/tracked/pref_hash_calculator.cc
@@ -9,7 +9,7 @@ #include <memory> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_string_value_serializer.h" #include "base/notreached.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/preferences/tracked/pref_hash_filter.cc b/services/preferences/tracked/pref_hash_filter.cc index ab40b8c..4b24a58 100644 --- a/services/preferences/tracked/pref_hash_filter.cc +++ b/services/preferences/tracked/pref_hash_filter.cc
@@ -10,8 +10,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/preferences/tracked/pref_hash_filter.h b/services/preferences/tracked/pref_hash_filter.h index 1abc7a9..a8f8137 100644 --- a/services/preferences/tracked/pref_hash_filter.h +++ b/services/preferences/tracked/pref_hash_filter.h
@@ -13,8 +13,8 @@ #include <unordered_map> #include <vector> -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/values.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/preferences/tracked/pref_hash_filter_unittest.cc b/services/preferences/tracked/pref_hash_filter_unittest.cc index 02ce91a7..12fc1c6 100644 --- a/services/preferences/tracked/pref_hash_filter_unittest.cc +++ b/services/preferences/tracked/pref_hash_filter_unittest.cc
@@ -13,8 +13,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/compiler_specific.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_base.h" #include "base/metrics/histogram_samples.h"
diff --git a/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc b/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc index eaeb0ea3..144fb44 100644 --- a/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc +++ b/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <string> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/strings/utf_string_conversions.h" #include "base/test/test_reg_util_win.h" #include "base/threading/thread.h"
diff --git a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc index cfaea103..c75e356 100644 --- a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc +++ b/services/preferences/tracked/tracked_persistent_pref_store_factory.cc
@@ -10,7 +10,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "build/build_config.h" #include "components/prefs/json_pref_store.h"
diff --git a/services/preferences/tracked/tracked_preferences_migration.cc b/services/preferences/tracked/tracked_preferences_migration.cc index b82c365..a326592 100644 --- a/services/preferences/tracked/tracked_preferences_migration.cc +++ b/services/preferences/tracked/tracked_preferences_migration.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/metrics/histogram.h" #include "base/values.h"
diff --git a/services/preferences/tracked/tracked_preferences_migration.h b/services/preferences/tracked/tracked_preferences_migration.h index dae11de..a34ced78 100644 --- a/services/preferences/tracked/tracked_preferences_migration.h +++ b/services/preferences/tracked/tracked_preferences_migration.h
@@ -9,7 +9,7 @@ #include <set> #include <string> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "components/prefs/pref_name_set.h" #include "services/preferences/tracked/pref_hash_store.h"
diff --git a/services/preferences/tracked/tracked_preferences_migration_unittest.cc b/services/preferences/tracked/tracked_preferences_migration_unittest.cc index 0ba141d..a6acad4 100644 --- a/services/preferences/tracked/tracked_preferences_migration_unittest.cc +++ b/services/preferences/tracked/tracked_preferences_migration_unittest.cc
@@ -10,8 +10,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/strings/string_split.h" #include "base/values.h" #include "components/prefs/pref_name_set.h"
diff --git a/services/proxy_resolver/BUILD.gn b/services/proxy_resolver/BUILD.gn index f4371e2f..fda5685 100644 --- a/services/proxy_resolver/BUILD.gn +++ b/services/proxy_resolver/BUILD.gn
@@ -2,7 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") import("//v8/gni/v8.gni") source_set("lib") { @@ -76,14 +75,6 @@ deps += [ "//gin" ] } - if (is_android) { - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } - } - configs += [ "//v8:external_startup_data" ] data = [ "test/data/" ]
diff --git a/services/proxy_resolver/host_resolver_mojo.cc b/services/proxy_resolver/host_resolver_mojo.cc index f84ff38..66ec155d 100644 --- a/services/proxy_resolver/host_resolver_mojo.cc +++ b/services/proxy_resolver/host_resolver_mojo.cc
@@ -8,9 +8,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/proxy_resolver/host_resolver_mojo_unittest.cc b/services/proxy_resolver/host_resolver_mojo_unittest.cc index 45facdf..396a311 100644 --- a/services/proxy_resolver/host_resolver_mojo_unittest.cc +++ b/services/proxy_resolver/host_resolver_mojo_unittest.cc
@@ -9,7 +9,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/task_environment.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/ip_address.h"
diff --git a/services/proxy_resolver/mock_proxy_host_resolver.cc b/services/proxy_resolver/mock_proxy_host_resolver.cc index 8977c58..28d6f784 100644 --- a/services/proxy_resolver/mock_proxy_host_resolver.cc +++ b/services/proxy_resolver/mock_proxy_host_resolver.cc
@@ -4,8 +4,8 @@ #include "services/proxy_resolver/mock_proxy_host_resolver.h" -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h"
diff --git a/services/proxy_resolver/mock_proxy_host_resolver.h b/services/proxy_resolver/mock_proxy_host_resolver.h index f3d36d8..4126aa0 100644 --- a/services/proxy_resolver/mock_proxy_host_resolver.h +++ b/services/proxy_resolver/mock_proxy_host_resolver.h
@@ -12,7 +12,7 @@ #include <utility> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "net/base/ip_address.h" #include "net/proxy_resolution/proxy_resolve_dns_operation.h" #include "services/proxy_resolver/proxy_host_resolver.h"
diff --git a/services/proxy_resolver/proxy_resolver_factory_impl.cc b/services/proxy_resolver/proxy_resolver_factory_impl.cc index c10290f..8f0e88ca 100644 --- a/services/proxy_resolver/proxy_resolver_factory_impl.cc +++ b/services/proxy_resolver/proxy_resolver_factory_impl.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/proxy_resolver/proxy_resolver_factory_impl.h b/services/proxy_resolver/proxy_resolver_factory_impl.h index bb902880..bb681437 100644 --- a/services/proxy_resolver/proxy_resolver_factory_impl.h +++ b/services/proxy_resolver/proxy_resolver_factory_impl.h
@@ -9,7 +9,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/unique_receiver_set.h"
diff --git a/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc b/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc index 53de718..53f29c47 100644 --- a/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc +++ b/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/services/proxy_resolver/proxy_resolver_impl.cc b/services/proxy_resolver/proxy_resolver_impl.cc index b55388b2..3674796 100644 --- a/services/proxy_resolver/proxy_resolver_impl.cc +++ b/services/proxy_resolver/proxy_resolver_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/net_errors.h"
diff --git a/services/proxy_resolver/proxy_resolver_impl_unittest.cc b/services/proxy_resolver/proxy_resolver_impl_unittest.cc index 320e1aa..7f626bb 100644 --- a/services/proxy_resolver/proxy_resolver_impl_unittest.cc +++ b/services/proxy_resolver/proxy_resolver_impl_unittest.cc
@@ -8,7 +8,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/ranges/algorithm.h"
diff --git a/services/proxy_resolver/proxy_resolver_v8_tracing.cc b/services/proxy_resolver/proxy_resolver_v8_tracing.cc index e1201c0..3f613dcc 100644 --- a/services/proxy_resolver/proxy_resolver_v8_tracing.cc +++ b/services/proxy_resolver/proxy_resolver_v8_tracing.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/strings/stringprintf.h" #include "base/synchronization/atomic_flag.h"
diff --git a/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc b/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc index a4a8bd7..91bd235 100644 --- a/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc +++ b/services/proxy_resolver/proxy_resolver_v8_tracing_unittest.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/path_service.h" #include "base/run_loop.h"
diff --git a/services/proxy_resolver_win/windows_system_proxy_resolver_impl.cc b/services/proxy_resolver_win/windows_system_proxy_resolver_impl.cc index 6910305..6be0cd8 100644 --- a/services/proxy_resolver_win/windows_system_proxy_resolver_impl.cc +++ b/services/proxy_resolver_win/windows_system_proxy_resolver_impl.cc
@@ -7,7 +7,7 @@ #include <cwchar> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h"
diff --git a/services/proxy_resolver_win/windows_system_proxy_resolver_impl_unittest.cc b/services/proxy_resolver_win/windows_system_proxy_resolver_impl_unittest.cc index 16492684..fbadd47 100644 --- a/services/proxy_resolver_win/windows_system_proxy_resolver_impl_unittest.cc +++ b/services/proxy_resolver_win/windows_system_proxy_resolver_impl_unittest.cc
@@ -12,7 +12,7 @@ #include <string> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/weak_ptr.h"
diff --git a/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc b/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc index 4a7d1a57..1db9f82 100644 --- a/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc +++ b/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
@@ -9,10 +9,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ref_counted.h"
diff --git a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc index 42e1c3e..81b4ecf2 100644 --- a/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc +++ b/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/resource_coordinator/memory_instrumentation/graph.cc b/services/resource_coordinator/memory_instrumentation/graph.cc index d0ffae6..08853b6 100644 --- a/services/resource_coordinator/memory_instrumentation/graph.cc +++ b/services/resource_coordinator/memory_instrumentation/graph.cc
@@ -4,9 +4,9 @@ #include "services/resource_coordinator/memory_instrumentation/graph.h" -#include "base/callback.h" #include "base/containers/adapters.h" #include "base/containers/contains.h" +#include "base/functional/callback.h" #include "base/strings/string_piece.h" #include "base/strings/string_tokenizer.h"
diff --git a/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc b/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc index 75b472b..3769269 100644 --- a/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc +++ b/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
@@ -8,10 +8,10 @@ #include <utility> -#include "base/bind.h" #include "base/command_line.h" #include "base/containers/contains.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/strings/strcat.h"
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc index 7e3b3d00..daa2f979 100644 --- a/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc +++ b/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
@@ -4,9 +4,9 @@ #include "services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/flat_map.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_piece.h" #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc index 5974de6..e9fc7a7 100644 --- a/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc +++ b/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc
@@ -4,7 +4,7 @@ #include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h" -#include "base/bind.h" +#include "base/functional/bind.h" namespace memory_instrumentation { namespace {
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h b/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h index 2f983e4..445b798 100644 --- a/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h +++ b/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_INSTRUMENTATION_MEMORY_INSTRUMENTATION_H_ #define SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_INSTRUMENTATION_MEMORY_INSTRUMENTATION_H_ -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/trace_event/memory_dump_request_args.h" #include "mojo/public/cpp/bindings/shared_remote.h" #include "services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.h"
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc index c7ebefd..50b301c 100644 --- a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc +++ b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
@@ -4,8 +4,8 @@ #include "services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted_memory.h" #include "base/run_loop.h"
diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h index 170df27ec..c6c1244 100644 --- a/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h +++ b/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer_proto.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_INSTRUMENTATION_TRACING_OBSERVER_PROTO_H_ #define SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_INSTRUMENTATION_TRACING_OBSERVER_PROTO_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/thread_annotations.h" #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/trace_event.h"
diff --git a/services/service_manager/background_service_manager.cc b/services/service_manager/background_service_manager.cc index 9b2d0de..f786275b 100644 --- a/services/service_manager/background_service_manager.cc +++ b/services/service_manager/background_service_manager.cc
@@ -4,10 +4,10 @@ #include "services/service_manager/background_service_manager.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ref_counted.h" #include "base/message_loop/message_pump_default.h" #include "base/path_service.h"
diff --git a/services/service_manager/public/cpp/binder_registry.h b/services/service_manager/public/cpp/binder_registry.h index 6be1973fc..accd926 100644 --- a/services/service_manager/public/cpp/binder_registry.h +++ b/services/service_manager/public/cpp/binder_registry.h
@@ -9,7 +9,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/weak_ptr.h" #include "base/notreached.h"
diff --git a/services/service_manager/public/cpp/connector.cc b/services/service_manager/public/cpp/connector.cc index 301e878..1740331 100644 --- a/services/service_manager/public/cpp/connector.cc +++ b/services/service_manager/public/cpp/connector.cc
@@ -4,8 +4,8 @@ #include "services/service_manager/public/cpp/connector.h" -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/mojom/service.mojom.h"
diff --git a/services/service_manager/public/cpp/connector.h b/services/service_manager/public/cpp/connector.h index 5590dfd3..934a4bc 100644 --- a/services/service_manager/public/cpp/connector.h +++ b/services/service_manager/public/cpp/connector.h
@@ -9,7 +9,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/service_manager/public/cpp/interface_binder.h b/services/service_manager/public/cpp/interface_binder.h index 8129773..6cbedede 100644 --- a/services/service_manager/public/cpp/interface_binder.h +++ b/services/service_manager/public/cpp/interface_binder.h
@@ -8,7 +8,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/system/message_pipe.h"
diff --git a/services/service_manager/public/cpp/interface_provider.h b/services/service_manager/public/cpp/interface_provider.h index ce9aac3..c06a0a51 100644 --- a/services/service_manager/public/cpp/interface_provider.h +++ b/services/service_manager/public/cpp/interface_provider.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_PROVIDER_H_ #define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_PROVIDER_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/service_manager/public/cpp/service.cc b/services/service_manager/public/cpp/service.cc index 00ace12..d6a59d5 100644 --- a/services/service_manager/public/cpp/service.cc +++ b/services/service_manager/public/cpp/service.cc
@@ -4,7 +4,7 @@ #include "services/service_manager/public/cpp/service.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" namespace service_manager {
diff --git a/services/service_manager/public/cpp/service.h b/services/service_manager/public/cpp/service.h index 1fec7bd7..0376848d 100644 --- a/services/service_manager/public/cpp/service.h +++ b/services/service_manager/public/cpp/service.h
@@ -7,8 +7,8 @@ #include <string> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/process/process_handle.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/system/message_pipe.h"
diff --git a/services/service_manager/public/cpp/service_keepalive.cc b/services/service_manager/public/cpp/service_keepalive.cc index 59e5fe5..e5e0bcd 100644 --- a/services/service_manager/public/cpp/service_keepalive.cc +++ b/services/service_manager/public/cpp/service_keepalive.cc
@@ -4,7 +4,7 @@ #include "services/service_manager/public/cpp/service_keepalive.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/observer_list.h" #include "base/task/sequenced_task_runner.h" #include "services/service_manager/public/cpp/service_receiver.h"
diff --git a/services/service_manager/public/cpp/service_receiver.cc b/services/service_manager/public/cpp/service_receiver.cc index 4ca38312..7a80a2f3 100644 --- a/services/service_manager/public/cpp/service_receiver.cc +++ b/services/service_manager/public/cpp/service_receiver.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/synchronization/lock.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/service.h"
diff --git a/services/service_manager/public/cpp/service_receiver.h b/services/service_manager/public/cpp/service_receiver.h index 77b6e56..2597565 100644 --- a/services/service_manager/public/cpp/service_receiver.h +++ b/services/service_manager/public/cpp/service_receiver.h
@@ -7,9 +7,9 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/service_manager/public/cpp/test/test_connector_factory.cc b/services/service_manager/public/cpp/test/test_connector_factory.cc index d347da0..fdcbb72 100644 --- a/services/service_manager/public/cpp/test/test_connector_factory.cc +++ b/services/service_manager/public/cpp/test/test_connector_factory.cc
@@ -6,8 +6,8 @@ #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/guid.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
diff --git a/services/service_manager/service_instance.cc b/services/service_manager/service_instance.cc index bc6380c..807f638 100644 --- a/services/service_manager/service_instance.cc +++ b/services/service_manager/service_instance.cc
@@ -7,8 +7,8 @@ #include <set> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/ranges/algorithm.h" #include "base/strings/strcat.h"
diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc index 919a3d7..b329890e 100644 --- a/services/service_manager/service_manager.cc +++ b/services/service_manager/service_manager.cc
@@ -7,10 +7,10 @@ #include <utility> #include "base/base_paths.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/no_destructor.h" #include "base/path_service.h"
diff --git a/services/service_manager/service_process_host.h b/services/service_manager/service_process_host.h index 86b8c9c1..53f586f 100644 --- a/services/service_manager/service_process_host.h +++ b/services/service_manager/service_process_host.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/process/process_handle.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "sandbox/policy/mojom/sandbox.mojom.h"
diff --git a/services/service_manager/service_process_launcher.cc b/services/service_manager/service_process_launcher.cc index d049814..a34c819 100644 --- a/services/service_manager/service_process_launcher.cc +++ b/services/service_manager/service_process_launcher.cc
@@ -8,9 +8,9 @@ #include "base/base_paths.h" #include "base/base_switches.h" -#include "base/bind.h" #include "base/command_line.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/services/service_manager/service_process_launcher.h b/services/service_manager/service_process_launcher.h index 321b7a0a..a567b724 100644 --- a/services/service_manager/service_process_launcher.h +++ b/services/service_manager/service_process_launcher.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_SERVICE_MANAGER_SERVICE_PROCESS_LAUNCHER_H_ #define SERVICES_SERVICE_MANAGER_SERVICE_PROCESS_LAUNCHER_H_ -#include "base/callback.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/process/process.h"
diff --git a/services/service_manager/tests/background_service_manager_test_service_main.cc b/services/service_manager/tests/background_service_manager_test_service_main.cc index 2d78c87..cc343ca 100644 --- a/services/service_manager/tests/background_service_manager_test_service_main.cc +++ b/services/service_manager/tests/background_service_manager_test_service_main.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/services/service_manager/tests/background_service_manager_unittest.cc b/services/service_manager/tests/background_service_manager_unittest.cc index eace1f6..5d65f4d 100644 --- a/services/service_manager/tests/background_service_manager_unittest.cc +++ b/services/service_manager/tests/background_service_manager_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/service_manager/tests/connect/connect_test_app.cc b/services/service_manager/tests/connect/connect_test_app.cc index 4b4534a..f392652 100644 --- a/services/service_manager/tests/connect/connect_test_app.cc +++ b/services/service_manager/tests/connect/connect_test_app.cc
@@ -4,7 +4,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/current_thread.h" #include "base/task/single_thread_task_executor.h"
diff --git a/services/service_manager/tests/connect/connect_test_class_app.cc b/services/service_manager/tests/connect/connect_test_class_app.cc index 3e86be9..d20f998 100644 --- a/services/service_manager/tests/connect/connect_test_class_app.cc +++ b/services/service_manager/tests/connect/connect_test_class_app.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/service_manager/tests/connect/connect_test_exe.cc b/services/service_manager/tests/connect/connect_test_exe.cc index 9375807d..cd62009 100644 --- a/services/service_manager/tests/connect/connect_test_exe.cc +++ b/services/service_manager/tests/connect/connect_test_exe.cc
@@ -4,7 +4,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/services/service_manager/tests/connect/connect_test_package.cc b/services/service_manager/tests/connect/connect_test_package.cc index fc041e7..964d0ec 100644 --- a/services/service_manager/tests/connect/connect_test_package.cc +++ b/services/service_manager/tests/connect/connect_test_package.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_executor.h"
diff --git a/services/service_manager/tests/connect/connect_unittest.cc b/services/service_manager/tests/connect/connect_unittest.cc index 9dc0663..bc8daed 100644 --- a/services/service_manager/tests/connect/connect_unittest.cc +++ b/services/service_manager/tests/connect/connect_unittest.cc
@@ -9,7 +9,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/guid.h" #include "base/no_destructor.h" #include "base/process/process.h"
diff --git a/services/service_manager/tests/lifecycle/app_client.h b/services/service_manager/tests/lifecycle/app_client.h index cbba045..a5d5e0d 100644 --- a/services/service_manager/tests/lifecycle/app_client.h +++ b/services/service_manager/tests/lifecycle/app_client.h
@@ -7,8 +7,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "services/service_manager/public/cpp/binder_registry.h"
diff --git a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc index 91c8ac9..b77000fb 100644 --- a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc +++ b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc
@@ -6,9 +6,9 @@ #include <vector> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/no_destructor.h" #include "base/process/process.h"
diff --git a/services/service_manager/tests/lifecycle/package.cc b/services/service_manager/tests/lifecycle/package.cc index cbd465e8..e03ced7 100644 --- a/services/service_manager/tests/lifecycle/package.cc +++ b/services/service_manager/tests/lifecycle/package.cc
@@ -5,7 +5,7 @@ #include <algorithm> #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/services/service_manager/tests/lifecycle/parent.cc b/services/service_manager/tests/lifecycle/parent.cc index fe079b1..2754951 100644 --- a/services/service_manager/tests/lifecycle/parent.cc +++ b/services/service_manager/tests/lifecycle/parent.cc
@@ -4,7 +4,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/service_manager/tests/service_manager/embedder.cc b/services/service_manager/tests/service_manager/embedder.cc index fd34a3f4..004c4c27 100644 --- a/services/service_manager/tests/service_manager/embedder.cc +++ b/services/service_manager/tests/service_manager/embedder.cc
@@ -4,7 +4,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_executor.h" #include "services/service_manager/public/cpp/service.h" #include "services/service_manager/public/cpp/service_executable/service_main.h"
diff --git a/services/service_manager/tests/service_manager/service_manager_unittest.cc b/services/service_manager/tests/service_manager/service_manager_unittest.cc index 5bcab6e..8204f83 100644 --- a/services/service_manager/tests/service_manager/service_manager_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_unittest.cc
@@ -9,9 +9,9 @@ #include <utility> #include "base/base_switches.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/path_service.h" #include "base/process/process.h"
diff --git a/services/service_manager/tests/service_process_launcher_unittest.cc b/services/service_manager/tests/service_process_launcher_unittest.cc index 3949bc90..09eb6bb 100644 --- a/services/service_manager/tests/service_process_launcher_unittest.cc +++ b/services/service_manager/tests/service_process_launcher_unittest.cc
@@ -7,9 +7,9 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/services/service_manager/tests/shutdown/shutdown_client_app.cc b/services/service_manager/tests/shutdown/shutdown_client_app.cc index 6b96cee..328750f 100644 --- a/services/service_manager/tests/shutdown/shutdown_client_app.cc +++ b/services/service_manager/tests/shutdown/shutdown_client_app.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/services/service_manager/tests/shutdown/shutdown_service_app.cc b/services/service_manager/tests/shutdown/shutdown_service_app.cc index 49cb2bf..f8e7cdf 100644 --- a/services/service_manager/tests/shutdown/shutdown_service_app.cc +++ b/services/service_manager/tests/shutdown/shutdown_service_app.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_executor.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/service_manager/tests/test_support_unittest.cc b/services/service_manager/tests/test_support_unittest.cc index ef8da04f..14b60db 100644 --- a/services/service_manager/tests/test_support_unittest.cc +++ b/services/service_manager/tests/test_support_unittest.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h" #include "base/test/task_environment.h"
diff --git a/services/service_manager/tests/util.cc b/services/service_manager/tests/util.cc index f08be8d..9bf16a25 100644 --- a/services/service_manager/tests/util.cc +++ b/services/service_manager/tests/util.cc
@@ -6,9 +6,9 @@ #include "base/base_paths.h" #include "base/base_switches.h" -#include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/path_service.h" #include "base/process/process.h" #include "base/rand_util.h"
diff --git a/services/shape_detection/barcode_detection_impl_mac_unittest.mm b/services/shape_detection/barcode_detection_impl_mac_unittest.mm index b71933c..a347feb 100644 --- a/services/shape_detection/barcode_detection_impl_mac_unittest.mm +++ b/services/shape_detection/barcode_detection_impl_mac_unittest.mm
@@ -9,8 +9,8 @@ #include <memory> #include <string> -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/mac/mac_util.h" #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_nsobject.h"
diff --git a/services/shape_detection/barcode_detection_impl_mac_vision.mm b/services/shape_detection/barcode_detection_impl_mac_vision.mm index 8b888b8..343f47d 100644 --- a/services/shape_detection/barcode_detection_impl_mac_vision.mm +++ b/services/shape_detection/barcode_detection_impl_mac_vision.mm
@@ -9,9 +9,9 @@ #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/flat_set.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/strings/sys_string_conversions.h" #include "base/system/sys_info.h"
diff --git a/services/shape_detection/barcode_detection_provider_mac_unittest.mm b/services/shape_detection/barcode_detection_provider_mac_unittest.mm index fa55f7b6..5116e0bb 100644 --- a/services/shape_detection/barcode_detection_provider_mac_unittest.mm +++ b/services/shape_detection/barcode_detection_provider_mac_unittest.mm
@@ -9,7 +9,7 @@ #include <memory> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/gmock_callback_support.h"
diff --git a/services/shape_detection/detection_utils_mac.h b/services/shape_detection/detection_utils_mac.h index 5764d36..a85b03c2 100644 --- a/services/shape_detection/detection_utils_mac.h +++ b/services/shape_detection/detection_utils_mac.h
@@ -12,7 +12,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/mac/scoped_nsobject.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/gfx/geometry/rect_f.h"
diff --git a/services/shape_detection/detection_utils_mac.mm b/services/shape_detection/detection_utils_mac.mm index a44d289..fae0859 100644 --- a/services/shape_detection/detection_utils_mac.mm +++ b/services/shape_detection/detection_utils_mac.mm
@@ -8,7 +8,7 @@ #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/mac/foundation_util.h" #include "base/mac/scoped_cftyperef.h"
diff --git a/services/shape_detection/face_detection_impl_mac_unittest.mm b/services/shape_detection/face_detection_impl_mac_unittest.mm index 0b2b531..ca4752a7 100644 --- a/services/shape_detection/face_detection_impl_mac_unittest.mm +++ b/services/shape_detection/face_detection_impl_mac_unittest.mm
@@ -8,9 +8,9 @@ #include <utility> #include "base/base64.h" -#include "base/bind.h" #include "base/command_line.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/mac/mac_util.h" #include "base/mac/scoped_nsobject.h"
diff --git a/services/shape_detection/face_detection_impl_mac_vision.mm b/services/shape_detection/face_detection_impl_mac_vision.mm index 6f8a303..ce84016 100644 --- a/services/shape_detection/face_detection_impl_mac_vision.mm +++ b/services/shape_detection/face_detection_impl_mac_vision.mm
@@ -6,7 +6,7 @@ #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "third_party/skia/include/core/SkBitmap.h"
diff --git a/services/shape_detection/face_detection_impl_win.cc b/services/shape_detection/face_detection_impl_win.cc index a343043..f5c483a 100644 --- a/services/shape_detection/face_detection_impl_win.cc +++ b/services/shape_detection/face_detection_impl_win.cc
@@ -4,7 +4,7 @@ #include "services/shape_detection/face_detection_impl_win.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/win/post_async_results.h" #include "services/shape_detection/detection_utils_win.h"
diff --git a/services/shape_detection/face_detection_impl_win_unittest.cc b/services/shape_detection/face_detection_impl_win_unittest.cc index 60c0892..71328dbe 100644 --- a/services/shape_detection/face_detection_impl_win_unittest.cc +++ b/services/shape_detection/face_detection_impl_win_unittest.cc
@@ -7,14 +7,13 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "base/win/scoped_com_initializer.h" -#include "base/win/windows_version.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/shape_detection/face_detection_provider_win.h" #include "services/shape_detection/public/mojom/facedetection_provider.mojom.h" @@ -90,10 +89,6 @@ }; TEST_F(FaceDetectionImplWinTest, ScanOneFace) { - // FaceDetector not supported before Windows 10 - if (base::win::GetVersion() < base::win::Version::WIN10) - return; - mojo::Remote<mojom::FaceDetection> face_detector = ConnectToFaceDetector(); std::unique_ptr<SkBitmap> image = LoadTestImage(); ASSERT_TRUE(image);
diff --git a/services/shape_detection/face_detection_provider_win.cc b/services/shape_detection/face_detection_provider_win.cc index 9824fc9..d77e872 100644 --- a/services/shape_detection/face_detection_provider_win.cc +++ b/services/shape_detection/face_detection_provider_win.cc
@@ -6,13 +6,12 @@ #include <windows.media.faceanalysis.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/scoped_generic.h" #include "base/win/core_winrt_util.h" #include "base/win/post_async_results.h" #include "base/win/scoped_hstring.h" -#include "base/win/windows_version.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" @@ -50,11 +49,6 @@ void FaceDetectionProviderWin::CreateFaceDetection( mojo::PendingReceiver<shape_detection::mojom::FaceDetection> receiver, shape_detection::mojom::FaceDetectorOptionsPtr options) { - // FaceDetector class is only available in Win 10 onwards (v10.0.10240.0). - if (base::win::GetVersion() < base::win::Version::WIN10) { - DVLOG(1) << "FaceDetector not supported before Windows 10"; - return; - } // Loads functions dynamically at runtime to prevent library dependencies. if (!(base::win::ResolveCoreWinRTDelayload() && ScopedHString::ResolveCoreWinRTStringDelayload())) {
diff --git a/services/shape_detection/shape_detection_service.cc b/services/shape_detection/shape_detection_service.cc index eb051f1..ad24ba94 100644 --- a/services/shape_detection/shape_detection_service.cc +++ b/services/shape_detection/shape_detection_service.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "build/branding_buildflags.h" #include "build/build_config.h" #include "services/shape_detection/text_detection_impl.h"
diff --git a/services/shape_detection/shape_detection_service.h b/services/shape_detection/shape_detection_service.h index f6d3b460..1e48546 100644 --- a/services/shape_detection/shape_detection_service.h +++ b/services/shape_detection/shape_detection_service.h
@@ -5,7 +5,7 @@ #ifndef SERVICES_SHAPE_DETECTION_SHAPE_DETECTION_SERVICE_H_ #define SERVICES_SHAPE_DETECTION_SHAPE_DETECTION_SERVICE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/services/shape_detection/text_detection_impl_mac_unittest.mm b/services/shape_detection/text_detection_impl_mac_unittest.mm index c6bba4e..3dd2623b 100644 --- a/services/shape_detection/text_detection_impl_mac_unittest.mm +++ b/services/shape_detection/text_detection_impl_mac_unittest.mm
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/mac/mac_util.h" #include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_nsobject.h"
diff --git a/services/shape_detection/text_detection_impl_win.cc b/services/shape_detection/text_detection_impl_win.cc index b0796c72c..bc153ea9 100644 --- a/services/shape_detection/text_detection_impl_win.cc +++ b/services/shape_detection/text_detection_impl_win.cc
@@ -9,12 +9,11 @@ #include <memory> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/win/core_winrt_util.h" #include "base/win/post_async_results.h" #include "base/win/scoped_hstring.h" -#include "base/win/windows_version.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "services/shape_detection/detection_utils_win.h" @@ -43,15 +42,6 @@ // static void TextDetectionImpl::Create( mojo::PendingReceiver<mojom::TextDetection> receiver) { - // OcrEngine class is only available in Win 10 onwards (v10.0.10240.0) that - // documents in - // https://docs.microsoft.com/en-us/uwp/api/windows.media.ocr.ocrengine. - if (base::win::GetVersion() < base::win::Version::WIN10) { - DVLOG(1) << "Optical character recognition not supported before Windows 10"; - return; - } - DCHECK_GE(base::win::OSInfo::GetInstance()->version_number().build, 10240u); - // Loads functions dynamically at runtime to prevent library dependencies. if (!(base::win::ResolveCoreWinRTDelayload() && ScopedHString::ResolveCoreWinRTStringDelayload())) {
diff --git a/services/shape_detection/text_detection_impl_win_unittest.cc b/services/shape_detection/text_detection_impl_win_unittest.cc index c571fd2..34cd169 100644 --- a/services/shape_detection/text_detection_impl_win_unittest.cc +++ b/services/shape_detection/text_detection_impl_win_unittest.cc
@@ -6,14 +6,13 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "base/win/scoped_com_initializer.h" -#include "base/win/windows_version.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/shape_detection/public/mojom/textdetection.mojom.h" #include "services/shape_detection/text_detection_impl.h" @@ -55,10 +54,6 @@ }; TEST_F(TextDetectionImplWinTest, ScanOnce) { - // OCR not supported before Windows 10 - if (base::win::GetVersion() < base::win::Version::WIN10) - return; - mojo::Remote<mojom::TextDetection> text_service; TextDetectionImpl::Create(text_service.BindNewPipeAndPassReceiver());
diff --git a/services/test/run_all_unittests.cc b/services/test/run_all_unittests.cc index 7803289..18e3e7f1 100644 --- a/services/test/run_all_unittests.cc +++ b/services/test/run_all_unittests.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" #include "base/files/file.h" +#include "base/functional/bind.h" #include "base/i18n/icu_util.h" #include "base/message_loop/message_pump_type.h" #include "base/path_service.h"
diff --git a/services/tracing/perfetto/consumer_host.h b/services/tracing/perfetto/consumer_host.h index 58fa578c..5e0645c 100644 --- a/services/tracing/perfetto/consumer_host.h +++ b/services/tracing/perfetto/consumer_host.h
@@ -10,7 +10,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/process/process_handle.h"
diff --git a/services/tracing/perfetto/consumer_host_unittest.cc b/services/tracing/perfetto/consumer_host_unittest.cc index b4af6ed..25bb6fb 100644 --- a/services/tracing/perfetto/consumer_host_unittest.cc +++ b/services/tracing/perfetto/consumer_host_unittest.cc
@@ -10,8 +10,8 @@ #include <utility> #include <vector> -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/tracing/perfetto/perfetto_integration_unittest.cc b/services/tracing/perfetto/perfetto_integration_unittest.cc index af8d004..05cdca7 100644 --- a/services/tracing/perfetto/perfetto_integration_unittest.cc +++ b/services/tracing/perfetto/perfetto_integration_unittest.cc
@@ -7,7 +7,7 @@ #include <thread> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/strings/strcat.h" #include "base/test/bind.h"
diff --git a/services/tracing/perfetto/perfetto_service.cc b/services/tracing/perfetto/perfetto_service.cc index 3234c8af..cebb8cf 100644 --- a/services/tracing/perfetto/perfetto_service.cc +++ b/services/tracing/perfetto/perfetto_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/no_destructor.h" #include "base/process/process_handle.h"
diff --git a/services/tracing/perfetto/producer_host.cc b/services/tracing/perfetto/producer_host.cc index a1f9fc68..7ef5432 100644 --- a/services/tracing/perfetto/producer_host.cc +++ b/services/tracing/perfetto/producer_host.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/process/process.h" #include "base/tracing/perfetto_task_runner.h" #include "build/build_config.h"
diff --git a/services/tracing/perfetto/system_perfetto_unittest.cc b/services/tracing/perfetto/system_perfetto_unittest.cc index 248d16b..3607acf 100644 --- a/services/tracing/perfetto/system_perfetto_unittest.cc +++ b/services/tracing/perfetto/system_perfetto_unittest.cc
@@ -9,10 +9,10 @@ #include <thread> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/process/launch.h" #include "base/rand_util.h" #include "base/run_loop.h"
diff --git a/services/tracing/perfetto/system_test_utils.h b/services/tracing/perfetto/system_test_utils.h index 6eb66b3..5d51e4b3 100644 --- a/services/tracing/perfetto/system_test_utils.h +++ b/services/tracing/perfetto/system_test_utils.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "services/tracing/public/cpp/perfetto/posix_system_producer.h" namespace base {
diff --git a/services/tracing/perfetto/test_utils.cc b/services/tracing/perfetto/test_utils.cc index 32a2fd8e..dd430fb 100644 --- a/services/tracing/perfetto/test_utils.cc +++ b/services/tracing/perfetto/test_utils.cc
@@ -5,7 +5,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "base/tracing/perfetto_platform.h"
diff --git a/services/tracing/perfetto/test_utils.h b/services/tracing/perfetto/test_utils.h index 1a44d209..2e74120 100644 --- a/services/tracing/perfetto/test_utils.h +++ b/services/tracing/perfetto/test_utils.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/test/task_environment.h" #include "base/test/trace_test_utils.h"
diff --git a/services/tracing/public/cpp/base_agent.cc b/services/tracing/public/cpp/base_agent.cc index 3d7e726..7edf610 100644 --- a/services/tracing/public/cpp/base_agent.cc +++ b/services/tracing/public/cpp/base_agent.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/trace_event/trace_log.h" #include "services/tracing/public/cpp/traced_process_impl.h" #include "services/tracing/public/mojom/constants.mojom.h"
diff --git a/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc b/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc index 64ca68d2..cc0c65ed 100644 --- a/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc +++ b/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc
@@ -10,10 +10,10 @@ #include <zircon/types.h> #include <memory> -#include "base/bind.h" #include "base/files/file_util.h" #include "base/fuchsia/fuchsia_logging.h" #include "base/fuchsia/koid.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/task_environment.h"
diff --git a/services/tracing/public/cpp/perfetto/custom_event_recorder.cc b/services/tracing/public/cpp/perfetto/custom_event_recorder.cc index 8bdd4a0..c5111efc1 100644 --- a/services/tracing/public/cpp/perfetto/custom_event_recorder.cc +++ b/services/tracing/public/cpp/perfetto/custom_event_recorder.cc
@@ -5,7 +5,7 @@ #include "services/tracing/public/cpp/perfetto/custom_event_recorder.h" #include "base/base64.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_samples.h" #include "base/metrics/metrics_hashes.h" #include "base/metrics/statistics_recorder.h"
diff --git a/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector.cc b/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector.cc index 36ebe30..d1fdfe9 100644 --- a/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector.cc +++ b/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector.cc
@@ -12,10 +12,10 @@ #include <lib/zx/vmo.h> #include <perfetto/ext/tracing/core/shared_memory.h> -#include "base/bind.h" #include "base/files/scoped_file.h" #include "base/fuchsia/fuchsia_logging.h" #include "base/fuchsia/process_context.h" +#include "base/functional/bind.h" #include "base/memory/platform_shared_memory_region.h" #include "base/message_loop/message_pump_type.h" #include "base/threading/thread.h"
diff --git a/services/tracing/public/cpp/perfetto/java_heap_profiler/hprof_instances_android.h b/services/tracing/public/cpp/perfetto/java_heap_profiler/hprof_instances_android.h index 4623dee..e624216 100644 --- a/services/tracing/public/cpp/perfetto/java_heap_profiler/hprof_instances_android.h +++ b/services/tracing/public/cpp/perfetto/java_heap_profiler/hprof_instances_android.h
@@ -8,8 +8,8 @@ #include <ostream> #include <vector> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "services/tracing/public/cpp/perfetto/java_heap_profiler/hprof_data_type_android.h" namespace tracing {
diff --git a/services/tracing/public/cpp/perfetto/perfetto_session.cc b/services/tracing/public/cpp/perfetto/perfetto_session.cc index 5fb8f1b..7409aad 100644 --- a/services/tracing/public/cpp/perfetto/perfetto_session.cc +++ b/services/tracing/public/cpp/perfetto/perfetto_session.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "services/tracing/public/cpp/perfetto/perfetto_session.h"
diff --git a/services/tracing/public/cpp/perfetto/perfetto_session.h b/services/tracing/public/cpp/perfetto/perfetto_session.h index f707db0f..b43ad58 100644 --- a/services/tracing/public/cpp/perfetto/perfetto_session.h +++ b/services/tracing/public/cpp/perfetto/perfetto_session.h
@@ -8,8 +8,8 @@ #include <set> #include <string> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/task/sequenced_task_runner.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/tracing/public/cpp/perfetto/perfetto_traced_process.cc b/services/tracing/public/cpp/perfetto/perfetto_traced_process.cc index c9b0613..5c7be09 100644 --- a/services/tracing/public/cpp/perfetto/perfetto_traced_process.cc +++ b/services/tracing/public/cpp/perfetto/perfetto_traced_process.cc
@@ -4,8 +4,8 @@ #include "services/tracing/public/cpp/perfetto/perfetto_traced_process.h" -#include "base/callback_helpers.h" #include "base/command_line.h" +#include "base/functional/callback_helpers.h" #include "base/no_destructor.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/tracing/public/cpp/perfetto/perfetto_traced_process.h b/services/tracing/public/cpp/perfetto/perfetto_traced_process.h index 944fa4db..8c3fff1 100644 --- a/services/tracing/public/cpp/perfetto/perfetto_traced_process.h +++ b/services/tracing/public/cpp/perfetto/perfetto_traced_process.h
@@ -5,8 +5,8 @@ #ifndef SERVICES_TRACING_PUBLIC_CPP_PERFETTO_PERFETTO_TRACED_PROCESS_H_ #define SERVICES_TRACING_PUBLIC_CPP_PERFETTO_PERFETTO_TRACED_PROCESS_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/no_destructor.h" #include "base/sequence_checker.h"
diff --git a/services/tracing/public/cpp/perfetto/posix_system_producer.cc b/services/tracing/public/cpp/perfetto/posix_system_producer.cc index 2e2ef24..aa84a2c 100644 --- a/services/tracing/public/cpp/perfetto/posix_system_producer.cc +++ b/services/tracing/public/cpp/perfetto/posix_system_producer.cc
@@ -9,8 +9,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" #include "base/trace_event/trace_log.h"
diff --git a/services/tracing/public/cpp/perfetto/posix_system_producer.h b/services/tracing/public/cpp/perfetto/posix_system_producer.h index f6467586..86de59c 100644 --- a/services/tracing/public/cpp/perfetto/posix_system_producer.h +++ b/services/tracing/public/cpp/perfetto/posix_system_producer.h
@@ -12,8 +12,8 @@ #include <vector> #include "base/atomicops.h" -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/synchronization/lock.h"
diff --git a/services/tracing/public/cpp/perfetto/producer_client.cc b/services/tracing/public/cpp/perfetto/producer_client.cc index 20b768c..7dcdbb13 100644 --- a/services/tracing/public/cpp/perfetto/producer_client.cc +++ b/services/tracing/public/cpp/perfetto/producer_client.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" #include "base/containers/adapters.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/unsafe_shared_memory_region.h" #include "base/metrics/histogram_functions.h" #include "base/process/process.h"
diff --git a/services/tracing/public/cpp/perfetto/producer_client.h b/services/tracing/public/cpp/perfetto/producer_client.h index 3b45c5c..a871b78 100644 --- a/services/tracing/public/cpp/perfetto/producer_client.h +++ b/services/tracing/public/cpp/perfetto/producer_client.h
@@ -12,8 +12,8 @@ #include <vector> #include "base/atomicops.h" -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/no_destructor.h"
diff --git a/services/tracing/public/cpp/perfetto/producer_test_utils.h b/services/tracing/public/cpp/perfetto/producer_test_utils.h index eecd9a9..2ef9919 100644 --- a/services/tracing/public/cpp/perfetto/producer_test_utils.h +++ b/services/tracing/public/cpp/perfetto/producer_test_utils.h
@@ -8,8 +8,8 @@ #include <memory> #include <vector> -#include "base/callback_forward.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted_memory.h" #include "base/test/scoped_feature_list.h"
diff --git a/services/tracing/public/cpp/perfetto/system_trace_writer.h b/services/tracing/public/cpp/perfetto/system_trace_writer.h index 5847bd74..5fb7220 100644 --- a/services/tracing/public/cpp/perfetto/system_trace_writer.h +++ b/services/tracing/public/cpp/perfetto/system_trace_writer.h
@@ -7,9 +7,9 @@ #include <list> -#include "base/bind.h" #include "base/check.h" #include "base/component_export.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted_memory.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source.cc index 4f633fb3..6c9be16 100644 --- a/services/tracing/public/cpp/perfetto/trace_event_data_source.cc +++ b/services/tracing/public/cpp/perfetto/trace_event_data_source.cc
@@ -10,10 +10,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/debug/leak_annotations.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/json/json_writer.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted_memory.h"
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc index 64f277a..30104eba 100644 --- a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc +++ b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
@@ -10,9 +10,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_macros.h"
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc index 54f1570..066f8c5 100644 --- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc +++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
@@ -8,10 +8,10 @@ #include <set> #include "base/android/library_loader/anchor_functions.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/debug/leak_annotations.h" #include "base/debug/stack_trace.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/hash/hash.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h index 768a8a22..fb9be648 100644 --- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h +++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h
@@ -10,9 +10,9 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/debug/debugging_buildflags.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/profiler/sampling_profiler_thread_token.h"
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc index 27142af..dfd6bc6 100644 --- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc +++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
@@ -10,7 +10,7 @@ #include <vector> #include "base/at_exit.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/profiler/frame.h" #include "base/profiler/module_cache.h"
diff --git a/services/tracing/public/cpp/system_tracing_service.cc b/services/tracing/public/cpp/system_tracing_service.cc index e5390a3..2f90cf4a 100644 --- a/services/tracing/public/cpp/system_tracing_service.cc +++ b/services/tracing/public/cpp/system_tracing_service.cc
@@ -10,8 +10,8 @@ #include <sys/un.h> #include <unistd.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
diff --git a/services/tracing/public/cpp/trace_event_agent.cc b/services/tracing/public/cpp/trace_event_agent.cc index 2a9107e..5ad0be2 100644 --- a/services/tracing/public/cpp/trace_event_agent.cc +++ b/services/tracing/public/cpp/trace_event_agent.cc
@@ -8,7 +8,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/memory/ref_counted_memory.h" #include "base/no_destructor.h"
diff --git a/services/tracing/public/cpp/trace_event_args_allowlist.cc b/services/tracing/public/cpp/trace_event_args_allowlist.cc index c73d6e0..6e6b513 100644 --- a/services/tracing/public/cpp/trace_event_args_allowlist.cc +++ b/services/tracing/public/cpp/trace_event_args_allowlist.cc
@@ -4,7 +4,7 @@ #include "services/tracing/public/cpp/trace_event_args_allowlist.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/pattern.h" #include "base/strings/string_tokenizer.h" #include "base/strings/string_util.h"
diff --git a/services/tracing/public/cpp/traced_process_impl.cc b/services/tracing/public/cpp/traced_process_impl.cc index 3f7aee8..fc44ca5 100644 --- a/services/tracing/public/cpp/traced_process_impl.cc +++ b/services/tracing/public/cpp/traced_process_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool/thread_pool_instance.h"
diff --git a/services/tracing/tracing_service.cc b/services/tracing/tracing_service.cc index e89d82d..3b1d609 100644 --- a/services/tracing/tracing_service.cc +++ b/services/tracing/tracing_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "build/build_config.h" #include "services/tracing/perfetto/consumer_host.h" #include "services/tracing/perfetto/perfetto_service.h"
diff --git a/services/tracing/tracing_service_unittest.cc b/services/tracing/tracing_service_unittest.cc index dbf14092..c81ffea 100644 --- a/services/tracing/tracing_service_unittest.cc +++ b/services/tracing/tracing_service_unittest.cc
@@ -5,8 +5,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/json/json_reader.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h"
diff --git a/services/video_capture/broadcasting_receiver.cc b/services/video_capture/broadcasting_receiver.cc index 9a4f1be..8357a231 100644 --- a/services/video_capture/broadcasting_receiver.cc +++ b/services/video_capture/broadcasting_receiver.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/platform_shared_memory_region.h" #include "base/memory/unsafe_shared_memory_region.h" #include "base/ranges/algorithm.h"
diff --git a/services/video_capture/device_factory_impl.cc b/services/video_capture/device_factory_impl.cc index fdadbe4..1b19724 100644 --- a/services/video_capture/device_factory_impl.cc +++ b/services/video_capture/device_factory_impl.cc
@@ -7,8 +7,8 @@ #include <sstream> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" #include "build/build_config.h"
diff --git a/services/video_capture/device_media_to_mojo_adapter.cc b/services/video_capture/device_media_to_mojo_adapter.cc index f3ff3408..bf37fa1 100644 --- a/services/video_capture/device_media_to_mojo_adapter.cc +++ b/services/video_capture/device_media_to_mojo_adapter.cc
@@ -4,8 +4,8 @@ #include "services/video_capture/device_media_to_mojo_adapter.h" -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/trace_event.h"
diff --git a/services/video_capture/device_media_to_mojo_adapter_unittest.cc b/services/video_capture/device_media_to_mojo_adapter_unittest.cc index 06dfa90..f5c041c 100644 --- a/services/video_capture/device_media_to_mojo_adapter_unittest.cc +++ b/services/video_capture/device_media_to_mojo_adapter_unittest.cc
@@ -4,7 +4,7 @@ #include "services/video_capture/device_media_to_mojo_adapter.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.cc b/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.cc index 07de218..97e1fcf 100644 --- a/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.cc +++ b/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "media/base/bind_to_current_loop.h" #include "mojo/public/cpp/bindings/callback_helpers.h"
diff --git a/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.h b/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.h index 2c224c6..65d95a1 100644 --- a/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.h +++ b/services/video_capture/gpu_memory_buffer_virtual_device_mojo_adapter.h
@@ -7,7 +7,7 @@ #include <map> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "media/capture/video/video_capture_buffer_pool.h" #include "media/capture/video_capture_types.h"
diff --git a/services/video_capture/lacros/device_factory_adapter_lacros.cc b/services/video_capture/lacros/device_factory_adapter_lacros.cc index b8571a7..4bdd17b7 100644 --- a/services/video_capture/lacros/device_factory_adapter_lacros.cc +++ b/services/video_capture/lacros/device_factory_adapter_lacros.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/video_capture/lacros/device_proxy_lacros.h"
diff --git a/services/video_capture/push_video_stream_subscription_impl.cc b/services/video_capture/push_video_stream_subscription_impl.cc index 47106c2..ed11b981 100644 --- a/services/video_capture/push_video_stream_subscription_impl.cc +++ b/services/video_capture/push_video_stream_subscription_impl.cc
@@ -4,8 +4,8 @@ #include "services/video_capture/push_video_stream_subscription_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "services/video_capture/broadcasting_receiver.h" namespace video_capture {
diff --git a/services/video_capture/shared_memory_virtual_device_mojo_adapter.cc b/services/video_capture/shared_memory_virtual_device_mojo_adapter.cc index e96c604..a41160c 100644 --- a/services/video_capture/shared_memory_virtual_device_mojo_adapter.cc +++ b/services/video_capture/shared_memory_virtual_device_mojo_adapter.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/ranges/algorithm.h" #include "media/base/bind_to_current_loop.h" #include "media/capture/video/scoped_buffer_pool_reservation.h"
diff --git a/services/video_capture/test/fake_device_test.cc b/services/video_capture/test/fake_device_test.cc index 19686f5..30430b5 100644 --- a/services/video_capture/test/fake_device_test.cc +++ b/services/video_capture/test/fake_device_test.cc
@@ -4,7 +4,7 @@ #include "services/video_capture/test/fake_device_test.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" using testing::_;
diff --git a/services/video_capture/test/mock_device_shared_access_unittest.cc b/services/video_capture/test/mock_device_shared_access_unittest.cc index 8fda303..8ac54376 100644 --- a/services/video_capture/test/mock_device_shared_access_unittest.cc +++ b/services/video_capture/test/mock_device_shared_access_unittest.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/video_capture/test/mock_device_test.cc b/services/video_capture/test/mock_device_test.cc index 37bd83da..047ef7d 100644 --- a/services/video_capture/test/mock_device_test.cc +++ b/services/video_capture/test/mock_device_test.cc
@@ -4,7 +4,7 @@ #include "services/video_capture/test/mock_device_test.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h"
diff --git a/services/video_capture/test/service_lifecycle_unittest.cc b/services/video_capture/test/service_lifecycle_unittest.cc index 2f812b8..bd909d1 100644 --- a/services/video_capture/test/service_lifecycle_unittest.cc +++ b/services/video_capture/test/service_lifecycle_unittest.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/mock_callback.h" #include "base/test/task_environment.h"
diff --git a/services/video_capture/test/virtual_device_unittest.cc b/services/video_capture/test/virtual_device_unittest.cc index cfbb04d..79c8bcc 100644 --- a/services/video_capture/test/virtual_device_unittest.cc +++ b/services/video_capture/test/virtual_device_unittest.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/test/mock_callback.h"
diff --git a/services/video_capture/texture_virtual_device_mojo_adapter.cc b/services/video_capture/texture_virtual_device_mojo_adapter.cc index 3a6674c1..1fb956c 100644 --- a/services/video_capture/texture_virtual_device_mojo_adapter.cc +++ b/services/video_capture/texture_virtual_device_mojo_adapter.cc
@@ -4,9 +4,9 @@ #include "services/video_capture/texture_virtual_device_mojo_adapter.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "media/base/bind_to_current_loop.h" #include "mojo/public/cpp/bindings/callback_helpers.h"
diff --git a/services/video_capture/video_capture_service_impl.cc b/services/video_capture/video_capture_service_impl.cc index d6ebc5e..b12efca 100644 --- a/services/video_capture/video_capture_service_impl.cc +++ b/services/video_capture/video_capture_service_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "base/task/thread_pool.h"
diff --git a/services/video_capture/video_source_impl.cc b/services/video_capture/video_source_impl.cc index edaafe2..bac852f 100644 --- a/services/video_capture/video_source_impl.cc +++ b/services/video_capture/video_source_impl.cc
@@ -4,8 +4,8 @@ #include "services/video_capture/video_source_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "services/video_capture/push_video_stream_subscription_impl.h" namespace video_capture {
diff --git a/services/video_capture/video_source_impl.h b/services/video_capture/video_source_impl.h index 0515c01a..3762c8e 100644 --- a/services/video_capture/video_source_impl.h +++ b/services/video_capture/video_source_impl.h
@@ -7,7 +7,7 @@ #include <map> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "media/base/scoped_async_trace.h"
diff --git a/services/video_capture/video_source_provider_impl.cc b/services/video_capture/video_source_provider_impl.cc index e1bbc7c..99970af 100644 --- a/services/video_capture/video_source_provider_impl.cc +++ b/services/video_capture/video_source_provider_impl.cc
@@ -4,7 +4,7 @@ #include "services/video_capture/video_source_provider_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "services/video_capture/public/mojom/producer.mojom.h" #include "services/video_capture/video_source_impl.h" #include "services/video_capture/virtual_device_enabled_device_factory.h"
diff --git a/services/video_capture/virtual_device_enabled_device_factory.cc b/services/video_capture/virtual_device_enabled_device_factory.cc index 9a82ca32..d077105 100644 --- a/services/video_capture/virtual_device_enabled_device_factory.cc +++ b/services/video_capture/virtual_device_enabled_device_factory.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "media/capture/video/video_capture_device_info.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/services/viz/public/cpp/compositing/copy_output_request_mojom_traits.cc b/services/viz/public/cpp/compositing/copy_output_request_mojom_traits.cc index 91df2232..bd10314 100644 --- a/services/viz/public/cpp/compositing/copy_output_request_mojom_traits.cc +++ b/services/viz/public/cpp/compositing/copy_output_request_mojom_traits.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h"
diff --git a/services/viz/public/cpp/compositing/copy_output_result_mojom_traits.cc b/services/viz/public/cpp/compositing/copy_output_result_mojom_traits.cc index b5d32cd..9a42e1a 100644 --- a/services/viz/public/cpp/compositing/copy_output_result_mojom_traits.cc +++ b/services/viz/public/cpp/compositing/copy_output_result_mojom_traits.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/optional_as_pointer.h" #include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
diff --git a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc index 32004fd..e7fb57b 100644 --- a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc +++ b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
@@ -4,7 +4,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/gtest_util.h" #include "base/test/task_environment.h"
diff --git a/services/viz/public/cpp/gpu/client_gpu_memory_buffer_manager.cc b/services/viz/public/cpp/gpu/client_gpu_memory_buffer_manager.cc index c00f469..4280cda 100644 --- a/services/viz/public/cpp/gpu/client_gpu_memory_buffer_manager.cc +++ b/services/viz/public/cpp/gpu/client_gpu_memory_buffer_manager.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/synchronization/waitable_event.h" #include "base/task/bind_post_task.h" #include "base/task/single_thread_task_runner.h"
diff --git a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc index c04ff2f9..1d156b8 100644 --- a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc +++ b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
@@ -12,10 +12,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/no_destructor.h" #include "base/observer_list.h" #include "base/strings/stringprintf.h"
diff --git a/services/viz/public/cpp/gpu/gpu.cc b/services/viz/public/cpp/gpu/gpu.cc index 7e3cfea1..f05b721 100644 --- a/services/viz/public/cpp/gpu/gpu.cc +++ b/services/viz/public/cpp/gpu/gpu.cc
@@ -8,7 +8,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_macros.h"
diff --git a/services/viz/public/cpp/gpu/gpu_unittest.cc b/services/viz/public/cpp/gpu/gpu_unittest.cc index d5328f5..a782593 100644 --- a/services/viz/public/cpp/gpu/gpu_unittest.cc +++ b/services/viz/public/cpp/gpu/gpu_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/message_loop/message_pump_type.h" #include "base/run_loop.h"
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index b330273..58af189 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -204,6 +204,22 @@ component("skia") { deps = [] + public = [ + "ext/benchmarking_canvas.h", + "ext/cicp.h", + "ext/convolver.h", + "ext/event_tracer_impl.h", + "ext/image_operations.h", + "ext/legacy_display_globals.h", + "ext/opacity_filter_canvas.h", + "ext/recursive_gaussian_convolution.h", + "ext/rgba_to_yuva.h", + "ext/skcolorspace_primaries.h", + "ext/skcolorspace_trfn.h", + "ext/skia_memory_dump_provider.h", + "ext/skia_trace_memory_dump_impl.h", + "ext/skia_utils_base.h", + ] sources = [ # Chrome sources. "config/SkUserConfig.h", @@ -213,41 +229,25 @@ "ext/SkDiscardableMemory_chrome.h", "ext/SkMemory_new_handler.cpp", "ext/benchmarking_canvas.cc", - "ext/benchmarking_canvas.h", "ext/cicp.cc", - "ext/cicp.h", "ext/convolver.cc", - "ext/convolver.h", "ext/event_tracer_impl.cc", - "ext/event_tracer_impl.h", "ext/google_logging.cc", "ext/image_operations.cc", - "ext/image_operations.h", "ext/legacy_display_globals.cc", - "ext/legacy_display_globals.h", "ext/opacity_filter_canvas.cc", - "ext/opacity_filter_canvas.h", "ext/recursive_gaussian_convolution.cc", - "ext/recursive_gaussian_convolution.h", "ext/rgba_to_yuva.cc", - "ext/rgba_to_yuva.h", "ext/skcolorspace_primaries.cc", - "ext/skcolorspace_primaries.h", - "ext/skcolorspace_trfn.h", "ext/skia_histogram.cc", "ext/skia_histogram.h", "ext/skia_memory_dump_provider.cc", - "ext/skia_memory_dump_provider.h", "ext/skia_trace_memory_dump_impl.cc", - "ext/skia_trace_memory_dump_impl.h", "ext/skia_utils_base.cc", - "ext/skia_utils_base.h", ] if (!is_apple) { - sources += [ - "ext/fontmgr_default.cc", - "ext/fontmgr_default.h", - ] + public += [ "ext/fontmgr_default.h" ] + sources += [ "ext/fontmgr_default.cc" ] } if (is_android) { sources += [ "ext/fontmgr_default_android.cc" ] @@ -256,30 +256,24 @@ sources += [ "ext/fontmgr_default_linux.cc" ] } if (is_ios) { - sources += [ - "ext/skia_utils_ios.h", - "ext/skia_utils_ios.mm", - ] + public += [ "ext/skia_utils_ios.h" ] + sources += [ "ext/skia_utils_ios.mm" ] } if (is_mac) { - sources += [ - "ext/skia_utils_mac.h", - "ext/skia_utils_mac.mm", - ] + public += [ "ext/skia_utils_mac.h" ] + sources += [ "ext/skia_utils_mac.mm" ] } if (is_win) { + public += [ "ext/skia_utils_win.h" ] sources += [ "ext/fontmgr_default_win.cc", "ext/skia_utils_win.cc", - "ext/skia_utils_win.h", ] } if (!is_ios) { - sources += [ - "ext/platform_canvas.cc", - "ext/platform_canvas.h", - ] + public += [ "ext/platform_canvas.h" ] + sources += [ "ext/platform_canvas.cc" ] } if (!is_ios && (current_cpu == "x86" || current_cpu == "x64")) { sources += [ @@ -307,19 +301,16 @@ ] } - # The *_public variables should be added to 'public' not 'sources'. - # However, Skia does not export enough *_public variables to make Chromium - # 'gn check' clean. Until that can be done add the *_public variables to - # 'sources' so that the buildbot 'analyze' step is aware of their existence. - sources += skia_core_public - sources += skia_utils_public - sources += skia_effects_public - sources += skia_effects_imagefilter_public + public += skia_core_public + public += skia_utils_public + public += skia_effects_public + public += skia_effects_imagefilter_public + public += skia_utils_chromium # The imported Skia gni source paths are made absolute by gn. defines = [] sources += skia_sksl_sources - sources += skia_utils_sources + sources += skia_utils_private sources += skia_xps_sources sources += [ "//third_party/skia/src/fonts/SkFontMgr_indirect.cpp", @@ -335,27 +326,16 @@ ] if (!is_ios) { sources -= [ "//third_party/skia/src/ports/SkImageGenerator_none.cpp" ] + sources += skia_codec_core + sources += skia_codec_decode_bmp sources += [ - "//third_party/skia/src/codec/SkBmpBaseCodec.cpp", - "//third_party/skia/src/codec/SkBmpCodec.cpp", - "//third_party/skia/src/codec/SkBmpMaskCodec.cpp", - "//third_party/skia/src/codec/SkBmpRLECodec.cpp", - "//third_party/skia/src/codec/SkBmpStandardCodec.cpp", - "//third_party/skia/src/codec/SkCodec.cpp", - "//third_party/skia/src/codec/SkCodecImageGenerator.cpp", - "//third_party/skia/src/codec/SkColorTable.cpp", "//third_party/skia/src/codec/SkEncodedInfo.cpp", "//third_party/skia/src/codec/SkIcoCodec.cpp", "//third_party/skia/src/codec/SkJpegCodec.cpp", "//third_party/skia/src/codec/SkJpegDecoderMgr.cpp", "//third_party/skia/src/codec/SkJpegUtility.cpp", - "//third_party/skia/src/codec/SkMaskSwizzler.cpp", - "//third_party/skia/src/codec/SkMasks.cpp", "//third_party/skia/src/codec/SkParseEncodedOrigin.cpp", "//third_party/skia/src/codec/SkPngCodec.cpp", - "//third_party/skia/src/codec/SkSampler.cpp", - "//third_party/skia/src/codec/SkSwizzler.cpp", - "//third_party/skia/src/codec/SkWbmpCodec.cpp", "//third_party/skia/src/codec/SkWebpCodec.cpp", "//third_party/skia/src/codec/SkWuffsCodec.cpp", "//third_party/skia/src/images/SkJPEGWriteUtility.cpp", @@ -531,6 +511,7 @@ if (is_mac) { deps += [ ":skia_metal" ] defines += [ "SK_METAL" ] + sources += skia_gpu_metal_cpp frameworks = [ "AppKit.framework", "CoreFoundation.framework", @@ -541,7 +522,8 @@ ] } if (skia_use_dawn) { - sources += skia_dawn_sources + public += skia_gpu_dawn_public + sources += skia_gpu_dawn_private } if (is_ios) { frameworks = [ "ImageIO.framework" ] @@ -552,16 +534,27 @@ } if (skia_support_gpu) { - sources += skia_gpu_sources + public += skia_gpu_public + public += skia_gpu_chromium_public + sources += skia_gpu_private sources += skia_null_gpu_sources sources += skia_sksl_gpu_sources sources += skia_shared_gpu_sources if (skia_use_gl) { - sources += skia_gl_gpu_sources + public += skia_gpu_gl_public + sources += skia_gpu_gl_private } if (enable_vulkan) { - sources += skia_vk_sources + public += skia_gpu_vk_public + public += skia_gpu_vk_chromium_public + public += [ + # TODO(kjlubick) remove this file once Chrome uses the one from + # skia/include/private/chromium + "//third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h", + ] + sources += skia_gpu_vk_private sources += skia_shared_vk_sources + sources += skia_gpu_vk_chromium_private } deps += [ "//gpu/config:workaround_list" ] } @@ -571,6 +564,7 @@ "//third_party:freetype_harfbuzz", "//third_party/zlib", ] + public += skia_pdf_public sources += skia_pdf_sources } else { sources += [ "//third_party/skia/src/pdf/SkDocument_PDF_None.cpp" ] @@ -581,7 +575,8 @@ import("//third_party/skia/modules/skresources/skresources.gni") import("//third_party/skia/modules/sksg/sksg.gni") import("//third_party/skia/modules/skshaper/skshaper.gni") - sources += skia_skottie_sources + skia_skottie_public + public += skia_skottie_public + sources += skia_skottie_sources sources += skia_skresources_sources sources += skia_sksg_sources sources += skia_shaper_primitive_sources @@ -768,7 +763,8 @@ if (is_mac) { skia_source_set("skia_metal") { defines = [ "SK_METAL" ] - sources = skia_metal_sources + public = skia_gpu_metal_public + sources = skia_gpu_metal_private sources += skia_shared_mtl_sources cflags_objcc = [ "-Wno-unguarded-availability",
diff --git a/skia/ext/SkDiscardableMemory_chrome.cc b/skia/ext/SkDiscardableMemory_chrome.cc index 70bb24e..9962e13 100644 --- a/skia/ext/SkDiscardableMemory_chrome.cc +++ b/skia/ext/SkDiscardableMemory_chrome.cc
@@ -8,7 +8,7 @@ #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/discardable_memory.h" #include "base/memory/discardable_memory_allocator.h"
diff --git a/skia/tools/fuzzers/BUILD.gn b/skia/tools/fuzzers/BUILD.gn index 65f7c43..acdeb3b 100644 --- a/skia/tools/fuzzers/BUILD.gn +++ b/skia/tools/fuzzers/BUILD.gn
@@ -125,6 +125,7 @@ sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzJSON.cpp" ] defines = [ "IS_FUZZING_WITH_LIBFUZZER" ] deps = [ ":skia_fuzzer_sources" ] + check_includes = false } fuzzer_test("skia_image_decode_incremental_fuzzer") {
diff --git a/sql/database.h b/sql/database.h index b13355d..a44589dd 100644 --- a/sql/database.h +++ b/sql/database.h
@@ -14,11 +14,11 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/flat_map.h" #include "base/dcheck_is_on.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h"
diff --git a/sql/database_options_unittest.cc b/sql/database_options_unittest.cc index 0668afc..f90e9c9 100644 --- a/sql/database_options_unittest.cc +++ b/sql/database_options_unittest.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback_helpers.h" #include "base/files/file_path.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback_helpers.h" #include "sql/database.h" #include "sql/sqlite_result_code.h" #include "sql/statement.h"
diff --git a/sql/database_unittest.cc b/sql/database_unittest.cc index c42eed1..3ee7f5a5 100644 --- a/sql/database_unittest.cc +++ b/sql/database_unittest.cc
@@ -8,10 +8,10 @@ #include <stdint.h> #include <cstdint> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h"
diff --git a/sql/recovery.cc b/sql/recovery.cc index b25c2e2..b9db549 100644 --- a/sql/recovery.cc +++ b/sql/recovery.cc
@@ -12,11 +12,11 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/check_op.h" #include "base/dcheck_is_on.h" #include "base/files/file_path.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/notreached.h" #include "base/strings/string_util.h"
diff --git a/sql/recovery_unittest.cc b/sql/recovery_unittest.cc index ac80534..85c5e801 100644 --- a/sql/recovery_unittest.cc +++ b/sql/recovery_unittest.cc
@@ -10,10 +10,10 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/path_service.h" #include "base/ranges/algorithm.h" #include "base/strings/string_number_conversions.h"
diff --git a/sql/sqlite_features_unittest.cc b/sql/sqlite_features_unittest.cc index 33f733f3..6fb0517e 100644 --- a/sql/sqlite_features_unittest.cc +++ b/sql/sqlite_features_unittest.cc
@@ -8,11 +8,11 @@ #include <string> #include <tuple> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/memory_mapped_file.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "build/build_config.h" #include "sql/database.h" #include "sql/statement.h"
diff --git a/sql/statement_unittest.cc b/sql/statement_unittest.cc index b7e6e878..8c346b8 100644 --- a/sql/statement_unittest.cc +++ b/sql/statement_unittest.cc
@@ -5,9 +5,9 @@ #include <limits> #include <string> -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/strings/string_piece_forward.h" #include "base/test/bind.h" #include "sql/database.h"
diff --git a/sql/test/run_all_unittests.cc b/sql/test/run_all_unittests.cc index d6fb78d..94e9d52 100644 --- a/sql/test/run_all_unittests.cc +++ b/sql/test/run_all_unittests.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "sql/test/sql_test_suite.h"
diff --git a/sql/test/scoped_error_expecter.cc b/sql/test/scoped_error_expecter.cc index 246583e..c63a854 100644 --- a/sql/test/scoped_error_expecter.cc +++ b/sql/test/scoped_error_expecter.cc
@@ -4,7 +4,7 @@ #include "sql/test/scoped_error_expecter.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/types/pass_key.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/storage/browser/blob/blob_builder_from_stream.cc b/storage/browser/blob/blob_builder_from_stream.cc index cad167f..2f496a6 100644 --- a/storage/browser/blob/blob_builder_from_stream.cc +++ b/storage/browser/blob/blob_builder_from_stream.cc
@@ -4,8 +4,8 @@ #include "storage/browser/blob/blob_builder_from_stream.h" -#include "base/bind.h" #include "base/containers/span.h" +#include "base/functional/bind.h" #include "base/guid.h" #include "base/metrics/histogram_macros.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/blob/blob_builder_from_stream_unittest.cc b/storage/browser/blob/blob_builder_from_stream_unittest.cc index 0f2b9eae..d91dbdc 100644 --- a/storage/browser/blob/blob_builder_from_stream_unittest.cc +++ b/storage/browser/blob/blob_builder_from_stream_unittest.cc
@@ -6,10 +6,10 @@ #include <algorithm> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/rand_util.h" #include "base/run_loop.h" #include "base/task/thread_pool.h"
diff --git a/storage/browser/blob/blob_data_handle.cc b/storage/browser/blob/blob_data_handle.cc index 43b02f07..c32b919 100644 --- a/storage/browser/blob/blob_data_handle.cc +++ b/storage/browser/blob/blob_data_handle.cc
@@ -8,9 +8,9 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/blob/blob_data_handle.h b/storage/browser/blob/blob_data_handle.h index 842037c..568e0eb 100644 --- a/storage/browser/blob/blob_data_handle.h +++ b/storage/browser/blob/blob_data_handle.h
@@ -9,8 +9,8 @@ #include <memory> #include <string> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/supports_user_data.h"
diff --git a/storage/browser/blob/blob_entry.cc b/storage/browser/blob/blob_entry.cc index db648bc..6203412 100644 --- a/storage/browser/blob/blob_entry.cc +++ b/storage/browser/blob/blob_entry.cc
@@ -4,7 +4,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/metrics/histogram.h" #include "storage/browser/blob/blob_data_handle.h" #include "storage/browser/blob/blob_data_item.h"
diff --git a/storage/browser/blob/blob_entry.h b/storage/browser/blob/blob_entry.h index 74f85ec..6ea4bf5 100644 --- a/storage/browser/blob/blob_entry.h +++ b/storage/browser/blob/blob_entry.h
@@ -11,8 +11,8 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "storage/browser/blob/blob_memory_controller.h"
diff --git a/storage/browser/blob/blob_flattener_unittest.cc b/storage/browser/blob/blob_flattener_unittest.cc index 79abf707..d3cb1df 100644 --- a/storage/browser/blob/blob_flattener_unittest.cc +++ b/storage/browser/blob/blob_flattener_unittest.cc
@@ -6,10 +6,10 @@ #include <memory> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "base/test/test_simple_task_runner.h"
diff --git a/storage/browser/blob/blob_impl.cc b/storage/browser/blob/blob_impl.cc index 7807d25..ed96092 100644 --- a/storage/browser/blob/blob_impl.cc +++ b/storage/browser/blob/blob_impl.cc
@@ -9,9 +9,9 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/containers/span.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/task/thread_pool.h" #include "base/time/time.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/storage/browser/blob/blob_impl_unittest.cc b/storage/browser/blob/blob_impl_unittest.cc index 7228dce9..4e707d0 100644 --- a/storage/browser/blob/blob_impl_unittest.cc +++ b/storage/browser/blob/blob_impl_unittest.cc
@@ -9,7 +9,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc index 30cfd8128..54a2dfe 100644 --- a/storage/browser/blob/blob_memory_controller.cc +++ b/storage/browser/blob/blob_memory_controller.cc
@@ -8,13 +8,13 @@ #include <memory> #include <numeric> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/small_map.h" #include "base/feature_list.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/guid.h" #include "base/location.h" #include "base/memory/ptr_util.h"
diff --git a/storage/browser/blob/blob_memory_controller.h b/storage/browser/blob/blob_memory_controller.h index c64ad5e..3c15e0e 100644 --- a/storage/browser/blob/blob_memory_controller.h +++ b/storage/browser/blob/blob_memory_controller.h
@@ -15,13 +15,13 @@ #include <utility> #include <vector> -#include "base/callback_forward.h" -#include "base/callback_helpers.h" #include "base/component_export.h" #include "base/containers/lru_cache.h" #include "base/feature_list.h" #include "base/files/file.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" +#include "base/functional/callback_helpers.h" #include "base/gtest_prod_util.h" #include "base/memory/memory_pressure_listener.h" #include "base/memory/scoped_refptr.h"
diff --git a/storage/browser/blob/blob_memory_controller_unittest.cc b/storage/browser/blob/blob_memory_controller_unittest.cc index b70d96a..ab7b2cc 100644 --- a/storage/browser/blob/blob_memory_controller_unittest.cc +++ b/storage/browser/blob/blob_memory_controller_unittest.cc
@@ -4,10 +4,10 @@ #include "storage/browser/blob/blob_memory_controller.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/system/sys_info.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc index f6aada7..f82c0cff 100644 --- a/storage/browser/blob/blob_reader.cc +++ b/storage/browser/blob/blob_reader.cc
@@ -12,8 +12,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h"
diff --git a/storage/browser/blob/blob_reader_unittest.cc b/storage/browser/blob/blob_reader_unittest.cc index 6babb501..1bf9c6e 100644 --- a/storage/browser/blob/blob_reader_unittest.cc +++ b/storage/browser/blob/blob_reader_unittest.cc
@@ -12,10 +12,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/storage/browser/blob/blob_registry_impl.cc b/storage/browser/blob/blob_registry_impl.cc index c75ae88..d3a758b 100644 --- a/storage/browser/blob/blob_registry_impl.cc +++ b/storage/browser/blob/blob_registry_impl.cc
@@ -7,8 +7,8 @@ #include <memory> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/task/sequenced_task_runner.h" #include "net/base/features.h"
diff --git a/storage/browser/blob/blob_registry_impl_unittest.cc b/storage/browser/blob/blob_registry_impl_unittest.cc index e0ecc7b..394f73c6 100644 --- a/storage/browser/blob/blob_registry_impl_unittest.cc +++ b/storage/browser/blob/blob_registry_impl_unittest.cc
@@ -11,10 +11,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/rand_util.h" #include "base/run_loop.h"
diff --git a/storage/browser/blob/blob_storage_constants.h b/storage/browser/blob/blob_storage_constants.h index 57411d9..a34f337 100644 --- a/storage/browser/blob/blob_storage_constants.h +++ b/storage/browser/blob/blob_storage_constants.h
@@ -8,8 +8,8 @@ #include <stddef.h> #include <stdint.h> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "build/build_config.h" namespace storage {
diff --git a/storage/browser/blob/blob_storage_context.cc b/storage/browser/blob/blob_storage_context.cc index 2f55168..831601e0 100644 --- a/storage/browser/blob/blob_storage_context.cc +++ b/storage/browser/blob/blob_storage_context.cc
@@ -11,9 +11,9 @@ #include <set> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/storage/browser/blob/blob_storage_context.h b/storage/browser/blob/blob_storage_context.h index fbcfe22..400356a 100644 --- a/storage/browser/blob/blob_storage_context.h +++ b/storage/browser/blob/blob_storage_context.h
@@ -13,9 +13,9 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" #include "base/gtest_prod_util.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/blob/blob_storage_context_mojo_unittest.cc b/storage/browser/blob/blob_storage_context_mojo_unittest.cc index 315eaaab..df94acb 100644 --- a/storage/browser/blob/blob_storage_context_mojo_unittest.cc +++ b/storage/browser/blob/blob_storage_context_mojo_unittest.cc
@@ -8,10 +8,10 @@ #include <memory> #include <string> -#include "base/callback.h" #include "base/containers/span.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h"
diff --git a/storage/browser/blob/blob_storage_context_unittest.cc b/storage/browser/blob/blob_storage_context_unittest.cc index 5f111a7d..bb957ec 100644 --- a/storage/browser/blob/blob_storage_context_unittest.cc +++ b/storage/browser/blob/blob_storage_context_unittest.cc
@@ -11,11 +11,11 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h"
diff --git a/storage/browser/blob/blob_storage_registry.cc b/storage/browser/blob/blob_storage_registry.cc index 0ca2c5c..a02d9b7 100644 --- a/storage/browser/blob/blob_storage_registry.cc +++ b/storage/browser/blob/blob_storage_registry.cc
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/location.h" #include "storage/browser/blob/blob_entry.h"
diff --git a/storage/browser/blob/blob_transport_strategy.cc b/storage/browser/blob/blob_transport_strategy.cc index c3f6494..3353d7fc 100644 --- a/storage/browser/blob/blob_transport_strategy.cc +++ b/storage/browser/blob/blob_transport_strategy.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" #include "base/containers/circular_deque.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/system/data_pipe.h"
diff --git a/storage/browser/blob/blob_transport_strategy.h b/storage/browser/blob/blob_transport_strategy.h index 76c40cd..e25aa6d 100644 --- a/storage/browser/blob/blob_transport_strategy.h +++ b/storage/browser/blob/blob_transport_strategy.h
@@ -5,8 +5,8 @@ #ifndef STORAGE_BROWSER_BLOB_BLOB_TRANSPORT_STRATEGY_H_ #define STORAGE_BROWSER_BLOB_BLOB_TRANSPORT_STRATEGY_H_ -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/remote.h" #include "storage/browser/blob/blob_memory_controller.h"
diff --git a/storage/browser/blob/blob_transport_strategy_unittest.cc b/storage/browser/blob/blob_transport_strategy_unittest.cc index 9b2352c..cbc207c 100644 --- a/storage/browser/blob/blob_transport_strategy_unittest.cc +++ b/storage/browser/blob/blob_transport_strategy_unittest.cc
@@ -10,10 +10,10 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/rand_util.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/blob/blob_url_loader.cc b/storage/browser/blob/blob_url_loader.cc index c8b76b9..aef3a1b 100644 --- a/storage/browser/blob/blob_url_loader.cc +++ b/storage/browser/blob/blob_url_loader.cc
@@ -6,9 +6,9 @@ #include <stddef.h> #include <utility> -#include "base/bind.h" #include "base/check_op.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/weak_ptr.h" #include "base/notreached.h"
diff --git a/storage/browser/blob/blob_url_loader_factory.cc b/storage/browser/blob/blob_url_loader_factory.cc index fb8a59c5..2557591 100644 --- a/storage/browser/blob/blob_url_loader_factory.cc +++ b/storage/browser/blob/blob_url_loader_factory.cc
@@ -4,7 +4,7 @@ #include "storage/browser/blob/blob_url_loader_factory.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/callback_helpers.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/network/public/cpp/resource_request.h"
diff --git a/storage/browser/blob/blob_url_registry_unittest.cc b/storage/browser/blob/blob_url_registry_unittest.cc index 0ce2ebaf..d8c59581 100644 --- a/storage/browser/blob/blob_url_registry_unittest.cc +++ b/storage/browser/blob/blob_url_registry_unittest.cc
@@ -4,7 +4,7 @@ #include "storage/browser/blob/blob_url_registry.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/run_loop.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc index 5d36c6d54..8b318b4 100644 --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc
@@ -4,8 +4,8 @@ #include "storage/browser/blob/blob_url_store_impl.h" -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/strings/strcat.h" #include "components/crash/core/common/crash_key.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/storage/browser/blob/blob_url_store_impl_unittest.cc b/storage/browser/blob/blob_url_store_impl_unittest.cc index 6a286f1..54fa4ad4 100644 --- a/storage/browser/blob/blob_url_store_impl_unittest.cc +++ b/storage/browser/blob/blob_url_store_impl_unittest.cc
@@ -4,8 +4,8 @@ #include "storage/browser/blob/blob_url_store_impl.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/bind.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/blob/mojo_blob_reader.cc b/storage/browser/blob/mojo_blob_reader.cc index 0b313984..fcb4796 100644 --- a/storage/browser/blob/mojo_blob_reader.cc +++ b/storage/browser/blob/mojo_blob_reader.cc
@@ -4,7 +4,7 @@ #include "storage/browser/blob/mojo_blob_reader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/trace_event/trace_event.h" #include "net/base/io_buffer.h"
diff --git a/storage/browser/blob/scoped_file.cc b/storage/browser/blob/scoped_file.cc index e606a26..22a8a19 100644 --- a/storage/browser/blob/scoped_file.cc +++ b/storage/browser/blob/scoped_file.cc
@@ -4,9 +4,9 @@ #include "storage/browser/blob/scoped_file.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/blob/scoped_file.h b/storage/browser/blob/scoped_file.h index e48c0c6..e0740f4 100644 --- a/storage/browser/blob/scoped_file.h +++ b/storage/browser/blob/scoped_file.h
@@ -7,9 +7,9 @@ #include <map> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" namespace base {
diff --git a/storage/browser/blob/shareable_blob_data_item.h b/storage/browser/blob/shareable_blob_data_item.h index fbe21b9..5188a43 100644 --- a/storage/browser/blob/shareable_blob_data_item.h +++ b/storage/browser/blob/shareable_blob_data_item.h
@@ -7,8 +7,8 @@ #include <string> -#include "base/callback_helpers.h" #include "base/component_export.h" +#include "base/functional/callback_helpers.h" #include "base/hash/hash.h" #include "base/memory/ref_counted.h" #include "storage/browser/blob/blob_memory_controller.h"
diff --git a/storage/browser/blob/view_blob_internals_job.cc b/storage/browser/blob/view_blob_internals_job.cc index 5b93c199..8c16c37 100644 --- a/storage/browser/blob/view_blob_internals_job.cc +++ b/storage/browser/blob/view_blob_internals_job.cc
@@ -8,9 +8,9 @@ #include <stdint.h> #include <sstream> -#include "base/bind.h" #include "base/compiler_specific.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/i18n/number_formatting.h" #include "base/i18n/time_formatting.h" #include "base/location.h"
diff --git a/storage/browser/blob/write_blob_to_file.cc b/storage/browser/blob/write_blob_to_file.cc index 0690062..9af4b56 100644 --- a/storage/browser/blob/write_blob_to_file.cc +++ b/storage/browser/blob/write_blob_to_file.cc
@@ -12,8 +12,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/numerics/checked_math.h" #include "base/numerics/safe_conversions.h" #include "base/task/task_traits.h"
diff --git a/storage/browser/database/database_quota_client.cc b/storage/browser/database/database_quota_client.cc index e3376cf4..09ec998 100644 --- a/storage/browser/database/database_quota_client.cc +++ b/storage/browser/database/database_quota_client.cc
@@ -11,8 +11,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/database/database_quota_client_unittest.cc b/storage/browser/database/database_quota_client_unittest.cc index 2884903..28920f8 100644 --- a/storage/browser/database/database_quota_client_unittest.cc +++ b/storage/browser/database/database_quota_client_unittest.cc
@@ -10,11 +10,11 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/files/file_path.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/storage/browser/database/database_tracker.cc b/storage/browser/database/database_tracker.cc index 0899dc8..27861ff 100644 --- a/storage/browser/database/database_tracker.cc +++ b/storage/browser/database/database_tracker.cc
@@ -12,11 +12,11 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_enumerator.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/metrics/user_metrics.h"
diff --git a/storage/browser/database/database_tracker_unittest.cc b/storage/browser/database/database_tracker_unittest.cc index 333ad90..dd4ae77 100644 --- a/storage/browser/database/database_tracker_unittest.cc +++ b/storage/browser/database/database_tracker_unittest.cc
@@ -9,11 +9,11 @@ #include <memory> -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback_helpers.h" #include "base/gtest_prod_util.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h"
diff --git a/storage/browser/database/databases_table_unittest.cc b/storage/browser/database/databases_table_unittest.cc index 262d580..d783318 100644 --- a/storage/browser/database/databases_table_unittest.cc +++ b/storage/browser/database/databases_table_unittest.cc
@@ -6,7 +6,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/string_util.h" #include "sql/database.h" #include "sql/statement.h"
diff --git a/storage/browser/file_system/async_file_util.h b/storage/browser/file_system/async_file_util.h index dde13d0b..cd41e12 100644 --- a/storage/browser/file_system/async_file_util.h +++ b/storage/browser/file_system/async_file_util.h
@@ -10,9 +10,9 @@ #include <memory> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/callback_forward.h" #include "components/services/filesystem/public/mojom/types.mojom.h" #include "storage/browser/file_system/file_system_operation.h"
diff --git a/storage/browser/file_system/async_file_util_adapter.cc b/storage/browser/file_system/async_file_util_adapter.cc index 48f808d..ff2a9273 100644 --- a/storage/browser/file_system/async_file_util_adapter.cc +++ b/storage/browser/file_system/async_file_util_adapter.cc
@@ -11,8 +11,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "components/services/filesystem/public/mojom/types.mojom.h"
diff --git a/storage/browser/file_system/copy_or_move_file_validator.h b/storage/browser/file_system/copy_or_move_file_validator.h index 6e51c95d..55eed6ad 100644 --- a/storage/browser/file_system/copy_or_move_file_validator.h +++ b/storage/browser/file_system/copy_or_move_file_validator.h
@@ -5,9 +5,9 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_COPY_OR_MOVE_FILE_VALIDATOR_H_ #define STORAGE_BROWSER_FILE_SYSTEM_COPY_OR_MOVE_FILE_VALIDATOR_H_ -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/callback.h" namespace base { class FilePath;
diff --git a/storage/browser/file_system/copy_or_move_file_validator_unittest.cc b/storage/browser/file_system/copy_or_move_file_validator_unittest.cc index 59d92c8..37344d7 100644 --- a/storage/browser/file_system/copy_or_move_file_validator_unittest.cc +++ b/storage/browser/file_system/copy_or_move_file_validator_unittest.cc
@@ -9,9 +9,9 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/files/file_path.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/copy_or_move_hook_delegate.cc b/storage/browser/file_system/copy_or_move_hook_delegate.cc index 2108d200..9108fca 100644 --- a/storage/browser/file_system/copy_or_move_hook_delegate.cc +++ b/storage/browser/file_system/copy_or_move_hook_delegate.cc
@@ -4,8 +4,8 @@ #include "storage/browser/file_system/copy_or_move_hook_delegate.h" -#include "base/callback.h" #include "base/files/file.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "storage/browser/file_system/file_system_url.h"
diff --git a/storage/browser/file_system/copy_or_move_hook_delegate.h b/storage/browser/file_system/copy_or_move_hook_delegate.h index 06552db..9065d09 100644 --- a/storage/browser/file_system/copy_or_move_hook_delegate.h +++ b/storage/browser/file_system/copy_or_move_hook_delegate.h
@@ -5,9 +5,9 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_COPY_OR_MOVE_HOOK_DELEGATE_H_ #define STORAGE_BROWSER_FILE_SYSTEM_COPY_OR_MOVE_HOOK_DELEGATE_H_ -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/file_system/copy_or_move_hook_delegate_composite.h b/storage/browser/file_system/copy_or_move_hook_delegate_composite.h index 45cd5b6..0f8aa99b 100644 --- a/storage/browser/file_system/copy_or_move_hook_delegate_composite.h +++ b/storage/browser/file_system/copy_or_move_hook_delegate_composite.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "storage/browser/file_system/copy_or_move_hook_delegate.h"
diff --git a/storage/browser/file_system/copy_or_move_hook_delegate_composite_unittest.cc b/storage/browser/file_system/copy_or_move_hook_delegate_composite_unittest.cc index 1d3c84e..232d59bf 100644 --- a/storage/browser/file_system/copy_or_move_hook_delegate_composite_unittest.cc +++ b/storage/browser/file_system/copy_or_move_hook_delegate_composite_unittest.cc
@@ -9,8 +9,6 @@ #include <stdexcept> #include <utility> -#include "base/bind.h" -#include "base/callback_forward.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/functional/bind.h"
diff --git a/storage/browser/file_system/copy_or_move_operation_delegate.cc b/storage/browser/file_system/copy_or_move_operation_delegate.cc index a999227..6bf7719 100644 --- a/storage/browser/file_system/copy_or_move_operation_delegate.cc +++ b/storage/browser/file_system/copy_or_move_operation_delegate.cc
@@ -10,10 +10,10 @@ #include <utility> #include "base/auto_reset.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/copy_or_move_operation_delegate.h b/storage/browser/file_system/copy_or_move_operation_delegate.h index 0cc3306..2bb2a8076 100644 --- a/storage/browser/file_system/copy_or_move_operation_delegate.h +++ b/storage/browser/file_system/copy_or_move_operation_delegate.h
@@ -10,8 +10,8 @@ #include <map> #include <memory> -#include "base/callback_forward.h" #include "base/component_export.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h"
diff --git a/storage/browser/file_system/copy_or_move_operation_delegate_unittest.cc b/storage/browser/file_system/copy_or_move_operation_delegate_unittest.cc index ce9c7b9..16fde0f0 100644 --- a/storage/browser/file_system/copy_or_move_operation_delegate_unittest.cc +++ b/storage/browser/file_system/copy_or_move_operation_delegate_unittest.cc
@@ -11,14 +11,14 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/containers/queue.h" #include "base/containers/span.h" #include "base/files/file.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/raw_ptr.h" #include "base/memory/raw_ref.h"
diff --git a/storage/browser/file_system/file_stream_reader_test.h b/storage/browser/file_system/file_stream_reader_test.h index 4d0820f..d0124ec 100644 --- a/storage/browser/file_system/file_stream_reader_test.h +++ b/storage/browser/file_system/file_stream_reader_test.h
@@ -5,8 +5,8 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_FILE_STREAM_READER_TEST_H_ #define STORAGE_BROWSER_FILE_SYSTEM_FILE_STREAM_READER_TEST_H_ -#include "base/callback_helpers.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "base/threading/thread.h"
diff --git a/storage/browser/file_system/file_stream_writer_test.h b/storage/browser/file_system/file_stream_writer_test.h index 717a8a7..22c5a0e 100644 --- a/storage/browser/file_system/file_stream_writer_test.h +++ b/storage/browser/file_system/file_stream_writer_test.h
@@ -6,9 +6,9 @@ #define STORAGE_BROWSER_FILE_SYSTEM_FILE_STREAM_WRITER_TEST_H_ #include <cstdio> -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "base/threading/thread.h"
diff --git a/storage/browser/file_system/file_system_backend.h b/storage/browser/file_system/file_system_backend.h index ab17998..71b6494 100644 --- a/storage/browser/file_system/file_system_backend.h +++ b/storage/browser/file_system/file_system_backend.h
@@ -12,10 +12,10 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" #include "storage/browser/file_system/file_permission_policy.h" #include "storage/browser/file_system/open_file_system_mode.h" #include "storage/browser/file_system/task_runner_bound_observer_list.h"
diff --git a/storage/browser/file_system/file_system_context.cc b/storage/browser/file_system/file_system_context.cc index 261891a..6b3ffeb 100644 --- a/storage/browser/file_system/file_system_context.cc +++ b/storage/browser/file_system/file_system_context.cc
@@ -10,10 +10,10 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/file_system_context.h b/storage/browser/file_system/file_system_context.h index f5b799c..fe704dd1a 100644 --- a/storage/browser/file_system/file_system_context.h +++ b/storage/browser/file_system/file_system_context.h
@@ -12,9 +12,9 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted_delete_on_sequence.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/file_system/file_system_operation.h b/storage/browser/file_system/file_system_operation.h index 623c9f38..5800540 100644 --- a/storage/browser/file_system/file_system_operation.h +++ b/storage/browser/file_system/file_system_operation.h
@@ -10,11 +10,11 @@ #include <memory> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/enum_set.h" #include "base/files/file.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/process/process.h" #include "base/types/pass_key.h" #include "components/services/filesystem/public/mojom/types.mojom.h"
diff --git a/storage/browser/file_system/file_system_operation_impl.cc b/storage/browser/file_system/file_system_operation_impl.cc index 7208345..7db32f6 100644 --- a/storage/browser/file_system/file_system_operation_impl.cc +++ b/storage/browser/file_system/file_system_operation_impl.cc
@@ -11,10 +11,10 @@ #include <tuple> #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h" #include "base/types/pass_key.h"
diff --git a/storage/browser/file_system/file_system_operation_impl_unittest.cc b/storage/browser/file_system/file_system_operation_impl_unittest.cc index 0eddf054..ee23c0f1 100644 --- a/storage/browser/file_system/file_system_operation_impl_unittest.cc +++ b/storage/browser/file_system/file_system_operation_impl_unittest.cc
@@ -11,9 +11,9 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/file_system/file_system_operation_impl_write_unittest.cc b/storage/browser/file_system/file_system_operation_impl_write_unittest.cc index 56710b33..c49b5af9 100644 --- a/storage/browser/file_system/file_system_operation_impl_write_unittest.cc +++ b/storage/browser/file_system/file_system_operation_impl_write_unittest.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/run_loop.h"
diff --git a/storage/browser/file_system/file_system_operation_runner.cc b/storage/browser/file_system/file_system_operation_runner.cc index 72bd3741..2e82e8ca 100644 --- a/storage/browser/file_system/file_system_operation_runner.cc +++ b/storage/browser/file_system/file_system_operation_runner.cc
@@ -11,10 +11,10 @@ #include <utility> #include "base/auto_reset.h" -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/task/bind_post_task.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/file_system_operation_runner.h b/storage/browser/file_system/file_system_operation_runner.h index 12dfe8f..6b5f918 100644 --- a/storage/browser/file_system/file_system_operation_runner.h +++ b/storage/browser/file_system/file_system_operation_runner.h
@@ -12,9 +12,9 @@ #include <set> #include <vector> -#include "base/callback_helpers.h" #include "base/component_export.h" #include "base/containers/id_map.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/types/pass_key.h"
diff --git a/storage/browser/file_system/file_system_quota_client.cc b/storage/browser/file_system/file_system_quota_client.cc index 1007a13f..553e5bb 100644 --- a/storage/browser/file_system/file_system_quota_client.cc +++ b/storage/browser/file_system/file_system_quota_client.cc
@@ -11,10 +11,10 @@ #include "base/barrier_callback.h" #include "base/barrier_closure.h" -#include "base/bind.h" #include "base/check.h" #include "base/containers/span.h" #include "base/files/file.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/file_system_quota_client_unittest.cc b/storage/browser/file_system/file_system_quota_client_unittest.cc index a4d54ac..fcac4d6 100644 --- a/storage/browser/file_system/file_system_quota_client_unittest.cc +++ b/storage/browser/file_system/file_system_quota_client_unittest.cc
@@ -7,10 +7,10 @@ #include <memory> #include <vector> -#include "base/bind.h" #include "base/cxx17_backports.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/file_system/file_system_usage_cache.cc b/storage/browser/file_system/file_system_usage_cache.cc index b5eb6a2..90ff1e13 100644 --- a/storage/browser/file_system/file_system_usage_cache.cc +++ b/storage/browser/file_system/file_system_usage_cache.cc
@@ -10,9 +10,9 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/pickle.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h"
diff --git a/storage/browser/file_system/file_writer_delegate.cc b/storage/browser/file_system/file_writer_delegate.cc index 7bec9ab..5904f32 100644 --- a/storage/browser/file_system/file_writer_delegate.cc +++ b/storage/browser/file_system/file_writer_delegate.cc
@@ -9,8 +9,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/file_writer_delegate_unittest.cc b/storage/browser/file_system/file_writer_delegate_unittest.cc index f2e4476e..84ddfbb 100644 --- a/storage/browser/file_system/file_writer_delegate_unittest.cc +++ b/storage/browser/file_system/file_writer_delegate_unittest.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/weak_ptr.h" #include "base/run_loop.h"
diff --git a/storage/browser/file_system/filesystem_proxy_file_stream_reader.cc b/storage/browser/file_system/filesystem_proxy_file_stream_reader.cc index a785740..466b95b18 100644 --- a/storage/browser/file_system/filesystem_proxy_file_stream_reader.cc +++ b/storage/browser/file_system/filesystem_proxy_file_stream_reader.cc
@@ -8,8 +8,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/metrics/histogram_macros.h" #include "base/task/task_runner.h"
diff --git a/storage/browser/file_system/filesystem_proxy_file_stream_reader_unittest.cc b/storage/browser/file_system/filesystem_proxy_file_stream_reader_unittest.cc index a45cf35..82b77876 100644 --- a/storage/browser/file_system/filesystem_proxy_file_stream_reader_unittest.cc +++ b/storage/browser/file_system/filesystem_proxy_file_stream_reader_unittest.cc
@@ -10,12 +10,12 @@ #include <memory> #include <string> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/isolated_file_system_backend.cc b/storage/browser/file_system/isolated_file_system_backend.cc index 716f8017..e7676e6 100644 --- a/storage/browser/file_system/isolated_file_system_backend.cc +++ b/storage/browser/file_system/isolated_file_system_backend.cc
@@ -10,9 +10,9 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/check.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/local_file_stream_reader.cc b/storage/browser/file_system/local_file_stream_reader.cc index b0f7ede..f2335f7 100644 --- a/storage/browser/file_system/local_file_stream_reader.cc +++ b/storage/browser/file_system/local_file_stream_reader.cc
@@ -9,9 +9,9 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check_op.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/bind_post_task.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/local_file_stream_reader_unittest.cc b/storage/browser/file_system/local_file_stream_reader_unittest.cc index c522713..255d8863 100644 --- a/storage/browser/file_system/local_file_stream_reader_unittest.cc +++ b/storage/browser/file_system/local_file_stream_reader_unittest.cc
@@ -10,12 +10,12 @@ #include <memory> #include <string> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/local_file_stream_writer.cc b/storage/browser/file_system/local_file_stream_writer.cc index 9bc7fe7..05b29a50 100644 --- a/storage/browser/file_system/local_file_stream_writer.cc +++ b/storage/browser/file_system/local_file_stream_writer.cc
@@ -8,7 +8,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/types/pass_key.h" #include "net/base/file_stream.h" #include "net/base/io_buffer.h"
diff --git a/storage/browser/file_system/local_file_stream_writer.h b/storage/browser/file_system/local_file_stream_writer.h index 364764b6..b29f1683 100644 --- a/storage/browser/file_system/local_file_stream_writer.h +++ b/storage/browser/file_system/local_file_stream_writer.h
@@ -10,9 +10,9 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/task_runner.h" #include "base/types/pass_key.h"
diff --git a/storage/browser/file_system/memory_file_stream_reader_unittest.cc b/storage/browser/file_system/memory_file_stream_reader_unittest.cc index 98f06b0..9df61df 100644 --- a/storage/browser/file_system/memory_file_stream_reader_unittest.cc +++ b/storage/browser/file_system/memory_file_stream_reader_unittest.cc
@@ -11,11 +11,11 @@ #include <string> #include <utility> -#include "base/callback_helpers.h" #include "base/containers/span.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "net/base/io_buffer.h"
diff --git a/storage/browser/file_system/memory_file_stream_writer.h b/storage/browser/file_system/memory_file_stream_writer.h index fa4107cf..d173fab 100644 --- a/storage/browser/file_system/memory_file_stream_writer.h +++ b/storage/browser/file_system/memory_file_stream_writer.h
@@ -5,9 +5,9 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_MEMORY_FILE_STREAM_WRITER_H_ #define STORAGE_BROWSER_FILE_SYSTEM_MEMORY_FILE_STREAM_WRITER_H_ -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "storage/browser/file_system/file_stream_writer.h" #include "storage/browser/file_system/obfuscated_file_util_memory_delegate.h"
diff --git a/storage/browser/file_system/memory_file_stream_writer_unittest.cc b/storage/browser/file_system/memory_file_stream_writer_unittest.cc index ba04d13..8255eb27 100644 --- a/storage/browser/file_system/memory_file_stream_writer_unittest.cc +++ b/storage/browser/file_system/memory_file_stream_writer_unittest.cc
@@ -9,10 +9,10 @@ #include <memory> #include <string> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "net/base/io_buffer.h" #include "net/base/net_errors.h"
diff --git a/storage/browser/file_system/obfuscated_file_util.cc b/storage/browser/file_system/obfuscated_file_util.cc index a8584d5..139120a 100644 --- a/storage/browser/file_system/obfuscated_file_util.cc +++ b/storage/browser/file_system/obfuscated_file_util.cc
@@ -11,11 +11,11 @@ #include <tuple> #include <utility> -#include "base/bind.h" #include "base/containers/queue.h" #include "base/files/file_error_or.h" #include "base/files/file_util.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h"
diff --git a/storage/browser/file_system/obfuscated_file_util.h b/storage/browser/file_system/obfuscated_file_util.h index 566dc224..2b54332c 100644 --- a/storage/browser/file_system/obfuscated_file_util.h +++ b/storage/browser/file_system/obfuscated_file_util.h
@@ -13,11 +13,11 @@ #include <string> #include <vector> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file.h" #include "base/files/file_error_or.h" #include "base/files/file_path.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/file_system/obfuscated_file_util_unittest.cc b/storage/browser/file_system/obfuscated_file_util_unittest.cc index e1d6f511..3aac7df3 100644 --- a/storage/browser/file_system/obfuscated_file_util_unittest.cc +++ b/storage/browser/file_system/obfuscated_file_util_unittest.cc
@@ -14,12 +14,12 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/storage/browser/file_system/quota/quota_backend_impl.cc b/storage/browser/file_system/quota/quota_backend_impl.cc index 4190a8eb..fc085eb 100644 --- a/storage/browser/file_system/quota/quota_backend_impl.cc +++ b/storage/browser/file_system/quota/quota_backend_impl.cc
@@ -10,10 +10,10 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" #include "base/files/file_error_or.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/numerics/safe_conversions.h" #include "base/task/sequenced_task_runner.h" #include "storage/browser/file_system/file_system_usage_cache.h"
diff --git a/storage/browser/file_system/quota/quota_backend_impl_unittest.cc b/storage/browser/file_system/quota/quota_backend_impl_unittest.cc index d78b7b6..0e970e4 100644 --- a/storage/browser/file_system/quota/quota_backend_impl_unittest.cc +++ b/storage/browser/file_system/quota/quota_backend_impl_unittest.cc
@@ -10,10 +10,10 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/check.h" #include "base/files/file_error_or.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/quota/quota_reservation.cc b/storage/browser/file_system/quota/quota_reservation.cc index 3c3e2898e..6cdb8cd 100644 --- a/storage/browser/file_system/quota/quota_reservation.cc +++ b/storage/browser/file_system/quota/quota_reservation.cc
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "storage/browser/file_system/quota/open_file_handle.h" #include "storage/browser/file_system/quota/quota_reservation_buffer.h"
diff --git a/storage/browser/file_system/quota/quota_reservation_buffer.cc b/storage/browser/file_system/quota/quota_reservation_buffer.cc index 7018ee5..3393551d 100644 --- a/storage/browser/file_system/quota/quota_reservation_buffer.cc +++ b/storage/browser/file_system/quota/quota_reservation_buffer.cc
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "storage/browser/file_system/quota/open_file_handle.h"
diff --git a/storage/browser/file_system/quota/quota_reservation_manager.cc b/storage/browser/file_system/quota/quota_reservation_manager.cc index 0aeaa4b..5099358 100644 --- a/storage/browser/file_system/quota/quota_reservation_manager.cc +++ b/storage/browser/file_system/quota/quota_reservation_manager.cc
@@ -9,7 +9,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "storage/browser/file_system/quota/quota_reservation.h" #include "storage/browser/file_system/quota/quota_reservation_buffer.h"
diff --git a/storage/browser/file_system/quota/quota_reservation_manager.h b/storage/browser/file_system/quota/quota_reservation_manager.h index 7a85938..ac9ff884 100644 --- a/storage/browser/file_system/quota/quota_reservation_manager.h +++ b/storage/browser/file_system/quota/quota_reservation_manager.h
@@ -11,9 +11,9 @@ #include <memory> #include <utility> -#include "base/callback_forward.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "storage/common/file_system/file_system_types.h"
diff --git a/storage/browser/file_system/quota/quota_reservation_manager_unittest.cc b/storage/browser/file_system/quota/quota_reservation_manager_unittest.cc index c27ffbd..0f10f6cc 100644 --- a/storage/browser/file_system/quota/quota_reservation_manager_unittest.cc +++ b/storage/browser/file_system/quota/quota_reservation_manager_unittest.cc
@@ -7,11 +7,11 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/recursive_operation_delegate.cc b/storage/browser/file_system/recursive_operation_delegate.cc index 8925834..847809f 100644 --- a/storage/browser/file_system/recursive_operation_delegate.cc +++ b/storage/browser/file_system/recursive_operation_delegate.cc
@@ -6,10 +6,10 @@ #include <stddef.h> -#include "base/bind.h" #include "base/check_op.h" #include "base/containers/queue.h" #include "base/files/file.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "storage/browser/file_system/file_system_context.h" #include "storage/browser/file_system/file_system_operation_runner.h"
diff --git a/storage/browser/file_system/recursive_operation_delegate.h b/storage/browser/file_system/recursive_operation_delegate.h index f43e49a..1eb60b42 100644 --- a/storage/browser/file_system/recursive_operation_delegate.h +++ b/storage/browser/file_system/recursive_operation_delegate.h
@@ -5,10 +5,10 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_RECURSIVE_OPERATION_DELEGATE_H_ #define STORAGE_BROWSER_FILE_SYSTEM_RECURSIVE_OPERATION_DELEGATE_H_ -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/queue.h" #include "base/containers/stack.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "storage/browser/file_system/file_system_operation.h"
diff --git a/storage/browser/file_system/recursive_operation_delegate_unittest.cc b/storage/browser/file_system/recursive_operation_delegate_unittest.cc index 8337cbd3..09886e5 100644 --- a/storage/browser/file_system/recursive_operation_delegate_unittest.cc +++ b/storage/browser/file_system/recursive_operation_delegate_unittest.cc
@@ -9,9 +9,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h"
diff --git a/storage/browser/file_system/remove_operation_delegate.cc b/storage/browser/file_system/remove_operation_delegate.cc index bf77752..83a57b62 100644 --- a/storage/browser/file_system/remove_operation_delegate.cc +++ b/storage/browser/file_system/remove_operation_delegate.cc
@@ -4,7 +4,7 @@ #include "storage/browser/file_system/remove_operation_delegate.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "storage/browser/file_system/file_system_context.h" #include "storage/browser/file_system/file_system_operation_runner.h"
diff --git a/storage/browser/file_system/sandbox_file_stream_reader.h b/storage/browser/file_system/sandbox_file_stream_reader.h index 5b517c09..cedb000 100644 --- a/storage/browser/file_system/sandbox_file_stream_reader.h +++ b/storage/browser/file_system/sandbox_file_stream_reader.h
@@ -9,9 +9,9 @@ #include <memory> -#include "base/bind.h" #include "base/component_export.h" #include "base/files/file.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h"
diff --git a/storage/browser/file_system/sandbox_file_stream_reader_unittest.cc b/storage/browser/file_system/sandbox_file_stream_reader_unittest.cc index bfd361d..1211c75 100644 --- a/storage/browser/file_system/sandbox_file_stream_reader_unittest.cc +++ b/storage/browser/file_system/sandbox_file_stream_reader_unittest.cc
@@ -11,8 +11,8 @@ #include <memory> #include <string> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/sandbox_file_stream_writer.cc b/storage/browser/file_system/sandbox_file_stream_writer.cc index 10ec5578..772b243 100644 --- a/storage/browser/file_system/sandbox_file_stream_writer.cc +++ b/storage/browser/file_system/sandbox_file_stream_writer.cc
@@ -10,7 +10,7 @@ #include <tuple> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "net/base/io_buffer.h"
diff --git a/storage/browser/file_system/sandbox_file_stream_writer_unittest.cc b/storage/browser/file_system/sandbox_file_stream_writer_unittest.cc index bef00c2..2ec84d1 100644 --- a/storage/browser/file_system/sandbox_file_stream_writer_unittest.cc +++ b/storage/browser/file_system/sandbox_file_stream_writer_unittest.cc
@@ -11,10 +11,10 @@ #include <memory> #include <string> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h"
diff --git a/storage/browser/file_system/sandbox_file_system_backend.cc b/storage/browser/file_system/sandbox_file_system_backend.cc index 82acc7b..21857e4 100644 --- a/storage/browser/file_system/sandbox_file_system_backend.cc +++ b/storage/browser/file_system/sandbox_file_system_backend.cc
@@ -9,9 +9,9 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/check.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/metrics/histogram.h" #include "storage/browser/file_system/async_file_util_adapter.h" #include "storage/browser/file_system/copy_or_move_file_validator.h"
diff --git a/storage/browser/file_system/sandbox_file_system_backend_delegate.cc b/storage/browser/file_system/sandbox_file_system_backend_delegate.cc index 8039e6c..10928f9 100644 --- a/storage/browser/file_system/sandbox_file_system_backend_delegate.cc +++ b/storage/browser/file_system/sandbox_file_system_backend_delegate.cc
@@ -10,12 +10,12 @@ #include <memory> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" #include "base/files/file_error_or.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_macros.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h"
diff --git a/storage/browser/file_system/sandbox_file_system_backend_delegate_unittest.cc b/storage/browser/file_system/sandbox_file_system_backend_delegate_unittest.cc index 089d9bd..735490f 100644 --- a/storage/browser/file_system/sandbox_file_system_backend_delegate_unittest.cc +++ b/storage/browser/file_system/sandbox_file_system_backend_delegate_unittest.cc
@@ -6,10 +6,10 @@ #include <memory> -#include "base/bind.h" #include "base/files/file.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "storage/browser/file_system/file_system_url.h"
diff --git a/storage/browser/file_system/sandbox_file_system_backend_unittest.cc b/storage/browser/file_system/sandbox_file_system_backend_unittest.cc index 898ee88..8113c70 100644 --- a/storage/browser/file_system/sandbox_file_system_backend_unittest.cc +++ b/storage/browser/file_system/sandbox_file_system_backend_unittest.cc
@@ -10,9 +10,9 @@ #include <set> #include <vector> -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/file_system/sandbox_quota_observer.cc b/storage/browser/file_system/sandbox_quota_observer.cc index 118e19c..fd14329f 100644 --- a/storage/browser/file_system/sandbox_quota_observer.cc +++ b/storage/browser/file_system/sandbox_quota_observer.cc
@@ -6,8 +6,8 @@ #include <stdint.h> -#include "base/bind.h" #include "base/files/file_error_or.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h" #include "storage/browser/file_system/file_system_usage_cache.h"
diff --git a/storage/browser/file_system/task_runner_bound_observer_list.h b/storage/browser/file_system/task_runner_bound_observer_list.h index 8affbc0..8ffbd0fe 100644 --- a/storage/browser/file_system/task_runner_bound_observer_list.h +++ b/storage/browser/file_system/task_runner_bound_observer_list.h
@@ -8,7 +8,7 @@ #include <map> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/file_system/transient_file_util.cc b/storage/browser/file_system/transient_file_util.cc index 28295a2..a1579bf 100644 --- a/storage/browser/file_system/transient_file_util.cc +++ b/storage/browser/file_system/transient_file_util.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "storage/browser/file_system/file_system_operation_context.h" #include "storage/browser/file_system/file_system_url.h" #include "storage/browser/file_system/isolated_context.h"
diff --git a/storage/browser/file_system/watcher_manager.h b/storage/browser/file_system/watcher_manager.h index 8dff6f3..9009abf7 100644 --- a/storage/browser/file_system/watcher_manager.h +++ b/storage/browser/file_system/watcher_manager.h
@@ -5,8 +5,8 @@ #ifndef STORAGE_BROWSER_FILE_SYSTEM_WATCHER_MANAGER_H_ #define STORAGE_BROWSER_FILE_SYSTEM_WATCHER_MANAGER_H_ -#include "base/callback_forward.h" #include "base/files/file.h" +#include "base/functional/callback_forward.h" namespace storage {
diff --git a/storage/browser/quota/client_usage_tracker.cc b/storage/browser/quota/client_usage_tracker.cc index bc05ed8..56d1a96 100644 --- a/storage/browser/quota/client_usage_tracker.cc +++ b/storage/browser/quota/client_usage_tracker.cc
@@ -8,9 +8,9 @@ #include <iterator> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" #include "third_party/blink/public/common/storage_key/storage_key.h"
diff --git a/storage/browser/quota/client_usage_tracker.h b/storage/browser/quota/client_usage_tracker.h index 635bae19..b360337 100644 --- a/storage/browser/quota/client_usage_tracker.h +++ b/storage/browser/quota/client_usage_tracker.h
@@ -13,7 +13,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/sequence_checker.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h"
diff --git a/storage/browser/quota/quota_callbacks.h b/storage/browser/quota/quota_callbacks.h index ca16c2b..29bc41e 100644 --- a/storage/browser/quota/quota_callbacks.h +++ b/storage/browser/quota/quota_callbacks.h
@@ -13,8 +13,8 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/containers/contains.h" +#include "base/functional/callback.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/mojom/quota/quota_types.mojom-forward.h"
diff --git a/storage/browser/quota/quota_database.cc b/storage/browser/quota/quota_database.cc index e252dd6..86010f10 100644 --- a/storage/browser/quota/quota_database.cc +++ b/storage/browser/quota/quota_database.cc
@@ -12,10 +12,10 @@ #include <vector> #include "base/auto_reset.h" -#include "base/bind.h" #include "base/containers/contains.h" #include "base/dcheck_is_on.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/sequence_checker.h" #include "base/time/clock.h"
diff --git a/storage/browser/quota/quota_database.h b/storage/browser/quota/quota_database.h index b89f307d..5f4c950 100644 --- a/storage/browser/quota/quota_database.h +++ b/storage/browser/quota/quota_database.h
@@ -12,9 +12,9 @@ #include <set> #include <string> -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/thread_annotations.h" #include "base/time/time.h"
diff --git a/storage/browser/quota/quota_database_unittest.cc b/storage/browser/quota/quota_database_unittest.cc index 01b851e..1527ffe9 100644 --- a/storage/browser/quota/quota_database_unittest.cc +++ b/storage/browser/quota/quota_database_unittest.cc
@@ -10,12 +10,12 @@ #include <memory> #include <set> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" #include "base/containers/flat_map.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h"
diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota/quota_manager_impl.cc index cc540a0..f687104 100644 --- a/storage/browser/quota/quota_manager_impl.cc +++ b/storage/browser/quota/quota_manager_impl.cc
@@ -16,13 +16,13 @@ #include "base/barrier_callback.h" #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_forward.h" -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_forward.h" +#include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/quota/quota_manager_impl.h b/storage/browser/quota/quota_manager_impl.h index 4a7676a5..6acda14 100644 --- a/storage/browser/quota/quota_manager_impl.h +++ b/storage/browser/quota/quota_manager_impl.h
@@ -15,9 +15,9 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/memory/ref_counted_delete_on_sequence.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/quota/quota_manager_proxy.cc b/storage/browser/quota/quota_manager_proxy.cc index 6a46f30a..5f2fa292 100644 --- a/storage/browser/quota/quota_manager_proxy.cc +++ b/storage/browser/quota/quota_manager_proxy.cc
@@ -11,8 +11,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/quota/quota_manager_proxy.h b/storage/browser/quota/quota_manager_proxy.h index 6d322179..794ab33 100644 --- a/storage/browser/quota/quota_manager_proxy.h +++ b/storage/browser/quota/quota_manager_proxy.h
@@ -10,8 +10,8 @@ #include <memory> #include <vector> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/quota/quota_manager_unittest.cc b/storage/browser/quota/quota_manager_unittest.cc index 121ff80..a7ab186 100644 --- a/storage/browser/quota/quota_manager_unittest.cc +++ b/storage/browser/quota/quota_manager_unittest.cc
@@ -13,12 +13,12 @@ #include <tuple> #include <vector> -#include "base/bind.h" -#include "base/callback_forward.h" -#include "base/callback_helpers.h" #include "base/containers/span.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_forward.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/storage/browser/quota/quota_override_handle.h b/storage/browser/quota/quota_override_handle.h index 72a4d1b..834eeeee 100644 --- a/storage/browser/quota/quota_override_handle.h +++ b/storage/browser/quota/quota_override_handle.h
@@ -5,7 +5,7 @@ #ifndef STORAGE_BROWSER_QUOTA_QUOTA_OVERRIDE_HANDLE_H_ #define STORAGE_BROWSER_QUOTA_QUOTA_OVERRIDE_HANDLE_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc index 51f43cb..b90b655 100644 --- a/storage/browser/quota/quota_settings.cc +++ b/storage/browser/quota/quota_settings.cc
@@ -9,7 +9,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/rand_util.h" #include "base/system/sys_info.h"
diff --git a/storage/browser/quota/quota_settings.h b/storage/browser/quota/quota_settings.h index 0ae08db2c..54fbaf7 100644 --- a/storage/browser/quota/quota_settings.h +++ b/storage/browser/quota/quota_settings.h
@@ -7,9 +7,9 @@ #include <stdint.h> -#include "base/callback.h" #include "base/component_export.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "storage/browser/quota/quota_device_info_helper.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/storage/browser/quota/quota_settings_unittest.cc b/storage/browser/quota/quota_settings_unittest.cc index 711cc11..97e6088 100644 --- a/storage/browser/quota/quota_settings_unittest.cc +++ b/storage/browser/quota/quota_settings_unittest.cc
@@ -5,9 +5,9 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/numerics/safe_conversions.h" #include "base/run_loop.h" #include "base/test/bind.h"
diff --git a/storage/browser/quota/quota_task.cc b/storage/browser/quota/quota_task.cc index 12029bf..158e4e2a 100644 --- a/storage/browser/quota/quota_task.cc +++ b/storage/browser/quota/quota_task.cc
@@ -7,8 +7,8 @@ #include <algorithm> #include <functional> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/browser/quota/quota_temporary_storage_evictor.cc b/storage/browser/quota/quota_temporary_storage_evictor.cc index 3486b2d..b4e2a089d 100644 --- a/storage/browser/quota/quota_temporary_storage_evictor.cc +++ b/storage/browser/quota/quota_temporary_storage_evictor.cc
@@ -9,7 +9,7 @@ #include <algorithm> #include "base/auto_reset.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "storage/browser/quota/quota_manager_impl.h" #include "third_party/blink/public/common/storage_key/storage_key.h"
diff --git a/storage/browser/quota/quota_temporary_storage_evictor_unittest.cc b/storage/browser/quota/quota_temporary_storage_evictor_unittest.cc index ab7bfd6..32cd3d7 100644 --- a/storage/browser/quota/quota_temporary_storage_evictor_unittest.cc +++ b/storage/browser/quota/quota_temporary_storage_evictor_unittest.cc
@@ -9,9 +9,9 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/storage/browser/quota/storage_policy_observer.h b/storage/browser/quota/storage_policy_observer.h index ce0e5ffc..b7c3843 100644 --- a/storage/browser/quota/storage_policy_observer.h +++ b/storage/browser/quota/storage_policy_observer.h
@@ -8,8 +8,8 @@ #include <map> #include <vector> -#include "base/callback.h" #include "base/component_export.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/quota/usage_tracker.cc b/storage/browser/quota/usage_tracker.cc index af5f528..e6b281bc9 100644 --- a/storage/browser/quota/usage_tracker.cc +++ b/storage/browser/quota/usage_tracker.cc
@@ -10,7 +10,7 @@ #include <memory> #include "base/barrier_closure.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "components/services/storage/public/cpp/buckets/constants.h" #include "storage/browser/quota/client_usage_tracker.h" #include "storage/browser/quota/quota_client_type.h"
diff --git a/storage/browser/quota/usage_tracker.h b/storage/browser/quota/usage_tracker.h index 6e60aa88..808bc381 100644 --- a/storage/browser/quota/usage_tracker.h +++ b/storage/browser/quota/usage_tracker.h
@@ -13,9 +13,9 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/component_export.h" #include "base/containers/flat_map.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h"
diff --git a/storage/browser/quota/usage_tracker_unittest.cc b/storage/browser/quota/usage_tracker_unittest.cc index 7b85fe1..bdd32ee 100644 --- a/storage/browser/quota/usage_tracker_unittest.cc +++ b/storage/browser/quota/usage_tracker_unittest.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/storage/browser/test/async_file_test_helper.cc b/storage/browser/test/async_file_test_helper.cc index 2ce3068..a1341c0 100644 --- a/storage/browser/test/async_file_test_helper.cc +++ b/storage/browser/test/async_file_test_helper.cc
@@ -7,9 +7,9 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h" #include "storage/browser/blob/shareable_file_reference.h"
diff --git a/storage/browser/test/fake_blob_data_handle.cc b/storage/browser/test/fake_blob_data_handle.cc index c1bdbe69..a5f5c0d 100644 --- a/storage/browser/test/fake_blob_data_handle.cc +++ b/storage/browser/test/fake_blob_data_handle.cc
@@ -4,7 +4,7 @@ #include "storage/browser/test/fake_blob_data_handle.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "net/base/net_errors.h" namespace storage {
diff --git a/storage/browser/test/fake_blob_data_handle.h b/storage/browser/test/fake_blob_data_handle.h index 33d753d3..e63fa422 100644 --- a/storage/browser/test/fake_blob_data_handle.h +++ b/storage/browser/test/fake_blob_data_handle.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "storage/browser/blob/blob_data_item.h" namespace storage {
diff --git a/storage/browser/test/mock_quota_client.cc b/storage/browser/test/mock_quota_client.cc index 08b37f3..768cfdf 100644 --- a/storage/browser/test/mock_quota_client.cc +++ b/storage/browser/test/mock_quota_client.cc
@@ -9,7 +9,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/singleton.h" #include "base/ranges/algorithm.h"
diff --git a/storage/browser/test/mock_quota_manager.cc b/storage/browser/test/mock_quota_manager.cc index 3fb4294..0b676bb 100644 --- a/storage/browser/test/mock_quota_manager.cc +++ b/storage/browser/test/mock_quota_manager.cc
@@ -9,8 +9,8 @@ #include <utility> #include "base/barrier_closure.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ref_counted.h" #include "base/ranges/algorithm.h"
diff --git a/storage/browser/test/mock_quota_manager_unittest.cc b/storage/browser/test/mock_quota_manager_unittest.cc index 6654a0ed..2d9c533 100644 --- a/storage/browser/test/mock_quota_manager_unittest.cc +++ b/storage/browser/test/mock_quota_manager_unittest.cc
@@ -7,10 +7,10 @@ #include <memory> #include <set> -#include "base/bind.h" #include "base/containers/flat_set.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/storage/common/run_all_unittests.cc b/storage/common/run_all_unittests.cc index c5d2613..e788da7 100644 --- a/storage/common/run_all_unittests.cc +++ b/storage/common/run_all_unittests.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "build/build_config.h"
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index e6a6304..ec5af70 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -1643,10 +1643,11 @@ "bucket": "chromiumos-image-archive", "cros_board": "kevin", "cros_img": "kevin64-public/R109-15222.0.0", - "name": "lacros_tast_tests KEVIN_PUBLIC", + "name": "lacros_all_tast_tests KEVIN_PUBLIC", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", - "test": "lacros_tast_tests", + "test": "lacros_all_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/", "timeout_sec": 10800, "variant_id": "KEVIN_PUBLIC" } @@ -5838,9 +5839,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -5852,8 +5853,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -6009,9 +6010,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6023,8 +6024,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -6161,9 +6162,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -6175,8 +6176,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 94d27d4..69df3c2d 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -74611,10 +74611,11 @@ "bucket": "chromiumos-image-archive", "cros_board": "octopus", "cros_img": "octopus-public/R109-15222.0.0", - "name": "lacros_tast_tests OCTOPUS_FULL", + "name": "lacros_all_tast_tests OCTOPUS_FULL", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", - "test": "lacros_tast_tests", + "test": "lacros_all_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/", "timeout_sec": 10800, "variant_id": "OCTOPUS_FULL" }, @@ -74623,10 +74624,11 @@ "bucket": "chromiumos-image-archive", "cros_board": "eve", "cros_img": "eve-public/R109-15222.0.0", - "name": "lacros_tast_tests EVE_FULL", + "name": "lacros_all_tast_tests EVE_FULL", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", - "test": "lacros_tast_tests", + "test": "lacros_all_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/", "timeout_sec": 10800, "variant_id": "EVE_FULL" } @@ -74642,10 +74644,11 @@ "bucket": "chromiumos-image-archive", "cros_board": "jacuzzi", "cros_img": "jacuzzi-public/R109-15222.0.0", - "name": "lacros_tast_tests JACUZZI_PUBLIC", + "name": "lacros_all_tast_tests JACUZZI_PUBLIC", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", - "test": "lacros_tast_tests", + "test": "lacros_all_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/", "timeout_sec": 10800, "variant_id": "JACUZZI_PUBLIC" }, @@ -74654,10 +74657,11 @@ "bucket": "chromiumos-image-archive", "cros_board": "kevin", "cros_img": "kevin64-public/R109-15222.0.0", - "name": "lacros_tast_tests KEVIN_PUBLIC", + "name": "lacros_all_tast_tests KEVIN_PUBLIC", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", - "test": "lacros_tast_tests", + "test": "lacros_all_tast_tests", + "test_id_prefix": "ninja://chromeos/lacros:lacros_all_tast_tests/", "timeout_sec": 10800, "variant_id": "KEVIN_PUBLIC" } @@ -83291,9 +83295,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83305,8 +83309,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -83432,9 +83436,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83446,8 +83450,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -83559,9 +83563,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -83573,8 +83577,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -84907,9 +84911,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -84920,8 +84924,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -85078,9 +85082,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -85091,8 +85095,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -85230,9 +85234,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -85243,8 +85247,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -86768,9 +86772,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -86781,8 +86785,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -86939,9 +86943,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -86952,8 +86956,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -87091,9 +87095,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87104,8 +87108,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -87877,9 +87881,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -87890,8 +87894,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 8efc406..2121f78f 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -18653,12 +18653,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18670,8 +18670,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -18844,12 +18844,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -18861,8 +18861,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [ @@ -19011,12 +19011,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 111.0.5534.0", + "description": "Run with ash-chrome version 111.0.5535.0", "isolate_profile_data": true, "merge": { "args": [], @@ -19028,8 +19028,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v111.0.5534.0", - "revision": "version:111.0.5534.0" + "location": "lacros_version_skew_tests_v111.0.5535.0", + "revision": "version:111.0.5535.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index d34e0bec..3b790fc 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -4081,7 +4081,7 @@ }, 'lacros_skylab': { - 'lacros_tast_tests': { + 'lacros_all_tast_tests': { 'tast_expr': '("group:mainline" && "dep:lacros" && !informational)', 'timeout_sec': 10800, },
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index cdfe011..b619afc1 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,16 +22,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5534.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v111.0.5535.0/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 111.0.5534.0', + 'description': 'Run with ash-chrome version 111.0.5535.0', 'identifier': 'Lacros version skew testing ash canary', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v111.0.5534.0', - 'revision': 'version:111.0.5534.0', + 'location': 'lacros_version_skew_tests_v111.0.5535.0', + 'revision': 'version:111.0.5535.0', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 0df23606..0b354c2 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -3462,6 +3462,21 @@ ] } ], + "DeferKeepScreenOnDuringGesture": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DeferKeepScreenOnDuringGesture" + ] + } + ] + } + ], "DeferredShaping": [ { "platforms": [
diff --git a/third_party/blink/DEPS b/third_party/blink/DEPS index 583e2c0..b3d2d42c 100644 --- a/third_party/blink/DEPS +++ b/third_party/blink/DEPS
@@ -1,7 +1,7 @@ include_rules = [ - "+base/callback.h", - "+base/callback_forward.h", - "+base/callback_helpers.h", + "+base/functional/callback.h", + "+base/functional/callback_forward.h", + "+base/functional/callback_helpers.h", "+base/functional/function_ref.h", "+base/memory/raw_ptr.h", "+base/notreached.h",
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index d53ebfb..3b5f929 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -1023,6 +1023,14 @@ const base::FeatureParam<int> kBrowsingTopicsTaxonomyVersion{ &kBrowsingTopics, "taxonomy_version", 1}; +// Enables the deprecatedBrowsingTopics XHR attribute. For this feature to take +// effect, the main Topics feature has to be enabled first (i.e. +// `kBrowsingTopics` is enabled, and, either a valid Origin Trial token exists +// or `kPrivacySandboxAdsAPIsOverride` is enabled.) +BASE_FEATURE(kBrowsingTopicsXHR, + "BrowsingTopicsXHR", + base::FEATURE_DISABLED_BY_DEFAULT); + // If enabled, the check for whether the IP address is publicly routable will be // bypassed when determining the eligibility for a page to be included in topics // calculation. This is useful for developers to test in local environment.
diff --git a/third_party/blink/common/loader/mime_sniffing_throttle_unittest.cc b/third_party/blink/common/loader/mime_sniffing_throttle_unittest.cc index c3dbf19..a6efed9 100644 --- a/third_party/blink/common/loader/mime_sniffing_throttle_unittest.cc +++ b/third_party/blink/common/loader/mime_sniffing_throttle_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/third_party/blink/common/loader/mime_sniffing_url_loader.cc b/third_party/blink/common/loader/mime_sniffing_url_loader.cc index 3f5a3ba2..3a658fe 100644 --- a/third_party/blink/common/loader/mime_sniffing_url_loader.cc +++ b/third_party/blink/common/loader/mime_sniffing_url_loader.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/common/loader/mime_sniffing_url_loader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/strings/string_piece.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/common/loader/throttling_url_loader.cc b/third_party/blink/common/loader/throttling_url_loader.cc index 1d00d3e..e7d141a 100644 --- a/third_party/blink/common/loader/throttling_url_loader.cc +++ b/third_party/blink/common/loader/throttling_url_loader.cc
@@ -6,8 +6,8 @@ #include <vector> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_functions.h" #include "base/strings/strcat.h"
diff --git a/third_party/blink/common/loader/throttling_url_loader_unittest.cc b/third_party/blink/common/loader/throttling_url_loader_unittest.cc index c8269cf6..4cc2d23 100644 --- a/third_party/blink/common/loader/throttling_url_loader_unittest.cc +++ b/third_party/blink/common/loader/throttling_url_loader_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/common/loader/throttling_url_loader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "base/notreached.h"
diff --git a/third_party/blink/common/media/watch_time_component_unittest.cc b/third_party/blink/common/media/watch_time_component_unittest.cc index e263fc0c..62c65c9 100644 --- a/third_party/blink/common/media/watch_time_component_unittest.cc +++ b/third_party/blink/common/media/watch_time_component_unittest.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/public/common/media/watch_time_component.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/media/display_type.h"
diff --git a/third_party/blink/common/media/watch_time_reporter.cc b/third_party/blink/common/media/watch_time_reporter.cc index 2762b49..a7e60ef 100644 --- a/third_party/blink/common/media/watch_time_reporter.cc +++ b/third_party/blink/common/media/watch_time_reporter.cc
@@ -6,8 +6,8 @@ #include <numeric> -#include "base/bind.h" #include "base/containers/cxx20_erase.h" +#include "base/functional/bind.h" #include "base/power_monitor/power_monitor.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/common/origin_trials/scoped_test_origin_trial_policy.cc b/third_party/blink/common/origin_trials/scoped_test_origin_trial_policy.cc index 25ef1eb..7ce7809 100644 --- a/third_party/blink/common/origin_trials/scoped_test_origin_trial_policy.cc +++ b/third_party/blink/common/origin_trials/scoped_test_origin_trial_policy.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/common/origin_trials/scoped_test_origin_trial_policy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/public/common/origin_trials/trial_token_validator.h" namespace blink {
diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/third_party/blink/common/origin_trials/trial_token_validator.cc index e5429a7e..73c89d2 100644 --- a/third_party/blink/common/origin_trials/trial_token_validator.cc +++ b/third_party/blink/common/origin_trials/trial_token_validator.cc
@@ -5,9 +5,9 @@ #include "third_party/blink/public/common/origin_trials/trial_token_validator.h" #include <memory> -#include "base/bind.h" #include "base/check.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/no_destructor.h" #include "base/time/time.h" #include "net/http/http_response_headers.h"
diff --git a/third_party/blink/common/origin_trials/trial_token_validator_unittest.cc b/third_party/blink/common/origin_trials/trial_token_validator_unittest.cc index 742eab7..57b54663 100644 --- a/third_party/blink/common/origin_trials/trial_token_validator_unittest.cc +++ b/third_party/blink/common/origin_trials/trial_token_validator_unittest.cc
@@ -8,8 +8,8 @@ #include <string> #include <vector> -#include "base/bind.h" #include "base/containers/flat_set.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ref.h" #include "base/strings/string_piece.h"
diff --git a/third_party/blink/common/page/content_to_visible_time_reporter.cc b/third_party/blink/common/page/content_to_visible_time_reporter.cc index 3e09d53e..2c13c8a 100644 --- a/third_party/blink/common/page/content_to_visible_time_reporter.cc +++ b/third_party/blink/common/page/content_to_visible_time_reporter.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" #include "base/strings/strcat.h" #include "base/time/time.h"
diff --git a/third_party/blink/common/permissions_policy/document_policy_unittest.cc b/third_party/blink/common/permissions_policy/document_policy_unittest.cc index ebb5303a..fdaa90c 100644 --- a/third_party/blink/common/permissions_policy/document_policy_unittest.cc +++ b/third_party/blink/common/permissions_policy/document_policy_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/common/permissions_policy/document_policy.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/permissions_policy/document_policy_features.h" #include "third_party/blink/public/mojom/permissions_policy/document_policy_feature.mojom.h"
diff --git a/third_party/blink/common/test/run_all_unittests.cc b/third_party/blink/common/test/run_all_unittests.cc index d2cfc930..4a2307c 100644 --- a/third_party/blink/common/test/run_all_unittests.cc +++ b/third_party/blink/common/test/run_all_unittests.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/test_suite.h" #include "mojo/core/embedder/embedder.h" #include "v8/include/libplatform/libplatform.h"
diff --git a/third_party/blink/public/common/associated_interfaces/associated_interface_provider.h b/third_party/blink/public/common/associated_interfaces/associated_interface_provider.h index fc3c310..58aeb2a 100644 --- a/third_party/blink/public/common/associated_interfaces/associated_interface_provider.h +++ b/third_party/blink/public/common/associated_interfaces/associated_interface_provider.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "mojo/public/cpp/bindings/associated_remote.h"
diff --git a/third_party/blink/public/common/associated_interfaces/associated_interface_registry.h b/third_party/blink/public/common/associated_interfaces/associated_interface_registry.h index 968d14dd..bd4437b 100644 --- a/third_party/blink/public/common/associated_interfaces/associated_interface_registry.h +++ b/third_party/blink/public/common/associated_interfaces/associated_interface_registry.h
@@ -9,8 +9,8 @@ #include <string> #include <type_traits> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 2bb93f7..3181b22 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -445,6 +445,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( kBrowsingTopicsBypassIPIsPubliclyRoutableCheck); +BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBrowsingTopicsXHR); + // Uses page viewport instead of frame viewport in the Largest Contentful Paint // heuristic where images occupying the full viewport are ignored. BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kUsePageViewportInLCP);
diff --git a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h index bdce7dd76..fa6fb83 100644 --- a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h +++ b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h
@@ -8,8 +8,8 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_FENCED_FRAME_REDACTED_FENCED_FRAME_CONFIG_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_FENCED_FRAME_REDACTED_FENCED_FRAME_CONFIG_H_ -#include "base/callback_forward.h" #include "base/containers/flat_map.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/common_export.h"
diff --git a/third_party/blink/public/common/loader/mime_sniffing_url_loader.h b/third_party/blink/public/common/loader/mime_sniffing_url_loader.h index 2e6ebb9..42a8284 100644 --- a/third_party/blink/public/common/loader/mime_sniffing_url_loader.h +++ b/third_party/blink/public/common/loader/mime_sniffing_url_loader.h
@@ -7,7 +7,7 @@ #include <tuple> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/strings/string_piece.h"
diff --git a/third_party/blink/public/common/loader/throttling_url_loader.h b/third_party/blink/public/common/loader/throttling_url_loader.h index 11b6513..c5bbf647 100644 --- a/third_party/blink/public/common/loader/throttling_url_loader.h +++ b/third_party/blink/public/common/loader/throttling_url_loader.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/public/common/media/video_capture.h b/third_party/blink/public/common/media/video_capture.h index 30775e2..9c002d6 100644 --- a/third_party/blink/public/common/media/video_capture.h +++ b/third_party/blink/public/common/media/video_capture.h
@@ -7,7 +7,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_MEDIA_VIDEO_CAPTURE_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_MEDIA_VIDEO_CAPTURE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/capture/video/video_capture_feedback.h" #include "media/capture/video_capture_types.h"
diff --git a/third_party/blink/public/common/media/watch_time_component.h b/third_party/blink/public/common/media/watch_time_component.h index b1dcdf925..d43edb1 100644 --- a/third_party/blink/public/common/media/watch_time_component.h +++ b/third_party/blink/public/common/media/watch_time_component.h
@@ -7,7 +7,7 @@ #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "media/base/timestamp_constants.h"
diff --git a/third_party/blink/public/common/media/watch_time_reporter.h b/third_party/blink/public/common/media/watch_time_reporter.h index 9e15a7a..741f78c9f 100644 --- a/third_party/blink/public/common/media/watch_time_reporter.h +++ b/third_party/blink/public/common/media/watch_time_reporter.h
@@ -7,7 +7,7 @@ #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/power_monitor/power_observer.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/public/common/origin_trials/trial_token_validator.h b/third_party/blink/public/common/origin_trials/trial_token_validator.h index 2ac66285..a280a43 100644 --- a/third_party/blink/public/common/origin_trials/trial_token_validator.h +++ b/third_party/blink/public/common/origin_trials/trial_token_validator.h
@@ -8,9 +8,9 @@ #include <memory> #include <string> #include <vector> -#include "base/callback.h" #include "base/containers/flat_map.h" #include "base/containers/span.h" +#include "base/functional/callback.h" #include "base/strings/string_piece.h" #include "base/time/time.h" #include "third_party/blink/public/common/common_export.h"
diff --git a/third_party/blink/public/common/page/content_to_visible_time_reporter.h b/third_party/blink/public/common/page/content_to_visible_time_reporter.h index 21a7f16..3b0f345 100644 --- a/third_party/blink/public/common/page/content_to_visible_time_reporter.h +++ b/third_party/blink/public/common/page/content_to_visible_time_reporter.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_CONTENT_TO_VISIBLE_TIME_REPORTER_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_CONTENT_TO_VISIBLE_TIME_REPORTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "third_party/blink/public/common/common_export.h"
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl index 1f630460..da68c029 100644 --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -7237,6 +7237,8 @@ usb vertical-scroll web-share + # Alias for 'window-placement' (crbug.com/1328581). + window-management window-placement xr-spatial-tracking
diff --git a/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom b/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom index ae2ee8a..7c71b88 100644 --- a/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom +++ b/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom
@@ -136,8 +136,8 @@ // Client Hint for the preferred color scheme. kClientHintPrefersColorScheme = 85, - // Controls use of Multi-Screen Window Placement API. - kWindowPlacement = 86, + // Controls use of Window Management API. + kWindowManagement = 86, kClientHintUABitness = 87,
diff --git a/third_party/blink/public/platform/child_url_loader_factory_bundle.h b/third_party/blink/public/platform/child_url_loader_factory_bundle.h index b8f3ba0..1c456ed 100644 --- a/third_party/blink/public/platform/child_url_loader_factory_bundle.h +++ b/third_party/blink/public/platform/child_url_loader_factory_bundle.h
@@ -9,7 +9,7 @@ #include <memory> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/third_party/blink/public/platform/interface_registry.h b/third_party/blink/public/platform/interface_registry.h index 0abdcad..f75b6842 100644 --- a/third_party/blink/public/platform/interface_registry.h +++ b/third_party/blink/public/platform/interface_registry.h
@@ -7,7 +7,7 @@ #include <utility> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
diff --git a/third_party/blink/public/platform/media/DEPS b/third_party/blink/public/platform/media/DEPS index b16e29be..8e3a74a6 100644 --- a/third_party/blink/public/platform/media/DEPS +++ b/third_party/blink/public/platform/media/DEPS
@@ -1,6 +1,6 @@ include_rules = [ - "+base/bind.h", "+base/containers/lru_cache.h", + "+base/functional/bind.h", "+base/hash/hash.h", "+base/thread_annotations.h", "+base/timer/timer.h",
diff --git a/third_party/blink/public/platform/media/key_system_config_selector.h b/third_party/blink/public/platform/media/key_system_config_selector.h index 836f844..9c9710e 100644 --- a/third_party/blink/public/platform/media/key_system_config_selector.h +++ b/third_party/blink/public/platform/media/key_system_config_selector.h
@@ -9,8 +9,8 @@ #include <string> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "media/base/eme_constants.h"
diff --git a/third_party/blink/public/platform/media/multi_buffer.h b/third_party/blink/public/platform/media/multi_buffer.h index f6c21e1..8cfe9f6 100644 --- a/third_party/blink/public/platform/media/multi_buffer.h +++ b/third_party/blink/public/platform/media/multi_buffer.h
@@ -16,8 +16,8 @@ #include <unordered_map> #include <vector> -#include "base/callback.h" #include "base/containers/lru_cache.h" +#include "base/functional/callback.h" #include "base/hash/hash.h" #include "base/memory/ref_counted.h" #include "base/synchronization/lock.h"
diff --git a/third_party/blink/public/platform/media/video_frame_compositor.h b/third_party/blink/public/platform/media/video_frame_compositor.h index 97c1204..70cc519 100644 --- a/third_party/blink/public/platform/media/video_frame_compositor.h +++ b/third_party/blink/public/platform/media/video_frame_compositor.h
@@ -7,7 +7,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/synchronization/lock.h"
diff --git a/third_party/blink/public/platform/media/web_encrypted_media_client_impl.h b/third_party/blink/public/platform/media/web_encrypted_media_client_impl.h index 126cf75..f7a7a072 100644 --- a/third_party/blink/public/platform/media/web_encrypted_media_client_impl.h +++ b/third_party/blink/public/platform/media/web_encrypted_media_client_impl.h
@@ -9,7 +9,7 @@ #include <string> #include <unordered_map> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "third_party/blink/public/platform/media/key_system_config_selector.h"
diff --git a/third_party/blink/public/platform/media/web_media_player_builder.h b/third_party/blink/public/platform/media/web_media_player_builder.h index a59f68d4..40d07b0 100644 --- a/third_party/blink/public/platform/media/web_media_player_builder.h +++ b/third_party/blink/public/platform/media/web_media_player_builder.h
@@ -9,7 +9,7 @@ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "cc/layers/surface_layer.h"
diff --git a/third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h b/third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h index 9a768c79..dbb0c7a 100644 --- a/third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h +++ b/third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/time/time.h" #include "media/base/output_device_info.h"
diff --git a/third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h b/third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h index 6c72db1..9b661c30 100644 --- a/third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h +++ b/third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_VIDEO_RENDERER_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_VIDEO_RENDERER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" namespace media {
diff --git a/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h b/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h index 57570063..1dfb3a37 100644 --- a/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h +++ b/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_PLATFORM_MEDIA_STREAM_SOURCE_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_PLATFORM_MEDIA_STREAM_SOURCE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/common/mediastream/media_stream_controls.h" #include "third_party/blink/public/common/mediastream/media_stream_request.h"
diff --git a/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h b/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h index 1586f85..f6e0e4409 100644 --- a/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h +++ b/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h
@@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h"
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h index c923ef29..9629551 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h
@@ -36,7 +36,7 @@ #include <tuple> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h" #include "base/threading/platform_thread.h"
diff --git a/third_party/blink/public/platform/scheduler/DEPS b/third_party/blink/public/platform/scheduler/DEPS index bbce01d..464b359 100644 --- a/third_party/blink/public/platform/scheduler/DEPS +++ b/third_party/blink/public/platform/scheduler/DEPS
@@ -1,5 +1,5 @@ include_rules = [ - "+base/bind.h", + "+base/functional/bind.h", "+base/location.h", "+base/memory/ptr_util.h", "+base/memory/ref_counted.h",
diff --git a/third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h b/third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h index a959139..8d260a11 100644 --- a/third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h +++ b/third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" namespace base { class SequencedTaskRunner;
diff --git a/third_party/blink/public/platform/web_code_cache_loader.h b/third_party/blink/public/platform/web_code_cache_loader.h index 278ff47f..d2e552c 100644 --- a/third_party/blink/public/platform/web_code_cache_loader.h +++ b/third_party/blink/public/platform/web_code_cache_loader.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CODE_CACHE_LOADER_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CODE_CACHE_LOADER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "mojo/public/cpp/base/big_buffer.h" #include "third_party/blink/public/mojom/loader/code_cache.mojom-shared.h"
diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h index 1087c2a..9df45cb1 100644 --- a/third_party/blink/public/platform/web_content_settings_client.h +++ b/third_party/blink/public/platform/web_content_settings_client.h
@@ -8,7 +8,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "third_party/blink/public/common/client_hints/enabled_client_hints.h"
diff --git a/third_party/blink/public/platform/web_graphics_context_3d_provider.h b/third_party/blink/public/platform/web_graphics_context_3d_provider.h index 10da8a9..de47eb9 100644 --- a/third_party/blink/public/platform/web_graphics_context_3d_provider.h +++ b/third_party/blink/public/platform/web_graphics_context_3d_provider.h
@@ -32,7 +32,7 @@ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_GRAPHICS_CONTEXT_3D_PROVIDER_H_ #include <cstdint> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/skia/include/core/SkImageInfo.h" class GrDirectContext;
diff --git a/third_party/blink/public/platform/web_set_sink_id_callbacks.h b/third_party/blink/public/platform/web_set_sink_id_callbacks.h index c723398..5ebc6838 100644 --- a/third_party/blink/public/platform/web_set_sink_id_callbacks.h +++ b/third_party/blink/public/platform/web_set_sink_id_callbacks.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SET_SINK_ID_CALLBACKS_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SET_SINK_ID_CALLBACKS_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/platform/web_string.h"
diff --git a/third_party/blink/public/platform/web_url_loader_client.h b/third_party/blink/public/platform/web_url_loader_client.h index 7c0b8b40..88cfd49 100644 --- a/third_party/blink/public/platform/web_url_loader_client.h +++ b/third_party/blink/public/platform/web_url_loader_client.h
@@ -32,7 +32,7 @@ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_URL_LOADER_CLIENT_H_ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "mojo/public/cpp/base/big_buffer.h" #include "mojo/public/cpp/system/data_pipe.h"
diff --git a/third_party/blink/public/platform/web_v8_value_converter.h b/third_party/blink/public/platform/web_v8_value_converter.h index dc9120de..a5dac34 100644 --- a/third_party/blink/public/platform/web_v8_value_converter.h +++ b/third_party/blink/public/platform/web_v8_value_converter.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/platform/web_common.h" #include "v8/include/v8-forward.h"
diff --git a/third_party/blink/public/platform/webaudiosourceprovider_impl.h b/third_party/blink/public/platform/webaudiosourceprovider_impl.h index 92e2e14..3551117 100644 --- a/third_party/blink/public/platform/webaudiosourceprovider_impl.h +++ b/third_party/blink/public/platform/webaudiosourceprovider_impl.h
@@ -10,8 +10,8 @@ #include <memory> #include <string> -#include "base/callback.h" -#include "base/callback_forward.h" +#include "base/functional/callback.h" +#include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h"
diff --git a/third_party/blink/public/platform/websocket_handshake_throttle.h b/third_party/blink/public/platform/websocket_handshake_throttle.h index 99731f2..d10fc52 100644 --- a/third_party/blink/public/platform/websocket_handshake_throttle.h +++ b/third_party/blink/public/platform/websocket_handshake_throttle.h
@@ -15,7 +15,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEBSOCKET_HANDSHAKE_THROTTLE_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEBSOCKET_HANDSHAKE_THROTTLE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace blink {
diff --git a/third_party/blink/public/test/frame_widget_test_helper.h b/third_party/blink/public/test/frame_widget_test_helper.h index 72a25ba7..3b63c8e 100644 --- a/third_party/blink/public/test/frame_widget_test_helper.h +++ b/third_party/blink/public/test/frame_widget_test_helper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_TEST_FRAME_WIDGET_TEST_HELPER_H_ #define THIRD_PARTY_BLINK_PUBLIC_TEST_FRAME_WIDGET_TEST_HELPER_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/public/platform/web_common.h" #include "third_party/blink/public/web/web_frame_widget.h"
diff --git a/third_party/blink/public/web/modules/autofill/web_form_element_observer.h b/third_party/blink/public/web/modules/autofill/web_form_element_observer.h index 9588182..2dd7998 100644 --- a/third_party/blink/public/web/modules/autofill/web_form_element_observer.h +++ b/third_party/blink/public/web/modules/autofill/web_form_element_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_AUTOFILL_WEB_FORM_ELEMENT_OBSERVER_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_AUTOFILL_WEB_FORM_ELEMENT_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/platform/web_common.h" namespace blink {
diff --git a/third_party/blink/public/web/modules/media/audio/audio_device_factory.h b/third_party/blink/public/web/modules/media/audio/audio_device_factory.h index b9950881..69ddb5d 100644 --- a/third_party/blink/public/web/modules/media/audio/audio_device_factory.h +++ b/third_party/blink/public/web/modules/media/audio/audio_device_factory.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIA_AUDIO_AUDIO_DEVICE_FACTORY_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIA_AUDIO_AUDIO_DEVICE_FACTORY_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "media/audio/audio_sink_parameters.h" #include "media/audio/audio_source_parameters.h"
diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h index ad5b50e1..760b7c7 100644 --- a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h +++ b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
@@ -9,8 +9,8 @@ #include <string> #include <vector> -#include "base/callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/public/web/web_frame_widget.h b/third_party/blink/public/web/web_frame_widget.h index e945732..d9a334ca 100644 --- a/third_party/blink/public/web/web_frame_widget.h +++ b/third_party/blink/public/web/web_frame_widget.h
@@ -33,7 +33,7 @@ #include <stdint.h> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/types/pass_key.h" #include "components/viz/common/surfaces/frame_sink_id.h" #include "third_party/blink/public/common/page/drag_operation.h"
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h index b1d3500..257c1bcf 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h
@@ -8,8 +8,8 @@ #include <memory> #include <set> -#include "base/callback.h" #include "base/containers/span.h" +#include "base/functional/callback.h" #include "base/i18n/rtl.h" #include "base/memory/weak_ptr.h" #include "base/types/pass_key.h"
diff --git a/third_party/blink/public/web/web_manifest_manager.h b/third_party/blink/public/web/web_manifest_manager.h index f7536371..7c96450 100644 --- a/third_party/blink/public/web/web_manifest_manager.h +++ b/third_party/blink/public/web/web_manifest_manager.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_MANIFEST_MANAGER_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_MANIFEST_MANAGER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/platform/web_common.h" namespace blink {
diff --git a/third_party/blink/public/web/web_navigation_control.h b/third_party/blink/public/web/web_navigation_control.h index e66afe9..dd9b753 100644 --- a/third_party/blink/public/web/web_navigation_control.h +++ b/third_party/blink/public/web/web_navigation_control.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/web/web_document_loader.h" #include "third_party/blink/public/web/web_frame_load_type.h"
diff --git a/third_party/blink/public/web/web_script_execution_callback.h b/third_party/blink/public/web/web_script_execution_callback.h index acc31345..4cd668a 100644 --- a/third_party/blink/public/web/web_script_execution_callback.h +++ b/third_party/blink/public/web/web_script_execution_callback.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace base {
diff --git a/third_party/blink/renderer/DEPS b/third_party/blink/renderer/DEPS index 24664b7f..3cdd8d2 100644 --- a/third_party/blink/renderer/DEPS +++ b/third_party/blink/renderer/DEPS
@@ -2,7 +2,6 @@ "+base/allocator/partition_allocator/oom.h", "+base/allocator/partition_allocator/partition_alloc.h", "+base/auto_reset.h", - "+base/bind.h", "+base/bit_cast.h", "+base/bits.h", "+base/check.h", @@ -20,6 +19,7 @@ "+base/debug", "+base/feature_list.h", "+base/format_macros.h", + "+base/functional/bind.h", "+base/functional/function_ref.h", "+base/gtest_prod_util.h", "+base/hash/hash.h",
diff --git a/third_party/blink/renderer/bindings/core/v8/script_cache_consumer.cc b/third_party/blink/renderer/bindings/core/v8/script_cache_consumer.cc index 952dfa5..ac08bd1 100644 --- a/third_party/blink/renderer/bindings/core/v8/script_cache_consumer.cc +++ b/third_party/blink/renderer/bindings/core/v8/script_cache_consumer.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/bindings/core/v8/script_cache_consumer.h" #include <atomic> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/common/trace_event_common.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_controller.cc b/third_party/blink/renderer/bindings/core/v8/script_controller.cc index cc6c7697..e07408b 100644 --- a/third_party/blink/renderer/bindings/core/v8/script_controller.cc +++ b/third_party/blink/renderer/bindings/core/v8/script_controller.cc
@@ -35,7 +35,7 @@ #include <memory> #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/renderer/bindings/core/v8/script_evaluation_result.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h index 22c12e34..179175b 100644 --- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h +++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
@@ -33,9 +33,9 @@ #include <memory> -#include "base/callback_forward.h" #include "base/containers/span.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback_forward.h" #include "base/ranges/algorithm.h" #include "base/types/optional_util.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl.cc b/third_party/blink/renderer/controller/oom_intervention_impl.cc index 798fb8bab..a26beda 100644 --- a/third_party/blink/renderer/controller/oom_intervention_impl.cc +++ b/third_party/blink/renderer/controller/oom_intervention_impl.cc
@@ -8,8 +8,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/debug/crash_logging.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/controller/performance_manager/renderer_resource_coordinator_impl.cc b/third_party/blink/renderer/controller/performance_manager/renderer_resource_coordinator_impl.cc index 1e01e62..e9492e0 100644 --- a/third_party/blink/renderer/controller/performance_manager/renderer_resource_coordinator_impl.cc +++ b/third_party/blink/renderer/controller/performance_manager/renderer_resource_coordinator_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "third_party/blink/public/common/frame/frame_owner_element_type.h" #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h" #include "third_party/blink/public/common/tokens/tokens.h"
diff --git a/third_party/blink/renderer/controller/performance_manager/v8_detailed_memory_reporter_impl.cc b/third_party/blink/renderer/controller/performance_manager/v8_detailed_memory_reporter_impl.cc index 11a1a23..0659b577 100644 --- a/third_party/blink/renderer/controller/performance_manager/v8_detailed_memory_reporter_impl.cc +++ b/third_party/blink/renderer/controller/performance_manager/v8_detailed_memory_reporter_impl.cc
@@ -9,8 +9,8 @@ #include <utility> #include <vector> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/notreached.h" #include "third_party/blink/public/common/tokens/tokens.h"
diff --git a/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.h b/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.h index 602b5766e..e6b8cce 100644 --- a/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.h +++ b/third_party/blink/renderer/controller/performance_manager/v8_worker_memory_reporter.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CONTROLLER_PERFORMANCE_MANAGER_V8_WORKER_MEMORY_REPORTER_H_ #define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_PERFORMANCE_MANAGER_V8_WORKER_MEMORY_REPORTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/controller/tests/run_all_perftests.cc b/third_party/blink/renderer/controller/tests/run_all_perftests.cc index 292e1e3..1607e5f 100644 --- a/third_party/blink/renderer/controller/tests/run_all_perftests.cc +++ b/third_party/blink/renderer/controller/tests/run_all_perftests.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/perf_test_suite.h" #include "third_party/blink/renderer/controller/tests/blink_test_suite.h"
diff --git a/third_party/blink/renderer/controller/tests/run_all_tests.cc b/third_party/blink/renderer/controller/tests/run_all_tests.cc index 78688cbd..13bda98 100644 --- a/third_party/blink/renderer/controller/tests/run_all_tests.cc +++ b/third_party/blink/renderer/controller/tests/run_all_tests.cc
@@ -28,8 +28,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "third_party/blink/renderer/controller/tests/blink_test_suite.h"
diff --git a/third_party/blink/renderer/core/animation/color_property_functions.cc b/third_party/blink/renderer/core/animation/color_property_functions.cc index a166a41..f7aea20d 100644 --- a/third_party/blink/renderer/core/animation/color_property_functions.cc +++ b/third_party/blink/renderer/core/animation/color_property_functions.cc
@@ -8,20 +8,20 @@ namespace blink { -OptionalStyleColor ColorPropertyFunctions::GetInitialColor( +absl::optional<StyleColor> ColorPropertyFunctions::GetInitialColor( const CSSProperty& property, const ComputedStyle& initial_style) { return GetUnvisitedColor(property, initial_style); } template <typename ComputedStyleOrBuilder> -OptionalStyleColor ColorPropertyFunctions::GetUnvisitedColor( +absl::optional<StyleColor> ColorPropertyFunctions::GetUnvisitedColor( const CSSProperty& property, const ComputedStyleOrBuilder& style) { switch (property.PropertyID()) { case CSSPropertyID::kAccentColor: if (style.AccentColor().IsAutoColor()) - return nullptr; + return absl::nullopt; return style.AccentColor().ToStyleColor(); case CSSPropertyID::kBackgroundColor: return style.BackgroundColor(); @@ -35,7 +35,7 @@ return style.BorderBottomColor(); case CSSPropertyID::kCaretColor: if (style.CaretColor().IsAutoColor()) - return nullptr; + return absl::nullopt; return style.CaretColor().ToStyleColor(); case CSSPropertyID::kColor: return style.Color(); @@ -61,18 +61,18 @@ return style.TextDecorationColor(); default: NOTREACHED(); - return nullptr; + return absl::nullopt; } } -template OptionalStyleColor +template absl::optional<StyleColor> ColorPropertyFunctions::GetUnvisitedColor<ComputedStyle>(const CSSProperty&, const ComputedStyle&); -template OptionalStyleColor ColorPropertyFunctions::GetUnvisitedColor< +template absl::optional<StyleColor> ColorPropertyFunctions::GetUnvisitedColor< ComputedStyleBuilder>(const CSSProperty&, const ComputedStyleBuilder&); template <typename ComputedStyleOrBuilder> -OptionalStyleColor ColorPropertyFunctions::GetVisitedColor( +absl::optional<StyleColor> ColorPropertyFunctions::GetVisitedColor( const CSSProperty& property, const ComputedStyleOrBuilder& style) { switch (property.PropertyID()) { @@ -118,14 +118,14 @@ return style.InternalVisitedTextDecorationColor(); default: NOTREACHED(); - return nullptr; + return absl::nullopt; } } -template OptionalStyleColor +template absl::optional<StyleColor> ColorPropertyFunctions::GetVisitedColor<ComputedStyle>(const CSSProperty&, const ComputedStyle&); -template OptionalStyleColor ColorPropertyFunctions::GetVisitedColor< +template absl::optional<StyleColor> ColorPropertyFunctions::GetVisitedColor< ComputedStyleBuilder>(const CSSProperty&, const ComputedStyleBuilder&); void ColorPropertyFunctions::SetUnvisitedColor(const CSSProperty& property,
diff --git a/third_party/blink/renderer/core/animation/color_property_functions.h b/third_party/blink/renderer/core/animation/color_property_functions.h index 86796dd..67e5f618 100644 --- a/third_party/blink/renderer/core/animation/color_property_functions.h +++ b/third_party/blink/renderer/core/animation/color_property_functions.h
@@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_COLOR_PROPERTY_FUNCTIONS_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_COLOR_PROPERTY_FUNCTIONS_H_ +#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/core/css/css_property_names.h" #include "third_party/blink/renderer/core/css/style_color.h" @@ -14,38 +15,19 @@ class ComputedStyleBuilder; class CSSProperty; -struct OptionalStyleColor { - public: - OptionalStyleColor(std::nullptr_t) : is_null_(true) {} - OptionalStyleColor(const StyleColor& style_color) - : is_null_(false), style_color_(style_color) {} - OptionalStyleColor(const Color& color) - : is_null_(false), style_color_(color) {} - - bool IsNull() const { return is_null_; } - const StyleColor& Access() const { - DCHECK(!is_null_); - return style_color_; - } - bool operator==(const OptionalStyleColor& other) const { - return is_null_ == other.is_null_ && style_color_ == other.style_color_; - } - - private: - bool is_null_; - StyleColor style_color_; -}; - class ColorPropertyFunctions { public: - static OptionalStyleColor GetInitialColor(const CSSProperty&, - const ComputedStyle& initial_style); + static absl::optional<StyleColor> GetInitialColor( + const CSSProperty&, + const ComputedStyle& initial_style); template <typename ComputedStyleOrBuilder> - static OptionalStyleColor GetUnvisitedColor(const CSSProperty&, - const ComputedStyleOrBuilder&); + static absl::optional<StyleColor> GetUnvisitedColor( + const CSSProperty&, + const ComputedStyleOrBuilder&); template <typename ComputedStyleOrBuilder> - static OptionalStyleColor GetVisitedColor(const CSSProperty&, - const ComputedStyleOrBuilder&); + static absl::optional<StyleColor> GetVisitedColor( + const CSSProperty&, + const ComputedStyleOrBuilder&); static void SetUnvisitedColor(const CSSProperty&, ComputedStyleBuilder&, const Color&);
diff --git a/third_party/blink/renderer/core/animation/css_color_interpolation_type.cc b/third_party/blink/renderer/core/animation/css_color_interpolation_type.cc index 42b040b..66bd3a0 100644 --- a/third_party/blink/renderer/core/animation/css_color_interpolation_type.cc +++ b/third_party/blink/renderer/core/animation/css_color_interpolation_type.cc
@@ -114,13 +114,13 @@ current_color_getter( CSSProperty::Get(CSSPropertyID::kWebkitTextFillColor), state.StyleBuilder()) - .Access(); + .value(); } if (current_style_color.IsCurrentColor()) { current_style_color = current_color_getter(CSSProperty::Get(CSSPropertyID::kColor), state.StyleBuilder()) - .Access(); + .value(); } std::tie(param0, param1, param2, alpha) = AddPremultipliedColor( param0, param1, param2, alpha, currentcolor_fraction, @@ -174,7 +174,7 @@ : public CSSInterpolationType::CSSConversionChecker { public: InheritedColorChecker(const CSSProperty& property, - const OptionalStyleColor& color) + const absl::optional<StyleColor>& color) : property_(property), color_(color) {} private: @@ -185,7 +185,7 @@ } const CSSProperty& property_; - const OptionalStyleColor color_; + const absl::optional<StyleColor> color_; }; InterpolationValue CSSColorInterpolationType::MaybeConvertNeutral( @@ -198,11 +198,13 @@ InterpolationValue CSSColorInterpolationType::MaybeConvertInitial( const StyleResolverState& state, ConversionCheckers& conversion_checkers) const { - OptionalStyleColor initial_color = ColorPropertyFunctions::GetInitialColor( - CssProperty(), state.GetDocument().GetStyleResolver().InitialStyle()); - if (initial_color.IsNull()) + absl::optional<StyleColor> initial_color = + ColorPropertyFunctions::GetInitialColor( + CssProperty(), state.GetDocument().GetStyleResolver().InitialStyle()); + if (!initial_color.has_value()) { return nullptr; - return ConvertStyleColorPair(initial_color.Access(), initial_color.Access()); + } + return ConvertStyleColorPair(initial_color.value(), initial_color.value()); } InterpolationValue CSSColorInterpolationType::MaybeConvertInherit( @@ -212,7 +214,7 @@ return nullptr; // Visited color can never explicitly inherit from parent visited color so // only use the unvisited color. - OptionalStyleColor inherited_color = + absl::optional<StyleColor> inherited_color = ColorPropertyFunctions::GetUnvisitedColor(CssProperty(), *state.ParentStyle()); conversion_checkers.push_back( @@ -277,16 +279,21 @@ } InterpolationValue CSSColorInterpolationType::ConvertStyleColorPair( - const OptionalStyleColor& unvisited_color, - const OptionalStyleColor& visited_color) const { - if (unvisited_color.IsNull() || visited_color.IsNull()) { + const absl::optional<StyleColor>& unvisited_color, + const absl::optional<StyleColor>& visited_color) { + if (!unvisited_color.has_value() || !visited_color.has_value()) { return nullptr; } + return ConvertStyleColorPair(unvisited_color.value(), visited_color.value()); +} + +InterpolationValue CSSColorInterpolationType::ConvertStyleColorPair( + const StyleColor& unvisited_color, + const StyleColor& visited_color) { auto color_pair = std::make_unique<InterpolableList>(kInterpolableColorPairIndexCount); - color_pair->Set(kUnvisited, - CreateInterpolableColor(unvisited_color.Access())); - color_pair->Set(kVisited, CreateInterpolableColor(visited_color.Access())); + color_pair->Set(kUnvisited, CreateInterpolableColor(unvisited_color)); + color_pair->Set(kVisited, CreateInterpolableColor(visited_color)); return InterpolationValue(std::move(color_pair)); }
diff --git a/third_party/blink/renderer/core/animation/css_color_interpolation_type.h b/third_party/blink/renderer/core/animation/css_color_interpolation_type.h index 69b7d29..cf926fe 100644 --- a/third_party/blink/renderer/core/animation/css_color_interpolation_type.h +++ b/third_party/blink/renderer/core/animation/css_color_interpolation_type.h
@@ -15,7 +15,6 @@ namespace blink { class StyleColor; -struct OptionalStyleColor; class CORE_EXPORT CSSColorInterpolationType : public CSSInterpolationType { public: @@ -67,8 +66,12 @@ InterpolationValue MaybeConvertValue(const CSSValue&, const StyleResolverState*, ConversionCheckers&) const final; - InterpolationValue ConvertStyleColorPair(const OptionalStyleColor&, - const OptionalStyleColor&) const; + static InterpolationValue ConvertStyleColorPair( + const absl::optional<StyleColor>&, + const absl::optional<StyleColor>&); + static InterpolationValue ConvertStyleColorPair( + const StyleColor& unvisited_color, + const StyleColor& visited_color); const CSSValue* CreateCSSValue(const InterpolableValue&, const NonInterpolableValue*,
diff --git a/third_party/blink/renderer/core/animation/list_interpolation_functions.cc b/third_party/blink/renderer/core/animation/list_interpolation_functions.cc index 408aecc..dbfa259 100644 --- a/third_party/blink/renderer/core/animation/list_interpolation_functions.cc +++ b/third_party/blink/renderer/core/animation/list_interpolation_functions.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/core/animation/list_interpolation_functions.h" #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/animation/underlying_value_owner.h" #include "third_party/blink/renderer/core/css/css_value_list.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.h b/third_party/blink/renderer/core/animation/scroll_timeline.h index b60cc18..7212d105 100644 --- a/third_party/blink/renderer/core/animation/scroll_timeline.h +++ b/third_party/blink/renderer/core/animation/scroll_timeline.h
@@ -160,14 +160,15 @@ bool ValidateSnapshot() override; bool ShouldScheduleNextService() override; - private: - FRIEND_TEST_ALL_PREFIXES(ScrollTimelineTest, MultipleScrollOffsetsClamping); - FRIEND_TEST_ALL_PREFIXES(ScrollTimelineTest, ResolveScrollOffsets); // https://wicg.github.io/scroll-animations/#avoiding-cycles // Snapshots scroll timeline current time and phase. // Called once per animation frame. bool ComputeIsActive() const; + private: + FRIEND_TEST_ALL_PREFIXES(ScrollTimelineTest, MultipleScrollOffsetsClamping); + FRIEND_TEST_ALL_PREFIXES(ScrollTimelineTest, ResolveScrollOffsets); + struct TimelineState { // TODO(crbug.com/1338167): Remove phase as it can be inferred from // current_time.
diff --git a/third_party/blink/renderer/core/animation/view_timeline.cc b/third_party/blink/renderer/core/animation/view_timeline.cc index 56c4616..79140da 100644 --- a/third_party/blink/renderer/core/animation/view_timeline.cc +++ b/third_party/blink/renderer/core/animation/view_timeline.cc
@@ -181,7 +181,7 @@ ViewTimeline* ViewTimeline::Create(Document& document, ViewTimelineOptions* options, ExceptionState& exception_state) { - Element* subject = options->subject(); + Element* subject = options->hasSubject() ? options->subject() : nullptr; ScrollAxis axis = options->hasAxis() ? options->axis().AsEnum() : ScrollAxis::kBlock; @@ -270,6 +270,10 @@ absl::optional<ScrollTimeline::ScrollOffsets> ViewTimeline::CalculateOffsets( PaintLayerScrollableArea* scrollable_area, ScrollOrientation physical_orientation) const { + // Do not call this method with an inactive timeline. + // Called from ScrollTimeline::ComputeTimelineState, which has safeguard. + // Any new call sites will require a similar safeguard. + DCHECK(ComputeIsActive()); DCHECK(subject()); LayoutBox* layout_box = subject()->GetLayoutBox(); DCHECK(layout_box);
diff --git a/third_party/blink/renderer/core/annotation/annotation_agent_container_impl.cc b/third_party/blink/renderer/core/annotation/annotation_agent_container_impl.cc index df6a7d9..545d6a1 100644 --- a/third_party/blink/renderer/core/annotation/annotation_agent_container_impl.cc +++ b/third_party/blink/renderer/core/annotation/annotation_agent_container_impl.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/annotation/annotation_agent_container_impl.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/trace_event/typed_macros.h" #include "components/shared_highlighting/core/common/disabled_sites.h" #include "components/shared_highlighting/core/common/shared_highlighting_features.h"
diff --git a/third_party/blink/renderer/core/annotation/annotation_selector.h b/third_party/blink/renderer/core/annotation/annotation_selector.h index 516ecaa8..4388677 100644 --- a/third_party/blink/renderer/core/annotation/annotation_selector.h +++ b/third_party/blink/renderer/core/annotation/annotation_selector.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANNOTATION_ANNOTATION_SELECTOR_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANNOTATION_ANNOTATION_SELECTOR_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/content_capture/task_session.h b/third_party/blink/renderer/core/content_capture/task_session.h index bfdedaa22..5bc630d 100644 --- a/third_party/blink/renderer/core/content_capture/task_session.h +++ b/third_party/blink/renderer/core/content_capture/task_session.h
@@ -7,7 +7,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "cc/paint/node_id.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/third_party/blink/renderer/core/css/css_segmented_font_face.cc b/third_party/blink/renderer/core/css/css_segmented_font_face.cc index f646fd3..6f41c96d 100644 --- a/third_party/blink/renderer/core/css/css_segmented_font_face.cc +++ b/third_party/blink/renderer/core/css/css_segmented_font_face.cc
@@ -25,8 +25,8 @@ #include "third_party/blink/renderer/core/css/css_segmented_font_face.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/css/cascade_layer_map.h" #include "third_party/blink/renderer/core/css/css_font_face.h" #include "third_party/blink/renderer/core/css/css_font_selector.h"
diff --git a/third_party/blink/renderer/core/css/css_segmented_font_face.h b/third_party/blink/renderer/core/css/css_segmented_font_face.h index 8157126..ed5f769 100644 --- a/third_party/blink/renderer/core/css/css_segmented_font_face.h +++ b/third_party/blink/renderer/core/css/css_segmented_font_face.h
@@ -26,8 +26,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_SEGMENTED_FONT_FACE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_SEGMENTED_FONT_FACE_H_ -#include "base/callback.h" #include "base/containers/lru_cache.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/fonts/font_cache_key.h" #include "third_party/blink/renderer/platform/fonts/font_selection_types.h" #include "third_party/blink/renderer/platform/fonts/segmented_font_data.h"
diff --git a/third_party/blink/renderer/core/dom/abort_signal.cc b/third_party/blink/renderer/core/dom/abort_signal.cc index a2f7552..2c07965 100644 --- a/third_party/blink/renderer/core/dom/abort_signal.cc +++ b/third_party/blink/renderer/core/dom/abort_signal.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/platform/task_type.h"
diff --git a/third_party/blink/renderer/core/dom/abort_signal.h b/third_party/blink/renderer/core/dom/abort_signal.h index fcc7880..57910cf 100644 --- a/third_party/blink/renderer/core/dom/abort_signal.h +++ b/third_party/blink/renderer/core/dom/abort_signal.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ABORT_SIGNAL_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ABORT_SIGNAL_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/abort_signal_composition_type.h"
diff --git a/third_party/blink/renderer/core/dom/document_parser.h b/third_party/blink/renderer/core/dom/document_parser.h index 44b0cf0c..c4602125 100644 --- a/third_party/blink/renderer/core/dom/document_parser.h +++ b/third_party/blink/renderer/core/dom/document_parser.h
@@ -25,7 +25,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_PARSER_H_ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/document_encoding_data.h" #include "third_party/blink/renderer/platform/bindings/name_client.h"
diff --git a/third_party/blink/renderer/core/editing/finder/async_find_buffer.h b/third_party/blink/renderer/core/editing/finder/async_find_buffer.h index f4d75f25..c50819a 100644 --- a/third_party/blink/renderer/core/editing/finder/async_find_buffer.h +++ b/third_party/blink/renderer/core/editing/finder/async_find_buffer.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_FINDER_ASYNC_FIND_BUFFER_H_ #include "base/auto_reset.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/editing/finder/find_buffer_runner.h"
diff --git a/third_party/blink/renderer/core/editing/visible_units_word.cc b/third_party/blink/renderer/core/editing/visible_units_word.cc index bca69c9..452c9c9 100644 --- a/third_party/blink/renderer/core/editing/visible_units_word.cc +++ b/third_party/blink/renderer/core/editing/visible_units_word.cc
@@ -90,6 +90,11 @@ return TextSegments::FindBoundaryForward(position, &finder); } +// IMPORTANT: If you update the logic of this algorithm, please also update the +// one in `AbstractInlineTextBox::GetWordBoundariesForText`. The word offsets +// computed over there needs to stay in sync with the ones computed here in +// order for screen readers to announce the right words when using caret +// navigation (ctrl + left/right arrow). PositionInFlatTree NextWordPositionInternal( const PositionInFlatTree& position, PlatformWordBehavior platform_word_behavior) {
diff --git a/third_party/blink/renderer/core/exported/web_form_element_observer_impl.cc b/third_party/blink/renderer/core/exported/web_form_element_observer_impl.cc index 1c2c737..9027910 100644 --- a/third_party/blink/renderer/core/exported/web_form_element_observer_impl.cc +++ b/third_party/blink/renderer/core/exported/web_form_element_observer_impl.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/exported/web_form_element_observer_impl.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/web/web_form_control_element.h" #include "third_party/blink/public/web/web_form_element.h" #include "third_party/blink/renderer/bindings/core/v8/v8_mutation_observer_init.h"
diff --git a/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc b/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc index 5c824b3..fbea7ea 100644 --- a/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc +++ b/third_party/blink/renderer/core/exported/web_media_player_impl_unittest.cc
@@ -9,9 +9,9 @@ #include <memory> #include <string> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index 265f8ee6..af74c7b 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -32,7 +32,7 @@ #include <memory> #include <string> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/test/test_mock_time_task_runner.h" #include "base/time/time.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/core/fragment_directive/text_fragment_finder.h b/third_party/blink/renderer/core/fragment_directive/text_fragment_finder.h index a5a92c6c..ca3b48c 100644 --- a/third_party/blink/renderer/core/fragment_directive/text_fragment_finder.h +++ b/third_party/blink/renderer/core/fragment_directive/text_fragment_finder.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAGMENT_DIRECTIVE_TEXT_FRAGMENT_FINDER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAGMENT_DIRECTIVE_TEXT_FRAGMENT_FINDER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/editing/ephemeral_range.h"
diff --git a/third_party/blink/renderer/core/frame/attribution_src_loader.cc b/third_party/blink/renderer/core/frame/attribution_src_loader.cc index 6ab2f06..5026e77 100644 --- a/third_party/blink/renderer/core/frame/attribution_src_loader.cc +++ b/third_party/blink/renderer/core/frame/attribution_src_loader.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/metrics/histogram_functions.h" #include "base/notreached.h"
diff --git a/third_party/blink/renderer/core/frame/find_in_page_test.cc b/third_party/blink/renderer/core/frame/find_in_page_test.cc index 7b6e3cc..6cf9c0f 100644 --- a/third_party/blink/renderer/core/frame/find_in_page_test.cc +++ b/third_party/blink/renderer/core/frame/find_in_page_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/frame/find_in_page.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/mojom/frame/find_in_page.mojom-blink.h" #include "third_party/blink/renderer/core/editing/finder/text_finder.h"
diff --git a/third_party/blink/renderer/core/frame/frame_test_helpers.cc b/third_party/blink/renderer/core/frame/frame_test_helpers.cc index 9928ad4..e21a16f 100644 --- a/third_party/blink/renderer/core/frame/frame_test_helpers.cc +++ b/third_party/blink/renderer/core/frame/frame_test_helpers.cc
@@ -33,8 +33,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h" #include "cc/test/test_ukm_recorder_factory.h"
diff --git a/third_party/blink/renderer/core/frame/frame_test_helpers.h b/third_party/blink/renderer/core/frame/frame_test_helpers.h index dfebfe8..7d86a5e 100644 --- a/third_party/blink/renderer/core/frame/frame_test_helpers.h +++ b/third_party/blink/renderer/core/frame/frame_test_helpers.h
@@ -36,7 +36,7 @@ #include <memory> #include <string> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/functional/function_ref.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 9c07b81..30b9efc 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1538,7 +1538,6 @@ event_handler_(MakeGarbageCollected<EventHandler>(*this)), console_(MakeGarbageCollected<FrameConsole>(*this)), navigation_disable_count_(0), - should_send_resource_timing_info_to_parent_(true), in_view_source_mode_(false), frozen_(false), paused_(false),
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h index f62e0cbf..d0ba30b 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -534,13 +534,6 @@ void ForceSynchronousDocumentInstall(const AtomicString& mime_type, scoped_refptr<const SharedBuffer> data); - bool should_send_resource_timing_info_to_parent() const { - return should_send_resource_timing_info_to_parent_; - } - void SetShouldSendResourceTimingInfoToParent(bool value) { - should_send_resource_timing_info_to_parent_ = value; - } - // Called when certain event listeners are added for the first time/last time, // making it possible/not possible to terminate the frame suddenly. void UpdateSuddenTerminationStatus( @@ -961,7 +954,6 @@ // FrameLoaderStateMachine if a real load has committed. Unfortunately, the // internal state tracked there is incorrect today. See // https://crbug.com/778318. - unsigned should_send_resource_timing_info_to_parent_ : 1; unsigned in_view_source_mode_ : 1; // Whether this frame is frozen or not. This is a copy of Page::IsFrozen() // and is stored here to ensure that we do not dispatch onfreeze() twice
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc index 7b9a5c1bb..7803e7fb 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -31,8 +31,8 @@ #include <utility> #include "base/auto_reset.h" -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/functional/function_ref.h" #include "base/memory/ptr_util.h" #include "base/metrics/field_trial_params.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h index 7a0dba75..bbae4083 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.h +++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -29,8 +29,8 @@ #include <memory> #include "base/auto_reset.h" -#include "base/callback_forward.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback_forward.h" #include "base/functional/function_ref.h" #include "base/gtest_prod_util.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/core/frame/mhtml_loading_test.cc b/third_party/blink/renderer/core/frame/mhtml_loading_test.cc index ce80dca..54973702 100644 --- a/third_party/blink/renderer/core/frame/mhtml_loading_test.cc +++ b/third_party/blink/renderer/core/frame/mhtml_loading_test.cc
@@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "build/build_config.h" #include "services/network/public/cpp/web_sandbox_flags.h" #include "services/network/public/mojom/web_sandbox_flags.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.cc b/third_party/blink/renderer/core/frame/pausable_script_executor.cc index 42cc739..438de31 100644 --- a/third_party/blink/renderer/core/frame/pausable_script_executor.cc +++ b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/numerics/safe_conversions.h" #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc index 2000532..d2a436bd 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.cc +++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -420,9 +420,14 @@ HTMLFrameOwnerElement* owner_element = To<HTMLFrameOwnerElement>(Owner()); DCHECK(owner_element); + if (!owner_element->HasPendingFallbackTimingInfo()) { + return; + } + DOMWindowPerformance::performance(*owner_element->GetDocument().domWindow()) ->AddResourceTiming(std::move(timing), owner_element->localName(), owner_element->GetDocument().GetExecutionContext()); + owner_element->DidReportResourceTiming(); } void RemoteFrame::DidStartLoading() {
diff --git a/third_party/blink/renderer/core/frame/root_frame_viewport.cc b/third_party/blink/renderer/core/frame/root_frame_viewport.cc index a4f9f98..fee11ff 100644 --- a/third_party/blink/renderer/core/frame/root_frame_viewport.cc +++ b/third_party/blink/renderer/core/frame/root_frame_viewport.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/core/frame/root_frame_viewport.h" #include "base/barrier_closure.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "cc/input/snap_selection_strategy.h" #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/screen.cc b/third_party/blink/renderer/core/frame/screen.cc index 4d2a750..ffea1e8 100644 --- a/third_party/blink/renderer/core/frame/screen.cc +++ b/third_party/blink/renderer/core/frame/screen.cc
@@ -177,7 +177,7 @@ return false; auto* context = GetExecutionContext(); if (!context->IsFeatureEnabled( - mojom::blink::PermissionsPolicyFeature::kWindowPlacement)) { + mojom::blink::PermissionsPolicyFeature::kWindowManagement)) { return false; }
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc index fb4cfdcb..64d6838 100644 --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -33,7 +33,7 @@ #include <memory> #include <tuple> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/ranges/algorithm.h" #include "base/strings/stringprintf.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_test.cc b/third_party/blink/renderer/core/frame/web_frame_widget_test.cc index 452776b..3712a8c0 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/frame/web_frame_widget_impl.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc index 80963944..982fbf2 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -2718,7 +2718,6 @@ DCHECK(GetFrame()); GetFrame()->GetDocument()->OverrideIsInitialEmptyDocument(); GetFrame()->Loader().SetIsNotOnInitialEmptyDocument(); - GetFrame()->SetShouldSendResourceTimingInfoToParent(false); } bool WebLocalFrameImpl::IsOnInitialEmptyDocument() {
diff --git a/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc b/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc index 579abe3..f6fdec7 100644 --- a/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc +++ b/third_party/blink/renderer/core/html/anchor_element_metrics_sender.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/html/anchor_element_metrics_sender.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/rand_util.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h index 64550d02..a0806ce 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h +++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h
@@ -26,8 +26,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CANVAS_CANVAS_RENDERING_CONTEXT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CANVAS_CANVAS_RENDERING_CONTEXT_H_ -#include "base/callback_forward.h" #include "base/containers/span.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/notreached.h" #include "cc/paint/paint_flags.h"
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 4d3f2df..f4a3b22 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -33,8 +33,8 @@ #include <memory> #include <utility> -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/checked_math.h"
diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/third_party/blink/renderer/core/html/html_frame_element_base.cc index e14677f..d8df68e 100644 --- a/third_party/blink/renderer/core/html/html_frame_element_base.cc +++ b/third_party/blink/renderer/core/html/html_frame_element_base.cc
@@ -92,6 +92,8 @@ return; KURL url = GetDocument().CompleteURL(url_); + + WillPerformContainerInitiatedNavigation(url); // There is no (easy) way to tell if |url_| is relative at this point. That // is determined in the KURL constructor. If we fail to create an absolute // URL at this point, *and* the base URL is a data URL, assume |url_| was
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.cc b/third_party/blink/renderer/core/html/html_frame_owner_element.cc index 79388c8..aaf61f5 100644 --- a/third_party/blink/renderer/core/html/html_frame_owner_element.cc +++ b/third_party/blink/renderer/core/html/html_frame_owner_element.cc
@@ -23,6 +23,7 @@ #include "base/feature_list.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_functions.h" +#include "base/time/time.h" #include "services/network/public/mojom/content_security_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/frame/fenced_frame_sandbox_flags.h" @@ -63,6 +64,8 @@ #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h" +#include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h" #include "third_party/blink/renderer/platform/network/network_state_notifier.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h" @@ -478,11 +481,56 @@ void HTMLFrameOwnerElement::AddResourceTiming(const ResourceTimingInfo& info) { // Resource timing info should only be reported if the subframe is attached. DCHECK(ContentFrame() && ContentFrame()->IsLocalFrame()); + + // Make sure we don't double-report, e.g. in the case of restored iframes. + if (!HasPendingFallbackTimingInfo()) { + return; + } + DOMWindowPerformance::performance(*GetDocument().domWindow()) ->GenerateAndAddResourceTiming(info, localName()); + DidReportResourceTiming(); +} + +bool HTMLFrameOwnerElement::HasPendingFallbackTimingInfo() const { + return !!fallback_timing_info_; +} + +void HTMLFrameOwnerElement::DidReportResourceTiming() { + fallback_timing_info_.reset(); +} + +void HTMLFrameOwnerElement::WillPerformContainerInitiatedNavigation( + const KURL& url) { + if (!url.ProtocolIsInHTTPFamily() && + !url.ProtocolIs(url::kUuidInPackageScheme)) { + return; + } + + fallback_timing_info_ = ResourceTimingInfo::Create( + fetch_initiator_type_names::kDocument, base::TimeTicks::Now(), + mojom::blink::RequestContextType::IFRAME, + network::mojom::RequestDestination::kIframe, + network::mojom::RequestMode::kNavigate); + fallback_timing_info_->SetInitialURL(url); +} + +// This will report fallback timing only if the "real" resource timing had not +// been previously reported: e.g. a cross-origin iframe without TAO. +void HTMLFrameOwnerElement::ReportFallbackResourceTimingIfNeeded() { + if (!fallback_timing_info_) { + return; + } + scoped_refptr<ResourceTimingInfo> resource_timing_info; + resource_timing_info.swap(fallback_timing_info_); + resource_timing_info->SetLoadResponseEnd(base::TimeTicks::Now()); + + DOMWindowPerformance::performance(*GetDocument().domWindow()) + ->GenerateAndAddResourceTiming(*resource_timing_info, localName()); } void HTMLFrameOwnerElement::DispatchLoad() { + ReportFallbackResourceTimingIfNeeded(); DispatchScopedEvent(*Event::Create(event_type_names::kLoad)); }
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.h b/third_party/blink/renderer/core/html/html_frame_owner_element.h index 553e842..fcfe0f29 100644 --- a/third_party/blink/renderer/core/html/html_frame_owner_element.h +++ b/third_party/blink/renderer/core/html/html_frame_owner_element.h
@@ -120,6 +120,10 @@ bool IsDisplayNone() const override { return !embedded_content_view_; } mojom::blink::ColorScheme GetColorScheme() const override; bool ShouldLazyLoadChildren() const final; + void DidReportResourceTiming(); + bool HasPendingFallbackTimingInfo() const; + + void WillPerformContainerInitiatedNavigation(const KURL&); // For unit tests, manually trigger the UpdateContainerPolicy method. void UpdateContainerPolicyForTests() { UpdateContainerPolicy(); } @@ -232,6 +236,7 @@ bool is_loading_attr_lazy, AutomaticLazyLoadReason auto_lazy_load_reason); + void ReportFallbackResourceTimingIfNeeded(); // Check if the frame should be lazy-loaded and apply when conditions are // passed. Return true when lazy-load is applied. bool LazyLoadIfPossible(const KURL&, @@ -247,6 +252,7 @@ FramePolicy frame_policy_; Member<LazyLoadFrameObserver> lazy_load_frame_observer_; + scoped_refptr<ResourceTimingInfo> fallback_timing_info_; bool should_lazy_load_children_; bool is_swapping_frames_{false}; };
diff --git a/third_party/blink/renderer/core/html/html_plugin_element.cc b/third_party/blink/renderer/core/html/html_plugin_element.cc index e62d977..f9bfb07 100644 --- a/third_party/blink/renderer/core/html/html_plugin_element.cc +++ b/third_party/blink/renderer/core/html/html_plugin_element.cc
@@ -630,6 +630,9 @@ SetEmbeddedContentView(ContentFrame()->View()); DCHECK(OwnedEmbeddedContentView()); } + + WillPerformContainerInitiatedNavigation(completed_url); + // If the plugin element already contains a subframe, // loadOrRedirectSubframe will re-use it. Otherwise, it will create a // new frame and set it as the LayoutEmbeddedContent's EmbeddedContentView,
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.cc b/third_party/blink/renderer/core/html/media/html_video_element.cc index 4fb2aef..29e83b16 100644 --- a/third_party/blink/renderer/core/html/media/html_video_element.cc +++ b/third_party/blink/renderer/core/html/media/html_video_element.cc
@@ -27,7 +27,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" #include "cc/paint/paint_canvas.h" #include "media/base/video_frame.h"
diff --git a/third_party/blink/renderer/core/html/portal/html_portal_element_test.cc b/third_party/blink/renderer/core/html/portal/html_portal_element_test.cc index 69643ca9..6ac78fe 100644 --- a/third_party/blink/renderer/core/html/portal/html_portal_element_test.cc +++ b/third_party/blink/renderer/core/html/portal/html_portal_element_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/html/portal/html_portal_element.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/unguessable_token.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h"
diff --git a/third_party/blink/renderer/core/input/scroll_manager.h b/third_party/blink/renderer/core/input/scroll_manager.h index a0ee9e7a..e56bece 100644 --- a/third_party/blink/renderer/core/input/scroll_manager.h +++ b/third_party/blink/renderer/core/input/scroll_manager.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "cc/input/snap_fling_controller.h" #include "third_party/blink/public/platform/web_input_event_result.h" #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/input/touch_action_test.cc b/third_party/blink/renderer/core/input/touch_action_test.cc index 6fb4f5b2..d7222c9 100644 --- a/third_party/blink/renderer/core/input/touch_action_test.cc +++ b/third_party/blink/renderer/core/input/touch_action_test.cc
@@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/input/web_coalesced_input_event.h" #include "third_party/blink/public/common/input/web_touch_event.h"
diff --git a/third_party/blink/renderer/core/inspector/devtools_agent.cc b/third_party/blink/renderer/core/inspector/devtools_agent.cc index d6de5872..ce075a55 100644 --- a/third_party/blink/renderer/core/inspector/devtools_agent.cc +++ b/third_party/blink/renderer/core/inspector/devtools_agent.cc
@@ -7,7 +7,7 @@ #include <v8-inspector.h> #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h"
diff --git a/third_party/blink/renderer/core/inspector/devtools_session.h b/third_party/blink/renderer/core/inspector/devtools_session.h index 382c3e29..05f2d496 100644 --- a/third_party/blink/renderer/core/inspector/devtools_session.h +++ b/third_party/blink/renderer/core/inspector/devtools_session.h
@@ -7,7 +7,7 @@ #include <memory> #include <type_traits> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_dom_agent.h b/third_party/blink/renderer/core/inspector/inspector_dom_agent.h index 677ee063..9e1442ef2 100644 --- a/third_party/blink/renderer/core/inspector/inspector_dom_agent.h +++ b/third_party/blink/renderer/core/inspector/inspector_dom_agent.h
@@ -31,7 +31,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_INSPECTOR_DOM_AGENT_H_ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/events/event_listener_map.h"
diff --git a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h index 786ed2b..400ad43 100644 --- a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h +++ b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
@@ -31,7 +31,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_WORKER_INSPECTOR_CONTROLLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_WORKER_INSPECTOR_CONTROLLER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/unguessable_token.h" #include "third_party/blink/renderer/core/inspector/devtools_agent.h"
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h index 4a7f719..057f2a1 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_INTERSECTION_OBSERVER_INTERSECTION_OBSERVER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_INTERSECTION_OBSERVER_INTERSECTION_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
diff --git a/third_party/blink/renderer/core/layout/geometry/box_sides.h b/third_party/blink/renderer/core/layout/geometry/box_sides.h index 449f9d31..047f368 100644 --- a/third_party/blink/renderer/core/layout/geometry/box_sides.h +++ b/third_party/blink/renderer/core/layout/geometry/box_sides.h
@@ -77,6 +77,7 @@ } bool IsEmpty() const { return !top && !right && !bottom && !left; } + bool HasAllSides() const { return top && right && bottom && left; } }; } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/line/abstract_inline_text_box.cc b/third_party/blink/renderer/core/layout/line/abstract_inline_text_box.cc index 2ec0f1e2..70010fbf 100644 --- a/third_party/blink/renderer/core/layout/line/abstract_inline_text_box.cc +++ b/third_party/blink/renderer/core/layout/line/abstract_inline_text_box.cc
@@ -32,6 +32,9 @@ #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h" #include "third_party/blink/renderer/core/editing/ephemeral_range.h" +#include "third_party/blink/renderer/core/editing/forward.h" +#include "third_party/blink/renderer/core/editing/visible_position.h" +#include "third_party/blink/renderer/core/editing/visible_units.h" #include "third_party/blink/renderer/core/layout/api/line_layout_api_shim.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h" @@ -248,7 +251,80 @@ void AbstractInlineTextBox::GetWordBoundaries( Vector<WordBoundaries>& words) const { - return GetWordBoundariesForText(words, GetText()); + GetWordBoundariesForText(words, GetText()); + +// TODO(crbug/1406930): Uncomment the following DCHECK and fix the dozens of +// failing tests. +// #if DCHECK_IS_ON() +// if (!words.empty()) { +// // Validate that our word boundary detection algorithm gives the same output +// // as the one from the Editing layer. +// const int initial_offset_in_container = +// static_cast<int>(TextOffsetInFormattingContext(0)); + +// // 1. Compare the word offsets to the ones of the Editing algorithm when +// // moving forward. +// Position editing_pos(GetNode(), initial_offset_in_container); +// int editing_offset = +// editing_pos.OffsetInContainerNode() - initial_offset_in_container; +// for (WordBoundaries word : words) { +// DCHECK_EQ(editing_offset, word.start_index) +// << "[Going forward] Word boundaries are different between " +// "accessibility and editing in text=\"" +// << GetText() << "\". Failing at editing text offset \"" +// << editing_offset << "\" and AX text offset \"" << word.start_index +// << "\"."; +// // See comment in `AbstractInlineTextBox::GetWordBoundariesForText` that +// // justify why we only check for kWordSkipSpaces. +// editing_pos = +// NextWordPosition(editing_pos, PlatformWordBehavior::kWordSkipSpaces) +// .GetPosition(); +// editing_offset = +// editing_pos.OffsetInContainerNode() - initial_offset_in_container; +// } +// // Check for the last word boundary. +// DCHECK_EQ(editing_offset, words[words.size() - 1].end_index) +// << "[Going forward] Word boundaries are different between " +// "accessibility and at the end of the inline text box. Text=\"" +// << GetText() << "\"."; + +// // 2. Compare the word offsets to the ones of the Editing algorithm when +// // moving backwards. +// // +// // TODO(accessibility): Uncomment the following code to validate our word +// // boundaries also match the ones from the Editing layer when moving +// // backward. This is currently failing because of crbug/1406287. +// // +// // const int last_text_offset = +// // initial_offset_in_container + GetText().length(); +// // editing_pos = Position(GetNode(), last_text_offset); +// // editing_offset = editing_pos.OffsetInContainerNode() - +// // initial_offset_in_container; + +// // // Check for the first word boundary. +// // DCHECK_EQ(editing_offset, words[words.size() - 1].end_index) +// // << "[Going backward] Word boundaries are different between " +// // "accessibility and at the end of the inline text box. Text=\"" +// // << GetText() << "\"."; +// // editing_pos = PreviousWordPosition(editing_pos).GetPosition(); +// // editing_offset = editing_pos.OffsetInContainerNode() - +// // initial_offset_in_container; + +// // Vector<WordBoundaries> reverse_words(words); +// // reverse_words.Reverse(); +// // for (WordBoundaries word : reverse_words) { +// // DCHECK_EQ(editing_offset, word.start_index) +// // << "[Going backward] Word boundaries are different between " +// // "accessibility and editing in text=\"" +// // << GetText() << "\". Failing at editing text offset \"" +// // << editing_offset << "\" and AX text offset \"" << word.start_index +// // << "\"."; +// // editing_pos = PreviousWordPosition(editing_pos).GetPosition(); +// // editing_offset = editing_pos.OffsetInContainerNode() - +// // initial_offset_in_container; +// // } +// } +// #endif } // static @@ -266,47 +342,63 @@ offset != kTextBreakDone && offset < static_cast<int>(text.length()); offset = it->following(offset)) { // Unlike in ICU's WordBreakIterator, a word boundary is valid only if it is - // before, or immediately preceded by, an alphanumeric character, a series - // of punctuation marks, an underscore or a line break. We therefore need to - // filter the boundaries returned by ICU's WordBreakIterator and return a - // subset of them. For example we should exclude a word boundary that is - // between two space characters, "Hello | there". - - // Case 1: A new word should start if |offset| is before an alphanumeric - // character, an underscore or a hard line break - if (WTF::unicode::IsAlphanumeric(text[offset]) || - text[offset] == kLowLineCharacter || - text[offset] == kNewlineCharacter || - text[offset] == kCarriageReturnCharacter) { - // We found a new word start or end. Append the previous word (if it - // exists) to the results, otherwise save this offset as a word start. - if (word_start) - words.emplace_back(*word_start, offset); - word_start = offset; - - // Case 2: A new word should start before and end after a series of + // before, or immediately preceded by a word break as defined by the Editing + // code (see `IsWordBreak`). We therefore need to filter the boundaries + // returned by ICU's WordBreakIterator and return a subset of them. For + // example we should exclude a word boundary that is between two space + // characters, "Hello | there". + // + // IMPORTANT: This algorithm needs to stay in sync with the one used to + // find the next/previous word boundary in the Editing layer. See + // `NextWordPositionInternal` in `visible_units_word.cc` for more info. + // + // There's one noticeable difference between our implementation and the one + // in the Editing layer: in the Editing layer, we only skip spaces before + // word starts when on Windows. However, we skip spaces the accessible word + // offsets on all platforms because: + // 1. It doesn't have an impact on the screen reader user (ATs never + // announce spaces). + // 2. The implementation is simpler. Arguably, this is a bad reason, but + // the reality is that word offsets computation will sooner or later + // move to the browser process where we'll have to reimplement this + // algorithm. Another more near-term possibility is that Editing folks + // could refactor their word boundary algorithm so that we could simply + // reuse it for accessibility. Anyway, we currently do not see a strong + // case to justify spending time to match this behavior perfectly. + if (WTF::unicode::IsPunct(text[offset]) || U16_IS_SURROGATE(text[offset])) { + // Case 1: A new word should start before and end after a series of // punctuation marks, i.e., Consecutive punctuation marks should be // accumulated into a single word. For example, "|Hello|+++---|there|". - } else if (WTF::unicode::IsPunct(text[offset])) { - // At beginning of text, or the previous character was a punctuation - // symbol. - if (offset == 0 || !WTF::unicode::IsPunct(text[offset - 1])) { + // Surrogate pair runs should also be collapsed. + // + // At beginning of text, or right after an alphanumeric character or a + // character that cannot be a word break. + if (offset == 0 || WTF::unicode::IsAlphanumeric(text[offset - 1]) || + !IsWordBreak(text[offset - 1])) { if (word_start) words.emplace_back(*word_start, offset); word_start = offset; + } else { + // Skip to the end of the punctuation/surrogate pair run. + continue; } - continue; // Skip to the end of the punctuation run. - - // Case 3: A word should end if |offset| is proceeded by an alphanumeric - // character, a series of punctuation marks, an underscore or a hard line - // break. + } else if (IsWordBreak(text[offset])) { + // Case 2: A new word should start if `offset` is before an alphanumeric + // character, an underscore or a hard line break. + // + // We found a new word start or end. Append the previous word (if it + // exists) to the results, otherwise save this offset as a word start. + if (word_start) { + words.emplace_back(*word_start, offset); + } + word_start = offset; } else if (offset > 0) { + // Case 3: A word should end if `offset` is proceeded by a word break or + // a punctuation. UChar prev_character = text[offset - 1]; - if (WTF::unicode::IsAlphanumeric(prev_character) || + if (IsWordBreak(prev_character) || WTF::unicode::IsPunct(prev_character) || - prev_character == kLowLineCharacter || - prev_character == kNewlineCharacter || - prev_character == kCarriageReturnCharacter) { + U16_IS_SURROGATE(prev_character)) { if (word_start) { words.emplace_back(*word_start, offset); word_start = absl::nullopt; @@ -315,10 +407,9 @@ } } - // Case 4: If the character at last |offset| in |text| was an alphanumeric - // character, a punctuation mark, an underscore, or a line break, then it - // would have started a new word. We need to add its corresponding word end - // boundary which should be at |text|'s length. + // Case 4: If the character at last `offset` in `text` was a word break, then + // it would have started a new word. We need to add its corresponding word end + // boundary which should be at `text`'s length. if (word_start) { words.emplace_back(*word_start, text.length()); word_start = absl::nullopt;
diff --git a/third_party/blink/renderer/core/layout/svg/svg_hit_test_perftest.cc b/third_party/blink/renderer/core/layout/svg/svg_hit_test_perftest.cc index 2155eb6..7b09ae1a 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_hit_test_perftest.cc +++ b/third_party/blink/renderer/core/layout/svg/svg_hit_test_perftest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/timer/lap_timer.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/perf/perf_result_reporter.h"
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index 8ddc8bb..c443b6d 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -284,7 +284,6 @@ CommitReason commit_reason; uint64_t main_resource_identifier; scoped_refptr<ResourceTimingInfo> navigation_timing_info; - bool report_timing_info_to_parent; WebScopedVirtualTimePauser virtual_time_pauser; Member<PrefetchedSignedExchangeManager> prefetched_signed_exchange_manager; const KURL web_bundle_physical_url; @@ -1100,13 +1099,17 @@ probe::ToCoreProbeSink(GetFrame()), main_resource_identifier_, this, completion_time, total_encoded_data_length, total_decoded_body_length, should_report_corb_blocking); + if (response_.ShouldPopulateResourceTiming() || is_error_page_for_failed_navigation_) { - // The response is being copied here to pass the Encoded and Decoded - // sizes. - // TODO(yoav): copy the sizes info directly. navigation_timing_info_->SetFinalResponse(response_); - if (report_timing_info_to_parent_) { + + // We only automatically report resource timing when Timing-Allow-Origin + // passes, to avoid exposing cross-origin navigation behavior. + if (frame_->Owner() && (response_.TimingAllowPassed())) { + // The response is being copied here to pass the Encoded and Decoded + // sizes. + // TODO(yoav): copy the sizes info directly. navigation_timing_info_->SetLoadResponseEnd(completion_time); if (state_ >= kCommitted) { // Note that we currently lose timing info for empty documents, @@ -1116,7 +1119,6 @@ frame_->Owner()->AddResourceTiming(*navigation_timing_info_); } - frame_->SetShouldSendResourceTimingInfoToParent(false); } } FinishedLoading(completion_time); @@ -1252,26 +1254,6 @@ GetTiming().AddRedirect(url_before_redirect, url_after_redirect); } -bool DocumentLoader::ShouldReportTimingInfoToParent() { - DCHECK(frame_); - // <iframe>s should report the initial navigation requested by the parent - // document, but not subsequent navigations. - if (!frame_->Owner()) - return false; - // Note that this can be racy since this information is forwarded over IPC - // when crossing process boundaries. - if (!frame_->should_send_resource_timing_info_to_parent()) - return false; - // Do not report iframe navigation that restored from history, since its - // location may have been changed after initial navigation, - if (load_type_ == WebFrameLoadType::kBackForward) { - // ...and do not report subsequent navigations in the iframe too. - frame_->SetShouldSendResourceTimingInfoToParent(false); - return false; - } - return true; -} - void DocumentLoader::ConsoleError(const String& message) { auto* console_message = MakeGarbageCollected<ConsoleMessage>( mojom::ConsoleMessageSource::kSecurity, @@ -1727,8 +1709,6 @@ network::mojom::RequestDestination::kIframe, network::mojom::RequestMode::kNavigate); navigation_timing_info_->SetInitialURL(url_); - report_timing_info_to_parent_ = ShouldReportTimingInfoToParent(); - virtual_time_pauser_ = frame_->GetFrameScheduler()->CreateWebScopedVirtualTimePauser( url_.GetString(),
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h index cee043a..ebd07ea 100644 --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -553,8 +553,6 @@ void InitializeEmptyResponse(); - bool ShouldReportTimingInfoToParent(); - void CommitData(BodyData& data); // Processes the data stored in |data_buffer_| or |decoded_data_buffer_|, used // to avoid appending data to the parser in a nested message loop. @@ -741,7 +739,6 @@ CommitReason commit_reason_ = CommitReason::kRegular; uint64_t main_resource_identifier_ = 0; scoped_refptr<ResourceTimingInfo> navigation_timing_info_; - bool report_timing_info_to_parent_ = false; WebScopedVirtualTimePauser virtual_time_pauser_; Member<PrefetchedSignedExchangeManager> prefetched_signed_exchange_manager_; const KURL web_bundle_physical_url_;
diff --git a/third_party/blink/renderer/core/loader/frame_loader.h b/third_party/blink/renderer/core/loader/frame_loader.h index 013db9f..fb569b6e8 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.h +++ b/third_party/blink/renderer/core/loader/frame_loader.h
@@ -35,7 +35,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "services/network/public/mojom/web_sandbox_flags.mojom-blink-forward.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/tokens/tokens.h"
diff --git a/third_party/blink/renderer/core/loader/interactive_detector_test.cc b/third_party/blink/renderer/core/loader/interactive_detector_test.cc index 3ba767b9..24dd3a09 100644 --- a/third_party/blink/renderer/core/loader/interactive_detector_test.cc +++ b/third_party/blink/renderer/core/loader/interactive_detector_test.cc
@@ -4,7 +4,7 @@ #include "components/ukm/test_ukm_recorder.h" #include "services/metrics/public/cpp/ukm_builders.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/test/scoped_feature_list.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/core/loader/prefetched_signed_exchange_manager.cc b/third_party/blink/renderer/core/loader/prefetched_signed_exchange_manager.cc index ffeaada..e7894d5 100644 --- a/third_party/blink/renderer/core/loader/prefetched_signed_exchange_manager.cc +++ b/third_party/blink/renderer/core/loader/prefetched_signed_exchange_manager.cc
@@ -7,7 +7,7 @@ #include <queue> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/trace_event.h"
diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc index df3222ee..bbd5a58 100644 --- a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc +++ b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
@@ -529,6 +529,10 @@ restricted.push_back(OriginTrialFeature::kFledge); if (!base::FeatureList::IsEnabled(features::kBrowsingTopics)) restricted.push_back(OriginTrialFeature::kTopicsAPI); + if (!base::FeatureList::IsEnabled(features::kBrowsingTopics) || + !base::FeatureList::IsEnabled(features::kBrowsingTopicsXHR)) { + restricted.push_back(OriginTrialFeature::kTopicsXHR); + } if (!base::FeatureList::IsEnabled(features::kConversionMeasurement)) restricted.push_back(OriginTrialFeature::kAttributionReporting); if (!base::FeatureList::IsEnabled(features::kFencedFrames))
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.cc b/third_party/blink/renderer/core/paint/box_painter_base.cc index 2c22b67..9f3ad80 100644 --- a/third_party/blink/renderer/core/paint/box_painter_base.cc +++ b/third_party/blink/renderer/core/paint/box_painter_base.cc
@@ -208,35 +208,20 @@ context.ClipOut(rect_to_clip_out.Rect()); } - absl::optional<gfx::RectF> clip_rect; - auto GetClipRect = [&clip_rect, &fill_rect, - shadow_blur]() -> gfx::RectF& { - if (!clip_rect) { - // Create a "pseudo-infinite" rectangle, that should be large enough - // to contain shadows on all four sides, including blur. - clip_rect.emplace(fill_rect.x() - shadow_blur * 3, - fill_rect.y() - shadow_blur * 3, - fill_rect.width() + shadow_blur * 6, - fill_rect.height() + shadow_blur * 6); - } - return *clip_rect; - }; + if (!sides_to_include.HasAllSides()) { + // Create a "pseudo-infinite" clip rectangle that should be large enough + // to contain shadows on all four sides, including blur. Clip to the + // border box for the sides that are excluded in this fragment. + gfx::RectF keep = fill_rect + shadow_offset; + keep.Outset(shadow_blur * 3); + const gfx::RectF& clip = border.Rect(); - // Clip out the sides that are excluded in this fragment. - if (!sides_to_include.left) - GetClipRect().set_x(rect_to_clip_out.Rect().x()); - if (!sides_to_include.top) - GetClipRect().set_y(rect_to_clip_out.Rect().y()); - if (!sides_to_include.right) { - GetClipRect().set_width(rect_to_clip_out.Rect().right() - - clip_rect->x()); + float left = sides_to_include.left ? keep.x() : clip.x(); + float top = sides_to_include.top ? keep.y() : clip.y(); + float right = sides_to_include.right ? keep.right() : clip.right(); + float bottom = sides_to_include.bottom ? keep.bottom() : clip.bottom(); + context.Clip(gfx::RectF(left, top, right - left, bottom - top)); } - if (!sides_to_include.bottom) { - GetClipRect().set_height(rect_to_clip_out.Rect().bottom() - - clip_rect->y()); - } - if (clip_rect) - context.Clip(*clip_rect); } // Draw only the shadow. If the color of the shadow is transparent we will
diff --git a/third_party/blink/renderer/core/paint/outline_painter.h b/third_party/blink/renderer/core/paint/outline_painter.h index 3487f72a..999d0030 100644 --- a/third_party/blink/renderer/core/paint/outline_painter.h +++ b/third_party/blink/renderer/core/paint/outline_painter.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OUTLINE_PAINTER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OUTLINE_PAINTER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector_test.cc b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector_test.cc index 707e40b..c7d39c7 100644 --- a/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector_test.cc +++ b/third_party/blink/renderer/core/paint/timing/image_paint_timing_detector_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/paint/timing/image_paint_timing_detector.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/scoped_feature_list.h" #include "base/test/test_mock_time_task_runner.h" #include "base/test/trace_event_analyzer.h"
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 index c582b8bc..cfeadd2 100644 --- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 +++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
@@ -417,7 +417,8 @@ depends_on: ["WebXR"], }, { - name: "WindowPlacement", + name: "WindowManagement", + // Parser also accepts "window-management" alias (crbug.com/1328581). permissions_policy_name: "window-placement", }, ],
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.cc b/third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.cc index 311a1ba9..f2653da 100644 --- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.cc +++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.cc
@@ -257,6 +257,11 @@ absl::optional<mojom::blink::PermissionsPolicyFeature> ParsingContext::ParseFeatureName(const String& feature_name) { DCHECK(!feature_name.empty()); + // window-management is an alias for window-placement (crbug.com/1328581). + if (feature_name == "window-management" && + RuntimeEnabledFeatures::WindowManagementPermissionAliasEnabled()) { + return ParseFeatureName("window-placement"); + } if (!feature_names_.Contains(feature_name)) { logger_.Warn("Unrecognized feature: '" + feature_name + "'."); return absl::nullopt;
diff --git a/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc b/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc index d1c627b..31e464b 100644 --- a/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc +++ b/third_party/blink/renderer/core/scheduler_integration_tests/frame_throttling_test.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/test/bind.h" #include "base/test/scoped_feature_list.h" #include "cc/base/features.h"
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator.cc b/third_party/blink/renderer/core/scroll/scroll_animator.cc index 2a61335..214c8dcf 100644 --- a/third_party/blink/renderer/core/scroll/scroll_animator.cc +++ b/third_party/blink/renderer/core/scroll/scroll_animator.cc
@@ -32,7 +32,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "build/build_config.h" #include "cc/animation/animation_id_provider.h"
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_base.cc b/third_party/blink/renderer/core/scroll/scroll_animator_base.cc index 8748960..45765541 100644 --- a/third_party/blink/renderer/core/scroll/scroll_animator_base.cc +++ b/third_party/blink/renderer/core/scroll/scroll_animator_base.cc
@@ -30,7 +30,7 @@ #include "third_party/blink/renderer/core/scroll/scroll_animator_base.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/renderer/core/scroll/scrollable_area.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.h b/third_party/blink/renderer/core/scroll/scrollable_area.h index 5b736ad..52c4859 100644 --- a/third_party/blink/renderer/core/scroll/scrollable_area.h +++ b/third_party/blink/renderer/core/scroll/scrollable_area.h
@@ -26,7 +26,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SCROLL_SCROLLABLE_AREA_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_SCROLL_SCROLLABLE_AREA_H_ -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/gtest_prod_util.h" #include "base/notreached.h" #include "cc/input/scroll_snap_data.h"
diff --git a/third_party/blink/renderer/core/speculation_rules/speculation_rules_origin_trial_test.cc b/third_party/blink/renderer/core/speculation_rules/speculation_rules_origin_trial_test.cc index b66f760..5211f126 100644 --- a/third_party/blink/renderer/core/speculation_rules/speculation_rules_origin_trial_test.cc +++ b/third_party/blink/renderer/core/speculation_rules/speculation_rules_origin_trial_test.cc
@@ -4,8 +4,8 @@ #include <vector> -#include "base/bind.h" #include "base/cxx17_backports.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/core/speculation_rules/stub_speculation_host.h b/third_party/blink/renderer/core/speculation_rules/stub_speculation_host.h index 7226199..691db51 100644 --- a/third_party/blink/renderer/core/speculation_rules/stub_speculation_host.h +++ b/third_party/blink/renderer/core/speculation_rules/stub_speculation_host.h
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" #include "third_party/blink/public/mojom/speculation_rules/speculation_rules.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/svg/svg_uri_reference.h b/third_party/blink/renderer/core/svg/svg_uri_reference.h index c09da3f3..a3ce2b3 100644 --- a/third_party/blink/renderer/core/svg/svg_uri_reference.h +++ b/third_party/blink/renderer/core/svg/svg_uri_reference.h
@@ -21,7 +21,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_URI_REFERENCE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_URI_REFERENCE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/member.h"
diff --git a/third_party/blink/renderer/core/testing/dummy_page_holder.h b/third_party/blink/renderer/core/testing/dummy_page_holder.h index 27a6904..e7a0729c 100644 --- a/third_party/blink/renderer/core/testing/dummy_page_holder.h +++ b/third_party/blink/renderer/core/testing/dummy_page_holder.h
@@ -31,8 +31,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_DUMMY_PAGE_HOLDER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_DUMMY_PAGE_HOLDER_H_ -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/time/default_tick_clock.h" #include "third_party/blink/renderer/core/frame/local_frame_client.h" #include "third_party/blink/renderer/core/page/page.h"
diff --git a/third_party/blink/renderer/core/testing/page_test_base.cc b/third_party/blink/renderer/core/testing/page_test_base.cc index 315fad14..d9a32608 100644 --- a/third_party/blink/renderer/core/testing/page_test_base.cc +++ b/third_party/blink/renderer/core/testing/page_test_base.cc
@@ -6,7 +6,7 @@ #include <sstream> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/test/bind.h" #include "base/time/default_tick_clock.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc index 8f2022a..e14fe96 100644 --- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc +++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
@@ -602,6 +602,10 @@ with_credentials_ = value; } +void XMLHttpRequest::setDeprecatedBrowsingTopics(bool value) { + deprecated_browsing_topics_ = value; +} + void XMLHttpRequest::open(const AtomicString& method, const String& url_string, ExceptionState& exception_state) { @@ -1056,6 +1060,7 @@ request.SetCredentialsMode( with_credentials_ ? network::mojom::CredentialsMode::kInclude : network::mojom::CredentialsMode::kSameOrigin); + request.SetBrowsingTopics(deprecated_browsing_topics_); request.SetSkipServiceWorker(world_ && world_->IsIsolatedWorld()); if (trust_token_params_) request.SetTrustTokenParams(*trust_token_params_);
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h index 11fdc0f..93750ef 100644 --- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h +++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.h
@@ -125,6 +125,8 @@ State readyState() const; bool withCredentials() const { return with_credentials_; } void setWithCredentials(bool, ExceptionState&); + bool deprecatedBrowsingTopics() const { return deprecated_browsing_topics_; } + void setDeprecatedBrowsingTopics(bool); void open(const AtomicString& method, const String& url, ExceptionState&); void open(const AtomicString& method, const String& url, @@ -367,6 +369,8 @@ bool with_credentials_ = false; + bool deprecated_browsing_topics_ = false; + // Used to skip m_responseDocument creation if it's done previously. We need // this separate flag since m_responseDocument can be 0 for some cases. bool parsed_response_ = false;
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.idl b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.idl index c66eb341..d7c33b29 100644 --- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.idl +++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.idl
@@ -63,6 +63,7 @@ [RaisesException, RuntimeEnabled=PrivateStateTokens, SecureContext, MeasureAs=TrustTokenXhr] void setTrustToken(TrustToken trustToken); [RaisesException=Setter] attribute unsigned long timeout; [RaisesException=Setter] attribute boolean withCredentials; + [RuntimeEnabled=TopicsXHR, SecureContext, Exposed=Window] attribute boolean deprecatedBrowsingTopics; readonly attribute XMLHttpRequestUpload upload; [RaisesException] void send(optional (Document or XMLHttpRequestBodyInit)? body = null); void abort();
diff --git a/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window.cc b/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window.cc index 6fbc3b2..46e3e73 100644 --- a/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window.cc +++ b/third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window.h" -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_window_management.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_inline_text_box_test.cc b/third_party/blink/renderer/modules/accessibility/ax_inline_text_box_test.cc index da3a093..b661221 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_inline_text_box_test.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_inline_text_box_test.cc
@@ -23,9 +23,10 @@ TEST_P(ParameterizedAccessibilityTest, GetWordBoundaries) { // ☀ is the sun emoji symbol. // জ is circled digit one. + // Full string: "This, ☀ জ is ... a---+++test. <p>word</p>" SetBodyInnerHTML(R"HTML( <p id="paragraph"> - "This, ☀ জ is ... a---+++test." + "This, ☀ জ is ... a---+++test. <p>word</p>" </p>)HTML"); AXObject* ax_paragraph = GetAXObjectByElementId("paragraph"); @@ -38,8 +39,10 @@ ASSERT_NE(nullptr, ax_inline_text_box); ASSERT_EQ(ax::mojom::Role::kInlineTextBox, ax_inline_text_box->RoleValue()); - VectorOf<int> expected_word_starts{0, 1, 5, 9, 11, 14, 18, 19, 25, 29}; - VectorOf<int> expected_word_ends{1, 5, 6, 10, 13, 17, 19, 22, 29, 31}; + VectorOf<int> expected_word_starts{0, 1, 5, 7, 9, 11, 14, 18, 19, 22, 23, + 24, 25, 29, 31, 32, 33, 34, 38, 40, 41}; + VectorOf<int> expected_word_ends{1, 5, 6, 8, 10, 13, 17, 19, 22, 23, 24, + 25, 29, 30, 32, 33, 34, 38, 40, 41, 43}; VectorOf<int> word_starts, word_ends; ax_inline_text_box->GetWordBoundaries(word_starts, word_ends); EXPECT_EQ(expected_word_starts, word_starts);
diff --git a/third_party/blink/renderer/modules/accessibility/ax_slider.cc b/third_party/blink/renderer/modules/accessibility/ax_slider.cc index a4f9e4a..9d33da8 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_slider.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_slider.cc
@@ -87,7 +87,7 @@ return false; // Ensure the AX node is updated. - AXObjectCache().MarkAXObjectDirty(this); + AXObjectCache().HandleValueChanged(GetNode()); return true; }
diff --git a/third_party/blink/renderer/modules/ad_auction/join_leave_queue.h b/third_party/blink/renderer/modules/ad_auction/join_leave_queue.h index 46453683..e769f1c 100644 --- a/third_party/blink/renderer/modules/ad_auction/join_leave_queue.h +++ b/third_party/blink/renderer/modules/ad_auction/join_leave_queue.h
@@ -5,9 +5,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_AD_AUCTION_JOIN_LEAVE_QUEUE_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_AD_AUCTION_JOIN_LEAVE_QUEUE_H_ -#include "base/callback.h" #include "base/check.h" #include "base/check_op.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/wtf/deque.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/ad_auction/join_leave_queue_test.cc b/third_party/blink/renderer/modules/ad_auction/join_leave_queue_test.cc index 5d82192..deb6eaa 100644 --- a/third_party/blink/renderer/modules/ad_auction/join_leave_queue_test.cc +++ b/third_party/blink/renderer/modules/ad_auction/join_leave_queue_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc index 6dfc5bb..fb79ef9e 100644 --- a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc +++ b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/web_set_sink_id_callbacks.h" #include "third_party/blink/public/web/web_local_frame_client.h"
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h index b9d928ea..a43a3ba 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_BASE_RENDERING_CONTEXT_2D_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_BASE_RENDERING_CONTEXT_2D_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/single_thread_task_runner.h" #include "cc/paint/record_paint_canvas.h"
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc index 12db315c..538850e 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h b/third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h index da38f08..78e83af 100644 --- a/third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h +++ b/third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGEMENT_CREDENTIAL_MANAGER_PROXY_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGEMENT_CREDENTIAL_MANAGER_PROXY_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/public/mojom/credentialmanagement/credential_manager.mojom-blink.h" #include "third_party/blink/public/mojom/payments/payment_credential.mojom-blink.h" #include "third_party/blink/public/mojom/sms/webotp_service.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper.h b/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper.h index e22391b..5a766ce 100644 --- a/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper.h +++ b/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_TCP_READABLE_STREAM_WRAPPER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_TCP_READABLE_STREAM_WRAPPER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/system/data_pipe.h" #include "mojo/public/cpp/system/handle_signals_state.h" #include "mojo/public/cpp/system/simple_watcher.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper_unittest.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper_unittest.cc index 7d2470c..6c9da349 100644 --- a/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper_unittest.cc +++ b/third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/direct_sockets/tcp_readable_stream_wrapper.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/test/mock_callback.h" #include "net/base/net_errors.h" #include "third_party/blink/renderer/bindings/core/v8/iterable.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_writable_stream_wrapper_unittest.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_writable_stream_wrapper_unittest.cc index 3d26d0b..e64db20 100644 --- a/third_party/blink/renderer/modules/direct_sockets/tcp_writable_stream_wrapper_unittest.cc +++ b/third_party/blink/renderer/modules/direct_sockets/tcp_writable_stream_wrapper_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/direct_sockets/tcp_writable_stream_wrapper.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/ranges/algorithm.h" #include "base/test/mock_callback.h" #include "net/base/net_errors.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.cc b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.cc index 242f9a92..51c4bdb 100644 --- a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.cc +++ b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h" -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/base/net_errors.h" #include "third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h index 3a25de8..54b6f93 100644 --- a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h +++ b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_UDP_READABLE_STREAM_WRAPPER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_UDP_READABLE_STREAM_WRAPPER_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/time/time.h" #include "services/network/public/mojom/udp_socket.mojom-blink.h" #include "third_party/blink/renderer/modules/direct_sockets/stream_wrapper.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper_unittest.cc b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper_unittest.cc index b69b408..04d16d7 100644 --- a/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper_unittest.cc +++ b/third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper_unittest.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/direct_sockets/udp_readable_stream_wrapper.h" -#include "base/callback_helpers.h" #include "base/containers/span.h" +#include "base/functional/callback_helpers.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/receiver.h" #include "net/base/net_errors.h"
diff --git a/third_party/blink/renderer/modules/direct_sockets/udp_writable_stream_wrapper_unittest.cc b/third_party/blink/renderer/modules/direct_sockets/udp_writable_stream_wrapper_unittest.cc index 1c337e09..2e311c1 100644 --- a/third_party/blink/renderer/modules/direct_sockets/udp_writable_stream_wrapper_unittest.cc +++ b/third_party/blink/renderer/modules/direct_sockets/udp_writable_stream_wrapper_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/direct_sockets/udp_writable_stream_wrapper.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/receiver.h" #include "net/base/net_errors.h"
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc index 56233d7..0c94aa5 100644 --- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc +++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
@@ -7,7 +7,7 @@ #include <limits> #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "media/mojo/mojom/media_player.mojom-blink.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h b/third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h index 08418aa..9c6d0cf 100644 --- a/third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h +++ b/third_party/blink/renderer/modules/file_system_access/file_system_access_capacity_tracker.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_CAPACITY_TRACKER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_CAPACITY_TRACKER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/types/pass_key.h" #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/third_party/blink/renderer/modules/filesystem/local_file_system.h b/third_party/blink/renderer/modules/filesystem/local_file_system.h index 168c150..1921b87 100644 --- a/third_party/blink/renderer/modules/filesystem/local_file_system.h +++ b/third_party/blink/renderer/modules/filesystem/local_file_system.h
@@ -33,7 +33,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/mojom/filesystem/file_system.mojom-blink-forward.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/platform/bindings/name_client.h"
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.cc b/third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.cc index 2b28116..2956d6d 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.cc +++ b/third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/gamepad/gamepad_haptic_actuator.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "device/gamepad/public/cpp/gamepad.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
diff --git a/third_party/blink/renderer/modules/image_downloader/image_downloader_impl.cc b/third_party/blink/renderer/modules/image_downloader/image_downloader_impl.cc index 08d0f94..b47cbd9 100644 --- a/third_party/blink/renderer/modules/image_downloader/image_downloader_impl.cc +++ b/third_party/blink/renderer/modules/image_downloader/image_downloader_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "skia/ext/image_operations.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" #include "third_party/blink/public/platform/interface_registry.h"
diff --git a/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.cc b/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.cc index f2383ac0..d45113e 100644 --- a/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.cc +++ b/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" #include "third_party/blink/public/platform/web_http_body.h" #include "third_party/blink/public/platform/web_security_origin.h"
diff --git a/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.h b/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.h index c9a2a7f..ad85cc3 100644 --- a/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.h +++ b/third_party/blink/renderer/modules/image_downloader/multi_resolution_image_resource_fetcher.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink-forward.h" #include "third_party/blink/public/platform/web_url_request.h" #include "third_party/blink/public/web/web_associated_url_loader_options.h"
diff --git a/third_party/blink/renderer/modules/imagecapture/image_capture.cc b/third_party/blink/renderer/modules/imagecapture/image_capture.cc index 88b8b50..03f7505 100644 --- a/third_party/blink/renderer/modules/imagecapture/image_capture.cc +++ b/third_party/blink/renderer/modules/imagecapture/image_capture.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "base/trace_event/trace_event.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
diff --git a/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h b/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h index c6eeb8b..5e19f54 100644 --- a/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h +++ b/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.cc b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.cc index 1544123..91faad3 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.cc +++ b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.cc
@@ -10,8 +10,8 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "mojo/public/cpp/bindings/receiver.h" #include "third_party/blink/renderer/core/dom/dom_exception.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h index 9d5a5d56..b4c34e9 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h +++ b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
@@ -8,8 +8,8 @@ #include <cstdint> #include <memory> -#include "base/callback.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback.h" #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc index 9fadc1e32..401b9fb0 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc +++ b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc
@@ -28,7 +28,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/web_idb_cursor_unittest.cc b/third_party/blink/renderer/modules/indexeddb/web_idb_cursor_unittest.cc index d49cf10..2be0e70 100644 --- a/third_party/blink/renderer/modules/indexeddb/web_idb_cursor_unittest.cc +++ b/third_party/blink/renderer/modules/indexeddb/web_idb_cursor_unittest.cc
@@ -10,7 +10,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
diff --git a/third_party/blink/renderer/modules/manifest/manifest_fetcher.h b/third_party/blink/renderer/modules/manifest/manifest_fetcher.h index 5fb995f..aba0b62f 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_fetcher.h +++ b/third_party/blink/renderer/modules/manifest/manifest_fetcher.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/loader/threadable_loader.h" #include "third_party/blink/renderer/core/loader/threadable_loader_client.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
diff --git a/third_party/blink/renderer/modules/manifest/manifest_manager.cc b/third_party/blink/renderer/modules/manifest/manifest_manager.cc index 8af16d6d..e1a9b48 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_manager.cc +++ b/third_party/blink/renderer/modules/manifest/manifest_manager.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/public/platform/interface_registry.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/frame/frame_console.h"
diff --git a/third_party/blink/renderer/modules/manifest/manifest_manager.h b/third_party/blink/renderer/modules/manifest/manifest_manager.h index feec97a5..593c6e3 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_manager.h +++ b/third_party/blink/renderer/modules/manifest/manifest_manager.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MANIFEST_MANIFEST_MANAGER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MANIFEST_MANIFEST_MANAGER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "third_party/blink/public/mojom/manifest/manifest.mojom-blink-forward.h" #include "third_party/blink/public/mojom/manifest/manifest_manager.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_device_factory.cc b/third_party/blink/renderer/modules/media/audio/audio_device_factory.cc index 59931d7..ee06276 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_device_factory.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_device_factory.cc
@@ -6,8 +6,8 @@ #include <algorithm> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/no_destructor.h" #include "base/notreached.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_input_ipc_factory.cc b/third_party/blink/renderer/modules/media/audio/audio_input_ipc_factory.cc index f72035fc..c882187 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_input_ipc_factory.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_input_ipc_factory.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "media/audio/audio_source_parameters.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory.cc b/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory.cc index fbf1739..28fcfd1 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory_test.cc b/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory_test.cc index d98bce2..9c3dbf8 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory_test.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_output_ipc_factory_test.cc
@@ -8,7 +8,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/message_loop/message_pump_type.h" #include "base/run_loop.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc b/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc index 7d7074e6..36fa12f 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc
@@ -8,8 +8,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_functions.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc b/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc index fb8c62a..531cc5b 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/notreached.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache.h b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache.h index 6852c17..27d159d 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache.h +++ b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/synchronization/lock.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc index f448bf4e..e7f1bf0 100644 --- a/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc +++ b/third_party/blink/renderer/modules/media/audio/audio_renderer_sink_cache_test.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/test_mock_time_task_runner.h" #include "base/threading/thread.h" #include "media/audio/audio_device_description.h"
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.cc b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.cc index c74caa3..9ae6fee 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.cc +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_macros.h" #include "media/audio/audio_device_description.h" #include "media/mojo/common/input_error_code_converter.h"
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.h b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.h index 3ad2b96e..a263313e 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.h +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "media/audio/audio_input_ipc.h"
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc_test.cc b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc_test.cc index db765c3..7be2cb60 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc_test.cc +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_input_ipc_test.cc
@@ -9,7 +9,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/gtest_util.h" #include "media/audio/audio_device_description.h"
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.h b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.h index 81242d2..b64ef43 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.h +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.h
@@ -7,7 +7,7 @@ #include <string> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h b/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h index 4aa21d3..a42cce2 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h +++ b/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_MEDIA_CONTROLS_SHARED_HELPER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_MEDIA_CONTROLS_SHARED_HELPER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/core/dom/events/native_event_listener.h" #include "third_party/blink/renderer/platform/heap/member.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc index ddad7774..6c27f0a 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc +++ b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/rand_util.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc index 2d498dc..f57b4482 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc +++ b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/gmock_callback_support.h" #include "media/base/limits.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.h index a5419a3..339cd0a 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.h +++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_audio_element_capturer_source.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_AUDIO_ELEMENT_CAPTURER_SOURCE_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_AUDIO_ELEMENT_CAPTURER_SOURCE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc index afdf6f83..3c671492 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc +++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h index 2b57484..fa0f81c8 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h +++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_VIDEO_ELEMENT_CAPTURER_SOURCE_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_VIDEO_ELEMENT_CAPTURER_SOURCE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc index fe22d8b..9094081 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc +++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/apply_constraints_processor.h b/third_party/blink/renderer/modules/mediastream/apply_constraints_processor.h index 192e74472..504ad45 100644 --- a/third_party/blink/renderer/modules/mediastream/apply_constraints_processor.h +++ b/third_party/blink/renderer/modules/mediastream/apply_constraints_processor.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_PROCESSOR_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_PROCESSOR_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "base/threading/thread_checker.h" #include "media/base/scoped_async_trace.h"
diff --git a/third_party/blink/renderer/modules/mediastream/identifiability_metrics.cc b/third_party/blink/renderer/modules/mediastream/identifiability_metrics.cc index e8869b0..d8dcaab 100644 --- a/third_party/blink/renderer/modules/mediastream/identifiability_metrics.cc +++ b/third_party/blink/renderer/modules/mediastream/identifiability_metrics.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediastream/identifiability_metrics.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h" #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
diff --git a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc index 0603e5f..e4dd503 100644 --- a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc +++ b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/bind_post_task.h" #include "base/task/single_thread_task_runner.h" #include "base/token.h"
diff --git a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h index dce9550..3e9f291d 100644 --- a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h +++ b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h" #include "base/token.h"
diff --git a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h index c892bfe..62e9f54 100644 --- a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h +++ b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm.h
@@ -8,7 +8,7 @@ #include <stddef.h> #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/base/video_frame.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.h b/third_party/blink/renderer/modules/mediastream/media_devices.h index a0a1019..51a1ae28 100644 --- a/third_party/blink/renderer/modules/mediastream/media_devices.h +++ b/third_party/blink/renderer/modules/mediastream/media_devices.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_DEVICES_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_DEVICES_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "build/build_config.h" #include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio_test.cc index ca78b386..f5afb286 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio_test.cc
@@ -10,8 +10,8 @@ #include <string> #include <utility> -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "base/test/scoped_feature_list.h" #include "base/types/optional_util.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc index c553b70..cb1e94d 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc
@@ -7,8 +7,8 @@ #include <stddef.h> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "third_party/blink/public/platform/interface_registry.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc index 5dfbad5..563533e 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc
@@ -9,7 +9,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/bind.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_set.cc b/third_party/blink/renderer/modules/mediastream/media_stream_set.cc index 97b5e3532..92bf898 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_set.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_set.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediastream/media_stream_set.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/modules/mediastream/media_stream.h" #include "third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track_impl.cc b/third_party/blink/renderer/modules/mediastream/media_stream_track_impl.cc index eddb054..0f74c27f 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_track_impl.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_track_impl.cc
@@ -27,7 +27,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc index 0032b1d..ce6d90e 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "base/token.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h index 42a3472..cfda7bd 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h
@@ -8,7 +8,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source_test.cc index 9c96fbf2..e04ac83f 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source_test.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.cc index cdf6ef19..9046be191 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.h b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.h index dafe60d8..024b1261 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.h +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_VIDEO_RENDERER_SINK_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_VIDEO_RENDERER_SINK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink_test.cc index b9dbe87..80a6292 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_renderer_sink_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc index 63964071..dbd3ea7 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
@@ -10,10 +10,10 @@ #include <numeric> #include <utility> -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/feature_list.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc index 835288a..f4c3c7e 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/ranges/algorithm.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc index 3f4db17..2c42a6a 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc index 72cff77..99b580b 100644 --- a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc +++ b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc index e36dd5bc..4ccf052 100644 --- a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc +++ b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
@@ -7,8 +7,8 @@ #include <algorithm> #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h"
diff --git a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc index eff0933..a05b63e 100644 --- a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc +++ b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source_test.cc
@@ -5,7 +5,7 @@ #include <memory> #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h" #include "media/base/audio_bus.h"
diff --git a/third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.cc b/third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.cc index f862814..3db6fb0 100644 --- a/third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.cc +++ b/third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.cc
@@ -1,6 +1,6 @@ #include "third_party/blink/renderer/modules/mediastream/screen_capture_media_stream_track.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h"
diff --git a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc index d1fb5e2..7cc7721a5 100644 --- a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc +++ b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h"
diff --git a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.h b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.h index 434d8e5..6b1b477 100644 --- a/third_party/blink/renderer/modules/mediastream/track_audio_renderer.h +++ b/third_party/blink/renderer/modules/mediastream/track_audio_renderer.h
@@ -9,7 +9,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc b/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc index e054775b..fc9b2af 100644 --- a/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc +++ b/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/mediastream/track_audio_renderer.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/modules/mediastream/transferred_media_stream_track.cc b/third_party/blink/renderer/modules/mediastream/transferred_media_stream_track.cc index 347dcbcd4..449e663 100644 --- a/third_party/blink/renderer/modules/mediastream/transferred_media_stream_track.cc +++ b/third_party/blink/renderer/modules/mediastream/transferred_media_stream_track.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
diff --git a/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc b/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc index 0bd5f70..86085d3 100644 --- a/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc +++ b/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc
@@ -11,7 +11,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h"
diff --git a/third_party/blink/renderer/modules/mediastream/user_media_processor.cc b/third_party/blink/renderer/modules/mediastream/user_media_processor.cc index 9938726f..13398a9 100644 --- a/third_party/blink/renderer/modules/mediastream/user_media_processor.cc +++ b/third_party/blink/renderer/modules/mediastream/user_media_processor.cc
@@ -9,8 +9,8 @@ #include <utility> #include <vector> -#include "base/callback_helpers.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/ranges/algorithm.h"
diff --git a/third_party/blink/renderer/modules/mediastream/user_media_processor.h b/third_party/blink/renderer/modules/mediastream/user_media_processor.h index 00df21f6..c74a0fc 100644 --- a/third_party/blink/renderer/modules/mediastream/user_media_processor.h +++ b/third_party/blink/renderer/modules/mediastream/user_media_processor.h
@@ -8,7 +8,7 @@ #include <memory> #include <utility> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/gtest_prod_util.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/video_renderer_algorithm_wrapper.h b/third_party/blink/renderer/modules/mediastream/video_renderer_algorithm_wrapper.h index d9a2fba..138bdf49 100644 --- a/third_party/blink/renderer/modules/mediastream/video_renderer_algorithm_wrapper.h +++ b/third_party/blink/renderer/modules/mediastream/video_renderer_algorithm_wrapper.h
@@ -8,7 +8,7 @@ #include <stddef.h> #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/base/media_util.h" #include "media/base/time_source.h"
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc index 19a7866..220193f 100644 --- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc +++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
@@ -11,8 +11,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/containers/flat_map.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/metrics/histogram_macros.h" #include "base/sequence_checker.h"
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.h b/third_party/blink/renderer/modules/mediastream/video_track_adapter.h index b537819b..922cfb1d 100644 --- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.h +++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.h
@@ -7,7 +7,7 @@ #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter_unittest.cc b/third_party/blink/renderer/modules/mediastream/video_track_adapter_unittest.cc index ef28911..d9241d4e 100644 --- a/third_party/blink/renderer/modules/mediastream/video_track_adapter_unittest.cc +++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter_unittest.cc
@@ -6,7 +6,7 @@ #include <limits> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc index b4ddfa52..f78877e4 100644 --- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc +++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms.cc
@@ -11,8 +11,8 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc index 1ab7b9d..db9dd170 100644 --- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc +++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_test.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/callback_helpers.h" #include "base/containers/circular_deque.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc index fa253fb..ebec683 100644 --- a/third_party/blink/renderer/modules/payments/payment_request.cc +++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -8,7 +8,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc index 1f44aec..4b04de2 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
@@ -7,7 +7,7 @@ #include <stdint.h> #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc index 7bff57d..c641660f 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_track_metrics_test.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_track_metrics_test.cc index 16c573e..81a0b29 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_track_metrics_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_track_metrics_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/threading/thread.h" #include "testing/gmock/include/gmock/gmock.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_video_webrtc_sink.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_video_webrtc_sink.cc index 14e8b40f..8eb9dfe 100644 --- a/third_party/blink/renderer/modules/peerconnection/media_stream_video_webrtc_sink.cc +++ b/third_party/blink/renderer/modules/peerconnection/media_stream_video_webrtc_sink.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <memory> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/numerics/safe_conversions.h" #include "base/sequence_checker.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc index a7ac7d3a..132aa07c 100644 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/metrics/field_trial_params.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_certificate_generator.cc b/third_party/blink/renderer/modules/peerconnection/rtc_certificate_generator.cc index b6762d4..f6efee4 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_certificate_generator.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_certificate_generator.cc
@@ -7,7 +7,7 @@ #include <string> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_underlying_sink.h b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_underlying_sink.h index 89f9f95..4ebda2c 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_underlying_sink.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_underlying_sink.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_ENCODED_VIDEO_UNDERLYING_SINK_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_ENCODED_VIDEO_UNDERLYING_SINK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/streams/underlying_sink_base.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc index 80d4a03..0820c2c 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc
@@ -14,8 +14,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc index 2d36256..8605bd2 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc
@@ -14,8 +14,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_test.cc index 06f3f02a..81e6095 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_test.cc
@@ -6,7 +6,7 @@ #include <string> -#include "base/bind.h" +#include "base/functional/bind.h" #include "build/build_config.h" #include "build/buildflag.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.cc index 669b35e..89a1922 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl_test.cc index daf824a..6f63e04 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver_impl_test.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl.h index 16c10bb..1b1a620e 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl_test.cc index 66ba0dc..646fdb4 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender_impl_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl.cc index 9fb6725..ebc213e5 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h" #include "third_party/webrtc/api/scoped_refptr.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl_test.cc index b7232c6..cf3373c 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver_impl_test.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/test_webrtc_stats_report_obtainer.cc b/third_party/blink/renderer/modules/peerconnection/test_webrtc_stats_report_obtainer.cc index f700bb43..a90e06e 100644 --- a/third_party/blink/renderer/modules/peerconnection/test_webrtc_stats_report_obtainer.cc +++ b/third_party/blink/renderer/modules/peerconnection/test_webrtc_stats_report_obtainer.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/peerconnection/test_webrtc_stats_report_obtainer.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_stats.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/transceiver_state_surfacer_test.cc b/third_party/blink/renderer/modules/peerconnection/transceiver_state_surfacer_test.cc index 709d8a8..c3b7110 100644 --- a/third_party/blink/renderer/modules/peerconnection/transceiver_state_surfacer_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/transceiver_state_surfacer_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <tuple> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc index d7394b8..cfbc49c9 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" #include "base/cfi_buildflags.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "build/build_config.h" #include "media/audio/audio_sink_parameters.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map.cc index 2fb3a136..8cfbe1c 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map_test.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map_test.cc index 0fed7db6..932b19e4 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_map_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_test.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_test.cc index c4a2b3e..309500d0 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter_test.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc index 48c2573..8661e1c 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h" -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer_test.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer_test.cc index 26392f1..7a83ce9 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer_test.cc
@@ -8,7 +8,7 @@ #include <utility> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/permissions/permission_descriptor.idl b/third_party/blink/renderer/modules/permissions/permission_descriptor.idl index 236055e..0918d21d 100644 --- a/third_party/blink/renderer/modules/permissions/permission_descriptor.idl +++ b/third_party/blink/renderer/modules/permissions/permission_descriptor.idl
@@ -34,6 +34,8 @@ "periodic-background-sync", "system-wake-lock", "storage-access", + // Alias for 'window-placement' (crbug.com/1328581). + "window-management", "window-placement", "local-fonts", "top-level-storage-access",
diff --git a/third_party/blink/renderer/modules/permissions/permission_utils.cc b/third_party/blink/renderer/modules/permissions/permission_utils.cc index 3d61c395c..4069c32 100644 --- a/third_party/blink/renderer/modules/permissions/permission_utils.cc +++ b/third_party/blink/renderer/modules/permissions/permission_utils.cc
@@ -54,6 +54,8 @@ } String PermissionNameToString(PermissionName name) { + // TODO(crbug.com/1395451): Change these strings to match the JS permission + // strings (dashes instead of underscores). switch (name) { case PermissionName::GEOLOCATION: return "geolocation"; @@ -96,6 +98,9 @@ case PermissionName::STORAGE_ACCESS: return "storage_access"; case PermissionName::WINDOW_MANAGEMENT: + if (RuntimeEnabledFeatures::WindowManagementPermissionAliasEnabled()) { + return "window-management"; + } return "window_placement"; case PermissionName::LOCAL_FONTS: return "local_fonts"; @@ -156,36 +161,43 @@ script_state->GetIsolate(), raw_descriptor.V8Value(), exception_state); - if (exception_state.HadException()) + if (exception_state.HadException()) { return nullptr; + } const String& name = permission->name(); - if (name == "geolocation") + if (name == "geolocation") { return CreatePermissionDescriptor(PermissionName::GEOLOCATION); + } if (name == "camera") { CameraDevicePermissionDescriptor* camera_device_permission = NativeValueTraits<CameraDevicePermissionDescriptor>::NativeValue( script_state->GetIsolate(), raw_descriptor.V8Value(), exception_state); - if (exception_state.HadException()) + if (exception_state.HadException()) { return nullptr; + } return CreateVideoCapturePermissionDescriptor( camera_device_permission->panTiltZoom()); } - if (name == "microphone") + if (name == "microphone") { return CreatePermissionDescriptor(PermissionName::AUDIO_CAPTURE); - if (name == "notifications") + } + if (name == "notifications") { return CreatePermissionDescriptor(PermissionName::NOTIFICATIONS); - if (name == "persistent-storage") + } + if (name == "persistent-storage") { return CreatePermissionDescriptor(PermissionName::DURABLE_STORAGE); + } if (name == "push") { PushPermissionDescriptor* push_permission = NativeValueTraits<PushPermissionDescriptor>::NativeValue( script_state->GetIsolate(), raw_descriptor.V8Value(), exception_state); - if (exception_state.HadException()) + if (exception_state.HadException()) { return nullptr; + } // Only "userVisibleOnly" push is supported for now. if (!push_permission->userVisibleOnly()) { @@ -204,8 +216,9 @@ exception_state); return CreateMidiPermissionDescriptor(midi_permission->sysex()); } - if (name == "background-sync") + if (name == "background-sync") { return CreatePermissionDescriptor(PermissionName::BACKGROUND_SYNC); + } if (name == "ambient-light-sensor" || name == "accelerometer" || name == "gyroscope" || name == "magnetometer") { // ALS requires an extra flag. @@ -229,8 +242,9 @@ } if (name == "clipboard-read" || name == "clipboard-write") { PermissionName permission_name = PermissionName::CLIPBOARD_READ; - if (name == "clipboard-write") + if (name == "clipboard-write") { permission_name = PermissionName::CLIPBOARD_WRITE; + } ClipboardPermissionDescriptor* clipboard_permission = NativeValueTraits<ClipboardPermissionDescriptor>::NativeValue( @@ -242,14 +256,18 @@ /*will_be_sanitized=*/ !clipboard_permission->allowWithoutSanitization()); } - if (name == "payment-handler") + if (name == "payment-handler") { return CreatePermissionDescriptor(PermissionName::PAYMENT_HANDLER); - if (name == "background-fetch") + } + if (name == "background-fetch") { return CreatePermissionDescriptor(PermissionName::BACKGROUND_FETCH); - if (name == "idle-detection") + } + if (name == "idle-detection") { return CreatePermissionDescriptor(PermissionName::IDLE_DETECTION); - if (name == "periodic-background-sync") + } + if (name == "periodic-background-sync") { return CreatePermissionDescriptor(PermissionName::PERIODIC_BACKGROUND_SYNC); + } if (name == "screen-wake-lock") { return CreatePermissionDescriptor(PermissionName::SCREEN_WAKE_LOCK); } @@ -285,6 +303,14 @@ } return CreatePermissionDescriptor(PermissionName::TOP_LEVEL_STORAGE_ACCESS); } + if (name == "window-management") { + if (!RuntimeEnabledFeatures::WindowManagementPermissionAliasEnabled()) { + exception_state.ThrowTypeError( + "The Window Management alias is not enabled."); + return nullptr; + } + return CreatePermissionDescriptor(PermissionName::WINDOW_MANAGEMENT); + } if (name == "window-placement") { return CreatePermissionDescriptor(PermissionName::WINDOW_MANAGEMENT); }
diff --git a/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h b/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h index f82b7260..65d84f22b 100644 --- a/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h +++ b/third_party/blink/renderer/modules/remoteplayback/availability_callback_wrapper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_REMOTEPLAYBACK_AVAILABILITY_CALLBACK_WRAPPER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_REMOTEPLAYBACK_AVAILABILITY_CALLBACK_WRAPPER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/bindings/name_client.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/member.h"
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc b/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc index c1be22ac..6c4da4a 100644 --- a/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc +++ b/third_party/blink/renderer/modules/scheduler/dom_task_signal.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_task_priority_change_event_init.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
diff --git a/third_party/blink/renderer/modules/scheduler/dom_task_signal.h b/third_party/blink/renderer/modules/scheduler/dom_task_signal.h index d9058edd..e5d7fa8 100644 --- a/third_party/blink/renderer/modules/scheduler/dom_task_signal.h +++ b/third_party/blink/renderer/modules/scheduler/dom_task_signal.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SCHEDULER_DOM_TASK_SIGNAL_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_SCHEDULER_DOM_TASK_SIGNAL_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/renderer/core/dom/abort_signal.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/modules/sensor/sensor_test_utils.cc b/third_party/blink/renderer/modules/sensor/sensor_test_utils.cc index 6d42549..58e6274 100644 --- a/third_party/blink/renderer/modules/sensor/sensor_test_utils.cc +++ b/third_party/blink/renderer/modules/sensor/sensor_test_utils.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/run_loop.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/device/public/mojom/sensor_provider.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc index 1645724..f3dddc5 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h" -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/time/default_tick_clock.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h index 6642b4d..9ae6867 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h
@@ -7,7 +7,7 @@ #include <set> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc index 5ac6d97a..b6156053 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_event_queue_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/service_worker/service_worker_event_queue.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/test/test_mock_time_task_runner.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc index bbbbcd3..13f99ac 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -33,8 +33,8 @@ #include <memory> #include <utility> -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_functions.h"
diff --git a/third_party/blink/renderer/modules/service_worker/wait_until_observer.h b/third_party/blink/renderer/modules/service_worker/wait_until_observer.h index 26bec75..c16f3902 100644 --- a/third_party/blink/renderer/modules/service_worker/wait_until_observer.h +++ b/third_party/blink/renderer/modules/service_worker/wait_until_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_WAIT_UNTIL_OBSERVER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_WAIT_UNTIL_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/storage/cached_storage_area.cc b/third_party/blink/renderer/modules/storage/cached_storage_area.cc index a94789b..771cb77 100644 --- a/third_party/blink/renderer/modules/storage/cached_storage_area.cc +++ b/third_party/blink/renderer/modules/storage/cached_storage_area.cc
@@ -8,7 +8,7 @@ #include <algorithm> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/modules/storage/storage_controller.h b/third_party/blink/renderer/modules/storage/storage_controller.h index 5a0c3290..3146bec 100644 --- a/third_party/blink/renderer/modules/storage/storage_controller.h +++ b/third_party/blink/renderer/modules/storage/storage_controller.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_STORAGE_CONTROLLER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_STORAGE_CONTROLLER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/modules/storage/storage_controller_test.cc b/third_party/blink/renderer/modules/storage/storage_controller_test.cc index 5dd7d01..832a7a69 100644 --- a/third_party/blink/renderer/modules/storage/storage_controller_test.cc +++ b/third_party/blink/renderer/modules/storage/storage_controller_test.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/thread_pool.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/third_party/blink/renderer/modules/storage/testing/mock_storage_area.cc b/third_party/blink/renderer/modules/storage/testing/mock_storage_area.cc index ddf9f066..5ac192c0 100644 --- a/third_party/blink/renderer/modules/storage/testing/mock_storage_area.cc +++ b/third_party/blink/renderer/modules/storage/testing/mock_storage_area.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/storage/testing/mock_storage_area.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/renderer/platform/wtf/functional.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock.h b/third_party/blink/renderer/modules/wake_lock/wake_lock.h index 741a2cf..df21143 100644 --- a/third_party/blink/renderer/modules/wake_lock/wake_lock.h +++ b/third_party/blink/renderer/modules/wake_lock/wake_lock.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc index b920cf2..48445b67 100644 --- a/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc +++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/run_loop.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h index e46dedd..f594f9d 100644 --- a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h +++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_TEST_UTILS_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_TEST_UTILS_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS index 6a978ce..339324a 100644 --- a/third_party/blink/renderer/modules/webcodecs/DEPS +++ b/third_party/blink/renderer/modules/webcodecs/DEPS
@@ -1,5 +1,5 @@ include_rules = [ - "+base/bind.h", + "+base/functional/bind.h", "+base/strings/string_util.h", "+base/test", "+base/task/task_traits.h",
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_decoder_broker.h b/third_party/blink/renderer/modules/webcodecs/audio_decoder_broker.h index 5fae1b6..a46180ef 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_decoder_broker.h +++ b/third_party/blink/renderer/modules/webcodecs/audio_decoder_broker.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/background_readback.h b/third_party/blink/renderer/modules/webcodecs/background_readback.h index 4524a9c..04b32468 100644 --- a/third_party/blink/renderer/modules/webcodecs/background_readback.h +++ b/third_party/blink/renderer/modules/webcodecs/background_readback.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBCODECS_BACKGROUND_READBACK_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBCODECS_BACKGROUND_READBACK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/codec_pressure_gauge.h b/third_party/blink/renderer/modules/webcodecs/codec_pressure_gauge.h index 397a77de..cec5786f 100644 --- a/third_party/blink/renderer/modules/webcodecs/codec_pressure_gauge.h +++ b/third_party/blink/renderer/modules/webcodecs/codec_pressure_gauge.h
@@ -7,7 +7,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/synchronization/lock.h" #include "third_party/blink/renderer/modules/modules_export.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_selector.cc b/third_party/blink/renderer/modules/webcodecs/decoder_selector.cc index 794dffd..dbcaf8a 100644 --- a/third_party/blink/renderer/modules/webcodecs/decoder_selector.cc +++ b/third_party/blink/renderer/modules/webcodecs/decoder_selector.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/webcodecs/decoder_selector.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/encoder_base.cc b/third_party/blink/renderer/modules/webcodecs/encoder_base.cc index 29de1ab..2a5de4ab 100644 --- a/third_party/blink/renderer/modules/webcodecs/encoder_base.cc +++ b/third_party/blink/renderer/modules/webcodecs/encoder_base.cc
@@ -7,9 +7,9 @@ #include <string> #include "base/atomic_sequence_num.h" -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" #include "base/trace_event/common/trace_event_common.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/fuzzer_utils.cc b/third_party/blink/renderer/modules/webcodecs/fuzzer_utils.cc index 5709545..97b810931 100644 --- a/third_party/blink/renderer/modules/webcodecs/fuzzer_utils.cc +++ b/third_party/blink/renderer/modules/webcodecs/fuzzer_utils.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <string> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "media/base/limits.h" #include "media/base/sample_format.h" #include "third_party/blink/renderer/bindings/core/v8/script_function.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder_broker.h b/third_party/blink/renderer/modules/webcodecs/video_decoder_broker.h index c00398f..7ccff31 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_decoder_broker.h +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder_broker.h
@@ -9,7 +9,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/video_encoder.cc b/third_party/blink/renderer/modules/webcodecs/video_encoder.cc index d16b1b7..b8d8171 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_encoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_encoder.cc
@@ -6,12 +6,12 @@ #include <string> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/cxx17_backports.h" #include "base/format_macros.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/clamped_math.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.cc b/third_party/blink/renderer/modules/webcodecs/video_frame.cc index 23c1e0a..4992e31 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_frame.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
@@ -7,9 +7,9 @@ #include <limits> #include <utility> -#include "base/callback_helpers.h" #include "base/containers/span.h" #include "base/feature_list.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/numerics/checked_math.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/database_tracker.h b/third_party/blink/renderer/modules/webdatabase/database_tracker.h index df83763..559d0c5 100644 --- a/third_party/blink/renderer/modules/webdatabase/database_tracker.h +++ b/third_party/blink/renderer/modules/webdatabase/database_tracker.h
@@ -31,7 +31,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/synchronization/lock.h" #include "base/thread_annotations.h" #include "third_party/blink/renderer/modules/modules_export.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_context_lost_test.cc b/third_party/blink/renderer/modules/webgpu/gpu_context_lost_test.cc index 9b178608..49c051ac 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_context_lost_test.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_context_lost_test.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/run_loop.h" #include "base/test/mock_callback.h" #include "gpu/command_buffer/client/webgpu_interface_stub.h"
diff --git a/third_party/blink/renderer/modules/websockets/dom_websocket.cc b/third_party/blink/renderer/modules/websockets/dom_websocket.cc index 63533e2d..467102d 100644 --- a/third_party/blink/renderer/modules/websockets/dom_websocket.cc +++ b/third_party/blink/renderer/modules/websockets/dom_websocket.cc
@@ -33,8 +33,8 @@ #include <string> #include <utility> -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/metrics/histogram_functions.h" #include "third_party/blink/public/common/features.h"
diff --git a/third_party/blink/renderer/modules/websockets/web_pepper_socket_impl.cc b/third_party/blink/renderer/modules/websockets/web_pepper_socket_impl.cc index 1378721..b30cc37 100644 --- a/third_party/blink/renderer/modules/websockets/web_pepper_socket_impl.cc +++ b/third_party/blink/renderer/modules/websockets/web_pepper_socket_impl.cc
@@ -34,7 +34,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/web_array_buffer.h"
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel.h b/third_party/blink/renderer/modules/websockets/websocket_channel.h index 2775ad5..f0cda08 100644 --- a/third_party/blink/renderer/modules/websockets/websocket_channel.h +++ b/third_party/blink/renderer/modules/websockets/websocket_channel.h
@@ -32,7 +32,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_CHANNEL_H_ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/bindings/source_location.h"
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc index d5162d6..0cb2249 100644 --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
@@ -36,9 +36,9 @@ #include <limits> #include <memory> -#include "base/callback.h" #include "base/compiler_specific.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/ptr_util.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc index 5a3856e..8cfb293 100644 --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl_test.cc
@@ -8,7 +8,7 @@ #include <string.h> #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc b/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc index bff3c19..cc82039 100644 --- a/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc +++ b/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/notreached.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc index 08b3fcf..96226ad 100644 --- a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc +++ b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/modules/webtransport/incoming_stream.h b/third_party/blink/renderer/modules/webtransport/incoming_stream.h index 881f5ec..f72c98f 100644 --- a/third_party/blink/renderer/modules/webtransport/incoming_stream.h +++ b/third_party/blink/renderer/modules/webtransport/incoming_stream.h
@@ -7,7 +7,7 @@ #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/types/strong_alias.h" #include "mojo/public/cpp/system/data_pipe.h"
diff --git a/third_party/blink/renderer/modules/webtransport/test_utils.h b/third_party/blink/renderer/modules/webtransport/test_utils.h index 83c95ed..c847f03 100644 --- a/third_party/blink/renderer/modules/webtransport/test_utils.h +++ b/third_party/blink/renderer/modules/webtransport/test_utils.h
@@ -8,7 +8,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBTRANSPORT_TEST_UTILS_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBTRANSPORT_TEST_UTILS_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_enter_fullscreen_observer.h b/third_party/blink/renderer/modules/xr/xr_enter_fullscreen_observer.h index 527a7883..9027914 100644 --- a/third_party/blink/renderer/modules/xr/xr_enter_fullscreen_observer.h +++ b/third_party/blink/renderer/modules/xr/xr_enter_fullscreen_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_ENTER_FULLSCREEN_OBSERVER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_ENTER_FULLSCREEN_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/events/native_event_listener.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_exit_fullscreen_observer.h b/third_party/blink/renderer/modules/xr/xr_exit_fullscreen_observer.h index a07dd2cd..cb55653 100644 --- a/third_party/blink/renderer/modules/xr/xr_exit_fullscreen_observer.h +++ b/third_party/blink/renderer/modules/xr/xr_exit_fullscreen_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_EXIT_FULLSCREEN_OBSERVER_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_EXIT_FULLSCREEN_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/events/native_event_listener.h"
diff --git a/third_party/blink/renderer/platform/DEPS b/third_party/blink/renderer/platform/DEPS index 6588c8be7..e62f44e 100644 --- a/third_party/blink/renderer/platform/DEPS +++ b/third_party/blink/renderer/platform/DEPS
@@ -4,64 +4,64 @@ "+base/allocator/buildflags.h", "+base/allocator/partition_allocator", "+base/android/build_info.h", + "+base/android/sys_utils.h", "+base/atomic_ref_count.h", - "+base/bind.h", - "+base/callback_helpers.h", "+base/bit_cast.h", "+base/command_line.h", "+base/compiler_specific.h", + "+base/containers/flat_map.h", "+base/cpu.h", - "+base/task/delay_policy.h", "+base/feature_list.h", "+base/files", - "+base/containers/flat_map.h", + "+base/functional/bind.h", + "+base/functional/callback_helpers.h", "+base/guid.h", "+base/json", + "+base/lazy_instance.h", "+base/location.h", "+base/logging.h", "+base/mac/mac_util.h", "+base/memory", - "+base/observer_list.h", - "+base/observer_list_threadsafe.h", - "+base/strings/string_number_conversions.h", - "+base/strings/string_piece.h", - "+base/strings/string_util.h", "+base/memory/shared_memory.h", "+base/message_loop/message_loop.h", - "+base/metrics/histogram.h", "+base/metrics/histogram_base.h", "+base/metrics/histogram_functions.h", "+base/metrics/histogram_macros.h", "+base/metrics/histogram_samples.h", + "+base/metrics/histogram.h", "+base/metrics/sparse_histogram.h", "+base/no_destructor.h", "+base/numerics/checked_math.h", "+base/numerics/safe_conversions.h", + "+base/observer_list_threadsafe.h", + "+base/observer_list.h", "+base/process/memory.h", "+base/rand_util.h", "+base/run_loop.h", "+base/strings/pattern.h", + "+base/strings/string_number_conversions.h", + "+base/strings/string_piece.h", "+base/strings/string_split.h", "+base/strings/string_util.h", + "+base/strings/string_util.h", "+base/strings/stringprintf.h", "+base/synchronization/waitable_event.h", - "+base/android/sys_utils.h", "+base/system/sys_info.h", "+base/task/common/lazy_now.h", + "+base/task/delay_policy.h", "+base/task/delayed_task_handle.h", "+base/task/sequence_manager/task_time_observer.h", "+base/test", "+base/test/fuzzed_data_provider.h", "+base/threading/platform_thread.h", - "+base/threading/thread_task_runner_handle.h", "+base/threading/thread_restrictions.h", + "+base/threading/thread_task_runner_handle.h", "+base/time", "+base/timer", "+base/trace_event", "+base/tracing", "+base/unguessable_token.h", "+base/values.h", - "+base/lazy_instance.h", "+net/base/filename_util.h", "+net/http/http_util.h", "+net/http/http_request_headers.h", @@ -88,8 +88,8 @@ "+ui/base/cursor/cursor.h", "+ui/base/prediction", "+ui/base/resource/resource_scale_factor.h", - "+ui/display/mojom", "+ui/display/display.h", + "+ui/display/mojom", "+ui/display/screen_info.h", "+ui/display/screen_infos.h", "+ui/gfx",
diff --git a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.cc b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.cc index 0b4bcb14..92e0db6 100644 --- a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.cc +++ b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h" #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "media/base/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_bus.h"
diff --git a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h index a85dbda..bb762b1 100644 --- a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h +++ b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_MEDIA_MULTI_CHANNEL_RESAMPLER_H_ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "media/base/multi_channel_resampler.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/bindings/callback_function_base.h b/third_party/blink/renderer/platform/bindings/callback_function_base.h index 0b7763a..ae69037 100644 --- a/third_party/blink/renderer/platform/bindings/callback_function_base.h +++ b/third_party/blink/renderer/platform/bindings/callback_function_base.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CALLBACK_FUNCTION_BASE_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CALLBACK_FUNCTION_BASE_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/public/common/scheduler/task_attribution_id.h" #include "third_party/blink/renderer/platform/bindings/name_client.h" #include "third_party/blink/renderer/platform/bindings/script_state.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string.cc b/third_party/blink/renderer/platform/bindings/parkable_string.cc index b7f9e6c7..e1f96c9d 100644 --- a/third_party/blink/renderer/platform/bindings/parkable_string.cc +++ b/third_party/blink/renderer/platform/bindings/parkable_string.cc
@@ -6,8 +6,8 @@ #include "base/allocator/partition_allocator/oom.h" #include "base/allocator/partition_allocator/partition_alloc.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc b/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc index 85f4cd0..1790527 100644 --- a/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc +++ b/third_party/blink/renderer/platform/bindings/parkable_string_manager.cc
@@ -7,7 +7,7 @@ #include <algorithm> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc index d1f00c8..12adccd 100644 --- a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc +++ b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc
@@ -5,7 +5,7 @@ #include <algorithm> #include <limits> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/rand_util.h" #include "base/run_loop.h" #include "base/task/thread_pool.h"
diff --git a/third_party/blink/renderer/platform/blob/blob_bytes_provider_test.cc b/third_party/blink/renderer/platform/blob/blob_bytes_provider_test.cc index 4dd1f7ce..13822120 100644 --- a/third_party/blink/renderer/platform/blob/blob_bytes_provider_test.cc +++ b/third_party/blink/renderer/platform/blob/blob_bytes_provider_test.cc
@@ -7,9 +7,9 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/files/file.h" #include "base/files/file_util.h" +#include "base/functional/bind.h" #include "base/ranges/algorithm.h" #include "base/run_loop.h" #include "base/test/task_environment.h"
diff --git a/third_party/blink/renderer/platform/blob/blob_data_test.cc b/third_party/blink/renderer/platform/blob/blob_data_test.cc index 367b9a6..c3e954b 100644 --- a/third_party/blink/renderer/platform/blob/blob_data_test.cc +++ b/third_party/blink/renderer/platform/blob/blob_data_test.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/platform/exported/resource_load_info_notifier_wrapper.cc b/third_party/blink/renderer/platform/exported/resource_load_info_notifier_wrapper.cc index d507c68..680492ef 100644 --- a/third_party/blink/renderer/platform/exported/resource_load_info_notifier_wrapper.cc +++ b/third_party/blink/renderer/platform/exported/resource_load_info_notifier_wrapper.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/platform/resource_load_info_notifier_wrapper.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc index 2cec01d..11e6b211 100644 --- a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc +++ b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc
@@ -20,9 +20,9 @@ #include "third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h" -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/ranges/algorithm.h"
diff --git a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc index 690268d..4356b71 100644 --- a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc +++ b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc
@@ -5,8 +5,8 @@ #include <array> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" #include "base/test/gmock_callback_support.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h index 500ec260..03e32b4 100644 --- a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h +++ b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_UNIQUE_NAME_LOOKUP_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_UNIQUE_NAME_LOOKUP_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/notreached.h" #include "build/build_config.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support.cc b/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support.cc index dc843dc..a874db67 100644 --- a/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support.cc +++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support.cc
@@ -9,8 +9,8 @@ #include <hb-ot.h> // clang-format on -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h" namespace {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h index a6f6db8..76b32775 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h
@@ -31,7 +31,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_SHAPER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_SHAPER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h" #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
diff --git a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image_test.cc b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image_test.cc index 4e130a0..0dfcfb7c 100644 --- a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image_test.cc +++ b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/test/null_task_runner.h" #include "base/test/task_environment.h" #include "components/viz/common/resources/release_callback.h"
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher.h b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher.h index 6901dceb..feacdcd7 100644 --- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher.h +++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_ANIMATION_WORKLET_MUTATOR_DISPATCHER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_ANIMATION_WORKLET_MUTATOR_DISPATCHER_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc index 645768f..4e18dc70 100644 --- a/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc +++ b/third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc
@@ -7,7 +7,7 @@ #include <utility> #include "base/barrier_closure.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_macros.h" #include "base/synchronization/waitable_event.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc b/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc index fde69cd7..7b880c1 100644 --- a/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc +++ b/third_party/blink/renderer/platform/graphics/begin_frame_provider.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/trace_event.h"
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc index 49f009e..e58d9d2 100644 --- a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc +++ b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
@@ -30,8 +30,8 @@ #include "third_party/blink/renderer/platform/graphics/bitmap_image.h" -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/numerics/safe_conversions.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/simple_test_tick_clock.h"
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.cc b/third_party/blink/renderer/platform/graphics/canvas_resource.cc index d2f2e89..2270e90e 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/trace_event/process_memory_dump.h" #include "base/trace_event/trace_event.h"
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc index 8b548fe..481d804 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/canvas_resource_provider.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/observer_list.h" #include "base/strings/stringprintf.h"
diff --git a/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc b/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc index acb2354..7acdfc9 100644 --- a/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc +++ b/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/trace_event/traced_value.h" #include "base/types/optional_util.h" #include "cc/paint/paint_flags.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h index 2be95fd..24865ba0 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h +++ b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GPU_SHARED_GPU_CONTEXT_H_ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h" #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.h b/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.h index 69fdac3..062fe78 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.h +++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_mailbox_texture.h
@@ -7,7 +7,7 @@ #include <dawn/webgpu.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "gpu/command_buffer/common/mailbox.h" #include "gpu/command_buffer/common/sync_token.h"
diff --git a/third_party/blink/renderer/platform/graphics/image_decoding_store.cc b/third_party/blink/renderer/platform/graphics/image_decoding_store.cc index a4b9fb5e..42829345 100644 --- a/third_party/blink/renderer/platform/graphics/image_decoding_store.cc +++ b/third_party/blink/renderer/platform/graphics/image_decoding_store.cc
@@ -27,7 +27,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/synchronization/lock.h" #include "third_party/blink/renderer/platform/graphics/image_frame_generator.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc index c38d4924..034c326 100644 --- a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc +++ b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_artifact.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_controller_test.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h index 299319f..df9f612 100644 --- a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h +++ b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
@@ -5,9 +5,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_RASTER_INVALIDATOR_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_RASTER_INVALIDATOR_H_ -#include "base/callback.h" #include "base/check_op.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/graphics/compositing/chunk_to_layer_mapper.h" #include "third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator_test.cc b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator_test.cc index 47094267..cdf068a 100644 --- a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator_test.cc +++ b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator_test.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h" #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc index b7680302..5134d35 100644 --- a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc +++ b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc
@@ -7,7 +7,7 @@ #include <utility> #include "base/barrier_closure.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/synchronization/waitable_event.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher_test.cc b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher_test.cc index 840c30d..ff27911 100644 --- a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher_test.cc +++ b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "cc/paint/paint_worklet_job.h"
diff --git a/third_party/blink/renderer/platform/graphics/rw_buffer.h b/third_party/blink/renderer/platform/graphics/rw_buffer.h index 6e9a3b1..b40756a 100644 --- a/third_party/blink/renderer/platform/graphics/rw_buffer.h +++ b/third_party/blink/renderer/platform/graphics/rw_buffer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_RW_BUFFER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_RW_BUFFER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.cc b/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.cc index f20257e..5c75212 100644 --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.cc +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "components/viz/common/resources/resource_format_utils.h"
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h index 0566b3f6..38298e51 100644 --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_STATIC_BITMAP_IMAGE_TO_VIDEO_FRAME_COPIER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_STATIC_BITMAP_IMAGE_TO_VIDEO_FRAME_COPIER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_image_util_test.cc b/third_party/blink/renderer/platform/graphics/video_frame_image_util_test.cc index 27410b9..1a4ba4be 100644 --- a/third_party/blink/renderer/platform/graphics/video_frame_image_util_test.cc +++ b/third_party/blink/renderer/platform/graphics/video_frame_image_util_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/graphics/video_frame_image_util.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/test/task_environment.h" #include "build/build_config.h" #include "components/viz/common/gpu/raster_context_provider.h"
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_resource_provider.cc b/third_party/blink/renderer/platform/graphics/video_frame_resource_provider.cc index 5e5ff4e4..9a645ae 100644 --- a/third_party/blink/renderer/platform/graphics/video_frame_resource_provider.cc +++ b/third_party/blink/renderer/platform/graphics/video_frame_resource_provider.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/platform/graphics/video_frame_resource_provider.h" #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/threading/thread_restrictions.h" #include "base/trace_event/trace_event.h" #include "components/viz/client/client_resource_provider.h"
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_sink_bundle.h b/third_party/blink/renderer/platform/graphics/video_frame_sink_bundle.h index 3766aca4..88b870f4 100644 --- a/third_party/blink/renderer/platform/graphics/video_frame_sink_bundle.h +++ b/third_party/blink/renderer/platform/graphics/video_frame_sink_bundle.h
@@ -7,7 +7,7 @@ #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/types/pass_key.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc index 92d678f7..4b102c08 100644 --- a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc +++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
@@ -6,9 +6,9 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_macros.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc b/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc index b522ad3a..203c491 100644 --- a/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc +++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter_test.cc
@@ -8,8 +8,8 @@ #include <tuple> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.h b/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.h index 3e0a486..dace283b 100644 --- a/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.h +++ b/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_WEB_GRAPHICS_CONTEXT_3D_VIDEO_FRAME_POOL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_WEB_GRAPHICS_CONTEXT_3D_VIDEO_FRAME_POOL_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "components/viz/common/resources/resource_format.h" #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/heap/cross_thread_handle_internal.h b/third_party/blink/renderer/platform/heap/cross_thread_handle_internal.h index e2578b6..1e5d14da 100644 --- a/third_party/blink/renderer/platform/heap/cross_thread_handle_internal.h +++ b/third_party/blink/renderer/platform/heap/cross_thread_handle_internal.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_CROSS_THREAD_HANDLE_INTERNAL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_CROSS_THREAD_HANDLE_INTERNAL_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/threading/platform_thread.h" #include "third_party/blink/renderer/platform/heap/heap_buildflags.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_test_objects.h b/third_party/blink/renderer/platform/heap/heap_test_objects.h index bb54f4d..ba46351 100644 --- a/third_party/blink/renderer/platform/heap/heap_test_objects.h +++ b/third_party/blink/renderer/platform/heap/heap_test_objects.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_HEAP_TEST_OBJECTS_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_HEAP_TEST_OBJECTS_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/member.h" #include "third_party/blink/renderer/platform/heap/visitor.h"
diff --git a/third_party/blink/renderer/platform/heap/test/incremental_marking_test.cc b/third_party/blink/renderer/platform/heap/test/incremental_marking_test.cc index adc6d1c..66aab1a 100644 --- a/third_party/blink/renderer/platform/heap/test/incremental_marking_test.cc +++ b/third_party/blink/renderer/platform/heap/test/incremental_marking_test.cc
@@ -4,7 +4,7 @@ #include <initializer_list> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/scoped_feature_list.h" #include "build/buildflag.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/platform/heap/test/write_barrier_perftest.cc b/third_party/blink/renderer/platform/heap/test/write_barrier_perftest.cc index 1ba08b0..4b70b5d 100644 --- a/third_party/blink/renderer/platform/heap/test/write_barrier_perftest.cc +++ b/third_party/blink/renderer/platform/heap/test/write_barrier_perftest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/callback.h" +#include "base/functional/callback.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/perf/perf_result_reporter.h" #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
diff --git a/third_party/blink/renderer/platform/heap/thread_state.cc b/third_party/blink/renderer/platform/heap/thread_state.cc index a89879c..45f9338 100644 --- a/third_party/blink/renderer/platform/heap/thread_state.cc +++ b/third_party/blink/renderer/platform/heap/thread_state.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/heap/thread_state.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "gin/public/v8_platform.h" #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
diff --git a/third_party/blink/renderer/platform/heap/thread_state.h b/third_party/blink/renderer/platform/heap/thread_state.h index 27de314..78c38b4 100644 --- a/third_party/blink/renderer/platform/heap/thread_state.h +++ b/third_party/blink/renderer/platform/heap/thread_state.h
@@ -5,8 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_H_ -#include "base/callback_forward.h" #include "base/compiler_specific.h" +#include "base/functional/callback_forward.h" #include "build/build_config.h" #include "third_party/blink/renderer/platform/heap/forward.h" #include "third_party/blink/renderer/platform/heap/thread_state_storage.h"
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.cc b/third_party/blink/renderer/platform/loader/cors/cors.cc index 72e2252..2c71eb73 100644 --- a/third_party/blink/renderer/platform/loader/cors/cors.cc +++ b/third_party/blink/renderer/platform/loader/cors/cors.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "net/http/http_util.h" #include "services/network/public/cpp/cors/cors.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc index 8122c12a..9ba75034 100644 --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
@@ -25,7 +25,7 @@ #include <utility> #include "base/auto_reset.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.h b/third_party/blink/renderer/platform/loader/fetch/resource.h index 91ca810..5d99c79 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource.h
@@ -26,7 +26,7 @@ #include <memory> #include "base/auto_reset.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "mojo/public/cpp/base/big_buffer.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc index f355c3f2..5d7c224 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -32,8 +32,8 @@ #include <algorithm> #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader_defer_loading_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader_defer_loading_test.cc index d397000..a853423 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader_defer_loading_test.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader_defer_loading_test.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/loader/fetch/resource_loader.h" -#include "base/bind.h" #include "base/debug/stack_trace.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "mojo/public/cpp/base/big_buffer.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc index 23b48dd..ff688da 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/synchronization/waitable_event.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc index ff773e80..b16d688 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.cc
@@ -6,10 +6,10 @@ #include <iterator> -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/queue.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/trace_event.h" #include "mojo/public/cpp/system/data_pipe_drainer.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h index 9d7ae428..478a585 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h
@@ -8,7 +8,7 @@ #include <stdint.h> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc index 6581cac..9ffbca0 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_functions.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader_unittest.cc index 0a368de..74e65c4e 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader_unittest.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/loader/fetch/url_loader/navigation_body_loader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h" #include "base/test/scoped_feature_list.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc index 58063dc..bad39b4c 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc
@@ -6,8 +6,8 @@ #include <string> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/synchronization/waitable_event.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc index 0639e43..751c0c7 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context_unittest.cc
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender.cc index 4f566a90..281ac5b 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_resource_request_sender.cc
@@ -7,10 +7,10 @@ #include <utility> #include "base/atomic_sequence_num.h" -#include "base/bind.h" #include "base/compiler_specific.h" #include "base/debug/alias.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/rand_util.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc index 8fb8527f..a4bd900 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc
@@ -12,12 +12,12 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" #include "base/check_op.h" #include "base/command_line.h" #include "base/feature_list.h" #include "base/files/file_path.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/notreached.h" #include "base/sequence_checker.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/renderer/platform/loader/internet_disconnected_web_url_loader.cc b/third_party/blink/renderer/platform/loader/internet_disconnected_web_url_loader.cc index bff6c268..879d41c 100644 --- a/third_party/blink/renderer/platform/loader/internet_disconnected_web_url_loader.cc +++ b/third_party/blink/renderer/platform/loader/internet_disconnected_web_url_loader.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/platform/internet_disconnected_web_url_loader.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "services/network/public/cpp/resource_request.h" #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc b/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc index 1e13a2ef..1e2f8739 100644 --- a/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc +++ b/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/task/sequenced_task_runner.h" #include "third_party/blink/renderer/platform/wtf/wtf.h"
diff --git a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h index 6d4f5ac..5ffa2c4a6 100644 --- a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h +++ b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h
@@ -7,8 +7,8 @@ #include <stdint.h> -#include "base/callback.h" #include "base/containers/circular_deque.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/time/tick_clock.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc index b029767..3df32e89 100644 --- a/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc +++ b/third_party/blink/renderer/platform/media/buffered_data_source_host_impl_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/simple_test_tick_clock.h" #include "base/time/time.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/platform/media/cdm_session_adapter.cc b/third_party/blink/renderer/platform/media/cdm_session_adapter.cc index 58f6dae..ac94c2a9 100644 --- a/third_party/blink/renderer/platform/media/cdm_session_adapter.cc +++ b/third_party/blink/renderer/platform/media/cdm_session_adapter.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/containers/contains.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h"
diff --git a/third_party/blink/renderer/platform/media/key_system_config_selector.cc b/third_party/blink/renderer/platform/media/key_system_config_selector.cc index 42b8592..ba7c5bc 100644 --- a/third_party/blink/renderer/platform/media/key_system_config_selector.cc +++ b/third_party/blink/renderer/platform/media/key_system_config_selector.cc
@@ -7,7 +7,7 @@ #include <stddef.h> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_util.h"
diff --git a/third_party/blink/renderer/platform/media/key_system_config_selector_unittest.cc b/third_party/blink/renderer/platform/media/key_system_config_selector_unittest.cc index d06dd42..3f7af0a2 100644 --- a/third_party/blink/renderer/platform/media/key_system_config_selector_unittest.cc +++ b/third_party/blink/renderer/platform/media/key_system_config_selector_unittest.cc
@@ -7,7 +7,7 @@ #include <string> #include <vector> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/pattern.h" #include "build/build_config.h" #include "media/base/cdm_config.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer.cc b/third_party/blink/renderer/platform/media/multi_buffer.cc index cd99c97..0aa9a7cd 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc index 7d14fad..5ba61a3 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/adapters.h" #include "base/cxx17_backports.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/numerics/safe_conversions.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.h b/third_party/blink/renderer/platform/media/multi_buffer_data_source.h index 6830850..29ca8ef 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.h +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.h
@@ -9,7 +9,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "media/base/cross_origin_data_source.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source_unittest.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source_unittest.cc index d2746b13..3390a93 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source_unittest.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source_unittest.cc
@@ -10,7 +10,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_reader.cc b/third_party/blink/renderer/platform/media/multi_buffer_reader.cc index 329d4f4..7796c2a5 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_reader.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_reader.cc
@@ -8,8 +8,8 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "net/base/net_errors.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_reader.h b/third_party/blink/renderer/platform/media/multi_buffer_reader.h index 4a1650b..4ee745a 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_reader.h +++ b/third_party/blink/renderer/platform/media/multi_buffer_reader.h
@@ -7,7 +7,7 @@ #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "third_party/blink/public/platform/media/multi_buffer.h"
diff --git a/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc b/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc index 1d7049f..2dbd288 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_unittest.cc
@@ -11,9 +11,9 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/circular_deque.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/new_session_cdm_result_promise.h b/third_party/blink/renderer/platform/media/new_session_cdm_result_promise.h index 012640e..bea9f87 100644 --- a/third_party/blink/renderer/platform/media/new_session_cdm_result_promise.h +++ b/third_party/blink/renderer/platform/media/new_session_cdm_result_promise.h
@@ -9,7 +9,7 @@ #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/base/cdm_promise.h" #include "third_party/blink/public/platform/web_content_decryption_module_result.h"
diff --git a/third_party/blink/renderer/platform/media/power_status_helper.h b/third_party/blink/renderer/platform/media/power_status_helper.h index 858fa94..556b08e 100644 --- a/third_party/blink/renderer/platform/media/power_status_helper.h +++ b/third_party/blink/renderer/platform/media/power_status_helper.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIA_POWER_STATUS_HELPER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIA_POWER_STATUS_HELPER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/sequence_checker.h" #include "base/time/time.h" #include "media/base/video_codecs.h"
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc index 9971a56..477da59 100644 --- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc +++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
@@ -7,8 +7,8 @@ #include <stddef.h> #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.h b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.h index 39a79f09..0ec0eb3 100644 --- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.h +++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.h
@@ -10,7 +10,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "third_party/blink/public/platform/media/multi_buffer.h"
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider_unittest.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider_unittest.cc index feae8d86..c95f7d4 100644 --- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider_unittest.cc +++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider_unittest.cc
@@ -9,8 +9,8 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/format_macros.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h"
diff --git a/third_party/blink/renderer/platform/media/smoothness_helper.cc b/third_party/blink/renderer/platform/media/smoothness_helper.cc index 4909c6d..93f01228 100644 --- a/third_party/blink/renderer/platform/media/smoothness_helper.cc +++ b/third_party/blink/renderer/platform/media/smoothness_helper.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/media/smoothness_helper.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "base/unguessable_token.h"
diff --git a/third_party/blink/renderer/platform/media/text_track_impl.cc b/third_party/blink/renderer/platform/media/text_track_impl.cc index d33d8343c..b5cd0c5 100644 --- a/third_party/blink/renderer/platform/media/text_track_impl.cc +++ b/third_party/blink/renderer/platform/media/text_track_impl.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "media/base/bind_to_current_loop.h"
diff --git a/third_party/blink/renderer/platform/media/url_index.cc b/third_party/blink/renderer/platform/media/url_index.cc index fa203d69..6fc7694c 100644 --- a/third_party/blink/renderer/platform/media/url_index.cc +++ b/third_party/blink/renderer/platform/media/url_index.cc
@@ -7,8 +7,8 @@ #include <set> #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc b/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc index 26d67843..4333d74e 100644 --- a/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc +++ b/third_party/blink/renderer/platform/media/video_decode_stats_reporter.cc
@@ -7,7 +7,7 @@ #include <cmath> #include <limits> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h" #include "media/capabilities/bucket_utility.h"
diff --git a/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc b/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc index 4c8f2b9..3bc9b66 100644 --- a/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc +++ b/third_party/blink/renderer/platform/media/video_decode_stats_reporter_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_refptr.h"
diff --git a/third_party/blink/renderer/platform/media/video_frame_compositor.cc b/third_party/blink/renderer/platform/media/video_frame_compositor.cc index 8a6882e9..9cfe73c 100644 --- a/third_party/blink/renderer/platform/media/video_frame_compositor.cc +++ b/third_party/blink/renderer/platform/media/video_frame_compositor.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/synchronization/waitable_event.h" #include "base/task/bind_post_task.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc b/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc index 94a70762..84e793d 100644 --- a/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc +++ b/third_party/blink/renderer/platform/media/video_frame_compositor_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/public/platform/media/video_frame_compositor.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h"
diff --git a/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc b/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc index 996953e..e1c1f15 100644 --- a/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc +++ b/third_party/blink/renderer/platform/media/watch_time_reporter_unittest.cc
@@ -4,8 +4,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/media/web_content_decryption_module_access_impl.cc b/third_party/blink/renderer/platform/media/web_content_decryption_module_access_impl.cc index 14cc9cf6..d160b9c6 100644 --- a/third_party/blink/renderer/platform/media/web_content_decryption_module_access_impl.cc +++ b/third_party/blink/renderer/platform/media/web_content_decryption_module_access_impl.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/platform/media/web_encrypted_media_client_impl.h"
diff --git a/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.cc b/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.cc index 845220fc..3af2b95 100644 --- a/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.cc +++ b/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/notreached.h" #include "base/numerics/safe_conversions.h" #include "base/strings/string_util.h"
diff --git a/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.h b/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.h index 1312f810..507b9f1 100644 --- a/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.h +++ b/third_party/blink/renderer/platform/media/web_content_decryption_module_impl.h
@@ -11,7 +11,7 @@ #include <memory> #include <string> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "media/base/cdm_config.h" #include "third_party/blink/public/platform/web_content_decryption_module.h"
diff --git a/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.cc b/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.cc index 7d0ce74..47545e4 100644 --- a/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.cc +++ b/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.cc
@@ -6,9 +6,9 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" #include "base/notreached.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.h b/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.h index 501258c..48e5b875 100644 --- a/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.h +++ b/third_party/blink/renderer/platform/media/web_content_decryption_module_session_impl.h
@@ -11,7 +11,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/platform/media/web_encrypted_media_client_impl.cc b/third_party/blink/renderer/platform/media/web_encrypted_media_client_impl.cc index 577268a..6530ca8 100644 --- a/third_party/blink/renderer/platform/media/web_encrypted_media_client_impl.cc +++ b/third_party/blink/renderer/platform/media/web_encrypted_media_client_impl.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_functions.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h"
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc index 8849b5d..83231b48 100644 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -11,14 +11,14 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/check.h" #include "base/command_line.h" #include "base/debug/alias.h" #include "base/debug/crash_logging.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_functions.h"
diff --git a/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc b/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc index 32ec166..d66c7a1 100644 --- a/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc +++ b/third_party/blink/renderer/platform/media/web_source_buffer_impl.cc
@@ -9,9 +9,9 @@ #include <cmath> #include <limits> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/strings/string_number_conversions.h" #include "media/base/media_tracks.h" #include "media/base/stream_parser.h"
diff --git a/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl.cc b/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl.cc index 0f7726c1..7385f7a 100644 --- a/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl.cc +++ b/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl.cc
@@ -7,8 +7,8 @@ #include <atomic> #include <utility> -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h"
diff --git a/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl_test.cc b/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl_test.cc index 11dcc8f..0cabf24 100644 --- a/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl_test.cc +++ b/third_party/blink/renderer/platform/media/webaudiosourceprovider_impl_test.cc
@@ -4,7 +4,7 @@ #include <stddef.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" #include "media/base/audio_glitch_info.h"
diff --git a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.cc b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.cc index 7999c51e..3084947 100644 --- a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.cc +++ b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/timer/timer.h" #include "media/base/audio_processor_controls.h"
diff --git a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h index b744d8c..bba85c4 100644 --- a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h +++ b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_AUDIO_SERVICE_AUDIO_PROCESSOR_PROXY_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_AUDIO_SERVICE_AUDIO_PROCESSOR_PROXY_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy_test.cc b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy_test.cc index f0b4011..ebcdbe5 100644 --- a/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy_test.cc +++ b/third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy_test.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/mediastream/audio_service_audio_processor_proxy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/task/thread_pool.h" #include "base/test/task_environment.h"
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_audio_source.cc b/third_party/blink/renderer/platform/mediastream/media_stream_audio_source.cc index b9d0cd0..ce9fc12f 100644 --- a/third_party/blink/renderer/platform/mediastream/media_stream_audio_source.cc +++ b/third_party/blink/renderer/platform/mediastream/media_stream_audio_source.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/strings/stringprintf.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h b/third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h index c6f74d7..8c7edab 100644 --- a/third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h +++ b/third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h
@@ -8,7 +8,7 @@ #include <memory> #include "base/atomicops.h" -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_track_platform.h b/third_party/blink/renderer/platform/mediastream/media_stream_track_platform.h index a405611..5bf6a736 100644 --- a/third_party/blink/renderer/platform/mediastream/media_stream_track_platform.h +++ b/third_party/blink/renderer/platform/mediastream/media_stream_track_platform.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_MEDIA_STREAM_TRACK_PLATFORM_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_MEDIA_STREAM_TRACK_PLATFORM_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h" #include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
diff --git a/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc b/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc index c2fe6bb..2a6e507f 100644 --- a/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc +++ b/third_party/blink/renderer/platform/mediastream/webaudio_media_stream_source.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
diff --git a/third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h b/third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h index 67ef716..bcc6c1f 100644 --- a/third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h +++ b/third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver_set.h
@@ -7,7 +7,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/associated_receiver_set.h"
diff --git a/third_party/blink/renderer/platform/network/network_state_notifier_test.cc b/third_party/blink/renderer/platform/network/network_state_notifier_test.cc index a378b05e..7430ef3a 100644 --- a/third_party/blink/renderer/platform/network/network_state_notifier_test.cc +++ b/third_party/blink/renderer/platform/network/network_state_notifier_test.cc
@@ -30,7 +30,7 @@ #include "third_party/blink/renderer/platform/network/network_state_notifier.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/platform/p2p/empty_network_manager.cc b/third_party/blink/renderer/platform/p2p/empty_network_manager.cc index bc6ab36f..2504ae0 100644 --- a/third_party/blink/renderer/platform/p2p/empty_network_manager.cc +++ b/third_party/blink/renderer/platform/p2p/empty_network_manager.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/p2p/empty_network_manager.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/location.h" #include "third_party/blink/renderer/platform/p2p/ipc_network_manager.h"
diff --git a/third_party/blink/renderer/platform/p2p/host_address_request.h b/third_party/blink/renderer/platform/p2p/host_address_request.h index 8cb8089..f387510 100644 --- a/third_party/blink/renderer/platform/p2p/host_address_request.h +++ b/third_party/blink/renderer/platform/p2p/host_address_request.h
@@ -7,7 +7,7 @@ #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/threading/thread_checker.h" #include "net/base/ip_address.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/metronome_source_test.cc b/third_party/blink/renderer/platform/peerconnection/metronome_source_test.cc index c9443afe..5ad9971 100644 --- a/third_party/blink/renderer/platform/peerconnection/metronome_source_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/metronome_source_test.cc
@@ -5,7 +5,7 @@ #include "third_party/webrtc_overrides/metronome_source.h" #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h" #include "base/notreached.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.h b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.h index 389a9bd3..d492d1b0 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.h
@@ -10,7 +10,7 @@ #include <memory> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer.h b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer.h index 867b4b9..dbe1783 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer.h
@@ -10,7 +10,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_stats.h b/third_party/blink/renderer/platform/peerconnection/rtc_stats.h index e6b4204..ad979d1 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_stats.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_stats.h
@@ -5,8 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_STATS_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_RTC_STATS_H_ -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_vector.h" #include "third_party/blink/renderer/platform/allow_discouraged_type.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc index dc71fe23..61742c0 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc
@@ -9,9 +9,9 @@ #include <functional> #include <utility> -#include "base/callback_helpers.h" #include "base/containers/contains.h" #include "base/feature_list.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc index acf0f1ed..eac31ed 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc
@@ -8,8 +8,8 @@ #include <stdint.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc index a9cfe4f..100635be 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc
@@ -9,9 +9,9 @@ #include <utility> #include "base/atomic_ref_count.h" -#include "base/callback_helpers.h" #include "base/containers/circular_deque.h" #include "base/feature_list.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h index 03b301a..3443f71 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h
@@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/metrics/single_sample_metrics.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc index f327dda..fbc1813 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc
@@ -8,8 +8,8 @@ #include <stdint.h> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc index 76510c5..8d29f8b0 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc
@@ -8,9 +8,9 @@ #include <numeric> #include <vector> -#include "base/callback_helpers.h" #include "base/command_line.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/unsafe_shared_memory_region.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc index fa4ce0b..b8dd863 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc
@@ -4,7 +4,7 @@ #include <stdint.h> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/logging.h" #include "base/notreached.h" #include "base/synchronization/waitable_event.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/stats_collecting_encoder.h b/third_party/blink/renderer/platform/peerconnection/stats_collecting_encoder.h index 14d5a289..96e5b5f 100644 --- a/third_party/blink/renderer/platform/peerconnection/stats_collecting_encoder.h +++ b/third_party/blink/renderer/platform/peerconnection/stats_collecting_encoder.h
@@ -8,7 +8,7 @@ #include <algorithm> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/thread_annotations.h" #include "base/time/time.h" #include "media/base/video_codecs.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/stats_collector.h b/third_party/blink/renderer/platform/peerconnection/stats_collector.h index 8f6c6b3..f8ce848 100644 --- a/third_party/blink/renderer/platform/peerconnection/stats_collector.h +++ b/third_party/blink/renderer/platform/peerconnection/stats_collector.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_STATS_COLLECTOR_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_STATS_COLLECTOR_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "media/base/video_codecs.h" #include "third_party/blink/renderer/platform/peerconnection/linear_histogram.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink.cc index 2f39ed9..cd9f2ed 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink.cc +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_audio_sink.cc
@@ -6,9 +6,9 @@ #include <limits> -#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/containers/contains.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/ranges/algorithm.h" #include "base/strings/stringprintf.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler.h b/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler.h index 948463e..e9e1e15a 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler.h +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/platform/peerconnection/audio_codec_factory.h" #include "third_party/blink/renderer/platform/peerconnection/video_codec_factory.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler_test.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler_test.cc index 3df174ce..95db2cc 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_decoding_info_handler_test.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/platform/web_string.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler.h b/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler.h index e253500..6706bbb 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler.h +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/platform/peerconnection/audio_codec_factory.h" #include "third_party/blink/renderer/platform/peerconnection/video_codec_factory.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler_test.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler_test.cc index 07d820d..a5d6f62 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_encoding_info_handler_test.cc
@@ -8,8 +8,8 @@ #include <utility> #include <vector> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/platform/web_string.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc index 0ea5040..bee8a8a8 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/trace_event/trace_event.h" #include "base/types/optional_util.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h index 8565fc84..a10de69 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h
@@ -5,8 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_WEBRTC_VIDEO_TRACK_SOURCE_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_PEERCONNECTION_WEBRTC_VIDEO_TRACK_SOURCE_H_ -#include "base/callback_forward.h" #include "base/feature_list.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/threading/thread_checker.h" #include "media/base/video_frame_pool.h"
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc index 1fc10582..cd7baa7a 100644 --- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc
@@ -4,7 +4,7 @@ #include <algorithm> -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/strings/strcat.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 1ba17cc3a..7b6f0fe 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2079,9 +2079,10 @@ { name: "PartitionedCookies", origin_trial_feature_name: "PartitionedCookies", - status: "experimental", - origin_trial_feature_name: "PartitionedCookies", - origin_trial_allows_third_party: true, + // No status because this blink runtime feature doesn't work by itself. + // It's controlled by the corresponding Chromium feature, + // net::features::kPartitionedCookies, which needs to be enabled to make + // the whole feature work. }, // This is to add an option to enable the Reveal button on password inputs while waiting ::reveal gets standardized. { @@ -2830,6 +2831,12 @@ origin_trial_allows_third_party: true, public: true, }, + { + name: "TopicsXHR", + origin_trial_feature_name: "PrivacySandboxAdsAPIs", + origin_trial_allows_third_party: true, + public: true, + }, // https://crbug.com/1314739 { name: "TouchActionEffectiveAtPointerDown", @@ -3326,6 +3333,13 @@ name: "WindowDefaultStatus", base_feature: "WindowDefaultStatus", }, + // Allows use of `window-management` as an alias for `window-placement` + // permission. See crbug.com/1328581 + { + name: "WindowManagementPermissionAlias", + status: "experimental", + base_feature: "WindowManagementPermissionAlias", + }, // Allows sites to request fullscreen when the set of screens change. { name: "WindowPlacementFullscreenOnScreensChange",
diff --git a/third_party/blink/renderer/platform/scheduler/common/auto_advancing_virtual_time_domain_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/auto_advancing_virtual_time_domain_unittest.cc index 6e0a0ff82..d4f50ac 100644 --- a/third_party/blink/renderer/platform/scheduler/common/auto_advancing_virtual_time_domain_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/auto_advancing_virtual_time_domain_unittest.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/platform/scheduler/common/auto_advancing_virtual_time_domain.h" #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/message_loop/message_pump.h" #include "base/run_loop.h" #include "base/task/sequence_manager/sequence_manager.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc b/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc index 9f8d737..945a02ee 100644 --- a/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "third_party/blink/renderer/platform/bindings/source_location.h" #include "v8/include/v8-isolate.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc b/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc index 87dbde5..b8cdaa85 100644 --- a/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc +++ b/third_party/blink/renderer/platform/scheduler/common/idle_helper.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/scheduler/common/idle_helper.h" -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequence_manager/sequence_manager.h" #include "base/task/sequence_manager/task_queue.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc index 34624d5d..a96979c 100644 --- a/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/idle_helper_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/run_loop.h" #include "base/task/common/lazy_now.h" #include "base/task/sequence_manager/sequence_manager.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/scheduler_helper_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/scheduler_helper_unittest.cc index 3da5a34..26bbf61f 100644 --- a/third_party/blink/renderer/platform/scheduler/common/scheduler_helper_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/scheduler_helper_unittest.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/scheduler/common/scheduler_helper.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/common/lazy_now.h" #include "base/task/sequence_manager/task_queue.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/single_thread_idle_task_runner.h b/third_party/blink/renderer/platform/scheduler/common/single_thread_idle_task_runner.h index e4b0465..d8c39d97 100644 --- a/third_party/blink/renderer/platform/scheduler/common/single_thread_idle_task_runner.h +++ b/third_party/blink/renderer/platform/scheduler/common/single_thread_idle_task_runner.h
@@ -8,8 +8,8 @@ #include <map> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h index 739c1f3b..0b0d123 100644 --- a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h +++ b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_COMMON_THREAD_LOAD_TRACKER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_COMMON_THREAD_LOAD_TRACKER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc index f8b51ee..9bed5fe 100644 --- a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker_unittest.cc
@@ -1,6 +1,6 @@ #include "third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/time/time.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h index 575fc69..f0eb5af 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_COMMON_THROTTLING_BUDGET_POOL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_COMMON_THROTTLING_BUDGET_POOL_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/common/lazy_now.h" #include "base/time/time.h" #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc index 649da693..71fee8d 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool_unittest.cc
@@ -8,7 +8,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" #include "base/test/null_task_runner.h" #include "base/test/simple_test_tick_clock.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler.cc index b5d08db..340a8403 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler.cc +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler.cc
@@ -8,8 +8,8 @@ #include "base/debug/stack_trace.h" -#include "base/bind.h" #include "base/check_op.h" +#include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/task/common/lazy_now.h" #include "base/task/task_features.h"
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc index c9db96e9..a967d98 100644 --- a/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc
@@ -8,8 +8,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/common/lazy_now.h" #include "base/task/sequence_manager/sequence_manager.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.cc b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.cc index 519b196f..f706ffd 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" namespace blink {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h index 42a16f1..3613e1b 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_DEADLINE_TASK_RUNNER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_DEADLINE_TASK_RUNNER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc index 88c2611f..0428b4ee 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/task_environment.h" #include "base/time/tick_clock.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc index 2e916d76..a090c85 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
@@ -9,9 +9,9 @@ #include <string> #include <vector> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/metrics/field_trial_param_associator.h" #include "base/metrics/field_trial_params.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc index e6e3f6c..8398b07 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/callback.h" #include "base/check.h" +#include "base/functional/callback.h" #include "base/trace_event/traced_value.h" #include "third_party/blink/renderer/platform/scheduler/common/tracing_helper.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h index d1f2312..907d56b 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h
@@ -8,7 +8,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc index 1ab058a..8564230 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" #include "base/task/sequence_manager/task_queue.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc index 852e86c..7d1b62c 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/idle_time_estimator_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequence_manager/sequence_manager.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc index ec74a9d..1fc8c08 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_metrics_helper.h" -#include "base/bind.h" #include "base/cpu_reduction_experiment.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_conversions.h" #include "third_party/blink/public/platform/scheduler/web_renderer_process_type.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc index fbab19e..c095166 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
@@ -9,9 +9,9 @@ #include <type_traits> #include <utility> -#include "base/bind.h" #include "base/check_op.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc index 30a025d..74677df6 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
@@ -8,9 +8,9 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/memory/ptr_util.h" #include "base/metrics/field_trial_params.h" #include "base/run_loop.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc index e3fdaf7..767952a 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/task/common/scoped_defer_task_posting.h" #include "base/task/single_thread_task_runner.h" #include "base/trace_event/base_tracing.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc index 4f550958..f0d8074 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_unittest.cc
@@ -8,7 +8,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/message_loop/message_pump.h" #include "base/message_loop/message_pump_type.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc index dcd459ec..97eb12f 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
@@ -6,9 +6,9 @@ #include <memory> -#include "base/bind.h" #include "base/check_op.h" #include "base/debug/stack_trace.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" #include "base/notreached.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc index dc2aab0..2b42576 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
@@ -6,8 +6,8 @@ #include <memory> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_param_associator.h"
diff --git a/third_party/blink/renderer/platform/scheduler/public/event_loop.h b/third_party/blink/renderer/platform/scheduler/public/event_loop.h index 5e714d3f..7c0f2bb 100644 --- a/third_party/blink/renderer/platform/scheduler/public/event_loop.h +++ b/third_party/blink/renderer/platform/scheduler/public/event_loop.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h index fa6b6fc..84abdcf 100644 --- a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h +++ b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_FRAME_OR_WORKER_SCHEDULER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_FRAME_OR_WORKER_SCHEDULER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/types/strong_alias.h"
diff --git a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h index 17c68fa..2fe626a4 100644 --- a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h +++ b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_POST_CANCELLABLE_TASK_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_POST_CANCELLABLE_TASK_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/platform/scheduler/public/thread.h b/third_party/blink/renderer/platform/scheduler/public/thread.h index 9bc4349a..abc61713c 100644 --- a/third_party/blink/renderer/platform/scheduler/public/thread.h +++ b/third_party/blink/renderer/platform/scheduler/public/thread.h
@@ -26,7 +26,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_THREAD_H_ #include <stdint.h> -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/task/task_observer.h" #include "base/threading/thread.h"
diff --git a/third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h b/third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h index 76a96bbf..2ce92c5a 100644 --- a/third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h +++ b/third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_VIRTUAL_TIME_CONTROLLER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_VIRTUAL_TIME_CONTROLLER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h"
diff --git a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.cc b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.cc index 01e9f57..793edbf 100644 --- a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.cc +++ b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h index 362c28e7e..06257a9 100644 --- a/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h +++ b/third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_TEST_FAKE_TASK_RUNNER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_TEST_FAKE_TASK_RUNNER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "base/time/tick_clock.h"
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/simple_thread_impl.h b/third_party/blink/renderer/platform/scheduler/test/fuzzer/simple_thread_impl.h index 5b3046e..aee119a 100644 --- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/simple_thread_impl.h +++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/simple_thread_impl.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_TEST_FUZZER_SIMPLE_THREAD_IMPL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_TEST_FUZZER_SIMPLE_THREAD_IMPL_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/synchronization/waitable_event.h" #include "base/threading/simple_thread.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.cc b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.cc index 10f7062b..e69f1a8 100644 --- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.cc +++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.cc
@@ -2,7 +2,7 @@ #include <algorithm> -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h" #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/simple_thread_impl.h" #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler_impl.cc index 07b53c4..b1395eb 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler_impl.cc
@@ -7,7 +7,7 @@ #include <memory> #include <utility> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/task/sequence_manager/task_queue.h" #include "base/task/single_thread_task_runner.h" #include "base/threading/thread.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc index 19ae6ab..27c72b7 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h" #include <memory> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/memory/scoped_refptr.h" #include "base/message_loop/message_pump.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h index 15f2efb3..b2c99685 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_WORKER_NON_MAIN_THREAD_IMPL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_WORKER_NON_MAIN_THREAD_IMPL_H_ -#include "base/callback_forward.h" +#include "base/functional/callback_forward.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h" #include "base/task/sequence_manager/sequence_manager.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl_unittest.cc index 53d3703..5b78248e 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/synchronization/waitable_event.h" #include "base/task/task_executor.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_base.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_base.cc index a523cd5..7ed1864 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_base.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_base.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/platform/platform.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.cc index 94ae1124..c84ebe2e 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_task_queue.h" -#include "base/bind.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/public/common/features.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_impl_unittest.cc index b7fc2f76..57dee4f 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_impl_unittest.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.cc index 8c33631..3f458dac 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h" #include "third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc index 1a6dd38..945c6c1 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy_unittest.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/run_loop.h" #include "base/synchronization/waitable_event.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc index ac4f8ba..ad071f3 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
@@ -6,7 +6,7 @@ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc index 066e14942..52b1c40 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler_unittest.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/task/sequence_manager/test/fake_task.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/testing/empty_web_media_player.h b/third_party/blink/renderer/platform/testing/empty_web_media_player.h index 14d293e..db11b79 100644 --- a/third_party/blink/renderer/platform/testing/empty_web_media_player.h +++ b/third_party/blink/renderer/platform/testing/empty_web_media_player.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_EMPTY_WEB_MEDIA_PLAYER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_EMPTY_WEB_MEDIA_PLAYER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "third_party/blink/public/platform/web_media_player.h"
diff --git a/third_party/blink/renderer/platform/testing/run_all_tests.cc b/third_party/blink/renderer/platform/testing/run_all_tests.cc index f744221..231fb89 100644 --- a/third_party/blink/renderer/platform/testing/run_all_tests.cc +++ b/third_party/blink/renderer/platform/testing/run_all_tests.cc
@@ -29,7 +29,7 @@ */ #include <memory> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/task_environment.h" #include "base/test/test_io_thread.h"
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support.h b/third_party/blink/renderer/platform/testing/testing_platform_support.h index 6835d135..00c907d 100644 --- a/third_party/blink/renderer/platform/testing/testing_platform_support.h +++ b/third_party/blink/renderer/platform/testing/testing_platform_support.h
@@ -35,8 +35,8 @@ #include <utility> #include "base/auto_reset.h" -#include "base/callback.h" #include "base/check_op.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc b/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc index d5bbffd..28aeca66 100644 --- a/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc +++ b/third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" #include "base/test/test_mock_time_task_runner.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h"
diff --git a/third_party/blink/renderer/platform/testing/video_frame_utils.cc b/third_party/blink/renderer/platform/testing/video_frame_utils.cc index 2ddd1e1..b2839ad 100644 --- a/third_party/blink/renderer/platform/testing/video_frame_utils.cc +++ b/third_party/blink/renderer/platform/testing/video_frame_utils.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/testing/video_frame_utils.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "media/base/format_utils.h" #include "media/video/fake_gpu_memory_buffer.h"
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc b/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc index ea3c417..cb0e699 100644 --- a/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc +++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
@@ -17,10 +17,10 @@ #include <utility> #include <GLES2/gl2extchromium.h> -#include "base/bind.h" -#include "base/callback.h" -#include "base/callback_helpers.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" #include "base/task/bind_post_task.h"
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h index 6c8fc64..a10db67 100644 --- a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h +++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
@@ -8,8 +8,8 @@ #include <stdint.h> #include <map> -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/memory/unsafe_shared_memory_pool.h" #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc index 14f488b..572b3e78 100644 --- a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc +++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
@@ -6,8 +6,8 @@ #include <memory> #include <utility> -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/memory/unsafe_shared_memory_region.h" #include "base/test/bind.h"
diff --git a/third_party/blink/renderer/platform/video_capture/video_capturer_source.cc b/third_party/blink/renderer/platform/video_capture/video_capturer_source.cc index 1141cbda..6da5b80 100644 --- a/third_party/blink/renderer/platform/video_capture/video_capturer_source.cc +++ b/third_party/blink/renderer/platform/video_capture/video_capturer_source.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/video_capture/video_capturer_source.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" namespace blink {
diff --git a/third_party/blink/renderer/platform/video_capture/video_capturer_source.h b/third_party/blink/renderer/platform/video_capture/video_capturer_source.h index 892bbd9..7809229 100644 --- a/third_party/blink/renderer/platform/video_capture/video_capturer_source.h +++ b/third_party/blink/renderer/platform/video_capture/video_capturer_source.h
@@ -8,7 +8,7 @@ #include <string> #include <vector> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "base/token.h" #include "media/capture/video/video_capture_feedback.h"
diff --git a/third_party/blink/renderer/platform/webrtc/track_observer.cc b/third_party/blink/renderer/platform/webrtc/track_observer.cc index 5c8f0ee..13568e10 100644 --- a/third_party/blink/renderer/platform/webrtc/track_observer.cc +++ b/third_party/blink/renderer/platform/webrtc/track_observer.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/webrtc/track_observer.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
diff --git a/third_party/blink/renderer/platform/webrtc/track_observer.h b/third_party/blink/renderer/platform/webrtc/track_observer.h index 00ffb3c..c3554f9 100644 --- a/third_party/blink/renderer/platform/webrtc/track_observer.h +++ b/third_party/blink/renderer/platform/webrtc/track_observer.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEBRTC_TRACK_OBSERVER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEBRTC_TRACK_OBSERVER_H_ -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h" #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.cc b/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.cc index 432a9d6..31c9155 100644 --- a/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.cc +++ b/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.cc
@@ -7,9 +7,9 @@ #include <vector> #include "base/auto_reset.h" -#include "base/bind.h" #include "base/check.h" #include "base/command_line.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/notreached.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.h b/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.h index 87a9afd..a9257ea 100644 --- a/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.h +++ b/third_party/blink/renderer/platform/widget/compositing/android_webview/synchronous_layer_tree_frame_sink.h
@@ -9,9 +9,9 @@ #include <memory> -#include "base/callback.h" #include "base/cancelable_callback.h" #include "base/compiler_specific.h" +#include "base/functional/callback.h" #include "base/memory/read_only_shared_memory_region.h" #include "base/memory/scoped_refptr.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc b/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc index 26f8c7e..35f89d6f 100644 --- a/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc +++ b/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.cc
@@ -7,11 +7,11 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/command_line.h" #include "base/containers/contains.h" #include "base/containers/cxx20_erase.h" #include "base/feature_list.h" +#include "base/functional/bind.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/task/sequence_manager/task_time_observer.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.h b/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.h index 0fa8038..3a1bc24 100644 --- a/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.h +++ b/third_party/blink/renderer/platform/widget/compositing/categorized_worker_pool.h
@@ -5,8 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_COMPOSITING_CATEGORIZED_WORKER_POOL_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_COMPOSITING_CATEGORIZED_WORKER_POOL_H_ -#include "base/callback.h" #include "base/containers/span.h" +#include "base/functional/callback.h" #include "base/synchronization/condition_variable.h" #include "base/task/post_job.h" #include "base/task/sequenced_task_runner.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc index 8770eeb..3c828c7 100644 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc
@@ -8,9 +8,9 @@ #include <string> #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/location.h" #include "base/logging.h" #include "base/metrics/histogram_macros.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.h b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.h index 92a9c345..86cd4f1 100644 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.h +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.h
@@ -7,8 +7,8 @@ #include <stdint.h> -#include "base/callback.h" #include "base/containers/circular_deque.h" +#include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h index e5021ae..598ee3b 100644 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h
@@ -7,7 +7,7 @@ #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/time/time.h" #include "cc/trees/layer_tree_host_client.h" #include "cc/trees/paint_holding_reason.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc index 122af6f9..b9ab515 100644 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_unittest.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/location.h" #include "base/run_loop.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.cc b/third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.cc index 85c6e5b..1182e80 100644 --- a/third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.cc +++ b/third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/widget/compositing/widget_compositor.cc b/third_party/blink/renderer/platform/widget/compositing/widget_compositor.cc index 6c09dc5..2b233bb 100644 --- a/third_party/blink/renderer/platform/widget/compositing/widget_compositor.cc +++ b/third_party/blink/renderer/platform/widget/compositing/widget_compositor.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/widget/compositing/widget_compositor.h" -#include "base/callback_helpers.h" +#include "base/functional/callback_helpers.h" #include "base/task/single_thread_task_runner.h" #include "cc/trees/layer_tree_host.h" #include "third_party/blink/renderer/platform/widget/compositing/queue_report_time_swap_promise.h"
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc index b86db413..29eb1583 100644 --- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc +++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc
@@ -8,7 +8,7 @@ #include <algorithm> -#include "base/bind.h" +#include "base/functional/bind.h" #include "build/build_config.h" #include "cc/input/input_handler.h" #include "third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.h"
diff --git a/third_party/blink/renderer/platform/widget/input/frame_widget_input_handler_impl.cc b/third_party/blink/renderer/platform/widget/input/frame_widget_input_handler_impl.cc index 8b6e832..f916045 100644 --- a/third_party/blink/renderer/platform/widget/input/frame_widget_input_handler_impl.cc +++ b/third_party/blink/renderer/platform/widget/input/frame_widget_input_handler_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/memory/weak_ptr.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc index b874b55..7db317a 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc
@@ -8,10 +8,10 @@ #include <algorithm> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/location.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h"
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc index 0bc95f5..a8be709 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -6,9 +6,9 @@ #include <memory> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/containers/circular_deque.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/lazy_instance.h" #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h"
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc index ba57ab3..61e5792b 100644 --- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc +++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/containers/circular_deque.h" +#include "base/functional/bind.h" #include "base/metrics/histogram_macros.h" #include "base/task/single_thread_task_runner.h" #include "cc/metrics/event_metrics.h"
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc index caf911f5..df931624 100644 --- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc
@@ -10,7 +10,7 @@ #include <vector> #include "base/auto_reset.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/strings/string_util.h" #include "base/test/test_simple_task_runner.h" #include "base/time/time.h"
diff --git a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc index 4b9761b..ca77893 100644 --- a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/widget/input/scroll_predictor.h" -#include "base/bind.h" -#include "base/callback_helpers.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/test/scoped_feature_list.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/features.h"
diff --git a/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.cc b/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.cc index 2c81bfa..f985e77 100644 --- a/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.cc +++ b/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.h" -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/shared_memory_mapping.h" #include "components/power_scheduler/power_mode_arbiter.h" #include "components/power_scheduler/power_mode_voter.h"
diff --git a/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.h b/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.h index 8daad7e3..daefb897 100644 --- a/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.h +++ b/third_party/blink/renderer/platform/widget/input/synchronous_compositor_proxy.h
@@ -8,7 +8,7 @@ #include <stddef.h> #include <stdint.h> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/memory/writable_shared_memory_region.h" #include "components/viz/common/frame_timing_details_map.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc b/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc index 75f05b78..febcfa2 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc
@@ -6,8 +6,8 @@ #include <utility> -#include "base/bind.h" #include "base/check.h" +#include "base/functional/bind.h" #include "base/task/single_thread_task_runner.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/self_owned_associated_receiver.h"
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc index 24a74486..5f2735a 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc
@@ -6,10 +6,10 @@ #include <utility> -#include "base/bind.h" -#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/feature_list.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" #include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "base/task/single_thread_task_runner.h"
diff --git a/third_party/blink/renderer/platform/wtf/DEPS b/third_party/blink/renderer/platform/wtf/DEPS index a78a9a2..f85019a 100644 --- a/third_party/blink/renderer/platform/wtf/DEPS +++ b/third_party/blink/renderer/platform/wtf/DEPS
@@ -3,9 +3,9 @@ # directories and files instead of writing 'base/'. "+base/atomic_ref_count.h", "+base/auto_reset.h", - "+base/bind.h", "+base/bits.h", "+base/compiler_specific.h", + "+base/functional/bind.h", "+base/logging.h", "+base/mac/foundation_util.h", "+base/mac/scoped_cftyperef.h",
diff --git a/third_party/blink/renderer/platform/wtf/cross_thread_functional.h b/third_party/blink/renderer/platform/wtf/cross_thread_functional.h index 466fe15..f2a421d 100644 --- a/third_party/blink/renderer/platform/wtf/cross_thread_functional.h +++ b/third_party/blink/renderer/platform/wtf/cross_thread_functional.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_CROSS_THREAD_FUNCTIONAL_H_ #include <type_traits> -#include "base/bind.h" +#include "base/functional/bind.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h" #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h index 7deb6e5..26b5b16b 100644 --- a/third_party/blink/renderer/platform/wtf/functional.h +++ b/third_party/blink/renderer/platform/wtf/functional.h
@@ -28,9 +28,9 @@ #include <utility> -#include "base/bind.h" -#include "base/callback.h" #include "base/dcheck_is_on.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/wtf/functional_test.cc b/third_party/blink/renderer/platform/wtf/functional_test.cc index a9723c9..6a476a3 100644 --- a/third_party/blink/renderer/platform/wtf/functional_test.cc +++ b/third_party/blink/renderer/platform/wtf/functional_test.cc
@@ -28,7 +28,7 @@ #include <memory> #include <utility> -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/test/gtest_util.h"
diff --git a/third_party/blink/renderer/platform/wtf/sequence_bound.h b/third_party/blink/renderer/platform/wtf/sequence_bound.h index ae1004c..614c6e2 100644 --- a/third_party/blink/renderer/platform/wtf/sequence_bound.h +++ b/third_party/blink/renderer/platform/wtf/sequence_bound.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_SEQUENCE_BOUND_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_SEQUENCE_BOUND_H_ -#include "base/bind.h" +#include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" #include "base/threading/sequence_bound.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_impl.cc b/third_party/blink/renderer/platform/wtf/text/string_impl.cc index eb2477b..7d225ce 100644 --- a/third_party/blink/renderer/platform/wtf/text/string_impl.cc +++ b/third_party/blink/renderer/platform/wtf/text/string_impl.cc
@@ -28,7 +28,7 @@ #include <algorithm> #include <memory> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/numerics/safe_conversions.h" #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h" #include "third_party/blink/renderer/platform/wtf/dynamic_annotations.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_impl.h b/third_party/blink/renderer/platform/wtf/text/string_impl.h index 9030e7a3..1910c9cf 100644 --- a/third_party/blink/renderer/platform/wtf/text/string_impl.h +++ b/third_party/blink/renderer/platform/wtf/text/string_impl.h
@@ -29,10 +29,10 @@ #include <atomic> -#include "base/callback_forward.h" #include "base/check_op.h" #include "base/containers/span.h" #include "base/dcheck_is_on.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "base/numerics/checked_math.h" #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/wtf_string.cc b/third_party/blink/renderer/platform/wtf/text/wtf_string.cc index 4fcdb5f..e5d47c2 100644 --- a/third_party/blink/renderer/platform/wtf/text/wtf_string.cc +++ b/third_party/blink/renderer/platform/wtf/text/wtf_string.cc
@@ -27,7 +27,7 @@ #include <algorithm> -#include "base/callback.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/numerics/safe_conversions.h" #include "base/strings/string_util.h"
diff --git a/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc b/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc index 5f799958..d57a221 100644 --- a/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc +++ b/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/platform/wtf/threading_primitives.h" -#include "base/bind.h" -#include "base/callback.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/test/bind.h" #include "base/threading/platform_thread.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/third_party/blink/tools/blinkpy/tool/commands/update_metadata.py b/third_party/blink/tools/blinkpy/tool/commands/update_metadata.py index f6f596fc..07509fe 100644 --- a/third_party/blink/tools/blinkpy/tool/commands/update_metadata.py +++ b/third_party/blink/tools/blinkpy/tool/commands/update_metadata.py
@@ -26,8 +26,8 @@ Mapping, Optional, Set, - Tuple, TypedDict, + Union, ) from blinkpy.common import path_finder @@ -625,32 +625,32 @@ The purpose of result replay is to prevent the update backend from clobbering expectations for ports without results. + + Missing configs are only detected at the test level so that subtests can + still be pruned. """ - for test_id, subtest_id, node in self._iterate_tests_and_subtests( - test_file): - updated_configs = self._updated_configs(test_file, test_id, - subtest_id) + expectations = test_file.expected( + (self._primary_properties, self._dependent_properties), + update_intermittent=(not self._disable_intermittent), + remove_intermittent=(not self._keep_statuses)) + for test in expectations.child_map.values(): + updated_configs = self._updated_configs(test_file, test.id) # Nothing to update. This commonly occurs when every port runs # expectedly. As an optimization, skip this file's update entirely # instead of replaying every result. if not updated_configs: continue - self._updater.test_start({'test': test_id}) - missing_configs = self._enabled_configs(node) - updated_configs + missing_configs = self._enabled_configs(test) - updated_configs for config in missing_configs: - try: - statuses = node.get('expected', config) - except KeyError: - statuses = self._default_expected[test_file.item_type, - subtest_id is not None] - if isinstance(statuses, str): - statuses = [statuses] - expected, *known_intermittent = statuses self._updater.suite_start({'run_info': config.data}) - if subtest_id: + self._updater.test_start({'test': test.id}) + for subtest_id, subtest in test.subtests.items(): + expected, *known_intermittent = self._eval_statuses( + subtest, config, + self._default_expected[test_file.item_type, True]) self._updater.test_status({ 'test': - test_id, + test.id, 'subtest': subtest_id, 'status': @@ -658,28 +658,28 @@ 'known_intermittent': known_intermittent, }) - else: - self._updater.test_end({ - 'test': - test_id, - 'status': - expected, - 'known_intermittent': - known_intermittent, - }) + expected, *known_intermittent = self._eval_statuses( + test, config, + self._default_expected[test_file.item_type, False]) + self._updater.test_end({ + 'test': + test.id, + 'status': + expected, + 'known_intermittent': + known_intermittent, + }) - def _iterate_tests_and_subtests( + def _eval_statuses( self, - test_file: metadata.TestFileData, - ) -> Iterator[Tuple[str, Optional[str], manifestupdate.TestNode]]: - expectations = test_file.expected( - (self._primary_properties, self._dependent_properties), - update_intermittent=(not self._disable_intermittent), - remove_intermittent=(not self._keep_statuses)) - for test in expectations.child_map.values(): - yield test.id, None, test - for subtest_id, subtest in test.subtests.items(): - yield test.id, subtest_id, subtest + node: manifestupdate.TestNode, + config: metadata.RunInfo, + default_status: str, + ) -> List[str]: + statuses: Union[str, List[str]] = default_status + with contextlib.suppress(KeyError): + statuses = node.get('expected', config) + return [statuses] if isinstance(statuses, str) else statuses def _updated_configs( self,
diff --git a/third_party/blink/tools/blinkpy/tool/commands/update_metadata_unittest.py b/third_party/blink/tools/blinkpy/tool/commands/update_metadata_unittest.py index a1a83c8..5469661 100644 --- a/third_party/blink/tools/blinkpy/tool/commands/update_metadata_unittest.py +++ b/third_party/blink/tools/blinkpy/tool/commands/update_metadata_unittest.py
@@ -1013,6 +1013,11 @@ 'os': 'mac' }, 'results': [], + }, { + 'run_info': { + 'os': 'linux' + }, + 'results': [], }) # Without result replay, the `FAIL` expectation is erroneously deleted, # which will give either:
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index ed9e28f..c233a5d5 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -6950,3 +6950,6 @@ crbug.com/1406380 [ Win ] external/wpt/infrastructure/server/webtransport-h3.https.sub.any.serviceworker.html [ Failure Pass ] crbug.com/1406661 [ Mac12 ] http/tests/devtools/persistence/automapping-dynamic-uisourcecodes.js [ Failure Pass ] + +crbug.com/1406683 [ Win11 ] external/wpt/css/css-properties-values-api/at-property-animation.html [ Failure ] +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001-ref.html new file mode 100644 index 0000000..7e64fa9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001-ref.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<style> + .piece { + position: absolute; + left: 5px; + top: 5px; + width: 95px; + height: 95px; + border: solid; + } +</style> +<div style="position:relative; margin:50px;"> + <div class="piece" style="border-width:0 5px 0 0;"></div> + <div class="piece" style="margin-left:120px; border-width:0 5px 0 0;"></div> + <div class="piece" style="margin-left:240px; border-width:0 5px 5px 0;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001.html new file mode 100644 index 0000000..1c7193f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-001.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-block-fragmentation-001-ref.html"> +<div style="margin:50px; columns:3; column-fill:auto; gap:20px; width:340px; height:100px;"> + <div style="box-shadow:5px 5px black; height:300px;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002-ref.html new file mode 100644 index 0000000..2c148d8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002-ref.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<style> + .piece { + position: absolute; + left: -5px; + top: 0; + width: 95px; + height: 95px; + border: solid; + } +</style> +<div style="position:relative; margin:50px;"> + <div class="piece" style="top:-5px; border-width:5px 0 0 5px;"></div> + <div class="piece" style="margin-left:120px; border-width:0 0 0 5px;"></div> + <div class="piece" style="margin-left:240px; border-width:0 0 0 5px;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002.html new file mode 100644 index 0000000..b645ed8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-002.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-block-fragmentation-002-ref.html"> +<div style="margin:50px; columns:3; column-fill:auto; gap:20px; width:340px; height:100px;"> + <div style="box-shadow:-5px -5px black; height:300px;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003-ref.html new file mode 100644 index 0000000..a58e8101 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003-ref.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<style> + .piece { + position: absolute; + left: -8px; + top: 0; + width: 100px; + height: 100px; + border: solid; + } +</style> +<div style="position:relative; margin:50px;"> + <div class="piece" style="top:-8px; border-width:8px 12px 0 8px;"></div> + <div class="piece" style="margin-left:140px; border-width:0 12px 0 8px;"></div> + <div class="piece" style="margin-left:280px; border-width:0 12px 12px 8px;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003.html new file mode 100644 index 0000000..4fca18b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-block-fragmentation-003.html
@@ -0,0 +1,8 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-block-fragmentation-003-ref.html"> +<div style="margin:50px; columns:3; column-fill:auto; gap:40px; width:380px; height:100px;"> + <div style="box-shadow:2px 2px 0 10px black; width:100px; height:300px;"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001-ref.html new file mode 100644 index 0000000..171e493 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001-ref.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:5px 0 -5px 5px; border:solid black; border-width:0 0 5px 0;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:5px 0 -5px 5px; border:solid black; border-width:0 0 5px 0;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:5px -5px -5px 5px; border:solid black; border-width:0 5px 5px 0;"></div> + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001.html new file mode 100644 index 0000000..46eab59 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-001.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-inline-fragmentation-001-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="box-shadow:5px 5px black;"> + pppÉÉÉ <br> + pppÉÉÉ <br> + pppÉÉÉ + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002-ref.html new file mode 100644 index 0000000..baf297f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002-ref.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-5px 5px 5px -5px; border:solid black; border-width:5px 0 0 5px;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-5px 5px 5px 0; border:solid black; border-width:5px 0 0 0;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-5px 5px 5px 0; border:solid black; border-width:5px 0 0 0;"></div> + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002.html new file mode 100644 index 0000000..516abcf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-002.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-inline-fragmentation-002-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="box-shadow:-5px -5px black;"> + pppÉÉÉ <br> + pppÉÉÉ <br> + pppÉÉÉ + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003-ref.html new file mode 100644 index 0000000..4c1954b3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003-ref.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-8px 0 -12px -8px; border:solid black; border-width:8px 0 12px 8px;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-8px 0 -12px 0; border:solid black; border-width:8px 0 12px 0;"></div> + </span> + <br> + <span style="position:relative;"> + pppÉÉÉ + <div style="position:absolute; inset:-8px -12px -12px 0; border:solid black; border-width:8px 12px 12px 0;"></div> + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003.html new file mode 100644 index 0000000..336c01f5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/box-shadow/slice-inline-fragmentation-003.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-decoration"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1402736"> +<link rel="match" href="slice-inline-fragmentation-003-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> +<div style="font:16px/40px Ahem; color:cyan;"> + <span style="box-shadow:2px 2px 0 10px black;"> + pppÉÉÉ <br> + pppÉÉÉ <br> + pppÉÉÉ + </span> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-cross-origin-child.sub.html b/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-cross-origin-child.sub.html index 4be0df87..a4917451 100644 --- a/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-cross-origin-child.sub.html +++ b/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-cross-origin-child.sub.html
@@ -8,9 +8,11 @@ document.body.appendChild(childFrame) performance.mark("entry-name") + const loadPromise = new Promise(resolve => window.addEventListener("load", resolve)) - childFrame.addEventListener('load', () => { + childFrame.addEventListener('load', async () => { + await loadPromise const entries = performance.getEntries(true) window.parent.postMessage(entries.length, "*") }) -</script> \ No newline at end of file +</script>
diff --git a/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-same-origin-child.html b/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-same-origin-child.html index c9248a4..813c2a7 100644 --- a/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-same-origin-child.html +++ b/third_party/blink/web_tests/external/wpt/performance-timeline/resources/parent-frame-with-same-origin-child.html
@@ -8,9 +8,11 @@ document.body.appendChild(childFrame) performance.mark("entry-name") + const loadPromise = new Promise(resolve => window.addEventListener("load", resolve)); - childFrame.addEventListener('load', () => { + childFrame.addEventListener('load', async () => { + await loadPromise; const entries = performance.getEntries(true) window.parent.postMessage(entries.length, "*") }) -</script> \ No newline at end of file +</script>
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit-expected.txt b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit-expected.txt index 2cee4df6..57ed171 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit-expected.txt +++ b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit-expected.txt
@@ -1,5 +1,4 @@ This is a testharness.js-based test. -Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Failed to construct 'URL': Invalid URL PASS Test iframe from non-existent host gets reported PASS Test iframe redirecting to non-existent host gets reported PASS Same-origin iframe that complies with CSP attribute gets reported @@ -8,5 +7,9 @@ PASS Cross-origin iframe that doesn't comply with CSP attribute gets reported PASS Same-origin empty iframe with a 200 status gets reported PASS Cross-origin empty iframe with a 200 status gets reported +FAIL Same-origin empty iframe with a 204 status gets reported assert_not_equals: No entry was recieved got disallowed value null +FAIL Same-origin empty iframe with a 205 status gets reported assert_not_equals: No entry was recieved got disallowed value null +PASS Cross-origin empty iframe with a 204 status gets reported +PASS Cross-origin empty iframe with a 205 status gets reported Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit.html b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit.html index 1da207d..28bef30 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit.html +++ b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-failed-commit.html
@@ -20,6 +20,10 @@ return load.iframe_with_attrs(path, {"csp": "default-src 'none'"}); }; +const load_iframe_with_csp_no_navigation = async path => { + return load.iframe_with_attrs(path, {"csp": "default-src 'none'"}, () => {}, true); +} + // Runs a test (labeled by the given label) to verify that loading an iframe // with the given URL generates a PerformanceResourceTiming entry and that the // entry does not expose sensitive timing attributes. @@ -54,6 +58,24 @@ invariants.assert_tao_pass_no_redirect_http_empty, label); }; +// Runs a test (labeled by the given label) to verify that loading an iframe +// with the given URL under a "default-src 'none' Content-Security-Policy +// generates a PerformanceResourceTiming entry and that the entry does not +// expose sensitive timing attributes. +const non_navigating_masked_entry_with_csp_test = (url, label) => { + return attribute_test(load_iframe_with_csp_no_navigation, url, + invariants.assert_tao_failure_resource, label); +}; + +// Runs a test (labeled by the given label) to verify that loading an iframe +// with the given URL, an empty response body and under a "default-src 'none' +// Content-Security-Policy generates a PerformanceResourceTiming entry and that +// the entry does expose sensitive timing attributes. +const non_navigating_empty_unmasked_entry_with_csp_test = (url, label) => { + return attribute_test(load_iframe_with_csp_no_navigation, url, + invariants.assert_tao_pass_no_redirect_http_empty, label); +}; + const {REMOTE_ORIGIN, ORIGINAL_HOST, HTTPS_PORT} = get_host_info(); const unhosted_url = `https://nonexistent.${ORIGINAL_HOST}:${HTTPS_PORT}/`; @@ -87,19 +109,19 @@ new URL("/resource-timing/resources/200_empty.asis", REMOTE_ORIGIN), "Cross-origin empty iframe with a 200 status gets reported"); -unmasked_entry_with_csp_test( - new URL("/resource-timing/resources/204_empty.asis"), +non_navigating_empty_unmasked_entry_with_csp_test( + new URL("/resource-timing/resources/204_empty.asis", location.origin), "Same-origin empty iframe with a 204 status gets reported"); -unmasked_entry_with_csp_test( - new URL("/resource-timing/resources/205_empty.asis"), +non_navigating_empty_unmasked_entry_with_csp_test( + new URL("/resource-timing/resources/205_empty.asis", location.origin), "Same-origin empty iframe with a 205 status gets reported"); -masked_entry_with_csp_test( +non_navigating_masked_entry_with_csp_test( new URL("/resource-timing/resources/204_empty.asis", REMOTE_ORIGIN), "Cross-origin empty iframe with a 204 status gets reported"); -masked_entry_with_csp_test( +non_navigating_masked_entry_with_csp_test( new URL("/resource-timing/resources/205_empty.asis", REMOTE_ORIGIN), "Cross-origin empty iframe with a 205 status gets reported");
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt deleted file mode 100644 index d9e92b21..0000000 --- a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -PASS A iframe should report its RT entry when the response is done and before it is completely loaded -FAIL A iframe should report separate RT entries if its src changed from the outside assert_equals: expected 2 but got 1 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html index 5f99a5c..02d1c36 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html +++ b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html
@@ -4,9 +4,21 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/frame-timing.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> <body> <script> test_frame_timing_before_load_event('iframe'); - test_frame_timing_change_src('iframe'); + + const host_info = get_host_info(); + const types = ['ORIGIN', 'HTTP_REMOTE_ORIGIN', 'HTTP_NOTSAMESITE_ORIGIN']; + for (const a of types) { + for (const b of types) { + for (const tao of [true, false]) { + test_frame_timing_change_src('iframe', host_info[a], host_info[b], tao, + `Changing the src of an iframe (${a}->${b}) ${tao ? "with" : "without"} TAO should result in an RT entry`); + } + } + } </script> -</body> \ No newline at end of file +</body>
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html.ini b/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html.ini deleted file mode 100644 index d71ebc60..0000000 --- a/third_party/blink/web_tests/external/wpt/resource-timing/iframe-sequence-of-events.html.ini +++ /dev/null
@@ -1,3 +0,0 @@ -[iframe-sequence-of-events.html] - [A iframe should report separate RT entries if its src changed from the outside] - expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/nested-nav-fallback-timing.html b/third_party/blink/web_tests/external/wpt/resource-timing/nested-nav-fallback-timing.html new file mode 100644 index 0000000..b8bba56 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/resource-timing/nested-nav-fallback-timing.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test ResourceTiming reporting for cross-origin iframe.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/observe-entry.js"></script> +</head> +<body> +<body> +<script> + const {REMOTE_ORIGIN} = get_host_info(); + + promise_test(async t => { + const iframe = document.createElement('iframe'); + t.add_cleanup(() => iframe.remove()); + iframe.src = `${REMOTE_ORIGIN}/resource-timing/resources/delay-load.html`; + document.body.appendChild(iframe); + const entry = await observe_entry(iframe.src); + assert_greater_than(entry.duration, 1000); + }, "Cross-origin TAO-fail IFrame entries should report window load time"); + + promise_test(async t => { + const object = document.createElement('object'); + object.type = "text/html"; + t.add_cleanup(() => object.remove()); + object.data = `${REMOTE_ORIGIN}/resource-timing/resources/delay-load.html`; + document.body.appendChild(object); + const entry = await observe_entry(object.data); + assert_greater_than(entry.duration, 1000); + }, "Cross-origin TAO-fail object entries should report window load time"); + + </script>
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resources/delay-load.html b/third_party/blink/web_tests/external/wpt/resource-timing/resources/delay-load.html new file mode 100644 index 0000000..4898c1b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/resource-timing/resources/delay-load.html
@@ -0,0 +1,4 @@ +<!DOCTYPE html> +<body> +<img src="/images/blue.png?pipe=trickle(d1)"> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resources/entry-invariants.js b/third_party/blink/web_tests/external/wpt/resource-timing/resources/entry-invariants.js index 1834915..dc907533 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/resources/entry-invariants.js +++ b/third_party/blink/web_tests/external/wpt/resource-timing/resources/entry-invariants.js
@@ -453,9 +453,10 @@ await loader(path, validator); const timeout = new Promise(r => step_timeout(() => { console.log("Timeout was reached before entry fired"); - r(); + r(null); }, 2000)); const entry = await Promise.race([loaded_entry, timeout]); + assert_not_equals(entry, null, 'No entry was recieved'); run_test(entry); }, test_label); };
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resources/frame-timing.js b/third_party/blink/web_tests/external/wpt/resource-timing/resources/frame-timing.js index e0c364e..019bd42 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/resources/frame-timing.js +++ b/third_party/blink/web_tests/external/wpt/resource-timing/resources/frame-timing.js
@@ -1,48 +1,63 @@ function test_frame_timing_before_load_event(type) { - promise_test(async t => { - const {document, performance} = type === 'frame' ? window.parent : window; - const delay = 500; - const frame = document.createElement(type); - t.add_cleanup(() => frame.remove()); - await new Promise(resolve => { - frame.addEventListener('load', resolve); - frame.src = `resources/iframe-with-delay.sub.html?delay=${delay}`; - (type === 'frame' ? document.querySelector('frameset') : document.body).appendChild(frame); - }); + promise_test(async t => { + const {document, performance} = type === 'frame' ? window.parent : window; + const delay = 500; + const frame = document.createElement(type); + t.add_cleanup(() => frame.remove()); + await new Promise(resolve => { + frame.addEventListener('load', resolve); + frame.src = `/resource-timing/resources/iframe-with-delay.sub.html?delay=${delay}`; + (type === 'frame' ? document.querySelector('frameset') : document.body).appendChild(frame); + }); - const entries = performance.getEntriesByName(frame.src); - const navigationEntry = frame.contentWindow.performance.getEntriesByType('navigation')[0]; - assert_equals(entries.length, 1); - assert_equals(entries[0].initiatorType, type); - assert_greater_than(performance.now(), entries[0].responseEnd + delay); - const domContentLoadedEventAbsoluteTime = navigationEntry.domContentLoadedEventStart + frame.contentWindow.performance.timeOrigin; - const frameResponseEndAbsoluteTime = entries[0].responseEnd + performance.timeOrigin; - assert_greater_than(domContentLoadedEventAbsoluteTime, frameResponseEndAbsoluteTime); - }, `A ${type} should report its RT entry when the response is done and before it is completely loaded`); + const entries = performance.getEntriesByName(frame.src); + const navigationEntry = frame.contentWindow.performance.getEntriesByType('navigation')[0]; + assert_equals(entries.length, 1); + assert_equals(entries[0].initiatorType, type); + assert_greater_than(performance.now(), entries[0].responseEnd + delay); + const domContentLoadedEventAbsoluteTime = + navigationEntry.domContentLoadedEventStart + + frame.contentWindow.performance.timeOrigin; + const frameResponseEndAbsoluteTime = entries[0].responseEnd + performance.timeOrigin; + assert_greater_than(domContentLoadedEventAbsoluteTime, frameResponseEndAbsoluteTime); + }, `A ${type} should report its RT entry when the response is done and before it is completely loaded`); } -function test_frame_timing_change_src(type) { - promise_test(async t => { - const {document, performance} = type === 'frame' ? window.parent : window; - const frame = document.createElement(type); - t.add_cleanup(() => frame.remove()); - await new Promise(resolve => { - const done = () => { - resolve(); - frame.removeEventListener('load', done); - } - frame.addEventListener('load', done); - frame.src = 'resources/green.html?1'; - (type === 'frame' ? document.querySelector('frameset') : document.body).appendChild(frame); - }); +function test_frame_timing_change_src(type, + origin1 = document.origin, + origin2 = document.origin, + tao = false, label = '') { + const uid = token(); + promise_test(async t => { + const {document, performance} = type === 'frame' ? window.parent : window; + const frame = document.createElement(type); + t.add_cleanup(() => frame.remove()); + function createURL(origin) { + const url = new URL(`${origin}/resource-timing/resources/green.html`, location.href); + url.searchParams.set("uid", uid); + if (tao) + url.searchParams.set("pipe", "header(Timing-Allow-Origin, *)"); + return url.toString(); + } - await new Promise(resolve => { - frame.addEventListener('load', resolve); - frame.src = 'resources/green.html?2'; - }); + await new Promise(resolve => { + const done = () => { + resolve(); + frame.removeEventListener('load', done); + } + frame.addEventListener('load', done); + frame.src = createURL(origin1); + const root = type === 'frame' ? document.querySelector('frameset') : document.body; + root.appendChild(frame); + }); - const entries = performance.getEntries().filter(e => e.name.includes('green.html')); - assert_equals(entries.length, 2); - }, `A ${type} should report separate RT entries if its src changed from the outside`); -} \ No newline at end of file + await new Promise(resolve => { + frame.addEventListener('load', resolve); + frame.src = createURL(origin2); + }); + + const entries = performance.getEntries().filter(e => e.name.includes(uid)); + assert_equals(entries.length, 2); + }, label || `A ${type} should report separate RT entries if its src changed from the outside`); +}
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resources/resource-loaders.js b/third_party/blink/web_tests/external/wpt/resource-timing/resources/resource-loaders.js index cb0fde3..70889b70 100644 --- a/third_party/blink/web_tests/external/wpt/resource-timing/resources/resource-loaders.js +++ b/third_party/blink/web_tests/external/wpt/resource-timing/resources/resource-loaders.js
@@ -78,7 +78,7 @@ return load.stylesheet_with_attrs(path, undefined); }, - iframe_with_attrs: async (path, attribute_map, validator) => { + iframe_with_attrs: async (path, attribute_map, validator, skip_wait_for_navigation) => { const frame = document.createElement("iframe"); if (attribute_map instanceof Object) { for (const [key, value] of Object.entries(attribute_map)) { @@ -90,11 +90,17 @@ }); frame.src = load.cache_bust(path); document.body.appendChild(frame); - await loaded; + if ( !skip_wait_for_navigation ) { + await loaded; + } if (validator instanceof Function) { validator(frame); } - document.body.removeChild(frame); + // since we skipped the wait for load animation, we cannot + // remove the iframe here since the request could get cancelled + if ( !skip_wait_for_navigation ) { + document.body.removeChild(frame); + } }, // Returns a promise that settles once the given path has been fetched as an
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-missing-subject.html b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-missing-subject.html new file mode 100644 index 0000000..01ca0215 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/view-timelines/view-timeline-missing-subject.html
@@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> +<title>ViewTimeline with missing subject</title> +<link rel="help" href="https://www.w3.org/TR/scroll-animations-1/#viewtimeline-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<style type="text/css"> + #target { + background: blue; + height: 100px; + width: 100px; + } + #scroller { + overflow: scroll; + } + #filler { + height: 300vh; + } +</style> +<body onload="runTests()"> + <div id="scroller"> + <div id="target"></div> + <div id="filler"></div> + </div> +</body> +<script type="text/javascript"> + function raf() { + return new Promise(resolve => { + requestAnimationFrame(() => { + requestAnimationFrame(resolve); + }) + }); + } + function runTests() { + promise_test(async t => { + const timeline = new ViewTimeline(); + const anim = + target.animate( + { backgroundColor: ['green', 'red' ] }, + { duration: 100, + timeline: timeline }); + await raf(); + scroller.scrollTop = 50; + await raf(); + assert_equals(timeline.currentTime, null, + 'ViewTimeline with missing subject is inactive'); + }); + } + +</script> +</html>
diff --git a/third_party/blink/web_tests/http/tests/misc/.htaccess b/third_party/blink/web_tests/http/tests/misc/.htaccess index 8ad99c6..27db018 100644 --- a/third_party/blink/web_tests/http/tests/misc/.htaccess +++ b/third_party/blink/web_tests/http/tests/misc/.htaccess
@@ -10,8 +10,18 @@ <Files "resource-timing-iframe-restored-from-history.html"> Header set Cache-Control "no-store" </Files> +# The following setting disables back-forward cache. +<Files "resource-timing-iframe-restored-from-history-cross-origin.html"> +Header set Cache-Control "no-store" +</Files> # resource-timing-navigation-in-restored-iframe.html is not compatible with back-forward cache. # The following setting disables back-forward cache. <Files "resource-timing-navigation-in-restored-iframe.html"> Header set Cache-Control "no-store" </Files> +<Files "resource-timing-navigation-in-restored-iframe-same-to-cross.html"> +Header set Cache-Control "no-store" +</Files> +<Files "resource-timing-navigation-in-restored-iframe-cross-to-same.html"> +Header set Cache-Control "no-store" +</Files>
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin-expected.txt b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin-expected.txt new file mode 100644 index 0000000..7182c87 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin-expected.txt
@@ -0,0 +1,16 @@ +ALERT: Initial URL loaded. +ALERT: Final URL loaded. +ALERT: Going back. +ALERT: Final URL loaded. +Tests that iframe restored from history does not report resource timing without explicitly setting src. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + +PASS resources.length is 1 +PASS resources[0].name is "http://127.0.0.1:8000/js-test-resources/js-test.js" +PASS successfullyParsed is true + +TEST COMPLETE + + +Back-forward cache keeps and restores the resource timing of the iframe on back navigation. Back-forward cache needs to be disabled to run this test.
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin.html b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin.html new file mode 100644 index 0000000..6e157d0 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-cross-origin.html
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<script src="/js-test-resources/js-test.js"></script> +<script> +description('Tests that iframe restored from history does not report resource timing without explicitly setting src.'); +window.jsTestIsAsync = true; + +function runTest() { + if (!sessionStorage.didNav) { + sessionStorage.didNav = true; + // Navigate a timeout to make sure we generate a history entry that we can go back to. + setTimeout(function() { + location.href = 'resources/alert-then-back.html'; + }, 0); + } else { + delete sessionStorage.didNav; + resources = performance.getEntriesByType('resource'); + shouldBe('resources.length', '1'); + shouldBeEqualToString('resources[0].name', 'http://127.0.0.1:8000/js-test-resources/js-test.js'); + if (window.testRunner) + finishJSTest(); + } +} + +if (!sessionStorage.didNav) { + window.onload = function() { + document.querySelector("iframe").src = "resources/frame-initial-url.html"; + } +} + +</script> + +<p>Back-forward cache keeps and restores the resource timing of the iframe on + back navigation. Back-forward cache needs to be disabled to run this test. +</p> +<iframe></iframe>
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-expected.txt b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-expected.txt index abbe0a2..24d5a3cb 100644 --- a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-expected.txt +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history-expected.txt
@@ -2,7 +2,7 @@ ALERT: Final URL loaded. ALERT: Going back. ALERT: Final URL loaded. -Tests that iframe restored from history does not report resource timing. +Tests that iframe restored from history without explicit navigation does not report resource timing. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history.html b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history.html index 995f6de..441b0f0d 100644 --- a/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history.html +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-iframe-restored-from-history.html
@@ -1,7 +1,7 @@ <!DOCTYPE html> <script src="/js-test-resources/js-test.js"></script> <script> -description('Tests that iframe restored from history does not report resource timing.'); +description('Tests that iframe restored from history without explicit navigation does not report resource timing.'); window.jsTestIsAsync = true; function runTest() {
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt index c787e96..372d83b 100644 --- a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt
@@ -3,8 +3,9 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -PASS resources.length is 1 +PASS resources.length is 2 PASS resources[0].name is "http://127.0.0.1:8000/js-test-resources/js-test.js" +PASS resources[1].name is "http://localhost:8080/misc/resources/navigate-on-message.html" PASS successfullyParsed is true TEST COMPLETE
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross-expected.txt b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross-expected.txt new file mode 100644 index 0000000..82fd6808 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross-expected.txt
@@ -0,0 +1,14 @@ +ALERT: Going back. +Tests that subsequent navigation in an iframe restored from history does not report resource timing. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + +PASS resources.length is 2 +PASS resources[0].name is "http://127.0.0.1:8000/js-test-resources/js-test.js" +PASS resources[1].name is "http://127.0.0.1:8000/misc/resources/navigate-on-message.html" +PASS successfullyParsed is true + +TEST COMPLETE + + +Back-forward cache keeps and restores the resource timing of the iframe on back navigation. Back-forward cache needs to be disabled to run this test.
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross.html b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross.html new file mode 100644 index 0000000..9489888 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe-same-to-cross.html
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<script src="/js-test-resources/js-test.js"></script> +<script> +description('Tests that subsequent navigation in an iframe restored from history does not report resource timing.'); +window.jsTestIsAsync = true; + +function runTest() { + if (!sessionStorage.didNav) { + sessionStorage.didNav = true; + // Navigate a timeout to make sure we generate a history entry that we can go back to. + setTimeout(function() { + location.href = 'resources/alert-then-back.html'; + }, 0); + } else { + delete sessionStorage.didNav; + const iframe = document.getElementById('target-iframe') + window.addEventListener('message', (event) => { + resources = performance.getEntriesByType('resource'); + shouldBe('resources.length', '2'); + shouldBeEqualToString('resources[0].name', 'http://127.0.0.1:8000/js-test-resources/js-test.js'); + shouldBeEqualToString('resources[1].name', iframe.src); + if (window.testRunner) + finishJSTest(); + }); + iframe.contentWindow.postMessage('http://127.0.0.1:8080/misc/resources/post-message-to-parent.html', '*'); + } +} + +window.onload = runTest; + +</script> + +<p>Back-forward cache keeps and restores the resource timing of the iframe on + back navigation. Back-forward cache needs to be disabled to run this test. +</p> + +<iframe id="target-iframe" src="resources/navigate-on-message.html"></iframe>
diff --git a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html index 141b0fd8..af3e642 100644 --- a/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html +++ b/third_party/blink/web_tests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html
@@ -13,14 +13,16 @@ }, 0); } else { delete sessionStorage.didNav; + const iframe = document.getElementById('target-iframe') window.addEventListener('message', (event) => { resources = performance.getEntriesByType('resource'); - shouldBe('resources.length', '1'); + shouldBe('resources.length', '2'); shouldBeEqualToString('resources[0].name', 'http://127.0.0.1:8000/js-test-resources/js-test.js'); + shouldBeEqualToString('resources[1].name', iframe.src); if (window.testRunner) finishJSTest(); }); - document.getElementById('target-iframe').contentWindow.postMessage('navigate', '*'); + iframe.contentWindow.postMessage('post-message-to-parent.html', '*'); } }
diff --git a/third_party/blink/web_tests/http/tests/misc/resources/navigate-on-message.html b/third_party/blink/web_tests/http/tests/misc/resources/navigate-on-message.html index d410668..a456e50b 100644 --- a/third_party/blink/web_tests/http/tests/misc/resources/navigate-on-message.html +++ b/third_party/blink/web_tests/http/tests/misc/resources/navigate-on-message.html
@@ -1,8 +1,6 @@ <!DOCTYPE html> <script> -function handleMessage() { - window.location = 'post-message-to-parent.html'; -} - -window.addEventListener("message", handleMessage); + window.addEventListener("message", e => { + location.href = e.data; + }); </script>
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt deleted file mode 100644 index 4999c61..0000000 --- a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -PASS An iframe should report its RT entry when the response is done and before it is completely loaded -FAIL An iframe should report separate RT entries if src changed assert_equals: expected 2 but got 1 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt deleted file mode 100644 index 4999c61..0000000 --- a/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -PASS An iframe should report its RT entry when the response is done and before it is completely loaded -FAIL An iframe should report separate RT entries if src changed assert_equals: expected 2 but got 1 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt deleted file mode 100644 index d9e92b21..0000000 --- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/resource-timing/iframe-sequence-of-events-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -PASS A iframe should report its RT entry when the response is done and before it is completely loaded -FAIL A iframe should report separate RT entries if its src changed from the outside assert_equals: expected 2 but got 1 -Harness: the test ran to completion. -
diff --git a/tools/attribution_reporting/simulator_main.cc b/tools/attribution_reporting/simulator_main.cc index d6e8cab..79417c5d 100644 --- a/tools/attribution_reporting/simulator_main.cc +++ b/tools/attribution_reporting/simulator_main.cc
@@ -36,7 +36,6 @@ constexpr char kSwitchRemoveReportIds[] = "remove_report_ids"; constexpr char kSwitchInputMode[] = "input_mode"; constexpr char kSwitchCopyInputToOutput[] = "copy_input_to_output"; -constexpr char kSwitchReportTimeFormat[] = "report_time_format"; constexpr char kSwitchRandomizedResponseRateNavigation[] = "randomized_response_rate_navigation"; constexpr char kSwitchRandomizedResponseRateEvent[] = @@ -57,7 +56,6 @@ kSwitchRemoveReportIds, kSwitchInputMode, kSwitchCopyInputToOutput, - kSwitchReportTimeFormat, kSwitchRandomizedResponseRateNavigation, kSwitchRandomizedResponseRateEvent, kSwitchSkipDebugCookieChecks, @@ -74,7 +72,6 @@ [--randomized_response_rate_navigation=<rate>] [--input_mode=<input_mode>] [--remove_report_ids] - [--report_time_format=<format>] [--remove_assembled_report] [--skip_debug_cookie_checks] [--remove_actual_report_times] @@ -154,18 +151,6 @@ generated. Use this switch to make the tool's output more deterministic. - --report_time_format=<format> - - Optional. Either `milliseconds_since_unix_epoch` - (default) or `iso8601`. Controls the report time - output format. - - `milliseconds_since_unix_epoch`: Report times are - integer milliseconds since the Unix epoch, e.g. - 1643408373000. - - `iso8601`: Report times are ISO 8601 strings, - e.g. "2022-01-28T22:19:33.000Z". - --remove_assembled_report - Optional. If present, removes the `shared_info`, `aggregation_service_payloads` and `source_registration_time` fields from @@ -344,19 +329,6 @@ } } - auto report_time_format = - content::AttributionReportTimeFormat::kMillisecondsSinceUnixEpoch; - if (command_line.HasSwitch(kSwitchReportTimeFormat)) { - std::string str = command_line.GetSwitchValueASCII(kSwitchReportTimeFormat); - - if (str == "iso8601") { - report_time_format = content::AttributionReportTimeFormat::kISO8601; - } else if (str != "milliseconds_since_unix_epoch") { - std::cerr << "unknown report time format: " << str << std::endl; - return 1; - } - } - auto input_mode = InputMode::kSingle; if (command_line.HasSwitch(kSwitchInputMode)) { std::string input_mode_string = @@ -385,7 +357,6 @@ content::AttributionSimulationOutputOptions{ .remove_report_ids = command_line.HasSwitch(kSwitchRemoveReportIds), - .report_time_format = report_time_format, .remove_assembled_report = command_line.HasSwitch(kSwitchRemoveAssembledReport), .remove_actual_report_times =
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec index 6c51249..f32e139 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec
@@ -148,6 +148,10 @@ "META": {"sizes": {"includes": [50]}}, "includes": [1380], }, + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/supervision/resources.grd": { + "META": {"sizes": {"includes": [10],}}, + "includes": [1383], + }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/profile_internals/resources.grd": { "META": {"sizes": {"includes": [10],}}, "includes": [1385], @@ -184,6 +188,10 @@ "META": {"sizes": {"includes": [30]}}, "includes": [1495], }, + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/vc_tray_tester/resources.grd": { + "META": {"sizes": {"includes": [5]}}, + "includes": [1497], + }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/commander/resources.grd": { "META": {"sizes": {"includes": [15]}}, "includes": [1500], @@ -417,6 +425,10 @@ "META": {"sizes": {"includes": [10]}}, "includes": [2330], }, + "<(SHARED_INTERMEDIATE_DIR)/components/policy/resources/webui/resources.grd": { + "META": {"sizes": {"includes": [20]}}, + "includes": [2335], + }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/app_home/resources.grd": { "META": {"sizes": {"includes": [10]}}, "includes": [2340],
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index f1b795b..0221ee83 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -4937,6 +4937,14 @@ <description>Please enter the description of this user action.</description> </action> +<action name="BookmarkBar_ContextMenu_AddToBookmarkBar"> + <owner>emshack@chromium.org</owner> + <description> + The user added one or more bookmarks to the Bookmarks Bar using the context + menu. + </description> +</action> + <action name="BookmarkBar_ContextMenu_Edit"> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> <description>Please enter the description of this user action.</description> @@ -26727,6 +26735,15 @@ </description> </action> +<action name="QS_Subpage_Network_JoinNetwork"> + <owner>jiamingc@google.com</owner> + <owner>cros-status-area-eng@google.com</owner> + <description> + User clicked on the Join Wi-Fi network entry in the quick settings network + subpage on ChromeOS. + </description> +</action> + <action name="QuickActionSearchWidget.LensQuery"> <owner>ender@google.com</owner> <owner>fgorski@chromium.org</owner>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 3730225..75258d7c 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -29777,6 +29777,7 @@ <int value="2" label="Timed Out"/> <int value="3" label="Failed Key Conflict"/> <int value="4" label="Failed OS Restriction"/> + <int value="5" label="Failed Invalid Permissions"/> </enum> <enum name="DTKeyTrustLevel"> @@ -41891,7 +41892,7 @@ <int value="83" label="SharedAutofill"/> <int value="84" label="DirectSockets"/> <int value="85" label="ClientHintPrefersColorScheme"/> - <int value="86" label="WindowPlacement"/> + <int value="86" label="WindowManagement"/> <int value="87" label="ClientHintUABitness"/> <int value="88" label="ClientHintUAReduced"/> <int value="89" label="ClientHintViewportHeight"/> @@ -59844,6 +59845,7 @@ <int value="-654196854" label="PasswordsKeyboardAccessory:enabled"/> <int value="-653616608" label="MacSyscallSandbox:disabled"/> <int value="-653505852" label="WebViewEmptyComponentLoaderPolicy:disabled"/> + <int value="-652635658" label="OmniboxSquareIcons:enabled"/> <int value="-652144124" label="BorealisBigGl:enabled"/> <int value="-650731862" label="ExperimentalRgbKeyboardPatterns:enabled"/> <int value="-650504533" label="enable-speculative-launch-service-worker"/> @@ -60713,6 +60715,7 @@ <int value="-131886819" label="AutofillEnableMerchantBoundVirtualCards:enabled"/> <int value="-131673218" label="FileHandlingAPI:disabled"/> + <int value="-131536336" label="AndroidImprovedBookmarks:enabled"/> <int value="-131257916" label="OmniboxCompactSuggestions:disabled"/> <int value="-130318058" label="ExoGamepadVibration:enabled"/> <int value="-129823932" label="HardwareSecureDecryptionFallback:disabled"/> @@ -61352,6 +61355,7 @@ <int value="237570976" label="CommandLineOnNonRooted:disabled"/> <int value="237964589" label="enable-manual-fallback-for-password-saving:disabled"/> + <int value="238376121" label="AndroidImprovedBookmarks:disabled"/> <int value="239330938" label="LauncherAppSort:enabled"/> <int value="240856309" label="MimeHandlerViewInCrossProcessFrame:enabled"/> <int value="241187301" label="BrowserTouchBar:disabled"/> @@ -62485,6 +62489,7 @@ label="ThreadedScrollPreventRenderingStarvation:enabled"/> <int value="896506516" label="enable-canvas-context-lost-in-background (obsolete)"/> + <int value="897179602" label="OmniboxSquareIcons:disabled"/> <int value="897457037" label="AutocorrectByDefault:enabled"/> <int value="897695337" label="TabStripRedesign:enabled"/> <int value="898311758" label="ReaderMode:disabled"/>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 0cfe4c1..95e02248 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,24 +5,24 @@ "full_remote_path": "perfetto-luci-artifacts/v31.0/linux-arm64/trace_processor_shell" }, "win": { - "hash": "09ca89530c264dfa4999fd4fd8d5187b67ccb2f7", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/e8a8cbb0f693f8a531e09b9ea8c09e1a7c22ac9a/trace_processor_shell.exe" + "hash": "2e36780bc550c01b9a7a39b635a938083162fb3a", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/c1a1facf09f34b17247d63b72e64b0a6fbfcf048/trace_processor_shell.exe" }, "linux_arm": { "hash": "6373f26144aad58f230d11d6a91efda5a09c9873", "full_remote_path": "perfetto-luci-artifacts/v31.0/linux-arm/trace_processor_shell" }, "mac": { - "hash": "0052abb3d69821310c4ac399476d0a24bcc4f148", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/e8a8cbb0f693f8a531e09b9ea8c09e1a7c22ac9a/trace_processor_shell" + "hash": "a6c5fcf46a921152610122c9d73ea841edd0b6d5", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/c1a1facf09f34b17247d63b72e64b0a6fbfcf048/trace_processor_shell" }, "mac_arm64": { "hash": "5f47ee79e59d00bf3889d30ca52315522c158040", "full_remote_path": "perfetto-luci-artifacts/v31.0/mac-arm64/trace_processor_shell" }, "linux": { - "hash": "3de3e10c41d3d4c8cf0d66fbdfdd1b47d8a2b752", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/8ceabcf8da885eda24b6dc0ae5fab0e3fbd3be2e/trace_processor_shell" + "hash": "175adce01a0db45cd491c67a576deeac90ff8bc9", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/c1a1facf09f34b17247d63b72e64b0a6fbfcf048/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/traffic_annotation/auditor/chromeos/safe_list.txt b/tools/traffic_annotation/auditor/chromeos/safe_list.txt index 0bf56ab6..f9dfde9 100644 --- a/tools/traffic_annotation/auditor/chromeos/safe_list.txt +++ b/tools/traffic_annotation/auditor/chromeos/safe_list.txt
@@ -9,7 +9,6 @@ all,components/quirks/quirks_client.cc all,chromeos/ash/services/device_sync/cryptauth_client_impl.cc all,ash/quick_pair/repository/fast_pair/fast_pair_image_decoder.cc -all,chrome/browser/search/background/ntp_background_service.cc all,chrome/browser/apps/app_service/webapk/webapk_install_task.cc all,chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc all,chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_impl.cc
diff --git a/tools/traffic_annotation/auditor/safe_list.txt b/tools/traffic_annotation/auditor/safe_list.txt index e608af2c..1524de6 100644 --- a/tools/traffic_annotation/auditor/safe_list.txt +++ b/tools/traffic_annotation/auditor/safe_list.txt
@@ -9,6 +9,9 @@ mutable_tag,net/traffic_annotation/network_traffic_annotation.h test_annotation,components/safe_search_api/stub_url_checker.cc test_annotation,net/quic/quic_chromium_client_session_peer.cc +all,ash/ambient/backdrop/ambient_backend_controller_impl.cc +all,chromeos/ash/services/libassistant/chromium_http_connection.cc + # TODO(crbug.com/995852): Fix Android-specific annotations. missing,android_webview/browser/network_service/aw_proxy_config_monitor.cc missing,chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/suggestions/TabSuggestionsServerFetcher.java @@ -22,3 +25,347 @@ missing,chrome/browser/page_annotations/android/java/src/org/chromium/chrome/browser/page_annotations/PageAnnotationsServiceProxy.java missing,chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/StorePersistedTabData.java missing,net/proxy_resolution/proxy_config_service_android.cc + +# Android classes Missing fields internal::contact:email, user_data::type, last_reviewed +missing_new_fields,missing,android_webview/browser/network_service/aw_proxy_config_monitor.cc +missing_new_fields,missing,chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java +missing_new_fields,chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +missing_new_fields,chrome/browser/android/bookmarks/partner_bookmarks_reader.cc +missing_new_fields,chrome/browser/android/compositor/scene_layer/contextual_search_scene_layer.cc +missing_new_fields,chrome/browser/android/customtabs/detached_resource_request.cc +missing_new_fields,chrome/browser/android/explore_sites/explore_sites_fetcher.cc +missing_new_fields,chrome/browser/android/rlz/rlz_ping_handler.cc +missing_new_fields,chrome/browser/android/survey/http_client_type.cc +missing_new_fields,chrome/browser/android/webapk/webapk_installer.cc +missing_new_fields,chrome/browser/download/android/download_manager_service.cc +missing_new_fields,chrome/browser/share/bitmap_download_request.cc +missing_new_fields,chrome/browser/supervised_user/android/favicon_fetcher.cc +missing_new_fields,chrome/browser/supervised_user/kids_chrome_management/kids_chrome_management_client.cc +missing_new_fields,chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java +missing_new_fields,components/content_creation/notes/core/server/notes_server_saver.cc +missing_new_fields,components/content_creation/notes/core/templates/template_fetcher.cc +missing_new_fields,components/image_fetcher/image_fetcher_bridge.cc +missing_new_fields,components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java +missing_new_fields,components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java +# End of Android-specific annotations. + +# Classes missing fields internal::contacts:email, user_data::type, last_reviewed +missing_new_fields,ash/ambient/ambient_photo_cache.cc +missing_new_fields,ash/ambient/ambient_weather_controller.cc +missing_new_fields,ash/assistant/assistant_controller_impl.cc +missing_new_fields,ash/quick_pair/repository/fast_pair/device_metadata_fetcher.cc +missing_new_fields,ash/quick_pair/repository/fast_pair/fast_pair_image_decoder_impl.cc +missing_new_fields,ash/wallpaper/wallpaper_controller_impl.cc +missing_new_fields,ash/webui/os_feedback_ui/backend/help_content_provider.cc +missing_new_fields,ash/webui/projector_app/projector_xhr_sender.cc +missing_new_fields,chrome/browser/apps/app_preload_service/app_preload_server_connector.cc +missing_new_fields,chrome/browser/ash/app_list/search/files/item_suggest_cache.cc +missing_new_fields,chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.cc +missing_new_fields,chrome/browser/ash/arc/auth/arc_background_auth_code_fetcher.cc +missing_new_fields,chrome/browser/ash/bruschetta/bruschetta_installer.cc +missing_new_fields,chrome/browser/ash/customization/customization_document.cc +missing_new_fields,chrome/browser/ash/customization/customization_wallpaper_downloader.cc +missing_new_fields,chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc +missing_new_fields,chrome/browser/ash/input_method/ime_service_connector.cc +missing_new_fields,chrome/browser/ash/login/gaia_reauth_token_fetcher.cc +missing_new_fields,chrome/browser/ash/login/marketing_backend_connector.cc +missing_new_fields,chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc +missing_new_fields,chrome/browser/ash/login/saml/password_sync_token_fetcher.cc +missing_new_fields,chrome/browser/ash/login/screens/terms_of_service_screen.cc +missing_new_fields,chrome/browser/ash/login/users/avatar/user_image_loader.cc +missing_new_fields,chrome/browser/ash/plugin_vm/plugin_vm_license_checker.cc +missing_new_fields,chrome/browser/ash/policy/remote_commands/screenshot_delegate.cc +missing_new_fields,chrome/browser/ash/printing/server_printers_fetcher.cc +missing_new_fields,chrome/browser/ash/remote_apps/remote_apps_manager.cc +missing_new_fields,chrome/browser/ash/smb_client/discovery/netbios_client.cc +missing_new_fields,chrome/browser/ash/wallpaper_handlers/wallpaper_handlers.cc +missing_new_fields,chrome/browser/ash/wilco_dtc_supportd/wilco_dtc_supportd_web_request_service.cc +missing_new_fields,chrome/browser/autofill/autofill_gstatic_reader.cc +missing_new_fields,chrome/browser/autofill/autofill_image_fetcher_impl.cc +missing_new_fields,chrome/browser/bitmap_fetcher/bitmap_fetcher_service.cc +missing_new_fields,chrome/browser/cart/cart_discount_fetcher.cc +missing_new_fields,chrome/browser/cart/cart_discount_link_fetcher.cc +missing_new_fields,chrome/browser/chromeos/extensions/wallpaper_api.cc +missing_new_fields,chrome/browser/device_api/managed_configuration_api.cc +missing_new_fields,chrome/browser/devtools/device/adb/adb_client_socket.cc +missing_new_fields,chrome/browser/devtools/device/android_device_manager.cc +missing_new_fields,chrome/browser/devtools/device/android_web_socket.cc +missing_new_fields,chrome/browser/devtools/device/port_forwarding_controller.cc +missing_new_fields,chrome/browser/devtools/devtools_ui_bindings.cc +missing_new_fields,chrome/browser/download/bubble/download_bubble_controller.cc +missing_new_fields,chrome/browser/extensions/api/downloads/downloads_api.cc +missing_new_fields,chrome/browser/extensions/api/image_writer_private/write_from_url_operation.cc +missing_new_fields,chrome/browser/extensions/blocklist_state_fetcher.cc +missing_new_fields,chrome/browser/extensions/install_signer.cc +missing_new_fields,chrome/browser/extensions/webstore_data_fetcher.cc +missing_new_fields,chrome/browser/extensions/webstore_install_helper.cc +missing_new_fields,chrome/browser/extensions/webstore_installer.cc +missing_new_fields,chrome/browser/intranet_redirect_detector.cc +missing_new_fields,chrome/browser/k_anonymity_service/k_anonymity_service_client.cc +missing_new_fields,chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc +missing_new_fields,chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc +missing_new_fields,chrome/browser/media/router/discovery/dial/dial_url_fetcher.cc +missing_new_fields,chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +missing_new_fields,chrome/browser/media/webrtc/webrtc_log_uploader.cc +missing_new_fields,chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc +missing_new_fields,chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc +missing_new_fields,chrome/browser/nearby_sharing/network_traversal_ice_config_fetcher.cc +missing_new_fields,chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc +missing_new_fields,chrome/browser/new_tab_page/modules/drive/drive_service.cc +missing_new_fields,chrome/browser/new_tab_page/modules/photos/photos_service.cc +missing_new_fields,chrome/browser/new_tab_page/modules/recipes/recipes_service.cc +missing_new_fields,chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc +missing_new_fields,chrome/browser/new_tab_page/promos/promo_service.cc +missing_new_fields,chrome/browser/plugins/plugin_observer.cc +missing_new_fields,chrome/browser/predictors/prefetch_manager.cc +missing_new_fields,chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_origin_prober.cc +missing_new_fields,chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc +missing_new_fields,chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_request.cc +missing_new_fields,chrome/browser/profile_resetter/brandcode_config_fetcher.cc +missing_new_fields,chrome/browser/profile_resetter/reset_report_uploader.cc +missing_new_fields,chrome/browser/profiles/profile_avatar_downloader.cc +missing_new_fields,chrome/browser/profiles/profile_downloader.cc +missing_new_fields,chrome/browser/renderer_context_menu/render_view_context_menu.cc +missing_new_fields,chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc +missing_new_fields,chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc +missing_new_fields,chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc +missing_new_fields,chrome/browser/safe_browsing/download_protection/download_feedback.cc +missing_new_fields,chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc +missing_new_fields,chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_uploader.cc +missing_new_fields,chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc +missing_new_fields,chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc +missing_new_fields,chrome/browser/sharing/web_push/web_push_sender.cc +missing_new_fields,chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc +missing_new_fields,chrome/browser/ssl/certificate_error_reporter.cc +missing_new_fields,chrome/browser/ssl/sct_reporting_service.cc +missing_new_fields,chrome/browser/supervised_user/child_accounts/family_info_fetcher.cc +missing_new_fields,chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc +missing_new_fields,chrome/browser/supervised_user/chromeos/supervised_user_favicon_request_handler.cc +missing_new_fields,chrome/browser/supervised_user/kids_chrome_management/kids_external_fetcher.cc +missing_new_fields,chrome/browser/supervised_user/supervised_user_service.cc +missing_new_fields,chrome/browser/sync_file_system/drive_backend/sync_engine.cc +missing_new_fields,chrome/browser/ui/ash/ambient/ambient_client_impl.cc +missing_new_fields,chrome/browser/ui/ash/assistant/search_and_assistant_enabled_checker.cc +missing_new_fields,chrome/browser/ui/ash/calendar/calendar_keyed_service.cc +missing_new_fields,chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.cc +missing_new_fields,chrome/browser/ui/global_media_controls/cast_media_notification_item.cc +missing_new_fields,chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc +missing_new_fields,chrome/browser/ui/passwords/account_avatar_fetcher.cc +missing_new_fields,chrome/browser/ui/side_search/side_search_tab_contents_helper.cc +missing_new_fields,chrome/browser/ui/views/qrcode_generator/qrcode_generator_bubble.cc +missing_new_fields,chrome/browser/ui/views/sharing_hub/screenshot/screenshot_captured_bubble.cc +missing_new_fields,chrome/browser/ui/views/webid/account_selection_bubble_view.cc +missing_new_fields,chrome/browser/ui/webui/ash/edu_account_login_handler.cc +missing_new_fields,chrome/browser/ui/webui/devtools_ui_data_source.cc +missing_new_fields,chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc +missing_new_fields,chrome/browser/ui/webui/downloads/downloads_dom_handler.cc +missing_new_fields,chrome/browser/ui/webui/management/management_ui_handler_chromeos.cc +missing_new_fields,chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc +missing_new_fields,chrome/browser/ui/webui/sanitized_image_source.cc +missing_new_fields,chrome/browser/ui/webui/signin/ash/user_cloud_signin_restriction_policy_fetcher.cc +missing_new_fields,chrome/browser/ui/webui/whats_new/whats_new_util.cc +missing_new_fields,chrome/browser/video_tutorials/internal/tutorial_fetcher.cc +missing_new_fields,chrome/services/sharing/nearby/platform/webrtc.cc +missing_new_fields,chrome/services/sharing/nearby/platform/wifi_lan_medium.cc +missing_new_fields,chromeos/ash/components/device_activity/device_activity_client.cc +missing_new_fields,chromeos/ash/components/drivefs/drivefs_http_client.cc +missing_new_fields,chromeos/ash/components/fwupd/firmware_update_manager.cc +missing_new_fields,chromeos/ash/components/login/auth/recovery/cryptohome_recovery_service_client.cc +missing_new_fields,chromeos/ash/components/timezone/timezone_request.cc +missing_new_fields,chromeos/components/quick_answers/result_loader.cc +missing_new_fields,chromeos/components/quick_answers/utils/spell_check_language.cc +missing_new_fields,components/assist_ranker/ranker_url_fetcher.cc +missing_new_fields,components/autofill/core/browser/autofill_download_manager.cc +missing_new_fields,components/autofill/core/browser/payments/payments_client.cc +missing_new_fields,components/captive_portal/content/captive_portal_service.cc +missing_new_fields,components/commerce/core/account_checker.cc +missing_new_fields,components/commerce/core/subscriptions/subscriptions_server_proxy.cc +missing_new_fields,components/contextual_search/core/browser/contextual_search_delegate_impl.cc +missing_new_fields,components/digital_asset_links/digital_asset_links_handler.cc +missing_new_fields,components/dom_distiller/core/distiller_url_fetcher.cc +missing_new_fields,components/domain_reliability/uploader.cc +missing_new_fields,components/download/internal/common/download_item_impl.cc +missing_new_fields,components/download/internal/common/parallel_download_job.cc +missing_new_fields,components/favicon/core/history_ui_favicon_request_handler_impl.cc +missing_new_fields,components/feed/core/v2/feed_network_impl.cc +missing_new_fields,components/feed/core/v2/image_fetcher.cc +missing_new_fields,components/feedback/feedback_uploader.cc +missing_new_fields,components/invalidation/impl/per_user_topic_subscription_request.cc +missing_new_fields,components/media_router/common/providers/cast/channel/cast_socket.cc +missing_new_fields,components/metrics/net/net_metrics_log_uploader.cc +missing_new_fields,components/mirroring/service/udp_socket_client.cc +missing_new_fields,components/network_time/network_time_tracker.cc +missing_new_fields,components/ntp_snippets/content_suggestions_service.cc +missing_new_fields,components/ntp_snippets/remote/cached_image_fetcher.cc +missing_new_fields,components/ntp_snippets/remote/json_request.cc +missing_new_fields,components/ntp_tiles/icon_cacher_impl.cc +missing_new_fields,components/ntp_tiles/popular_sites_impl.cc +missing_new_fields,components/offline_pages/core/prefetch/prefetch_downloader_impl.cc +missing_new_fields,components/offline_pages/core/prefetch/prefetch_request_fetcher.cc +missing_new_fields,components/offline_pages/core/prefetch/visuals_fetch_by_url.cc +missing_new_fields,components/omnibox/browser/base_search_provider.cc +missing_new_fields,components/omnibox/browser/document_suggestions_service.cc +missing_new_fields,components/omnibox/browser/remote_suggestions_service.cc +missing_new_fields,components/omnibox/browser/search_provider.cc +missing_new_fields,components/openscreen_platform/tls_connection_factory.cc +missing_new_fields,components/openscreen_platform/udp_socket.cc +missing_new_fields,components/optimization_guide/core/hints_fetcher.cc +missing_new_fields,components/optimization_guide/core/prediction_model_download_manager.cc +missing_new_fields,components/optimization_guide/core/prediction_model_fetcher_impl.cc +missing_new_fields,components/password_manager/core/browser/affiliation/hash_affiliation_fetcher.cc +missing_new_fields,components/password_manager/core/browser/generation/password_requirements_spec_fetcher_impl.cc +missing_new_fields,components/password_manager/core/browser/leak_detection/leak_detection_request.cc +missing_new_fields,components/password_manager/core/browser/well_known_change_password_state.cc +missing_new_fields,components/payments/core/payment_manifest_downloader.cc +missing_new_fields,components/permissions/prediction_service/prediction_service.cc +missing_new_fields,components/policy/content/safe_search_service.cc +missing_new_fields,components/policy/core/browser/signin/user_cloud_signin_restriction_policy_fetcher.cc +missing_new_fields,components/policy/core/common/cloud/device_management_service.cc +missing_new_fields,components/policy/core/common/cloud/external_policy_data_fetcher.cc +missing_new_fields,components/policy/core/common/cloud/user_info_fetcher.cc +missing_new_fields,components/proxy_config/pref_proxy_config_tracker_impl.cc +missing_new_fields,components/query_tiles/internal/cached_image_loader.cc +missing_new_fields,components/query_tiles/internal/tile_fetcher.cc +missing_new_fields,components/safe_browsing/content/browser/client_side_detection_service.cc +missing_new_fields,components/safe_browsing/content/browser/threat_details_cache.cc +missing_new_fields,components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.cc +missing_new_fields,components/safe_browsing/core/browser/db/v4_update_protocol_manager.cc +missing_new_fields,components/safe_browsing/core/browser/password_protection/password_protection_request.cc +missing_new_fields,components/safe_browsing/core/browser/ping_manager.cc +missing_new_fields,components/safe_browsing/core/browser/realtime/url_lookup_service.cc +missing_new_fields,components/safe_browsing/core/browser/tailored_security_service/tailored_security_service.cc +missing_new_fields,components/safety_check/update_check_helper.cc +missing_new_fields,components/search/start_suggest_service.cc +missing_new_fields,components/search_engines/template_url_fetcher.cc +missing_new_fields,components/search_provider_logos/logo_service_impl.cc +missing_new_fields,components/security_interstitials/content/common_name_mismatch_handler.cc +missing_new_fields,components/signin/internal/identity_manager/account_fetcher_service.cc +missing_new_fields,components/signin/internal/identity_manager/gaia_cookie_manager_service.cc +missing_new_fields,components/spellcheck/browser/spelling_service_client.cc +missing_new_fields,components/sync/driver/sync_stopped_reporter.cc +missing_new_fields,components/sync/engine/net/http_bridge.cc +missing_new_fields,components/sync/trusted_vault/trusted_vault_request.cc +missing_new_fields,components/translate/core/browser/translate_url_fetcher.cc +missing_new_fields,components/ui_devtools/devtools_server.cc +missing_new_fields,components/update_client/net/network_impl.cc +missing_new_fields,components/variations/service/variations_service.cc +missing_new_fields,components/webapps/services/web_app_origin_association/web_app_origin_association_fetcher.cc +missing_new_fields,content/browser/aggregation_service/aggregatable_report_sender.cc +missing_new_fields,content/browser/aggregation_service/aggregation_service_network_fetcher_impl.cc +missing_new_fields,content/browser/attribution_reporting/attribution_report_network_sender.cc +missing_new_fields,content/browser/background_fetch/background_fetch_delegate_proxy.cc +missing_new_fields,content/browser/devtools/devtools_http_handler.cc +missing_new_fields,content/browser/devtools/protocol/devtools_network_resource_loader.cc +missing_new_fields,content/browser/devtools/protocol/target_handler.cc +missing_new_fields,content/browser/devtools/protocol/tethering_handler.cc +missing_new_fields,content/browser/direct_sockets/direct_sockets_service_impl.cc +missing_new_fields,content/browser/download/drag_download_file.cc +missing_new_fields,content/browser/download/save_file_manager.cc +missing_new_fields,content/browser/indexed_db/indexed_db_internals_ui.cc +missing_new_fields,content/browser/interest_group/interest_group_manager_impl.cc +missing_new_fields,content/browser/interest_group/interest_group_permissions_checker.cc +missing_new_fields,content/browser/interest_group/interest_group_update_manager.cc +missing_new_fields,content/browser/loader/navigation_early_hints_manager.cc +missing_new_fields,content/browser/loader/navigation_url_loader_impl.cc +missing_new_fields,content/browser/media/url_provision_fetcher.cc +missing_new_fields,content/browser/preloading/prefetch/prefetch_origin_prober.cc +missing_new_fields,content/browser/preloading/prefetch/prefetch_service.cc +missing_new_fields,content/browser/renderer_host/pending_beacon_service.cc +missing_new_fields,content/browser/renderer_host/pepper/pepper_socket_utils.cc +missing_new_fields,content/browser/renderer_host/render_frame_host_impl.cc +missing_new_fields,content/browser/service_worker/service_worker_fetch_dispatcher.cc +missing_new_fields,content/browser/service_worker/service_worker_new_script_fetcher.cc +missing_new_fields,content/browser/service_worker/service_worker_single_script_update_checker.cc +missing_new_fields,content/browser/speech/speech_recognition_engine.cc +missing_new_fields,content/browser/web_contents/web_contents_impl.cc +missing_new_fields,content/browser/web_package/signed_exchange_cert_fetcher.cc +missing_new_fields,content/browser/web_package/web_bundle_utils.cc +missing_new_fields,content/browser/webid/idp_network_request_manager.cc +missing_new_fields,content/browser/websockets/websocket_connector_impl.cc +missing_new_fields,content/browser/worker_host/worker_script_fetcher.cc +missing_new_fields,content/services/auction_worklet/auction_downloader.cc +missing_new_fields,content/services/shared_storage_worklet/module_script_downloader.cc +missing_new_fields,content/shell/browser/shell_devtools_bindings.cc +missing_new_fields,device/bluetooth/bluetooth_socket_net.cc +missing_new_fields,device/fido/cable/fido_tunnel_device.cc +missing_new_fields,device/fido/cable/v2_authenticator.cc +missing_new_fields,extensions/browser/api/socket/socket.cc +missing_new_fields,extensions/browser/content_hash_fetcher.cc +missing_new_fields,extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc +missing_new_fields,extensions/browser/updater/extension_downloader.cc +missing_new_fields,google_apis/gaia/gaia_access_token_fetcher.cc +missing_new_fields,google_apis/gaia/gaia_auth_fetcher.cc +missing_new_fields,google_apis/gaia/gaia_oauth_client.cc +missing_new_fields,google_apis/gcm/engine/checkin_request.cc +missing_new_fields,google_apis/gcm/engine/connection_factory_impl.cc +missing_new_fields,google_apis/gcm/engine/registration_request.cc +missing_new_fields,google_apis/gcm/engine/unregistration_request.cc +missing_new_fields,headless/lib/browser/headless_request_context_manager.cc +missing_new_fields,media/cast/net/udp_transport_impl.cc +missing_new_fields,net/cert_net/cert_net_fetcher_url_request.cc +missing_new_fields,net/dns/dns_transaction.cc +missing_new_fields,net/http/bidirectional_stream.cc +missing_new_fields,net/proxy_resolution/proxy_config_service.cc +missing_new_fields,net/proxy_resolution/proxy_config_with_annotation.cc +missing_new_fields,net/quic/quic_chromium_client_session.cc +missing_new_fields,net/quic/quic_chromium_packet_writer.cc +missing_new_fields,net/reporting/reporting_uploader.cc +missing_new_fields,net/server/http_server.cc +missing_new_fields,net/socket/socket_bio_adapter.cc +missing_new_fields,net/spdy/spdy_session.cc +missing_new_fields,net/websockets/websocket_basic_stream.cc +missing_new_fields,remoting/base/directory_service_client.cc +missing_new_fields,remoting/base/telemetry_log_writer.cc +missing_new_fields,remoting/client/notification/notification_client.cc +missing_new_fields,remoting/host/heartbeat_sender.cc +missing_new_fields,remoting/host/remoting_register_support_host_request.cc +missing_new_fields,remoting/host/security_key/security_key_socket.cc +missing_new_fields,remoting/protocol/remoting_ice_config_request.cc +missing_new_fields,remoting/protocol/ssl_hmac_channel_authenticator.cc +missing_new_fields,remoting/protocol/stream_message_pipe_adapter.cc +missing_new_fields,remoting/protocol/stream_packet_socket.cc +missing_new_fields,remoting/signaling/ftl_messaging_client.cc +missing_new_fields,remoting/signaling/ftl_registration_manager.cc +missing_new_fields,remoting/signaling/remoting_log_to_server.cc +missing_new_fields,rlz/lib/financial_ping.cc +missing_new_fields,services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc +missing_new_fields,services/image_annotation/annotator.cc +missing_new_fields,services/network/network_context.cc +missing_new_fields,services/network/public/cpp/server/http_server.cc +missing_new_fields,third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +missing_new_fields,third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc +missing_new_fields,third_party/libaddressinput/chromium/chrome_metadata_source.cc +missing_new_fields,ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc +missing_new_fields,chrome/browser/ash/printing/oauth2/authorization_server_data.cc +missing_new_fields,chrome/browser/ash/printing/oauth2/authorization_server_session.cc +missing_new_fields,chrome/browser/ash/printing/oauth2/ipp_endpoint_token_fetcher.cc +missing_new_fields,chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc +missing_new_fields,chromeos/ash/services/device_sync/cryptauth_device_manager_impl.cc +missing_new_fields,components/browsing_data/core/counters/history_counter.cc +missing_new_fields,components/browsing_data/core/history_notice_utils.cc +missing_new_fields,components/history/core/browser/browsing_history_service.cc +missing_new_fields,components/history/core/browser/history_service.cc +missing_new_fields,components/language/content/browser/geo_language_provider.cc +missing_new_fields,google_apis/gaia/oauth2_mint_token_flow.cc +missing_new_fields,services/device/geolocation/network_location_provider.cc +missing_new_fields,chrome/browser/browser_switcher/browser_switcher_service.cc +missing_new_fields,chrome/browser/enterprise/connectors/device_trust/key_management/core/network/mojo_key_network_delegate.cc +missing_new_fields,chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc +missing_new_fields,chrome/browser/error_reporting/chrome_js_error_report_processor_nonchromeos.cc +missing_new_fields,chrome/browser/search/background/ntp_background_service.cc +missing_new_fields,chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller_desktop_impl.cc +missing_new_fields,chrome/browser/ui/webui/welcome/ntp_background_fetcher.cc +missing_new_fields,components/live_caption/live_translate_controller.cc +missing_new_fields,chrome/chrome_cleaner/components/recovery_component.cc +missing_new_fields,chrome/chrome_cleaner/logging/cleaner_logging_service.cc +missing_new_fields,chrome/chrome_cleaner/logging/reporter_logging_service.cc +missing_new_fields,net/proxy_resolution/win/windows_system_proxy_resolution_request.cc +missing_new_fields,chrome/browser/ash/net/network_diagnostics/http_request_manager.cc +missing_new_fields,chrome/browser/ash/wallpaper/wallpaper_drivefs_delegate_impl.cc +missing_new_fields,chrome/browser/ui/webui/ash/emoji/gif_tenor_api_fetcher.cc +missing_new_fields,chromeos/ash/components/trial_group/trial_group_checker.cc +missing_new_fields,chrome/browser/apps/app_preload_service/web_app_preload_installer.cc +missing_new_fields,chrome/browser/ash/net/network_diagnostics/network_diagnostics_util.cc +missing_new_fields,chrome/browser/ash/net/network_diagnostics/tls_prober.cc +missing_new_fields,chrome/browser/fast_checkout/fast_checkout_capabilities_fetcher_impl.cc +missing_new_fields,chrome/browser/ash/file_suggest/item_suggest_cache.cc \ No newline at end of file
diff --git a/tools/traffic_annotation/scripts/auditor/README.md b/tools/traffic_annotation/scripts/auditor/README.md index d919ce69..ae849f7 100644 --- a/tools/traffic_annotation/scripts/auditor/README.md +++ b/tools/traffic_annotation/scripts/auditor/README.md
@@ -49,6 +49,9 @@ CreateMutableNetworkTrafficAnnotationTag() function. * `test_annotation`: Files and paths in this category can use the TRAFFIC_ANNOTATION_FOR_TESTS tag. +* `missing_new_fields`: If none of internal::contacts::email, user_data::type + and last_reviewed fields are populated then file and paths in this category + are exempted getting validated. ## hashes.py
diff --git a/tools/traffic_annotation/scripts/auditor/auditor.py b/tools/traffic_annotation/scripts/auditor/auditor.py index 3f1aa812..975675e3 100755 --- a/tools/traffic_annotation/scripts/auditor/auditor.py +++ b/tools/traffic_annotation/scripts/auditor/auditor.py
@@ -29,6 +29,8 @@ import util from util import UniqueId, HashCode +from datetime import datetime + # Path to the directory where this script is. SCRIPT_DIR = Path(__file__).resolve().parent @@ -307,12 +309,22 @@ return self.second_id == other.second_id return False + def is_field_populated(self, field_name: str) -> bool: + """Checks if a field has a value. If field is internal or user_data + then checks that the list of fields is not empty.""" + attr = getattr(self.proto.semantics, field_name) + if not attr: + return False + if field_name in ['internal', 'user_data']: + return bool(attr.ListFields()) + return True + def get_semantics_field_numbers(self) -> List[int]: """Returns the proto field numbers of TrafficSemantics fields that are included in this annotation.""" return [ f.number for f in traffic_annotation.TrafficSemantics.DESCRIPTOR.fields - if getattr(self.proto.semantics, f.name) + if self.is_field_populated(f.name) ] def get_policy_field_numbers(self) -> List[int]: @@ -450,6 +462,98 @@ return [] + def check_new_fields(self, is_safe_listed: bool) -> List[AuditorError]: + """Checks empty or invalid value in internal::contacts::email, + user_data::type and last_reviewed fields in annotation.""" + errors = [] + missing_fields = [] + semantics = self.proto.semantics + + missing_last_reviewed_field = not semantics.last_reviewed + if missing_last_reviewed_field: + missing_fields.append("last_reviewed") + + missing_contacts = self._check_contacts() + if missing_contacts: + missing_fields.append(missing_contacts) + + missing_user_data = not semantics.user_data.type + if missing_user_data: + missing_fields.append("user_data::type") + else: + errors.extend(self._validate_user_data_type_values()) + + if missing_fields: + error_txt = ', '.join(missing_fields) + errors.append( + AuditorError(ErrorType.MISSING_NEW_FIELDS, + "missing fields: {}".format(error_txt), self.file, + self.line)) + + # If file is not in safe list then return all errors encountered for + # last_reviewed, contacts and user_data. + if not is_safe_listed: + return errors + + # Any files should be removed from safe_list list if no error encountered. + if not errors: + return [ + AuditorError(ErrorType.REMOVE_FROM_SAFE_LIST, + "Annotation tagged with MISSING_NEW_FIELDS is complete", + self.file, self.line) + ] + + # File can only be in safe_list if all 3 fields are missing. Partially + # populating fields is not allowed. + if missing_contacts and missing_user_data and missing_last_reviewed_field: + return [] + + # Return error for file in safe_list with partially populated fields. + errors.append( + AuditorError( + ErrorType.MISSING_NEW_FIELDS, + "Cannot partially populate fields and add file in safe_list.txt", + self.file, self.line)) + + return errors + + def check_last_reviewed_date_format(self) -> List[AuditorError]: + """If last_reviewed date field format does not match YYYY-mm-dd, then + return INVALID_DATE_FORMAT error.""" + date_str = self.proto.semantics.last_reviewed + try: + if date_str: + datetime.strptime(date_str, '%Y-%m-%d') + except ValueError: + return [ + AuditorError(ErrorType.INVALID_DATE_FORMAT, "Should be YYYY-mm-dd", + self.file, self.line) + ] + return [] + + def _check_contacts(self) -> Optional[str]: + """Checks presence of contacts fields in the annotation. All available + contacts fields should contain email""" + all_contacts = self.proto.semantics.internal.contacts + + if not all_contacts: + return "internal::contacts" + + if any(not contact.email for contact in all_contacts): + return "internal::contacts::email" + + return None + + def _validate_user_data_type_values(self) -> List[AuditorError]: + """Checks if any of semantics::user_data:type has an UNSPECIFIED value.""" + semantics = self.proto.semantics + if semantics.UserData.UserDataType.UNSPECIFIED in semantics.user_data.type: + return [ + AuditorError(ErrorType.INVALID_USER_DATA_TYPE, "UNSPECIFIED", + self.file, self.line) + ] + return [] + class ExceptionType(Enum): """Valid exception types in safe_list.txt.""" @@ -461,6 +565,9 @@ TEST_ANNOTATION = "test_annotation" # Ignore CreateMutableNetworkTrafficAnnotationTag(). MUTABLE_TAG = "mutable_tag" + # Ignore usage of newly added fields (contacts, user_data, last_reviewed) + # in annotation. + MISSING_NEW_FIELDS = "missing_new_fields" @classmethod def from_error_type(cls, error_type: ErrorType): @@ -1401,11 +1508,18 @@ """Validate the contents of a COMPLETE annotation.""" assert annotation.type == Annotation.Type.COMPLETE + is_safe_listed = self._is_safe_listed(annotation.file, + ExceptionType.MISSING_NEW_FIELDS) errors = annotation.check_complete() + errors.extend(annotation.check_new_fields(is_safe_listed)) + if not errors: errors = annotation.check_consistent() + if not errors: + errors = annotation.check_last_reviewed_date_format() + return errors def check_annotation_contents(self) -> List[AuditorError]:
diff --git a/tools/traffic_annotation/scripts/auditor/auditor_test.py b/tools/traffic_annotation/scripts/auditor/auditor_test.py index c72546b..b4dccb0 100755 --- a/tools/traffic_annotation/scripts/auditor/auditor_test.py +++ b/tools/traffic_annotation/scripts/auditor/auditor_test.py
@@ -32,7 +32,13 @@ path_filters = [ (TEST_DATA_DIR / - "test_sample_annotations.cc").relative_to(SRC_DIR).as_posix() + "test_sample_annotations.cc").relative_to(SRC_DIR).as_posix(), + (TEST_DATA_DIR / + "missing_new_field_sample_data/test_new_field_safelisted.cc" + ).relative_to(SRC_DIR).as_posix(), + (TEST_DATA_DIR / + "missing_new_field_sample_data/sample_new_field_not_safelisted.cc" + ).relative_to(SRC_DIR).as_posix() ] self.auditor_ui = AuditorUI(build_path, path_filters, @@ -117,9 +123,12 @@ relevant_files = [ "tools/traffic_annotation/scripts/test_data/" - "objective_cpp.mm", - "tools/traffic_annotation/scripts/test_data/" + "objective_cpp.mm", "tools/traffic_annotation/scripts/test_data/" "test_sample_annotations.cc", + "tools/traffic_annotation/scripts/test_data/" + "missing_new_field_sample_data/test_new_field_safelisted.cc", + "tools/traffic_annotation/scripts/test_data/" + "missing_new_field_sample_data/sample_new_field_not_safelisted.cc" ] self.assertCountEqual([Path(f) for f in relevant_files], filter.git_files) @@ -166,7 +175,7 @@ # Files defining missing annotation functions in net/ are exception of # 'missing' type. - self.assertTrue( + self.assertFalse( auditor._is_safe_listed(Path("net/url_request/url_fetcher.cc"), ExceptionType.MISSING)) self.assertTrue( @@ -198,6 +207,8 @@ ("bad_syntax_annotation2.txt", ErrorType.SYNTAX, None), ("bad_syntax_annotation3.txt", ErrorType.SYNTAX, None), ("bad_syntax_annotation4.txt", ErrorType.SYNTAX, None), + ("bad_syntax_annotation5.txt", ErrorType.SYNTAX, None), + ("bad_syntax_annotation6.txt", ErrorType.SYNTAX, None), # "fatal" means a Python exception gets raised. ("fatal_annotation1.txt", "fatal", None), ("fatal_annotation2.txt", "fatal", None), @@ -411,103 +422,125 @@ test_no = 0 while True: - annotation = self.create_annotation_sample() - annotation.unique_id = "foobar_policy_fetcher{}".format(test_no) - test_description = "" - expect_error = True - if test_no == 0: - test_description = "All fields OK." - expect_error = False - elif test_no == 1: - test_description = "Missing semantics::sender" - annotation.proto.semantics.sender = "" - elif test_no == 2: - test_description = "Missing semantics::description" - annotation.proto.semantics.description = "" - elif test_no == 3: - test_description = "Missing semantics::trigger" - annotation.proto.semantics.trigger = "" - elif test_no == 4: - test_description = "Missing semantics::data" - annotation.proto.semantics.data = "" - elif test_no == 5: - test_description = "Missing semantics::destination" - annotation.proto.semantics.destination = Destination.UNSPECIFIED - elif test_no == 6: - test_description = "Missing policy::cookies_allowed" - annotation.proto.policy.cookies_allowed = CookiesAllowed.UNSPECIFIED - elif test_no == 7: - test_description = \ - "policy::cookies_allowed = NO with existing policy::cookies_store." - annotation.proto.policy.cookies_allowed = CookiesAllowed.NO - annotation.proto.policy.cookies_store = "somewhere" - elif test_no == 8: - test_description = \ - "policy::cookies_allowed = NO and no policy::cookies_store." - annotation.proto.policy.cookies_allowed = CookiesAllowed.NO - annotation.proto.policy.cookies_store = "" - expect_error = False - elif test_no == 9: - test_description = \ - "policy::cookies_allowed = YES and policy::cookies_store exists." - annotation.proto.policy.cookies_allowed = CookiesAllowed.YES - annotation.proto.policy.cookies_store = "somewhere" - expect_error = False - elif test_no == 10: - test_description = \ - "policy::cookies_allowed = YES and no policy::cookies_store." - annotation.proto.policy.cookies_allowed = CookiesAllowed.YES - annotation.proto.policy.cookies_store = "" - elif test_no == 11: - test_description = "Missing policy::setting." - annotation.proto.policy.setting = "" - break - elif test_no == 12: - test_description = \ - "Missing policy::chrome_policy and " \ - "policy::policy_exception_justification." - annotation.proto.policy.chrome_policy = "" - annotation.proto.policy.policy_exception_justification = "" - elif test_no == 13: - test_description = \ - "Missing policy::chrome_policy and existing " \ - "policy::policy_exception_justification." - annotation.proto.policy.chrome_policy = "" - annotation.proto.policy.policy_exception_justification = "Because!" - expect_error = False - elif test_no == 14: - test_description = \ - "Existing policy::chrome_policy and no " \ - "policy::policy_exception_justification." - self.assertTrue(annotation.proto.policy.chrome_policy) - annotation.proto.policy.policy_exception_justification = "" - expect_error = False - elif test_no == 15: - test_description = \ - "Existing policy::chrome_policy and existing" \ - "policy::policy_exception_justification." - self.assertTrue(annotation.proto.policy.chrome_policy) - annotation.proto.policy.policy_exception_justification = "Because!" - else: - # Done checking individual test cases. - break + try: + annotation = self.create_annotation_sample() + annotation.unique_id = "foobar_policy_fetcher{}".format(test_no) + test_description = "" + expect_error = True + logger.info( + "test_check_complete_annotations test number {}".format(test_no)) + if test_no == 0: + test_description = "All fields OK." + expect_error = False + elif test_no == 1: + test_description = "Missing semantics::sender" + annotation.proto.semantics.sender = "" + elif test_no == 2: + test_description = "Missing semantics::description" + annotation.proto.semantics.description = "" + elif test_no == 3: + test_description = "Missing semantics::trigger" + annotation.proto.semantics.trigger = "" + elif test_no == 4: + test_description = "Missing semantics::data" + annotation.proto.semantics.data = "" + elif test_no == 5: + test_description = "Missing semantics::destination" + annotation.proto.semantics.destination = Destination.UNSPECIFIED + elif test_no == 6: + test_description = "Missing policy::cookies_allowed" + annotation.proto.policy.cookies_allowed = CookiesAllowed.UNSPECIFIED + elif test_no == 7: + test_description = \ + "policy::cookies_allowed = NO with existing policy::cookies_store." + annotation.proto.policy.cookies_allowed = CookiesAllowed.NO + annotation.proto.policy.cookies_store = "somewhere" + elif test_no == 8: + test_description = \ + "policy::cookies_allowed = NO and no policy::cookies_store." + annotation.proto.policy.cookies_allowed = CookiesAllowed.NO + annotation.proto.policy.cookies_store = "" + expect_error = False + elif test_no == 9: + test_description = \ + "policy::cookies_allowed = YES and policy::cookies_store exists." + annotation.proto.policy.cookies_allowed = CookiesAllowed.YES + annotation.proto.policy.cookies_store = "somewhere" + expect_error = False + elif test_no == 10: + test_description = \ + "policy::cookies_allowed = YES and no policy::cookies_store." + annotation.proto.policy.cookies_allowed = CookiesAllowed.YES + annotation.proto.policy.cookies_store = "" + elif test_no == 11: + test_description = "Missing policy::setting." + annotation.proto.policy.setting = "" + expect_error = False + elif test_no == 12: + test_description = \ + "Missing policy::chrome_policy and " \ + "policy::policy_exception_justification." + annotation.proto.policy.ClearField("chrome_policy") + annotation.proto.policy.policy_exception_justification = "" + elif test_no == 13: + test_description = \ + "Missing policy::chrome_policy and existing " \ + "policy::policy_exception_justification." + annotation.proto.policy.ClearField("chrome_policy") + annotation.proto.policy.policy_exception_justification = "Because!" + expect_error = False + elif test_no == 14: + test_description = \ + "Existing policy::chrome_policy and no " \ + "policy::policy_exception_justification." + self.assertTrue(annotation.proto.policy.chrome_policy) + annotation.proto.policy.policy_exception_justification = "" + expect_error = False + elif test_no == 15: + test_description = \ + "Existing policy::chrome_policy and existing" \ + "policy::policy_exception_justification." + self.assertTrue(annotation.proto.policy.chrome_policy) + annotation.proto.policy.policy_exception_justification = "Because!" + elif test_no == 16: + test_description = "Missing semantics::internal::contacts" + annotation.proto.semantics.internal.Clear() + elif test_no == 17: + test_description = "Missing semantics::internal::contacts::email" + annotation.proto.semantics.internal.ClearField("contacts") + elif test_no == 18: + test_description = "Missing semantics::internal::user_data::type" + annotation.proto.semantics.user_data.Clear() + elif test_no == 19: + test_description = "Empty value semantics::internal::user_data::type" + annotation.proto.semantics.user_data.ClearField("type") + elif test_no == 20: + test_description = "Invalid format semantics::last_reviewed" + annotation.proto.semantics.last_reviewed = "23-12-2023" + else: + # Done checking individual test cases. + break - logger.debug("Testing: {}".format(test_description)) + logger.debug("Testing: {}".format(test_description)) - self.auditor.extracted_annotations = [annotation] - errors = self.auditor.check_annotation_contents() + self.auditor.extracted_annotations = [annotation] + errors = self.auditor.check_annotation_contents() - if expect_error: - self.assertEqual(1, len(errors), - "test_no={}, errors={}".format(test_no, errors)) - else: - self.assertEqual([], errors, - "test_no={}, errors={}".format(test_no, errors)) + if expect_error: + self.assertEqual(1, len(errors), + "test_no={}, errors={}".format(test_no, errors)) + else: + self.assertEqual([], errors, + "test_no={}, errors={}".format(test_no, errors)) - annotations.append(annotation) + annotations.append(annotation) - if expect_error: - expected_errors_count += 1 + if expect_error: + expected_errors_count += 1 + + except Exception as ex: + logger.error("Exception occurred in test_check_complete_annotations", + ex) test_no += 1 @@ -676,7 +709,10 @@ test_data/test_sample_annotations.cc""" expected = [ "ok_annotation", "syntax_error_annotation", - "incomplete_error_annotation" + "incomplete_error_annotation", "invalid_assignment_annotation", + "partially_populated_safe_listed", "missing_all_new_field_safe_listed", + "ok_new_fields_safe_listed", "missing_new_fields_not_safe_listed", + "missing_email_not_safe_listed", "invalid_userdata_not_safe_listed" ] self.assertCountEqual(expected, self.sample_annotations.keys()) @@ -727,6 +763,96 @@ 1)[1].lstrip().split(", ") self.assertCountEqual(expected_missing_fields, missing_fields) + def test_invalid_date_format_errors(self) -> None: + self.auditor.parse_extractor_output( + [self.sample_annotations["invalid_assignment_annotation"]]) + + self.assertTrue(self.auditor.extracted_annotations) + errors = self.auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + result = errors[0] + self.assertEqual(ErrorType.INVALID_DATE_FORMAT, result.type) + + def test_missing_new_fields_errors(self) -> None: + """Annotation is Missing new fields, related class is not in safe_list.txt. + Annotation check returns MISSING_NEW_FIELDS error.""" + self.auditor.parse_extractor_output( + [self.sample_annotations["missing_new_fields_not_safe_listed"]]) + expected_error_msg = [ + 'last_reviewed', 'internal::contacts', 'user_data::type' + ] + + self.assertTrue(self.auditor.extracted_annotations) + errors = self.auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + self.assertEqual(ErrorType.MISSING_NEW_FIELDS, errors[0].type) + for text in expected_error_msg: + self.assertTrue(errors[0].message.find(text) >= 0) + + def test_missing_email_error(self) -> None: + """Annotation is Missing email value, related class is not in safe_list.txt. + Annotation check returns MISSING_NEW_FIELDS error.""" + self.auditor.parse_extractor_output( + [self.sample_annotations["missing_email_not_safe_listed"]]) + self.assertTrue(self.auditor.extracted_annotations) + errors = self.auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + self.assertEqual(ErrorType.MISSING_NEW_FIELDS, errors[0].type) + self.assertTrue(errors[0].message.find('internal::contacts::email') >= 0) + + def test_user_data_unspecified(self) -> None: + """Annotation user_data::type contains UNSPECIFIED value. Annotation Check + returns INVALID_USER_DATA_TYPE error.""" + self.auditor.parse_extractor_output( + [self.sample_annotations["invalid_userdata_not_safe_listed"]]) + self.assertTrue(self.auditor.extracted_annotations) + errors = self.auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + self.assertEqual(ErrorType.INVALID_USER_DATA_TYPE, errors[0].type) + + def test_missing_new_fields_safe_listed_file(self) -> None: + """Check annotation without new fields, related class is + in safe_list.txt. Annotation Check does not return + an new fields related error. """ + + ## use real safe_list.txt + auditor = Auditor(get_current_platform()) + auditor.parse_extractor_output( + [self.sample_annotations["missing_all_new_field_safe_listed"]]) + self.assertTrue(auditor.extracted_annotations) + errors = auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + error_type = [] + for error in errors: + self.assertTrue(error.type not in [ + ErrorType.MISSING_NEW_FIELDS, ErrorType.INVALID_DATE_FORMAT, + ErrorType.INVALID_USER_DATA_TYPE, ErrorType.REMOVE_FROM_SAFE_LIST + ]) + + def test_partially_populated_safe_listed_file(self) -> None: + """Check annotation with last_reviewed but missing email fields, + related class is in safe_list.txt. Check returns MISSING_NEW_FIELDS + annotation error.""" + auditor = Auditor(get_current_platform()) + auditor.parse_extractor_output( + [self.sample_annotations["partially_populated_safe_listed"]]) + self.assertTrue(auditor.extracted_annotations) + errors = auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + for error in errors: + self.assertEqual(ErrorType.MISSING_NEW_FIELDS, error.type) + + def test_ok_new_fields_safe_listed_file(self) -> None: + """Annotation is complete with all new fields but still present in + safe_list.txt. Check returns error to REMOVE_FROM_SAFE_LIST.""" + auditor = Auditor(get_current_platform()) + auditor.parse_extractor_output( + [self.sample_annotations["ok_new_fields_safe_listed"]]) + self.assertTrue(auditor.extracted_annotations) + errors = auditor.run_all_checks([], True, Exporter.GROUPING_XML_PATH) + self.assertTrue(errors) + self.assertEqual(ErrorType.REMOVE_FROM_SAFE_LIST, errors[0].type) + def test_get_current_platform(self) -> None: host_platform = platform.system().lower()
diff --git a/tools/traffic_annotation/scripts/auditor/error.py b/tools/traffic_annotation/scripts/auditor/error.py index 073d0a7..6dadd702 100644 --- a/tools/traffic_annotation/scripts/auditor/error.py +++ b/tools/traffic_annotation/scripts/auditor/error.py
@@ -53,6 +53,15 @@ ADD_GROUPING_XML = auto() # Annotations should be removed from grouping.xml. REMOVE_GROUPING_XML = auto() + # Annotation is missing internal email, user_data + # or last_reviewed fields + MISSING_NEW_FIELDS = auto() + # Annotation should be removed from safe_list.txt + REMOVE_FROM_SAFE_LIST = auto() + # User data type should not be unspecified + INVALID_USER_DATA_TYPE = auto() + # Date format should be YYYY-mm-dd + INVALID_DATE_FORMAT = auto() class AuditorError: @@ -71,7 +80,8 @@ assert message or result_type in [ ErrorType.MISSING_TAG_USED, ErrorType.TEST_ANNOTATION, ErrorType.NO_ANNOTATION, ErrorType.MISSING_SECOND_ID, - ErrorType.MUTABLE_TAG, ErrorType.INVALID_OS, ErrorType.INVALID_ADDED_IN + ErrorType.MUTABLE_TAG, ErrorType.INVALID_OS, ErrorType.INVALID_ADDED_IN, + ErrorType.INVALID_DATE_FORMAT ] if message: @@ -196,6 +206,26 @@ "apply the following edit(s) to do it manually:\n{}".format( self._details[0])) + if self.type == ErrorType.MISSING_NEW_FIELDS: + assert self._details + return ("MISSING_NEW_FIELDS: Annotation at '{}:{}' {}".format( + self.file_path, self.line, self._details[0])) + if self.type == ErrorType.REMOVE_FROM_SAFE_LIST: + assert self._details + return ("REMOVE_FROM_SAFE_LIST: {}. Remove {} from safe_list.txt".format( + self._details[0], self.file_path)) + + if self.type == ErrorType.INVALID_USER_DATA_TYPE: + assert self._details + return ( + "Invalid value of user_data::type: {} in annotation at {}:{}".format( + self._details[0], self.file_path, self.line)) + + if self.type == ErrorType.INVALID_DATE_FORMAT: + assert self._details + return ("Date format should be {} in annotation at {}:{}".format( + self._details[0], self.file_path, self.line)) + raise NotImplementedError("Unimplemented ErrorType: {}".format( self.type.name))
diff --git a/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation5.txt b/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation5.txt new file mode 100644 index 0000000..d7ed1f2 --- /dev/null +++ b/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation5.txt
@@ -0,0 +1,42 @@ +chrome/browser/supervised_user/legacy/supervised_user_refresh_token_fetcher.cc +166 +Definition +supervised_user_refresh_token_fetcher + + + semantics { + sender: "Supervised Users" + description: + "Fetches an OAuth2 refresh token scoped down to the Supervised " + "User Sync scope and tied to the given Supervised User ID, " + "identifying the Supervised User Profile to be created." + trigger: + "Called when creating a new Supervised User profile in Chromium " + "to fetch OAuth credentials for using Sync with the new profile." + data: + "The request is authenticated with an OAuth2 access token " + "identifying the Google account and contains the following " + "information:\n* The Supervised User ID, a randomly generated " + "64-bit identifier for the profile.\n* The device name, to " + "identify the refresh token in account management." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts + } + user_data { + type: NONE + } + last_reviewed: "2022-12-22" + } + policy { + cookies_allowed: NO + setting: + "Users can disable this feature by toggling 'Let anyone add a " + "person to Chrome' in Chromium settings, under People." + chrome_policy { + SupervisedUserCreationEnabled { + policy_options {mode: MANDATORY} + SupervisedUserCreationEnabled: false + } + } + }
diff --git a/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation6.txt b/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation6.txt new file mode 100644 index 0000000..c604ded --- /dev/null +++ b/tools/traffic_annotation/scripts/test_data/extractor_outputs/bad_syntax_annotation6.txt
@@ -0,0 +1,44 @@ +chrome/browser/supervised_user/legacy/supervised_user_refresh_token_fetcher.cc +166 +Definition +supervised_user_refresh_token_fetcher + + + semantics { + sender: "Supervised Users" + description: + "Fetches an OAuth2 refresh token scoped down to the Supervised " + "User Sync scope and tied to the given Supervised User ID, " + "identifying the Supervised User Profile to be created." + trigger: + "Called when creating a new Supervised User profile in Chromium " + "to fetch OAuth credentials for using Sync with the new profile." + data: + "The request is authenticated with an OAuth2 access token " + "identifying the Google account and contains the following " + "information:\n* The Supervised User ID, a randomly generated " + "64-bit identifier for the profile.\n* The device name, to " + "identify the refresh token in account management." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "chromium-dev@google.com" + } + } + user_data { + type: INVALID_VALUE + } + last_reviewed: "2022-12-22" + } + policy { + cookies_allowed: NO + setting: + "Users can disable this feature by toggling 'Let anyone add a " + "person to Chrome' in Chromium settings, under People." + chrome_policy { + SupervisedUserCreationEnabled { + policy_options {mode: MANDATORY} + SupervisedUserCreationEnabled: false + } + } + }
diff --git a/tools/traffic_annotation/scripts/test_data/extractor_outputs/good_complete_annotation.txt b/tools/traffic_annotation/scripts/test_data/extractor_outputs/good_complete_annotation.txt index c74390d..b2dced8 100644 --- a/tools/traffic_annotation/scripts/test_data/extractor_outputs/good_complete_annotation.txt +++ b/tools/traffic_annotation/scripts/test_data/extractor_outputs/good_complete_annotation.txt
@@ -20,6 +20,15 @@ "64-bit identifier for the profile.\n* The device name, to " "identify the refresh token in account management." destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "chromium-dev@google.com" + } + } + user_data { + type: NONE + } + last_reviewed: "2022-12-22" } policy { cookies_allowed: NO
diff --git a/tools/traffic_annotation/scripts/test_data/git_list.txt b/tools/traffic_annotation/scripts/test_data/git_list.txt index 47a06780..6ab02e29 100644 --- a/tools/traffic_annotation/scripts/test_data/git_list.txt +++ b/tools/traffic_annotation/scripts/test_data/git_list.txt
@@ -2,3 +2,5 @@ tools/traffic_annotation/scripts/test_data/irrelevant_file_name.txt tools/traffic_annotation/scripts/test_data/objective_cpp.mm tools/traffic_annotation/scripts/test_data/test_sample_annotations.cc +tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/test_new_field_safelisted.cc +tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/sample_new_field_not_safelisted.cc
diff --git a/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/sample_new_field_not_safelisted.cc b/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/sample_new_field_not_safelisted.cc new file mode 100644 index 0000000..11dd293 --- /dev/null +++ b/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/sample_new_field_not_safelisted.cc
@@ -0,0 +1,99 @@ +// 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. + +// File should not be added in safe list. + +// Incomplete annotation +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("missing_new_fields_not_safe_listed", + R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })"); + +// Missing email annotation +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("missing_email_not_safe_listed", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "" + } + } + user_data { + type: NONE + } + last_reviewed: "2022-12-23" + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })"); + +// Invalid user data type annotation +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("invalid_userdata_not_safe_listed", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "chromium-dev@google.com" + } + } + user_data { + type: UNSPECIFIED + } + last_reviewed: "2022-12-23" + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })");
diff --git a/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/test_new_field_safelisted.cc b/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/test_new_field_safelisted.cc new file mode 100644 index 0000000..d7c8cea --- /dev/null +++ b/tools/traffic_annotation/scripts/test_data/missing_new_field_sample_data/test_new_field_safelisted.cc
@@ -0,0 +1,92 @@ +// 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. + +// File is added in safe list. + +// An annotation with last_reviewed date but +// missing email address, unspecified user_data +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("partially_populated_safe_listed", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + last_reviewed: "2022-12-23" + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })"); + +// incomplete annotation without email address, unspecified user_data, +// last_reviewed +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("missing_all_new_field_safe_listed", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })"); + +// Complete annotation +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("ok_new_fields_safe_listed", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "chromium-dev@google.com" + } + } + user_data { + type: NONE + } + last_reviewed: "2022-12-23" + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })");
diff --git a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/chrome_settings_full_runtime_pb2.py b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/chrome_settings_full_runtime_pb2.py index d4bce323..3b76d465 100644 --- a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/chrome_settings_full_runtime_pb2.py +++ b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/chrome_settings_full_runtime_pb2.py
@@ -2,9 +2,9 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: chrome_settings_full_runtime.proto """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,276 +14,1618 @@ import policy_common_definitions_full_runtime_pb2 as policy__common__definitions__full__runtime__pb2 -DESCRIPTOR = _descriptor.FileDescriptor( - name='chrome_settings_full_runtime.proto', - package='enterprise_management', - syntax='proto2', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\"chrome_settings_full_runtime.proto\x12\x15\x65nterprise_management\x1a,policy_common_definitions_full_runtime.proto\"g\n\x11SyncDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cSyncDisabled\x18\x02 \x01(\x08\"\x7f\n\x1dSpellCheckServiceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18SpellCheckServiceEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"SupervisedUserCreationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dSupervisedUserCreationEnabled\x18\x02 \x01(\x08\"{\n\x1b\x43loudPrintProxyEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x43loudPrintProxyEnabled\x18\x02 \x01(\x08\"\xe5\x02\n\x13\x43hromeSettingsProto\x12>\n\x0cSyncDisabled\x18\x16 \x01(\x0b\x32(.enterprise_management.SyncDisabledProto\x12W\n\x18SpellCheckServiceEnabled\x18\x99\x01 \x01(\x0b\x32\x34.enterprise_management.SpellCheckServiceEnabledProto\x12\x61\n\x1dSupervisedUserCreationEnabled\x18\xe1\x01 \x01(\x0b\x32\x39.enterprise_management.SupervisedUserCreationEnabledProto\x12R\n\x16\x43loudPrintProxyEnabled\x18\x0f \x01(\x0b\x32\x32.enterprise_management.CloudPrintProxyEnabledProto' - , - dependencies=[policy__common__definitions__full__runtime__pb2.DESCRIPTOR,]) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chrome_settings_full_runtime.proto\x12\x15\x65nterprise_management\x1a,policy_common_definitions_full_runtime.proto\"\x83\x01\n\x1f\x43\x61lendarIntegrationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x43\x61lendarIntegrationEnabled\x18\x02 \x01(\x08\"{\n\x1b\x42rowserSwitcherEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x42rowserSwitcherEnabled\x18\x02 \x01(\x08\"\xa6\x01\n\x1f\x42rowserSwitcherUrlGreylistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1a\x42rowserSwitcherUrlGreylist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1f\x42rowserSwitcherParsingModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x42rowserSwitcherParsingMode\x18\x02 \x01(\x03\"w\n\x19\x42rowserSwitcherDelayProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x42rowserSwitcherDelay\x18\x02 \x01(\x03\"\x87\x01\n!BrowserSwitcherUseIeSitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x42rowserSwitcherUseIeSitelist\x18\x02 \x01(\x08\"\x93\x01\n\'BrowserSwitcherExternalGreylistUrlProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"BrowserSwitcherExternalGreylistUrl\x18\x02 \x01(\t\"\x81\x01\n\x1e\x42rowserSwitcherChromePathProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x42rowserSwitcherChromePath\x18\x02 \x01(\t\"\x8f\x01\n%BrowserSwitcherKeepLastChromeTabProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n BrowserSwitcherKeepLastChromeTab\x18\x02 \x01(\x08\"{\n\x1b\x41lternativeBrowserPathProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x41lternativeBrowserPath\x18\x02 \x01(\t\"\x9e\x01\n\x1b\x42rowserSwitcherUrlListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x41\n\x16\x42rowserSwitcherUrlList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xaa\x01\n!AlternativeBrowserParametersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1c\x41lternativeBrowserParameters\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x93\x01\n\'BrowserSwitcherExternalSitelistUrlProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"BrowserSwitcherExternalSitelistUrl\x18\x02 \x01(\t\"\xb0\x01\n$BrowserSwitcherChromeParametersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12J\n\x1f\x42rowserSwitcherChromeParameters\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1a\x46irstPartySetsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x46irstPartySetsEnabled\x18\x02 \x01(\x08\"}\n\x1c\x46irstPartySetsOverridesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x46irstPartySetsOverrides\x18\x02 \x01(\t\"\x8b\x01\n#AuthNegotiateDelegateAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41uthNegotiateDelegateAllowlist\x18\x02 \x01(\t\"i\n\x12NtlmV2EnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rNtlmV2Enabled\x18\x02 \x01(\x08\"\xb8\x01\n(AllHttpAuthSchemesAllowedForOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12N\n#AllHttpAuthSchemesAllowedForOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1f\x41llowCrossOriginAuthPromptProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x41llowCrossOriginAuthPrompt\x18\x02 \x01(\x08\"\x8f\x01\n%AuthNegotiateDelegateByKdcPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n AuthNegotiateDelegateByKdcPolicy\x18\x02 \x01(\x08\"\x8d\x01\n$DisableAuthNegotiateCnameLookupProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x44isableAuthNegotiateCnameLookup\x18\x02 \x01(\x08\"\x93\x01\n\'IntegratedWebAuthenticationAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"IntegratedWebAuthenticationAllowed\x18\x02 \x01(\x08\"u\n\x18\x41uthServerAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x41uthServerAllowlist\x18\x02 \x01(\t\"}\n\x1c\x45nableAuthNegotiatePortProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x45nableAuthNegotiatePort\x18\x02 \x01(\x08\"e\n\x10\x41uthSchemesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0b\x41uthSchemes\x18\x02 \x01(\t\"\x8d\x01\n$AuthAndroidNegotiateAccountTypeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x41uthAndroidNegotiateAccountType\x18\x02 \x01(\t\"q\n\x16GSSAPILibraryNameProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11GSSAPILibraryName\x18\x02 \x01(\t\"\x7f\n\x1d\x42\x61sicAuthOverHttpEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x42\x61sicAuthOverHttpEnabled\x18\x02 \x01(\x08\"e\n\x10ProxyServerProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bProxyServer\x18\x02 \x01(\t\"a\n\x0eProxyModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x11\n\tProxyMode\x18\x02 \x01(\t\"m\n\x14ProxyBypassListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fProxyBypassList\x18\x02 \x01(\t\"m\n\x14ProxyServerModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fProxyServerMode\x18\x02 \x01(\x03\"e\n\x10ProxyPacUrlProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bProxyPacUrl\x18\x02 \x01(\t\"\x9f\x01\n-SamlPasswordExpirationAdvanceWarningDaysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(SamlPasswordExpirationAdvanceWarningDays\x18\x02 \x01(\x03\"\x83\x01\n\x1fSAMLOfflineSigninTimeLimitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aSAMLOfflineSigninTimeLimit\x18\x02 \x01(\x03\"\x91\x01\n&LockScreenReauthenticationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!LockScreenReauthenticationEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'SamlInSessionPasswordChangeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"SamlInSessionPasswordChangeEnabled\x18\x02 \x01(\x08\"{\n\x1bReportArcStatusEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ReportArcStatusEnabled\x18\x02 \x01(\x08\"o\n\x15ProjectorEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ProjectorEnabled\x18\x02 \x01(\x08\"\x97\x01\n)ProjectorDogfoodForFamilyLinkEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$ProjectorDogfoodForFamilyLinkEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#ReportExtensionsAndPluginsDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eReportExtensionsAndPluginsData\x18\x02 \x01(\x08\"o\n\x15ReportPolicyDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ReportPolicyData\x18\x02 \x01(\x08\"q\n\x16ReportVersionDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11ReportVersionData\x18\x02 \x01(\x08\"{\n\x1bReportSafeBrowsingDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ReportSafeBrowsingData\x18\x02 \x01(\x08\"\x89\x01\n\"CloudReportingUploadFrequencyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x43loudReportingUploadFrequency\x18\x02 \x01(\x03\"o\n\x15ReportUserIDDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ReportUserIDData\x18\x02 \x01(\x08\"y\n\x1a\x43loudReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x43loudReportingEnabled\x18\x02 \x01(\x08\"\x87\x01\n!CloudExtensionRequestEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x43loudExtensionRequestEnabled\x18\x02 \x01(\x08\"u\n\x18ReportMachineIDDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13ReportMachineIDData\x18\x02 \x01(\x08\"o\n\x15\x44nsOverHttpsSaltProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x44nsOverHttpsSalt\x18\x02 \x01(\t\"\x97\x01\n)DnsOverHttpsTemplatesWithIdentifiersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$DnsOverHttpsTemplatesWithIdentifiers\x18\x02 \x01(\t\"\xbb\x01\n;AccessControlAllowMethodsInCORSPreflightSpecConformantProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12>\n6AccessControlAllowMethodsInCORSPreflightSpecConformant\x18\x02 \x01(\x08\"i\n\x12\x44riveDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rDriveDisabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x44riveDisabledOverCellularProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44riveDisabledOverCellular\x18\x02 \x01(\x08\"\x83\x01\n\x1fPrintingAllowedDuplexModesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aPrintingAllowedDuplexModes\x18\x02 \x01(\t\"\x8d\x01\n$NativePrintersBulkConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fNativePrintersBulkConfiguration\x18\x02 \x01(\t\"}\n\x1c\x43loudPrintSubmitEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x43loudPrintSubmitEnabled\x18\x02 \x01(\x08\"w\n\x19PrintingColorDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14PrintingColorDefault\x18\x02 \x01(\t\"u\n\x18\x44isablePrintPreviewProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x44isablePrintPreview\x18\x02 \x01(\x08\"}\n\x1c\x44\x65\x66\x61ultPrinterSelectionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x44\x65\x66\x61ultPrinterSelection\x18\x02 \x01(\t\"{\n\x1b\x43loudPrintProxyEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x43loudPrintProxyEnabled\x18\x02 \x01(\x08\"\xac\x01\n\"ExternalPrintServersAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x45xternalPrintServersAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x82\x01\n\rPrintersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x33\n\x08Printers\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"u\n\x18UserPrintersAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13UserPrintersAllowed\x18\x02 \x01(\x08\"\x7f\n\x1dPrintingPaperSizeDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18PrintingPaperSizeDefault\x18\x02 \x01(\t\"s\n\x17PrintingPinDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12PrintingPinDefault\x18\x02 \x01(\t\"\x87\x01\n!CloudPrintWarningsSuppressedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x43loudPrintWarningsSuppressed\x18\x02 \x01(\x08\"\x98\x01\n\x18PrinterTypeDenyListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12>\n\x13PrinterTypeDenyList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9b\x01\n+PrintingSendUsernameAndFilenameEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&PrintingSendUsernameAndFilenameEnabled\x18\x02 \x01(\x08\"\x7f\n\x1dPrintingMaxSheetsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18PrintingMaxSheetsAllowed\x18\x02 \x01(\x03\"\x91\x01\n&PrintingBackgroundGraphicsDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!PrintingBackgroundGraphicsDefault\x18\x02 \x01(\t\"{\n\x1bPrintersBulkAccessModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PrintersBulkAccessMode\x18\x02 \x01(\x03\"w\n\x19PrintRasterizePdfDpiProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14PrintRasterizePdfDpi\x18\x02 \x01(\x03\"}\n\x1cPrintingAllowedPinModesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17PrintingAllowedPinModes\x18\x02 \x01(\t\"\x81\x01\n\x1ePrintersBulkConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PrintersBulkConfiguration\x18\x02 \x01(\t\"w\n\x19\x45xternalPrintServersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x45xternalPrintServers\x18\x02 \x01(\t\"\xae\x01\n#PrintingAPIExtensionsAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12I\n\x1ePrintingAPIExtensionsAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1ePrintingAllowedColorModesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PrintingAllowedColorModes\x18\x02 \x01(\t\"\x9c\x01\n\x1aPrintersBulkAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15PrintersBulkAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"u\n\x18PrintPostScriptModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13PrintPostScriptMode\x18\x02 \x01(\x03\"{\n\x1bPrintPdfAsImageDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PrintPdfAsImageDefault\x18\x02 \x01(\x08\"q\n\x16PrintHeaderFooterProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11PrintHeaderFooter\x18\x02 \x01(\x08\"y\n\x1aPrintingDuplexDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15PrintingDuplexDefault\x18\x02 \x01(\t\"\x85\x01\n PrintPdfAsImageAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bPrintPdfAsImageAvailability\x18\x02 \x01(\x08\"\x87\x01\n!NativePrintersBulkAccessModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cNativePrintersBulkAccessMode\x18\x02 \x01(\x03\"\x8d\x01\n$PrintJobHistoryExpirationPeriodProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fPrintJobHistoryExpirationPeriod\x18\x02 \x01(\x03\"\x9c\x01\n\x1aPrintersBulkBlocklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15PrintersBulkBlocklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8e\x01\n\x13NativePrintersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x39\n\x0eNativePrinters\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bPrintRasterizationModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PrintRasterizationMode\x18\x02 \x01(\x03\"m\n\x14PrintingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fPrintingEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1eUserNativePrintersAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19UserNativePrintersAllowed\x18\x02 \x01(\x08\"\x9b\x01\n+PrintingAllowedBackgroundGraphicsModesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&PrintingAllowedBackgroundGraphicsModes\x18\x02 \x01(\t\"\x87\x01\n!DeletePrintJobHistoryAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44\x65letePrintJobHistoryAllowed\x18\x02 \x01(\x08\"\x95\x01\n(PrintPreviewUseSystemDefaultPrinterProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#PrintPreviewUseSystemDefaultPrinter\x18\x02 \x01(\x08\"u\n\x18UserBorealisAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13UserBorealisAllowed\x18\x02 \x01(\x08\"\x8b\x01\n#DefaultSearchProviderSearchURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x44\x65\x66\x61ultSearchProviderSearchURL\x18\x02 \x01(\t\"\xab\x01\n3DefaultSearchProviderSearchTermsReplacementKeyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x36\n.DefaultSearchProviderSearchTermsReplacementKey\x18\x02 \x01(\t\"\x9f\x01\n-DefaultSearchProviderSearchURLPostParamsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(DefaultSearchProviderSearchURLPostParams\x18\x02 \x01(\t\"\x9d\x01\n,DefaultSearchProviderImageURLPostParamsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'DefaultSearchProviderImageURLPostParams\x18\x02 \x01(\t\"\x87\x01\n!DefaultSearchProviderIconURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44\x65\x66\x61ultSearchProviderIconURL\x18\x02 \x01(\t\"\x89\x01\n\"DefaultSearchProviderImageURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x44\x65\x66\x61ultSearchProviderImageURL\x18\x02 \x01(\t\"\xa1\x01\n.DefaultSearchProviderInstantURLPostParamsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x31\n)DefaultSearchProviderInstantURLPostParams\x18\x02 \x01(\t\"\x87\x01\n!DefaultSearchProviderKeywordProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44\x65\x66\x61ultSearchProviderKeyword\x18\x02 \x01(\t\"\x81\x01\n\x1e\x44\x65\x66\x61ultSearchProviderNameProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultSearchProviderName\x18\x02 \x01(\t\"\x8d\x01\n$DefaultSearchProviderSuggestURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x44\x65\x66\x61ultSearchProviderSuggestURL\x18\x02 \x01(\t\"\xb6\x01\n\'DefaultSearchProviderAlternateURLsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12M\n\"DefaultSearchProviderAlternateURLs\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xae\x01\n#DefaultSearchProviderEncodingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12I\n\x1e\x44\x65\x66\x61ultSearchProviderEncodings\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x87\x01\n!DefaultSearchProviderEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44\x65\x66\x61ultSearchProviderEnabled\x18\x02 \x01(\x08\"\xa1\x01\n.DefaultSearchProviderSuggestURLPostParamsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x31\n)DefaultSearchProviderSuggestURLPostParams\x18\x02 \x01(\t\"\x8b\x01\n#DefaultSearchProviderNewTabURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x44\x65\x66\x61ultSearchProviderNewTabURL\x18\x02 \x01(\t\"\x8d\x01\n$DefaultSearchProviderInstantURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x44\x65\x66\x61ultSearchProviderInstantURL\x18\x02 \x01(\t\"\x8b\x01\n#GaiaOfflineSigninTimeLimitDaysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eGaiaOfflineSigninTimeLimitDays\x18\x02 \x01(\x03\"w\n\x19HomepageIsNewTabPageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14HomepageIsNewTabPage\x18\x02 \x01(\x08\"s\n\x17NewTabPageLocationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12NewTabPageLocation\x18\x02 \x01(\t\"\x9a\x01\n\x19RestoreOnStartupURLsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14RestoreOnStartupURLs\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"o\n\x15HomepageLocationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10HomepageLocation\x18\x02 \x01(\t\"o\n\x15RestoreOnStartupProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10RestoreOnStartup\x18\x02 \x01(\x03\"k\n\x13ShowHomeButtonProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eShowHomeButton\x18\x02 \x01(\x08\"\x96\x01\n\x17IdleTimeoutActionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12=\n\x12IdleTimeoutActions\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"e\n\x10IdleTimeoutProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bIdleTimeout\x18\x02 \x01(\x03\"\x89\x01\n\"NativeMessagingUserLevelHostsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dNativeMessagingUserLevelHosts\x18\x02 \x01(\x08\"\xa2\x01\n\x1dNativeMessagingBlocklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18NativeMessagingBlocklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1dNativeMessagingAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18NativeMessagingAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$UserActivityScreenDimDelayScaleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fUserActivityScreenDimDelayScale\x18\x02 \x01(\x03\"o\n\x15IdleDelayBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10IdleDelayBattery\x18\x02 \x01(\x03\"c\n\x0fIdleActionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x12\n\nIdleAction\x18\x02 \x01(\x03\"\x8f\x01\n%PowerManagementUsesVideoActivityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n PowerManagementUsesVideoActivity\x18\x02 \x01(\x08\"o\n\x15ScreenDimDelayACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ScreenDimDelayAC\x18\x02 \x01(\x03\"w\n\x19\x41llowScreenWakeLocksProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x41llowScreenWakeLocks\x18\x02 \x01(\x08\"\x83\x01\n\x1fPresentationIdleDelayScaleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aPresentationIdleDelayScale\x18\x02 \x01(\x03\"k\n\x13LidCloseActionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eLidCloseAction\x18\x02 \x01(\x03\"k\n\x13\x41llowWakeLocksProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0e\x41llowWakeLocks\x18\x02 \x01(\x08\"w\n\x19PowerSmartDimEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14PowerSmartDimEnabled\x18\x02 \x01(\x08\"y\n\x1aScreenOffDelayBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15ScreenOffDelayBattery\x18\x02 \x01(\x03\"\x8d\x01\n$PresentationScreenDimDelayScaleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fPresentationScreenDimDelayScale\x18\x02 \x01(\x03\"s\n\x17IdleWarningDelayACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12IdleWarningDelayAC\x18\x02 \x01(\x03\"y\n\x1aScreenDimDelayBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15ScreenDimDelayBattery\x18\x02 \x01(\x03\"\x8f\x01\n%PowerManagementUsesAudioActivityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n PowerManagementUsesAudioActivity\x18\x02 \x01(\x08\"e\n\x10IdleDelayACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bIdleDelayAC\x18\x02 \x01(\x03\"\x85\x01\n PowerManagementIdleSettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bPowerManagementIdleSettings\x18\x02 \x01(\t\"q\n\x16ScreenLockDelayACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11ScreenLockDelayAC\x18\x02 \x01(\x03\"q\n\x16IdleActionBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11IdleActionBattery\x18\x02 \x01(\x03\"\x93\x01\n\'DevicePowerAdaptiveChargingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"DevicePowerAdaptiveChargingEnabled\x18\x02 \x01(\x08\"o\n\x15ScreenLockDelaysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ScreenLockDelays\x18\x02 \x01(\t\"o\n\x15ScreenOffDelayACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ScreenOffDelayAC\x18\x02 \x01(\x03\"g\n\x11IdleActionACProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cIdleActionAC\x18\x02 \x01(\x03\"}\n\x1cScreenBrightnessPercentProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17ScreenBrightnessPercent\x18\x02 \x01(\t\"}\n\x1cIdleWarningDelayBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17IdleWarningDelayBattery\x18\x02 \x01(\x03\"{\n\x1bScreenLockDelayBatteryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ScreenLockDelayBattery\x18\x02 \x01(\x03\"\x83\x01\n\x1fWaitForInitialUserActivityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aWaitForInitialUserActivity\x18\x02 \x01(\x08\"\x9a\x01\n\x19KeygenAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14KeygenAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x89\x01\n\"DefaultInsecureContentSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x44\x65\x66\x61ultInsecureContentSetting\x18\x02 \x01(\x03\"\x9c\x01\n\x1aSensorsBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15SensorsBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xb8\x01\n(PdfLocalFileAccessAllowedForDomainsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12N\n#PdfLocalFileAccessAllowedForDomains\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x7f\n\x1d\x44\x65\x66\x61ultLocalFontsSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x44\x65\x66\x61ultLocalFontsSetting\x18\x02 \x01(\x03\"\x9a\x01\n\x19PopupsBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14PopupsBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1d\x46ileSystemReadAskForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18\x46ileSystemReadAskForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9a\x01\n\x19KeygenBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14KeygenBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1dLocalFontsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18LocalFontsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x92\x01\n\x15WebHidAskForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12;\n\x10WebHidAskForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9a\x01\n\x19WebUsbBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14WebUsbBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x44\x65\x66\x61ultMediaStreamSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultMediaStreamSetting\x18\x02 \x01(\x03\"\x7f\n\x1d\x44\x65\x66\x61ultJavaScriptSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x44\x65\x66\x61ultJavaScriptSetting\x18\x02 \x01(\x03\"w\n\x19\x44\x65\x66\x61ultPopupsSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x44\x65\x66\x61ultPopupsSetting\x18\x02 \x01(\x03\"\x9a\x01\n\x19ImagesAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14ImagesAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"w\n\x19\x44\x65\x66\x61ultKeygenSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x44\x65\x66\x61ultKeygenSetting\x18\x02 \x01(\x03\"\x9c\x01\n\x1aPluginsBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15PluginsBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xad\x01\n4FileSystemSyncAccessHandleAsyncInterfaceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x37\n/FileSystemSyncAccessHandleAsyncInterfaceEnabled\x18\x02 \x01(\x08\"\xa0\x01\n\x1c\x43lipboardBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17\x43lipboardBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x89\x01\n\"DefaultWindowPlacementSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x44\x65\x66\x61ultWindowPlacementSetting\x18\x02 \x01(\x03\"\xa4\x01\n\x1e\x43ookiesSessionOnlyForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x43ookiesSessionOnlyForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x85\x01\n DefaultNotificationsSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x44\x65\x66\x61ultNotificationsSetting\x18\x02 \x01(\x03\"\xaa\x01\n!WebHidAllowAllDevicesForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cWebHidAllowAllDevicesForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x44\x65\x66\x61ultWebHidGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultWebHidGuardSetting\x18\x02 \x01(\x03\"\x87\x01\n!SerialAllowUsbDevicesForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cSerialAllowUsbDevicesForUrls\x18\x02 \x01(\t\"\x9a\x01\n\x19SerialBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14SerialBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9a\x01\n\x19WebHidBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14WebHidBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9c\x01\n\x1a\x43ookiesAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15\x43ookiesAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9c\x01\n\x1aSensorsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15SensorsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9c\x01\n\x1aPluginsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15PluginsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1f\x46ileHandlingBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1a\x46ileHandlingBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1fRegisteredProtocolHandlersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aRegisteredProtocolHandlers\x18\x02 \x01(\t\"\x92\x01\n\x15SerialAskForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12;\n\x10SerialAskForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1a\x44\x65\x66\x61ultCookiesSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44\x65\x66\x61ultCookiesSetting\x18\x02 \x01(\x03\"\x95\x01\n(LegacySameSiteCookieBehaviorEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#LegacySameSiteCookieBehaviorEnabled\x18\x02 \x01(\x03\"\xa2\x01\n\x1dJavaScriptBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18JavaScriptBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x91\x01\n&DefaultFileSystemReadGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!DefaultFileSystemReadGuardSetting\x18\x02 \x01(\x03\"\xa8\x01\n NotificationsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bNotificationsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x44\x65\x66\x61ultWebUsbGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultWebUsbGuardSetting\x18\x02 \x01(\x03\"\x81\x01\n\x1eWebUsbAllowDevicesForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19WebUsbAllowDevicesForUrls\x18\x02 \x01(\t\"}\n\x1c\x44\x65\x66\x61ultClipboardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x44\x65\x66\x61ultClipboardSetting\x18\x02 \x01(\x03\"\xac\x01\n\"WindowPlacementAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dWindowPlacementAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xd2\x01\n5LegacySameSiteCookieBehaviorEnabledForDomainListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12[\n0LegacySameSiteCookieBehaviorEnabledForDomainList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1dLocalFontsBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18LocalFontsBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x44\x65\x66\x61ultGeolocationSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultGeolocationSetting\x18\x02 \x01(\x03\"\xaa\x01\n!FileSystemReadBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1c\x46ileSystemReadBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x44\x65\x66\x61ultSerialGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44\x65\x66\x61ultSerialGuardSetting\x18\x02 \x01(\x03\"\x81\x01\n\x1eWebHidAllowDevicesForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19WebHidAllowDevicesForUrls\x18\x02 \x01(\t\"\xaa\x01\n!AutoSelectCertificateForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1c\x41utoSelectCertificateForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1a\x44\x65\x66\x61ultPluginsSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44\x65\x66\x61ultPluginsSetting\x18\x02 \x01(\x03\"w\n\x19\x44\x65\x66\x61ultImagesSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x44\x65\x66\x61ultImagesSetting\x18\x02 \x01(\x03\"\x9a\x01\n\x19PopupsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14PopupsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$DefaultWebBluetoothGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x44\x65\x66\x61ultWebBluetoothGuardSetting\x18\x02 \x01(\x03\"\xa0\x01\n\x1c\x43lipboardAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17\x43lipboardAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xac\x01\n\"WindowPlacementBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dWindowPlacementBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xac\x01\n\"InsecureContentBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dInsecureContentBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1f\x46ileHandlingAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1a\x46ileHandlingAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x92\x01\n\x15WebUsbAskForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12;\n\x10WebUsbAskForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1a\x44\x65\x66\x61ultSensorsSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44\x65\x66\x61ultSensorsSetting\x18\x02 \x01(\x03\"\x9b\x01\n+WebHidAllowDevicesWithHidUsagesForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&WebHidAllowDevicesWithHidUsagesForUrls\x18\x02 \x01(\t\"\xa8\x01\n NotificationsBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bNotificationsBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x85\x01\n DefaultJavaScriptJitSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x44\x65\x66\x61ultJavaScriptJitSetting\x18\x02 \x01(\x03\"\xa4\x01\n\x1e\x46ileSystemWriteAskForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x46ileSystemWriteAskForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xac\x01\n\"InsecureContentAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dInsecureContentAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9c\x01\n\x1a\x43ookiesBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15\x43ookiesBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1fSerialAllowAllPortsForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1aSerialAllowAllPortsForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9a\x01\n\x19ImagesBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14ImagesBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xaa\x01\n!JavaScriptJitAllowedForSitesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cJavaScriptJitAllowedForSites\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x93\x01\n\'DefaultFileSystemWriteGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"DefaultFileSystemWriteGuardSetting\x18\x02 \x01(\x03\"\x8d\x01\n$DefaultFileHandlingGuardSettingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x44\x65\x66\x61ultFileHandlingGuardSetting\x18\x02 \x01(\x03\"\xaa\x01\n!JavaScriptJitBlockedForSitesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cJavaScriptJitBlockedForSites\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1dJavaScriptAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18JavaScriptAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xac\x01\n\"FileSystemWriteBlockedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x46ileSystemWriteBlockedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$KerberosRememberPasswordEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fKerberosRememberPasswordEnabled\x18\x02 \x01(\x08\"\x83\x01\n\x1fKerberosDomainAutocompleteProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aKerberosDomainAutocomplete\x18\x02 \x01(\t\"o\n\x15KerberosAccountsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10KerberosAccounts\x18\x02 \x01(\t\"\x87\x01\n!KerberosDefaultConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cKerberosDefaultConfiguration\x18\x02 \x01(\t\"\x83\x01\n\x1fKerberosAddAccountsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aKerberosAddAccountsAllowed\x18\x02 \x01(\x08\"m\n\x14KerberosEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fKerberosEnabled\x18\x02 \x01(\x08\"\xa0\x01\n\x1c\x43hromeFrameContentTypesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17\x43hromeFrameContentTypes\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x89\x01\n\"QuickAnswersDefinitionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dQuickAnswersDefinitionEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#QuickAnswersTranslationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eQuickAnswersTranslationEnabled\x18\x02 \x01(\x08\"\x91\x01\n&QuickAnswersUnitConversionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!QuickAnswersUnitConversionEnabled\x18\x02 \x01(\x08\"u\n\x18QuickAnswersEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13QuickAnswersEnabled\x18\x02 \x01(\x08\"\x97\x01\n)SupervisedUserContentProviderEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$SupervisedUserContentProviderEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"SupervisedUserCreationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dSupervisedUserCreationEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'RemoteAccessHostTokenValidationUrlProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"RemoteAccessHostTokenValidationUrl\x18\x02 \x01(\t\"\xaf\x01\n5RemoteAccessHostTokenValidationCertificateIssuerProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x38\n0RemoteAccessHostTokenValidationCertificateIssuer\x18\x02 \x01(\t\"\xa9\x01\n2RemoteAccessHostAllowRemoteSupportConnectionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x35\n-RemoteAccessHostAllowRemoteSupportConnections\x18\x02 \x01(\x08\"\x8b\x01\n#RemoteAccessHostRequireCurtainProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eRemoteAccessHostRequireCurtain\x18\x02 \x01(\x08\"\xa7\x01\n1RemoteAccessHostAllowRemoteAccessConnectionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x34\n,RemoteAccessHostAllowRemoteAccessConnections\x18\x02 \x01(\x08\"\x87\x01\n!RemoteAccessHostUdpPortRangeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cRemoteAccessHostUdpPortRange\x18\x02 \x01(\t\"\x8d\x01\n$RemoteAccessHostAllowGnubbyAuthProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fRemoteAccessHostAllowGnubbyAuth\x18\x02 \x01(\x08\"\x95\x01\n(RemoteAccessHostEnableUserInterfaceProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#RemoteAccessHostEnableUserInterface\x18\x02 \x01(\x08\"\x8f\x01\n%RemoteAccessHostTalkGadgetPrefixProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n RemoteAccessHostTalkGadgetPrefix\x18\x02 \x01(\t\"\xb2\x01\n%RemoteAccessHostClientDomainListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12K\n RemoteAccessHostClientDomainList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xaf\x01\n5RemoteAccessHostAllowUiAccessForRemoteAssistanceProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x38\n0RemoteAccessHostAllowUiAccessForRemoteAssistance\x18\x02 \x01(\x08\"\x89\x01\n\"RemoteAccessHostMatchUsernameProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dRemoteAccessHostMatchUsername\x18\x02 \x01(\x08\"\x95\x01\n(RemoteAccessClientFirewallTraversalProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#RemoteAccessClientFirewallTraversal\x18\x02 \x01(\x08\"\x9b\x01\n+RemoteAccessHostAllowRelayedConnectionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&RemoteAccessHostAllowRelayedConnection\x18\x02 \x01(\x08\"\xa9\x01\n2RemoteAccessHostMaximumSessionDurationMinutesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x35\n-RemoteAccessHostMaximumSessionDurationMinutes\x18\x02 \x01(\x03\"\x87\x01\n!RemoteAccessHostClientDomainProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cRemoteAccessHostClientDomain\x18\x02 \x01(\t\"\x8f\x01\n%RemoteAccessHostRequireTwoFactorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n RemoteAccessHostRequireTwoFactor\x18\x02 \x01(\x08\"\x99\x01\n*RemoteAccessHostDebugOverridePoliciesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%RemoteAccessHostDebugOverridePolicies\x18\x02 \x01(\t\"\x93\x01\n\'RemoteAccessHostClipboardSizeBytesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"RemoteAccessHostClipboardSizeBytes\x18\x02 \x01(\x03\"\x7f\n\x1dRemoteAccessHostTokenUrlProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18RemoteAccessHostTokenUrl\x18\x02 \x01(\t\"\xa6\x01\n\x1fRemoteAccessHostDomainListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1aRemoteAccessHostDomainList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x91\x01\n&RemoteAccessHostFirewallTraversalProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!RemoteAccessHostFirewallTraversal\x18\x02 \x01(\x08\"{\n\x1bRemoteAccessHostDomainProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16RemoteAccessHostDomain\x18\x02 \x01(\t\"\x91\x01\n&RemoteAccessHostAllowFileTransferProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!RemoteAccessHostAllowFileTransfer\x18\x02 \x01(\x08\"\x93\x01\n\'RemoteAccessHostAllowClientPairingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"RemoteAccessHostAllowClientPairing\x18\x02 \x01(\x08\"\x7f\n\x1dNewWindowsInKioskAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18NewWindowsInKioskAllowed\x18\x02 \x01(\x08\"\x89\x01\n\"ExtensionAllowInsecureUpdatesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x45xtensionAllowInsecureUpdates\x18\x02 \x01(\x08\"\xa4\x01\n\x1e\x45xtensionInstallAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x45xtensionInstallAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa4\x01\n\x1e\x45xtensionInstallBlocklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x45xtensionInstallBlocklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa4\x01\n\x1e\x45xtensionInstallForcelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x45xtensionInstallForcelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9c\x01\n\x1a\x45xtensionAllowedTypesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15\x45xtensionAllowedTypes\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa0\x01\n\x1c\x45xtensionInstallSourcesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17\x45xtensionInstallSources\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$ExtensionManifestV2AvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x45xtensionManifestV2Availability\x18\x02 \x01(\x03\"}\n\x1c\x42lockExternalExtensionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x42lockExternalExtensions\x18\x02 \x01(\x08\"q\n\x16\x45xtensionSettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x45xtensionSettings\x18\x02 \x01(\t\"\x95\x01\n(VoiceInteractionQuickAnswersEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#VoiceInteractionQuickAnswersEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#VoiceInteractionContextEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eVoiceInteractionContextEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#VoiceInteractionHotwordEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eVoiceInteractionHotwordEnabled\x18\x02 \x01(\x08\"\x97\x01\n)AssistantVoiceMatchEnabledDuringOobeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$AssistantVoiceMatchEnabledDuringOobe\x18\x02 \x01(\x08\"}\n\x1c\x41ssistantOnboardingModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x41ssistantOnboardingMode\x18\x02 \x01(\t\"u\n\x18\x41ssistantWebEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x41ssistantWebEnabled\x18\x02 \x01(\x08\"\xac\x01\n\"AttestationExtensionAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x41ttestationExtensionAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x41ttestationEnabledForUserProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x41ttestationEnabledForUser\x18\x02 \x01(\x08\"u\n\x18\x43\x61stReceiverEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x43\x61stReceiverEnabled\x18\x02 \x01(\x08\"{\n\x1bRecoveryFactorBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16RecoveryFactorBehavior\x18\x02 \x01(\x08\"y\n\x1aShowCastIconInToolbarProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15ShowCastIconInToolbar\x18\x02 \x01(\x08\"\x99\x01\n*ShowCastSessionsStartedByOtherDevicesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%ShowCastSessionsStartedByOtherDevices\x18\x02 \x01(\x08\"\x83\x01\n\x1fMediaRouterCastAllowAllIPsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aMediaRouterCastAllowAllIPs\x18\x02 \x01(\x08\"q\n\x16\x45nableMediaRouterProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x45nableMediaRouter\x18\x02 \x01(\x08\"o\n\x15\x41utoclickEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x41utoclickEnabled\x18\x02 \x01(\x08\"{\n\x1bVirtualKeyboardEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16VirtualKeyboardEnabled\x18\x02 \x01(\x08\"q\n\x16StickyKeysEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11StickyKeysEnabled\x18\x02 \x01(\x08\"}\n\x1cVirtualKeyboardFeaturesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17VirtualKeyboardFeatures\x18\x02 \x01(\t\"u\n\x18HighContrastEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13HighContrastEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"KeyboardDefaultToFunctionKeysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dKeyboardDefaultToFunctionKeys\x18\x02 \x01(\x08\"\x89\x01\n\"AccessibilityShortcutsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x41\x63\x63\x65ssibilityShortcutsEnabled\x18\x02 \x01(\x08\"w\n\x19SelectToSpeakEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14SelectToSpeakEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%FloatingAccessibilityMenuEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n FloatingAccessibilityMenuEnabled\x18\x02 \x01(\x08\"\x9f\x01\n-ShowAccessibilityOptionsInSystemTrayMenuProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(ShowAccessibilityOptionsInSystemTrayMenu\x18\x02 \x01(\x08\"{\n\x1b\x43ursorHighlightEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x43ursorHighlightEnabled\x18\x02 \x01(\x08\"y\n\x1a\x43\x61retHighlightEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x43\x61retHighlightEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"KeyboardFocusHighlightEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dKeyboardFocusHighlightEnabled\x18\x02 \x01(\x08\"u\n\x18ScreenMagnifierTypeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13ScreenMagnifierType\x18\x02 \x01(\x03\"o\n\x15MonoAudioEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10MonoAudioEnabled\x18\x02 \x01(\x08\"\xa5\x01\n0EnhancedNetworkVoicesInSelectToSpeakAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x33\n+EnhancedNetworkVoicesInSelectToSpeakAllowed\x18\x02 \x01(\x08\"y\n\x1aSpokenFeedbackEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15SpokenFeedbackEnabled\x18\x02 \x01(\x08\"o\n\x15\x44ictationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x44ictationEnabled\x18\x02 \x01(\x08\"s\n\x17LargeCursorEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12LargeCursorEnabled\x18\x02 \x01(\x08\"{\n\x1bPasswordManagerEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PasswordManagerEnabled\x18\x02 \x01(\x08\"\x9b\x01\n+PasswordDismissCompromisedAlertEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&PasswordDismissCompromisedAlertEnabled\x18\x02 \x01(\x08\"\x87\x01\n!PasswordLeakDetectionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cPasswordLeakDetectionEnabled\x18\x02 \x01(\x08\"\x91\x01\n&PasswordManagerAllowShowPasswordsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!PasswordManagerAllowShowPasswords\x18\x02 \x01(\x08\"\x89\x01\n\"PluginVmDataCollectionAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dPluginVmDataCollectionAllowed\x18\x02 \x01(\x08\"k\n\x13PluginVmUserIdProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0ePluginVmUserId\x18\x02 \x01(\t\"u\n\x18UserPluginVmAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13UserPluginVmAllowed\x18\x02 \x01(\x08\"\x89\x01\n\"PluginVmRequiredFreeDiskSpaceProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dPluginVmRequiredFreeDiskSpace\x18\x02 \x01(\x03\"i\n\x12PluginVmImageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rPluginVmImage\x18\x02 \x01(\t\"k\n\x13UsageTimeLimitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eUsageTimeLimit\x18\x02 \x01(\t\"\x81\x01\n\x1ePerAppTimeLimitsAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PerAppTimeLimitsAllowlist\x18\x02 \x01(\t\"{\n\x1bParentAccessCodeConfigProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ParentAccessCodeConfig\x18\x02 \x01(\t\"o\n\x15PerAppTimeLimitsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10PerAppTimeLimits\x18\x02 \x01(\t\"\x7f\n\x1d\x45\x64uCoexistenceToSVersionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x45\x64uCoexistenceToSVersion\x18\x02 \x01(\t\"\x8f\x01\n%RequiredClientCertificateForUserProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n RequiredClientCertificateForUser\x18\x02 \x01(\t\"\x97\x01\n)SafeBrowsingExtendedReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$SafeBrowsingExtendedReportingEnabled\x18\x02 \x01(\x08\"\x85\x01\n SafeBrowsingProtectionLevelProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bSafeBrowsingProtectionLevel\x18\x02 \x01(\x03\"u\n\x18SafeBrowsingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13SafeBrowsingEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%PasswordProtectionWarningTriggerProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n PasswordProtectionWarningTrigger\x18\x02 \x01(\x03\"\x95\x01\n(PasswordProtectionChangePasswordURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#PasswordProtectionChangePasswordURL\x18\x02 \x01(\t\"\xaa\x01\n!SafeBrowsingAllowlistDomainsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cSafeBrowsingAllowlistDomains\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa8\x01\n PasswordProtectionLoginURLsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bPasswordProtectionLoginURLs\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1fPinUnlockAutosubmitEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aPinUnlockAutosubmitEnabled\x18\x02 \x01(\x08\"\x7f\n\x1dPinUnlockWeakPinsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18PinUnlockWeakPinsAllowed\x18\x02 \x01(\x08\"\xa2\x01\n\x1dQuickUnlockModeAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18QuickUnlockModeAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bPinUnlockMinimumLengthProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PinUnlockMinimumLength\x18\x02 \x01(\x03\"{\n\x1bPinUnlockMaximumLengthProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PinUnlockMaximumLength\x18\x02 \x01(\x03\"s\n\x17QuickUnlockTimeoutProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12QuickUnlockTimeout\x18\x02 \x01(\x03\"s\n\x17\x43loudAPAuthEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x43loudAPAuthEnabled\x18\x02 \x01(\x03\"\x89\x01\n\"CrostiniExportImportUIAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x43rostiniExportImportUIAllowed\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x43rostiniRootAccessAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x43rostiniRootAccessAllowed\x18\x02 \x01(\x08\"m\n\x14\x43rostiniAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x43rostiniAllowed\x18\x02 \x01(\x08\"\x89\x01\n\"CrostiniPortForwardingAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x43rostiniPortForwardingAllowed\x18\x02 \x01(\x08\"\x7f\n\x1dSystemTerminalSshAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18SystemTerminalSshAllowed\x18\x02 \x01(\x08\"}\n\x1c\x43rostiniAnsiblePlaybookProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x43rostiniAnsiblePlaybook\x18\x02 \x01(\t\"\x8f\x01\n%CrostiniArcAdbSideloadingAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n CrostiniArcAdbSideloadingAllowed\x18\x02 \x01(\x03\"\x85\x01\n DataCompressionProxyEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x44\x61taCompressionProxyEnabled\x18\x02 \x01(\x08\"\x83\x01\n\x1fHindiInscriptLayoutEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aHindiInscriptLayoutEnabled\x18\x02 \x01(\x08\"\x87\x01\n!EnableOnlineRevocationChecksProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x45nableOnlineRevocationChecks\x18\x02 \x01(\x08\"\xb8\x01\n(UnsafelyTreatInsecureOriginAsSecureProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12N\n#UnsafelyTreatInsecureOriginAsSecure\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1b\x46orceYouTubeSafetyModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x46orceYouTubeSafetyMode\x18\x02 \x01(\x08\"\xde\x01\n;CertificateTransparencyEnforcementDisabledForLegacyCasProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x61\n6CertificateTransparencyEnforcementDisabledForLegacyCas\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"i\n\x12HttpsOnlyModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rHttpsOnlyMode\x18\x02 \x01(\t\"\x8f\x01\n%SetTimeoutWithout1MsClampEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n SetTimeoutWithout1MsClampEnabled\x18\x02 \x01(\x08\"y\n\x1a\x44nsPrefetchingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44nsPrefetchingEnabled\x18\x02 \x01(\x08\"\xa8\x01\n SpellcheckLanguageBlocklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bSpellcheckLanguageBlocklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x90\x01\n\x14\x44isabledPluginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12:\n\x0f\x44isabledPlugins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bSchedulerConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16SchedulerConfiguration\x18\x02 \x01(\t\"\x81\x01\n\x1ePolicyAtomicGroupsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PolicyAtomicGroupsEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#AdditionalDnsQueryTypesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41\x64\x64itionalDnsQueryTypesEnabled\x18\x02 \x01(\x08\"\x99\x01\n*AdvancedProtectionDeepScanningEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%AdvancedProtectionDeepScanningEnabled\x18\x02 \x01(\x08\"\x85\x01\n ScrollToTextFragmentEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bScrollToTextFragmentEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#AuthNegotiateDelegateWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41uthNegotiateDelegateWhitelist\x18\x02 \x01(\t\"\x85\x01\n RendererAppContainerEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bRendererAppContainerEnabled\x18\x02 \x01(\x08\"\xac\x01\n\"AttestationExtensionWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x41ttestationExtensionWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bMaxConnectionsPerProxyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16MaxConnectionsPerProxy\x18\x02 \x01(\x03\"s\n\x17\x44isableScreenshotsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x44isableScreenshots\x18\x02 \x01(\x08\"\xd4\x01\n6CertificateTransparencyEnforcementDisabledForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\\\n1CertificateTransparencyEnforcementDisabledForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bShowLogoutButtonInTrayProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ShowLogoutButtonInTray\x18\x02 \x01(\x08\"o\n\x15VpnConfigAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10VpnConfigAllowed\x18\x02 \x01(\x08\"\x8e\x01\n\x13\x45nabledPluginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x39\n\x0e\x45nabledPlugins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8b\x01\n#EnableDeprecatedPrivetPrintingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x45nableDeprecatedPrivetPrinting\x18\x02 \x01(\x08\"\x8b\x01\n#EnterpriseRealTimeUrlCheckModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x45nterpriseRealTimeUrlCheckMode\x18\x02 \x01(\x03\"\x81\x01\n\x1e\x41\x64vancedProtectionAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x41\x64vancedProtectionAllowed\x18\x02 \x01(\x08\"{\n\x1b\x41pplicationLocaleValueProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x41pplicationLocaleValue\x18\x02 \x01(\t\"w\n\x19\x41ppCacheForceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x41ppCacheForceEnabled\x18\x02 \x01(\x08\"\x99\x01\n*EnterpriseAuthenticationAppLinkPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%EnterpriseAuthenticationAppLinkPolicy\x18\x02 \x01(\t\"\x87\x01\n!TaskManagerEndProcessEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cTaskManagerEndProcessEnabled\x18\x02 \x01(\x08\"y\n\x1aSitePerProcessAndroidProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15SitePerProcessAndroid\x18\x02 \x01(\x08\"\x7f\n\x1dIntranetRedirectBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18IntranetRedirectBehavior\x18\x02 \x01(\x03\"\x8f\x01\n%DefaultHandlersForFileExtensionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n DefaultHandlersForFileExtensions\x18\x02 \x01(\t\"\x7f\n\x1d\x42rowserGuestModeEnforcedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x42rowserGuestModeEnforced\x18\x02 \x01(\x08\"i\n\x12SSLVersionMaxProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rSSLVersionMax\x18\x02 \x01(\t\"\x81\x01\n\x1ePerAppTimeLimitsWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PerAppTimeLimitsWhitelist\x18\x02 \x01(\t\"o\n\x15IncognitoEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10IncognitoEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x42ruschettaVMConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x42ruschettaVMConfiguration\x18\x02 \x01(\t\"\x85\x01\n PacHttpsUrlStrippingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bPacHttpsUrlStrippingEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'OffsetParentNewSpecBehaviorEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"OffsetParentNewSpecBehaviorEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'CloudPolicyOverridesPlatformPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"CloudPolicyOverridesPlatformPolicy\x18\x02 \x01(\x08\"\x95\x01\n(SecondaryGoogleAccountSigninAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#SecondaryGoogleAccountSigninAllowed\x18\x02 \x01(\x08\"w\n\x19\x44ownloadRestrictionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x44ownloadRestrictions\x18\x02 \x01(\x03\"\x83\x01\n\x1f\x41lternateErrorPagesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x41lternateErrorPagesEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#AutoLaunchProtocolsFromOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41utoLaunchProtocolsFromOrigins\x18\x02 \x01(\t\"k\n\x13WallpaperImageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eWallpaperImage\x18\x02 \x01(\t\"\x97\x01\n)AbusiveExperienceInterventionEnforceProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$AbusiveExperienceInterventionEnforce\x18\x02 \x01(\x08\"\x8f\x01\n%ChromeOsMultiProfileUserBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n ChromeOsMultiProfileUserBehavior\x18\x02 \x01(\t\"w\n\x19RelaunchNotificationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14RelaunchNotification\x18\x02 \x01(\x03\"k\n\x13ImportHomepageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eImportHomepage\x18\x02 \x01(\x08\"k\n\x13RelaunchWindowProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eRelaunchWindow\x18\x02 \x01(\t\"k\n\x13ShelfAlignmentProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eShelfAlignment\x18\x02 \x01(\t\"s\n\x17\x42ookmarkBarEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x42ookmarkBarEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%ManagedAccountsSigninRestrictionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n ManagedAccountsSigninRestriction\x18\x02 \x01(\t\"\x87\x01\n!PhoneHubNotificationsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cPhoneHubNotificationsAllowed\x18\x02 \x01(\x08\"\x97\x01\n)CORSNonWildcardRequestHeadersSupportProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$CORSNonWildcardRequestHeadersSupport\x18\x02 \x01(\x08\"\x8d\x01\n$HardwareAccelerationModeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fHardwareAccelerationModeEnabled\x18\x02 \x01(\x08\"}\n\x1c\x43ontextualSearchEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x43ontextualSearchEnabled\x18\x02 \x01(\x08\"q\n\x16\x45\x61syUnlockAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x45\x61syUnlockAllowed\x18\x02 \x01(\x08\"}\n\x1c\x45xternalStorageReadOnlyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x45xternalStorageReadOnly\x18\x02 \x01(\x08\"\x87\x01\n!SecurityTokenSessionBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cSecurityTokenSessionBehavior\x18\x02 \x01(\t\"u\n\x18UserFeedbackAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13UserFeedbackAllowed\x18\x02 \x01(\x08\"\x85\x01\n LockIconInAddressBarEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bLockIconInAddressBarEnabled\x18\x02 \x01(\x08\"\xb2\x01\n%LookalikeWarningAllowlistDomainsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12K\n LookalikeWarningAllowlistDomains\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xe0\x01\n<RestrictedManagedGuestSessionExtensionCleanupExemptListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x62\n7RestrictedManagedGuestSessionExtensionCleanupExemptList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8f\x01\n%IsolatedAppsDeveloperModeAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n IsolatedAppsDeveloperModeAllowed\x18\x02 \x01(\x08\"w\n\x19SearchSuggestEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14SearchSuggestEnabled\x18\x02 \x01(\x08\"g\n\x11TrashEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cTrashEnabled\x18\x02 \x01(\x08\"\xa0\x01\n\x1cVideoCaptureAllowedUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17VideoCaptureAllowedUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"s\n\x17\x42rowserLabsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x42rowserLabsEnabled\x18\x02 \x01(\x08\"\x9f\x01\n-SamlLockScreenOfflineSigninTimeLimitDaysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(SamlLockScreenOfflineSigninTimeLimitDays\x18\x02 \x01(\x03\"\x8b\x01\n#IsolatedWebAppInstallForceListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eIsolatedWebAppInstallForceList\x18\x02 \x01(\t\"\xd2\x01\n5GetDisplayMediaSetSelectAllScreensAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12[\n0GetDisplayMediaSetSelectAllScreensAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"s\n\x17SessionLengthLimitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12SessionLengthLimit\x18\x02 \x01(\x03\"q\n\x16\x42rowserThemeColorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x42rowserThemeColor\x18\x02 \x01(\t\"\xa9\x01\n2WebAuthenticationRemoteProxiedRequestsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x35\n-WebAuthenticationRemoteProxiedRequestsAllowed\x18\x02 \x01(\x08\"\x97\x01\n)PromptOnMultipleMatchingCertificatesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$PromptOnMultipleMatchingCertificates\x18\x02 \x01(\x08\"\x87\x01\n!InsecureFormsWarningsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cInsecureFormsWarningsEnabled\x18\x02 \x01(\x08\"k\n\x13GCFUserDataDirProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eGCFUserDataDir\x18\x02 \x01(\t\"\x85\x01\n SecondaryGoogleAccountUsageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bSecondaryGoogleAccountUsage\x18\x02 \x01(\t\"w\n\x19PolicyScopeDetectionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14PolicyScopeDetection\x18\x02 \x01(\x08\"i\n\x12\x44isable3DAPIsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rDisable3DAPIs\x18\x02 \x01(\x08\"\x8b\x01\n#UnifiedDesktopEnabledByDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eUnifiedDesktopEnabledByDefault\x18\x02 \x01(\x08\"\x81\x01\n\x1ePaymentMethodQueryEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PaymentMethodQueryEnabled\x18\x02 \x01(\x08\"u\n\x18VideoCaptureAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13VideoCaptureAllowed\x18\x02 \x01(\x08\"\x8d\x01\n$LacrosDataBackwardMigrationModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fLacrosDataBackwardMigrationMode\x18\x02 \x01(\t\"\x8f\x01\n%IntensiveWakeUpThrottlingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n IntensiveWakeUpThrottlingEnabled\x18\x02 \x01(\x08\"y\n\x1aShelfAutoHideBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15ShelfAutoHideBehavior\x18\x02 \x01(\t\"g\n\x11SyncDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cSyncDisabled\x18\x02 \x01(\x08\"g\n\x11\x44iskCacheDirProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0c\x44iskCacheDir\x18\x02 \x01(\t\"\xa1\x01\n.DataLeakPreventionClipboardCheckSizeLimitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x31\n)DataLeakPreventionClipboardCheckSizeLimit\x18\x02 \x01(\x03\"\x87\x01\n!AccessCodeCastDeviceDurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x41\x63\x63\x65ssCodeCastDeviceDuration\x18\x02 \x01(\x03\"\x85\x01\n DataLeakPreventionRulesListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x44\x61taLeakPreventionRulesList\x18\x02 \x01(\t\"\x8a\x01\n\x11URLWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x37\n\x0cURLWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9b\x01\n+SuppressDifferentOriginSubframeDialogsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&SuppressDifferentOriginSubframeDialogs\x18\x02 \x01(\x08\"}\n\x1c\x43omponentUpdatesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x43omponentUpdatesEnabled\x18\x02 \x01(\x08\"\x8d\x01\n$WebRtcEventLogCollectionAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fWebRtcEventLogCollectionAllowed\x18\x02 \x01(\x08\"\x85\x01\n EncryptedClientHelloEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x45ncryptedClientHelloEnabled\x18\x02 \x01(\x08\"\x9c\x01\n\x1aSyncTypesListDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12@\n\x15SyncTypesListDisabled\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"}\n\x1cWebXRImmersiveArEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17WebXRImmersiveArEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%OptimizationGuideFetchingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n OptimizationGuideFetchingEnabled\x18\x02 \x01(\x08\"\xac\x01\n\"ExplicitlyAllowedNetworkPortsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x45xplicitlyAllowedNetworkPorts\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x96\x01\n\x17PinnedLauncherAppsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12=\n\x12PinnedLauncherApps\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"u\n\x18\x43\x43TToSDialogEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x43\x43TToSDialogEnabled\x18\x02 \x01(\x08\"\xa0\x01\n\x1c\x41udioCaptureAllowedUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17\x41udioCaptureAllowedUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xb4\x01\n&NoteTakingAppsLockScreenAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12L\n!NoteTakingAppsLockScreenAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x87\x01\n!RoamingProfileSupportEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cRoamingProfileSupportEnabled\x18\x02 \x01(\x08\"{\n\x1b\x41lwaysAuthorizePluginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x41lwaysAuthorizePlugins\x18\x02 \x01(\x08\"{\n\x1bPersistentQuotaEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PersistentQuotaEnabled\x18\x02 \x01(\x08\"k\n\x13WebAppSettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eWebAppSettings\x18\x02 \x01(\t\"s\n\x17\x43lickToCallEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x43lickToCallEnabled\x18\x02 \x01(\x08\"s\n\x17NearbyShareAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12NearbyShareAllowed\x18\x02 \x01(\x08\"y\n\x1a\x41\x63\x63\x65ssCodeCastEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x41\x63\x63\x65ssCodeCastEnabled\x18\x02 \x01(\x08\"w\n\x19\x45\x64itBookmarksEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x45\x64itBookmarksEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"WelcomePageOnOSUpgradeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dWelcomePageOnOSUpgradeEnabled\x18\x02 \x01(\x08\"\x9f\x01\n-UnmanagedDeviceSignalsConsentFlowEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(UnmanagedDeviceSignalsConsentFlowEnabled\x18\x02 \x01(\x08\"\xb9\x01\n:ExemptDomainFileTypePairsFromFileTypeDownloadWarningsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12=\n5ExemptDomainFileTypePairsFromFileTypeDownloadWarnings\x18\x02 \x01(\t\"\x85\x01\n UserAgentClientHintsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bUserAgentClientHintsEnabled\x18\x02 \x01(\x08\"\x87\x01\n!CloudProfileReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x43loudProfileReportingEnabled\x18\x02 \x01(\x08\"u\n\x18\x41udioSandboxEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x41udioSandboxEnabled\x18\x02 \x01(\x08\"\x96\x01\n\x17SpellcheckLanguageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12=\n\x12SpellcheckLanguage\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1b\x42lockThirdPartyCookiesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x42lockThirdPartyCookies\x18\x02 \x01(\x08\"i\n\x12\x44iskCacheSizeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rDiskCacheSize\x18\x02 \x01(\x03\"\x87\x01\n!NativeWindowOcclusionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cNativeWindowOcclusionEnabled\x18\x02 \x01(\x08\"e\n\x10UserDataDirProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bUserDataDir\x18\x02 \x01(\t\"\x87\x01\n!SavingBrowserHistoryDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cSavingBrowserHistoryDisabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x41llowFileSelectionDialogsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x41llowFileSelectionDialogs\x18\x02 \x01(\x08\"}\n\x1c\x42\x61\x63kForwardCacheEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x42\x61\x63kForwardCacheEnabled\x18\x02 \x01(\x08\"o\n\x15\x43hromeVariationsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x43hromeVariations\x18\x02 \x01(\x03\"q\n\x16SideSearchEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11SideSearchEnabled\x18\x02 \x01(\x08\"\x83\x01\n\x1f\x44\x65veloperToolsAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x44\x65veloperToolsAvailability\x18\x02 \x01(\x03\"y\n\x1a\x43orsLegacyModeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x43orsLegacyModeEnabled\x18\x02 \x01(\x08\"\x7f\n\x1dSpellCheckServiceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18SpellCheckServiceEnabled\x18\x02 \x01(\x08\"\xb6\x01\n\'ContextAwareAccessSignalsAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12M\n\"ContextAwareAccessSignalsAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"}\n\x1cSSLErrorOverrideAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17SSLErrorOverrideAllowed\x18\x02 \x01(\x08\"e\n\x10\x44isableSpdyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0b\x44isableSpdy\x18\x02 \x01(\x08\"i\n\x12LacrosAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rLacrosAllowed\x18\x02 \x01(\x08\"m\n\x14NTPCardsVisibleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fNTPCardsVisible\x18\x02 \x01(\x08\"{\n\x1bWebComponentsV0EnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16WebComponentsV0Enabled\x18\x02 \x01(\x08\"q\n\x16\x44ownloadDirectoryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x44ownloadDirectory\x18\x02 \x01(\t\"{\n\x1b\x46orceEphemeralProfilesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x46orceEphemeralProfiles\x18\x02 \x01(\x08\"}\n\x1c\x42rowserAddPersonEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x42rowserAddPersonEnabled\x18\x02 \x01(\x08\"c\n\x0fRC4EnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x12\n\nRC4Enabled\x18\x02 \x01(\x08\"k\n\x13InstantEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eInstantEnabled\x18\x02 \x01(\x08\"e\n\x10OsColorModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bOsColorMode\x18\x02 \x01(\t\"\xb4\x01\n&NoteTakingAppsLockScreenWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12L\n!NoteTakingAppsLockScreenWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"q\n\x16\x43hromeAppsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x43hromeAppsEnabled\x18\x02 \x01(\x08\"\xa1\x01\n.EnterpriseProfileCreationKeepBrowsingDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x31\n)EnterpriseProfileCreationKeepBrowsingData\x18\x02 \x01(\x08\"\x7f\n\x1d\x44\x65sktopSharingHubEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x44\x65sktopSharingHubEnabled\x18\x02 \x01(\x08\"\xa2\x01\n\x1dQuickUnlockModeWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18QuickUnlockModeWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"m\n\x14TabUnderAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fTabUnderAllowed\x18\x02 \x01(\x08\"\x89\x01\n\"ChromeCleanupReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1d\x43hromeCleanupReportingEnabled\x18\x02 \x01(\x08\"u\n\x18\x43learSiteDataOnExitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x43learSiteDataOnExit\x18\x02 \x01(\x08\"\x87\x01\n!DNSInterceptionChecksEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44NSInterceptionChecksEnabled\x18\x02 \x01(\x08\"\x90\x01\n\x14\x44isabledSchemesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12:\n\x0f\x44isabledSchemes\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1f\x46loatingWorkspaceV2EnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x46loatingWorkspaceV2Enabled\x18\x02 \x01(\x08\"\x91\x01\n&SuppressChromeFrameTurndownPromptProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!SuppressChromeFrameTurndownPrompt\x18\x02 \x01(\x08\"}\n\x1c\x45xternalStorageDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x45xternalStorageDisabled\x18\x02 \x01(\x08\"\x95\x01\n(BrowserLegacyExtensionPointsBlockedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#BrowserLegacyExtensionPointsBlocked\x18\x02 \x01(\x08\"\x81\x01\n\x1eSignedHTTPExchangeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19SignedHTTPExchangeEnabled\x18\x02 \x01(\x08\"\x9d\x01\n,SecurityTokenSessionNotificationSecondsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'SecurityTokenSessionNotificationSeconds\x18\x02 \x01(\x03\"}\n\x1cSuggestedContentEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17SuggestedContentEnabled\x18\x02 \x01(\x08\"\x9b\x01\n+WebDriverOverridesIncompatiblePoliciesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&WebDriverOverridesIncompatiblePolicies\x18\x02 \x01(\x08\"\x7f\n\x1d\x41llowNativeNotificationsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x41llowNativeNotifications\x18\x02 \x01(\x08\"\x8f\x01\n%BrowserNetworkTimeQueriesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n BrowserNetworkTimeQueriesEnabled\x18\x02 \x01(\x08\"\x9a\x01\n\x19HSTSPolicyBypassListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12?\n\x14HSTSPolicyBypassList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1fPrefixedStorageInfoEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aPrefixedStorageInfoEnabled\x18\x02 \x01(\x08\"{\n\x1b\x41llowDinosaurEasterEggProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x41llowDinosaurEasterEgg\x18\x02 \x01(\x08\"\xa4\x01\n\x1e\x45xtensionInstallBlacklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x45xtensionInstallBlacklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x90\x01\n\x14WebAuthnFactorsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12:\n\x0fWebAuthnFactors\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$AccessibilityImageLabelsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x41\x63\x63\x65ssibilityImageLabelsEnabled\x18\x02 \x01(\x08\"y\n\x1a\x44ownloadBubbleEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44ownloadBubbleEnabled\x18\x02 \x01(\x08\"\xa7\x01\n1ExternalProtocolDialogShowAlwaysOpenCheckboxProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x34\n,ExternalProtocolDialogShowAlwaysOpenCheckbox\x18\x02 \x01(\x08\"\x99\x01\n*InsecurePrivateNetworkRequestsAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%InsecurePrivateNetworkRequestsAllowed\x18\x02 \x01(\x08\"\x81\x01\n\x1eHighEfficiencyModeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19HighEfficiencyModeEnabled\x18\x02 \x01(\x08\"\xcc\x01\n2KeepFullscreenWithoutNotificationUrlAllowListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12X\n-KeepFullscreenWithoutNotificationUrlAllowList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"m\n\x14\x41llowScreenLockProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x41llowScreenLock\x18\x02 \x01(\x08\"s\n\x17ImportSearchEngineProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12ImportSearchEngine\x18\x02 \x01(\x08\"\x96\x01\n\x17\x43orsMitigationListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12=\n\x12\x43orsMitigationList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1eThirdPartyBlockingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19ThirdPartyBlockingEnabled\x18\x02 \x01(\x08\"\x9b\x01\n+DisplayCapturePermissionsPolicyEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&DisplayCapturePermissionsPolicyEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"WebSQLNonSecureContextEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dWebSQLNonSecureContextEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'EnableSymantecLegacyInfrastructureProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"EnableSymantecLegacyInfrastructure\x18\x02 \x01(\x08\"\xa7\x01\n1RequireOnlineRevocationChecksForLocalAnchorsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x34\n,RequireOnlineRevocationChecksForLocalAnchors\x18\x02 \x01(\x08\"\x89\x01\n\"WebRtcAllowLegacyTLSProtocolsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dWebRtcAllowLegacyTLSProtocols\x18\x02 \x01(\x08\"}\n\x1cLensRegionSearchEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17LensRegionSearchEnabled\x18\x02 \x01(\x08\"\xa5\x01\n0ForceMajorVersionToMinorPositionInUserAgentProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x33\n+ForceMajorVersionToMinorPositionInUserAgent\x18\x02 \x01(\x03\"{\n\x1bRoamingProfileLocationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16RoamingProfileLocation\x18\x02 \x01(\t\"i\n\x12\x43\x45\x43PQ2EnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rCECPQ2Enabled\x18\x02 \x01(\x08\"\x8d\x01\n$LensCameraAssistedSearchEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fLensCameraAssistedSearchEnabled\x18\x02 \x01(\x08\"\xa4\x01\n\x1e\x45xtensionInstallWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x45xtensionInstallWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8b\x01\n#Http09OnNonDefaultPortsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eHttp09OnNonDefaultPortsEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#SandboxExternalProtocolBlockedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eSandboxExternalProtocolBlocked\x18\x02 \x01(\x08\"{\n\x1bSharedClipboardEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16SharedClipboardEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'CloudManagementEnrollmentMandatoryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"CloudManagementEnrollmentMandatory\x18\x02 \x01(\x08\"\x9d\x01\n,EnableCommonNameFallbackForLocalAnchorsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'EnableCommonNameFallbackForLocalAnchors\x18\x02 \x01(\x08\"\x8f\x01\n%ForceLegacyDefaultReferrerPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n ForceLegacyDefaultReferrerPolicy\x18\x02 \x01(\x08\"\x97\x01\n)NewBaseUrlInheritanceBehaviorAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$NewBaseUrlInheritanceBehaviorAllowed\x18\x02 \x01(\x08\"m\n\x14UserAvatarImageProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fUserAvatarImage\x18\x02 \x01(\t\"\x9d\x01\n,UrlKeyedAnonymizedDataCollectionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'UrlKeyedAnonymizedDataCollectionEnabled\x18\x02 \x01(\x08\"\x95\x01\n(SuggestLogoutAfterClosingLastWindowProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#SuggestLogoutAfterClosingLastWindow\x18\x02 \x01(\x08\"y\n\x1a\x41llowedDomainsForAppsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x41llowedDomainsForApps\x18\x02 \x01(\t\"\x8a\x01\n\x11URLBlacklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x37\n\x0cURLBlacklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x41utofillCreditCardEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x41utofillCreditCardEnabled\x18\x02 \x01(\x08\"i\n\x12ProxySettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rProxySettings\x18\x02 \x01(\t\"k\n\x13IsolateOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eIsolateOrigins\x18\x02 \x01(\t\"\xa3\x01\n/StrictMimetypeCheckForWorkerScriptsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*StrictMimetypeCheckForWorkerScriptsEnabled\x18\x02 \x01(\x08\"}\n\x1cRestrictSigninToPatternProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17RestrictSigninToPattern\x18\x02 \x01(\t\"\xa3\x01\n/SharedArrayBufferUnrestrictedAccessAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*SharedArrayBufferUnrestrictedAccessAllowed\x18\x02 \x01(\x08\"s\n\x17\x46ullRestoreEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x46ullRestoreEnabled\x18\x02 \x01(\x08\"w\n\x19\x44\x65skTemplatesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x44\x65skTemplatesEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1ePromptForDownloadLocationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PromptForDownloadLocation\x18\x02 \x01(\x08\"\x83\x01\n\x1fOnPrintEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aOnPrintEnterpriseConnector\x18\x02 \x01(\t\"u\n\x18\x41udioCaptureAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x41udioCaptureAllowed\x18\x02 \x01(\x08\"\x81\x01\n\x1eIncognitoModeAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19IncognitoModeAvailability\x18\x02 \x01(\x03\"\x8b\x01\n#DeskAPIThirdPartyAccessEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x44\x65skAPIThirdPartyAccessEnabled\x18\x02 \x01(\x08\"\xb4\x01\n&SSLErrorOverrideAllowedForOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12L\n!SSLErrorOverrideAllowedForOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"k\n\x13SitePerProcessProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eSitePerProcess\x18\x02 \x01(\x08\"\x9f\x01\n-GaiaLockScreenOfflineSigninTimeLimitDaysProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n(GaiaLockScreenOfflineSigninTimeLimitDays\x18\x02 \x01(\x03\"\x7f\n\x1d\x46loatingWorkspaceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x46loatingWorkspaceEnabled\x18\x02 \x01(\x08\"s\n\x17WebRtcUdpPortRangeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12WebRtcUdpPortRange\x18\x02 \x01(\t\"{\n\x1bRemoteDebuggingAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16RemoteDebuggingAllowed\x18\x02 \x01(\x08\"\xae\x01\n#PrintingAPIExtensionsWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12I\n\x1ePrintingAPIExtensionsWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"m\n\x14UserDisplayNameProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fUserDisplayName\x18\x02 \x01(\t\"\x83\x01\n\x1fReportCrostiniUsageEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aReportCrostiniUsageEnabled\x18\x02 \x01(\x08\"\x91\x01\n&OnFileAttachedEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!OnFileAttachedEnterpriseConnector\x18\x02 \x01(\t\"\x8b\x01\n#CACertificateManagementAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x43\x41\x43\x65rtificateManagementAllowed\x18\x02 \x01(\x03\"\xac\x01\n\"ExternalPrintServersWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1d\x45xternalPrintServersWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa3\x01\n/AmbientAuthenticationInPrivateModesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*AmbientAuthenticationInPrivateModesEnabled\x18\x02 \x01(\x03\"w\n\x19\x46orceYouTubeRestrictProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x46orceYouTubeRestrict\x18\x02 \x01(\x03\"{\n\x1b\x43opyPreventionSettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x43opyPreventionSettings\x18\x02 \x01(\t\"e\n\x10QuicAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0bQuicAllowed\x18\x02 \x01(\x08\"{\n\x1b\x45mojiSuggestionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x45mojiSuggestionEnabled\x18\x02 \x01(\x08\"\x9d\x01\n,DeviceLocalAccountManagedSessionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'DeviceLocalAccountManagedSessionEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%NTPMiddleSlotAnnouncementVisibleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n NTPMiddleSlotAnnouncementVisible\x18\x02 \x01(\x08\"w\n\x19\x41llowOutdatedPluginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x41llowOutdatedPlugins\x18\x02 \x01(\x08\"q\n\x16SpellcheckEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11SpellcheckEnabled\x18\x02 \x01(\x08\"\x95\x01\n(ExtensionInstallEventLoggingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#ExtensionInstallEventLoggingEnabled\x18\x02 \x01(\x08\"w\n\x19\x42rowsingDataLifetimeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x42rowsingDataLifetime\x18\x02 \x01(\t\"\x9d\x01\n,CaptivePortalAuthenticationIgnoresProxyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'CaptivePortalAuthenticationIgnoresProxy\x18\x02 \x01(\x08\"\x83\x01\n\x1fNTPCustomBackgroundEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aNTPCustomBackgroundEnabled\x18\x02 \x01(\x08\"{\n\x1bSmartLockSigninAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16SmartLockSigninAllowed\x18\x02 \x01(\x08\"{\n\x1b\x44\x65veloperToolsDisabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x44\x65veloperToolsDisabled\x18\x02 \x01(\x08\"y\n\x1aWPADQuickCheckEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15WPADQuickCheckEnabled\x18\x02 \x01(\x08\"\x87\x01\n!BatterySaverModeAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x42\x61tterySaverModeAvailability\x18\x02 \x01(\x03\"s\n\x17UserAgentReductionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12UserAgentReduction\x18\x02 \x01(\x03\"o\n\x15HideWebStoreIconProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10HideWebStoreIcon\x18\x02 \x01(\x08\"\x7f\n\x1dInsightsExtensionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18InsightsExtensionEnabled\x18\x02 \x01(\x08\"\x94\x01\n\x16\x41utoplayWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12<\n\x11\x41utoplayWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"i\n\x12SSLVersionMinProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rSSLVersionMin\x18\x02 \x01(\t\"\x8e\x01\n\x13SessionLocalesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x39\n\x0eSessionLocales\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1fRestrictAccountsToPatternsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1aRestrictAccountsToPatterns\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1eMaxInvalidationFetchDelayProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19MaxInvalidationFetchDelay\x18\x02 \x01(\x03\"\xa6\x01\n\x1f\x44\x65skAPIThirdPartyAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1a\x44\x65skAPIThirdPartyAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x99\x01\n*VirtualKeyboardResizesLayoutByDefaultProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%VirtualKeyboardResizesLayoutByDefault\x18\x02 \x01(\x08\"g\n\x11WebSQLAccessProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cWebSQLAccess\x18\x02 \x01(\x08\"\xca\x01\n1OverrideSecurityRestrictionsOnInsecureOriginProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12W\n,OverrideSecurityRestrictionsOnInsecureOrigin\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8b\x01\n#AdsSettingForIntrusiveAdsSitesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41\x64sSettingForIntrusiveAdsSites\x18\x02 \x01(\x03\"\x7f\n\x1dOpenNetworkConfigurationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18OpenNetworkConfiguration\x18\x02 \x01(\t\"y\n\x1a\x44nsOverHttpsTemplatesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x44nsOverHttpsTemplates\x18\x02 \x01(\t\"\xa4\x01\n\x1e\x44isabledPluginsExceptionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19\x44isabledPluginsExceptions\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1aUseLegacyFormControlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15UseLegacyFormControls\x18\x02 \x01(\x08\"\x8f\x01\n%DisableSafeBrowsingProceedAnywayProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n DisableSafeBrowsingProceedAnyway\x18\x02 \x01(\x08\"\x90\x01\n\x14\x46orcedLanguagesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12:\n\x0f\x46orcedLanguages\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x87\x01\n!DefaultBrowserSettingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x44\x65\x66\x61ultBrowserSettingEnabled\x18\x02 \x01(\x08\"\x91\x01\n&LoginDisplayPasswordButtonEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!LoginDisplayPasswordButtonEnabled\x18\x02 \x01(\x08\"\x85\x01\n AllowDeletingBrowserHistoryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x41llowDeletingBrowserHistory\x18\x02 \x01(\x08\"\xa8\x01\n SpellcheckLanguageBlacklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bSpellcheckLanguageBlacklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x85\x01\n TouchVirtualKeyboardEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bTouchVirtualKeyboardEnabled\x18\x02 \x01(\x08\"\xca\x01\n1InsecurePrivateNetworkRequestsAllowedForUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12W\n,InsecurePrivateNetworkRequestsAllowedForUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"u\n\x18\x41uthServerWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x41uthServerWhitelist\x18\x02 \x01(\t\"\x9e\x01\n\x1b\x41utoOpenAllowedForURLsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x41\n\x16\x41utoOpenAllowedForURLs\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x94\x01\n\x16\x41utoOpenFileTypesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12<\n\x11\x41utoOpenFileTypes\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xb8\x01\n(EnableDeprecatedWebPlatformFeaturesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12N\n#EnableDeprecatedWebPlatformFeatures\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1bVmManagementCliAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16VmManagementCliAllowed\x18\x02 \x01(\x08\"\x97\x01\n)StartupBrowserWindowLaunchSuppressedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$StartupBrowserWindowLaunchSuppressed\x18\x02 \x01(\x08\"\x81\x01\n\x1ePhoneHubCameraRollAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19PhoneHubCameraRollAllowed\x18\x02 \x01(\x08\"\x81\x01\n\x1eSigninInterceptionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19SigninInterceptionEnabled\x18\x02 \x01(\x08\"\x85\x01\n MediaRecommendationsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bMediaRecommendationsEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#LockScreenMediaPlaybackEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eLockScreenMediaPlaybackEnabled\x18\x02 \x01(\x08\"s\n\x17LacrosAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12LacrosAvailability\x18\x02 \x01(\t\"\x87\x01\n!NetworkServiceSandboxEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cNetworkServiceSandboxEnabled\x18\x02 \x01(\x08\"m\n\x14PhoneHubAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fPhoneHubAllowed\x18\x02 \x01(\x08\"s\n\x17GhostWindowEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12GhostWindowEnabled\x18\x02 \x01(\x08\"\xaa\x01\n!SafeBrowsingWhitelistDomainsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cSafeBrowsingWhitelistDomains\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"k\n\x13MediaCacheSizeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eMediaCacheSize\x18\x02 \x01(\x03\"m\n\x14\x41utoFillEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x41utoFillEnabled\x18\x02 \x01(\x08\"\xa4\x01\n\x1eWebRtcLocalIpsAllowedUrlsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19WebRtcLocalIpsAllowedUrls\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"q\n\x16HideWebStorePromoProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11HideWebStorePromo\x18\x02 \x01(\x08\"\x93\x01\n\'OnSecurityEventEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"OnSecurityEventEnterpriseConnector\x18\x02 \x01(\t\"}\n\x1c\x42uiltInDnsClientEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x42uiltInDnsClientEnabled\x18\x02 \x01(\x08\"\x8d\x01\n$AudioProcessHighPriorityEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x41udioProcessHighPriorityEnabled\x18\x02 \x01(\x08\"u\n\x18\x44isablePluginFinderProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13\x44isablePluginFinder\x18\x02 \x01(\x08\"{\n\x1bHistoryClustersVisibleProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16HistoryClustersVisible\x18\x02 \x01(\x08\"s\n\x17SmsMessagesAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12SmsMessagesAllowed\x18\x02 \x01(\x08\"\x8a\x01\n\x11URLBlocklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x37\n\x0cURLBlocklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x87\x01\n!ContextualSuggestionsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x43ontextualSuggestionsEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x43hromeOsLockOnIdleSuspendProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x43hromeOsLockOnIdleSuspend\x18\x02 \x01(\x08\"\x81\x01\n\x1eSystemFeaturesDisableModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19SystemFeaturesDisableMode\x18\x02 \x01(\t\"q\n\x16TermsOfServiceURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11TermsOfServiceURL\x18\x02 \x01(\t\"o\n\x15\x44nsOverHttpsModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x44nsOverHttpsMode\x18\x02 \x01(\t\"s\n\x17\x46orceBrowserSigninProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x46orceBrowserSignin\x18\x02 \x01(\x08\"i\n\x12\x42rowserSigninProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rBrowserSignin\x18\x02 \x01(\x03\"\x81\x01\n\x1e\x45nableSha1ForLocalAnchorsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x45nableSha1ForLocalAnchors\x18\x02 \x01(\x08\"s\n\x17TotalMemoryLimitMbProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12TotalMemoryLimitMb\x18\x02 \x01(\x03\"{\n\x1bImportAutofillFormDataProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16ImportAutofillFormData\x18\x02 \x01(\x08\"{\n\x1b\x41utofillAddressEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x41utofillAddressEnabled\x18\x02 \x01(\x08\"\xb4\x01\n&PolicyListMultipleSourceMergeListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12L\n!PolicyListMultipleSourceMergeList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa9\x01\n2DefaultSearchProviderContextMenuAccessAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x35\n-DefaultSearchProviderContextMenuAccessAllowed\x18\x02 \x01(\x08\"y\n\x1a\x45nterpriseWebStoreURLProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x45nterpriseWebStoreURL\x18\x02 \x01(\t\"\x8a\x01\n\x11URLAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x37\n\x0cURLAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa8\x01\n NativePrintersBulkBlacklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bNativePrintersBulkBlacklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"q\n\x16ScreenTimeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11ScreenTimeEnabled\x18\x02 \x01(\x08\"\x87\x01\n!RendererCodeIntegrityEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cRendererCodeIntegrityEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1eWarnBeforeQuittingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19WarnBeforeQuittingEnabled\x18\x02 \x01(\x08\"\x83\x01\n\x1fTargetBlankImpliesNoOpenerProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aTargetBlankImpliesNoOpener\x18\x02 \x01(\x08\"m\n\x14\x41utoplayAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x41utoplayAllowed\x18\x02 \x01(\x08\"\x9b\x01\n+CommandLineFlagSecurityWarningsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12.\n&CommandLineFlagSecurityWarningsEnabled\x18\x02 \x01(\x08\"{\n\x1b\x43hromeRootStoreEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x43hromeRootStoreEnabled\x18\x02 \x01(\x08\"q\n\x16PolicyRefreshRateProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11PolicyRefreshRate\x18\x02 \x01(\x03\"\x8f\x01\n%WebSQLInThirdPartyContextEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n WebSQLInThirdPartyContextEnabled\x18\x02 \x01(\x08\"\xd2\x01\n5CertificateTransparencyEnforcementDisabledForCasProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12[\n0CertificateTransparencyEnforcementDisabledForCas\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa2\x01\n\x1dNativeMessagingBlacklistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18NativeMessagingBlacklist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"{\n\x1b\x46ullscreenAlertEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x46ullscreenAlertEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#LacrosSecondaryProfilesAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eLacrosSecondaryProfilesAllowed\x18\x02 \x01(\x08\"w\n\x19\x43loudUserPolicyMergeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x43loudUserPolicyMerge\x18\x02 \x01(\x08\"q\n\x16JavascriptEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11JavascriptEnabled\x18\x02 \x01(\x08\"\x7f\n\x1d\x41llowSystemNotificationsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x41llowSystemNotifications\x18\x02 \x01(\x08\"\xc0\x01\n,PolicyDictionaryMultipleSourceMergeListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12R\n\'PolicyDictionaryMultipleSourceMergeList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8d\x01\n$AllowWebAuthnWithBrokenTlsCertsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1f\x41llowWebAuthnWithBrokenTlsCerts\x18\x02 \x01(\x08\"m\n\x14\x46orceSafeSearchProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x46orceSafeSearch\x18\x02 \x01(\x08\"\x97\x01\n)EnterpriseHardwarePlatformAPIEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$EnterpriseHardwarePlatformAPIEnabled\x18\x02 \x01(\x08\"\x89\x01\n\"ShowAppsShortcutInBookmarkBarProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dShowAppsShortcutInBookmarkBar\x18\x02 \x01(\x08\"\x89\x01\n\"ManagedConfigurationPerOriginProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12%\n\x1dManagedConfigurationPerOrigin\x18\x02 \x01(\t\"i\n\x12SigninAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rSigninAllowed\x18\x02 \x01(\x08\"q\n\x16TosDialogBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11TosDialogBehavior\x18\x02 \x01(\x03\"\x97\x01\n)StricterMixedContentTreatmentEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$StricterMixedContentTreatmentEnabled\x18\x02 \x01(\x08\"\xb4\x01\n&DeviceAttributesAllowedForOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12L\n!DeviceAttributesAllowedForOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"y\n\x1a\x46orceNetworkInProcessProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x46orceNetworkInProcess\x18\x02 \x01(\x08\"\x97\x01\n)TLS13HardeningForLocalAnchorsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$TLS13HardeningForLocalAnchorsEnabled\x18\x02 \x01(\x08\"\x97\x01\n)SafeBrowsingForTrustedSourcesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$SafeBrowsingForTrustedSourcesEnabled\x18\x02 \x01(\x08\"\xaa\x01\n!SecurityKeyPermitAttestationProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12G\n\x1cSecurityKeyPermitAttestation\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"s\n\x17TabFreezingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12TabFreezingEnabled\x18\x02 \x01(\x08\"m\n\x14ImportBookmarksProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0fImportBookmarks\x18\x02 \x01(\x08\"\x91\x01\n&OnFileTransferEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!OnFileTransferEnterpriseConnector\x18\x02 \x01(\t\"\x91\x01\n&GloballyScopeHTTPAuthCacheEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!GloballyScopeHTTPAuthCacheEnabled\x18\x02 \x01(\x08\"m\n\x14\x46\x61stPairEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x17\n\x0f\x46\x61stPairEnabled\x18\x02 \x01(\x08\"\x7f\n\x1d\x41llowChromeDataInBackupsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x41llowChromeDataInBackups\x18\x02 \x01(\x08\"\x8f\x01\n%OriginAgentClusterDefaultEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n OriginAgentClusterDefaultEnabled\x18\x02 \x01(\x08\"\x7f\n\x1d\x44\x65\x66\x61ultDownloadDirectoryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18\x44\x65\x66\x61ultDownloadDirectory\x18\x02 \x01(\t\"\xa4\x01\n\x1eSystemFeaturesDisableListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x44\n\x19SystemFeaturesDisableList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xaf\x01\n5ManagedGuestSessionAutoLaunchNotificationReducedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x38\n0ManagedGuestSessionAutoLaunchNotificationReduced\x18\x02 \x01(\x08\"\x85\x01\n LensDesktopNTPSearchEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bLensDesktopNTPSearchEnabled\x18\x02 \x01(\x08\"\x9d\x01\n,UserAgentClientHintsGREASEUpdateEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'UserAgentClientHintsGREASEUpdateEnabled\x18\x02 \x01(\x08\"\x95\x01\n(OnFileDownloadedEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12+\n#OnFileDownloadedEnterpriseConnector\x18\x02 \x01(\t\"y\n\x1aSSLVersionFallbackMinProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15SSLVersionFallbackMin\x18\x02 \x01(\t\"\x8b\x01\n#EnableDeprecatedWebBasedSigninProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x45nableDeprecatedWebBasedSignin\x18\x02 \x01(\x08\"\x85\x01\n VariationsRestrictParameterProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1bVariationsRestrictParameter\x18\x02 \x01(\t\"\x8b\x01\n#UsbDetectorNotificationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eUsbDetectorNotificationEnabled\x18\x02 \x01(\x08\"\xa3\x01\n/CrossOriginWebAssemblyModuleSharingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*CrossOriginWebAssemblyModuleSharingEnabled\x18\x02 \x01(\x08\"\x8b\x01\n#CloudManagementEnrollmentTokenProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x43loudManagementEnrollmentToken\x18\x02 \x01(\t\"}\n\x1cMetricsReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17MetricsReportingEnabled\x18\x02 \x01(\x08\"u\n\x18ShoppingListEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1b\n\x13ShoppingListEnabled\x18\x02 \x01(\x08\"y\n\x1aUrlParamFilterEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15UrlParamFilterEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'OnBulkDataEntryEnterpriseConnectorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"OnBulkDataEntryEnterpriseConnector\x18\x02 \x01(\t\"\x8d\x01\n$PhoneHubTaskContinuationAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fPhoneHubTaskContinuationAllowed\x18\x02 \x01(\x08\"{\n\x1b\x45nterpriseWebStoreNameProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16\x45nterpriseWebStoreName\x18\x02 \x01(\t\"\xd8\x01\n8CoalesceH2ConnectionsWithClientCertificatesForHostsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12^\n3CoalesceH2ConnectionsWithClientCertificatesForHosts\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x83\x01\n\x1fPreconfiguredDeskTemplatesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aPreconfiguredDeskTemplates\x18\x02 \x01(\t\"o\n\x15TripleDESEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10TripleDESEnabled\x18\x02 \x01(\x08\"\x87\x01\n!SuppressUnsupportedOSWarningProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cSuppressUnsupportedOSWarning\x18\x02 \x01(\x08\"o\n\x15ManagedBookmarksProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10ManagedBookmarks\x18\x02 \x01(\t\"\x91\x01\n&BuiltinCertificateVerifierEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!BuiltinCertificateVerifierEnabled\x18\x02 \x01(\x08\"q\n\x16\x46ullscreenAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x46ullscreenAllowed\x18\x02 \x01(\x08\"y\n\x1aLocalDiscoveryEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15LocalDiscoveryEnabled\x18\x02 \x01(\x08\"\xa3\x01\n/MachineLevelUserCloudPolicyEnrollmentTokenProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*MachineLevelUserCloudPolicyEnrollmentToken\x18\x02 \x01(\t\"o\n\x15TranslateEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10TranslateEnabled\x18\x02 \x01(\x08\"{\n\x1bWifiSyncAndroidAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16WifiSyncAndroidAllowed\x18\x02 \x01(\x08\"\x87\x01\n!NTPContentSuggestionsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cNTPContentSuggestionsEnabled\x18\x02 \x01(\x08\"}\n\x1cInstantTetheringAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17InstantTetheringAllowed\x18\x02 \x01(\x08\"\x85\x01\n AllowSyncXHRInPageDismissalProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x41llowSyncXHRInPageDismissal\x18\x02 \x01(\x08\"\x7f\n\x1dPrimaryMouseButtonSwitchProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18PrimaryMouseButtonSwitch\x18\x02 \x01(\x08\"y\n\x1aRelaunchHeadsUpPeriodProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15RelaunchHeadsUpPeriod\x18\x02 \x01(\x03\"y\n\x1a\x42\x61\x63kgroundModeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x42\x61\x63kgroundModeEnabled\x18\x02 \x01(\x08\"\x7f\n\x1dShowFullUrlsInAddressBarProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18ShowFullUrlsInAddressBar\x18\x02 \x01(\x08\"y\n\x1a\x46orceGoogleSafeSearchProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15\x46orceGoogleSafeSearch\x18\x02 \x01(\x08\"\xa2\x01\n\x1dNativeMessagingWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x43\n\x18NativeMessagingWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1f\x45nableExperimentalPoliciesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1a\x45nableExperimentalPolicies\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"k\n\x13KeyPermissionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x16\n\x0eKeyPermissions\x18\x02 \x01(\t\"\x8d\x01\n$UnthrottledNestedTimeoutEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\'\n\x1fUnthrottledNestedTimeoutEnabled\x18\x02 \x01(\x08\"{\n\x1bWebAppInstallForceListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16WebAppInstallForceList\x18\x02 \x01(\t\"}\n\x1c\x41lwaysOpenPdfExternallyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x41lwaysOpenPdfExternally\x18\x02 \x01(\x08\"\x92\x01\n\x15\x41llowedLanguagesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12;\n\x10\x41llowedLanguages\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x94\x01\n\x16\x41utoplayAllowlistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12<\n\x11\x41utoplayAllowlist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa3\x01\n/SendMouseEventsDisabledFormControlsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*SendMouseEventsDisabledFormControlsEnabled\x18\x02 \x01(\x08\"\xa0\x01\n\x1cTabDiscardingExceptionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17TabDiscardingExceptions\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa5\x01\n0ThrottleNonVisibleCrossOriginIframesAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x33\n+ThrottleNonVisibleCrossOriginIframesAllowed\x18\x02 \x01(\x08\"{\n\x1bWindowOcclusionEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16WindowOcclusionEnabled\x18\x02 \x01(\x08\"{\n\x1bRunAllFlashInAllowModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16RunAllFlashInAllowMode\x18\x02 \x01(\x08\"o\n\x15\x45ventPathEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10\x45ventPathEnabled\x18\x02 \x01(\x08\"c\n\x0f\x44HEEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x12\n\nDHEEnabled\x18\x02 \x01(\x08\"y\n\x1aPdfAnnotationsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15PdfAnnotationsEnabled\x18\x02 \x01(\x08\"g\n\x11HeadlessModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x14\n\x0cHeadlessMode\x18\x02 \x01(\x03\"\x7f\n\x1dLoadCryptoTokenExtensionProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18LoadCryptoTokenExtension\x18\x02 \x01(\x08\"q\n\x16\x45nableSyncConsentProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11\x45nableSyncConsent\x18\x02 \x01(\x08\"}\n\x1c\x42rowserGuestModeEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x42rowserGuestModeEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x44isableSSLRecordSplittingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x44isableSSLRecordSplitting\x18\x02 \x01(\x08\"\xa3\x01\n/CloudUserPolicyOverridesCloudMachinePolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x32\n*CloudUserPolicyOverridesCloudMachinePolicy\x18\x02 \x01(\x08\"}\n\x1cSafeSitesFilterBehaviorProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17SafeSitesFilterBehavior\x18\x02 \x01(\x03\"\x8b\x01\n#UserDataSnapshotRetentionLimitProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eUserDataSnapshotRetentionLimit\x18\x02 \x01(\x03\"\x7f\n\x1dU2fSecurityKeyApiEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18U2fSecurityKeyApiEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'ClientCertificateManagementAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"ClientCertificateManagementAllowed\x18\x02 \x01(\x03\"s\n\x17\x41udioOutputAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1a\n\x12\x41udioOutputAllowed\x18\x02 \x01(\x08\"\x98\x01\n\x18\x41llowedInputMethodsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12>\n\x13\x41llowedInputMethods\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x9d\x01\n,FetchKeepaliveDurationSecondsOnShutdownProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12/\n\'FetchKeepaliveDurationSecondsOnShutdown\x18\x02 \x01(\x03\"\x83\x01\n\x1fRelaunchNotificationPeriodProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1aRelaunchNotificationPeriod\x18\x02 \x01(\x03\"w\n\x19\x43hromeCleanupEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14\x43hromeCleanupEnabled\x18\x02 \x01(\x08\"o\n\x15WebRtcIPHandlingProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x18\n\x10WebRtcIPHandling\x18\x02 \x01(\t\"\x7f\n\x1dNetworkPredictionOptionsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18NetworkPredictionOptions\x18\x02 \x01(\x03\"w\n\x19ImportSavedPasswordsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14ImportSavedPasswords\x18\x02 \x01(\x08\"\x99\x01\n*ForceLogoutUnauthenticatedUserEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12-\n%ForceLogoutUnauthenticatedUserEnabled\x18\x02 \x01(\x08\"{\n\x1bPromotionalTabsEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1e\n\x16PromotionalTabsEnabled\x18\x02 \x01(\x08\"\x93\x01\n\'ProfilePickerOnStartupAvailabilityProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"ProfilePickerOnStartupAvailability\x18\x02 \x01(\x03\"}\n\x1c\x46orceMaximizeOnFirstRunProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x46orceMaximizeOnFirstRun\x18\x02 \x01(\x08\"\xa8\x01\n NativePrintersBulkWhitelistProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1bNativePrintersBulkWhitelist\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"e\n\x10\x45\x63heAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x13\n\x0b\x45\x63heAllowed\x18\x02 \x01(\x08\"\x93\x01\n\'DataLeakPreventionReportingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12*\n\"DataLeakPreventionReportingEnabled\x18\x02 \x01(\x08\"\x85\x01\n AllowPopupsDuringPageUnloadProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x41llowPopupsDuringPageUnload\x18\x02 \x01(\x08\"i\n\x12ImportHistoryProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x15\n\rImportHistory\x18\x02 \x01(\x08\"\xa1\x01\n.SafeBrowsingExtendedReportingOptInAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x31\n)SafeBrowsingExtendedReportingOptInAllowed\x18\x02 \x01(\x08\"y\n\x1aIsolateOriginsAndroidProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1d\n\x15IsolateOriginsAndroid\x18\x02 \x01(\t\"\xa8\x01\n ClearBrowsingDataOnExitListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x46\n\x1b\x43learBrowsingDataOnExitList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x81\x01\n\x1e\x45\x63ryptfsMigrationStrategyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x45\x63ryptfsMigrationStrategy\x18\x02 \x01(\x03\"w\n\x19PrivacyScreenEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14PrivacyScreenEnabled\x18\x02 \x01(\x08\"\x83\x01\n\x1f\x41\x64\x64itionalLaunchParametersProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\"\n\x1a\x41\x64\x64itionalLaunchParameters\x18\x02 \x01(\t\"q\n\x16SkipMetadataCheckProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x19\n\x11SkipMetadataCheck\x18\x02 \x01(\x08\"\xa0\x01\n\x1cRenderInChromeFrameListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x42\n\x17RenderInChromeFrameList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x92\x01\n\x15RenderInHostListProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12;\n\x10RenderInHostList\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x85\x01\n ChromeFrameRendererSettingsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12#\n\x1b\x43hromeFrameRendererSettings\x18\x02 \x01(\x03\"\x87\x01\n!NetBiosShareDiscoveryEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1cNetBiosShareDiscoveryEnabled\x18\x02 \x01(\x08\"\x7f\n\x1dNetworkFileSharesAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12 \n\x18NetworkFileSharesAllowed\x18\x02 \x01(\x08\"\x97\x01\n)NetworkFileSharesPreconfiguredSharesProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12,\n$NetworkFileSharesPreconfiguredShares\x18\x02 \x01(\t\"\x8b\x01\n#NTLMShareAuthenticationEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1eNTLMShareAuthenticationEnabled\x18\x02 \x01(\x08\"\xac\x01\n\"ScreenCaptureAllowedByOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dScreenCaptureAllowedByOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xa6\x01\n\x1fTabCaptureAllowedByOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x45\n\x1aTabCaptureAllowedByOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"w\n\x19ScreenCaptureAllowedProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1c\n\x14ScreenCaptureAllowed\x18\x02 \x01(\x08\"\xac\x01\n\"WindowCaptureAllowedByOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12H\n\x1dWindowCaptureAllowedByOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\xba\x01\n)SameOriginTabCaptureAllowedByOriginsProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12O\n$SameOriginTabCaptureAllowedByOrigins\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList\"\x8b\x01\n#ArcBackupRestoreServiceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12&\n\x1e\x41rcBackupRestoreServiceEnabled\x18\x02 \x01(\x03\"c\n\x0f\x41rcEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x12\n\nArcEnabled\x18\x02 \x01(\x08\"}\n\x1c\x41rcCertificatesSyncModeProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x41rcCertificatesSyncMode\x18\x02 \x01(\x03\"\x87\x01\n!ArcAppToWebAppSharingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12$\n\x1c\x41rcAppToWebAppSharingEnabled\x18\x02 \x01(\x08\"\x91\x01\n&AppRecommendationZeroStateEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12)\n!AppRecommendationZeroStateEnabled\x18\x02 \x01(\x08\"\x81\x01\n\x1e\x41rcLocationServiceEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12!\n\x19\x41rcLocationServiceEnabled\x18\x02 \x01(\x08\"\x8f\x01\n%ArcGoogleLocationServicesEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n ArcGoogleLocationServicesEnabled\x18\x02 \x01(\x03\"\x8f\x01\n%ArcAppInstallEventLoggingEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12(\n ArcAppInstallEventLoggingEnabled\x18\x02 \x01(\x08\"}\n\x1c\x41rcBackupRestoreEnabledProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x1f\n\x17\x41rcBackupRestoreEnabled\x18\x02 \x01(\x08\"a\n\x0e\x41rcPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x11\n\tArcPolicy\x18\x02 \x01(\t\"\xab\x03\n\x17\x43hromeSettingsSubProto1\x12p\n%ShowCastSessionsStartedByOtherDevices\x18\x02 \x01(\x0b\x32\x41.enterprise_management.ShowCastSessionsStartedByOtherDevicesProto\x12J\n\x12\x43loudAPAuthEnabled\x18\x03 \x01(\x0b\x32..enterprise_management.CloudAPAuthEnabledProto\x12n\n$NewBaseUrlInheritanceBehaviorAllowed\x18\x01 \x01(\x0b\x32@.enterprise_management.NewBaseUrlInheritanceBehaviorAllowedProto\x12\x62\n\x1eUsbDetectorNotificationEnabled\x18\x04 \x01(\x0b\x32:.enterprise_management.UsbDetectorNotificationEnabledProto\"\xb6\xbb\x04\n\x13\x43hromeSettingsProto\x12[\n\x1a\x43\x61lendarIntegrationEnabled\x18\xf9\x07 \x01(\x0b\x32\x36.enterprise_management.CalendarIntegrationEnabledProto\x12S\n\x16\x42rowserSwitcherEnabled\x18\x87\x04 \x01(\x0b\x32\x32.enterprise_management.BrowserSwitcherEnabledProto\x12[\n\x1a\x42rowserSwitcherUrlGreylist\x18\xf3\x03 \x01(\x0b\x32\x36.enterprise_management.BrowserSwitcherUrlGreylistProto\x12[\n\x1a\x42rowserSwitcherParsingMode\x18\xe4\x06 \x01(\x0b\x32\x36.enterprise_management.BrowserSwitcherParsingModeProto\x12O\n\x14\x42rowserSwitcherDelay\x18\x8e\x04 \x01(\x0b\x32\x30.enterprise_management.BrowserSwitcherDelayProto\x12_\n\x1c\x42rowserSwitcherUseIeSitelist\x18\xf4\x03 \x01(\x0b\x32\x38.enterprise_management.BrowserSwitcherUseIeSitelistProto\x12k\n\"BrowserSwitcherExternalGreylistUrl\x18\xb6\x04 \x01(\x0b\x32>.enterprise_management.BrowserSwitcherExternalGreylistUrlProto\x12Y\n\x19\x42rowserSwitcherChromePath\x18\x94\x04 \x01(\x0b\x32\x35.enterprise_management.BrowserSwitcherChromePathProto\x12g\n BrowserSwitcherKeepLastChromeTab\x18\x89\x04 \x01(\x0b\x32<.enterprise_management.BrowserSwitcherKeepLastChromeTabProto\x12S\n\x16\x41lternativeBrowserPath\x18\xf0\x03 \x01(\x0b\x32\x32.enterprise_management.AlternativeBrowserPathProto\x12S\n\x16\x42rowserSwitcherUrlList\x18\xf2\x03 \x01(\x0b\x32\x32.enterprise_management.BrowserSwitcherUrlListProto\x12_\n\x1c\x41lternativeBrowserParameters\x18\xf1\x03 \x01(\x0b\x32\x38.enterprise_management.AlternativeBrowserParametersProto\x12k\n\"BrowserSwitcherExternalSitelistUrl\x18\x81\x04 \x01(\x0b\x32>.enterprise_management.BrowserSwitcherExternalSitelistUrlProto\x12\x65\n\x1f\x42rowserSwitcherChromeParameters\x18\x95\x04 \x01(\x0b\x32;.enterprise_management.BrowserSwitcherChromeParametersProto\x12Q\n\x15\x46irstPartySetsEnabled\x18\xb6\x07 \x01(\x0b\x32\x31.enterprise_management.FirstPartySetsEnabledProto\x12U\n\x17\x46irstPartySetsOverrides\x18\xcb\x07 \x01(\x0b\x32\x33.enterprise_management.FirstPartySetsOverridesProto\x12\x63\n\x1e\x41uthNegotiateDelegateAllowlist\x18\xec\x05 \x01(\x0b\x32:.enterprise_management.AuthNegotiateDelegateAllowlistProto\x12\x41\n\rNtlmV2Enabled\x18\x8b\x03 \x01(\x0b\x32).enterprise_management.NtlmV2EnabledProto\x12m\n#AllHttpAuthSchemesAllowedForOrigins\x18\xb8\x07 \x01(\x0b\x32?.enterprise_management.AllHttpAuthSchemesAllowedForOriginsProto\x12Z\n\x1a\x41llowCrossOriginAuthPrompt\x18[ \x01(\x0b\x32\x36.enterprise_management.AllowCrossOriginAuthPromptProto\x12g\n AuthNegotiateDelegateByKdcPolicy\x18\x92\x04 \x01(\x0b\x32<.enterprise_management.AuthNegotiateDelegateByKdcPolicyProto\x12\x64\n\x1f\x44isableAuthNegotiateCnameLookup\x18\x1d \x01(\x0b\x32;.enterprise_management.DisableAuthNegotiateCnameLookupProto\x12k\n\"IntegratedWebAuthenticationAllowed\x18\xaa\x06 \x01(\x0b\x32>.enterprise_management.IntegratedWebAuthenticationAllowedProto\x12M\n\x13\x41uthServerAllowlist\x18\xed\x05 \x01(\x0b\x32/.enterprise_management.AuthServerAllowlistProto\x12T\n\x17\x45nableAuthNegotiatePort\x18\x1e \x01(\x0b\x32\x33.enterprise_management.EnableAuthNegotiatePortProto\x12<\n\x0b\x41uthSchemes\x18\x1c \x01(\x0b\x32\'.enterprise_management.AuthSchemesProto\x12\x65\n\x1f\x41uthAndroidNegotiateAccountType\x18\xb3\x02 \x01(\x0b\x32;.enterprise_management.AuthAndroidNegotiateAccountTypeProto\x12H\n\x11GSSAPILibraryName\x18! \x01(\x0b\x32-.enterprise_management.GSSAPILibraryNameProto\x12W\n\x18\x42\x61sicAuthOverHttpEnabled\x18\xa8\x06 \x01(\x0b\x32\x34.enterprise_management.BasicAuthOverHttpEnabledProto\x12<\n\x0bProxyServer\x18\x19 \x01(\x0b\x32\'.enterprise_management.ProxyServerProto\x12\x38\n\tProxyMode\x18\x17 \x01(\x0b\x32%.enterprise_management.ProxyModeProto\x12\x44\n\x0fProxyBypassList\x18\x1b \x01(\x0b\x32+.enterprise_management.ProxyBypassListProto\x12\x44\n\x0fProxyServerMode\x18\x18 \x01(\x0b\x32+.enterprise_management.ProxyServerModeProto\x12<\n\x0bProxyPacUrl\x18\x1a \x01(\x0b\x32\'.enterprise_management.ProxyPacUrlProto\x12w\n(SamlPasswordExpirationAdvanceWarningDays\x18\xad\x04 \x01(\x0b\x32\x44.enterprise_management.SamlPasswordExpirationAdvanceWarningDaysProto\x12[\n\x1aSAMLOfflineSigninTimeLimit\x18\x80\x02 \x01(\x0b\x32\x36.enterprise_management.SAMLOfflineSigninTimeLimitProto\x12i\n!LockScreenReauthenticationEnabled\x18\xd1\x05 \x01(\x0b\x32=.enterprise_management.LockScreenReauthenticationEnabledProto\x12k\n\"SamlInSessionPasswordChangeEnabled\x18\xa3\x04 \x01(\x0b\x32>.enterprise_management.SamlInSessionPasswordChangeEnabledProto\x12S\n\x16ReportArcStatusEnabled\x18\xdf\x02 \x01(\x0b\x32\x32.enterprise_management.ReportArcStatusEnabledProto\x12G\n\x10ProjectorEnabled\x18\xa9\x07 \x01(\x0b\x32,.enterprise_management.ProjectorEnabledProto\x12o\n$ProjectorDogfoodForFamilyLinkEnabled\x18\xd6\x07 \x01(\x0b\x32@.enterprise_management.ProjectorDogfoodForFamilyLinkEnabledProto\x12\x63\n\x1eReportExtensionsAndPluginsData\x18\xf5\x03 \x01(\x0b\x32:.enterprise_management.ReportExtensionsAndPluginsDataProto\x12G\n\x10ReportPolicyData\x18\xd9\x03 \x01(\x0b\x32,.enterprise_management.ReportPolicyDataProto\x12I\n\x11ReportVersionData\x18\xd8\x03 \x01(\x0b\x32-.enterprise_management.ReportVersionDataProto\x12S\n\x16ReportSafeBrowsingData\x18\xf6\x03 \x01(\x0b\x32\x32.enterprise_management.ReportSafeBrowsingDataProto\x12\x61\n\x1d\x43loudReportingUploadFrequency\x18\xc4\x07 \x01(\x0b\x32\x39.enterprise_management.CloudReportingUploadFrequencyProto\x12G\n\x10ReportUserIDData\x18\xdb\x03 \x01(\x0b\x32,.enterprise_management.ReportUserIDDataProto\x12Q\n\x15\x43loudReportingEnabled\x18\xef\x03 \x01(\x0b\x32\x31.enterprise_management.CloudReportingEnabledProto\x12_\n\x1c\x43loudExtensionRequestEnabled\x18\xe2\x04 \x01(\x0b\x32\x38.enterprise_management.CloudExtensionRequestEnabledProto\x12M\n\x13ReportMachineIDData\x18\xda\x03 \x01(\x0b\x32/.enterprise_management.ReportMachineIDDataProto\x12G\n\x10\x44nsOverHttpsSalt\x18\x8c\x08 \x01(\x0b\x32,.enterprise_management.DnsOverHttpsSaltProto\x12o\n$DnsOverHttpsTemplatesWithIdentifiers\x18\x8d\x08 \x01(\x0b\x32@.enterprise_management.DnsOverHttpsTemplatesWithIdentifiersProto\x12\x93\x01\n6AccessControlAllowMethodsInCORSPreflightSpecConformant\x18\x86\x08 \x01(\x0b\x32R.enterprise_management.AccessControlAllowMethodsInCORSPreflightSpecConformantProto\x12\x41\n\rDriveDisabled\x18\x8d\x01 \x01(\x0b\x32).enterprise_management.DriveDisabledProto\x12Y\n\x19\x44riveDisabledOverCellular\x18\x8e\x01 \x01(\x0b\x32\x35.enterprise_management.DriveDisabledOverCellularProto\x12[\n\x1aPrintingAllowedDuplexModes\x18\xdd\x03 \x01(\x0b\x32\x36.enterprise_management.PrintingAllowedDuplexModesProto\x12\x65\n\x1fNativePrintersBulkConfiguration\x18\x80\x03 \x01(\x0b\x32;.enterprise_management.NativePrintersBulkConfigurationProto\x12T\n\x17\x43loudPrintSubmitEnabled\x18o \x01(\x0b\x32\x33.enterprise_management.CloudPrintSubmitEnabledProto\x12O\n\x14PrintingColorDefault\x18\xdf\x03 \x01(\x0b\x32\x30.enterprise_management.PrintingColorDefaultProto\x12L\n\x13\x44isablePrintPreview\x18w \x01(\x0b\x32/.enterprise_management.DisablePrintPreviewProto\x12U\n\x17\x44\x65\x66\x61ultPrinterSelection\x18\xb6\x02 \x01(\x0b\x32\x33.enterprise_management.DefaultPrinterSelectionProto\x12R\n\x16\x43loudPrintProxyEnabled\x18\x0f \x01(\x0b\x32\x32.enterprise_management.CloudPrintProxyEnabledProto\x12\x61\n\x1d\x45xternalPrintServersAllowlist\x18\xf0\x05 \x01(\x0b\x32\x39.enterprise_management.ExternalPrintServersAllowlistProto\x12\x37\n\x08Printers\x18\x83\x06 \x01(\x0b\x32$.enterprise_management.PrintersProto\x12M\n\x13UserPrintersAllowed\x18\x82\x06 \x01(\x0b\x32/.enterprise_management.UserPrintersAllowedProto\x12W\n\x18PrintingPaperSizeDefault\x18\xe1\x03 \x01(\x0b\x32\x34.enterprise_management.PrintingPaperSizeDefaultProto\x12K\n\x12PrintingPinDefault\x18\x90\x04 \x01(\x0b\x32..enterprise_management.PrintingPinDefaultProto\x12_\n\x1c\x43loudPrintWarningsSuppressed\x18\x8f\x06 \x01(\x0b\x32\x38.enterprise_management.CloudPrintWarningsSuppressedProto\x12M\n\x13PrinterTypeDenyList\x18\x89\x05 \x01(\x0b\x32/.enterprise_management.PrinterTypeDenyListProto\x12s\n&PrintingSendUsernameAndFilenameEnabled\x18\xfc\x03 \x01(\x0b\x32\x42.enterprise_management.PrintingSendUsernameAndFilenameEnabledProto\x12W\n\x18PrintingMaxSheetsAllowed\x18\xb6\x05 \x01(\x0b\x32\x34.enterprise_management.PrintingMaxSheetsAllowedProto\x12i\n!PrintingBackgroundGraphicsDefault\x18\xf0\x04 \x01(\x0b\x32=.enterprise_management.PrintingBackgroundGraphicsDefaultProto\x12S\n\x16PrintersBulkAccessMode\x18\x86\x06 \x01(\x0b\x32\x32.enterprise_management.PrintersBulkAccessModeProto\x12O\n\x14PrintRasterizePdfDpi\x18\xfc\x06 \x01(\x0b\x32\x30.enterprise_management.PrintRasterizePdfDpiProto\x12U\n\x17PrintingAllowedPinModes\x18\x8f\x04 \x01(\x0b\x32\x33.enterprise_management.PrintingAllowedPinModesProto\x12Y\n\x19PrintersBulkConfiguration\x18\x84\x06 \x01(\x0b\x32\x35.enterprise_management.PrintersBulkConfigurationProto\x12O\n\x14\x45xternalPrintServers\x18\xbe\x04 \x01(\x0b\x32\x30.enterprise_management.ExternalPrintServersProto\x12\x63\n\x1ePrintingAPIExtensionsAllowlist\x18\x91\x06 \x01(\x0b\x32:.enterprise_management.PrintingAPIExtensionsAllowlistProto\x12Y\n\x19PrintingAllowedColorModes\x18\xdc\x03 \x01(\x0b\x32\x35.enterprise_management.PrintingAllowedColorModesProto\x12Q\n\x15PrintersBulkAllowlist\x18\x8e\x06 \x01(\x0b\x32\x31.enterprise_management.PrintersBulkAllowlistProto\x12M\n\x13PrintPostScriptMode\x18\x81\x07 \x01(\x0b\x32/.enterprise_management.PrintPostScriptModeProto\x12S\n\x16PrintPdfAsImageDefault\x18\x82\x07 \x01(\x0b\x32\x32.enterprise_management.PrintPdfAsImageDefaultProto\x12I\n\x11PrintHeaderFooter\x18\xe2\x03 \x01(\x0b\x32-.enterprise_management.PrintHeaderFooterProto\x12Q\n\x15PrintingDuplexDefault\x18\xe0\x03 \x01(\x0b\x32\x31.enterprise_management.PrintingDuplexDefaultProto\x12]\n\x1bPrintPdfAsImageAvailability\x18\xfb\x06 \x01(\x0b\x32\x37.enterprise_management.PrintPdfAsImageAvailabilityProto\x12_\n\x1cNativePrintersBulkAccessMode\x18\x81\x03 \x01(\x0b\x32\x38.enterprise_management.NativePrintersBulkAccessModeProto\x12\x65\n\x1fPrintJobHistoryExpirationPeriod\x18\xf3\x04 \x01(\x0b\x32;.enterprise_management.PrintJobHistoryExpirationPeriodProto\x12Q\n\x15PrintersBulkBlocklist\x18\x8d\x06 \x01(\x0b\x32\x31.enterprise_management.PrintersBulkBlocklistProto\x12\x43\n\x0eNativePrinters\x18\xe0\x02 \x01(\x0b\x32*.enterprise_management.NativePrintersProto\x12S\n\x16PrintRasterizationMode\x18\xc4\x05 \x01(\x0b\x32\x32.enterprise_management.PrintRasterizationModeProto\x12\x44\n\x0fPrintingEnabled\x18\x0e \x01(\x0b\x32+.enterprise_management.PrintingEnabledProto\x12Y\n\x19UserNativePrintersAllowed\x18\xb3\x03 \x01(\x0b\x32\x35.enterprise_management.UserNativePrintersAllowedProto\x12s\n&PrintingAllowedBackgroundGraphicsModes\x18\xef\x04 \x01(\x0b\x32\x42.enterprise_management.PrintingAllowedBackgroundGraphicsModesProto\x12_\n\x1c\x44\x65letePrintJobHistoryAllowed\x18\xd2\x05 \x01(\x0b\x32\x38.enterprise_management.DeletePrintJobHistoryAllowedProto\x12m\n#PrintPreviewUseSystemDefaultPrinter\x18\xf7\x02 \x01(\x0b\x32?.enterprise_management.PrintPreviewUseSystemDefaultPrinterProto\x12M\n\x13UserBorealisAllowed\x18\xc1\x06 \x01(\x0b\x32/.enterprise_management.UserBorealisAllowedProto\x12\x62\n\x1e\x44\x65\x66\x61ultSearchProviderSearchURL\x18- \x01(\x0b\x32:.enterprise_management.DefaultSearchProviderSearchURLProto\x12\x83\x01\n.DefaultSearchProviderSearchTermsReplacementKey\x18\xad\x01 \x01(\x0b\x32J.enterprise_management.DefaultSearchProviderSearchTermsReplacementKeyProto\x12w\n(DefaultSearchProviderSearchURLPostParams\x18\xe8\x01 \x01(\x0b\x32\x44.enterprise_management.DefaultSearchProviderSearchURLPostParamsProto\x12u\n\'DefaultSearchProviderImageURLPostParams\x18\xeb\x01 \x01(\x0b\x32\x43.enterprise_management.DefaultSearchProviderImageURLPostParamsProto\x12^\n\x1c\x44\x65\x66\x61ultSearchProviderIconURL\x18\x30 \x01(\x0b\x32\x38.enterprise_management.DefaultSearchProviderIconURLProto\x12\x61\n\x1d\x44\x65\x66\x61ultSearchProviderImageURL\x18\xe7\x01 \x01(\x0b\x32\x39.enterprise_management.DefaultSearchProviderImageURLProto\x12y\n)DefaultSearchProviderInstantURLPostParams\x18\xea\x01 \x01(\x0b\x32\x45.enterprise_management.DefaultSearchProviderInstantURLPostParamsProto\x12^\n\x1c\x44\x65\x66\x61ultSearchProviderKeyword\x18, \x01(\x0b\x32\x38.enterprise_management.DefaultSearchProviderKeywordProto\x12X\n\x19\x44\x65\x66\x61ultSearchProviderName\x18+ \x01(\x0b\x32\x35.enterprise_management.DefaultSearchProviderNameProto\x12\x64\n\x1f\x44\x65\x66\x61ultSearchProviderSuggestURL\x18. \x01(\x0b\x32;.enterprise_management.DefaultSearchProviderSuggestURLProto\x12k\n\"DefaultSearchProviderAlternateURLs\x18\xa3\x01 \x01(\x0b\x32>.enterprise_management.DefaultSearchProviderAlternateURLsProto\x12\x62\n\x1e\x44\x65\x66\x61ultSearchProviderEncodings\x18\x31 \x01(\x0b\x32:.enterprise_management.DefaultSearchProviderEncodingsProto\x12^\n\x1c\x44\x65\x66\x61ultSearchProviderEnabled\x18* \x01(\x0b\x32\x38.enterprise_management.DefaultSearchProviderEnabledProto\x12y\n)DefaultSearchProviderSuggestURLPostParams\x18\xe9\x01 \x01(\x0b\x32\x45.enterprise_management.DefaultSearchProviderSuggestURLPostParamsProto\x12\x63\n\x1e\x44\x65\x66\x61ultSearchProviderNewTabURL\x18\xef\x01 \x01(\x0b\x32:.enterprise_management.DefaultSearchProviderNewTabURLProto\x12\x64\n\x1f\x44\x65\x66\x61ultSearchProviderInstantURL\x18/ \x01(\x0b\x32;.enterprise_management.DefaultSearchProviderInstantURLProto\x12\x63\n\x1eGaiaOfflineSigninTimeLimitDays\x18\xb7\x06 \x01(\x0b\x32:.enterprise_management.GaiaOfflineSigninTimeLimitDaysProto\x12N\n\x14HomepageIsNewTabPage\x18\x04 \x01(\x0b\x32\x30.enterprise_management.HomepageIsNewTabPageProto\x12K\n\x12NewTabPageLocation\x18\xea\x02 \x01(\x0b\x32..enterprise_management.NewTabPageLocationProto\x12N\n\x14RestoreOnStartupURLs\x18( \x01(\x0b\x32\x30.enterprise_management.RestoreOnStartupURLsProto\x12\x46\n\x10HomepageLocation\x18\x03 \x01(\x0b\x32,.enterprise_management.HomepageLocationProto\x12\x46\n\x10RestoreOnStartup\x18\' \x01(\x0b\x32,.enterprise_management.RestoreOnStartupProto\x12\x42\n\x0eShowHomeButton\x18% \x01(\x0b\x32*.enterprise_management.ShowHomeButtonProto\x12K\n\x12IdleTimeoutActions\x18\x8e\x08 \x01(\x0b\x32..enterprise_management.IdleTimeoutActionsProto\x12=\n\x0bIdleTimeout\x18\xe4\x07 \x01(\x0b\x32\'.enterprise_management.IdleTimeoutProto\x12\x61\n\x1dNativeMessagingUserLevelHosts\x18\xff\x01 \x01(\x0b\x32\x39.enterprise_management.NativeMessagingUserLevelHostsProto\x12W\n\x18NativeMessagingBlocklist\x18\xea\x05 \x01(\x0b\x32\x34.enterprise_management.NativeMessagingBlocklistProto\x12W\n\x18NativeMessagingAllowlist\x18\xeb\x05 \x01(\x0b\x32\x34.enterprise_management.NativeMessagingAllowlistProto\x12\x65\n\x1fUserActivityScreenDimDelayScale\x18\xd4\x01 \x01(\x0b\x32;.enterprise_management.UserActivityScreenDimDelayScaleProto\x12G\n\x10IdleDelayBattery\x18\xb5\x01 \x01(\x0b\x32,.enterprise_management.IdleDelayBatteryProto\x12;\n\nIdleAction\x18\xb6\x01 \x01(\x0b\x32&.enterprise_management.IdleActionProto\x12g\n PowerManagementUsesVideoActivity\x18\xb9\x01 \x01(\x0b\x32<.enterprise_management.PowerManagementUsesVideoActivityProto\x12G\n\x10ScreenDimDelayAC\x18\xae\x01 \x01(\x0b\x32,.enterprise_management.ScreenDimDelayACProto\x12O\n\x14\x41llowScreenWakeLocks\x18\xcd\x01 \x01(\x0b\x32\x30.enterprise_management.AllowScreenWakeLocksProto\x12[\n\x1aPresentationIdleDelayScale\x18\xba\x01 \x01(\x0b\x32\x36.enterprise_management.PresentationIdleDelayScaleProto\x12\x43\n\x0eLidCloseAction\x18\xb7\x01 \x01(\x0b\x32*.enterprise_management.LidCloseActionProto\x12\x43\n\x0e\x41llowWakeLocks\x18\xed\x03 \x01(\x0b\x32*.enterprise_management.AllowWakeLocksProto\x12O\n\x14PowerSmartDimEnabled\x18\xd3\x03 \x01(\x0b\x32\x30.enterprise_management.PowerSmartDimEnabledProto\x12Q\n\x15ScreenOffDelayBattery\x18\xb3\x01 \x01(\x0b\x32\x31.enterprise_management.ScreenOffDelayBatteryProto\x12\x65\n\x1fPresentationScreenDimDelayScale\x18\xde\x01 \x01(\x0b\x32;.enterprise_management.PresentationScreenDimDelayScaleProto\x12K\n\x12IdleWarningDelayAC\x18\xc7\x01 \x01(\x0b\x32..enterprise_management.IdleWarningDelayACProto\x12Q\n\x15ScreenDimDelayBattery\x18\xb2\x01 \x01(\x0b\x32\x31.enterprise_management.ScreenDimDelayBatteryProto\x12g\n PowerManagementUsesAudioActivity\x18\xb8\x01 \x01(\x0b\x32<.enterprise_management.PowerManagementUsesAudioActivityProto\x12=\n\x0bIdleDelayAC\x18\xb1\x01 \x01(\x0b\x32\'.enterprise_management.IdleDelayACProto\x12]\n\x1bPowerManagementIdleSettings\x18\x84\x02 \x01(\x0b\x32\x37.enterprise_management.PowerManagementIdleSettingsProto\x12I\n\x11ScreenLockDelayAC\x18\xb0\x01 \x01(\x0b\x32-.enterprise_management.ScreenLockDelayACProto\x12I\n\x11IdleActionBattery\x18\xe0\x01 \x01(\x0b\x32-.enterprise_management.IdleActionBatteryProto\x12k\n\"DevicePowerAdaptiveChargingEnabled\x18\xcd\x07 \x01(\x0b\x32>.enterprise_management.DevicePowerAdaptiveChargingEnabledProto\x12G\n\x10ScreenLockDelays\x18\x85\x02 \x01(\x0b\x32,.enterprise_management.ScreenLockDelaysProto\x12G\n\x10ScreenOffDelayAC\x18\xaf\x01 \x01(\x0b\x32,.enterprise_management.ScreenOffDelayACProto\x12?\n\x0cIdleActionAC\x18\xe4\x01 \x01(\x0b\x32(.enterprise_management.IdleActionACProto\x12U\n\x17ScreenBrightnessPercent\x18\xee\x03 \x01(\x0b\x32\x33.enterprise_management.ScreenBrightnessPercentProto\x12U\n\x17IdleWarningDelayBattery\x18\xc8\x01 \x01(\x0b\x32\x33.enterprise_management.IdleWarningDelayBatteryProto\x12S\n\x16ScreenLockDelayBattery\x18\xb4\x01 \x01(\x0b\x32\x32.enterprise_management.ScreenLockDelayBatteryProto\x12[\n\x1aWaitForInitialUserActivity\x18\xf9\x01 \x01(\x0b\x32\x36.enterprise_management.WaitForInitialUserActivityProto\x12O\n\x14KeygenAllowedForUrls\x18\xbc\x02 \x01(\x0b\x32\x30.enterprise_management.KeygenAllowedForUrlsProto\x12\x61\n\x1d\x44\x65\x66\x61ultInsecureContentSetting\x18\xfb\x04 \x01(\x0b\x32\x39.enterprise_management.DefaultInsecureContentSettingProto\x12Q\n\x15SensorsBlockedForUrls\x18\xf6\x05 \x01(\x0b\x32\x31.enterprise_management.SensorsBlockedForUrlsProto\x12m\n#PdfLocalFileAccessAllowedForDomains\x18\x90\x08 \x01(\x0b\x32?.enterprise_management.PdfLocalFileAccessAllowedForDomainsProto\x12W\n\x18\x44\x65\x66\x61ultLocalFontsSetting\x18\xd3\x07 \x01(\x0b\x32\x34.enterprise_management.DefaultLocalFontsSettingProto\x12N\n\x14PopupsBlockedForUrls\x18N \x01(\x0b\x32\x30.enterprise_management.PopupsBlockedForUrlsProto\x12W\n\x18\x46ileSystemReadAskForUrls\x18\x89\x06 \x01(\x0b\x32\x34.enterprise_management.FileSystemReadAskForUrlsProto\x12O\n\x14KeygenBlockedForUrls\x18\xbd\x02 \x01(\x0b\x32\x30.enterprise_management.KeygenBlockedForUrlsProto\x12W\n\x18LocalFontsAllowedForUrls\x18\xd4\x07 \x01(\x0b\x32\x34.enterprise_management.LocalFontsAllowedForUrlsProto\x12G\n\x10WebHidAskForUrls\x18\xb2\x07 \x01(\x0b\x32,.enterprise_management.WebHidAskForUrlsProto\x12O\n\x14WebUsbBlockedForUrls\x18\xba\x03 \x01(\x0b\x32\x30.enterprise_management.WebUsbBlockedForUrlsProto\x12Y\n\x19\x44\x65\x66\x61ultMediaStreamSetting\x18\x97\x01 \x01(\x0b\x32\x35.enterprise_management.DefaultMediaStreamSettingProto\x12V\n\x18\x44\x65\x66\x61ultJavaScriptSetting\x18\x34 \x01(\x0b\x32\x34.enterprise_management.DefaultJavaScriptSettingProto\x12N\n\x14\x44\x65\x66\x61ultPopupsSetting\x18\x36 \x01(\x0b\x32\x30.enterprise_management.DefaultPopupsSettingProto\x12N\n\x14ImagesAllowedForUrls\x18G \x01(\x0b\x32\x30.enterprise_management.ImagesAllowedForUrlsProto\x12O\n\x14\x44\x65\x66\x61ultKeygenSetting\x18\xbb\x02 \x01(\x0b\x32\x30.enterprise_management.DefaultKeygenSettingProto\x12P\n\x15PluginsBlockedForUrls\x18L \x01(\x0b\x32\x31.enterprise_management.PluginsBlockedForUrlsProto\x12\x85\x01\n/FileSystemSyncAccessHandleAsyncInterfaceEnabled\x18\xfe\x07 \x01(\x0b\x32K.enterprise_management.FileSystemSyncAccessHandleAsyncInterfaceEnabledProto\x12U\n\x17\x43lipboardBlockedForUrls\x18\xdb\x07 \x01(\x0b\x32\x33.enterprise_management.ClipboardBlockedForUrlsProto\x12\x61\n\x1d\x44\x65\x66\x61ultWindowPlacementSetting\x18\xb9\x07 \x01(\x0b\x32\x39.enterprise_management.DefaultWindowPlacementSettingProto\x12X\n\x19\x43ookiesSessionOnlyForUrls\x18\x46 \x01(\x0b\x32\x35.enterprise_management.CookiesSessionOnlyForUrlsProto\x12\\\n\x1b\x44\x65\x66\x61ultNotificationsSetting\x18\x37 \x01(\x0b\x32\x37.enterprise_management.DefaultNotificationsSettingProto\x12_\n\x1cWebHidAllowAllDevicesForUrls\x18\xbb\x07 \x01(\x0b\x32\x38.enterprise_management.WebHidAllowAllDevicesForUrlsProto\x12Y\n\x19\x44\x65\x66\x61ultWebHidGuardSetting\x18\xb1\x07 \x01(\x0b\x32\x35.enterprise_management.DefaultWebHidGuardSettingProto\x12_\n\x1cSerialAllowUsbDevicesForUrls\x18\xc8\x06 \x01(\x0b\x32\x38.enterprise_management.SerialAllowUsbDevicesForUrlsProto\x12O\n\x14SerialBlockedForUrls\x18\xf3\x05 \x01(\x0b\x32\x30.enterprise_management.SerialBlockedForUrlsProto\x12O\n\x14WebHidBlockedForUrls\x18\xb3\x07 \x01(\x0b\x32\x30.enterprise_management.WebHidBlockedForUrlsProto\x12P\n\x15\x43ookiesAllowedForUrls\x18O \x01(\x0b\x32\x31.enterprise_management.CookiesAllowedForUrlsProto\x12Q\n\x15SensorsAllowedForUrls\x18\xf5\x05 \x01(\x0b\x32\x31.enterprise_management.SensorsAllowedForUrlsProto\x12P\n\x15PluginsAllowedForUrls\x18K \x01(\x0b\x32\x31.enterprise_management.PluginsAllowedForUrlsProto\x12[\n\x1a\x46ileHandlingBlockedForUrls\x18\xd1\x06 \x01(\x0b\x32\x36.enterprise_management.FileHandlingBlockedForUrlsProto\x12[\n\x1aRegisteredProtocolHandlers\x18\x8e\x02 \x01(\x0b\x32\x36.enterprise_management.RegisteredProtocolHandlersProto\x12G\n\x10SerialAskForUrls\x18\xf2\x05 \x01(\x0b\x32,.enterprise_management.SerialAskForUrlsProto\x12P\n\x15\x44\x65\x66\x61ultCookiesSetting\x18\x32 \x01(\x0b\x32\x31.enterprise_management.DefaultCookiesSettingProto\x12m\n#LegacySameSiteCookieBehaviorEnabled\x18\xf1\x04 \x01(\x0b\x32?.enterprise_management.LegacySameSiteCookieBehaviorEnabledProto\x12V\n\x18JavaScriptBlockedForUrls\x18J \x01(\x0b\x32\x34.enterprise_management.JavaScriptBlockedForUrlsProto\x12i\n!DefaultFileSystemReadGuardSetting\x18\x87\x06 \x01(\x0b\x32=.enterprise_management.DefaultFileSystemReadGuardSettingProto\x12\\\n\x1bNotificationsAllowedForUrls\x18k \x01(\x0b\x32\x37.enterprise_management.NotificationsAllowedForUrlsProto\x12Y\n\x19\x44\x65\x66\x61ultWebUsbGuardSetting\x18\xb4\x03 \x01(\x0b\x32\x35.enterprise_management.DefaultWebUsbGuardSettingProto\x12Y\n\x19WebUsbAllowDevicesForUrls\x18\xe8\x03 \x01(\x0b\x32\x35.enterprise_management.WebUsbAllowDevicesForUrlsProto\x12U\n\x17\x44\x65\x66\x61ultClipboardSetting\x18\xd9\x07 \x01(\x0b\x32\x33.enterprise_management.DefaultClipboardSettingProto\x12\x61\n\x1dWindowPlacementAllowedForUrls\x18\xc2\x07 \x01(\x0b\x32\x39.enterprise_management.WindowPlacementAllowedForUrlsProto\x12\x87\x01\n0LegacySameSiteCookieBehaviorEnabledForDomainList\x18\xf2\x04 \x01(\x0b\x32L.enterprise_management.LegacySameSiteCookieBehaviorEnabledForDomainListProto\x12W\n\x18LocalFontsBlockedForUrls\x18\xd5\x07 \x01(\x0b\x32\x34.enterprise_management.LocalFontsBlockedForUrlsProto\x12X\n\x19\x44\x65\x66\x61ultGeolocationSetting\x18\x38 \x01(\x0b\x32\x35.enterprise_management.DefaultGeolocationSettingProto\x12_\n\x1c\x46ileSystemReadBlockedForUrls\x18\x8a\x06 \x01(\x0b\x32\x38.enterprise_management.FileSystemReadBlockedForUrlsProto\x12Y\n\x19\x44\x65\x66\x61ultSerialGuardSetting\x18\xf1\x05 \x01(\x0b\x32\x35.enterprise_management.DefaultSerialGuardSettingProto\x12Y\n\x19WebHidAllowDevicesForUrls\x18\xbc\x07 \x01(\x0b\x32\x35.enterprise_management.WebHidAllowDevicesForUrlsProto\x12^\n\x1c\x41utoSelectCertificateForUrls\x18h \x01(\x0b\x32\x38.enterprise_management.AutoSelectCertificateForUrlsProto\x12P\n\x15\x44\x65\x66\x61ultPluginsSetting\x18\x35 \x01(\x0b\x32\x31.enterprise_management.DefaultPluginsSettingProto\x12N\n\x14\x44\x65\x66\x61ultImagesSetting\x18\x33 \x01(\x0b\x32\x30.enterprise_management.DefaultImagesSettingProto\x12N\n\x14PopupsAllowedForUrls\x18M \x01(\x0b\x32\x30.enterprise_management.PopupsAllowedForUrlsProto\x12\x65\n\x1f\x44\x65\x66\x61ultWebBluetoothGuardSetting\x18\xc2\x02 \x01(\x0b\x32;.enterprise_management.DefaultWebBluetoothGuardSettingProto\x12U\n\x17\x43lipboardAllowedForUrls\x18\xda\x07 \x01(\x0b\x32\x33.enterprise_management.ClipboardAllowedForUrlsProto\x12\x61\n\x1dWindowPlacementBlockedForUrls\x18\xc3\x07 \x01(\x0b\x32\x39.enterprise_management.WindowPlacementBlockedForUrlsProto\x12\x61\n\x1dInsecureContentBlockedForUrls\x18\xfd\x04 \x01(\x0b\x32\x39.enterprise_management.InsecureContentBlockedForUrlsProto\x12[\n\x1a\x46ileHandlingAllowedForUrls\x18\xd0\x06 \x01(\x0b\x32\x36.enterprise_management.FileHandlingAllowedForUrlsProto\x12G\n\x10WebUsbAskForUrls\x18\xb9\x03 \x01(\x0b\x32,.enterprise_management.WebUsbAskForUrlsProto\x12Q\n\x15\x44\x65\x66\x61ultSensorsSetting\x18\xf4\x05 \x01(\x0b\x32\x31.enterprise_management.DefaultSensorsSettingProto\x12s\n&WebHidAllowDevicesWithHidUsagesForUrls\x18\xbd\x07 \x01(\x0b\x32\x42.enterprise_management.WebHidAllowDevicesWithHidUsagesForUrlsProto\x12\\\n\x1bNotificationsBlockedForUrls\x18l \x01(\x0b\x32\x37.enterprise_management.NotificationsBlockedForUrlsProto\x12]\n\x1b\x44\x65\x66\x61ultJavaScriptJitSetting\x18\xe5\x06 \x01(\x0b\x32\x37.enterprise_management.DefaultJavaScriptJitSettingProto\x12Y\n\x19\x46ileSystemWriteAskForUrls\x18\x8b\x06 \x01(\x0b\x32\x35.enterprise_management.FileSystemWriteAskForUrlsProto\x12\x61\n\x1dInsecureContentAllowedForUrls\x18\xfc\x04 \x01(\x0b\x32\x39.enterprise_management.InsecureContentAllowedForUrlsProto\x12P\n\x15\x43ookiesBlockedForUrls\x18\x45 \x01(\x0b\x32\x31.enterprise_management.CookiesBlockedForUrlsProto\x12[\n\x1aSerialAllowAllPortsForUrls\x18\xc7\x06 \x01(\x0b\x32\x36.enterprise_management.SerialAllowAllPortsForUrlsProto\x12N\n\x14ImagesBlockedForUrls\x18H \x01(\x0b\x32\x30.enterprise_management.ImagesBlockedForUrlsProto\x12_\n\x1cJavaScriptJitAllowedForSites\x18\xe6\x06 \x01(\x0b\x32\x38.enterprise_management.JavaScriptJitAllowedForSitesProto\x12k\n\"DefaultFileSystemWriteGuardSetting\x18\x88\x06 \x01(\x0b\x32>.enterprise_management.DefaultFileSystemWriteGuardSettingProto\x12\x65\n\x1f\x44\x65\x66\x61ultFileHandlingGuardSetting\x18\xcf\x06 \x01(\x0b\x32;.enterprise_management.DefaultFileHandlingGuardSettingProto\x12_\n\x1cJavaScriptJitBlockedForSites\x18\xe7\x06 \x01(\x0b\x32\x38.enterprise_management.JavaScriptJitBlockedForSitesProto\x12V\n\x18JavaScriptAllowedForUrls\x18I \x01(\x0b\x32\x34.enterprise_management.JavaScriptAllowedForUrlsProto\x12\x61\n\x1d\x46ileSystemWriteBlockedForUrls\x18\x8c\x06 \x01(\x0b\x32\x39.enterprise_management.FileSystemWriteBlockedForUrlsProto\x12\x65\n\x1fKerberosRememberPasswordEnabled\x18\xb0\x04 \x01(\x0b\x32;.enterprise_management.KerberosRememberPasswordEnabledProto\x12[\n\x1aKerberosDomainAutocomplete\x18\xe9\x07 \x01(\x0b\x32\x36.enterprise_management.KerberosDomainAutocompleteProto\x12G\n\x10KerberosAccounts\x18\xb2\x04 \x01(\x0b\x32,.enterprise_management.KerberosAccountsProto\x12_\n\x1cKerberosDefaultConfiguration\x18\xea\x07 \x01(\x0b\x32\x38.enterprise_management.KerberosDefaultConfigurationProto\x12[\n\x1aKerberosAddAccountsAllowed\x18\xb1\x04 \x01(\x0b\x32\x36.enterprise_management.KerberosAddAccountsAllowedProto\x12\x45\n\x0fKerberosEnabled\x18\xaf\x04 \x01(\x0b\x32+.enterprise_management.KerberosEnabledProto\x12T\n\x17\x43hromeFrameContentTypes\x18> \x01(\x0b\x32\x33.enterprise_management.ChromeFrameContentTypesProto\x12\x61\n\x1dQuickAnswersDefinitionEnabled\x18\x98\x07 \x01(\x0b\x32\x39.enterprise_management.QuickAnswersDefinitionEnabledProto\x12\x63\n\x1eQuickAnswersTranslationEnabled\x18\x99\x07 \x01(\x0b\x32:.enterprise_management.QuickAnswersTranslationEnabledProto\x12i\n!QuickAnswersUnitConversionEnabled\x18\x9a\x07 \x01(\x0b\x32=.enterprise_management.QuickAnswersUnitConversionEnabledProto\x12M\n\x13QuickAnswersEnabled\x18\x97\x07 \x01(\x0b\x32/.enterprise_management.QuickAnswersEnabledProto\x12o\n$SupervisedUserContentProviderEnabled\x18\xba\x02 \x01(\x0b\x32@.enterprise_management.SupervisedUserContentProviderEnabledProto\x12\x61\n\x1dSupervisedUserCreationEnabled\x18\xe1\x01 \x01(\x0b\x32\x39.enterprise_management.SupervisedUserCreationEnabledProto\x12k\n\"RemoteAccessHostTokenValidationUrl\x18\xa1\x02 \x01(\x0b\x32>.enterprise_management.RemoteAccessHostTokenValidationUrlProto\x12\x87\x01\n0RemoteAccessHostTokenValidationCertificateIssuer\x18\xa2\x02 \x01(\x0b\x32L.enterprise_management.RemoteAccessHostTokenValidationCertificateIssuerProto\x12\x81\x01\n-RemoteAccessHostAllowRemoteSupportConnections\x18\x9d\x07 \x01(\x0b\x32I.enterprise_management.RemoteAccessHostAllowRemoteSupportConnectionsProto\x12\x63\n\x1eRemoteAccessHostRequireCurtain\x18\x9f\x01 \x01(\x0b\x32:.enterprise_management.RemoteAccessHostRequireCurtainProto\x12\x7f\n,RemoteAccessHostAllowRemoteAccessConnections\x18\xae\x06 \x01(\x0b\x32H.enterprise_management.RemoteAccessHostAllowRemoteAccessConnectionsProto\x12_\n\x1cRemoteAccessHostUdpPortRange\x18\x8a\x02 \x01(\x0b\x32\x38.enterprise_management.RemoteAccessHostUdpPortRangeProto\x12\x65\n\x1fRemoteAccessHostAllowGnubbyAuth\x18\x83\x02 \x01(\x0b\x32;.enterprise_management.RemoteAccessHostAllowGnubbyAuthProto\x12m\n#RemoteAccessHostEnableUserInterface\x18\xa5\x06 \x01(\x0b\x32?.enterprise_management.RemoteAccessHostEnableUserInterfaceProto\x12g\n RemoteAccessHostTalkGadgetPrefix\x18\x9e\x01 \x01(\x0b\x32<.enterprise_management.RemoteAccessHostTalkGadgetPrefixProto\x12g\n RemoteAccessHostClientDomainList\x18\xf3\x02 \x01(\x0b\x32<.enterprise_management.RemoteAccessHostClientDomainListProto\x12\x87\x01\n0RemoteAccessHostAllowUiAccessForRemoteAssistance\x18\xda\x02 \x01(\x0b\x32L.enterprise_management.RemoteAccessHostAllowUiAccessForRemoteAssistanceProto\x12\x61\n\x1dRemoteAccessHostMatchUsername\x18\x9f\x02 \x01(\x0b\x32\x39.enterprise_management.RemoteAccessHostMatchUsernameProto\x12l\n#RemoteAccessClientFirewallTraversal\x18` \x01(\x0b\x32?.enterprise_management.RemoteAccessClientFirewallTraversalProto\x12s\n&RemoteAccessHostAllowRelayedConnection\x18\x89\x02 \x01(\x0b\x32\x42.enterprise_management.RemoteAccessHostAllowRelayedConnectionProto\x12\x81\x01\n-RemoteAccessHostMaximumSessionDurationMinutes\x18\xb0\x06 \x01(\x0b\x32I.enterprise_management.RemoteAccessHostMaximumSessionDurationMinutesProto\x12_\n\x1cRemoteAccessHostClientDomain\x18\xbe\x02 \x01(\x0b\x32\x38.enterprise_management.RemoteAccessHostClientDomainProto\x12g\n RemoteAccessHostRequireTwoFactor\x18\x9d\x01 \x01(\x0b\x32<.enterprise_management.RemoteAccessHostRequireTwoFactorProto\x12q\n%RemoteAccessHostDebugOverridePolicies\x18\xa3\x02 \x01(\x0b\x32\x41.enterprise_management.RemoteAccessHostDebugOverridePoliciesProto\x12k\n\"RemoteAccessHostClipboardSizeBytes\x18\x9c\x07 \x01(\x0b\x32>.enterprise_management.RemoteAccessHostClipboardSizeBytesProto\x12W\n\x18RemoteAccessHostTokenUrl\x18\xa0\x02 \x01(\x0b\x32\x34.enterprise_management.RemoteAccessHostTokenUrlProto\x12[\n\x1aRemoteAccessHostDomainList\x18\xf2\x02 \x01(\x0b\x32\x36.enterprise_management.RemoteAccessHostDomainListProto\x12h\n!RemoteAccessHostFirewallTraversal\x18\x61 \x01(\x0b\x32=.enterprise_management.RemoteAccessHostFirewallTraversalProto\x12S\n\x16RemoteAccessHostDomain\x18\x9c\x01 \x01(\x0b\x32\x32.enterprise_management.RemoteAccessHostDomainProto\x12i\n!RemoteAccessHostAllowFileTransfer\x18\x98\x04 \x01(\x0b\x32=.enterprise_management.RemoteAccessHostAllowFileTransferProto\x12k\n\"RemoteAccessHostAllowClientPairing\x18\xec\x01 \x01(\x0b\x32>.enterprise_management.RemoteAccessHostAllowClientPairingProto\x12W\n\x18NewWindowsInKioskAllowed\x18\xe5\x07 \x01(\x0b\x32\x34.enterprise_management.NewWindowsInKioskAllowedProto\x12\x61\n\x1d\x45xtensionAllowInsecureUpdates\x18\x86\x04 \x01(\x0b\x32\x39.enterprise_management.ExtensionAllowInsecureUpdatesProto\x12Y\n\x19\x45xtensionInstallAllowlist\x18\xe4\x05 \x01(\x0b\x32\x35.enterprise_management.ExtensionInstallAllowlistProto\x12Y\n\x19\x45xtensionInstallBlocklist\x18\xe6\x05 \x01(\x0b\x32\x35.enterprise_management.ExtensionInstallBlocklistProto\x12X\n\x19\x45xtensionInstallForcelist\x18$ \x01(\x0b\x32\x35.enterprise_management.ExtensionInstallForcelistProto\x12Q\n\x15\x45xtensionAllowedTypes\x18\xaa\x01 \x01(\x0b\x32\x31.enterprise_management.ExtensionAllowedTypesProto\x12U\n\x17\x45xtensionInstallSources\x18\x96\x01 \x01(\x0b\x32\x33.enterprise_management.ExtensionInstallSourcesProto\x12\x65\n\x1f\x45xtensionManifestV2Availability\x18\x88\x08 \x01(\x0b\x32;.enterprise_management.ExtensionManifestV2AvailabilityProto\x12U\n\x17\x42lockExternalExtensions\x18\xff\x04 \x01(\x0b\x32\x33.enterprise_management.BlockExternalExtensionsProto\x12I\n\x11\x45xtensionSettings\x18\x98\x02 \x01(\x0b\x32-.enterprise_management.ExtensionSettingsProto\x12m\n#VoiceInteractionQuickAnswersEnabled\x18\xb8\x05 \x01(\x0b\x32?.enterprise_management.VoiceInteractionQuickAnswersEnabledProto\x12\x63\n\x1eVoiceInteractionContextEnabled\x18\x91\x04 \x01(\x0b\x32:.enterprise_management.VoiceInteractionContextEnabledProto\x12\x63\n\x1eVoiceInteractionHotwordEnabled\x18\x93\x04 \x01(\x0b\x32:.enterprise_management.VoiceInteractionHotwordEnabledProto\x12o\n$AssistantVoiceMatchEnabledDuringOobe\x18\xf7\x06 \x01(\x0b\x32@.enterprise_management.AssistantVoiceMatchEnabledDuringOobeProto\x12U\n\x17\x41ssistantOnboardingMode\x18\xdb\x05 \x01(\x0b\x32\x33.enterprise_management.AssistantOnboardingModeProto\x12M\n\x13\x41ssistantWebEnabled\x18\xf5\x07 \x01(\x0b\x32/.enterprise_management.AssistantWebEnabledProto\x12\x61\n\x1d\x41ttestationExtensionAllowlist\x18\x93\x06 \x01(\x0b\x32\x39.enterprise_management.AttestationExtensionAllowlistProto\x12Y\n\x19\x41ttestationEnabledForUser\x18\xca\x01 \x01(\x0b\x32\x35.enterprise_management.AttestationEnabledForUserProto\x12M\n\x13\x43\x61stReceiverEnabled\x18\xfc\x02 \x01(\x0b\x32/.enterprise_management.CastReceiverEnabledProto\x12S\n\x16RecoveryFactorBehavior\x18\xf8\x07 \x01(\x0b\x32\x32.enterprise_management.RecoveryFactorBehaviorProto\x12Q\n\x15ShowCastIconInToolbar\x18\xec\x02 \x01(\x0b\x32\x31.enterprise_management.ShowCastIconInToolbarProto\x12[\n\x1aMediaRouterCastAllowAllIPs\x18\xb7\x03 \x01(\x0b\x32\x36.enterprise_management.MediaRouterCastAllowAllIPsProto\x12I\n\x11\x45nableMediaRouter\x18\xcf\x02 \x01(\x0b\x32-.enterprise_management.EnableMediaRouterProto\x12G\n\x10\x41utoclickEnabled\x18\xd7\x04 \x01(\x0b\x32,.enterprise_management.AutoclickEnabledProto\x12S\n\x16VirtualKeyboardEnabled\x18\x81\x02 \x01(\x0b\x32\x32.enterprise_management.VirtualKeyboardEnabledProto\x12I\n\x11StickyKeysEnabled\x18\xb3\x04 \x01(\x0b\x32-.enterprise_management.StickyKeysEnabledProto\x12U\n\x17VirtualKeyboardFeatures\x18\xcf\x05 \x01(\x0b\x32\x33.enterprise_management.VirtualKeyboardFeaturesProto\x12M\n\x13HighContrastEnabled\x18\xd7\x01 \x01(\x0b\x32/.enterprise_management.HighContrastEnabledProto\x12\x61\n\x1dKeyboardDefaultToFunctionKeys\x18\x86\x02 \x01(\x0b\x32\x39.enterprise_management.KeyboardDefaultToFunctionKeysProto\x12\x61\n\x1d\x41\x63\x63\x65ssibilityShortcutsEnabled\x18\x95\x05 \x01(\x0b\x32\x39.enterprise_management.AccessibilityShortcutsEnabledProto\x12O\n\x14SelectToSpeakEnabled\x18\xbf\x04 \x01(\x0b\x32\x30.enterprise_management.SelectToSpeakEnabledProto\x12g\n FloatingAccessibilityMenuEnabled\x18\xb5\x05 \x01(\x0b\x32<.enterprise_management.FloatingAccessibilityMenuEnabledProto\x12w\n(ShowAccessibilityOptionsInSystemTrayMenu\x18\xbe\x01 \x01(\x0b\x32\x44.enterprise_management.ShowAccessibilityOptionsInSystemTrayMenuProto\x12S\n\x16\x43ursorHighlightEnabled\x18\xd4\x04 \x01(\x0b\x32\x32.enterprise_management.CursorHighlightEnabledProto\x12Q\n\x15\x43\x61retHighlightEnabled\x18\xd5\x04 \x01(\x0b\x32\x31.enterprise_management.CaretHighlightEnabledProto\x12\x61\n\x1dKeyboardFocusHighlightEnabled\x18\xd3\x04 \x01(\x0b\x32\x39.enterprise_management.KeyboardFocusHighlightEnabledProto\x12M\n\x13ScreenMagnifierType\x18\xd8\x01 \x01(\x0b\x32/.enterprise_management.ScreenMagnifierTypeProto\x12G\n\x10MonoAudioEnabled\x18\xd6\x04 \x01(\x0b\x32,.enterprise_management.MonoAudioEnabledProto\x12}\n+EnhancedNetworkVoicesInSelectToSpeakAllowed\x18\xfa\x06 \x01(\x0b\x32G.enterprise_management.EnhancedNetworkVoicesInSelectToSpeakAllowedProto\x12Q\n\x15SpokenFeedbackEnabled\x18\xd6\x01 \x01(\x0b\x32\x31.enterprise_management.SpokenFeedbackEnabledProto\x12G\n\x10\x44ictationEnabled\x18\xd2\x04 \x01(\x0b\x32,.enterprise_management.DictationEnabledProto\x12K\n\x12LargeCursorEnabled\x18\xd5\x01 \x01(\x0b\x32..enterprise_management.LargeCursorEnabledProto\x12R\n\x16PasswordManagerEnabled\x18\x12 \x01(\x0b\x32\x32.enterprise_management.PasswordManagerEnabledProto\x12s\n&PasswordDismissCompromisedAlertEnabled\x18\xb4\x07 \x01(\x0b\x32\x42.enterprise_management.PasswordDismissCompromisedAlertEnabledProto\x12_\n\x1cPasswordLeakDetectionEnabled\x18\xc6\x04 \x01(\x0b\x32\x38.enterprise_management.PasswordLeakDetectionEnabledProto\x12h\n!PasswordManagerAllowShowPasswords\x18\x13 \x01(\x0b\x32=.enterprise_management.PasswordManagerAllowShowPasswordsProto\x12\x61\n\x1dPluginVmDataCollectionAllowed\x18\xca\x05 \x01(\x0b\x32\x39.enterprise_management.PluginVmDataCollectionAllowedProto\x12\x43\n\x0ePluginVmUserId\x18\xbc\x05 \x01(\x0b\x32*.enterprise_management.PluginVmUserIdProto\x12M\n\x13UserPluginVmAllowed\x18\xc3\x05 \x01(\x0b\x32/.enterprise_management.UserPluginVmAllowedProto\x12\x61\n\x1dPluginVmRequiredFreeDiskSpace\x18\xd6\x05 \x01(\x0b\x32\x39.enterprise_management.PluginVmRequiredFreeDiskSpaceProto\x12\x41\n\rPluginVmImage\x18\xfa\x03 \x01(\x0b\x32).enterprise_management.PluginVmImageProto\x12\x43\n\x0eUsageTimeLimit\x18\xc2\x03 \x01(\x0b\x32*.enterprise_management.UsageTimeLimitProto\x12Y\n\x19PerAppTimeLimitsAllowlist\x18\xfc\x05 \x01(\x0b\x32\x35.enterprise_management.PerAppTimeLimitsAllowlistProto\x12S\n\x16ParentAccessCodeConfig\x18\xfd\x03 \x01(\x0b\x32\x32.enterprise_management.ParentAccessCodeConfigProto\x12G\n\x10PerAppTimeLimits\x18\x83\x05 \x01(\x0b\x32,.enterprise_management.PerAppTimeLimitsProto\x12W\n\x18\x45\x64uCoexistenceToSVersion\x18\x98\x06 \x01(\x0b\x32\x34.enterprise_management.EduCoexistenceToSVersionProto\x12g\n RequiredClientCertificateForUser\x18\xaa\x05 \x01(\x0b\x32<.enterprise_management.RequiredClientCertificateForUserProto\x12o\n$SafeBrowsingExtendedReportingEnabled\x18\xaf\x03 \x01(\x0b\x32@.enterprise_management.SafeBrowsingExtendedReportingEnabledProto\x12]\n\x1bSafeBrowsingProtectionLevel\x18\xae\x05 \x01(\x0b\x32\x37.enterprise_management.SafeBrowsingProtectionLevelProto\x12L\n\x13SafeBrowsingEnabled\x18\x10 \x01(\x0b\x32/.enterprise_management.SafeBrowsingEnabledProto\x12g\n PasswordProtectionWarningTrigger\x18\x9d\x03 \x01(\x0b\x32<.enterprise_management.PasswordProtectionWarningTriggerProto\x12m\n#PasswordProtectionChangePasswordURL\x18\xaa\x03 \x01(\x0b\x32?.enterprise_management.PasswordProtectionChangePasswordURLProto\x12_\n\x1cSafeBrowsingAllowlistDomains\x18\xde\x05 \x01(\x0b\x32\x38.enterprise_management.SafeBrowsingAllowlistDomainsProto\x12]\n\x1bPasswordProtectionLoginURLs\x18\xa9\x03 \x01(\x0b\x32\x37.enterprise_management.PasswordProtectionLoginURLsProto\x12[\n\x1aPinUnlockAutosubmitEnabled\x18\xd0\x05 \x01(\x0b\x32\x36.enterprise_management.PinUnlockAutosubmitEnabledProto\x12W\n\x18PinUnlockWeakPinsAllowed\x18\xe6\x02 \x01(\x0b\x32\x34.enterprise_management.PinUnlockWeakPinsAllowedProto\x12W\n\x18QuickUnlockModeAllowlist\x18\x92\x06 \x01(\x0b\x32\x34.enterprise_management.QuickUnlockModeAllowlistProto\x12S\n\x16PinUnlockMinimumLength\x18\xe4\x02 \x01(\x0b\x32\x32.enterprise_management.PinUnlockMinimumLengthProto\x12S\n\x16PinUnlockMaximumLength\x18\xe5\x02 \x01(\x0b\x32\x32.enterprise_management.PinUnlockMaximumLengthProto\x12K\n\x12QuickUnlockTimeout\x18\xe3\x02 \x01(\x0b\x32..enterprise_management.QuickUnlockTimeoutProto\x12\x61\n\x1d\x43rostiniExportImportUIAllowed\x18\x8d\x04 \x01(\x0b\x32\x39.enterprise_management.CrostiniExportImportUIAllowedProto\x12Y\n\x19\x43rostiniRootAccessAllowed\x18\xc2\x04 \x01(\x0b\x32\x35.enterprise_management.CrostiniRootAccessAllowedProto\x12\x45\n\x0f\x43rostiniAllowed\x18\xe3\x03 \x01(\x0b\x32+.enterprise_management.CrostiniAllowedProto\x12\x61\n\x1d\x43rostiniPortForwardingAllowed\x18\xce\x05 \x01(\x0b\x32\x39.enterprise_management.CrostiniPortForwardingAllowedProto\x12W\n\x18SystemTerminalSshAllowed\x18\xd0\x07 \x01(\x0b\x32\x34.enterprise_management.SystemTerminalSshAllowedProto\x12U\n\x17\x43rostiniAnsiblePlaybook\x18\x81\x05 \x01(\x0b\x32\x33.enterprise_management.CrostiniAnsiblePlaybookProto\x12g\n CrostiniArcAdbSideloadingAllowed\x18\xb4\x05 \x01(\x0b\x32<.enterprise_management.CrostiniArcAdbSideloadingAllowedProto\x12]\n\x1b\x44\x61taCompressionProxyEnabled\x18\xf3\x01 \x01(\x0b\x32\x37.enterprise_management.DataCompressionProxyEnabledProto\x12[\n\x1aHindiInscriptLayoutEnabled\x18\x83\x08 \x01(\x0b\x32\x36.enterprise_management.HindiInscriptLayoutEnabledProto\x12_\n\x1c\x45nableOnlineRevocationChecks\x18\x83\x01 \x01(\x0b\x32\x38.enterprise_management.EnableOnlineRevocationChecksProto\x12m\n#UnsafelyTreatInsecureOriginAsSecure\x18\x92\x03 \x01(\x0b\x32?.enterprise_management.UnsafelyTreatInsecureOriginAsSecureProto\x12S\n\x16\x46orceYouTubeSafetyMode\x18\x9d\x02 \x01(\x0b\x32\x32.enterprise_management.ForceYouTubeSafetyModeProto\x12\x93\x01\n6CertificateTransparencyEnforcementDisabledForLegacyCas\x18\xb6\x03 \x01(\x0b\x32R.enterprise_management.CertificateTransparencyEnforcementDisabledForLegacyCasProto\x12\x41\n\rHttpsOnlyMode\x18\xe8\x06 \x01(\x0b\x32).enterprise_management.HttpsOnlyModeProto\x12g\n SetTimeoutWithout1MsClampEnabled\x18\xc9\x07 \x01(\x0b\x32<.enterprise_management.SetTimeoutWithout1MsClampEnabledProto\x12P\n\x15\x44nsPrefetchingEnabled\x18\t \x01(\x0b\x32\x31.enterprise_management.DnsPrefetchingEnabledProto\x12]\n\x1bSpellcheckLanguageBlocklist\x18\xef\x05 \x01(\x0b\x32\x37.enterprise_management.SpellcheckLanguageBlocklistProto\x12\x44\n\x0f\x44isabledPlugins\x18\x15 \x01(\x0b\x32+.enterprise_management.DisabledPluginsProto\x12S\n\x16SchedulerConfiguration\x18\x8c\x04 \x01(\x0b\x32\x32.enterprise_management.SchedulerConfigurationProto\x12Y\n\x19PolicyAtomicGroupsEnabled\x18\xca\x04 \x01(\x0b\x32\x35.enterprise_management.PolicyAtomicGroupsEnabledProto\x12\x63\n\x1e\x41\x64\x64itionalDnsQueryTypesEnabled\x18\xdb\x06 \x01(\x0b\x32:.enterprise_management.AdditionalDnsQueryTypesEnabledProto\x12q\n%AdvancedProtectionDeepScanningEnabled\x18\x9d\x05 \x01(\x0b\x32\x41.enterprise_management.AdvancedProtectionDeepScanningEnabledProto\x12]\n\x1bScrollToTextFragmentEnabled\x18\xb1\x05 \x01(\x0b\x32\x37.enterprise_management.ScrollToTextFragmentEnabledProto\x12\x62\n\x1e\x41uthNegotiateDelegateWhitelist\x18 \x01(\x0b\x32:.enterprise_management.AuthNegotiateDelegateWhitelistProto\x12]\n\x1bRendererAppContainerEnabled\x18\xdd\x07 \x01(\x0b\x32\x37.enterprise_management.RendererAppContainerEnabledProto\x12\x61\n\x1d\x41ttestationExtensionWhitelist\x18\xcb\x01 \x01(\x0b\x32\x39.enterprise_management.AttestationExtensionWhitelistProto\x12R\n\x16MaxConnectionsPerProxy\x18^ \x01(\x0b\x32\x32.enterprise_management.MaxConnectionsPerProxyProto\x12K\n\x12\x44isableScreenshots\x18\x9b\x01 \x01(\x0b\x32..enterprise_management.DisableScreenshotsProto\x12\x89\x01\n1CertificateTransparencyEnforcementDisabledForUrls\x18\xd1\x02 \x01(\x0b\x32M.enterprise_management.CertificateTransparencyEnforcementDisabledForUrlsProto\x12S\n\x16ShowLogoutButtonInTray\x18\xa6\x01 \x01(\x0b\x32\x32.enterprise_management.ShowLogoutButtonInTrayProto\x12G\n\x10VpnConfigAllowed\x18\xe7\x03 \x01(\x0b\x32,.enterprise_management.VpnConfigAllowedProto\x12\x42\n\x0e\x45nabledPlugins\x18P \x01(\x0b\x32*.enterprise_management.EnabledPluginsProto\x12\x63\n\x1e\x45nableDeprecatedPrivetPrinting\x18\xb1\x06 \x01(\x0b\x32:.enterprise_management.EnableDeprecatedPrivetPrintingProto\x12\x63\n\x1e\x45nterpriseRealTimeUrlCheckMode\x18\xda\x05 \x01(\x0b\x32:.enterprise_management.EnterpriseRealTimeUrlCheckModeProto\x12Y\n\x19\x41\x64vancedProtectionAllowed\x18\xaf\x05 \x01(\x0b\x32\x35.enterprise_management.AdvancedProtectionAllowedProto\x12R\n\x16\x41pplicationLocaleValue\x18\x06 \x01(\x0b\x32\x32.enterprise_management.ApplicationLocaleValueProto\x12O\n\x14\x41ppCacheForceEnabled\x18\xc2\x05 \x01(\x0b\x32\x30.enterprise_management.AppCacheForceEnabledProto\x12q\n%EnterpriseAuthenticationAppLinkPolicy\x18\xd2\x07 \x01(\x0b\x32\x41.enterprise_management.EnterpriseAuthenticationAppLinkPolicyProto\x12_\n\x1cTaskManagerEndProcessEnabled\x18\xc9\x02 \x01(\x0b\x32\x38.enterprise_management.TaskManagerEndProcessEnabledProto\x12Q\n\x15SitePerProcessAndroid\x18\xc0\x03 \x01(\x0b\x32\x31.enterprise_management.SitePerProcessAndroidProto\x12W\n\x18IntranetRedirectBehavior\x18\x9a\x06 \x01(\x0b\x32\x34.enterprise_management.IntranetRedirectBehaviorProto\x12g\n DefaultHandlersForFileExtensions\x18\xff\x07 \x01(\x0b\x32<.enterprise_management.DefaultHandlersForFileExtensionsProto\x12W\n\x18\x42rowserGuestModeEnforced\x18\xc0\x04 \x01(\x0b\x32\x34.enterprise_management.BrowserGuestModeEnforcedProto\x12\x41\n\rSSLVersionMax\x18\xeb\x02 \x01(\x0b\x32).enterprise_management.SSLVersionMaxProto\x12Y\n\x19PerAppTimeLimitsWhitelist\x18\x94\x05 \x01(\x0b\x32\x35.enterprise_management.PerAppTimeLimitsWhitelistProto\x12\x46\n\x10IncognitoEnabled\x18\x0c \x01(\x0b\x32,.enterprise_management.IncognitoEnabledProto\x12Y\n\x19\x42ruschettaVMConfiguration\x18\x8b\x08 \x01(\x0b\x32\x35.enterprise_management.BruschettaVMConfigurationProto\x12]\n\x1bPacHttpsUrlStrippingEnabled\x18\xce\x02 \x01(\x0b\x32\x37.enterprise_management.PacHttpsUrlStrippingEnabledProto\x12k\n\"OffsetParentNewSpecBehaviorEnabled\x18\x89\x08 \x01(\x0b\x32>.enterprise_management.OffsetParentNewSpecBehaviorEnabledProto\x12k\n\"CloudPolicyOverridesPlatformPolicy\x18\xff\x02 \x01(\x0b\x32>.enterprise_management.CloudPolicyOverridesPlatformPolicyProto\x12m\n#SecondaryGoogleAccountSigninAllowed\x18\x98\x03 \x01(\x0b\x32?.enterprise_management.SecondaryGoogleAccountSigninAllowedProto\x12O\n\x14\x44ownloadRestrictions\x18\xf5\x02 \x01(\x0b\x32\x30.enterprise_management.DownloadRestrictionsProto\x12Z\n\x1a\x41lternateErrorPagesEnabled\x18\x07 \x01(\x0b\x32\x36.enterprise_management.AlternateErrorPagesEnabledProto\x12\x63\n\x1e\x41utoLaunchProtocolsFromOrigins\x18\xd4\x05 \x01(\x0b\x32:.enterprise_management.AutoLaunchProtocolsFromOriginsProto\x12\x43\n\x0eWallpaperImage\x18\x88\x02 \x01(\x0b\x32*.enterprise_management.WallpaperImageProto\x12o\n$AbusiveExperienceInterventionEnforce\x18\x96\x03 \x01(\x0b\x32@.enterprise_management.AbusiveExperienceInterventionEnforceProto\x12g\n ChromeOsMultiProfileUserBehavior\x18\xf6\x01 \x01(\x0b\x32<.enterprise_management.ChromeOsMultiProfileUserBehaviorProto\x12O\n\x14RelaunchNotification\x18\xa5\x03 \x01(\x0b\x32\x30.enterprise_management.RelaunchNotificationProto\x12\x42\n\x0eImportHomepage\x18\x65 \x01(\x0b\x32*.enterprise_management.ImportHomepageProto\x12\x43\n\x0eRelaunchWindow\x18\xd8\x06 \x01(\x0b\x32*.enterprise_management.RelaunchWindowProto\x12\x43\n\x0eShelfAlignment\x18\xee\x04 \x01(\x0b\x32*.enterprise_management.ShelfAlignmentProto\x12J\n\x12\x42ookmarkBarEnabled\x18T \x01(\x0b\x32..enterprise_management.BookmarkBarEnabledProto\x12g\n ManagedAccountsSigninRestriction\x18\xde\x06 \x01(\x0b\x32<.enterprise_management.ManagedAccountsSigninRestrictionProto\x12_\n\x1cPhoneHubNotificationsAllowed\x18\x9e\x06 \x01(\x0b\x32\x38.enterprise_management.PhoneHubNotificationsAllowedProto\x12o\n$CORSNonWildcardRequestHeadersSupport\x18\x9b\x07 \x01(\x0b\x32@.enterprise_management.CORSNonWildcardRequestHeadersSupportProto\x12\x65\n\x1fHardwareAccelerationModeEnabled\x18\xb2\x02 \x01(\x0b\x32;.enterprise_management.HardwareAccelerationModeEnabledProto\x12U\n\x17\x43ontextualSearchEnabled\x18\x9b\x02 \x01(\x0b\x32\x33.enterprise_management.ContextualSearchEnabledProto\x12I\n\x11\x45\x61syUnlockAllowed\x18\x92\x02 \x01(\x0b\x32-.enterprise_management.EasyUnlockAllowedProto\x12U\n\x17\x45xternalStorageReadOnly\x18\xd9\x02 \x01(\x0b\x32\x33.enterprise_management.ExternalStorageReadOnlyProto\x12_\n\x1cSecurityTokenSessionBehavior\x18\xa1\x06 \x01(\x0b\x32\x38.enterprise_management.SecurityTokenSessionBehaviorProto\x12M\n\x13UserFeedbackAllowed\x18\xbc\x04 \x01(\x0b\x32/.enterprise_management.UserFeedbackAllowedProto\x12]\n\x1bLockIconInAddressBarEnabled\x18\xdf\x06 \x01(\x0b\x32\x37.enterprise_management.LockIconInAddressBarEnabledProto\x12g\n LookalikeWarningAllowlistDomains\x18\x90\x06 \x01(\x0b\x32<.enterprise_management.LookalikeWarningAllowlistDomainsProto\x12\x95\x01\n7RestrictedManagedGuestSessionExtensionCleanupExemptList\x18\xf1\x06 \x01(\x0b\x32S.enterprise_management.RestrictedManagedGuestSessionExtensionCleanupExemptListProto\x12g\n IsolatedAppsDeveloperModeAllowed\x18\xc0\x07 \x01(\x0b\x32<.enterprise_management.IsolatedAppsDeveloperModeAllowedProto\x12N\n\x14SearchSuggestEnabled\x18\x08 \x01(\x0b\x32\x30.enterprise_management.SearchSuggestEnabledProto\x12?\n\x0cTrashEnabled\x18\xfb\x07 \x01(\x0b\x32(.enterprise_management.TrashEnabledProto\x12U\n\x17VideoCaptureAllowedUrls\x18\xd3\x01 \x01(\x0b\x32\x33.enterprise_management.VideoCaptureAllowedUrlsProto\x12K\n\x12\x42rowserLabsEnabled\x18\xb2\x06 \x01(\x0b\x32..enterprise_management.BrowserLabsEnabledProto\x12w\n(SamlLockScreenOfflineSigninTimeLimitDays\x18\xc4\x06 \x01(\x0b\x32\x44.enterprise_management.SamlLockScreenOfflineSigninTimeLimitDaysProto\x12\x63\n\x1eIsolatedWebAppInstallForceList\x18\x80\x08 \x01(\x0b\x32:.enterprise_management.IsolatedWebAppInstallForceListProto\x12\x87\x01\n0GetDisplayMediaSetSelectAllScreensAllowedForUrls\x18\xce\x07 \x01(\x0b\x32L.enterprise_management.GetDisplayMediaSetSelectAllScreensAllowedForUrlsProto\x12K\n\x12SessionLengthLimit\x18\xac\x01 \x01(\x0b\x32..enterprise_management.SessionLengthLimitProto\x12I\n\x11\x42rowserThemeColor\x18\xca\x06 \x01(\x0b\x32-.enterprise_management.BrowserThemeColorProto\x12\x81\x01\n-WebAuthenticationRemoteProxiedRequestsAllowed\x18\xc7\x07 \x01(\x0b\x32I.enterprise_management.WebAuthenticationRemoteProxiedRequestsAllowedProto\x12o\n$PromptOnMultipleMatchingCertificates\x18\x8b\x07 \x01(\x0b\x32@.enterprise_management.PromptOnMultipleMatchingCertificatesProto\x12_\n\x1cInsecureFormsWarningsEnabled\x18\xee\x05 \x01(\x0b\x32\x38.enterprise_management.InsecureFormsWarningsEnabledProto\x12\x42\n\x0eGCFUserDataDir\x18Y \x01(\x0b\x32*.enterprise_management.GCFUserDataDirProto\x12]\n\x1bSecondaryGoogleAccountUsage\x18\xbe\x07 \x01(\x0b\x32\x37.enterprise_management.SecondaryGoogleAccountUsageProto\x12O\n\x14PolicyScopeDetection\x18\xdf\x07 \x01(\x0b\x32\x30.enterprise_management.PolicyScopeDetectionProto\x12@\n\rDisable3DAPIs\x18\x39 \x01(\x0b\x32).enterprise_management.Disable3DAPIsProto\x12\x63\n\x1eUnifiedDesktopEnabledByDefault\x18\xb5\x02 \x01(\x0b\x32:.enterprise_management.UnifiedDesktopEnabledByDefaultProto\x12Y\n\x19PaymentMethodQueryEnabled\x18\x8d\x05 \x01(\x0b\x32\x35.enterprise_management.PaymentMethodQueryEnabledProto\x12M\n\x13VideoCaptureAllowed\x18\xa9\x01 \x01(\x0b\x32/.enterprise_management.VideoCaptureAllowedProto\x12\x65\n\x1fLacrosDataBackwardMigrationMode\x18\xf6\x07 \x01(\x0b\x32;.enterprise_management.LacrosDataBackwardMigrationModeProto\x12g\n IntensiveWakeUpThrottlingEnabled\x18\xcb\x05 \x01(\x0b\x32<.enterprise_management.IntensiveWakeUpThrottlingEnabledProto\x12Q\n\x15ShelfAutoHideBehavior\x18\xa8\x01 \x01(\x0b\x32\x31.enterprise_management.ShelfAutoHideBehaviorProto\x12>\n\x0cSyncDisabled\x18\x16 \x01(\x0b\x32(.enterprise_management.SyncDisabledProto\x12>\n\x0c\x44iskCacheDir\x18Z \x01(\x0b\x32(.enterprise_management.DiskCacheDirProto\x12y\n)DataLeakPreventionClipboardCheckSizeLimit\x18\xef\x06 \x01(\x0b\x32\x45.enterprise_management.DataLeakPreventionClipboardCheckSizeLimitProto\x12_\n\x1c\x41\x63\x63\x65ssCodeCastDeviceDuration\x18\x8e\x07 \x01(\x0b\x32\x38.enterprise_management.AccessCodeCastDeviceDurationProto\x12]\n\x1b\x44\x61taLeakPreventionRulesList\x18\x94\x06 \x01(\x0b\x32\x37.enterprise_management.DataLeakPreventionRulesListProto\x12>\n\x0cURLWhitelist\x18j \x01(\x0b\x32(.enterprise_management.URLWhitelistProto\x12s\n&SuppressDifferentOriginSubframeDialogs\x18\xbf\x06 \x01(\x0b\x32\x42.enterprise_management.SuppressDifferentOriginSubframeDialogsProto\x12U\n\x17\x43omponentUpdatesEnabled\x18\xd8\x02 \x01(\x0b\x32\x33.enterprise_management.ComponentUpdatesEnabledProto\x12\x65\n\x1fWebRtcEventLogCollectionAllowed\x18\xd2\x03 \x01(\x0b\x32;.enterprise_management.WebRtcEventLogCollectionAllowedProto\x12]\n\x1b\x45ncryptedClientHelloEnabled\x18\xe6\x07 \x01(\x0b\x32\x37.enterprise_management.EncryptedClientHelloEnabledProto\x12Q\n\x15SyncTypesListDisabled\x18\x8b\x05 \x01(\x0b\x32\x31.enterprise_management.SyncTypesListDisabledProto\x12U\n\x17WebXRImmersiveArEnabled\x18\xb6\x06 \x01(\x0b\x32\x33.enterprise_management.WebXRImmersiveArEnabledProto\x12g\n OptimizationGuideFetchingEnabled\x18\xc5\x07 \x01(\x0b\x32<.enterprise_management.OptimizationGuideFetchingEnabledProto\x12\x61\n\x1d\x45xplicitlyAllowedNetworkPorts\x18\xd3\x06 \x01(\x0b\x32\x39.enterprise_management.ExplicitlyAllowedNetworkPortsProto\x12K\n\x12PinnedLauncherApps\x18\x92\x01 \x01(\x0b\x32..enterprise_management.PinnedLauncherAppsProto\x12M\n\x13\x43\x43TToSDialogEnabled\x18\xfa\x05 \x01(\x0b\x32/.enterprise_management.CCTToSDialogEnabledProto\x12U\n\x17\x41udioCaptureAllowedUrls\x18\xd2\x01 \x01(\x0b\x32\x33.enterprise_management.AudioCaptureAllowedUrlsProto\x12i\n!NoteTakingAppsLockScreenAllowlist\x18\xf9\x05 \x01(\x0b\x32=.enterprise_management.NoteTakingAppsLockScreenAllowlistProto\x12_\n\x1cRoamingProfileSupportEnabled\x18\xe8\x02 \x01(\x0b\x32\x38.enterprise_management.RoamingProfileSupportEnabledProto\x12R\n\x16\x41lwaysAuthorizePlugins\x18X \x01(\x0b\x32\x32.enterprise_management.AlwaysAuthorizePluginsProto\x12S\n\x16PersistentQuotaEnabled\x18\xec\x07 \x01(\x0b\x32\x32.enterprise_management.PersistentQuotaEnabledProto\x12\x43\n\x0eWebAppSettings\x18\xba\x06 \x01(\x0b\x32*.enterprise_management.WebAppSettingsProto\x12K\n\x12\x43lickToCallEnabled\x18\x87\x05 \x01(\x0b\x32..enterprise_management.ClickToCallEnabledProto\x12K\n\x12NearbyShareAllowed\x18\xfb\x05 \x01(\x0b\x32..enterprise_management.NearbyShareAllowedProto\x12Q\n\x15\x41\x63\x63\x65ssCodeCastEnabled\x18\x8d\x07 \x01(\x0b\x32\x31.enterprise_management.AccessCodeCastEnabledProto\x12N\n\x14\x45\x64itBookmarksEnabled\x18U \x01(\x0b\x32\x30.enterprise_management.EditBookmarksEnabledProto\x12\x61\n\x1dWelcomePageOnOSUpgradeEnabled\x18\xb1\x02 \x01(\x0b\x32\x39.enterprise_management.WelcomePageOnOSUpgradeEnabledProto\x12w\n(UnmanagedDeviceSignalsConsentFlowEnabled\x18\xeb\x07 \x01(\x0b\x32\x44.enterprise_management.UnmanagedDeviceSignalsConsentFlowEnabledProto\x12\x91\x01\n5ExemptDomainFileTypePairsFromFileTypeDownloadWarnings\x18\xb5\x07 \x01(\x0b\x32Q.enterprise_management.ExemptDomainFileTypePairsFromFileTypeDownloadWarningsProto\x12]\n\x1bUserAgentClientHintsEnabled\x18\xd7\x05 \x01(\x0b\x32\x37.enterprise_management.UserAgentClientHintsEnabledProto\x12_\n\x1c\x43loudProfileReportingEnabled\x18\xb0\x07 \x01(\x0b\x32\x38.enterprise_management.CloudProfileReportingEnabledProto\x12M\n\x13\x41udioSandboxEnabled\x18\xf5\x04 \x01(\x0b\x32/.enterprise_management.AudioSandboxEnabledProto\x12K\n\x12SpellcheckLanguage\x18\x97\x03 \x01(\x0b\x32..enterprise_management.SpellcheckLanguageProto\x12R\n\x16\x42lockThirdPartyCookies\x18) \x01(\x0b\x32\x32.enterprise_management.BlockThirdPartyCookiesProto\x12@\n\rDiskCacheSize\x18p \x01(\x0b\x32).enterprise_management.DiskCacheSizeProto\x12_\n\x1cNativeWindowOcclusionEnabled\x18\xa5\x05 \x01(\x0b\x32\x38.enterprise_management.NativeWindowOcclusionEnabledProto\x12<\n\x0bUserDataDir\x18\x41 \x01(\x0b\x32\'.enterprise_management.UserDataDirProto\x12^\n\x1cSavingBrowserHistoryDisabled\x18\r \x01(\x0b\x32\x38.enterprise_management.SavingBrowserHistoryDisabledProto\x12X\n\x19\x41llowFileSelectionDialogs\x18V \x01(\x0b\x32\x35.enterprise_management.AllowFileSelectionDialogsProto\x12U\n\x17\x42\x61\x63kForwardCacheEnabled\x18\xf8\x05 \x01(\x0b\x32\x33.enterprise_management.BackForwardCacheEnabledProto\x12G\n\x10\x43hromeVariations\x18\x99\x05 \x01(\x0b\x32,.enterprise_management.ChromeVariationsProto\x12I\n\x11SideSearchEnabled\x18\x8c\x07 \x01(\x0b\x32-.enterprise_management.SideSearchEnabledProto\x12[\n\x1a\x44\x65veloperToolsAvailability\x18\xbd\x03 \x01(\x0b\x32\x36.enterprise_management.DeveloperToolsAvailabilityProto\x12Q\n\x15\x43orsLegacyModeEnabled\x18\xf8\x04 \x01(\x0b\x32\x31.enterprise_management.CorsLegacyModeEnabledProto\x12W\n\x18SpellCheckServiceEnabled\x18\x99\x01 \x01(\x0b\x32\x34.enterprise_management.SpellCheckServiceEnabledProto\x12k\n\"ContextAwareAccessSignalsAllowlist\x18\xbc\x06 \x01(\x0b\x32>.enterprise_management.ContextAwareAccessSignalsAllowlistProto\x12U\n\x17SSLErrorOverrideAllowed\x18\xae\x02 \x01(\x0b\x32\x33.enterprise_management.SSLErrorOverrideAllowedProto\x12<\n\x0b\x44isableSpdy\x18\n \x01(\x0b\x32\'.enterprise_management.DisableSpdyProto\x12\x41\n\rLacrosAllowed\x18\x9b\x06 \x01(\x0b\x32).enterprise_management.LacrosAllowedProto\x12\x45\n\x0fNTPCardsVisible\x18\xa7\x06 \x01(\x0b\x32+.enterprise_management.NTPCardsVisibleProto\x12S\n\x16WebComponentsV0Enabled\x18\x86\x05 \x01(\x0b\x32\x32.enterprise_management.WebComponentsV0EnabledProto\x12H\n\x11\x44ownloadDirectory\x18\x42 \x01(\x0b\x32-.enterprise_management.DownloadDirectoryProto\x12S\n\x16\x46orceEphemeralProfiles\x18\xf7\x01 \x01(\x0b\x32\x32.enterprise_management.ForceEphemeralProfilesProto\x12U\n\x17\x42rowserAddPersonEnabled\x18\x96\x02 \x01(\x0b\x32\x33.enterprise_management.BrowserAddPersonEnabledProto\x12;\n\nRC4Enabled\x18\xb8\x02 \x01(\x0b\x32&.enterprise_management.RC4EnabledProto\x12\x42\n\x0eInstantEnabled\x18@ \x01(\x0b\x32*.enterprise_management.InstantEnabledProto\x12=\n\x0bOsColorMode\x18\xdc\x07 \x01(\x0b\x32\'.enterprise_management.OsColorModeProto\x12i\n!NoteTakingAppsLockScreenWhitelist\x18\xfb\x02 \x01(\x0b\x32=.enterprise_management.NoteTakingAppsLockScreenWhitelistProto\x12I\n\x11\x43hromeAppsEnabled\x18\xfe\x06 \x01(\x0b\x32-.enterprise_management.ChromeAppsEnabledProto\x12y\n)EnterpriseProfileCreationKeepBrowsingData\x18\xe8\x07 \x01(\x0b\x32\x45.enterprise_management.EnterpriseProfileCreationKeepBrowsingDataProto\x12W\n\x18\x44\x65sktopSharingHubEnabled\x18\xe9\x06 \x01(\x0b\x32\x34.enterprise_management.DesktopSharingHubEnabledProto\x12W\n\x18QuickUnlockModeWhitelist\x18\xe2\x02 \x01(\x0b\x32\x34.enterprise_management.QuickUnlockModeWhitelistProto\x12\x45\n\x0fTabUnderAllowed\x18\xb2\x03 \x01(\x0b\x32+.enterprise_management.TabUnderAllowedProto\x12\x61\n\x1d\x43hromeCleanupReportingEnabled\x18\xbc\x03 \x01(\x0b\x32\x39.enterprise_management.ChromeCleanupReportingEnabledProto\x12L\n\x13\x43learSiteDataOnExit\x18\x43 \x01(\x0b\x32/.enterprise_management.ClearSiteDataOnExitProto\x12_\n\x1c\x44NSInterceptionChecksEnabled\x18\x90\x05 \x01(\x0b\x32\x38.enterprise_management.DNSInterceptionChecksEnabledProto\x12\x44\n\x0f\x44isabledSchemes\x18W \x01(\x0b\x32+.enterprise_management.DisabledSchemesProto\x12[\n\x1a\x46loatingWorkspaceV2Enabled\x18\x91\x08 \x01(\x0b\x32\x36.enterprise_management.FloatingWorkspaceV2EnabledProto\x12i\n!SuppressChromeFrameTurndownPrompt\x18\xdf\x01 \x01(\x0b\x32=.enterprise_management.SuppressChromeFrameTurndownPromptProto\x12U\n\x17\x45xternalStorageDisabled\x18\x9a\x01 \x01(\x0b\x32\x33.enterprise_management.ExternalStorageDisabledProto\x12m\n#BrowserLegacyExtensionPointsBlocked\x18\xff\x06 \x01(\x0b\x32?.enterprise_management.BrowserLegacyExtensionPointsBlockedProto\x12Y\n\x19SignedHTTPExchangeEnabled\x18\xa0\x04 \x01(\x0b\x32\x35.enterprise_management.SignedHTTPExchangeEnabledProto\x12u\n\'SecurityTokenSessionNotificationSeconds\x18\xa2\x06 \x01(\x0b\x32\x43.enterprise_management.SecurityTokenSessionNotificationSecondsProto\x12U\n\x17SuggestedContentEnabled\x18\xd8\x05 \x01(\x0b\x32\x33.enterprise_management.SuggestedContentEnabledProto\x12s\n&WebDriverOverridesIncompatiblePolicies\x18\xa0\x03 \x01(\x0b\x32\x42.enterprise_management.WebDriverOverridesIncompatiblePoliciesProto\x12W\n\x18\x41llowNativeNotifications\x18\xa8\x05 \x01(\x0b\x32\x34.enterprise_management.AllowNativeNotificationsProto\x12g\n BrowserNetworkTimeQueriesEnabled\x18\xf4\x02 \x01(\x0b\x32<.enterprise_management.BrowserNetworkTimeQueriesEnabledProto\x12O\n\x14HSTSPolicyBypassList\x18\xdb\x04 \x01(\x0b\x32\x30.enterprise_management.HSTSPolicyBypassListProto\x12[\n\x1aPrefixedStorageInfoEnabled\x18\xee\x07 \x01(\x0b\x32\x36.enterprise_management.PrefixedStorageInfoEnabledProto\x12S\n\x16\x41llowDinosaurEasterEgg\x18\xb7\x02 \x01(\x0b\x32\x32.enterprise_management.AllowDinosaurEasterEggProto\x12X\n\x19\x45xtensionInstallBlacklist\x18\" \x01(\x0b\x32\x35.enterprise_management.ExtensionInstallBlacklistProto\x12\x45\n\x0fWebAuthnFactors\x18\xc6\x07 \x01(\x0b\x32+.enterprise_management.WebAuthnFactorsProto\x12\x65\n\x1f\x41\x63\x63\x65ssibilityImageLabelsEnabled\x18\xc1\x05 \x01(\x0b\x32;.enterprise_management.AccessibilityImageLabelsEnabledProto\x12Q\n\x15\x44ownloadBubbleEnabled\x18\xcc\x07 \x01(\x0b\x32\x31.enterprise_management.DownloadBubbleEnabledProto\x12\x7f\n,ExternalProtocolDialogShowAlwaysOpenCheckbox\x18\xfa\x04 \x01(\x0b\x32H.enterprise_management.ExternalProtocolDialogShowAlwaysOpenCheckboxProto\x12q\n%InsecurePrivateNetworkRequestsAllowed\x18\x80\x06 \x01(\x0b\x32\x41.enterprise_management.InsecurePrivateNetworkRequestsAllowedProto\x12Y\n\x19HighEfficiencyModeEnabled\x18\xf0\x07 \x01(\x0b\x32\x35.enterprise_management.HighEfficiencyModeEnabledProto\x12\x81\x01\n-KeepFullscreenWithoutNotificationUrlAllowList\x18\xa4\x07 \x01(\x0b\x32I.enterprise_management.KeepFullscreenWithoutNotificationUrlAllowListProto\x12\x45\n\x0f\x41llowScreenLock\x18\xcb\x02 \x01(\x0b\x32+.enterprise_management.AllowScreenLockProto\x12J\n\x12ImportSearchEngine\x18\x66 \x01(\x0b\x32..enterprise_management.ImportSearchEngineProto\x12K\n\x12\x43orsMitigationList\x18\xf7\x04 \x01(\x0b\x32..enterprise_management.CorsMitigationListProto\x12Y\n\x19ThirdPartyBlockingEnabled\x18\x99\x03 \x01(\x0b\x32\x35.enterprise_management.ThirdPartyBlockingEnabledProto\x12s\n&DisplayCapturePermissionsPolicyEnabled\x18\xf2\x06 \x01(\x0b\x32\x42.enterprise_management.DisplayCapturePermissionsPolicyEnabledProto\x12\x61\n\x1dWebSQLNonSecureContextEnabled\x18\xe3\x07 \x01(\x0b\x32\x39.enterprise_management.WebSQLNonSecureContextEnabledProto\x12k\n\"EnableSymantecLegacyInfrastructure\x18\x9f\x03 \x01(\x0b\x32>.enterprise_management.EnableSymantecLegacyInfrastructureProto\x12\x7f\n,RequireOnlineRevocationChecksForLocalAnchors\x18\xed\x01 \x01(\x0b\x32H.enterprise_management.RequireOnlineRevocationChecksForLocalAnchorsProto\x12\x61\n\x1dWebRtcAllowLegacyTLSProtocols\x18\x95\x06 \x01(\x0b\x32\x39.enterprise_management.WebRtcAllowLegacyTLSProtocolsProto\x12U\n\x17LensRegionSearchEnabled\x18\xf8\x06 \x01(\x0b\x32\x33.enterprise_management.LensRegionSearchEnabledProto\x12}\n+ForceMajorVersionToMinorPositionInUserAgent\x18\xb7\x07 \x01(\x0b\x32G.enterprise_management.ForceMajorVersionToMinorPositionInUserAgentProto\x12S\n\x16RoamingProfileLocation\x18\xe9\x02 \x01(\x0b\x32\x32.enterprise_management.RoamingProfileLocationProto\x12\x41\n\rCECPQ2Enabled\x18\xcb\x06 \x01(\x0b\x32).enterprise_management.CECPQ2EnabledProto\x12\x65\n\x1fLensCameraAssistedSearchEnabled\x18\xd7\x06 \x01(\x0b\x32;.enterprise_management.LensCameraAssistedSearchEnabledProto\x12X\n\x19\x45xtensionInstallWhitelist\x18# \x01(\x0b\x32\x35.enterprise_management.ExtensionInstallWhitelistProto\x12\x63\n\x1eHttp09OnNonDefaultPortsEnabled\x18\xdb\x02 \x01(\x0b\x32:.enterprise_management.Http09OnNonDefaultPortsEnabledProto\x12\x63\n\x1eSandboxExternalProtocolBlocked\x18\x93\x07 \x01(\x0b\x32:.enterprise_management.SandboxExternalProtocolBlockedProto\x12S\n\x16SharedClipboardEnabled\x18\xe4\x04 \x01(\x0b\x32\x32.enterprise_management.SharedClipboardEnabledProto\x12k\n\"CloudManagementEnrollmentMandatory\x18\xfb\x03 \x01(\x0b\x32>.enterprise_management.CloudManagementEnrollmentMandatoryProto\x12u\n\'EnableCommonNameFallbackForLocalAnchors\x18\xf0\x02 \x01(\x0b\x32\x43.enterprise_management.EnableCommonNameFallbackForLocalAnchorsProto\x12g\n ForceLegacyDefaultReferrerPolicy\x18\x8a\x05 \x01(\x0b\x32<.enterprise_management.ForceLegacyDefaultReferrerPolicyProto\x12\x45\n\x0fUserAvatarImage\x18\xfb\x01 \x01(\x0b\x32+.enterprise_management.UserAvatarImageProto\x12u\n\'UrlKeyedAnonymizedDataCollectionEnabled\x18\xcf\x03 \x01(\x0b\x32\x43.enterprise_management.UrlKeyedAnonymizedDataCollectionEnabledProto\x12m\n#SuggestLogoutAfterClosingLastWindow\x18\xd5\x06 \x01(\x0b\x32?.enterprise_management.SuggestLogoutAfterClosingLastWindowProto\x12Q\n\x15\x41llowedDomainsForApps\x18\xcd\x02 \x01(\x0b\x32\x31.enterprise_management.AllowedDomainsForAppsProto\x12>\n\x0cURLBlacklist\x18i \x01(\x0b\x32(.enterprise_management.URLBlacklistProto\x12Y\n\x19\x41utofillCreditCardEnabled\x18\x8a\x03 \x01(\x0b\x32\x35.enterprise_management.AutofillCreditCardEnabledProto\x12@\n\rProxySettings\x18v \x01(\x0b\x32).enterprise_management.ProxySettingsProto\x12\x43\n\x0eIsolateOrigins\x18\x90\x03 \x01(\x0b\x32*.enterprise_management.IsolateOriginsProto\x12{\n*StrictMimetypeCheckForWorkerScriptsEnabled\x18\xf7\x07 \x01(\x0b\x32\x46.enterprise_management.StrictMimetypeCheckForWorkerScriptsEnabledProto\x12U\n\x17RestrictSigninToPattern\x18\x95\x01 \x01(\x0b\x32\x33.enterprise_management.RestrictSigninToPatternProto\x12{\n*SharedArrayBufferUnrestrictedAccessAllowed\x18\xd6\x06 \x01(\x0b\x32\x46.enterprise_management.SharedArrayBufferUnrestrictedAccessAllowedProto\x12K\n\x12\x46ullRestoreEnabled\x18\x83\x07 \x01(\x0b\x32..enterprise_management.FullRestoreEnabledProto\x12O\n\x14\x44\x65skTemplatesEnabled\x18\x90\x07 \x01(\x0b\x32\x30.enterprise_management.DeskTemplatesEnabledProto\x12Y\n\x19PromptForDownloadLocation\x18\x8d\x03 \x01(\x0b\x32\x35.enterprise_management.PromptForDownloadLocationProto\x12[\n\x1aOnPrintEnterpriseConnector\x18\xa5\x07 \x01(\x0b\x32\x36.enterprise_management.OnPrintEnterpriseConnectorProto\x12M\n\x13\x41udioCaptureAllowed\x18\xa2\x01 \x01(\x0b\x32/.enterprise_management.AudioCaptureAllowedProto\x12X\n\x19IncognitoModeAvailability\x18_ \x01(\x0b\x32\x35.enterprise_management.IncognitoModeAvailabilityProto\x12\x63\n\x1e\x44\x65skAPIThirdPartyAccessEnabled\x18\xfd\x07 \x01(\x0b\x32:.enterprise_management.DeskAPIThirdPartyAccessEnabledProto\x12i\n!SSLErrorOverrideAllowedForOrigins\x18\xb5\x06 \x01(\x0b\x32=.enterprise_management.SSLErrorOverrideAllowedForOriginsProto\x12\x43\n\x0eSitePerProcess\x18\x91\x03 \x01(\x0b\x32*.enterprise_management.SitePerProcessProto\x12w\n(GaiaLockScreenOfflineSigninTimeLimitDays\x18\xc3\x06 \x01(\x0b\x32\x44.enterprise_management.GaiaLockScreenOfflineSigninTimeLimitDaysProto\x12W\n\x18\x46loatingWorkspaceEnabled\x18\xc1\x07 \x01(\x0b\x32\x34.enterprise_management.FloatingWorkspaceEnabledProto\x12K\n\x12WebRtcUdpPortRange\x18\xd5\x02 \x01(\x0b\x32..enterprise_management.WebRtcUdpPortRangeProto\x12S\n\x16RemoteDebuggingAllowed\x18\xe2\x06 \x01(\x0b\x32\x32.enterprise_management.RemoteDebuggingAllowedProto\x12\x63\n\x1ePrintingAPIExtensionsWhitelist\x18\x9a\x05 \x01(\x0b\x32:.enterprise_management.PrintingAPIExtensionsWhitelistProto\x12\x45\n\x0fUserDisplayName\x18\xab\x01 \x01(\x0b\x32+.enterprise_management.UserDisplayNameProto\x12[\n\x1aReportCrostiniUsageEnabled\x18\xe6\x03 \x01(\x0b\x32\x36.enterprise_management.ReportCrostiniUsageEnabledProto\x12i\n!OnFileAttachedEnterpriseConnector\x18\xb7\x05 \x01(\x0b\x32=.enterprise_management.OnFileAttachedEnterpriseConnectorProto\x12\x63\n\x1e\x43\x41\x43\x65rtificateManagementAllowed\x18\xc5\x04 \x01(\x0b\x32:.enterprise_management.CACertificateManagementAllowedProto\x12\x61\n\x1d\x45xternalPrintServersWhitelist\x18\xf9\x04 \x01(\x0b\x32\x39.enterprise_management.ExternalPrintServersWhitelistProto\x12{\n*AmbientAuthenticationInPrivateModesEnabled\x18\x8c\x05 \x01(\x0b\x32\x46.enterprise_management.AmbientAuthenticationInPrivateModesEnabledProto\x12O\n\x14\x46orceYouTubeRestrict\x18\xde\x02 \x01(\x0b\x32\x30.enterprise_management.ForceYouTubeRestrictProto\x12S\n\x16\x43opyPreventionSettings\x18\xa2\x07 \x01(\x0b\x32\x32.enterprise_management.CopyPreventionSettingsProto\x12=\n\x0bQuicAllowed\x18\xaf\x02 \x01(\x0b\x32\'.enterprise_management.QuicAllowedProto\x12S\n\x16\x45mojiSuggestionEnabled\x18\xd3\x05 \x01(\x0b\x32\x32.enterprise_management.EmojiSuggestionEnabledProto\x12u\n\'DeviceLocalAccountManagedSessionEnabled\x18\xd1\x03 \x01(\x0b\x32\x43.enterprise_management.DeviceLocalAccountManagedSessionEnabledProto\x12g\n NTPMiddleSlotAnnouncementVisible\x18\xaf\x07 \x01(\x0b\x32<.enterprise_management.NTPMiddleSlotAnnouncementVisibleProto\x12N\n\x14\x41llowOutdatedPlugins\x18S \x01(\x0b\x32\x30.enterprise_management.AllowOutdatedPluginsProto\x12I\n\x11SpellcheckEnabled\x18\x9a\x03 \x01(\x0b\x32-.enterprise_management.SpellcheckEnabledProto\x12m\n#ExtensionInstallEventLoggingEnabled\x18\xd9\x05 \x01(\x0b\x32?.enterprise_management.ExtensionInstallEventLoggingEnabledProto\x12O\n\x14\x42rowsingDataLifetime\x18\x99\x06 \x01(\x0b\x32\x30.enterprise_management.BrowsingDataLifetimeProto\x12u\n\'CaptivePortalAuthenticationIgnoresProxy\x18\xa9\x02 \x01(\x0b\x32\x43.enterprise_management.CaptivePortalAuthenticationIgnoresProxyProto\x12[\n\x1aNTPCustomBackgroundEnabled\x18\x8f\x05 \x01(\x0b\x32\x36.enterprise_management.NTPCustomBackgroundEnabledProto\x12S\n\x16SmartLockSigninAllowed\x18\xea\x03 \x01(\x0b\x32\x32.enterprise_management.SmartLockSigninAllowedProto\x12R\n\x16\x44\x65veloperToolsDisabled\x18& \x01(\x0b\x32\x32.enterprise_management.DeveloperToolsDisabledProto\x12Q\n\x15WPADQuickCheckEnabled\x18\x87\x02 \x01(\x0b\x32\x31.enterprise_management.WPADQuickCheckEnabledProto\x12_\n\x1c\x42\x61tterySaverModeAvailability\x18\xf3\x07 \x01(\x0b\x32\x38.enterprise_management.BatterySaverModeAvailabilityProto\x12K\n\x12UserAgentReduction\x18\xa6\x07 \x01(\x0b\x32..enterprise_management.UserAgentReductionProto\x12G\n\x10HideWebStoreIcon\x18\xbf\x01 \x01(\x0b\x32,.enterprise_management.HideWebStoreIconProto\x12W\n\x18InsightsExtensionEnabled\x18\xd1\x07 \x01(\x0b\x32\x34.enterprise_management.InsightsExtensionEnabledProto\x12I\n\x11\x41utoplayWhitelist\x18\xb1\x03 \x01(\x0b\x32-.enterprise_management.AutoplayWhitelistProto\x12\x41\n\rSSLVersionMin\x18\x99\x02 \x01(\x0b\x32).enterprise_management.SSLVersionMinProto\x12\x43\n\x0eSessionLocales\x18\x94\x02 \x01(\x0b\x32*.enterprise_management.SessionLocalesProto\x12[\n\x1aRestrictAccountsToPatterns\x18\x9c\x03 \x01(\x0b\x32\x36.enterprise_management.RestrictAccountsToPatternsProto\x12Y\n\x19MaxInvalidationFetchDelay\x18\xe6\x01 \x01(\x0b\x32\x35.enterprise_management.MaxInvalidationFetchDelayProto\x12[\n\x1a\x44\x65skAPIThirdPartyAllowlist\x18\x81\x08 \x01(\x0b\x32\x36.enterprise_management.DeskAPIThirdPartyAllowlistProto\x12q\n%VirtualKeyboardResizesLayoutByDefault\x18\x82\x08 \x01(\x0b\x32\x41.enterprise_management.VirtualKeyboardResizesLayoutByDefaultProto\x12?\n\x0cWebSQLAccess\x18\xc8\x07 \x01(\x0b\x32(.enterprise_management.WebSQLAccessProto\x12\x7f\n,OverrideSecurityRestrictionsOnInsecureOrigin\x18\xcb\x03 \x01(\x0b\x32H.enterprise_management.OverrideSecurityRestrictionsOnInsecureOriginProto\x12\x63\n\x1e\x41\x64sSettingForIntrusiveAdsSites\x18\x9b\x03 \x01(\x0b\x32:.enterprise_management.AdsSettingForIntrusiveAdsSitesProto\x12V\n\x18OpenNetworkConfiguration\x18m \x01(\x0b\x32\x34.enterprise_management.OpenNetworkConfigurationProto\x12Q\n\x15\x44nsOverHttpsTemplates\x18\x84\x05 \x01(\x0b\x32\x31.enterprise_management.DnsOverHttpsTemplatesProto\x12X\n\x19\x44isabledPluginsExceptions\x18Q \x01(\x0b\x32\x35.enterprise_management.DisabledPluginsExceptionsProto\x12Q\n\x15UseLegacyFormControls\x18\xad\x05 \x01(\x0b\x32\x31.enterprise_management.UseLegacyFormControlsProto\x12g\n DisableSafeBrowsingProceedAnyway\x18\x98\x01 \x01(\x0b\x32<.enterprise_management.DisableSafeBrowsingProceedAnywayProto\x12\x45\n\x0f\x46orcedLanguages\x18\xc9\x06 \x01(\x0b\x32+.enterprise_management.ForcedLanguagesProto\x12^\n\x1c\x44\x65\x66\x61ultBrowserSettingEnabled\x18\x05 \x01(\x0b\x32\x38.enterprise_management.DefaultBrowserSettingEnabledProto\x12i\n!LoginDisplayPasswordButtonEnabled\x18\xbf\x05 \x01(\x0b\x32=.enterprise_management.LoginDisplayPasswordButtonEnabledProto\x12]\n\x1b\x41llowDeletingBrowserHistory\x18\xbd\x01 \x01(\x0b\x32\x37.enterprise_management.AllowDeletingBrowserHistoryProto\x12]\n\x1bSpellcheckLanguageBlacklist\x18\x9a\x04 \x01(\x0b\x32\x37.enterprise_management.SpellcheckLanguageBlacklistProto\x12]\n\x1bTouchVirtualKeyboardEnabled\x18\x8f\x02 \x01(\x0b\x32\x37.enterprise_management.TouchVirtualKeyboardEnabledProto\x12\x7f\n,InsecurePrivateNetworkRequestsAllowedForUrls\x18\x81\x06 \x01(\x0b\x32H.enterprise_management.InsecurePrivateNetworkRequestsAllowedForUrlsProto\x12L\n\x13\x41uthServerWhitelist\x18\x1f \x01(\x0b\x32/.enterprise_management.AuthServerWhitelistProto\x12S\n\x16\x41utoOpenAllowedForURLs\x18\xc5\x05 \x01(\x0b\x32\x32.enterprise_management.AutoOpenAllowedForURLsProto\x12I\n\x11\x41utoOpenFileTypes\x18\xbe\x05 \x01(\x0b\x32-.enterprise_management.AutoOpenFileTypesProto\x12m\n#EnableDeprecatedWebPlatformFeatures\x18\x90\x02 \x01(\x0b\x32?.enterprise_management.EnableDeprecatedWebPlatformFeaturesProto\x12S\n\x16VmManagementCliAllowed\x18\xc3\x04 \x01(\x0b\x32\x32.enterprise_management.VmManagementCliAllowedProto\x12o\n$StartupBrowserWindowLaunchSuppressed\x18\xba\x04 \x01(\x0b\x32@.enterprise_management.StartupBrowserWindowLaunchSuppressedProto\x12Y\n\x19PhoneHubCameraRollAllowed\x18\xaa\x07 \x01(\x0b\x32\x35.enterprise_management.PhoneHubCameraRollAllowedProto\x12Y\n\x19SigninInterceptionEnabled\x18\xad\x06 \x01(\x0b\x32\x35.enterprise_management.SigninInterceptionEnabledProto\x12]\n\x1bMediaRecommendationsEnabled\x18\x96\x06 \x01(\x0b\x32\x37.enterprise_management.MediaRecommendationsEnabledProto\x12\x63\n\x1eLockScreenMediaPlaybackEnabled\x18\xc7\x04 \x01(\x0b\x32:.enterprise_management.LockScreenMediaPlaybackEnabledProto\x12K\n\x12LacrosAvailability\x18\xd9\x06 \x01(\x0b\x32..enterprise_management.LacrosAvailabilityProto\x12_\n\x1cNetworkServiceSandboxEnabled\x18\x8f\x07 \x01(\x0b\x32\x38.enterprise_management.NetworkServiceSandboxEnabledProto\x12\x45\n\x0fPhoneHubAllowed\x18\x9d\x06 \x01(\x0b\x32+.enterprise_management.PhoneHubAllowedProto\x12K\n\x12GhostWindowEnabled\x18\x84\x07 \x01(\x0b\x32..enterprise_management.GhostWindowEnabledProto\x12_\n\x1cSafeBrowsingWhitelistDomains\x18\xa8\x03 \x01(\x0b\x32\x38.enterprise_management.SafeBrowsingWhitelistDomainsProto\x12\x42\n\x0eMediaCacheSize\x18q \x01(\x0b\x32*.enterprise_management.MediaCacheSizeProto\x12\x44\n\x0f\x41utoFillEnabled\x18\x14 \x01(\x0b\x32+.enterprise_management.AutoFillEnabledProto\x12Y\n\x19WebRtcLocalIpsAllowedUrls\x18\x82\x05 \x01(\x0b\x32\x35.enterprise_management.WebRtcLocalIpsAllowedUrlsProto\x12H\n\x11HideWebStorePromo\x18\x62 \x01(\x0b\x32-.enterprise_management.HideWebStorePromoProto\x12k\n\"OnSecurityEventEnterpriseConnector\x18\xbd\x05 \x01(\x0b\x32>.enterprise_management.OnSecurityEventEnterpriseConnectorProto\x12U\n\x17\x42uiltInDnsClientEnabled\x18\xa7\x01 \x01(\x0b\x32\x33.enterprise_management.BuiltInDnsClientEnabledProto\x12\x65\n\x1f\x41udioProcessHighPriorityEnabled\x18\xc6\x06 \x01(\x0b\x32;.enterprise_management.AudioProcessHighPriorityEnabledProto\x12L\n\x13\x44isablePluginFinder\x18\x44 \x01(\x0b\x32/.enterprise_management.DisablePluginFinderProto\x12S\n\x16HistoryClustersVisible\x18\xa0\x07 \x01(\x0b\x32\x32.enterprise_management.HistoryClustersVisibleProto\x12K\n\x12SmsMessagesAllowed\x18\xd7\x03 \x01(\x0b\x32..enterprise_management.SmsMessagesAllowedProto\x12?\n\x0cURLBlocklist\x18\xe2\x05 \x01(\x0b\x32(.enterprise_management.URLBlocklistProto\x12_\n\x1c\x43ontextualSuggestionsEnabled\x18\xc6\x03 \x01(\x0b\x32\x38.enterprise_management.ContextualSuggestionsEnabledProto\x12X\n\x19\x43hromeOsLockOnIdleSuspend\x18? \x01(\x0b\x32\x35.enterprise_management.ChromeOsLockOnIdleSuspendProto\x12Y\n\x19SystemFeaturesDisableMode\x18\xa9\x06 \x01(\x0b\x32\x35.enterprise_management.SystemFeaturesDisableModeProto\x12I\n\x11TermsOfServiceURL\x18\xbc\x01 \x01(\x0b\x32-.enterprise_management.TermsOfServiceURLProto\x12G\n\x10\x44nsOverHttpsMode\x18\xc8\x04 \x01(\x0b\x32,.enterprise_management.DnsOverHttpsModeProto\x12K\n\x12\x46orceBrowserSignin\x18\xdc\x02 \x01(\x0b\x32..enterprise_management.ForceBrowserSigninProto\x12\x41\n\rBrowserSignin\x18\xe9\x03 \x01(\x0b\x32).enterprise_management.BrowserSigninProto\x12Y\n\x19\x45nableSha1ForLocalAnchors\x18\xd6\x02 \x01(\x0b\x32\x35.enterprise_management.EnableSha1ForLocalAnchorsProto\x12K\n\x12TotalMemoryLimitMb\x18\xea\x04 \x01(\x0b\x32..enterprise_management.TotalMemoryLimitMbProto\x12S\n\x16ImportAutofillFormData\x18\x97\x02 \x01(\x0b\x32\x32.enterprise_management.ImportAutofillFormDataProto\x12S\n\x16\x41utofillAddressEnabled\x18\xcd\x03 \x01(\x0b\x32\x32.enterprise_management.AutofillAddressEnabledProto\x12i\n!PolicyListMultipleSourceMergeList\x18\xac\x04 \x01(\x0b\x32=.enterprise_management.PolicyListMultipleSourceMergeListProto\x12\x81\x01\n-DefaultSearchProviderContextMenuAccessAllowed\x18\xcd\x05 \x01(\x0b\x32I.enterprise_management.DefaultSearchProviderContextMenuAccessAllowedProto\x12P\n\x15\x45nterpriseWebStoreURL\x18r \x01(\x0b\x32\x31.enterprise_management.EnterpriseWebStoreURLProto\x12?\n\x0cURLAllowlist\x18\xe3\x05 \x01(\x0b\x32(.enterprise_management.URLAllowlistProto\x12]\n\x1bNativePrintersBulkBlacklist\x18\x82\x03 \x01(\x0b\x32\x37.enterprise_management.NativePrintersBulkBlacklistProto\x12I\n\x11ScreenTimeEnabled\x18\xd8\x07 \x01(\x0b\x32-.enterprise_management.ScreenTimeEnabledProto\x12_\n\x1cRendererCodeIntegrityEnabled\x18\xd8\x04 \x01(\x0b\x32\x38.enterprise_management.RendererCodeIntegrityEnabledProto\x12Y\n\x19WarnBeforeQuittingEnabled\x18\xcf\x07 \x01(\x0b\x32\x35.enterprise_management.WarnBeforeQuittingEnabledProto\x12[\n\x1aTargetBlankImpliesNoOpener\x18\xa4\x06 \x01(\x0b\x32\x36.enterprise_management.TargetBlankImpliesNoOpenerProto\x12\x45\n\x0f\x41utoplayAllowed\x18\xb0\x03 \x01(\x0b\x32+.enterprise_management.AutoplayAllowedProto\x12s\n&CommandLineFlagSecurityWarningsEnabled\x18\xb8\x04 \x01(\x0b\x32\x42.enterprise_management.CommandLineFlagSecurityWarningsEnabledProto\x12S\n\x16\x43hromeRootStoreEnabled\x18\xe2\x07 \x01(\x0b\x32\x32.enterprise_management.ChromeRootStoreEnabledProto\x12H\n\x11PolicyRefreshRate\x18: \x01(\x0b\x32-.enterprise_management.PolicyRefreshRateProto\x12g\n WebSQLInThirdPartyContextEnabled\x18\x88\x07 \x01(\x0b\x32<.enterprise_management.WebSQLInThirdPartyContextEnabledProto\x12\x87\x01\n0CertificateTransparencyEnforcementDisabledForCas\x18\xb5\x03 \x01(\x0b\x32L.enterprise_management.CertificateTransparencyEnforcementDisabledForCasProto\x12W\n\x18NativeMessagingBlacklist\x18\xfd\x01 \x01(\x0b\x32\x34.enterprise_management.NativeMessagingBlacklistProto\x12S\n\x16\x46ullscreenAlertEnabled\x18\xa6\x06 \x01(\x0b\x32\x32.enterprise_management.FullscreenAlertEnabledProto\x12\x63\n\x1eLacrosSecondaryProfilesAllowed\x18\xc2\x06 \x01(\x0b\x32:.enterprise_management.LacrosSecondaryProfilesAllowedProto\x12O\n\x14\x43loudUserPolicyMerge\x18\xdd\x06 \x01(\x0b\x32\x30.enterprise_management.CloudUserPolicyMergeProto\x12H\n\x11JavascriptEnabled\x18\x0b \x01(\x0b\x32-.enterprise_management.JavascriptEnabledProto\x12W\n\x18\x41llowSystemNotifications\x18\xbe\x06 \x01(\x0b\x32\x34.enterprise_management.AllowSystemNotificationsProto\x12u\n\'PolicyDictionaryMultipleSourceMergeList\x18\xb7\x04 \x01(\x0b\x32\x43.enterprise_management.PolicyDictionaryMultipleSourceMergeListProto\x12\x65\n\x1f\x41llowWebAuthnWithBrokenTlsCerts\x18\x87\x08 \x01(\x0b\x32;.enterprise_management.AllowWebAuthnWithBrokenTlsCertsProto\x12\x45\n\x0f\x46orceSafeSearch\x18\xa4\x01 \x01(\x0b\x32+.enterprise_management.ForceSafeSearchProto\x12o\n$EnterpriseHardwarePlatformAPIEnabled\x18\xe5\x03 \x01(\x0b\x32@.enterprise_management.EnterpriseHardwarePlatformAPIEnabledProto\x12\x61\n\x1dShowAppsShortcutInBookmarkBar\x18\x8d\x02 \x01(\x0b\x32\x39.enterprise_management.ShowAppsShortcutInBookmarkBarProto\x12\x61\n\x1dManagedConfigurationPerOrigin\x18\xaf\x06 \x01(\x0b\x32\x39.enterprise_management.ManagedConfigurationPerOriginProto\x12\x41\n\rSigninAllowed\x18\xc0\x01 \x01(\x0b\x32).enterprise_management.SigninAllowedProto\x12I\n\x11TosDialogBehavior\x18\xa3\x06 \x01(\x0b\x32-.enterprise_management.TosDialogBehaviorProto\x12o\n$StricterMixedContentTreatmentEnabled\x18\x8e\x05 \x01(\x0b\x32@.enterprise_management.StricterMixedContentTreatmentEnabledProto\x12i\n!DeviceAttributesAllowedForOrigins\x18\xe3\x06 \x01(\x0b\x32=.enterprise_management.DeviceAttributesAllowedForOriginsProto\x12Q\n\x15\x46orceNetworkInProcess\x18\x8b\x04 \x01(\x0b\x32\x31.enterprise_management.ForceNetworkInProcessProto\x12o\n$TLS13HardeningForLocalAnchorsEnabled\x18\xf4\x04 \x01(\x0b\x32@.enterprise_management.TLS13HardeningForLocalAnchorsEnabledProto\x12o\n$SafeBrowsingForTrustedSourcesEnabled\x18\xf9\x02 \x01(\x0b\x32@.enterprise_management.SafeBrowsingForTrustedSourcesEnabledProto\x12_\n\x1cSecurityKeyPermitAttestation\x18\x94\x03 \x01(\x0b\x32\x38.enterprise_management.SecurityKeyPermitAttestationProto\x12K\n\x12TabFreezingEnabled\x18\xce\x03 \x01(\x0b\x32..enterprise_management.TabFreezingEnabledProto\x12\x44\n\x0fImportBookmarks\x18\x63 \x01(\x0b\x32+.enterprise_management.ImportBookmarksProto\x12i\n!OnFileTransferEnterpriseConnector\x18\xe1\x07 \x01(\x0b\x32=.enterprise_management.OnFileTransferEnterpriseConnectorProto\x12i\n!GloballyScopeHTTPAuthCacheEnabled\x18\x85\x05 \x01(\x0b\x32=.enterprise_management.GloballyScopeHTTPAuthCacheEnabledProto\x12\x45\n\x0f\x46\x61stPairEnabled\x18\x92\x07 \x01(\x0b\x32+.enterprise_management.FastPairEnabledProto\x12W\n\x18\x41llowChromeDataInBackups\x18\xca\x07 \x01(\x0b\x32\x34.enterprise_management.AllowChromeDataInBackupsProto\x12g\n OriginAgentClusterDefaultEnabled\x18\xa7\x07 \x01(\x0b\x32<.enterprise_management.OriginAgentClusterDefaultEnabledProto\x12W\n\x18\x44\x65\x66\x61ultDownloadDirectory\x18\x93\x03 \x01(\x0b\x32\x34.enterprise_management.DefaultDownloadDirectoryProto\x12Y\n\x19SystemFeaturesDisableList\x18\xb3\x05 \x01(\x0b\x32\x35.enterprise_management.SystemFeaturesDisableListProto\x12\x87\x01\n0ManagedGuestSessionAutoLaunchNotificationReduced\x18\xb2\x05 \x01(\x0b\x32L.enterprise_management.ManagedGuestSessionAutoLaunchNotificationReducedProto\x12]\n\x1bLensDesktopNTPSearchEnabled\x18\x85\x08 \x01(\x0b\x32\x37.enterprise_management.LensDesktopNTPSearchEnabledProto\x12u\n\'UserAgentClientHintsGREASEUpdateEnabled\x18\x9e\x07 \x01(\x0b\x32\x43.enterprise_management.UserAgentClientHintsGREASEUpdateEnabledProto\x12m\n#OnFileDownloadedEnterpriseConnector\x18\xba\x05 \x01(\x0b\x32?.enterprise_management.OnFileDownloadedEnterpriseConnectorProto\x12Q\n\x15SSLVersionFallbackMin\x18\x9a\x02 \x01(\x0b\x32\x31.enterprise_management.SSLVersionFallbackMinProto\x12\x63\n\x1e\x45nableDeprecatedWebBasedSignin\x18\x8b\x02 \x01(\x0b\x32:.enterprise_management.EnableDeprecatedWebBasedSigninProto\x12]\n\x1bVariationsRestrictParameter\x18\xc6\x01 \x01(\x0b\x32\x37.enterprise_management.VariationsRestrictParameterProto\x12{\n*CrossOriginWebAssemblyModuleSharingEnabled\x18\xf0\x06 \x01(\x0b\x32\x46.enterprise_management.CrossOriginWebAssemblyModuleSharingEnabledProto\x12\x63\n\x1e\x43loudManagementEnrollmentToken\x18\x80\x04 \x01(\x0b\x32:.enterprise_management.CloudManagementEnrollmentTokenProto\x12T\n\x17MetricsReportingEnabled\x18\x11 \x01(\x0b\x32\x33.enterprise_management.MetricsReportingEnabledProto\x12M\n\x13ShoppingListEnabled\x18\xfc\x07 \x01(\x0b\x32/.enterprise_management.ShoppingListEnabledProto\x12Q\n\x15UrlParamFilterEnabled\x18\xd7\x07 \x01(\x0b\x32\x31.enterprise_management.UrlParamFilterEnabledProto\x12k\n\"OnBulkDataEntryEnterpriseConnector\x18\xbb\x05 \x01(\x0b\x32>.enterprise_management.OnBulkDataEntryEnterpriseConnectorProto\x12\x65\n\x1fPhoneHubTaskContinuationAllowed\x18\x9f\x06 \x01(\x0b\x32;.enterprise_management.PhoneHubTaskContinuationAllowedProto\x12R\n\x16\x45nterpriseWebStoreName\x18s \x01(\x0b\x32\x32.enterprise_management.EnterpriseWebStoreNameProto\x12\x8d\x01\n3CoalesceH2ConnectionsWithClientCertificatesForHosts\x18\xd4\x03 \x01(\x0b\x32O.enterprise_management.CoalesceH2ConnectionsWithClientCertificatesForHostsProto\x12[\n\x1aPreconfiguredDeskTemplates\x18\x91\x07 \x01(\x0b\x32\x36.enterprise_management.PreconfiguredDeskTemplatesProto\x12G\n\x10TripleDESEnabled\x18\xdc\x06 \x01(\x0b\x32,.enterprise_management.TripleDESEnabledProto\x12_\n\x1cSuppressUnsupportedOSWarning\x18\xc6\x02 \x01(\x0b\x32\x38.enterprise_management.SuppressUnsupportedOSWarningProto\x12G\n\x10ManagedBookmarks\x18\xe5\x01 \x01(\x0b\x32,.enterprise_management.ManagedBookmarksProto\x12i\n!BuiltinCertificateVerifierEnabled\x18\xc1\x04 \x01(\x0b\x32=.enterprise_management.BuiltinCertificateVerifierEnabledProto\x12I\n\x11\x46ullscreenAllowed\x18\xf2\x01 \x01(\x0b\x32-.enterprise_management.FullscreenAllowedProto\x12Q\n\x15LocalDiscoveryEnabled\x18\x98\x05 \x01(\x0b\x32\x31.enterprise_management.LocalDiscoveryEnabledProto\x12{\n*MachineLevelUserCloudPolicyEnrollmentToken\x18\xae\x03 \x01(\x0b\x32\x46.enterprise_management.MachineLevelUserCloudPolicyEnrollmentTokenProto\x12\x46\n\x10TranslateEnabled\x18R \x01(\x0b\x32,.enterprise_management.TranslateEnabledProto\x12S\n\x16WifiSyncAndroidAllowed\x18\xa0\x06 \x01(\x0b\x32\x32.enterprise_management.WifiSyncAndroidAllowedProto\x12_\n\x1cNTPContentSuggestionsEnabled\x18\xd4\x02 \x01(\x0b\x32\x38.enterprise_management.NTPContentSuggestionsEnabledProto\x12U\n\x17InstantTetheringAllowed\x18\xf1\x02 \x01(\x0b\x32\x33.enterprise_management.InstantTetheringAllowedProto\x12]\n\x1b\x41llowSyncXHRInPageDismissal\x18\xde\x04 \x01(\x0b\x32\x37.enterprise_management.AllowSyncXHRInPageDismissalProto\x12W\n\x18PrimaryMouseButtonSwitch\x18\x91\x05 \x01(\x0b\x32\x34.enterprise_management.PrimaryMouseButtonSwitchProto\x12Q\n\x15RelaunchHeadsUpPeriod\x18\xb9\x04 \x01(\x0b\x32\x31.enterprise_management.RelaunchHeadsUpPeriodProto\x12Q\n\x15\x42\x61\x63kgroundModeEnabled\x18\x8c\x01 \x01(\x0b\x32\x31.enterprise_management.BackgroundModeEnabledProto\x12W\n\x18ShowFullUrlsInAddressBar\x18\xe5\x05 \x01(\x0b\x32\x34.enterprise_management.ShowFullUrlsInAddressBarProto\x12Q\n\x15\x46orceGoogleSafeSearch\x18\x9c\x02 \x01(\x0b\x32\x31.enterprise_management.ForceGoogleSafeSearchProto\x12W\n\x18NativeMessagingWhitelist\x18\xfe\x01 \x01(\x0b\x32\x34.enterprise_management.NativeMessagingWhitelistProto\x12[\n\x1a\x45nableExperimentalPolicies\x18\xc9\x05 \x01(\x0b\x32\x36.enterprise_management.EnableExperimentalPoliciesProto\x12\x43\n\x0eKeyPermissions\x18\xb0\x02 \x01(\x0b\x32*.enterprise_management.KeyPermissionsProto\x12\x65\n\x1fUnthrottledNestedTimeoutEnabled\x18\xde\x07 \x01(\x0b\x32;.enterprise_management.UnthrottledNestedTimeoutEnabledProto\x12S\n\x16WebAppInstallForceList\x18\xd6\x03 \x01(\x0b\x32\x32.enterprise_management.WebAppInstallForceListProto\x12U\n\x17\x41lwaysOpenPdfExternally\x18\xdd\x02 \x01(\x0b\x32\x33.enterprise_management.AlwaysOpenPdfExternallyProto\x12G\n\x10\x41llowedLanguages\x18\xbe\x03 \x01(\x0b\x32,.enterprise_management.AllowedLanguagesProto\x12I\n\x11\x41utoplayAllowlist\x18\xe8\x05 \x01(\x0b\x32-.enterprise_management.AutoplayAllowlistProto\x12{\n*SendMouseEventsDisabledFormControlsEnabled\x18\x8a\x08 \x01(\x0b\x32\x46.enterprise_management.SendMouseEventsDisabledFormControlsEnabledProto\x12U\n\x17TabDiscardingExceptions\x18\xf4\x07 \x01(\x0b\x32\x33.enterprise_management.TabDiscardingExceptionsProto\x12}\n+ThrottleNonVisibleCrossOriginIframesAllowed\x18\x8f\x08 \x01(\x0b\x32G.enterprise_management.ThrottleNonVisibleCrossOriginIframesAllowedProto\x12S\n\x16WindowOcclusionEnabled\x18\xb3\x06 \x01(\x0b\x32\x32.enterprise_management.WindowOcclusionEnabledProto\x12S\n\x16RunAllFlashInAllowMode\x18\x89\x03 \x01(\x0b\x32\x32.enterprise_management.RunAllFlashInAllowModeProto\x12G\n\x10\x45ventPathEnabled\x18\xe0\x07 \x01(\x0b\x32,.enterprise_management.EventPathEnabledProto\x12;\n\nDHEEnabled\x18\xd0\x02 \x01(\x0b\x32&.enterprise_management.DHEEnabledProto\x12Q\n\x15PdfAnnotationsEnabled\x18\xce\x06 \x01(\x0b\x32\x31.enterprise_management.PdfAnnotationsEnabledProto\x12?\n\x0cHeadlessMode\x18\xcc\x06 \x01(\x0b\x32(.enterprise_management.HeadlessModeProto\x12W\n\x18LoadCryptoTokenExtension\x18\xef\x07 \x01(\x0b\x32\x34.enterprise_management.LoadCryptoTokenExtensionProto\x12I\n\x11\x45nableSyncConsent\x18\xc5\x03 \x01(\x0b\x32-.enterprise_management.EnableSyncConsentProto\x12U\n\x17\x42rowserGuestModeEnabled\x18\x95\x02 \x01(\x0b\x32\x33.enterprise_management.BrowserGuestModeEnabledProto\x12X\n\x19\x44isableSSLRecordSplitting\x18x \x01(\x0b\x32\x35.enterprise_management.DisableSSLRecordSplittingProto\x12{\n*CloudUserPolicyOverridesCloudMachinePolicy\x18\x85\x07 \x01(\x0b\x32\x46.enterprise_management.CloudUserPolicyOverridesCloudMachinePolicyProto\x12U\n\x17SafeSitesFilterBehavior\x18\xc9\x03 \x01(\x0b\x32\x33.enterprise_management.SafeSitesFilterBehaviorProto\x12\x63\n\x1eUserDataSnapshotRetentionLimit\x18\xa3\x05 \x01(\x0b\x32:.enterprise_management.UserDataSnapshotRetentionLimitProto\x12W\n\x18U2fSecurityKeyApiEnabled\x18\x89\x07 \x01(\x0b\x32\x34.enterprise_management.U2fSecurityKeyApiEnabledProto\x12k\n\"ClientCertificateManagementAllowed\x18\x88\x04 \x01(\x0b\x32>.enterprise_management.ClientCertificateManagementAllowedProto\x12K\n\x12\x41udioOutputAllowed\x18\xa1\x01 \x01(\x0b\x32..enterprise_management.AudioOutputAllowedProto\x12M\n\x13\x41llowedInputMethods\x18\xca\x03 \x01(\x0b\x32/.enterprise_management.AllowedInputMethodsProto\x12u\n\'FetchKeepaliveDurationSecondsOnShutdown\x18\xbd\x06 \x01(\x0b\x32\x43.enterprise_management.FetchKeepaliveDurationSecondsOnShutdownProto\x12[\n\x1aRelaunchNotificationPeriod\x18\xa6\x03 \x01(\x0b\x32\x36.enterprise_management.RelaunchNotificationPeriodProto\x12O\n\x14\x43hromeCleanupEnabled\x18\xbb\x03 \x01(\x0b\x32\x30.enterprise_management.ChromeCleanupEnabledProto\x12G\n\x10WebRtcIPHandling\x18\xcd\x06 \x01(\x0b\x32,.enterprise_management.WebRtcIPHandlingProto\x12W\n\x18NetworkPredictionOptions\x18\x93\x02 \x01(\x0b\x32\x34.enterprise_management.NetworkPredictionOptionsProto\x12N\n\x14ImportSavedPasswords\x18g \x01(\x0b\x32\x30.enterprise_management.ImportSavedPasswordsProto\x12q\n%ForceLogoutUnauthenticatedUserEnabled\x18\xa9\x05 \x01(\x0b\x32\x41.enterprise_management.ForceLogoutUnauthenticatedUserEnabledProto\x12S\n\x16PromotionalTabsEnabled\x18\xc8\x03 \x01(\x0b\x32\x32.enterprise_management.PromotionalTabsEnabledProto\x12k\n\"ProfilePickerOnStartupAvailability\x18\xac\x06 \x01(\x0b\x32>.enterprise_management.ProfilePickerOnStartupAvailabilityProto\x12U\n\x17\x46orceMaximizeOnFirstRun\x18\xac\x02 \x01(\x0b\x32\x33.enterprise_management.ForceMaximizeOnFirstRunProto\x12]\n\x1bNativePrintersBulkWhitelist\x18\x83\x03 \x01(\x0b\x32\x37.enterprise_management.NativePrintersBulkWhitelistProto\x12=\n\x0b\x45\x63heAllowed\x18\xab\x07 \x01(\x0b\x32\'.enterprise_management.EcheAllowedProto\x12k\n\"DataLeakPreventionReportingEnabled\x18\xda\x06 \x01(\x0b\x32>.enterprise_management.DataLeakPreventionReportingEnabledProto\x12]\n\x1b\x41llowPopupsDuringPageUnload\x18\x97\x04 \x01(\x0b\x32\x37.enterprise_management.AllowPopupsDuringPageUnloadProto\x12@\n\rImportHistory\x18\x64 \x01(\x0b\x32).enterprise_management.ImportHistoryProto\x12y\n)SafeBrowsingExtendedReportingOptInAllowed\x18\xad\x02 \x01(\x0b\x32\x45.enterprise_management.SafeBrowsingExtendedReportingOptInAllowedProto\x12Q\n\x15IsolateOriginsAndroid\x18\xbf\x03 \x01(\x0b\x32\x31.enterprise_management.IsolateOriginsAndroidProto\x12]\n\x1b\x43learBrowsingDataOnExitList\x18\xab\x06 \x01(\x0b\x32\x37.enterprise_management.ClearBrowsingDataOnExitListProto\x12Y\n\x19\x45\x63ryptfsMigrationStrategy\x18\xfa\x02 \x01(\x0b\x32\x35.enterprise_management.EcryptfsMigrationStrategyProto\x12O\n\x14PrivacyScreenEnabled\x18\xa7\x05 \x01(\x0b\x32\x30.enterprise_management.PrivacyScreenEnabledProto\x12[\n\x1a\x41\x64\x64itionalLaunchParameters\x18\x8f\x01 \x01(\x0b\x32\x36.enterprise_management.AdditionalLaunchParametersProto\x12I\n\x11SkipMetadataCheck\x18\xf0\x01 \x01(\x0b\x32-.enterprise_management.SkipMetadataCheckProto\x12T\n\x17RenderInChromeFrameList\x18< \x01(\x0b\x32\x33.enterprise_management.RenderInChromeFrameListProto\x12\x46\n\x10RenderInHostList\x18= \x01(\x0b\x32,.enterprise_management.RenderInHostListProto\x12\\\n\x1b\x43hromeFrameRendererSettings\x18; \x01(\x0b\x32\x37.enterprise_management.ChromeFrameRendererSettingsProto\x12_\n\x1cNetBiosShareDiscoveryEnabled\x18\xd5\x03 \x01(\x0b\x32\x38.enterprise_management.NetBiosShareDiscoveryEnabledProto\x12W\n\x18NetworkFileSharesAllowed\x18\xd0\x03 \x01(\x0b\x32\x34.enterprise_management.NetworkFileSharesAllowedProto\x12o\n$NetworkFileSharesPreconfiguredShares\x18\xec\x03 \x01(\x0b\x32@.enterprise_management.NetworkFileSharesPreconfiguredSharesProto\x12\x63\n\x1eNTLMShareAuthenticationEnabled\x18\xeb\x03 \x01(\x0b\x32:.enterprise_management.NTLMShareAuthenticationEnabledProto\x12\x61\n\x1dScreenCaptureAllowedByOrigins\x18\xf3\x06 \x01(\x0b\x32\x39.enterprise_management.ScreenCaptureAllowedByOriginsProto\x12[\n\x1aTabCaptureAllowedByOrigins\x18\xf5\x06 \x01(\x0b\x32\x36.enterprise_management.TabCaptureAllowedByOriginsProto\x12O\n\x14ScreenCaptureAllowed\x18\x9c\x05 \x01(\x0b\x32\x30.enterprise_management.ScreenCaptureAllowedProto\x12\x61\n\x1dWindowCaptureAllowedByOrigins\x18\xf4\x06 \x01(\x0b\x32\x39.enterprise_management.WindowCaptureAllowedByOriginsProto\x12o\n$SameOriginTabCaptureAllowedByOrigins\x18\xf6\x06 \x01(\x0b\x32@.enterprise_management.SameOriginTabCaptureAllowedByOriginsProto\x12\x63\n\x1e\x41rcBackupRestoreServiceEnabled\x18\xc3\x03 \x01(\x0b\x32:.enterprise_management.ArcBackupRestoreServiceEnabledProto\x12;\n\nArcEnabled\x18\xbf\x02 \x01(\x0b\x32&.enterprise_management.ArcEnabledProto\x12U\n\x17\x41rcCertificatesSyncMode\x18\xcc\x02 \x01(\x0b\x32\x33.enterprise_management.ArcCertificatesSyncModeProto\x12_\n\x1c\x41rcAppToWebAppSharingEnabled\x18\xf9\x06 \x01(\x0b\x32\x38.enterprise_management.ArcAppToWebAppSharingEnabledProto\x12i\n!AppRecommendationZeroStateEnabled\x18\xb5\x04 \x01(\x0b\x32=.enterprise_management.AppRecommendationZeroStateEnabledProto\x12Y\n\x19\x41rcLocationServiceEnabled\x18\xed\x02 \x01(\x0b\x32\x35.enterprise_management.ArcLocationServiceEnabledProto\x12g\n ArcGoogleLocationServicesEnabled\x18\xc4\x03 \x01(\x0b\x32<.enterprise_management.ArcGoogleLocationServicesEnabledProto\x12g\n ArcAppInstallEventLoggingEnabled\x18\xc1\x03 \x01(\x0b\x32<.enterprise_management.ArcAppInstallEventLoggingEnabledProto\x12U\n\x17\x41rcBackupRestoreEnabled\x18\xd3\x02 \x01(\x0b\x32\x33.enterprise_management.ArcBackupRestoreEnabledProto\x12\x39\n\tArcPolicy\x18\xc0\x02 \x01(\x0b\x32%.enterprise_management.ArcPolicyProto\x12\x42\n\tsubProto1\x18\x93\x08 \x01(\x0b\x32..enterprise_management.ChromeSettingsSubProto1B-Z+chromium/policy/enterprise_management_proto') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chrome_settings_full_runtime_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: - - -_SYNCDISABLEDPROTO = _descriptor.Descriptor( - name='SyncDisabledProto', - full_name='enterprise_management.SyncDisabledProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.SyncDisabledProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='SyncDisabled', full_name='enterprise_management.SyncDisabledProto.SyncDisabled', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=107, - serialized_end=210, -) - - -_SPELLCHECKSERVICEENABLEDPROTO = _descriptor.Descriptor( - name='SpellCheckServiceEnabledProto', - full_name='enterprise_management.SpellCheckServiceEnabledProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.SpellCheckServiceEnabledProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='SpellCheckServiceEnabled', full_name='enterprise_management.SpellCheckServiceEnabledProto.SpellCheckServiceEnabled', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=212, - serialized_end=339, -) - - -_SUPERVISEDUSERCREATIONENABLEDPROTO = _descriptor.Descriptor( - name='SupervisedUserCreationEnabledProto', - full_name='enterprise_management.SupervisedUserCreationEnabledProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.SupervisedUserCreationEnabledProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='SupervisedUserCreationEnabled', full_name='enterprise_management.SupervisedUserCreationEnabledProto.SupervisedUserCreationEnabled', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=342, - serialized_end=479, -) - - -_CLOUDPRINTPROXYENABLEDPROTO = _descriptor.Descriptor( - name='CloudPrintProxyEnabledProto', - full_name='enterprise_management.CloudPrintProxyEnabledProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.CloudPrintProxyEnabledProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='CloudPrintProxyEnabled', full_name='enterprise_management.CloudPrintProxyEnabledProto.CloudPrintProxyEnabled', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=481, - serialized_end=604, -) - - -_CHROMESETTINGSPROTO = _descriptor.Descriptor( - name='ChromeSettingsProto', - full_name='enterprise_management.ChromeSettingsProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='SyncDisabled', full_name='enterprise_management.ChromeSettingsProto.SyncDisabled', index=0, - number=22, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='SpellCheckServiceEnabled', full_name='enterprise_management.ChromeSettingsProto.SpellCheckServiceEnabled', index=1, - number=153, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='SupervisedUserCreationEnabled', full_name='enterprise_management.ChromeSettingsProto.SupervisedUserCreationEnabled', index=2, - number=225, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='CloudPrintProxyEnabled', full_name='enterprise_management.ChromeSettingsProto.CloudPrintProxyEnabled', index=3, - number=15, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=607, - serialized_end=964, -) - -_SYNCDISABLEDPROTO.fields_by_name['policy_options'].message_type = policy__common__definitions__full__runtime__pb2._POLICYOPTIONS -_SPELLCHECKSERVICEENABLEDPROTO.fields_by_name['policy_options'].message_type = policy__common__definitions__full__runtime__pb2._POLICYOPTIONS -_SUPERVISEDUSERCREATIONENABLEDPROTO.fields_by_name['policy_options'].message_type = policy__common__definitions__full__runtime__pb2._POLICYOPTIONS -_CLOUDPRINTPROXYENABLEDPROTO.fields_by_name['policy_options'].message_type = policy__common__definitions__full__runtime__pb2._POLICYOPTIONS -_CHROMESETTINGSPROTO.fields_by_name['SyncDisabled'].message_type = _SYNCDISABLEDPROTO -_CHROMESETTINGSPROTO.fields_by_name['SpellCheckServiceEnabled'].message_type = _SPELLCHECKSERVICEENABLEDPROTO -_CHROMESETTINGSPROTO.fields_by_name['SupervisedUserCreationEnabled'].message_type = _SUPERVISEDUSERCREATIONENABLEDPROTO -_CHROMESETTINGSPROTO.fields_by_name['CloudPrintProxyEnabled'].message_type = _CLOUDPRINTPROXYENABLEDPROTO -DESCRIPTOR.message_types_by_name['SyncDisabledProto'] = _SYNCDISABLEDPROTO -DESCRIPTOR.message_types_by_name['SpellCheckServiceEnabledProto'] = _SPELLCHECKSERVICEENABLEDPROTO -DESCRIPTOR.message_types_by_name['SupervisedUserCreationEnabledProto'] = _SUPERVISEDUSERCREATIONENABLEDPROTO -DESCRIPTOR.message_types_by_name['CloudPrintProxyEnabledProto'] = _CLOUDPRINTPROXYENABLEDPROTO -DESCRIPTOR.message_types_by_name['ChromeSettingsProto'] = _CHROMESETTINGSPROTO -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -SyncDisabledProto = _reflection.GeneratedProtocolMessageType('SyncDisabledProto', (_message.Message,), { - 'DESCRIPTOR' : _SYNCDISABLEDPROTO, - '__module__' : 'chrome_settings_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.SyncDisabledProto) - }) -_sym_db.RegisterMessage(SyncDisabledProto) - -SpellCheckServiceEnabledProto = _reflection.GeneratedProtocolMessageType('SpellCheckServiceEnabledProto', (_message.Message,), { - 'DESCRIPTOR' : _SPELLCHECKSERVICEENABLEDPROTO, - '__module__' : 'chrome_settings_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.SpellCheckServiceEnabledProto) - }) -_sym_db.RegisterMessage(SpellCheckServiceEnabledProto) - -SupervisedUserCreationEnabledProto = _reflection.GeneratedProtocolMessageType('SupervisedUserCreationEnabledProto', (_message.Message,), { - 'DESCRIPTOR' : _SUPERVISEDUSERCREATIONENABLEDPROTO, - '__module__' : 'chrome_settings_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.SupervisedUserCreationEnabledProto) - }) -_sym_db.RegisterMessage(SupervisedUserCreationEnabledProto) - -CloudPrintProxyEnabledProto = _reflection.GeneratedProtocolMessageType('CloudPrintProxyEnabledProto', (_message.Message,), { - 'DESCRIPTOR' : _CLOUDPRINTPROXYENABLEDPROTO, - '__module__' : 'chrome_settings_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.CloudPrintProxyEnabledProto) - }) -_sym_db.RegisterMessage(CloudPrintProxyEnabledProto) - -ChromeSettingsProto = _reflection.GeneratedProtocolMessageType('ChromeSettingsProto', (_message.Message,), { - 'DESCRIPTOR' : _CHROMESETTINGSPROTO, - '__module__' : 'chrome_settings_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.ChromeSettingsProto) - }) -_sym_db.RegisterMessage(ChromeSettingsProto) - - + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'Z+chromium/policy/enterprise_management_proto' + _CALENDARINTEGRATIONENABLEDPROTO._serialized_start=108 + _CALENDARINTEGRATIONENABLEDPROTO._serialized_end=239 + _BROWSERSWITCHERENABLEDPROTO._serialized_start=241 + _BROWSERSWITCHERENABLEDPROTO._serialized_end=364 + _BROWSERSWITCHERURLGREYLISTPROTO._serialized_start=367 + _BROWSERSWITCHERURLGREYLISTPROTO._serialized_end=533 + _BROWSERSWITCHERPARSINGMODEPROTO._serialized_start=536 + _BROWSERSWITCHERPARSINGMODEPROTO._serialized_end=667 + _BROWSERSWITCHERDELAYPROTO._serialized_start=669 + _BROWSERSWITCHERDELAYPROTO._serialized_end=788 + _BROWSERSWITCHERUSEIESITELISTPROTO._serialized_start=791 + _BROWSERSWITCHERUSEIESITELISTPROTO._serialized_end=926 + _BROWSERSWITCHEREXTERNALGREYLISTURLPROTO._serialized_start=929 + _BROWSERSWITCHEREXTERNALGREYLISTURLPROTO._serialized_end=1076 + _BROWSERSWITCHERCHROMEPATHPROTO._serialized_start=1079 + _BROWSERSWITCHERCHROMEPATHPROTO._serialized_end=1208 + _BROWSERSWITCHERKEEPLASTCHROMETABPROTO._serialized_start=1211 + _BROWSERSWITCHERKEEPLASTCHROMETABPROTO._serialized_end=1354 + _ALTERNATIVEBROWSERPATHPROTO._serialized_start=1356 + _ALTERNATIVEBROWSERPATHPROTO._serialized_end=1479 + _BROWSERSWITCHERURLLISTPROTO._serialized_start=1482 + _BROWSERSWITCHERURLLISTPROTO._serialized_end=1640 + _ALTERNATIVEBROWSERPARAMETERSPROTO._serialized_start=1643 + _ALTERNATIVEBROWSERPARAMETERSPROTO._serialized_end=1813 + _BROWSERSWITCHEREXTERNALSITELISTURLPROTO._serialized_start=1816 + _BROWSERSWITCHEREXTERNALSITELISTURLPROTO._serialized_end=1963 + _BROWSERSWITCHERCHROMEPARAMETERSPROTO._serialized_start=1966 + _BROWSERSWITCHERCHROMEPARAMETERSPROTO._serialized_end=2142 + _FIRSTPARTYSETSENABLEDPROTO._serialized_start=2144 + _FIRSTPARTYSETSENABLEDPROTO._serialized_end=2265 + _FIRSTPARTYSETSOVERRIDESPROTO._serialized_start=2267 + _FIRSTPARTYSETSOVERRIDESPROTO._serialized_end=2392 + _AUTHNEGOTIATEDELEGATEALLOWLISTPROTO._serialized_start=2395 + _AUTHNEGOTIATEDELEGATEALLOWLISTPROTO._serialized_end=2534 + _NTLMV2ENABLEDPROTO._serialized_start=2536 + _NTLMV2ENABLEDPROTO._serialized_end=2641 + _ALLHTTPAUTHSCHEMESALLOWEDFORORIGINSPROTO._serialized_start=2644 + _ALLHTTPAUTHSCHEMESALLOWEDFORORIGINSPROTO._serialized_end=2828 + _ALLOWCROSSORIGINAUTHPROMPTPROTO._serialized_start=2831 + _ALLOWCROSSORIGINAUTHPROMPTPROTO._serialized_end=2962 + _AUTHNEGOTIATEDELEGATEBYKDCPOLICYPROTO._serialized_start=2965 + _AUTHNEGOTIATEDELEGATEBYKDCPOLICYPROTO._serialized_end=3108 + _DISABLEAUTHNEGOTIATECNAMELOOKUPPROTO._serialized_start=3111 + _DISABLEAUTHNEGOTIATECNAMELOOKUPPROTO._serialized_end=3252 + _INTEGRATEDWEBAUTHENTICATIONALLOWEDPROTO._serialized_start=3255 + _INTEGRATEDWEBAUTHENTICATIONALLOWEDPROTO._serialized_end=3402 + _AUTHSERVERALLOWLISTPROTO._serialized_start=3404 + _AUTHSERVERALLOWLISTPROTO._serialized_end=3521 + _ENABLEAUTHNEGOTIATEPORTPROTO._serialized_start=3523 + _ENABLEAUTHNEGOTIATEPORTPROTO._serialized_end=3648 + _AUTHSCHEMESPROTO._serialized_start=3650 + _AUTHSCHEMESPROTO._serialized_end=3751 + _AUTHANDROIDNEGOTIATEACCOUNTTYPEPROTO._serialized_start=3754 + _AUTHANDROIDNEGOTIATEACCOUNTTYPEPROTO._serialized_end=3895 + _GSSAPILIBRARYNAMEPROTO._serialized_start=3897 + _GSSAPILIBRARYNAMEPROTO._serialized_end=4010 + _BASICAUTHOVERHTTPENABLEDPROTO._serialized_start=4012 + _BASICAUTHOVERHTTPENABLEDPROTO._serialized_end=4139 + _PROXYSERVERPROTO._serialized_start=4141 + _PROXYSERVERPROTO._serialized_end=4242 + _PROXYMODEPROTO._serialized_start=4244 + _PROXYMODEPROTO._serialized_end=4341 + _PROXYBYPASSLISTPROTO._serialized_start=4343 + _PROXYBYPASSLISTPROTO._serialized_end=4452 + _PROXYSERVERMODEPROTO._serialized_start=4454 + _PROXYSERVERMODEPROTO._serialized_end=4563 + _PROXYPACURLPROTO._serialized_start=4565 + _PROXYPACURLPROTO._serialized_end=4666 + _SAMLPASSWORDEXPIRATIONADVANCEWARNINGDAYSPROTO._serialized_start=4669 + _SAMLPASSWORDEXPIRATIONADVANCEWARNINGDAYSPROTO._serialized_end=4828 + _SAMLOFFLINESIGNINTIMELIMITPROTO._serialized_start=4831 + _SAMLOFFLINESIGNINTIMELIMITPROTO._serialized_end=4962 + _LOCKSCREENREAUTHENTICATIONENABLEDPROTO._serialized_start=4965 + _LOCKSCREENREAUTHENTICATIONENABLEDPROTO._serialized_end=5110 + _SAMLINSESSIONPASSWORDCHANGEENABLEDPROTO._serialized_start=5113 + _SAMLINSESSIONPASSWORDCHANGEENABLEDPROTO._serialized_end=5260 + _REPORTARCSTATUSENABLEDPROTO._serialized_start=5262 + _REPORTARCSTATUSENABLEDPROTO._serialized_end=5385 + _PROJECTORENABLEDPROTO._serialized_start=5387 + _PROJECTORENABLEDPROTO._serialized_end=5498 + _PROJECTORDOGFOODFORFAMILYLINKENABLEDPROTO._serialized_start=5501 + _PROJECTORDOGFOODFORFAMILYLINKENABLEDPROTO._serialized_end=5652 + _REPORTEXTENSIONSANDPLUGINSDATAPROTO._serialized_start=5655 + _REPORTEXTENSIONSANDPLUGINSDATAPROTO._serialized_end=5794 + _REPORTPOLICYDATAPROTO._serialized_start=5796 + _REPORTPOLICYDATAPROTO._serialized_end=5907 + _REPORTVERSIONDATAPROTO._serialized_start=5909 + _REPORTVERSIONDATAPROTO._serialized_end=6022 + _REPORTSAFEBROWSINGDATAPROTO._serialized_start=6024 + _REPORTSAFEBROWSINGDATAPROTO._serialized_end=6147 + _CLOUDREPORTINGUPLOADFREQUENCYPROTO._serialized_start=6150 + _CLOUDREPORTINGUPLOADFREQUENCYPROTO._serialized_end=6287 + _REPORTUSERIDDATAPROTO._serialized_start=6289 + _REPORTUSERIDDATAPROTO._serialized_end=6400 + _CLOUDREPORTINGENABLEDPROTO._serialized_start=6402 + _CLOUDREPORTINGENABLEDPROTO._serialized_end=6523 + _CLOUDEXTENSIONREQUESTENABLEDPROTO._serialized_start=6526 + _CLOUDEXTENSIONREQUESTENABLEDPROTO._serialized_end=6661 + _REPORTMACHINEIDDATAPROTO._serialized_start=6663 + _REPORTMACHINEIDDATAPROTO._serialized_end=6780 + _DNSOVERHTTPSSALTPROTO._serialized_start=6782 + _DNSOVERHTTPSSALTPROTO._serialized_end=6893 + _DNSOVERHTTPSTEMPLATESWITHIDENTIFIERSPROTO._serialized_start=6896 + _DNSOVERHTTPSTEMPLATESWITHIDENTIFIERSPROTO._serialized_end=7047 + _ACCESSCONTROLALLOWMETHODSINCORSPREFLIGHTSPECCONFORMANTPROTO._serialized_start=7050 + _ACCESSCONTROLALLOWMETHODSINCORSPREFLIGHTSPECCONFORMANTPROTO._serialized_end=7237 + _DRIVEDISABLEDPROTO._serialized_start=7239 + _DRIVEDISABLEDPROTO._serialized_end=7344 + _DRIVEDISABLEDOVERCELLULARPROTO._serialized_start=7347 + _DRIVEDISABLEDOVERCELLULARPROTO._serialized_end=7476 + _PRINTINGALLOWEDDUPLEXMODESPROTO._serialized_start=7479 + _PRINTINGALLOWEDDUPLEXMODESPROTO._serialized_end=7610 + _NATIVEPRINTERSBULKCONFIGURATIONPROTO._serialized_start=7613 + _NATIVEPRINTERSBULKCONFIGURATIONPROTO._serialized_end=7754 + _CLOUDPRINTSUBMITENABLEDPROTO._serialized_start=7756 + _CLOUDPRINTSUBMITENABLEDPROTO._serialized_end=7881 + _PRINTINGCOLORDEFAULTPROTO._serialized_start=7883 + _PRINTINGCOLORDEFAULTPROTO._serialized_end=8002 + _DISABLEPRINTPREVIEWPROTO._serialized_start=8004 + _DISABLEPRINTPREVIEWPROTO._serialized_end=8121 + _DEFAULTPRINTERSELECTIONPROTO._serialized_start=8123 + _DEFAULTPRINTERSELECTIONPROTO._serialized_end=8248 + _CLOUDPRINTPROXYENABLEDPROTO._serialized_start=8250 + _CLOUDPRINTPROXYENABLEDPROTO._serialized_end=8373 + _EXTERNALPRINTSERVERSALLOWLISTPROTO._serialized_start=8376 + _EXTERNALPRINTSERVERSALLOWLISTPROTO._serialized_end=8548 + _PRINTERSPROTO._serialized_start=8551 + _PRINTERSPROTO._serialized_end=8681 + _USERPRINTERSALLOWEDPROTO._serialized_start=8683 + _USERPRINTERSALLOWEDPROTO._serialized_end=8800 + _PRINTINGPAPERSIZEDEFAULTPROTO._serialized_start=8802 + _PRINTINGPAPERSIZEDEFAULTPROTO._serialized_end=8929 + _PRINTINGPINDEFAULTPROTO._serialized_start=8931 + _PRINTINGPINDEFAULTPROTO._serialized_end=9046 + _CLOUDPRINTWARNINGSSUPPRESSEDPROTO._serialized_start=9049 + _CLOUDPRINTWARNINGSSUPPRESSEDPROTO._serialized_end=9184 + _PRINTERTYPEDENYLISTPROTO._serialized_start=9187 + _PRINTERTYPEDENYLISTPROTO._serialized_end=9339 + _PRINTINGSENDUSERNAMEANDFILENAMEENABLEDPROTO._serialized_start=9342 + _PRINTINGSENDUSERNAMEANDFILENAMEENABLEDPROTO._serialized_end=9497 + _PRINTINGMAXSHEETSALLOWEDPROTO._serialized_start=9499 + _PRINTINGMAXSHEETSALLOWEDPROTO._serialized_end=9626 + _PRINTINGBACKGROUNDGRAPHICSDEFAULTPROTO._serialized_start=9629 + _PRINTINGBACKGROUNDGRAPHICSDEFAULTPROTO._serialized_end=9774 + _PRINTERSBULKACCESSMODEPROTO._serialized_start=9776 + _PRINTERSBULKACCESSMODEPROTO._serialized_end=9899 + _PRINTRASTERIZEPDFDPIPROTO._serialized_start=9901 + _PRINTRASTERIZEPDFDPIPROTO._serialized_end=10020 + _PRINTINGALLOWEDPINMODESPROTO._serialized_start=10022 + _PRINTINGALLOWEDPINMODESPROTO._serialized_end=10147 + _PRINTERSBULKCONFIGURATIONPROTO._serialized_start=10150 + _PRINTERSBULKCONFIGURATIONPROTO._serialized_end=10279 + _EXTERNALPRINTSERVERSPROTO._serialized_start=10281 + _EXTERNALPRINTSERVERSPROTO._serialized_end=10400 + _PRINTINGAPIEXTENSIONSALLOWLISTPROTO._serialized_start=10403 + _PRINTINGAPIEXTENSIONSALLOWLISTPROTO._serialized_end=10577 + _PRINTINGALLOWEDCOLORMODESPROTO._serialized_start=10580 + _PRINTINGALLOWEDCOLORMODESPROTO._serialized_end=10709 + _PRINTERSBULKALLOWLISTPROTO._serialized_start=10712 + _PRINTERSBULKALLOWLISTPROTO._serialized_end=10868 + _PRINTPOSTSCRIPTMODEPROTO._serialized_start=10870 + _PRINTPOSTSCRIPTMODEPROTO._serialized_end=10987 + _PRINTPDFASIMAGEDEFAULTPROTO._serialized_start=10989 + _PRINTPDFASIMAGEDEFAULTPROTO._serialized_end=11112 + _PRINTHEADERFOOTERPROTO._serialized_start=11114 + _PRINTHEADERFOOTERPROTO._serialized_end=11227 + _PRINTINGDUPLEXDEFAULTPROTO._serialized_start=11229 + _PRINTINGDUPLEXDEFAULTPROTO._serialized_end=11350 + _PRINTPDFASIMAGEAVAILABILITYPROTO._serialized_start=11353 + _PRINTPDFASIMAGEAVAILABILITYPROTO._serialized_end=11486 + _NATIVEPRINTERSBULKACCESSMODEPROTO._serialized_start=11489 + _NATIVEPRINTERSBULKACCESSMODEPROTO._serialized_end=11624 + _PRINTJOBHISTORYEXPIRATIONPERIODPROTO._serialized_start=11627 + _PRINTJOBHISTORYEXPIRATIONPERIODPROTO._serialized_end=11768 + _PRINTERSBULKBLOCKLISTPROTO._serialized_start=11771 + _PRINTERSBULKBLOCKLISTPROTO._serialized_end=11927 + _NATIVEPRINTERSPROTO._serialized_start=11930 + _NATIVEPRINTERSPROTO._serialized_end=12072 + _PRINTRASTERIZATIONMODEPROTO._serialized_start=12074 + _PRINTRASTERIZATIONMODEPROTO._serialized_end=12197 + _PRINTINGENABLEDPROTO._serialized_start=12199 + _PRINTINGENABLEDPROTO._serialized_end=12308 + _USERNATIVEPRINTERSALLOWEDPROTO._serialized_start=12311 + _USERNATIVEPRINTERSALLOWEDPROTO._serialized_end=12440 + _PRINTINGALLOWEDBACKGROUNDGRAPHICSMODESPROTO._serialized_start=12443 + _PRINTINGALLOWEDBACKGROUNDGRAPHICSMODESPROTO._serialized_end=12598 + _DELETEPRINTJOBHISTORYALLOWEDPROTO._serialized_start=12601 + _DELETEPRINTJOBHISTORYALLOWEDPROTO._serialized_end=12736 + _PRINTPREVIEWUSESYSTEMDEFAULTPRINTERPROTO._serialized_start=12739 + _PRINTPREVIEWUSESYSTEMDEFAULTPRINTERPROTO._serialized_end=12888 + _USERBOREALISALLOWEDPROTO._serialized_start=12890 + _USERBOREALISALLOWEDPROTO._serialized_end=13007 + _DEFAULTSEARCHPROVIDERSEARCHURLPROTO._serialized_start=13010 + _DEFAULTSEARCHPROVIDERSEARCHURLPROTO._serialized_end=13149 + _DEFAULTSEARCHPROVIDERSEARCHTERMSREPLACEMENTKEYPROTO._serialized_start=13152 + _DEFAULTSEARCHPROVIDERSEARCHTERMSREPLACEMENTKEYPROTO._serialized_end=13323 + _DEFAULTSEARCHPROVIDERSEARCHURLPOSTPARAMSPROTO._serialized_start=13326 + _DEFAULTSEARCHPROVIDERSEARCHURLPOSTPARAMSPROTO._serialized_end=13485 + _DEFAULTSEARCHPROVIDERIMAGEURLPOSTPARAMSPROTO._serialized_start=13488 + _DEFAULTSEARCHPROVIDERIMAGEURLPOSTPARAMSPROTO._serialized_end=13645 + _DEFAULTSEARCHPROVIDERICONURLPROTO._serialized_start=13648 + _DEFAULTSEARCHPROVIDERICONURLPROTO._serialized_end=13783 + _DEFAULTSEARCHPROVIDERIMAGEURLPROTO._serialized_start=13786 + _DEFAULTSEARCHPROVIDERIMAGEURLPROTO._serialized_end=13923 + _DEFAULTSEARCHPROVIDERINSTANTURLPOSTPARAMSPROTO._serialized_start=13926 + _DEFAULTSEARCHPROVIDERINSTANTURLPOSTPARAMSPROTO._serialized_end=14087 + _DEFAULTSEARCHPROVIDERKEYWORDPROTO._serialized_start=14090 + _DEFAULTSEARCHPROVIDERKEYWORDPROTO._serialized_end=14225 + _DEFAULTSEARCHPROVIDERNAMEPROTO._serialized_start=14228 + _DEFAULTSEARCHPROVIDERNAMEPROTO._serialized_end=14357 + _DEFAULTSEARCHPROVIDERSUGGESTURLPROTO._serialized_start=14360 + _DEFAULTSEARCHPROVIDERSUGGESTURLPROTO._serialized_end=14501 + _DEFAULTSEARCHPROVIDERALTERNATEURLSPROTO._serialized_start=14504 + _DEFAULTSEARCHPROVIDERALTERNATEURLSPROTO._serialized_end=14686 + _DEFAULTSEARCHPROVIDERENCODINGSPROTO._serialized_start=14689 + _DEFAULTSEARCHPROVIDERENCODINGSPROTO._serialized_end=14863 + _DEFAULTSEARCHPROVIDERENABLEDPROTO._serialized_start=14866 + _DEFAULTSEARCHPROVIDERENABLEDPROTO._serialized_end=15001 + _DEFAULTSEARCHPROVIDERSUGGESTURLPOSTPARAMSPROTO._serialized_start=15004 + _DEFAULTSEARCHPROVIDERSUGGESTURLPOSTPARAMSPROTO._serialized_end=15165 + _DEFAULTSEARCHPROVIDERNEWTABURLPROTO._serialized_start=15168 + _DEFAULTSEARCHPROVIDERNEWTABURLPROTO._serialized_end=15307 + _DEFAULTSEARCHPROVIDERINSTANTURLPROTO._serialized_start=15310 + _DEFAULTSEARCHPROVIDERINSTANTURLPROTO._serialized_end=15451 + _GAIAOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_start=15454 + _GAIAOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_end=15593 + _HOMEPAGEISNEWTABPAGEPROTO._serialized_start=15595 + _HOMEPAGEISNEWTABPAGEPROTO._serialized_end=15714 + _NEWTABPAGELOCATIONPROTO._serialized_start=15716 + _NEWTABPAGELOCATIONPROTO._serialized_end=15831 + _RESTOREONSTARTUPURLSPROTO._serialized_start=15834 + _RESTOREONSTARTUPURLSPROTO._serialized_end=15988 + _HOMEPAGELOCATIONPROTO._serialized_start=15990 + _HOMEPAGELOCATIONPROTO._serialized_end=16101 + _RESTOREONSTARTUPPROTO._serialized_start=16103 + _RESTOREONSTARTUPPROTO._serialized_end=16214 + _SHOWHOMEBUTTONPROTO._serialized_start=16216 + _SHOWHOMEBUTTONPROTO._serialized_end=16323 + _IDLETIMEOUTACTIONSPROTO._serialized_start=16326 + _IDLETIMEOUTACTIONSPROTO._serialized_end=16476 + _IDLETIMEOUTPROTO._serialized_start=16478 + _IDLETIMEOUTPROTO._serialized_end=16579 + _NATIVEMESSAGINGUSERLEVELHOSTSPROTO._serialized_start=16582 + _NATIVEMESSAGINGUSERLEVELHOSTSPROTO._serialized_end=16719 + _NATIVEMESSAGINGBLOCKLISTPROTO._serialized_start=16722 + _NATIVEMESSAGINGBLOCKLISTPROTO._serialized_end=16884 + _NATIVEMESSAGINGALLOWLISTPROTO._serialized_start=16887 + _NATIVEMESSAGINGALLOWLISTPROTO._serialized_end=17049 + _USERACTIVITYSCREENDIMDELAYSCALEPROTO._serialized_start=17052 + _USERACTIVITYSCREENDIMDELAYSCALEPROTO._serialized_end=17193 + _IDLEDELAYBATTERYPROTO._serialized_start=17195 + _IDLEDELAYBATTERYPROTO._serialized_end=17306 + _IDLEACTIONPROTO._serialized_start=17308 + _IDLEACTIONPROTO._serialized_end=17407 + _POWERMANAGEMENTUSESVIDEOACTIVITYPROTO._serialized_start=17410 + _POWERMANAGEMENTUSESVIDEOACTIVITYPROTO._serialized_end=17553 + _SCREENDIMDELAYACPROTO._serialized_start=17555 + _SCREENDIMDELAYACPROTO._serialized_end=17666 + _ALLOWSCREENWAKELOCKSPROTO._serialized_start=17668 + _ALLOWSCREENWAKELOCKSPROTO._serialized_end=17787 + _PRESENTATIONIDLEDELAYSCALEPROTO._serialized_start=17790 + _PRESENTATIONIDLEDELAYSCALEPROTO._serialized_end=17921 + _LIDCLOSEACTIONPROTO._serialized_start=17923 + _LIDCLOSEACTIONPROTO._serialized_end=18030 + _ALLOWWAKELOCKSPROTO._serialized_start=18032 + _ALLOWWAKELOCKSPROTO._serialized_end=18139 + _POWERSMARTDIMENABLEDPROTO._serialized_start=18141 + _POWERSMARTDIMENABLEDPROTO._serialized_end=18260 + _SCREENOFFDELAYBATTERYPROTO._serialized_start=18262 + _SCREENOFFDELAYBATTERYPROTO._serialized_end=18383 + _PRESENTATIONSCREENDIMDELAYSCALEPROTO._serialized_start=18386 + _PRESENTATIONSCREENDIMDELAYSCALEPROTO._serialized_end=18527 + _IDLEWARNINGDELAYACPROTO._serialized_start=18529 + _IDLEWARNINGDELAYACPROTO._serialized_end=18644 + _SCREENDIMDELAYBATTERYPROTO._serialized_start=18646 + _SCREENDIMDELAYBATTERYPROTO._serialized_end=18767 + _POWERMANAGEMENTUSESAUDIOACTIVITYPROTO._serialized_start=18770 + _POWERMANAGEMENTUSESAUDIOACTIVITYPROTO._serialized_end=18913 + _IDLEDELAYACPROTO._serialized_start=18915 + _IDLEDELAYACPROTO._serialized_end=19016 + _POWERMANAGEMENTIDLESETTINGSPROTO._serialized_start=19019 + _POWERMANAGEMENTIDLESETTINGSPROTO._serialized_end=19152 + _SCREENLOCKDELAYACPROTO._serialized_start=19154 + _SCREENLOCKDELAYACPROTO._serialized_end=19267 + _IDLEACTIONBATTERYPROTO._serialized_start=19269 + _IDLEACTIONBATTERYPROTO._serialized_end=19382 + _DEVICEPOWERADAPTIVECHARGINGENABLEDPROTO._serialized_start=19385 + _DEVICEPOWERADAPTIVECHARGINGENABLEDPROTO._serialized_end=19532 + _SCREENLOCKDELAYSPROTO._serialized_start=19534 + _SCREENLOCKDELAYSPROTO._serialized_end=19645 + _SCREENOFFDELAYACPROTO._serialized_start=19647 + _SCREENOFFDELAYACPROTO._serialized_end=19758 + _IDLEACTIONACPROTO._serialized_start=19760 + _IDLEACTIONACPROTO._serialized_end=19863 + _SCREENBRIGHTNESSPERCENTPROTO._serialized_start=19865 + _SCREENBRIGHTNESSPERCENTPROTO._serialized_end=19990 + _IDLEWARNINGDELAYBATTERYPROTO._serialized_start=19992 + _IDLEWARNINGDELAYBATTERYPROTO._serialized_end=20117 + _SCREENLOCKDELAYBATTERYPROTO._serialized_start=20119 + _SCREENLOCKDELAYBATTERYPROTO._serialized_end=20242 + _WAITFORINITIALUSERACTIVITYPROTO._serialized_start=20245 + _WAITFORINITIALUSERACTIVITYPROTO._serialized_end=20376 + _KEYGENALLOWEDFORURLSPROTO._serialized_start=20379 + _KEYGENALLOWEDFORURLSPROTO._serialized_end=20533 + _DEFAULTINSECURECONTENTSETTINGPROTO._serialized_start=20536 + _DEFAULTINSECURECONTENTSETTINGPROTO._serialized_end=20673 + _SENSORSBLOCKEDFORURLSPROTO._serialized_start=20676 + _SENSORSBLOCKEDFORURLSPROTO._serialized_end=20832 + _PDFLOCALFILEACCESSALLOWEDFORDOMAINSPROTO._serialized_start=20835 + _PDFLOCALFILEACCESSALLOWEDFORDOMAINSPROTO._serialized_end=21019 + _DEFAULTLOCALFONTSSETTINGPROTO._serialized_start=21021 + _DEFAULTLOCALFONTSSETTINGPROTO._serialized_end=21148 + _POPUPSBLOCKEDFORURLSPROTO._serialized_start=21151 + _POPUPSBLOCKEDFORURLSPROTO._serialized_end=21305 + _FILESYSTEMREADASKFORURLSPROTO._serialized_start=21308 + _FILESYSTEMREADASKFORURLSPROTO._serialized_end=21470 + _KEYGENBLOCKEDFORURLSPROTO._serialized_start=21473 + _KEYGENBLOCKEDFORURLSPROTO._serialized_end=21627 + _LOCALFONTSALLOWEDFORURLSPROTO._serialized_start=21630 + _LOCALFONTSALLOWEDFORURLSPROTO._serialized_end=21792 + _WEBHIDASKFORURLSPROTO._serialized_start=21795 + _WEBHIDASKFORURLSPROTO._serialized_end=21941 + _WEBUSBBLOCKEDFORURLSPROTO._serialized_start=21944 + _WEBUSBBLOCKEDFORURLSPROTO._serialized_end=22098 + _DEFAULTMEDIASTREAMSETTINGPROTO._serialized_start=22101 + _DEFAULTMEDIASTREAMSETTINGPROTO._serialized_end=22230 + _DEFAULTJAVASCRIPTSETTINGPROTO._serialized_start=22232 + _DEFAULTJAVASCRIPTSETTINGPROTO._serialized_end=22359 + _DEFAULTPOPUPSSETTINGPROTO._serialized_start=22361 + _DEFAULTPOPUPSSETTINGPROTO._serialized_end=22480 + _IMAGESALLOWEDFORURLSPROTO._serialized_start=22483 + _IMAGESALLOWEDFORURLSPROTO._serialized_end=22637 + _DEFAULTKEYGENSETTINGPROTO._serialized_start=22639 + _DEFAULTKEYGENSETTINGPROTO._serialized_end=22758 + _PLUGINSBLOCKEDFORURLSPROTO._serialized_start=22761 + _PLUGINSBLOCKEDFORURLSPROTO._serialized_end=22917 + _FILESYSTEMSYNCACCESSHANDLEASYNCINTERFACEENABLEDPROTO._serialized_start=22920 + _FILESYSTEMSYNCACCESSHANDLEASYNCINTERFACEENABLEDPROTO._serialized_end=23093 + _CLIPBOARDBLOCKEDFORURLSPROTO._serialized_start=23096 + _CLIPBOARDBLOCKEDFORURLSPROTO._serialized_end=23256 + _DEFAULTWINDOWPLACEMENTSETTINGPROTO._serialized_start=23259 + _DEFAULTWINDOWPLACEMENTSETTINGPROTO._serialized_end=23396 + _COOKIESSESSIONONLYFORURLSPROTO._serialized_start=23399 + _COOKIESSESSIONONLYFORURLSPROTO._serialized_end=23563 + _DEFAULTNOTIFICATIONSSETTINGPROTO._serialized_start=23566 + _DEFAULTNOTIFICATIONSSETTINGPROTO._serialized_end=23699 + _WEBHIDALLOWALLDEVICESFORURLSPROTO._serialized_start=23702 + _WEBHIDALLOWALLDEVICESFORURLSPROTO._serialized_end=23872 + _DEFAULTWEBHIDGUARDSETTINGPROTO._serialized_start=23875 + _DEFAULTWEBHIDGUARDSETTINGPROTO._serialized_end=24004 + _SERIALALLOWUSBDEVICESFORURLSPROTO._serialized_start=24007 + _SERIALALLOWUSBDEVICESFORURLSPROTO._serialized_end=24142 + _SERIALBLOCKEDFORURLSPROTO._serialized_start=24145 + _SERIALBLOCKEDFORURLSPROTO._serialized_end=24299 + _WEBHIDBLOCKEDFORURLSPROTO._serialized_start=24302 + _WEBHIDBLOCKEDFORURLSPROTO._serialized_end=24456 + _COOKIESALLOWEDFORURLSPROTO._serialized_start=24459 + _COOKIESALLOWEDFORURLSPROTO._serialized_end=24615 + _SENSORSALLOWEDFORURLSPROTO._serialized_start=24618 + _SENSORSALLOWEDFORURLSPROTO._serialized_end=24774 + _PLUGINSALLOWEDFORURLSPROTO._serialized_start=24777 + _PLUGINSALLOWEDFORURLSPROTO._serialized_end=24933 + _FILEHANDLINGBLOCKEDFORURLSPROTO._serialized_start=24936 + _FILEHANDLINGBLOCKEDFORURLSPROTO._serialized_end=25102 + _REGISTEREDPROTOCOLHANDLERSPROTO._serialized_start=25105 + _REGISTEREDPROTOCOLHANDLERSPROTO._serialized_end=25236 + _SERIALASKFORURLSPROTO._serialized_start=25239 + _SERIALASKFORURLSPROTO._serialized_end=25385 + _DEFAULTCOOKIESSETTINGPROTO._serialized_start=25387 + _DEFAULTCOOKIESSETTINGPROTO._serialized_end=25508 + _LEGACYSAMESITECOOKIEBEHAVIORENABLEDPROTO._serialized_start=25511 + _LEGACYSAMESITECOOKIEBEHAVIORENABLEDPROTO._serialized_end=25660 + _JAVASCRIPTBLOCKEDFORURLSPROTO._serialized_start=25663 + _JAVASCRIPTBLOCKEDFORURLSPROTO._serialized_end=25825 + _DEFAULTFILESYSTEMREADGUARDSETTINGPROTO._serialized_start=25828 + _DEFAULTFILESYSTEMREADGUARDSETTINGPROTO._serialized_end=25973 + _NOTIFICATIONSALLOWEDFORURLSPROTO._serialized_start=25976 + _NOTIFICATIONSALLOWEDFORURLSPROTO._serialized_end=26144 + _DEFAULTWEBUSBGUARDSETTINGPROTO._serialized_start=26147 + _DEFAULTWEBUSBGUARDSETTINGPROTO._serialized_end=26276 + _WEBUSBALLOWDEVICESFORURLSPROTO._serialized_start=26279 + _WEBUSBALLOWDEVICESFORURLSPROTO._serialized_end=26408 + _DEFAULTCLIPBOARDSETTINGPROTO._serialized_start=26410 + _DEFAULTCLIPBOARDSETTINGPROTO._serialized_end=26535 + _WINDOWPLACEMENTALLOWEDFORURLSPROTO._serialized_start=26538 + _WINDOWPLACEMENTALLOWEDFORURLSPROTO._serialized_end=26710 + _LEGACYSAMESITECOOKIEBEHAVIORENABLEDFORDOMAINLISTPROTO._serialized_start=26713 + _LEGACYSAMESITECOOKIEBEHAVIORENABLEDFORDOMAINLISTPROTO._serialized_end=26923 + _LOCALFONTSBLOCKEDFORURLSPROTO._serialized_start=26926 + _LOCALFONTSBLOCKEDFORURLSPROTO._serialized_end=27088 + _DEFAULTGEOLOCATIONSETTINGPROTO._serialized_start=27091 + _DEFAULTGEOLOCATIONSETTINGPROTO._serialized_end=27220 + _FILESYSTEMREADBLOCKEDFORURLSPROTO._serialized_start=27223 + _FILESYSTEMREADBLOCKEDFORURLSPROTO._serialized_end=27393 + _DEFAULTSERIALGUARDSETTINGPROTO._serialized_start=27396 + _DEFAULTSERIALGUARDSETTINGPROTO._serialized_end=27525 + _WEBHIDALLOWDEVICESFORURLSPROTO._serialized_start=27528 + _WEBHIDALLOWDEVICESFORURLSPROTO._serialized_end=27657 + _AUTOSELECTCERTIFICATEFORURLSPROTO._serialized_start=27660 + _AUTOSELECTCERTIFICATEFORURLSPROTO._serialized_end=27830 + _DEFAULTPLUGINSSETTINGPROTO._serialized_start=27832 + _DEFAULTPLUGINSSETTINGPROTO._serialized_end=27953 + _DEFAULTIMAGESSETTINGPROTO._serialized_start=27955 + _DEFAULTIMAGESSETTINGPROTO._serialized_end=28074 + _POPUPSALLOWEDFORURLSPROTO._serialized_start=28077 + _POPUPSALLOWEDFORURLSPROTO._serialized_end=28231 + _DEFAULTWEBBLUETOOTHGUARDSETTINGPROTO._serialized_start=28234 + _DEFAULTWEBBLUETOOTHGUARDSETTINGPROTO._serialized_end=28375 + _CLIPBOARDALLOWEDFORURLSPROTO._serialized_start=28378 + _CLIPBOARDALLOWEDFORURLSPROTO._serialized_end=28538 + _WINDOWPLACEMENTBLOCKEDFORURLSPROTO._serialized_start=28541 + _WINDOWPLACEMENTBLOCKEDFORURLSPROTO._serialized_end=28713 + _INSECURECONTENTBLOCKEDFORURLSPROTO._serialized_start=28716 + _INSECURECONTENTBLOCKEDFORURLSPROTO._serialized_end=28888 + _FILEHANDLINGALLOWEDFORURLSPROTO._serialized_start=28891 + _FILEHANDLINGALLOWEDFORURLSPROTO._serialized_end=29057 + _WEBUSBASKFORURLSPROTO._serialized_start=29060 + _WEBUSBASKFORURLSPROTO._serialized_end=29206 + _DEFAULTSENSORSSETTINGPROTO._serialized_start=29208 + _DEFAULTSENSORSSETTINGPROTO._serialized_end=29329 + _WEBHIDALLOWDEVICESWITHHIDUSAGESFORURLSPROTO._serialized_start=29332 + _WEBHIDALLOWDEVICESWITHHIDUSAGESFORURLSPROTO._serialized_end=29487 + _NOTIFICATIONSBLOCKEDFORURLSPROTO._serialized_start=29490 + _NOTIFICATIONSBLOCKEDFORURLSPROTO._serialized_end=29658 + _DEFAULTJAVASCRIPTJITSETTINGPROTO._serialized_start=29661 + _DEFAULTJAVASCRIPTJITSETTINGPROTO._serialized_end=29794 + _FILESYSTEMWRITEASKFORURLSPROTO._serialized_start=29797 + _FILESYSTEMWRITEASKFORURLSPROTO._serialized_end=29961 + _INSECURECONTENTALLOWEDFORURLSPROTO._serialized_start=29964 + _INSECURECONTENTALLOWEDFORURLSPROTO._serialized_end=30136 + _COOKIESBLOCKEDFORURLSPROTO._serialized_start=30139 + _COOKIESBLOCKEDFORURLSPROTO._serialized_end=30295 + _SERIALALLOWALLPORTSFORURLSPROTO._serialized_start=30298 + _SERIALALLOWALLPORTSFORURLSPROTO._serialized_end=30464 + _IMAGESBLOCKEDFORURLSPROTO._serialized_start=30467 + _IMAGESBLOCKEDFORURLSPROTO._serialized_end=30621 + _JAVASCRIPTJITALLOWEDFORSITESPROTO._serialized_start=30624 + _JAVASCRIPTJITALLOWEDFORSITESPROTO._serialized_end=30794 + _DEFAULTFILESYSTEMWRITEGUARDSETTINGPROTO._serialized_start=30797 + _DEFAULTFILESYSTEMWRITEGUARDSETTINGPROTO._serialized_end=30944 + _DEFAULTFILEHANDLINGGUARDSETTINGPROTO._serialized_start=30947 + _DEFAULTFILEHANDLINGGUARDSETTINGPROTO._serialized_end=31088 + _JAVASCRIPTJITBLOCKEDFORSITESPROTO._serialized_start=31091 + _JAVASCRIPTJITBLOCKEDFORSITESPROTO._serialized_end=31261 + _JAVASCRIPTALLOWEDFORURLSPROTO._serialized_start=31264 + _JAVASCRIPTALLOWEDFORURLSPROTO._serialized_end=31426 + _FILESYSTEMWRITEBLOCKEDFORURLSPROTO._serialized_start=31429 + _FILESYSTEMWRITEBLOCKEDFORURLSPROTO._serialized_end=31601 + _KERBEROSREMEMBERPASSWORDENABLEDPROTO._serialized_start=31604 + _KERBEROSREMEMBERPASSWORDENABLEDPROTO._serialized_end=31745 + _KERBEROSDOMAINAUTOCOMPLETEPROTO._serialized_start=31748 + _KERBEROSDOMAINAUTOCOMPLETEPROTO._serialized_end=31879 + _KERBEROSACCOUNTSPROTO._serialized_start=31881 + _KERBEROSACCOUNTSPROTO._serialized_end=31992 + _KERBEROSDEFAULTCONFIGURATIONPROTO._serialized_start=31995 + _KERBEROSDEFAULTCONFIGURATIONPROTO._serialized_end=32130 + _KERBEROSADDACCOUNTSALLOWEDPROTO._serialized_start=32133 + _KERBEROSADDACCOUNTSALLOWEDPROTO._serialized_end=32264 + _KERBEROSENABLEDPROTO._serialized_start=32266 + _KERBEROSENABLEDPROTO._serialized_end=32375 + _CHROMEFRAMECONTENTTYPESPROTO._serialized_start=32378 + _CHROMEFRAMECONTENTTYPESPROTO._serialized_end=32538 + _QUICKANSWERSDEFINITIONENABLEDPROTO._serialized_start=32541 + _QUICKANSWERSDEFINITIONENABLEDPROTO._serialized_end=32678 + _QUICKANSWERSTRANSLATIONENABLEDPROTO._serialized_start=32681 + _QUICKANSWERSTRANSLATIONENABLEDPROTO._serialized_end=32820 + _QUICKANSWERSUNITCONVERSIONENABLEDPROTO._serialized_start=32823 + _QUICKANSWERSUNITCONVERSIONENABLEDPROTO._serialized_end=32968 + _QUICKANSWERSENABLEDPROTO._serialized_start=32970 + _QUICKANSWERSENABLEDPROTO._serialized_end=33087 + _SUPERVISEDUSERCONTENTPROVIDERENABLEDPROTO._serialized_start=33090 + _SUPERVISEDUSERCONTENTPROVIDERENABLEDPROTO._serialized_end=33241 + _SUPERVISEDUSERCREATIONENABLEDPROTO._serialized_start=33244 + _SUPERVISEDUSERCREATIONENABLEDPROTO._serialized_end=33381 + _REMOTEACCESSHOSTTOKENVALIDATIONURLPROTO._serialized_start=33384 + _REMOTEACCESSHOSTTOKENVALIDATIONURLPROTO._serialized_end=33531 + _REMOTEACCESSHOSTTOKENVALIDATIONCERTIFICATEISSUERPROTO._serialized_start=33534 + _REMOTEACCESSHOSTTOKENVALIDATIONCERTIFICATEISSUERPROTO._serialized_end=33709 + _REMOTEACCESSHOSTALLOWREMOTESUPPORTCONNECTIONSPROTO._serialized_start=33712 + _REMOTEACCESSHOSTALLOWREMOTESUPPORTCONNECTIONSPROTO._serialized_end=33881 + _REMOTEACCESSHOSTREQUIRECURTAINPROTO._serialized_start=33884 + _REMOTEACCESSHOSTREQUIRECURTAINPROTO._serialized_end=34023 + _REMOTEACCESSHOSTALLOWREMOTEACCESSCONNECTIONSPROTO._serialized_start=34026 + _REMOTEACCESSHOSTALLOWREMOTEACCESSCONNECTIONSPROTO._serialized_end=34193 + _REMOTEACCESSHOSTUDPPORTRANGEPROTO._serialized_start=34196 + _REMOTEACCESSHOSTUDPPORTRANGEPROTO._serialized_end=34331 + _REMOTEACCESSHOSTALLOWGNUBBYAUTHPROTO._serialized_start=34334 + _REMOTEACCESSHOSTALLOWGNUBBYAUTHPROTO._serialized_end=34475 + _REMOTEACCESSHOSTENABLEUSERINTERFACEPROTO._serialized_start=34478 + _REMOTEACCESSHOSTENABLEUSERINTERFACEPROTO._serialized_end=34627 + _REMOTEACCESSHOSTTALKGADGETPREFIXPROTO._serialized_start=34630 + _REMOTEACCESSHOSTTALKGADGETPREFIXPROTO._serialized_end=34773 + _REMOTEACCESSHOSTCLIENTDOMAINLISTPROTO._serialized_start=34776 + _REMOTEACCESSHOSTCLIENTDOMAINLISTPROTO._serialized_end=34954 + _REMOTEACCESSHOSTALLOWUIACCESSFORREMOTEASSISTANCEPROTO._serialized_start=34957 + _REMOTEACCESSHOSTALLOWUIACCESSFORREMOTEASSISTANCEPROTO._serialized_end=35132 + _REMOTEACCESSHOSTMATCHUSERNAMEPROTO._serialized_start=35135 + _REMOTEACCESSHOSTMATCHUSERNAMEPROTO._serialized_end=35272 + _REMOTEACCESSCLIENTFIREWALLTRAVERSALPROTO._serialized_start=35275 + _REMOTEACCESSCLIENTFIREWALLTRAVERSALPROTO._serialized_end=35424 + _REMOTEACCESSHOSTALLOWRELAYEDCONNECTIONPROTO._serialized_start=35427 + _REMOTEACCESSHOSTALLOWRELAYEDCONNECTIONPROTO._serialized_end=35582 + _REMOTEACCESSHOSTMAXIMUMSESSIONDURATIONMINUTESPROTO._serialized_start=35585 + _REMOTEACCESSHOSTMAXIMUMSESSIONDURATIONMINUTESPROTO._serialized_end=35754 + _REMOTEACCESSHOSTCLIENTDOMAINPROTO._serialized_start=35757 + _REMOTEACCESSHOSTCLIENTDOMAINPROTO._serialized_end=35892 + _REMOTEACCESSHOSTREQUIRETWOFACTORPROTO._serialized_start=35895 + _REMOTEACCESSHOSTREQUIRETWOFACTORPROTO._serialized_end=36038 + _REMOTEACCESSHOSTDEBUGOVERRIDEPOLICIESPROTO._serialized_start=36041 + _REMOTEACCESSHOSTDEBUGOVERRIDEPOLICIESPROTO._serialized_end=36194 + _REMOTEACCESSHOSTCLIPBOARDSIZEBYTESPROTO._serialized_start=36197 + _REMOTEACCESSHOSTCLIPBOARDSIZEBYTESPROTO._serialized_end=36344 + _REMOTEACCESSHOSTTOKENURLPROTO._serialized_start=36346 + _REMOTEACCESSHOSTTOKENURLPROTO._serialized_end=36473 + _REMOTEACCESSHOSTDOMAINLISTPROTO._serialized_start=36476 + _REMOTEACCESSHOSTDOMAINLISTPROTO._serialized_end=36642 + _REMOTEACCESSHOSTFIREWALLTRAVERSALPROTO._serialized_start=36645 + _REMOTEACCESSHOSTFIREWALLTRAVERSALPROTO._serialized_end=36790 + _REMOTEACCESSHOSTDOMAINPROTO._serialized_start=36792 + _REMOTEACCESSHOSTDOMAINPROTO._serialized_end=36915 + _REMOTEACCESSHOSTALLOWFILETRANSFERPROTO._serialized_start=36918 + _REMOTEACCESSHOSTALLOWFILETRANSFERPROTO._serialized_end=37063 + _REMOTEACCESSHOSTALLOWCLIENTPAIRINGPROTO._serialized_start=37066 + _REMOTEACCESSHOSTALLOWCLIENTPAIRINGPROTO._serialized_end=37213 + _NEWWINDOWSINKIOSKALLOWEDPROTO._serialized_start=37215 + _NEWWINDOWSINKIOSKALLOWEDPROTO._serialized_end=37342 + _EXTENSIONALLOWINSECUREUPDATESPROTO._serialized_start=37345 + _EXTENSIONALLOWINSECUREUPDATESPROTO._serialized_end=37482 + _EXTENSIONINSTALLALLOWLISTPROTO._serialized_start=37485 + _EXTENSIONINSTALLALLOWLISTPROTO._serialized_end=37649 + _EXTENSIONINSTALLBLOCKLISTPROTO._serialized_start=37652 + _EXTENSIONINSTALLBLOCKLISTPROTO._serialized_end=37816 + _EXTENSIONINSTALLFORCELISTPROTO._serialized_start=37819 + _EXTENSIONINSTALLFORCELISTPROTO._serialized_end=37983 + _EXTENSIONALLOWEDTYPESPROTO._serialized_start=37986 + _EXTENSIONALLOWEDTYPESPROTO._serialized_end=38142 + _EXTENSIONINSTALLSOURCESPROTO._serialized_start=38145 + _EXTENSIONINSTALLSOURCESPROTO._serialized_end=38305 + _EXTENSIONMANIFESTV2AVAILABILITYPROTO._serialized_start=38308 + _EXTENSIONMANIFESTV2AVAILABILITYPROTO._serialized_end=38449 + _BLOCKEXTERNALEXTENSIONSPROTO._serialized_start=38451 + _BLOCKEXTERNALEXTENSIONSPROTO._serialized_end=38576 + _EXTENSIONSETTINGSPROTO._serialized_start=38578 + _EXTENSIONSETTINGSPROTO._serialized_end=38691 + _VOICEINTERACTIONQUICKANSWERSENABLEDPROTO._serialized_start=38694 + _VOICEINTERACTIONQUICKANSWERSENABLEDPROTO._serialized_end=38843 + _VOICEINTERACTIONCONTEXTENABLEDPROTO._serialized_start=38846 + _VOICEINTERACTIONCONTEXTENABLEDPROTO._serialized_end=38985 + _VOICEINTERACTIONHOTWORDENABLEDPROTO._serialized_start=38988 + _VOICEINTERACTIONHOTWORDENABLEDPROTO._serialized_end=39127 + _ASSISTANTVOICEMATCHENABLEDDURINGOOBEPROTO._serialized_start=39130 + _ASSISTANTVOICEMATCHENABLEDDURINGOOBEPROTO._serialized_end=39281 + _ASSISTANTONBOARDINGMODEPROTO._serialized_start=39283 + _ASSISTANTONBOARDINGMODEPROTO._serialized_end=39408 + _ASSISTANTWEBENABLEDPROTO._serialized_start=39410 + _ASSISTANTWEBENABLEDPROTO._serialized_end=39527 + _ATTESTATIONEXTENSIONALLOWLISTPROTO._serialized_start=39530 + _ATTESTATIONEXTENSIONALLOWLISTPROTO._serialized_end=39702 + _ATTESTATIONENABLEDFORUSERPROTO._serialized_start=39705 + _ATTESTATIONENABLEDFORUSERPROTO._serialized_end=39834 + _CASTRECEIVERENABLEDPROTO._serialized_start=39836 + _CASTRECEIVERENABLEDPROTO._serialized_end=39953 + _RECOVERYFACTORBEHAVIORPROTO._serialized_start=39955 + _RECOVERYFACTORBEHAVIORPROTO._serialized_end=40078 + _SHOWCASTICONINTOOLBARPROTO._serialized_start=40080 + _SHOWCASTICONINTOOLBARPROTO._serialized_end=40201 + _SHOWCASTSESSIONSSTARTEDBYOTHERDEVICESPROTO._serialized_start=40204 + _SHOWCASTSESSIONSSTARTEDBYOTHERDEVICESPROTO._serialized_end=40357 + _MEDIAROUTERCASTALLOWALLIPSPROTO._serialized_start=40360 + _MEDIAROUTERCASTALLOWALLIPSPROTO._serialized_end=40491 + _ENABLEMEDIAROUTERPROTO._serialized_start=40493 + _ENABLEMEDIAROUTERPROTO._serialized_end=40606 + _AUTOCLICKENABLEDPROTO._serialized_start=40608 + _AUTOCLICKENABLEDPROTO._serialized_end=40719 + _VIRTUALKEYBOARDENABLEDPROTO._serialized_start=40721 + _VIRTUALKEYBOARDENABLEDPROTO._serialized_end=40844 + _STICKYKEYSENABLEDPROTO._serialized_start=40846 + _STICKYKEYSENABLEDPROTO._serialized_end=40959 + _VIRTUALKEYBOARDFEATURESPROTO._serialized_start=40961 + _VIRTUALKEYBOARDFEATURESPROTO._serialized_end=41086 + _HIGHCONTRASTENABLEDPROTO._serialized_start=41088 + _HIGHCONTRASTENABLEDPROTO._serialized_end=41205 + _KEYBOARDDEFAULTTOFUNCTIONKEYSPROTO._serialized_start=41208 + _KEYBOARDDEFAULTTOFUNCTIONKEYSPROTO._serialized_end=41345 + _ACCESSIBILITYSHORTCUTSENABLEDPROTO._serialized_start=41348 + _ACCESSIBILITYSHORTCUTSENABLEDPROTO._serialized_end=41485 + _SELECTTOSPEAKENABLEDPROTO._serialized_start=41487 + _SELECTTOSPEAKENABLEDPROTO._serialized_end=41606 + _FLOATINGACCESSIBILITYMENUENABLEDPROTO._serialized_start=41609 + _FLOATINGACCESSIBILITYMENUENABLEDPROTO._serialized_end=41752 + _SHOWACCESSIBILITYOPTIONSINSYSTEMTRAYMENUPROTO._serialized_start=41755 + _SHOWACCESSIBILITYOPTIONSINSYSTEMTRAYMENUPROTO._serialized_end=41914 + _CURSORHIGHLIGHTENABLEDPROTO._serialized_start=41916 + _CURSORHIGHLIGHTENABLEDPROTO._serialized_end=42039 + _CARETHIGHLIGHTENABLEDPROTO._serialized_start=42041 + _CARETHIGHLIGHTENABLEDPROTO._serialized_end=42162 + _KEYBOARDFOCUSHIGHLIGHTENABLEDPROTO._serialized_start=42165 + _KEYBOARDFOCUSHIGHLIGHTENABLEDPROTO._serialized_end=42302 + _SCREENMAGNIFIERTYPEPROTO._serialized_start=42304 + _SCREENMAGNIFIERTYPEPROTO._serialized_end=42421 + _MONOAUDIOENABLEDPROTO._serialized_start=42423 + _MONOAUDIOENABLEDPROTO._serialized_end=42534 + _ENHANCEDNETWORKVOICESINSELECTTOSPEAKALLOWEDPROTO._serialized_start=42537 + _ENHANCEDNETWORKVOICESINSELECTTOSPEAKALLOWEDPROTO._serialized_end=42702 + _SPOKENFEEDBACKENABLEDPROTO._serialized_start=42704 + _SPOKENFEEDBACKENABLEDPROTO._serialized_end=42825 + _DICTATIONENABLEDPROTO._serialized_start=42827 + _DICTATIONENABLEDPROTO._serialized_end=42938 + _LARGECURSORENABLEDPROTO._serialized_start=42940 + _LARGECURSORENABLEDPROTO._serialized_end=43055 + _PASSWORDMANAGERENABLEDPROTO._serialized_start=43057 + _PASSWORDMANAGERENABLEDPROTO._serialized_end=43180 + _PASSWORDDISMISSCOMPROMISEDALERTENABLEDPROTO._serialized_start=43183 + _PASSWORDDISMISSCOMPROMISEDALERTENABLEDPROTO._serialized_end=43338 + _PASSWORDLEAKDETECTIONENABLEDPROTO._serialized_start=43341 + _PASSWORDLEAKDETECTIONENABLEDPROTO._serialized_end=43476 + _PASSWORDMANAGERALLOWSHOWPASSWORDSPROTO._serialized_start=43479 + _PASSWORDMANAGERALLOWSHOWPASSWORDSPROTO._serialized_end=43624 + _PLUGINVMDATACOLLECTIONALLOWEDPROTO._serialized_start=43627 + _PLUGINVMDATACOLLECTIONALLOWEDPROTO._serialized_end=43764 + _PLUGINVMUSERIDPROTO._serialized_start=43766 + _PLUGINVMUSERIDPROTO._serialized_end=43873 + _USERPLUGINVMALLOWEDPROTO._serialized_start=43875 + _USERPLUGINVMALLOWEDPROTO._serialized_end=43992 + _PLUGINVMREQUIREDFREEDISKSPACEPROTO._serialized_start=43995 + _PLUGINVMREQUIREDFREEDISKSPACEPROTO._serialized_end=44132 + _PLUGINVMIMAGEPROTO._serialized_start=44134 + _PLUGINVMIMAGEPROTO._serialized_end=44239 + _USAGETIMELIMITPROTO._serialized_start=44241 + _USAGETIMELIMITPROTO._serialized_end=44348 + _PERAPPTIMELIMITSALLOWLISTPROTO._serialized_start=44351 + _PERAPPTIMELIMITSALLOWLISTPROTO._serialized_end=44480 + _PARENTACCESSCODECONFIGPROTO._serialized_start=44482 + _PARENTACCESSCODECONFIGPROTO._serialized_end=44605 + _PERAPPTIMELIMITSPROTO._serialized_start=44607 + _PERAPPTIMELIMITSPROTO._serialized_end=44718 + _EDUCOEXISTENCETOSVERSIONPROTO._serialized_start=44720 + _EDUCOEXISTENCETOSVERSIONPROTO._serialized_end=44847 + _REQUIREDCLIENTCERTIFICATEFORUSERPROTO._serialized_start=44850 + _REQUIREDCLIENTCERTIFICATEFORUSERPROTO._serialized_end=44993 + _SAFEBROWSINGEXTENDEDREPORTINGENABLEDPROTO._serialized_start=44996 + _SAFEBROWSINGEXTENDEDREPORTINGENABLEDPROTO._serialized_end=45147 + _SAFEBROWSINGPROTECTIONLEVELPROTO._serialized_start=45150 + _SAFEBROWSINGPROTECTIONLEVELPROTO._serialized_end=45283 + _SAFEBROWSINGENABLEDPROTO._serialized_start=45285 + _SAFEBROWSINGENABLEDPROTO._serialized_end=45402 + _PASSWORDPROTECTIONWARNINGTRIGGERPROTO._serialized_start=45405 + _PASSWORDPROTECTIONWARNINGTRIGGERPROTO._serialized_end=45548 + _PASSWORDPROTECTIONCHANGEPASSWORDURLPROTO._serialized_start=45551 + _PASSWORDPROTECTIONCHANGEPASSWORDURLPROTO._serialized_end=45700 + _SAFEBROWSINGALLOWLISTDOMAINSPROTO._serialized_start=45703 + _SAFEBROWSINGALLOWLISTDOMAINSPROTO._serialized_end=45873 + _PASSWORDPROTECTIONLOGINURLSPROTO._serialized_start=45876 + _PASSWORDPROTECTIONLOGINURLSPROTO._serialized_end=46044 + _PINUNLOCKAUTOSUBMITENABLEDPROTO._serialized_start=46047 + _PINUNLOCKAUTOSUBMITENABLEDPROTO._serialized_end=46178 + _PINUNLOCKWEAKPINSALLOWEDPROTO._serialized_start=46180 + _PINUNLOCKWEAKPINSALLOWEDPROTO._serialized_end=46307 + _QUICKUNLOCKMODEALLOWLISTPROTO._serialized_start=46310 + _QUICKUNLOCKMODEALLOWLISTPROTO._serialized_end=46472 + _PINUNLOCKMINIMUMLENGTHPROTO._serialized_start=46474 + _PINUNLOCKMINIMUMLENGTHPROTO._serialized_end=46597 + _PINUNLOCKMAXIMUMLENGTHPROTO._serialized_start=46599 + _PINUNLOCKMAXIMUMLENGTHPROTO._serialized_end=46722 + _QUICKUNLOCKTIMEOUTPROTO._serialized_start=46724 + _QUICKUNLOCKTIMEOUTPROTO._serialized_end=46839 + _CLOUDAPAUTHENABLEDPROTO._serialized_start=46841 + _CLOUDAPAUTHENABLEDPROTO._serialized_end=46956 + _CROSTINIEXPORTIMPORTUIALLOWEDPROTO._serialized_start=46959 + _CROSTINIEXPORTIMPORTUIALLOWEDPROTO._serialized_end=47096 + _CROSTINIROOTACCESSALLOWEDPROTO._serialized_start=47099 + _CROSTINIROOTACCESSALLOWEDPROTO._serialized_end=47228 + _CROSTINIALLOWEDPROTO._serialized_start=47230 + _CROSTINIALLOWEDPROTO._serialized_end=47339 + _CROSTINIPORTFORWARDINGALLOWEDPROTO._serialized_start=47342 + _CROSTINIPORTFORWARDINGALLOWEDPROTO._serialized_end=47479 + _SYSTEMTERMINALSSHALLOWEDPROTO._serialized_start=47481 + _SYSTEMTERMINALSSHALLOWEDPROTO._serialized_end=47608 + _CROSTINIANSIBLEPLAYBOOKPROTO._serialized_start=47610 + _CROSTINIANSIBLEPLAYBOOKPROTO._serialized_end=47735 + _CROSTINIARCADBSIDELOADINGALLOWEDPROTO._serialized_start=47738 + _CROSTINIARCADBSIDELOADINGALLOWEDPROTO._serialized_end=47881 + _DATACOMPRESSIONPROXYENABLEDPROTO._serialized_start=47884 + _DATACOMPRESSIONPROXYENABLEDPROTO._serialized_end=48017 + _HINDIINSCRIPTLAYOUTENABLEDPROTO._serialized_start=48020 + _HINDIINSCRIPTLAYOUTENABLEDPROTO._serialized_end=48151 + _ENABLEONLINEREVOCATIONCHECKSPROTO._serialized_start=48154 + _ENABLEONLINEREVOCATIONCHECKSPROTO._serialized_end=48289 + _UNSAFELYTREATINSECUREORIGINASSECUREPROTO._serialized_start=48292 + _UNSAFELYTREATINSECUREORIGINASSECUREPROTO._serialized_end=48476 + _FORCEYOUTUBESAFETYMODEPROTO._serialized_start=48478 + _FORCEYOUTUBESAFETYMODEPROTO._serialized_end=48601 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORLEGACYCASPROTO._serialized_start=48604 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORLEGACYCASPROTO._serialized_end=48826 + _HTTPSONLYMODEPROTO._serialized_start=48828 + _HTTPSONLYMODEPROTO._serialized_end=48933 + _SETTIMEOUTWITHOUT1MSCLAMPENABLEDPROTO._serialized_start=48936 + _SETTIMEOUTWITHOUT1MSCLAMPENABLEDPROTO._serialized_end=49079 + _DNSPREFETCHINGENABLEDPROTO._serialized_start=49081 + _DNSPREFETCHINGENABLEDPROTO._serialized_end=49202 + _SPELLCHECKLANGUAGEBLOCKLISTPROTO._serialized_start=49205 + _SPELLCHECKLANGUAGEBLOCKLISTPROTO._serialized_end=49373 + _DISABLEDPLUGINSPROTO._serialized_start=49376 + _DISABLEDPLUGINSPROTO._serialized_end=49520 + _SCHEDULERCONFIGURATIONPROTO._serialized_start=49522 + _SCHEDULERCONFIGURATIONPROTO._serialized_end=49645 + _POLICYATOMICGROUPSENABLEDPROTO._serialized_start=49648 + _POLICYATOMICGROUPSENABLEDPROTO._serialized_end=49777 + _ADDITIONALDNSQUERYTYPESENABLEDPROTO._serialized_start=49780 + _ADDITIONALDNSQUERYTYPESENABLEDPROTO._serialized_end=49919 + _ADVANCEDPROTECTIONDEEPSCANNINGENABLEDPROTO._serialized_start=49922 + _ADVANCEDPROTECTIONDEEPSCANNINGENABLEDPROTO._serialized_end=50075 + _SCROLLTOTEXTFRAGMENTENABLEDPROTO._serialized_start=50078 + _SCROLLTOTEXTFRAGMENTENABLEDPROTO._serialized_end=50211 + _AUTHNEGOTIATEDELEGATEWHITELISTPROTO._serialized_start=50214 + _AUTHNEGOTIATEDELEGATEWHITELISTPROTO._serialized_end=50353 + _RENDERERAPPCONTAINERENABLEDPROTO._serialized_start=50356 + _RENDERERAPPCONTAINERENABLEDPROTO._serialized_end=50489 + _ATTESTATIONEXTENSIONWHITELISTPROTO._serialized_start=50492 + _ATTESTATIONEXTENSIONWHITELISTPROTO._serialized_end=50664 + _MAXCONNECTIONSPERPROXYPROTO._serialized_start=50666 + _MAXCONNECTIONSPERPROXYPROTO._serialized_end=50789 + _DISABLESCREENSHOTSPROTO._serialized_start=50791 + _DISABLESCREENSHOTSPROTO._serialized_end=50906 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORURLSPROTO._serialized_start=50909 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORURLSPROTO._serialized_end=51121 + _SHOWLOGOUTBUTTONINTRAYPROTO._serialized_start=51123 + _SHOWLOGOUTBUTTONINTRAYPROTO._serialized_end=51246 + _VPNCONFIGALLOWEDPROTO._serialized_start=51248 + _VPNCONFIGALLOWEDPROTO._serialized_end=51359 + _ENABLEDPLUGINSPROTO._serialized_start=51362 + _ENABLEDPLUGINSPROTO._serialized_end=51504 + _ENABLEDEPRECATEDPRIVETPRINTINGPROTO._serialized_start=51507 + _ENABLEDEPRECATEDPRIVETPRINTINGPROTO._serialized_end=51646 + _ENTERPRISEREALTIMEURLCHECKMODEPROTO._serialized_start=51649 + _ENTERPRISEREALTIMEURLCHECKMODEPROTO._serialized_end=51788 + _ADVANCEDPROTECTIONALLOWEDPROTO._serialized_start=51791 + _ADVANCEDPROTECTIONALLOWEDPROTO._serialized_end=51920 + _APPLICATIONLOCALEVALUEPROTO._serialized_start=51922 + _APPLICATIONLOCALEVALUEPROTO._serialized_end=52045 + _APPCACHEFORCEENABLEDPROTO._serialized_start=52047 + _APPCACHEFORCEENABLEDPROTO._serialized_end=52166 + _ENTERPRISEAUTHENTICATIONAPPLINKPOLICYPROTO._serialized_start=52169 + _ENTERPRISEAUTHENTICATIONAPPLINKPOLICYPROTO._serialized_end=52322 + _TASKMANAGERENDPROCESSENABLEDPROTO._serialized_start=52325 + _TASKMANAGERENDPROCESSENABLEDPROTO._serialized_end=52460 + _SITEPERPROCESSANDROIDPROTO._serialized_start=52462 + _SITEPERPROCESSANDROIDPROTO._serialized_end=52583 + _INTRANETREDIRECTBEHAVIORPROTO._serialized_start=52585 + _INTRANETREDIRECTBEHAVIORPROTO._serialized_end=52712 + _DEFAULTHANDLERSFORFILEEXTENSIONSPROTO._serialized_start=52715 + _DEFAULTHANDLERSFORFILEEXTENSIONSPROTO._serialized_end=52858 + _BROWSERGUESTMODEENFORCEDPROTO._serialized_start=52860 + _BROWSERGUESTMODEENFORCEDPROTO._serialized_end=52987 + _SSLVERSIONMAXPROTO._serialized_start=52989 + _SSLVERSIONMAXPROTO._serialized_end=53094 + _PERAPPTIMELIMITSWHITELISTPROTO._serialized_start=53097 + _PERAPPTIMELIMITSWHITELISTPROTO._serialized_end=53226 + _INCOGNITOENABLEDPROTO._serialized_start=53228 + _INCOGNITOENABLEDPROTO._serialized_end=53339 + _BRUSCHETTAVMCONFIGURATIONPROTO._serialized_start=53342 + _BRUSCHETTAVMCONFIGURATIONPROTO._serialized_end=53471 + _PACHTTPSURLSTRIPPINGENABLEDPROTO._serialized_start=53474 + _PACHTTPSURLSTRIPPINGENABLEDPROTO._serialized_end=53607 + _OFFSETPARENTNEWSPECBEHAVIORENABLEDPROTO._serialized_start=53610 + _OFFSETPARENTNEWSPECBEHAVIORENABLEDPROTO._serialized_end=53757 + _CLOUDPOLICYOVERRIDESPLATFORMPOLICYPROTO._serialized_start=53760 + _CLOUDPOLICYOVERRIDESPLATFORMPOLICYPROTO._serialized_end=53907 + _SECONDARYGOOGLEACCOUNTSIGNINALLOWEDPROTO._serialized_start=53910 + _SECONDARYGOOGLEACCOUNTSIGNINALLOWEDPROTO._serialized_end=54059 + _DOWNLOADRESTRICTIONSPROTO._serialized_start=54061 + _DOWNLOADRESTRICTIONSPROTO._serialized_end=54180 + _ALTERNATEERRORPAGESENABLEDPROTO._serialized_start=54183 + _ALTERNATEERRORPAGESENABLEDPROTO._serialized_end=54314 + _AUTOLAUNCHPROTOCOLSFROMORIGINSPROTO._serialized_start=54317 + _AUTOLAUNCHPROTOCOLSFROMORIGINSPROTO._serialized_end=54456 + _WALLPAPERIMAGEPROTO._serialized_start=54458 + _WALLPAPERIMAGEPROTO._serialized_end=54565 + _ABUSIVEEXPERIENCEINTERVENTIONENFORCEPROTO._serialized_start=54568 + _ABUSIVEEXPERIENCEINTERVENTIONENFORCEPROTO._serialized_end=54719 + _CHROMEOSMULTIPROFILEUSERBEHAVIORPROTO._serialized_start=54722 + _CHROMEOSMULTIPROFILEUSERBEHAVIORPROTO._serialized_end=54865 + _RELAUNCHNOTIFICATIONPROTO._serialized_start=54867 + _RELAUNCHNOTIFICATIONPROTO._serialized_end=54986 + _IMPORTHOMEPAGEPROTO._serialized_start=54988 + _IMPORTHOMEPAGEPROTO._serialized_end=55095 + _RELAUNCHWINDOWPROTO._serialized_start=55097 + _RELAUNCHWINDOWPROTO._serialized_end=55204 + _SHELFALIGNMENTPROTO._serialized_start=55206 + _SHELFALIGNMENTPROTO._serialized_end=55313 + _BOOKMARKBARENABLEDPROTO._serialized_start=55315 + _BOOKMARKBARENABLEDPROTO._serialized_end=55430 + _MANAGEDACCOUNTSSIGNINRESTRICTIONPROTO._serialized_start=55433 + _MANAGEDACCOUNTSSIGNINRESTRICTIONPROTO._serialized_end=55576 + _PHONEHUBNOTIFICATIONSALLOWEDPROTO._serialized_start=55579 + _PHONEHUBNOTIFICATIONSALLOWEDPROTO._serialized_end=55714 + _CORSNONWILDCARDREQUESTHEADERSSUPPORTPROTO._serialized_start=55717 + _CORSNONWILDCARDREQUESTHEADERSSUPPORTPROTO._serialized_end=55868 + _HARDWAREACCELERATIONMODEENABLEDPROTO._serialized_start=55871 + _HARDWAREACCELERATIONMODEENABLEDPROTO._serialized_end=56012 + _CONTEXTUALSEARCHENABLEDPROTO._serialized_start=56014 + _CONTEXTUALSEARCHENABLEDPROTO._serialized_end=56139 + _EASYUNLOCKALLOWEDPROTO._serialized_start=56141 + _EASYUNLOCKALLOWEDPROTO._serialized_end=56254 + _EXTERNALSTORAGEREADONLYPROTO._serialized_start=56256 + _EXTERNALSTORAGEREADONLYPROTO._serialized_end=56381 + _SECURITYTOKENSESSIONBEHAVIORPROTO._serialized_start=56384 + _SECURITYTOKENSESSIONBEHAVIORPROTO._serialized_end=56519 + _USERFEEDBACKALLOWEDPROTO._serialized_start=56521 + _USERFEEDBACKALLOWEDPROTO._serialized_end=56638 + _LOCKICONINADDRESSBARENABLEDPROTO._serialized_start=56641 + _LOCKICONINADDRESSBARENABLEDPROTO._serialized_end=56774 + _LOOKALIKEWARNINGALLOWLISTDOMAINSPROTO._serialized_start=56777 + _LOOKALIKEWARNINGALLOWLISTDOMAINSPROTO._serialized_end=56955 + _RESTRICTEDMANAGEDGUESTSESSIONEXTENSIONCLEANUPEXEMPTLISTPROTO._serialized_start=56958 + _RESTRICTEDMANAGEDGUESTSESSIONEXTENSIONCLEANUPEXEMPTLISTPROTO._serialized_end=57182 + _ISOLATEDAPPSDEVELOPERMODEALLOWEDPROTO._serialized_start=57185 + _ISOLATEDAPPSDEVELOPERMODEALLOWEDPROTO._serialized_end=57328 + _SEARCHSUGGESTENABLEDPROTO._serialized_start=57330 + _SEARCHSUGGESTENABLEDPROTO._serialized_end=57449 + _TRASHENABLEDPROTO._serialized_start=57451 + _TRASHENABLEDPROTO._serialized_end=57554 + _VIDEOCAPTUREALLOWEDURLSPROTO._serialized_start=57557 + _VIDEOCAPTUREALLOWEDURLSPROTO._serialized_end=57717 + _BROWSERLABSENABLEDPROTO._serialized_start=57719 + _BROWSERLABSENABLEDPROTO._serialized_end=57834 + _SAMLLOCKSCREENOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_start=57837 + _SAMLLOCKSCREENOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_end=57996 + _ISOLATEDWEBAPPINSTALLFORCELISTPROTO._serialized_start=57999 + _ISOLATEDWEBAPPINSTALLFORCELISTPROTO._serialized_end=58138 + _GETDISPLAYMEDIASETSELECTALLSCREENSALLOWEDFORURLSPROTO._serialized_start=58141 + _GETDISPLAYMEDIASETSELECTALLSCREENSALLOWEDFORURLSPROTO._serialized_end=58351 + _SESSIONLENGTHLIMITPROTO._serialized_start=58353 + _SESSIONLENGTHLIMITPROTO._serialized_end=58468 + _BROWSERTHEMECOLORPROTO._serialized_start=58470 + _BROWSERTHEMECOLORPROTO._serialized_end=58583 + _WEBAUTHENTICATIONREMOTEPROXIEDREQUESTSALLOWEDPROTO._serialized_start=58586 + _WEBAUTHENTICATIONREMOTEPROXIEDREQUESTSALLOWEDPROTO._serialized_end=58755 + _PROMPTONMULTIPLEMATCHINGCERTIFICATESPROTO._serialized_start=58758 + _PROMPTONMULTIPLEMATCHINGCERTIFICATESPROTO._serialized_end=58909 + _INSECUREFORMSWARNINGSENABLEDPROTO._serialized_start=58912 + _INSECUREFORMSWARNINGSENABLEDPROTO._serialized_end=59047 + _GCFUSERDATADIRPROTO._serialized_start=59049 + _GCFUSERDATADIRPROTO._serialized_end=59156 + _SECONDARYGOOGLEACCOUNTUSAGEPROTO._serialized_start=59159 + _SECONDARYGOOGLEACCOUNTUSAGEPROTO._serialized_end=59292 + _POLICYSCOPEDETECTIONPROTO._serialized_start=59294 + _POLICYSCOPEDETECTIONPROTO._serialized_end=59413 + _DISABLE3DAPISPROTO._serialized_start=59415 + _DISABLE3DAPISPROTO._serialized_end=59520 + _UNIFIEDDESKTOPENABLEDBYDEFAULTPROTO._serialized_start=59523 + _UNIFIEDDESKTOPENABLEDBYDEFAULTPROTO._serialized_end=59662 + _PAYMENTMETHODQUERYENABLEDPROTO._serialized_start=59665 + _PAYMENTMETHODQUERYENABLEDPROTO._serialized_end=59794 + _VIDEOCAPTUREALLOWEDPROTO._serialized_start=59796 + _VIDEOCAPTUREALLOWEDPROTO._serialized_end=59913 + _LACROSDATABACKWARDMIGRATIONMODEPROTO._serialized_start=59916 + _LACROSDATABACKWARDMIGRATIONMODEPROTO._serialized_end=60057 + _INTENSIVEWAKEUPTHROTTLINGENABLEDPROTO._serialized_start=60060 + _INTENSIVEWAKEUPTHROTTLINGENABLEDPROTO._serialized_end=60203 + _SHELFAUTOHIDEBEHAVIORPROTO._serialized_start=60205 + _SHELFAUTOHIDEBEHAVIORPROTO._serialized_end=60326 + _SYNCDISABLEDPROTO._serialized_start=60328 + _SYNCDISABLEDPROTO._serialized_end=60431 + _DISKCACHEDIRPROTO._serialized_start=60433 + _DISKCACHEDIRPROTO._serialized_end=60536 + _DATALEAKPREVENTIONCLIPBOARDCHECKSIZELIMITPROTO._serialized_start=60539 + _DATALEAKPREVENTIONCLIPBOARDCHECKSIZELIMITPROTO._serialized_end=60700 + _ACCESSCODECASTDEVICEDURATIONPROTO._serialized_start=60703 + _ACCESSCODECASTDEVICEDURATIONPROTO._serialized_end=60838 + _DATALEAKPREVENTIONRULESLISTPROTO._serialized_start=60841 + _DATALEAKPREVENTIONRULESLISTPROTO._serialized_end=60974 + _URLWHITELISTPROTO._serialized_start=60977 + _URLWHITELISTPROTO._serialized_end=61115 + _SUPPRESSDIFFERENTORIGINSUBFRAMEDIALOGSPROTO._serialized_start=61118 + _SUPPRESSDIFFERENTORIGINSUBFRAMEDIALOGSPROTO._serialized_end=61273 + _COMPONENTUPDATESENABLEDPROTO._serialized_start=61275 + _COMPONENTUPDATESENABLEDPROTO._serialized_end=61400 + _WEBRTCEVENTLOGCOLLECTIONALLOWEDPROTO._serialized_start=61403 + _WEBRTCEVENTLOGCOLLECTIONALLOWEDPROTO._serialized_end=61544 + _ENCRYPTEDCLIENTHELLOENABLEDPROTO._serialized_start=61547 + _ENCRYPTEDCLIENTHELLOENABLEDPROTO._serialized_end=61680 + _SYNCTYPESLISTDISABLEDPROTO._serialized_start=61683 + _SYNCTYPESLISTDISABLEDPROTO._serialized_end=61839 + _WEBXRIMMERSIVEARENABLEDPROTO._serialized_start=61841 + _WEBXRIMMERSIVEARENABLEDPROTO._serialized_end=61966 + _OPTIMIZATIONGUIDEFETCHINGENABLEDPROTO._serialized_start=61969 + _OPTIMIZATIONGUIDEFETCHINGENABLEDPROTO._serialized_end=62112 + _EXPLICITLYALLOWEDNETWORKPORTSPROTO._serialized_start=62115 + _EXPLICITLYALLOWEDNETWORKPORTSPROTO._serialized_end=62287 + _PINNEDLAUNCHERAPPSPROTO._serialized_start=62290 + _PINNEDLAUNCHERAPPSPROTO._serialized_end=62440 + _CCTTOSDIALOGENABLEDPROTO._serialized_start=62442 + _CCTTOSDIALOGENABLEDPROTO._serialized_end=62559 + _AUDIOCAPTUREALLOWEDURLSPROTO._serialized_start=62562 + _AUDIOCAPTUREALLOWEDURLSPROTO._serialized_end=62722 + _NOTETAKINGAPPSLOCKSCREENALLOWLISTPROTO._serialized_start=62725 + _NOTETAKINGAPPSLOCKSCREENALLOWLISTPROTO._serialized_end=62905 + _ROAMINGPROFILESUPPORTENABLEDPROTO._serialized_start=62908 + _ROAMINGPROFILESUPPORTENABLEDPROTO._serialized_end=63043 + _ALWAYSAUTHORIZEPLUGINSPROTO._serialized_start=63045 + _ALWAYSAUTHORIZEPLUGINSPROTO._serialized_end=63168 + _PERSISTENTQUOTAENABLEDPROTO._serialized_start=63170 + _PERSISTENTQUOTAENABLEDPROTO._serialized_end=63293 + _WEBAPPSETTINGSPROTO._serialized_start=63295 + _WEBAPPSETTINGSPROTO._serialized_end=63402 + _CLICKTOCALLENABLEDPROTO._serialized_start=63404 + _CLICKTOCALLENABLEDPROTO._serialized_end=63519 + _NEARBYSHAREALLOWEDPROTO._serialized_start=63521 + _NEARBYSHAREALLOWEDPROTO._serialized_end=63636 + _ACCESSCODECASTENABLEDPROTO._serialized_start=63638 + _ACCESSCODECASTENABLEDPROTO._serialized_end=63759 + _EDITBOOKMARKSENABLEDPROTO._serialized_start=63761 + _EDITBOOKMARKSENABLEDPROTO._serialized_end=63880 + _WELCOMEPAGEONOSUPGRADEENABLEDPROTO._serialized_start=63883 + _WELCOMEPAGEONOSUPGRADEENABLEDPROTO._serialized_end=64020 + _UNMANAGEDDEVICESIGNALSCONSENTFLOWENABLEDPROTO._serialized_start=64023 + _UNMANAGEDDEVICESIGNALSCONSENTFLOWENABLEDPROTO._serialized_end=64182 + _EXEMPTDOMAINFILETYPEPAIRSFROMFILETYPEDOWNLOADWARNINGSPROTO._serialized_start=64185 + _EXEMPTDOMAINFILETYPEPAIRSFROMFILETYPEDOWNLOADWARNINGSPROTO._serialized_end=64370 + _USERAGENTCLIENTHINTSENABLEDPROTO._serialized_start=64373 + _USERAGENTCLIENTHINTSENABLEDPROTO._serialized_end=64506 + _CLOUDPROFILEREPORTINGENABLEDPROTO._serialized_start=64509 + _CLOUDPROFILEREPORTINGENABLEDPROTO._serialized_end=64644 + _AUDIOSANDBOXENABLEDPROTO._serialized_start=64646 + _AUDIOSANDBOXENABLEDPROTO._serialized_end=64763 + _SPELLCHECKLANGUAGEPROTO._serialized_start=64766 + _SPELLCHECKLANGUAGEPROTO._serialized_end=64916 + _BLOCKTHIRDPARTYCOOKIESPROTO._serialized_start=64918 + _BLOCKTHIRDPARTYCOOKIESPROTO._serialized_end=65041 + _DISKCACHESIZEPROTO._serialized_start=65043 + _DISKCACHESIZEPROTO._serialized_end=65148 + _NATIVEWINDOWOCCLUSIONENABLEDPROTO._serialized_start=65151 + _NATIVEWINDOWOCCLUSIONENABLEDPROTO._serialized_end=65286 + _USERDATADIRPROTO._serialized_start=65288 + _USERDATADIRPROTO._serialized_end=65389 + _SAVINGBROWSERHISTORYDISABLEDPROTO._serialized_start=65392 + _SAVINGBROWSERHISTORYDISABLEDPROTO._serialized_end=65527 + _ALLOWFILESELECTIONDIALOGSPROTO._serialized_start=65530 + _ALLOWFILESELECTIONDIALOGSPROTO._serialized_end=65659 + _BACKFORWARDCACHEENABLEDPROTO._serialized_start=65661 + _BACKFORWARDCACHEENABLEDPROTO._serialized_end=65786 + _CHROMEVARIATIONSPROTO._serialized_start=65788 + _CHROMEVARIATIONSPROTO._serialized_end=65899 + _SIDESEARCHENABLEDPROTO._serialized_start=65901 + _SIDESEARCHENABLEDPROTO._serialized_end=66014 + _DEVELOPERTOOLSAVAILABILITYPROTO._serialized_start=66017 + _DEVELOPERTOOLSAVAILABILITYPROTO._serialized_end=66148 + _CORSLEGACYMODEENABLEDPROTO._serialized_start=66150 + _CORSLEGACYMODEENABLEDPROTO._serialized_end=66271 + _SPELLCHECKSERVICEENABLEDPROTO._serialized_start=66273 + _SPELLCHECKSERVICEENABLEDPROTO._serialized_end=66400 + _CONTEXTAWAREACCESSSIGNALSALLOWLISTPROTO._serialized_start=66403 + _CONTEXTAWAREACCESSSIGNALSALLOWLISTPROTO._serialized_end=66585 + _SSLERROROVERRIDEALLOWEDPROTO._serialized_start=66587 + _SSLERROROVERRIDEALLOWEDPROTO._serialized_end=66712 + _DISABLESPDYPROTO._serialized_start=66714 + _DISABLESPDYPROTO._serialized_end=66815 + _LACROSALLOWEDPROTO._serialized_start=66817 + _LACROSALLOWEDPROTO._serialized_end=66922 + _NTPCARDSVISIBLEPROTO._serialized_start=66924 + _NTPCARDSVISIBLEPROTO._serialized_end=67033 + _WEBCOMPONENTSV0ENABLEDPROTO._serialized_start=67035 + _WEBCOMPONENTSV0ENABLEDPROTO._serialized_end=67158 + _DOWNLOADDIRECTORYPROTO._serialized_start=67160 + _DOWNLOADDIRECTORYPROTO._serialized_end=67273 + _FORCEEPHEMERALPROFILESPROTO._serialized_start=67275 + _FORCEEPHEMERALPROFILESPROTO._serialized_end=67398 + _BROWSERADDPERSONENABLEDPROTO._serialized_start=67400 + _BROWSERADDPERSONENABLEDPROTO._serialized_end=67525 + _RC4ENABLEDPROTO._serialized_start=67527 + _RC4ENABLEDPROTO._serialized_end=67626 + _INSTANTENABLEDPROTO._serialized_start=67628 + _INSTANTENABLEDPROTO._serialized_end=67735 + _OSCOLORMODEPROTO._serialized_start=67737 + _OSCOLORMODEPROTO._serialized_end=67838 + _NOTETAKINGAPPSLOCKSCREENWHITELISTPROTO._serialized_start=67841 + _NOTETAKINGAPPSLOCKSCREENWHITELISTPROTO._serialized_end=68021 + _CHROMEAPPSENABLEDPROTO._serialized_start=68023 + _CHROMEAPPSENABLEDPROTO._serialized_end=68136 + _ENTERPRISEPROFILECREATIONKEEPBROWSINGDATAPROTO._serialized_start=68139 + _ENTERPRISEPROFILECREATIONKEEPBROWSINGDATAPROTO._serialized_end=68300 + _DESKTOPSHARINGHUBENABLEDPROTO._serialized_start=68302 + _DESKTOPSHARINGHUBENABLEDPROTO._serialized_end=68429 + _QUICKUNLOCKMODEWHITELISTPROTO._serialized_start=68432 + _QUICKUNLOCKMODEWHITELISTPROTO._serialized_end=68594 + _TABUNDERALLOWEDPROTO._serialized_start=68596 + _TABUNDERALLOWEDPROTO._serialized_end=68705 + _CHROMECLEANUPREPORTINGENABLEDPROTO._serialized_start=68708 + _CHROMECLEANUPREPORTINGENABLEDPROTO._serialized_end=68845 + _CLEARSITEDATAONEXITPROTO._serialized_start=68847 + _CLEARSITEDATAONEXITPROTO._serialized_end=68964 + _DNSINTERCEPTIONCHECKSENABLEDPROTO._serialized_start=68967 + _DNSINTERCEPTIONCHECKSENABLEDPROTO._serialized_end=69102 + _DISABLEDSCHEMESPROTO._serialized_start=69105 + _DISABLEDSCHEMESPROTO._serialized_end=69249 + _FLOATINGWORKSPACEV2ENABLEDPROTO._serialized_start=69252 + _FLOATINGWORKSPACEV2ENABLEDPROTO._serialized_end=69383 + _SUPPRESSCHROMEFRAMETURNDOWNPROMPTPROTO._serialized_start=69386 + _SUPPRESSCHROMEFRAMETURNDOWNPROMPTPROTO._serialized_end=69531 + _EXTERNALSTORAGEDISABLEDPROTO._serialized_start=69533 + _EXTERNALSTORAGEDISABLEDPROTO._serialized_end=69658 + _BROWSERLEGACYEXTENSIONPOINTSBLOCKEDPROTO._serialized_start=69661 + _BROWSERLEGACYEXTENSIONPOINTSBLOCKEDPROTO._serialized_end=69810 + _SIGNEDHTTPEXCHANGEENABLEDPROTO._serialized_start=69813 + _SIGNEDHTTPEXCHANGEENABLEDPROTO._serialized_end=69942 + _SECURITYTOKENSESSIONNOTIFICATIONSECONDSPROTO._serialized_start=69945 + _SECURITYTOKENSESSIONNOTIFICATIONSECONDSPROTO._serialized_end=70102 + _SUGGESTEDCONTENTENABLEDPROTO._serialized_start=70104 + _SUGGESTEDCONTENTENABLEDPROTO._serialized_end=70229 + _WEBDRIVEROVERRIDESINCOMPATIBLEPOLICIESPROTO._serialized_start=70232 + _WEBDRIVEROVERRIDESINCOMPATIBLEPOLICIESPROTO._serialized_end=70387 + _ALLOWNATIVENOTIFICATIONSPROTO._serialized_start=70389 + _ALLOWNATIVENOTIFICATIONSPROTO._serialized_end=70516 + _BROWSERNETWORKTIMEQUERIESENABLEDPROTO._serialized_start=70519 + _BROWSERNETWORKTIMEQUERIESENABLEDPROTO._serialized_end=70662 + _HSTSPOLICYBYPASSLISTPROTO._serialized_start=70665 + _HSTSPOLICYBYPASSLISTPROTO._serialized_end=70819 + _PREFIXEDSTORAGEINFOENABLEDPROTO._serialized_start=70822 + _PREFIXEDSTORAGEINFOENABLEDPROTO._serialized_end=70953 + _ALLOWDINOSAUREASTEREGGPROTO._serialized_start=70955 + _ALLOWDINOSAUREASTEREGGPROTO._serialized_end=71078 + _EXTENSIONINSTALLBLACKLISTPROTO._serialized_start=71081 + _EXTENSIONINSTALLBLACKLISTPROTO._serialized_end=71245 + _WEBAUTHNFACTORSPROTO._serialized_start=71248 + _WEBAUTHNFACTORSPROTO._serialized_end=71392 + _ACCESSIBILITYIMAGELABELSENABLEDPROTO._serialized_start=71395 + _ACCESSIBILITYIMAGELABELSENABLEDPROTO._serialized_end=71536 + _DOWNLOADBUBBLEENABLEDPROTO._serialized_start=71538 + _DOWNLOADBUBBLEENABLEDPROTO._serialized_end=71659 + _EXTERNALPROTOCOLDIALOGSHOWALWAYSOPENCHECKBOXPROTO._serialized_start=71662 + _EXTERNALPROTOCOLDIALOGSHOWALWAYSOPENCHECKBOXPROTO._serialized_end=71829 + _INSECUREPRIVATENETWORKREQUESTSALLOWEDPROTO._serialized_start=71832 + _INSECUREPRIVATENETWORKREQUESTSALLOWEDPROTO._serialized_end=71985 + _HIGHEFFICIENCYMODEENABLEDPROTO._serialized_start=71988 + _HIGHEFFICIENCYMODEENABLEDPROTO._serialized_end=72117 + _KEEPFULLSCREENWITHOUTNOTIFICATIONURLALLOWLISTPROTO._serialized_start=72120 + _KEEPFULLSCREENWITHOUTNOTIFICATIONURLALLOWLISTPROTO._serialized_end=72324 + _ALLOWSCREENLOCKPROTO._serialized_start=72326 + _ALLOWSCREENLOCKPROTO._serialized_end=72435 + _IMPORTSEARCHENGINEPROTO._serialized_start=72437 + _IMPORTSEARCHENGINEPROTO._serialized_end=72552 + _CORSMITIGATIONLISTPROTO._serialized_start=72555 + _CORSMITIGATIONLISTPROTO._serialized_end=72705 + _THIRDPARTYBLOCKINGENABLEDPROTO._serialized_start=72708 + _THIRDPARTYBLOCKINGENABLEDPROTO._serialized_end=72837 + _DISPLAYCAPTUREPERMISSIONSPOLICYENABLEDPROTO._serialized_start=72840 + _DISPLAYCAPTUREPERMISSIONSPOLICYENABLEDPROTO._serialized_end=72995 + _WEBSQLNONSECURECONTEXTENABLEDPROTO._serialized_start=72998 + _WEBSQLNONSECURECONTEXTENABLEDPROTO._serialized_end=73135 + _ENABLESYMANTECLEGACYINFRASTRUCTUREPROTO._serialized_start=73138 + _ENABLESYMANTECLEGACYINFRASTRUCTUREPROTO._serialized_end=73285 + _REQUIREONLINEREVOCATIONCHECKSFORLOCALANCHORSPROTO._serialized_start=73288 + _REQUIREONLINEREVOCATIONCHECKSFORLOCALANCHORSPROTO._serialized_end=73455 + _WEBRTCALLOWLEGACYTLSPROTOCOLSPROTO._serialized_start=73458 + _WEBRTCALLOWLEGACYTLSPROTOCOLSPROTO._serialized_end=73595 + _LENSREGIONSEARCHENABLEDPROTO._serialized_start=73597 + _LENSREGIONSEARCHENABLEDPROTO._serialized_end=73722 + _FORCEMAJORVERSIONTOMINORPOSITIONINUSERAGENTPROTO._serialized_start=73725 + _FORCEMAJORVERSIONTOMINORPOSITIONINUSERAGENTPROTO._serialized_end=73890 + _ROAMINGPROFILELOCATIONPROTO._serialized_start=73892 + _ROAMINGPROFILELOCATIONPROTO._serialized_end=74015 + _CECPQ2ENABLEDPROTO._serialized_start=74017 + _CECPQ2ENABLEDPROTO._serialized_end=74122 + _LENSCAMERAASSISTEDSEARCHENABLEDPROTO._serialized_start=74125 + _LENSCAMERAASSISTEDSEARCHENABLEDPROTO._serialized_end=74266 + _EXTENSIONINSTALLWHITELISTPROTO._serialized_start=74269 + _EXTENSIONINSTALLWHITELISTPROTO._serialized_end=74433 + _HTTP09ONNONDEFAULTPORTSENABLEDPROTO._serialized_start=74436 + _HTTP09ONNONDEFAULTPORTSENABLEDPROTO._serialized_end=74575 + _SANDBOXEXTERNALPROTOCOLBLOCKEDPROTO._serialized_start=74578 + _SANDBOXEXTERNALPROTOCOLBLOCKEDPROTO._serialized_end=74717 + _SHAREDCLIPBOARDENABLEDPROTO._serialized_start=74719 + _SHAREDCLIPBOARDENABLEDPROTO._serialized_end=74842 + _CLOUDMANAGEMENTENROLLMENTMANDATORYPROTO._serialized_start=74845 + _CLOUDMANAGEMENTENROLLMENTMANDATORYPROTO._serialized_end=74992 + _ENABLECOMMONNAMEFALLBACKFORLOCALANCHORSPROTO._serialized_start=74995 + _ENABLECOMMONNAMEFALLBACKFORLOCALANCHORSPROTO._serialized_end=75152 + _FORCELEGACYDEFAULTREFERRERPOLICYPROTO._serialized_start=75155 + _FORCELEGACYDEFAULTREFERRERPOLICYPROTO._serialized_end=75298 + _NEWBASEURLINHERITANCEBEHAVIORALLOWEDPROTO._serialized_start=75301 + _NEWBASEURLINHERITANCEBEHAVIORALLOWEDPROTO._serialized_end=75452 + _USERAVATARIMAGEPROTO._serialized_start=75454 + _USERAVATARIMAGEPROTO._serialized_end=75563 + _URLKEYEDANONYMIZEDDATACOLLECTIONENABLEDPROTO._serialized_start=75566 + _URLKEYEDANONYMIZEDDATACOLLECTIONENABLEDPROTO._serialized_end=75723 + _SUGGESTLOGOUTAFTERCLOSINGLASTWINDOWPROTO._serialized_start=75726 + _SUGGESTLOGOUTAFTERCLOSINGLASTWINDOWPROTO._serialized_end=75875 + _ALLOWEDDOMAINSFORAPPSPROTO._serialized_start=75877 + _ALLOWEDDOMAINSFORAPPSPROTO._serialized_end=75998 + _URLBLACKLISTPROTO._serialized_start=76001 + _URLBLACKLISTPROTO._serialized_end=76139 + _AUTOFILLCREDITCARDENABLEDPROTO._serialized_start=76142 + _AUTOFILLCREDITCARDENABLEDPROTO._serialized_end=76271 + _PROXYSETTINGSPROTO._serialized_start=76273 + _PROXYSETTINGSPROTO._serialized_end=76378 + _ISOLATEORIGINSPROTO._serialized_start=76380 + _ISOLATEORIGINSPROTO._serialized_end=76487 + _STRICTMIMETYPECHECKFORWORKERSCRIPTSENABLEDPROTO._serialized_start=76490 + _STRICTMIMETYPECHECKFORWORKERSCRIPTSENABLEDPROTO._serialized_end=76653 + _RESTRICTSIGNINTOPATTERNPROTO._serialized_start=76655 + _RESTRICTSIGNINTOPATTERNPROTO._serialized_end=76780 + _SHAREDARRAYBUFFERUNRESTRICTEDACCESSALLOWEDPROTO._serialized_start=76783 + _SHAREDARRAYBUFFERUNRESTRICTEDACCESSALLOWEDPROTO._serialized_end=76946 + _FULLRESTOREENABLEDPROTO._serialized_start=76948 + _FULLRESTOREENABLEDPROTO._serialized_end=77063 + _DESKTEMPLATESENABLEDPROTO._serialized_start=77065 + _DESKTEMPLATESENABLEDPROTO._serialized_end=77184 + _PROMPTFORDOWNLOADLOCATIONPROTO._serialized_start=77187 + _PROMPTFORDOWNLOADLOCATIONPROTO._serialized_end=77316 + _ONPRINTENTERPRISECONNECTORPROTO._serialized_start=77319 + _ONPRINTENTERPRISECONNECTORPROTO._serialized_end=77450 + _AUDIOCAPTUREALLOWEDPROTO._serialized_start=77452 + _AUDIOCAPTUREALLOWEDPROTO._serialized_end=77569 + _INCOGNITOMODEAVAILABILITYPROTO._serialized_start=77572 + _INCOGNITOMODEAVAILABILITYPROTO._serialized_end=77701 + _DESKAPITHIRDPARTYACCESSENABLEDPROTO._serialized_start=77704 + _DESKAPITHIRDPARTYACCESSENABLEDPROTO._serialized_end=77843 + _SSLERROROVERRIDEALLOWEDFORORIGINSPROTO._serialized_start=77846 + _SSLERROROVERRIDEALLOWEDFORORIGINSPROTO._serialized_end=78026 + _SITEPERPROCESSPROTO._serialized_start=78028 + _SITEPERPROCESSPROTO._serialized_end=78135 + _GAIALOCKSCREENOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_start=78138 + _GAIALOCKSCREENOFFLINESIGNINTIMELIMITDAYSPROTO._serialized_end=78297 + _FLOATINGWORKSPACEENABLEDPROTO._serialized_start=78299 + _FLOATINGWORKSPACEENABLEDPROTO._serialized_end=78426 + _WEBRTCUDPPORTRANGEPROTO._serialized_start=78428 + _WEBRTCUDPPORTRANGEPROTO._serialized_end=78543 + _REMOTEDEBUGGINGALLOWEDPROTO._serialized_start=78545 + _REMOTEDEBUGGINGALLOWEDPROTO._serialized_end=78668 + _PRINTINGAPIEXTENSIONSWHITELISTPROTO._serialized_start=78671 + _PRINTINGAPIEXTENSIONSWHITELISTPROTO._serialized_end=78845 + _USERDISPLAYNAMEPROTO._serialized_start=78847 + _USERDISPLAYNAMEPROTO._serialized_end=78956 + _REPORTCROSTINIUSAGEENABLEDPROTO._serialized_start=78959 + _REPORTCROSTINIUSAGEENABLEDPROTO._serialized_end=79090 + _ONFILEATTACHEDENTERPRISECONNECTORPROTO._serialized_start=79093 + _ONFILEATTACHEDENTERPRISECONNECTORPROTO._serialized_end=79238 + _CACERTIFICATEMANAGEMENTALLOWEDPROTO._serialized_start=79241 + _CACERTIFICATEMANAGEMENTALLOWEDPROTO._serialized_end=79380 + _EXTERNALPRINTSERVERSWHITELISTPROTO._serialized_start=79383 + _EXTERNALPRINTSERVERSWHITELISTPROTO._serialized_end=79555 + _AMBIENTAUTHENTICATIONINPRIVATEMODESENABLEDPROTO._serialized_start=79558 + _AMBIENTAUTHENTICATIONINPRIVATEMODESENABLEDPROTO._serialized_end=79721 + _FORCEYOUTUBERESTRICTPROTO._serialized_start=79723 + _FORCEYOUTUBERESTRICTPROTO._serialized_end=79842 + _COPYPREVENTIONSETTINGSPROTO._serialized_start=79844 + _COPYPREVENTIONSETTINGSPROTO._serialized_end=79967 + _QUICALLOWEDPROTO._serialized_start=79969 + _QUICALLOWEDPROTO._serialized_end=80070 + _EMOJISUGGESTIONENABLEDPROTO._serialized_start=80072 + _EMOJISUGGESTIONENABLEDPROTO._serialized_end=80195 + _DEVICELOCALACCOUNTMANAGEDSESSIONENABLEDPROTO._serialized_start=80198 + _DEVICELOCALACCOUNTMANAGEDSESSIONENABLEDPROTO._serialized_end=80355 + _NTPMIDDLESLOTANNOUNCEMENTVISIBLEPROTO._serialized_start=80358 + _NTPMIDDLESLOTANNOUNCEMENTVISIBLEPROTO._serialized_end=80501 + _ALLOWOUTDATEDPLUGINSPROTO._serialized_start=80503 + _ALLOWOUTDATEDPLUGINSPROTO._serialized_end=80622 + _SPELLCHECKENABLEDPROTO._serialized_start=80624 + _SPELLCHECKENABLEDPROTO._serialized_end=80737 + _EXTENSIONINSTALLEVENTLOGGINGENABLEDPROTO._serialized_start=80740 + _EXTENSIONINSTALLEVENTLOGGINGENABLEDPROTO._serialized_end=80889 + _BROWSINGDATALIFETIMEPROTO._serialized_start=80891 + _BROWSINGDATALIFETIMEPROTO._serialized_end=81010 + _CAPTIVEPORTALAUTHENTICATIONIGNORESPROXYPROTO._serialized_start=81013 + _CAPTIVEPORTALAUTHENTICATIONIGNORESPROXYPROTO._serialized_end=81170 + _NTPCUSTOMBACKGROUNDENABLEDPROTO._serialized_start=81173 + _NTPCUSTOMBACKGROUNDENABLEDPROTO._serialized_end=81304 + _SMARTLOCKSIGNINALLOWEDPROTO._serialized_start=81306 + _SMARTLOCKSIGNINALLOWEDPROTO._serialized_end=81429 + _DEVELOPERTOOLSDISABLEDPROTO._serialized_start=81431 + _DEVELOPERTOOLSDISABLEDPROTO._serialized_end=81554 + _WPADQUICKCHECKENABLEDPROTO._serialized_start=81556 + _WPADQUICKCHECKENABLEDPROTO._serialized_end=81677 + _BATTERYSAVERMODEAVAILABILITYPROTO._serialized_start=81680 + _BATTERYSAVERMODEAVAILABILITYPROTO._serialized_end=81815 + _USERAGENTREDUCTIONPROTO._serialized_start=81817 + _USERAGENTREDUCTIONPROTO._serialized_end=81932 + _HIDEWEBSTOREICONPROTO._serialized_start=81934 + _HIDEWEBSTOREICONPROTO._serialized_end=82045 + _INSIGHTSEXTENSIONENABLEDPROTO._serialized_start=82047 + _INSIGHTSEXTENSIONENABLEDPROTO._serialized_end=82174 + _AUTOPLAYWHITELISTPROTO._serialized_start=82177 + _AUTOPLAYWHITELISTPROTO._serialized_end=82325 + _SSLVERSIONMINPROTO._serialized_start=82327 + _SSLVERSIONMINPROTO._serialized_end=82432 + _SESSIONLOCALESPROTO._serialized_start=82435 + _SESSIONLOCALESPROTO._serialized_end=82577 + _RESTRICTACCOUNTSTOPATTERNSPROTO._serialized_start=82580 + _RESTRICTACCOUNTSTOPATTERNSPROTO._serialized_end=82746 + _MAXINVALIDATIONFETCHDELAYPROTO._serialized_start=82749 + _MAXINVALIDATIONFETCHDELAYPROTO._serialized_end=82878 + _DESKAPITHIRDPARTYALLOWLISTPROTO._serialized_start=82881 + _DESKAPITHIRDPARTYALLOWLISTPROTO._serialized_end=83047 + _VIRTUALKEYBOARDRESIZESLAYOUTBYDEFAULTPROTO._serialized_start=83050 + _VIRTUALKEYBOARDRESIZESLAYOUTBYDEFAULTPROTO._serialized_end=83203 + _WEBSQLACCESSPROTO._serialized_start=83205 + _WEBSQLACCESSPROTO._serialized_end=83308 + _OVERRIDESECURITYRESTRICTIONSONINSECUREORIGINPROTO._serialized_start=83311 + _OVERRIDESECURITYRESTRICTIONSONINSECUREORIGINPROTO._serialized_end=83513 + _ADSSETTINGFORINTRUSIVEADSSITESPROTO._serialized_start=83516 + _ADSSETTINGFORINTRUSIVEADSSITESPROTO._serialized_end=83655 + _OPENNETWORKCONFIGURATIONPROTO._serialized_start=83657 + _OPENNETWORKCONFIGURATIONPROTO._serialized_end=83784 + _DNSOVERHTTPSTEMPLATESPROTO._serialized_start=83786 + _DNSOVERHTTPSTEMPLATESPROTO._serialized_end=83907 + _DISABLEDPLUGINSEXCEPTIONSPROTO._serialized_start=83910 + _DISABLEDPLUGINSEXCEPTIONSPROTO._serialized_end=84074 + _USELEGACYFORMCONTROLSPROTO._serialized_start=84076 + _USELEGACYFORMCONTROLSPROTO._serialized_end=84197 + _DISABLESAFEBROWSINGPROCEEDANYWAYPROTO._serialized_start=84200 + _DISABLESAFEBROWSINGPROCEEDANYWAYPROTO._serialized_end=84343 + _FORCEDLANGUAGESPROTO._serialized_start=84346 + _FORCEDLANGUAGESPROTO._serialized_end=84490 + _DEFAULTBROWSERSETTINGENABLEDPROTO._serialized_start=84493 + _DEFAULTBROWSERSETTINGENABLEDPROTO._serialized_end=84628 + _LOGINDISPLAYPASSWORDBUTTONENABLEDPROTO._serialized_start=84631 + _LOGINDISPLAYPASSWORDBUTTONENABLEDPROTO._serialized_end=84776 + _ALLOWDELETINGBROWSERHISTORYPROTO._serialized_start=84779 + _ALLOWDELETINGBROWSERHISTORYPROTO._serialized_end=84912 + _SPELLCHECKLANGUAGEBLACKLISTPROTO._serialized_start=84915 + _SPELLCHECKLANGUAGEBLACKLISTPROTO._serialized_end=85083 + _TOUCHVIRTUALKEYBOARDENABLEDPROTO._serialized_start=85086 + _TOUCHVIRTUALKEYBOARDENABLEDPROTO._serialized_end=85219 + _INSECUREPRIVATENETWORKREQUESTSALLOWEDFORURLSPROTO._serialized_start=85222 + _INSECUREPRIVATENETWORKREQUESTSALLOWEDFORURLSPROTO._serialized_end=85424 + _AUTHSERVERWHITELISTPROTO._serialized_start=85426 + _AUTHSERVERWHITELISTPROTO._serialized_end=85543 + _AUTOOPENALLOWEDFORURLSPROTO._serialized_start=85546 + _AUTOOPENALLOWEDFORURLSPROTO._serialized_end=85704 + _AUTOOPENFILETYPESPROTO._serialized_start=85707 + _AUTOOPENFILETYPESPROTO._serialized_end=85855 + _ENABLEDEPRECATEDWEBPLATFORMFEATURESPROTO._serialized_start=85858 + _ENABLEDEPRECATEDWEBPLATFORMFEATURESPROTO._serialized_end=86042 + _VMMANAGEMENTCLIALLOWEDPROTO._serialized_start=86044 + _VMMANAGEMENTCLIALLOWEDPROTO._serialized_end=86167 + _STARTUPBROWSERWINDOWLAUNCHSUPPRESSEDPROTO._serialized_start=86170 + _STARTUPBROWSERWINDOWLAUNCHSUPPRESSEDPROTO._serialized_end=86321 + _PHONEHUBCAMERAROLLALLOWEDPROTO._serialized_start=86324 + _PHONEHUBCAMERAROLLALLOWEDPROTO._serialized_end=86453 + _SIGNININTERCEPTIONENABLEDPROTO._serialized_start=86456 + _SIGNININTERCEPTIONENABLEDPROTO._serialized_end=86585 + _MEDIARECOMMENDATIONSENABLEDPROTO._serialized_start=86588 + _MEDIARECOMMENDATIONSENABLEDPROTO._serialized_end=86721 + _LOCKSCREENMEDIAPLAYBACKENABLEDPROTO._serialized_start=86724 + _LOCKSCREENMEDIAPLAYBACKENABLEDPROTO._serialized_end=86863 + _LACROSAVAILABILITYPROTO._serialized_start=86865 + _LACROSAVAILABILITYPROTO._serialized_end=86980 + _NETWORKSERVICESANDBOXENABLEDPROTO._serialized_start=86983 + _NETWORKSERVICESANDBOXENABLEDPROTO._serialized_end=87118 + _PHONEHUBALLOWEDPROTO._serialized_start=87120 + _PHONEHUBALLOWEDPROTO._serialized_end=87229 + _GHOSTWINDOWENABLEDPROTO._serialized_start=87231 + _GHOSTWINDOWENABLEDPROTO._serialized_end=87346 + _SAFEBROWSINGWHITELISTDOMAINSPROTO._serialized_start=87349 + _SAFEBROWSINGWHITELISTDOMAINSPROTO._serialized_end=87519 + _MEDIACACHESIZEPROTO._serialized_start=87521 + _MEDIACACHESIZEPROTO._serialized_end=87628 + _AUTOFILLENABLEDPROTO._serialized_start=87630 + _AUTOFILLENABLEDPROTO._serialized_end=87739 + _WEBRTCLOCALIPSALLOWEDURLSPROTO._serialized_start=87742 + _WEBRTCLOCALIPSALLOWEDURLSPROTO._serialized_end=87906 + _HIDEWEBSTOREPROMOPROTO._serialized_start=87908 + _HIDEWEBSTOREPROMOPROTO._serialized_end=88021 + _ONSECURITYEVENTENTERPRISECONNECTORPROTO._serialized_start=88024 + _ONSECURITYEVENTENTERPRISECONNECTORPROTO._serialized_end=88171 + _BUILTINDNSCLIENTENABLEDPROTO._serialized_start=88173 + _BUILTINDNSCLIENTENABLEDPROTO._serialized_end=88298 + _AUDIOPROCESSHIGHPRIORITYENABLEDPROTO._serialized_start=88301 + _AUDIOPROCESSHIGHPRIORITYENABLEDPROTO._serialized_end=88442 + _DISABLEPLUGINFINDERPROTO._serialized_start=88444 + _DISABLEPLUGINFINDERPROTO._serialized_end=88561 + _HISTORYCLUSTERSVISIBLEPROTO._serialized_start=88563 + _HISTORYCLUSTERSVISIBLEPROTO._serialized_end=88686 + _SMSMESSAGESALLOWEDPROTO._serialized_start=88688 + _SMSMESSAGESALLOWEDPROTO._serialized_end=88803 + _URLBLOCKLISTPROTO._serialized_start=88806 + _URLBLOCKLISTPROTO._serialized_end=88944 + _CONTEXTUALSUGGESTIONSENABLEDPROTO._serialized_start=88947 + _CONTEXTUALSUGGESTIONSENABLEDPROTO._serialized_end=89082 + _CHROMEOSLOCKONIDLESUSPENDPROTO._serialized_start=89085 + _CHROMEOSLOCKONIDLESUSPENDPROTO._serialized_end=89214 + _SYSTEMFEATURESDISABLEMODEPROTO._serialized_start=89217 + _SYSTEMFEATURESDISABLEMODEPROTO._serialized_end=89346 + _TERMSOFSERVICEURLPROTO._serialized_start=89348 + _TERMSOFSERVICEURLPROTO._serialized_end=89461 + _DNSOVERHTTPSMODEPROTO._serialized_start=89463 + _DNSOVERHTTPSMODEPROTO._serialized_end=89574 + _FORCEBROWSERSIGNINPROTO._serialized_start=89576 + _FORCEBROWSERSIGNINPROTO._serialized_end=89691 + _BROWSERSIGNINPROTO._serialized_start=89693 + _BROWSERSIGNINPROTO._serialized_end=89798 + _ENABLESHA1FORLOCALANCHORSPROTO._serialized_start=89801 + _ENABLESHA1FORLOCALANCHORSPROTO._serialized_end=89930 + _TOTALMEMORYLIMITMBPROTO._serialized_start=89932 + _TOTALMEMORYLIMITMBPROTO._serialized_end=90047 + _IMPORTAUTOFILLFORMDATAPROTO._serialized_start=90049 + _IMPORTAUTOFILLFORMDATAPROTO._serialized_end=90172 + _AUTOFILLADDRESSENABLEDPROTO._serialized_start=90174 + _AUTOFILLADDRESSENABLEDPROTO._serialized_end=90297 + _POLICYLISTMULTIPLESOURCEMERGELISTPROTO._serialized_start=90300 + _POLICYLISTMULTIPLESOURCEMERGELISTPROTO._serialized_end=90480 + _DEFAULTSEARCHPROVIDERCONTEXTMENUACCESSALLOWEDPROTO._serialized_start=90483 + _DEFAULTSEARCHPROVIDERCONTEXTMENUACCESSALLOWEDPROTO._serialized_end=90652 + _ENTERPRISEWEBSTOREURLPROTO._serialized_start=90654 + _ENTERPRISEWEBSTOREURLPROTO._serialized_end=90775 + _URLALLOWLISTPROTO._serialized_start=90778 + _URLALLOWLISTPROTO._serialized_end=90916 + _NATIVEPRINTERSBULKBLACKLISTPROTO._serialized_start=90919 + _NATIVEPRINTERSBULKBLACKLISTPROTO._serialized_end=91087 + _SCREENTIMEENABLEDPROTO._serialized_start=91089 + _SCREENTIMEENABLEDPROTO._serialized_end=91202 + _RENDERERCODEINTEGRITYENABLEDPROTO._serialized_start=91205 + _RENDERERCODEINTEGRITYENABLEDPROTO._serialized_end=91340 + _WARNBEFOREQUITTINGENABLEDPROTO._serialized_start=91343 + _WARNBEFOREQUITTINGENABLEDPROTO._serialized_end=91472 + _TARGETBLANKIMPLIESNOOPENERPROTO._serialized_start=91475 + _TARGETBLANKIMPLIESNOOPENERPROTO._serialized_end=91606 + _AUTOPLAYALLOWEDPROTO._serialized_start=91608 + _AUTOPLAYALLOWEDPROTO._serialized_end=91717 + _COMMANDLINEFLAGSECURITYWARNINGSENABLEDPROTO._serialized_start=91720 + _COMMANDLINEFLAGSECURITYWARNINGSENABLEDPROTO._serialized_end=91875 + _CHROMEROOTSTOREENABLEDPROTO._serialized_start=91877 + _CHROMEROOTSTOREENABLEDPROTO._serialized_end=92000 + _POLICYREFRESHRATEPROTO._serialized_start=92002 + _POLICYREFRESHRATEPROTO._serialized_end=92115 + _WEBSQLINTHIRDPARTYCONTEXTENABLEDPROTO._serialized_start=92118 + _WEBSQLINTHIRDPARTYCONTEXTENABLEDPROTO._serialized_end=92261 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORCASPROTO._serialized_start=92264 + _CERTIFICATETRANSPARENCYENFORCEMENTDISABLEDFORCASPROTO._serialized_end=92474 + _NATIVEMESSAGINGBLACKLISTPROTO._serialized_start=92477 + _NATIVEMESSAGINGBLACKLISTPROTO._serialized_end=92639 + _FULLSCREENALERTENABLEDPROTO._serialized_start=92641 + _FULLSCREENALERTENABLEDPROTO._serialized_end=92764 + _LACROSSECONDARYPROFILESALLOWEDPROTO._serialized_start=92767 + _LACROSSECONDARYPROFILESALLOWEDPROTO._serialized_end=92906 + _CLOUDUSERPOLICYMERGEPROTO._serialized_start=92908 + _CLOUDUSERPOLICYMERGEPROTO._serialized_end=93027 + _JAVASCRIPTENABLEDPROTO._serialized_start=93029 + _JAVASCRIPTENABLEDPROTO._serialized_end=93142 + _ALLOWSYSTEMNOTIFICATIONSPROTO._serialized_start=93144 + _ALLOWSYSTEMNOTIFICATIONSPROTO._serialized_end=93271 + _POLICYDICTIONARYMULTIPLESOURCEMERGELISTPROTO._serialized_start=93274 + _POLICYDICTIONARYMULTIPLESOURCEMERGELISTPROTO._serialized_end=93466 + _ALLOWWEBAUTHNWITHBROKENTLSCERTSPROTO._serialized_start=93469 + _ALLOWWEBAUTHNWITHBROKENTLSCERTSPROTO._serialized_end=93610 + _FORCESAFESEARCHPROTO._serialized_start=93612 + _FORCESAFESEARCHPROTO._serialized_end=93721 + _ENTERPRISEHARDWAREPLATFORMAPIENABLEDPROTO._serialized_start=93724 + _ENTERPRISEHARDWAREPLATFORMAPIENABLEDPROTO._serialized_end=93875 + _SHOWAPPSSHORTCUTINBOOKMARKBARPROTO._serialized_start=93878 + _SHOWAPPSSHORTCUTINBOOKMARKBARPROTO._serialized_end=94015 + _MANAGEDCONFIGURATIONPERORIGINPROTO._serialized_start=94018 + _MANAGEDCONFIGURATIONPERORIGINPROTO._serialized_end=94155 + _SIGNINALLOWEDPROTO._serialized_start=94157 + _SIGNINALLOWEDPROTO._serialized_end=94262 + _TOSDIALOGBEHAVIORPROTO._serialized_start=94264 + _TOSDIALOGBEHAVIORPROTO._serialized_end=94377 + _STRICTERMIXEDCONTENTTREATMENTENABLEDPROTO._serialized_start=94380 + _STRICTERMIXEDCONTENTTREATMENTENABLEDPROTO._serialized_end=94531 + _DEVICEATTRIBUTESALLOWEDFORORIGINSPROTO._serialized_start=94534 + _DEVICEATTRIBUTESALLOWEDFORORIGINSPROTO._serialized_end=94714 + _FORCENETWORKINPROCESSPROTO._serialized_start=94716 + _FORCENETWORKINPROCESSPROTO._serialized_end=94837 + _TLS13HARDENINGFORLOCALANCHORSENABLEDPROTO._serialized_start=94840 + _TLS13HARDENINGFORLOCALANCHORSENABLEDPROTO._serialized_end=94991 + _SAFEBROWSINGFORTRUSTEDSOURCESENABLEDPROTO._serialized_start=94994 + _SAFEBROWSINGFORTRUSTEDSOURCESENABLEDPROTO._serialized_end=95145 + _SECURITYKEYPERMITATTESTATIONPROTO._serialized_start=95148 + _SECURITYKEYPERMITATTESTATIONPROTO._serialized_end=95318 + _TABFREEZINGENABLEDPROTO._serialized_start=95320 + _TABFREEZINGENABLEDPROTO._serialized_end=95435 + _IMPORTBOOKMARKSPROTO._serialized_start=95437 + _IMPORTBOOKMARKSPROTO._serialized_end=95546 + _ONFILETRANSFERENTERPRISECONNECTORPROTO._serialized_start=95549 + _ONFILETRANSFERENTERPRISECONNECTORPROTO._serialized_end=95694 + _GLOBALLYSCOPEHTTPAUTHCACHEENABLEDPROTO._serialized_start=95697 + _GLOBALLYSCOPEHTTPAUTHCACHEENABLEDPROTO._serialized_end=95842 + _FASTPAIRENABLEDPROTO._serialized_start=95844 + _FASTPAIRENABLEDPROTO._serialized_end=95953 + _ALLOWCHROMEDATAINBACKUPSPROTO._serialized_start=95955 + _ALLOWCHROMEDATAINBACKUPSPROTO._serialized_end=96082 + _ORIGINAGENTCLUSTERDEFAULTENABLEDPROTO._serialized_start=96085 + _ORIGINAGENTCLUSTERDEFAULTENABLEDPROTO._serialized_end=96228 + _DEFAULTDOWNLOADDIRECTORYPROTO._serialized_start=96230 + _DEFAULTDOWNLOADDIRECTORYPROTO._serialized_end=96357 + _SYSTEMFEATURESDISABLELISTPROTO._serialized_start=96360 + _SYSTEMFEATURESDISABLELISTPROTO._serialized_end=96524 + _MANAGEDGUESTSESSIONAUTOLAUNCHNOTIFICATIONREDUCEDPROTO._serialized_start=96527 + _MANAGEDGUESTSESSIONAUTOLAUNCHNOTIFICATIONREDUCEDPROTO._serialized_end=96702 + _LENSDESKTOPNTPSEARCHENABLEDPROTO._serialized_start=96705 + _LENSDESKTOPNTPSEARCHENABLEDPROTO._serialized_end=96838 + _USERAGENTCLIENTHINTSGREASEUPDATEENABLEDPROTO._serialized_start=96841 + _USERAGENTCLIENTHINTSGREASEUPDATEENABLEDPROTO._serialized_end=96998 + _ONFILEDOWNLOADEDENTERPRISECONNECTORPROTO._serialized_start=97001 + _ONFILEDOWNLOADEDENTERPRISECONNECTORPROTO._serialized_end=97150 + _SSLVERSIONFALLBACKMINPROTO._serialized_start=97152 + _SSLVERSIONFALLBACKMINPROTO._serialized_end=97273 + _ENABLEDEPRECATEDWEBBASEDSIGNINPROTO._serialized_start=97276 + _ENABLEDEPRECATEDWEBBASEDSIGNINPROTO._serialized_end=97415 + _VARIATIONSRESTRICTPARAMETERPROTO._serialized_start=97418 + _VARIATIONSRESTRICTPARAMETERPROTO._serialized_end=97551 + _USBDETECTORNOTIFICATIONENABLEDPROTO._serialized_start=97554 + _USBDETECTORNOTIFICATIONENABLEDPROTO._serialized_end=97693 + _CROSSORIGINWEBASSEMBLYMODULESHARINGENABLEDPROTO._serialized_start=97696 + _CROSSORIGINWEBASSEMBLYMODULESHARINGENABLEDPROTO._serialized_end=97859 + _CLOUDMANAGEMENTENROLLMENTTOKENPROTO._serialized_start=97862 + _CLOUDMANAGEMENTENROLLMENTTOKENPROTO._serialized_end=98001 + _METRICSREPORTINGENABLEDPROTO._serialized_start=98003 + _METRICSREPORTINGENABLEDPROTO._serialized_end=98128 + _SHOPPINGLISTENABLEDPROTO._serialized_start=98130 + _SHOPPINGLISTENABLEDPROTO._serialized_end=98247 + _URLPARAMFILTERENABLEDPROTO._serialized_start=98249 + _URLPARAMFILTERENABLEDPROTO._serialized_end=98370 + _ONBULKDATAENTRYENTERPRISECONNECTORPROTO._serialized_start=98373 + _ONBULKDATAENTRYENTERPRISECONNECTORPROTO._serialized_end=98520 + _PHONEHUBTASKCONTINUATIONALLOWEDPROTO._serialized_start=98523 + _PHONEHUBTASKCONTINUATIONALLOWEDPROTO._serialized_end=98664 + _ENTERPRISEWEBSTORENAMEPROTO._serialized_start=98666 + _ENTERPRISEWEBSTORENAMEPROTO._serialized_end=98789 + _COALESCEH2CONNECTIONSWITHCLIENTCERTIFICATESFORHOSTSPROTO._serialized_start=98792 + _COALESCEH2CONNECTIONSWITHCLIENTCERTIFICATESFORHOSTSPROTO._serialized_end=99008 + _PRECONFIGUREDDESKTEMPLATESPROTO._serialized_start=99011 + _PRECONFIGUREDDESKTEMPLATESPROTO._serialized_end=99142 + _TRIPLEDESENABLEDPROTO._serialized_start=99144 + _TRIPLEDESENABLEDPROTO._serialized_end=99255 + _SUPPRESSUNSUPPORTEDOSWARNINGPROTO._serialized_start=99258 + _SUPPRESSUNSUPPORTEDOSWARNINGPROTO._serialized_end=99393 + _MANAGEDBOOKMARKSPROTO._serialized_start=99395 + _MANAGEDBOOKMARKSPROTO._serialized_end=99506 + _BUILTINCERTIFICATEVERIFIERENABLEDPROTO._serialized_start=99509 + _BUILTINCERTIFICATEVERIFIERENABLEDPROTO._serialized_end=99654 + _FULLSCREENALLOWEDPROTO._serialized_start=99656 + _FULLSCREENALLOWEDPROTO._serialized_end=99769 + _LOCALDISCOVERYENABLEDPROTO._serialized_start=99771 + _LOCALDISCOVERYENABLEDPROTO._serialized_end=99892 + _MACHINELEVELUSERCLOUDPOLICYENROLLMENTTOKENPROTO._serialized_start=99895 + _MACHINELEVELUSERCLOUDPOLICYENROLLMENTTOKENPROTO._serialized_end=100058 + _TRANSLATEENABLEDPROTO._serialized_start=100060 + _TRANSLATEENABLEDPROTO._serialized_end=100171 + _WIFISYNCANDROIDALLOWEDPROTO._serialized_start=100173 + _WIFISYNCANDROIDALLOWEDPROTO._serialized_end=100296 + _NTPCONTENTSUGGESTIONSENABLEDPROTO._serialized_start=100299 + _NTPCONTENTSUGGESTIONSENABLEDPROTO._serialized_end=100434 + _INSTANTTETHERINGALLOWEDPROTO._serialized_start=100436 + _INSTANTTETHERINGALLOWEDPROTO._serialized_end=100561 + _ALLOWSYNCXHRINPAGEDISMISSALPROTO._serialized_start=100564 + _ALLOWSYNCXHRINPAGEDISMISSALPROTO._serialized_end=100697 + _PRIMARYMOUSEBUTTONSWITCHPROTO._serialized_start=100699 + _PRIMARYMOUSEBUTTONSWITCHPROTO._serialized_end=100826 + _RELAUNCHHEADSUPPERIODPROTO._serialized_start=100828 + _RELAUNCHHEADSUPPERIODPROTO._serialized_end=100949 + _BACKGROUNDMODEENABLEDPROTO._serialized_start=100951 + _BACKGROUNDMODEENABLEDPROTO._serialized_end=101072 + _SHOWFULLURLSINADDRESSBARPROTO._serialized_start=101074 + _SHOWFULLURLSINADDRESSBARPROTO._serialized_end=101201 + _FORCEGOOGLESAFESEARCHPROTO._serialized_start=101203 + _FORCEGOOGLESAFESEARCHPROTO._serialized_end=101324 + _NATIVEMESSAGINGWHITELISTPROTO._serialized_start=101327 + _NATIVEMESSAGINGWHITELISTPROTO._serialized_end=101489 + _ENABLEEXPERIMENTALPOLICIESPROTO._serialized_start=101492 + _ENABLEEXPERIMENTALPOLICIESPROTO._serialized_end=101658 + _KEYPERMISSIONSPROTO._serialized_start=101660 + _KEYPERMISSIONSPROTO._serialized_end=101767 + _UNTHROTTLEDNESTEDTIMEOUTENABLEDPROTO._serialized_start=101770 + _UNTHROTTLEDNESTEDTIMEOUTENABLEDPROTO._serialized_end=101911 + _WEBAPPINSTALLFORCELISTPROTO._serialized_start=101913 + _WEBAPPINSTALLFORCELISTPROTO._serialized_end=102036 + _ALWAYSOPENPDFEXTERNALLYPROTO._serialized_start=102038 + _ALWAYSOPENPDFEXTERNALLYPROTO._serialized_end=102163 + _ALLOWEDLANGUAGESPROTO._serialized_start=102166 + _ALLOWEDLANGUAGESPROTO._serialized_end=102312 + _AUTOPLAYALLOWLISTPROTO._serialized_start=102315 + _AUTOPLAYALLOWLISTPROTO._serialized_end=102463 + _SENDMOUSEEVENTSDISABLEDFORMCONTROLSENABLEDPROTO._serialized_start=102466 + _SENDMOUSEEVENTSDISABLEDFORMCONTROLSENABLEDPROTO._serialized_end=102629 + _TABDISCARDINGEXCEPTIONSPROTO._serialized_start=102632 + _TABDISCARDINGEXCEPTIONSPROTO._serialized_end=102792 + _THROTTLENONVISIBLECROSSORIGINIFRAMESALLOWEDPROTO._serialized_start=102795 + _THROTTLENONVISIBLECROSSORIGINIFRAMESALLOWEDPROTO._serialized_end=102960 + _WINDOWOCCLUSIONENABLEDPROTO._serialized_start=102962 + _WINDOWOCCLUSIONENABLEDPROTO._serialized_end=103085 + _RUNALLFLASHINALLOWMODEPROTO._serialized_start=103087 + _RUNALLFLASHINALLOWMODEPROTO._serialized_end=103210 + _EVENTPATHENABLEDPROTO._serialized_start=103212 + _EVENTPATHENABLEDPROTO._serialized_end=103323 + _DHEENABLEDPROTO._serialized_start=103325 + _DHEENABLEDPROTO._serialized_end=103424 + _PDFANNOTATIONSENABLEDPROTO._serialized_start=103426 + _PDFANNOTATIONSENABLEDPROTO._serialized_end=103547 + _HEADLESSMODEPROTO._serialized_start=103549 + _HEADLESSMODEPROTO._serialized_end=103652 + _LOADCRYPTOTOKENEXTENSIONPROTO._serialized_start=103654 + _LOADCRYPTOTOKENEXTENSIONPROTO._serialized_end=103781 + _ENABLESYNCCONSENTPROTO._serialized_start=103783 + _ENABLESYNCCONSENTPROTO._serialized_end=103896 + _BROWSERGUESTMODEENABLEDPROTO._serialized_start=103898 + _BROWSERGUESTMODEENABLEDPROTO._serialized_end=104023 + _DISABLESSLRECORDSPLITTINGPROTO._serialized_start=104026 + _DISABLESSLRECORDSPLITTINGPROTO._serialized_end=104155 + _CLOUDUSERPOLICYOVERRIDESCLOUDMACHINEPOLICYPROTO._serialized_start=104158 + _CLOUDUSERPOLICYOVERRIDESCLOUDMACHINEPOLICYPROTO._serialized_end=104321 + _SAFESITESFILTERBEHAVIORPROTO._serialized_start=104323 + _SAFESITESFILTERBEHAVIORPROTO._serialized_end=104448 + _USERDATASNAPSHOTRETENTIONLIMITPROTO._serialized_start=104451 + _USERDATASNAPSHOTRETENTIONLIMITPROTO._serialized_end=104590 + _U2FSECURITYKEYAPIENABLEDPROTO._serialized_start=104592 + _U2FSECURITYKEYAPIENABLEDPROTO._serialized_end=104719 + _CLIENTCERTIFICATEMANAGEMENTALLOWEDPROTO._serialized_start=104722 + _CLIENTCERTIFICATEMANAGEMENTALLOWEDPROTO._serialized_end=104869 + _AUDIOOUTPUTALLOWEDPROTO._serialized_start=104871 + _AUDIOOUTPUTALLOWEDPROTO._serialized_end=104986 + _ALLOWEDINPUTMETHODSPROTO._serialized_start=104989 + _ALLOWEDINPUTMETHODSPROTO._serialized_end=105141 + _FETCHKEEPALIVEDURATIONSECONDSONSHUTDOWNPROTO._serialized_start=105144 + _FETCHKEEPALIVEDURATIONSECONDSONSHUTDOWNPROTO._serialized_end=105301 + _RELAUNCHNOTIFICATIONPERIODPROTO._serialized_start=105304 + _RELAUNCHNOTIFICATIONPERIODPROTO._serialized_end=105435 + _CHROMECLEANUPENABLEDPROTO._serialized_start=105437 + _CHROMECLEANUPENABLEDPROTO._serialized_end=105556 + _WEBRTCIPHANDLINGPROTO._serialized_start=105558 + _WEBRTCIPHANDLINGPROTO._serialized_end=105669 + _NETWORKPREDICTIONOPTIONSPROTO._serialized_start=105671 + _NETWORKPREDICTIONOPTIONSPROTO._serialized_end=105798 + _IMPORTSAVEDPASSWORDSPROTO._serialized_start=105800 + _IMPORTSAVEDPASSWORDSPROTO._serialized_end=105919 + _FORCELOGOUTUNAUTHENTICATEDUSERENABLEDPROTO._serialized_start=105922 + _FORCELOGOUTUNAUTHENTICATEDUSERENABLEDPROTO._serialized_end=106075 + _PROMOTIONALTABSENABLEDPROTO._serialized_start=106077 + _PROMOTIONALTABSENABLEDPROTO._serialized_end=106200 + _PROFILEPICKERONSTARTUPAVAILABILITYPROTO._serialized_start=106203 + _PROFILEPICKERONSTARTUPAVAILABILITYPROTO._serialized_end=106350 + _FORCEMAXIMIZEONFIRSTRUNPROTO._serialized_start=106352 + _FORCEMAXIMIZEONFIRSTRUNPROTO._serialized_end=106477 + _NATIVEPRINTERSBULKWHITELISTPROTO._serialized_start=106480 + _NATIVEPRINTERSBULKWHITELISTPROTO._serialized_end=106648 + _ECHEALLOWEDPROTO._serialized_start=106650 + _ECHEALLOWEDPROTO._serialized_end=106751 + _DATALEAKPREVENTIONREPORTINGENABLEDPROTO._serialized_start=106754 + _DATALEAKPREVENTIONREPORTINGENABLEDPROTO._serialized_end=106901 + _ALLOWPOPUPSDURINGPAGEUNLOADPROTO._serialized_start=106904 + _ALLOWPOPUPSDURINGPAGEUNLOADPROTO._serialized_end=107037 + _IMPORTHISTORYPROTO._serialized_start=107039 + _IMPORTHISTORYPROTO._serialized_end=107144 + _SAFEBROWSINGEXTENDEDREPORTINGOPTINALLOWEDPROTO._serialized_start=107147 + _SAFEBROWSINGEXTENDEDREPORTINGOPTINALLOWEDPROTO._serialized_end=107308 + _ISOLATEORIGINSANDROIDPROTO._serialized_start=107310 + _ISOLATEORIGINSANDROIDPROTO._serialized_end=107431 + _CLEARBROWSINGDATAONEXITLISTPROTO._serialized_start=107434 + _CLEARBROWSINGDATAONEXITLISTPROTO._serialized_end=107602 + _ECRYPTFSMIGRATIONSTRATEGYPROTO._serialized_start=107605 + _ECRYPTFSMIGRATIONSTRATEGYPROTO._serialized_end=107734 + _PRIVACYSCREENENABLEDPROTO._serialized_start=107736 + _PRIVACYSCREENENABLEDPROTO._serialized_end=107855 + _ADDITIONALLAUNCHPARAMETERSPROTO._serialized_start=107858 + _ADDITIONALLAUNCHPARAMETERSPROTO._serialized_end=107989 + _SKIPMETADATACHECKPROTO._serialized_start=107991 + _SKIPMETADATACHECKPROTO._serialized_end=108104 + _RENDERINCHROMEFRAMELISTPROTO._serialized_start=108107 + _RENDERINCHROMEFRAMELISTPROTO._serialized_end=108267 + _RENDERINHOSTLISTPROTO._serialized_start=108270 + _RENDERINHOSTLISTPROTO._serialized_end=108416 + _CHROMEFRAMERENDERERSETTINGSPROTO._serialized_start=108419 + _CHROMEFRAMERENDERERSETTINGSPROTO._serialized_end=108552 + _NETBIOSSHAREDISCOVERYENABLEDPROTO._serialized_start=108555 + _NETBIOSSHAREDISCOVERYENABLEDPROTO._serialized_end=108690 + _NETWORKFILESHARESALLOWEDPROTO._serialized_start=108692 + _NETWORKFILESHARESALLOWEDPROTO._serialized_end=108819 + _NETWORKFILESHARESPRECONFIGUREDSHARESPROTO._serialized_start=108822 + _NETWORKFILESHARESPRECONFIGUREDSHARESPROTO._serialized_end=108973 + _NTLMSHAREAUTHENTICATIONENABLEDPROTO._serialized_start=108976 + _NTLMSHAREAUTHENTICATIONENABLEDPROTO._serialized_end=109115 + _SCREENCAPTUREALLOWEDBYORIGINSPROTO._serialized_start=109118 + _SCREENCAPTUREALLOWEDBYORIGINSPROTO._serialized_end=109290 + _TABCAPTUREALLOWEDBYORIGINSPROTO._serialized_start=109293 + _TABCAPTUREALLOWEDBYORIGINSPROTO._serialized_end=109459 + _SCREENCAPTUREALLOWEDPROTO._serialized_start=109461 + _SCREENCAPTUREALLOWEDPROTO._serialized_end=109580 + _WINDOWCAPTUREALLOWEDBYORIGINSPROTO._serialized_start=109583 + _WINDOWCAPTUREALLOWEDBYORIGINSPROTO._serialized_end=109755 + _SAMEORIGINTABCAPTUREALLOWEDBYORIGINSPROTO._serialized_start=109758 + _SAMEORIGINTABCAPTUREALLOWEDBYORIGINSPROTO._serialized_end=109944 + _ARCBACKUPRESTORESERVICEENABLEDPROTO._serialized_start=109947 + _ARCBACKUPRESTORESERVICEENABLEDPROTO._serialized_end=110086 + _ARCENABLEDPROTO._serialized_start=110088 + _ARCENABLEDPROTO._serialized_end=110187 + _ARCCERTIFICATESSYNCMODEPROTO._serialized_start=110189 + _ARCCERTIFICATESSYNCMODEPROTO._serialized_end=110314 + _ARCAPPTOWEBAPPSHARINGENABLEDPROTO._serialized_start=110317 + _ARCAPPTOWEBAPPSHARINGENABLEDPROTO._serialized_end=110452 + _APPRECOMMENDATIONZEROSTATEENABLEDPROTO._serialized_start=110455 + _APPRECOMMENDATIONZEROSTATEENABLEDPROTO._serialized_end=110600 + _ARCLOCATIONSERVICEENABLEDPROTO._serialized_start=110603 + _ARCLOCATIONSERVICEENABLEDPROTO._serialized_end=110732 + _ARCGOOGLELOCATIONSERVICESENABLEDPROTO._serialized_start=110735 + _ARCGOOGLELOCATIONSERVICESENABLEDPROTO._serialized_end=110878 + _ARCAPPINSTALLEVENTLOGGINGENABLEDPROTO._serialized_start=110881 + _ARCAPPINSTALLEVENTLOGGINGENABLEDPROTO._serialized_end=111024 + _ARCBACKUPRESTOREENABLEDPROTO._serialized_start=111026 + _ARCBACKUPRESTOREENABLEDPROTO._serialized_end=111151 + _ARCPOLICYPROTO._serialized_start=111153 + _ARCPOLICYPROTO._serialized_end=111250 + _CHROMESETTINGSSUBPROTO1._serialized_start=111253 + _CHROMESETTINGSSUBPROTO1._serialized_end=111680 + _CHROMESETTINGSPROTO._serialized_start=111684 + _CHROMESETTINGSPROTO._serialized_end=184826 # @@protoc_insertion_point(module_scope)
diff --git a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/policy_common_definitions_full_runtime_pb2.py b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/policy_common_definitions_full_runtime_pb2.py index 56bfd1c..5a8d919 100644 --- a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/policy_common_definitions_full_runtime_pb2.py +++ b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/policy_common_definitions_full_runtime_pb2.py
@@ -2,9 +2,9 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: policy_common_definitions_full_runtime.proto """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -13,324 +13,26 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='policy_common_definitions_full_runtime.proto', - package='enterprise_management', - syntax='proto2', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n,policy_common_definitions_full_runtime.proto\x12\x15\x65nterprise_management\"\x1d\n\nStringList\x12\x0f\n\x07\x65ntries\x18\x01 \x03(\t\"\x92\x01\n\rPolicyOptions\x12H\n\x04mode\x18\x01 \x01(\x0e\x32/.enterprise_management.PolicyOptions.PolicyMode:\tMANDATORY\"7\n\nPolicyMode\x12\r\n\tMANDATORY\x10\x00\x12\x0f\n\x0bRECOMMENDED\x10\x01\x12\t\n\x05UNSET\x10\x02\"a\n\x12\x42ooleanPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\x08\"a\n\x12IntegerPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\x03\"`\n\x11StringPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\t\"\x87\x01\n\x15StringListPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.enterprise_management.StringList' -) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,policy_common_definitions_full_runtime.proto\x12\x15\x65nterprise_management\"\x1d\n\nStringList\x12\x0f\n\x07\x65ntries\x18\x01 \x03(\t\"\x92\x01\n\rPolicyOptions\x12H\n\x04mode\x18\x01 \x01(\x0e\x32/.enterprise_management.PolicyOptions.PolicyMode:\tMANDATORY\"7\n\nPolicyMode\x12\r\n\tMANDATORY\x10\x00\x12\x0f\n\x0bRECOMMENDED\x10\x01\x12\t\n\x05UNSET\x10\x02\"a\n\x12\x42ooleanPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\x08\"a\n\x12IntegerPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\x03\"`\n\x11StringPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\r\n\x05value\x18\x02 \x01(\t\"\x87\x01\n\x15StringListPolicyProto\x12<\n\x0epolicy_options\x18\x01 \x01(\x0b\x32$.enterprise_management.PolicyOptions\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.enterprise_management.StringListB-Z+chromium/policy/enterprise_management_proto') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'policy_common_definitions_full_runtime_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: - -_POLICYOPTIONS_POLICYMODE = _descriptor.EnumDescriptor( - name='PolicyMode', - full_name='enterprise_management.PolicyOptions.PolicyMode', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='MANDATORY', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='RECOMMENDED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='UNSET', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=194, - serialized_end=249, -) -_sym_db.RegisterEnumDescriptor(_POLICYOPTIONS_POLICYMODE) - - -_STRINGLIST = _descriptor.Descriptor( - name='StringList', - full_name='enterprise_management.StringList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='entries', full_name='enterprise_management.StringList.entries', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=71, - serialized_end=100, -) - - -_POLICYOPTIONS = _descriptor.Descriptor( - name='PolicyOptions', - full_name='enterprise_management.PolicyOptions', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='mode', full_name='enterprise_management.PolicyOptions.mode', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=True, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _POLICYOPTIONS_POLICYMODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=103, - serialized_end=249, -) - - -_BOOLEANPOLICYPROTO = _descriptor.Descriptor( - name='BooleanPolicyProto', - full_name='enterprise_management.BooleanPolicyProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.BooleanPolicyProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='enterprise_management.BooleanPolicyProto.value', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=251, - serialized_end=348, -) - - -_INTEGERPOLICYPROTO = _descriptor.Descriptor( - name='IntegerPolicyProto', - full_name='enterprise_management.IntegerPolicyProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.IntegerPolicyProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='enterprise_management.IntegerPolicyProto.value', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=350, - serialized_end=447, -) - - -_STRINGPOLICYPROTO = _descriptor.Descriptor( - name='StringPolicyProto', - full_name='enterprise_management.StringPolicyProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.StringPolicyProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='enterprise_management.StringPolicyProto.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=449, - serialized_end=545, -) - - -_STRINGLISTPOLICYPROTO = _descriptor.Descriptor( - name='StringListPolicyProto', - full_name='enterprise_management.StringListPolicyProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='policy_options', full_name='enterprise_management.StringListPolicyProto.policy_options', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='enterprise_management.StringListPolicyProto.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=548, - serialized_end=683, -) - -_POLICYOPTIONS.fields_by_name['mode'].enum_type = _POLICYOPTIONS_POLICYMODE -_POLICYOPTIONS_POLICYMODE.containing_type = _POLICYOPTIONS -_BOOLEANPOLICYPROTO.fields_by_name['policy_options'].message_type = _POLICYOPTIONS -_INTEGERPOLICYPROTO.fields_by_name['policy_options'].message_type = _POLICYOPTIONS -_STRINGPOLICYPROTO.fields_by_name['policy_options'].message_type = _POLICYOPTIONS -_STRINGLISTPOLICYPROTO.fields_by_name['policy_options'].message_type = _POLICYOPTIONS -_STRINGLISTPOLICYPROTO.fields_by_name['value'].message_type = _STRINGLIST -DESCRIPTOR.message_types_by_name['StringList'] = _STRINGLIST -DESCRIPTOR.message_types_by_name['PolicyOptions'] = _POLICYOPTIONS -DESCRIPTOR.message_types_by_name['BooleanPolicyProto'] = _BOOLEANPOLICYPROTO -DESCRIPTOR.message_types_by_name['IntegerPolicyProto'] = _INTEGERPOLICYPROTO -DESCRIPTOR.message_types_by_name['StringPolicyProto'] = _STRINGPOLICYPROTO -DESCRIPTOR.message_types_by_name['StringListPolicyProto'] = _STRINGLISTPOLICYPROTO -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -StringList = _reflection.GeneratedProtocolMessageType('StringList', (_message.Message,), { - 'DESCRIPTOR' : _STRINGLIST, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.StringList) - }) -_sym_db.RegisterMessage(StringList) - -PolicyOptions = _reflection.GeneratedProtocolMessageType('PolicyOptions', (_message.Message,), { - 'DESCRIPTOR' : _POLICYOPTIONS, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.PolicyOptions) - }) -_sym_db.RegisterMessage(PolicyOptions) - -BooleanPolicyProto = _reflection.GeneratedProtocolMessageType('BooleanPolicyProto', (_message.Message,), { - 'DESCRIPTOR' : _BOOLEANPOLICYPROTO, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.BooleanPolicyProto) - }) -_sym_db.RegisterMessage(BooleanPolicyProto) - -IntegerPolicyProto = _reflection.GeneratedProtocolMessageType('IntegerPolicyProto', (_message.Message,), { - 'DESCRIPTOR' : _INTEGERPOLICYPROTO, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.IntegerPolicyProto) - }) -_sym_db.RegisterMessage(IntegerPolicyProto) - -StringPolicyProto = _reflection.GeneratedProtocolMessageType('StringPolicyProto', (_message.Message,), { - 'DESCRIPTOR' : _STRINGPOLICYPROTO, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.StringPolicyProto) - }) -_sym_db.RegisterMessage(StringPolicyProto) - -StringListPolicyProto = _reflection.GeneratedProtocolMessageType('StringListPolicyProto', (_message.Message,), { - 'DESCRIPTOR' : _STRINGLISTPOLICYPROTO, - '__module__' : 'policy_common_definitions_full_runtime_pb2' - # @@protoc_insertion_point(class_scope:enterprise_management.StringListPolicyProto) - }) -_sym_db.RegisterMessage(StringListPolicyProto) - - + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'Z+chromium/policy/enterprise_management_proto' + _STRINGLIST._serialized_start=71 + _STRINGLIST._serialized_end=100 + _POLICYOPTIONS._serialized_start=103 + _POLICYOPTIONS._serialized_end=249 + _POLICYOPTIONS_POLICYMODE._serialized_start=194 + _POLICYOPTIONS_POLICYMODE._serialized_end=249 + _BOOLEANPOLICYPROTO._serialized_start=251 + _BOOLEANPOLICYPROTO._serialized_end=348 + _INTEGERPOLICYPROTO._serialized_start=350 + _INTEGERPOLICYPROTO._serialized_end=447 + _STRINGPOLICYPROTO._serialized_start=449 + _STRINGPOLICYPROTO._serialized_end=545 + _STRINGLISTPOLICYPROTO._serialized_start=548 + _STRINGLISTPOLICYPROTO._serialized_end=683 # @@protoc_insertion_point(module_scope)
diff --git a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/traffic_annotation_pb2.py b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/traffic_annotation_pb2.py index 3e4e1269..86f368f4 100644 --- a/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/traffic_annotation_pb2.py +++ b/tools/traffic_annotation/scripts/test_data/out/Debug/pyproto/chrome/browser/privacy/traffic_annotation_pb2.py
@@ -2,9 +2,9 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: traffic_annotation.proto """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,495 +14,37 @@ import chrome_settings_full_runtime_pb2 as chrome__settings__full__runtime__pb2 -DESCRIPTOR = _descriptor.FileDescriptor( - name='traffic_annotation.proto', - package='traffic_annotation', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x18traffic_annotation.proto\x12\x12traffic_annotation\x1a\"chrome_settings_full_runtime.proto\"\xda\x07\n\x18NetworkTrafficAnnotation\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12J\n\x06source\x18\x02 \x01(\x0b\x32:.traffic_annotation.NetworkTrafficAnnotation.TrafficSource\x12P\n\tsemantics\x18\x03 \x01(\x0b\x32=.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics\x12J\n\x06policy\x18\x04 \x01(\x0b\x32:.traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy\x12\x10\n\x08\x63omments\x18\x05 \x01(\t\x1a@\n\rTrafficSource\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x0c\n\x04line\x18\x03 \x01(\x05\x12\x13\n\x0b\x63\x61ll_number\x18\x04 \x01(\x05\x1a\xaf\x02\n\x10TrafficSemantics\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07trigger\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t\x12^\n\x0b\x64\x65stination\x18\x05 \x01(\x0e\x32I.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.Destination\x12\x19\n\x11\x64\x65stination_other\x18\x06 \x01(\t\"\\\n\x0b\x44\x65stination\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x18\n\x14GOOGLE_OWNED_SERVICE\x10\x02\x12\t\n\x05LOCAL\x10\x03\x12\n\n\x05OTHER\x10\xe8\x07\x1a\xba\x02\n\rTrafficPolicy\x12\x62\n\x0f\x63ookies_allowed\x18\x01 \x01(\x0e\x32I.traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.CookiesAllowed\x12\x15\n\rcookies_store\x18\x02 \x01(\t\x12\x0f\n\x07setting\x18\x03 \x01(\t\x12\x41\n\rchrome_policy\x18\x04 \x03(\x0b\x32*.enterprise_management.ChromeSettingsProto\x12&\n\x1epolicy_exception_justification\x18\x05 \x01(\t\"2\n\x0e\x43ookiesAllowed\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02NO\x10\x01\x12\x07\n\x03YES\x10\x02\"u\n!ExtractedNetworkTrafficAnnotation\x12P\n\x1anetwork_traffic_annotation\x18\x01 \x03(\x0b\x32,.traffic_annotation.NetworkTrafficAnnotation\"x\n$WhitelistedNetworkTrafficAnnotations\x12P\n\x1anetwork_traffic_annotation\x18\x01 \x03(\x0b\x32,.traffic_annotation.NetworkTrafficAnnotation\"\xec\x01\n\x19NetworkTrafficAnnotations\x12\x64\n%extracted_network_traffic_annotations\x18\x01 \x01(\x0b\x32\x35.traffic_annotation.ExtractedNetworkTrafficAnnotation\x12i\n\'whitelisted_network_traffic_annotations\x18\x02 \x01(\x0b\x32\x38.traffic_annotation.WhitelistedNetworkTrafficAnnotationsb\x06proto3' - , - dependencies=[chrome__settings__full__runtime__pb2.DESCRIPTOR,]) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18traffic_annotation.proto\x12\x12traffic_annotation\x1a\"chrome_settings_full_runtime.proto\"\xae\x0f\n\x18NetworkTrafficAnnotation\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12J\n\x06source\x18\x02 \x01(\x0b\x32:.traffic_annotation.NetworkTrafficAnnotation.TrafficSource\x12P\n\tsemantics\x18\x03 \x01(\x0b\x32=.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics\x12J\n\x06policy\x18\x04 \x01(\x0b\x32:.traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy\x12\x10\n\x08\x63omments\x18\x05 \x01(\t\x1a@\n\rTrafficSource\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x0c\n\x04line\x18\x03 \x01(\x05\x12\x13\n\x0b\x63\x61ll_number\x18\x04 \x01(\x05\x1a\xe6\t\n\x10TrafficSemantics\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07trigger\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t\x12^\n\x0b\x64\x65stination\x18\x05 \x01(\x0e\x32I.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.Destination\x12\x19\n\x11\x64\x65stination_other\x18\x06 \x01(\t\x12X\n\x08internal\x18\x07 \x01(\x0b\x32\x46.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.Internal\x12Y\n\tuser_data\x18\x08 \x01(\x0b\x32\x46.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.UserData\x12\x15\n\rlast_reviewed\x18\t \x01(\t\x1a\x98\x01\n\x08Internal\x12`\n\x08\x63ontacts\x18\x01 \x03(\x0b\x32N.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.Internal.Contact\x1a*\n\x07\x43ontact\x12\x0f\n\x05\x65mail\x18\x01 \x01(\tH\x00\x42\x0e\n\x0c\x63ontact_type\x1a\xcd\x04\n\x08UserData\x12\x61\n\x04type\x18\x01 \x03(\x0e\x32S.traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.UserData.UserDataType\"\xdd\x03\n\x0cUserDataType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x10\n\x0c\x41\x43\x43\x45SS_TOKEN\x10\x01\x12\x0b\n\x07\x41\x44\x44RESS\x10\x02\x12\x0e\n\nANDROID_ID\x10\x03\x12\x07\n\x03\x41GE\x10\x04\x12\x12\n\x0e\x41RBITRARY_DATA\x10\x05\x12\x0e\n\nBIRTH_DATE\x10\x06\x12\x0f\n\x0b\x43REDENTIALS\x10\x07\x12\x14\n\x10\x43REDIT_CARD_DATA\x10\x08\x12\r\n\tDEVICE_ID\x10\t\x12\t\n\x05\x45MAIL\x10\n\x12\r\n\tFILE_DATA\x10\x0b\x12\x0b\n\x07GAIA_ID\x10\x0c\x12\n\n\x06GENDER\x10\r\x12\x11\n\rGOVERNMENT_ID\x10\x0e\x12\t\n\x05IMAGE\x10\x0f\x12\x0e\n\nIP_ADDRESS\x10\x10\x12\x13\n\x0fLOCATION_COARSE\x10\x11\x12\x14\n\x10LOCATION_PRECISE\x10\x12\x12\x08\n\x04NAME\x10\x13\x12\t\n\x05PHONE\x10\x14\x12\x10\n\x0cPROFILE_DATA\x10\x15\x12\x11\n\rSENSITIVE_URL\x10\x16\x12\x0e\n\nSESSION_ID\x10\x17\x12\r\n\tTIMESTAMP\x10\x18\x12\x0e\n\nUSER_AGENT\x10\x19\x12\x10\n\x0cUSER_CONTENT\x10\x1a\x12\x0c\n\x08USERNAME\x10\x1b\x12\n\n\x05OTHER\x10\xe7\x07\x12\t\n\x04NONE\x10\xe8\x07\"\\\n\x0b\x44\x65stination\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07WEBSITE\x10\x01\x12\x18\n\x14GOOGLE_OWNED_SERVICE\x10\x02\x12\t\n\x05LOCAL\x10\x03\x12\n\n\x05OTHER\x10\xe8\x07\x1a\xd7\x02\n\rTrafficPolicy\x12\x62\n\x0f\x63ookies_allowed\x18\x01 \x01(\x0e\x32I.traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.CookiesAllowed\x12\x15\n\rcookies_store\x18\x02 \x01(\t\x12\x0f\n\x07setting\x18\x03 \x01(\t\x12\x41\n\rchrome_policy\x18\x04 \x03(\x0b\x32*.enterprise_management.ChromeSettingsProto\x12&\n\x1epolicy_exception_justification\x18\x05 \x01(\t\x12\x1b\n\x13\x64\x65precated_policies\x18\x06 \x03(\t\"2\n\x0e\x43ookiesAllowed\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02NO\x10\x01\x12\x07\n\x03YES\x10\x02\"u\n!ExtractedNetworkTrafficAnnotation\x12P\n\x1anetwork_traffic_annotation\x18\x01 \x03(\x0b\x32,.traffic_annotation.NetworkTrafficAnnotation\"x\n$WhitelistedNetworkTrafficAnnotations\x12P\n\x1anetwork_traffic_annotation\x18\x01 \x03(\x0b\x32,.traffic_annotation.NetworkTrafficAnnotation\"\xec\x01\n\x19NetworkTrafficAnnotations\x12\x64\n%extracted_network_traffic_annotations\x18\x01 \x01(\x0b\x32\x35.traffic_annotation.ExtractedNetworkTrafficAnnotation\x12i\n\'whitelisted_network_traffic_annotations\x18\x02 \x01(\x0b\x32\x38.traffic_annotation.WhitelistedNetworkTrafficAnnotationsb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'traffic_annotation_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: - -_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION = _descriptor.EnumDescriptor( - name='Destination', - full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.Destination', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNSPECIFIED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='WEBSITE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GOOGLE_OWNED_SERVICE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='LOCAL', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='OTHER', index=4, number=1000, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=662, - serialized_end=754, -) -_sym_db.RegisterEnumDescriptor(_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION) - -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED = _descriptor.EnumDescriptor( - name='CookiesAllowed', - full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.CookiesAllowed', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNSPECIFIED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NO', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='YES', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=1021, - serialized_end=1071, -) -_sym_db.RegisterEnumDescriptor(_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED) - - -_NETWORKTRAFFICANNOTATION_TRAFFICSOURCE = _descriptor.Descriptor( - name='TrafficSource', - full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSource', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSource.file', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='line', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSource.line', index=1, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='call_number', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSource.call_number', index=2, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=384, - serialized_end=448, -) - -_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS = _descriptor.Descriptor( - name='TrafficSemantics', - full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='sender', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.sender', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='description', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.description', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='trigger', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.trigger', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.data', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='destination', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.destination', index=4, - number=5, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='destination_other', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics.destination_other', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=451, - serialized_end=754, -) - -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY = _descriptor.Descriptor( - name='TrafficPolicy', - full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='cookies_allowed', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.cookies_allowed', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cookies_store', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.cookies_store', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='setting', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.setting', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='chrome_policy', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.chrome_policy', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='policy_exception_justification', full_name='traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy.policy_exception_justification', index=4, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=757, - serialized_end=1071, -) - -_NETWORKTRAFFICANNOTATION = _descriptor.Descriptor( - name='NetworkTrafficAnnotation', - full_name='traffic_annotation.NetworkTrafficAnnotation', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='unique_id', full_name='traffic_annotation.NetworkTrafficAnnotation.unique_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='source', full_name='traffic_annotation.NetworkTrafficAnnotation.source', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='semantics', full_name='traffic_annotation.NetworkTrafficAnnotation.semantics', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='policy', full_name='traffic_annotation.NetworkTrafficAnnotation.policy', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='comments', full_name='traffic_annotation.NetworkTrafficAnnotation.comments', index=4, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_NETWORKTRAFFICANNOTATION_TRAFFICSOURCE, _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS, _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=85, - serialized_end=1071, -) - - -_EXTRACTEDNETWORKTRAFFICANNOTATION = _descriptor.Descriptor( - name='ExtractedNetworkTrafficAnnotation', - full_name='traffic_annotation.ExtractedNetworkTrafficAnnotation', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='network_traffic_annotation', full_name='traffic_annotation.ExtractedNetworkTrafficAnnotation.network_traffic_annotation', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1073, - serialized_end=1190, -) - - -_WHITELISTEDNETWORKTRAFFICANNOTATIONS = _descriptor.Descriptor( - name='WhitelistedNetworkTrafficAnnotations', - full_name='traffic_annotation.WhitelistedNetworkTrafficAnnotations', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='network_traffic_annotation', full_name='traffic_annotation.WhitelistedNetworkTrafficAnnotations.network_traffic_annotation', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1192, - serialized_end=1312, -) - - -_NETWORKTRAFFICANNOTATIONS = _descriptor.Descriptor( - name='NetworkTrafficAnnotations', - full_name='traffic_annotation.NetworkTrafficAnnotations', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='extracted_network_traffic_annotations', full_name='traffic_annotation.NetworkTrafficAnnotations.extracted_network_traffic_annotations', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='whitelisted_network_traffic_annotations', full_name='traffic_annotation.NetworkTrafficAnnotations.whitelisted_network_traffic_annotations', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1315, - serialized_end=1551, -) - -_NETWORKTRAFFICANNOTATION_TRAFFICSOURCE.containing_type = _NETWORKTRAFFICANNOTATION -_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS.fields_by_name['destination'].enum_type = _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION -_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS.containing_type = _NETWORKTRAFFICANNOTATION -_NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION.containing_type = _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY.fields_by_name['cookies_allowed'].enum_type = _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY.fields_by_name['chrome_policy'].message_type = chrome__settings__full__runtime__pb2._CHROMESETTINGSPROTO -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY.containing_type = _NETWORKTRAFFICANNOTATION -_NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED.containing_type = _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY -_NETWORKTRAFFICANNOTATION.fields_by_name['source'].message_type = _NETWORKTRAFFICANNOTATION_TRAFFICSOURCE -_NETWORKTRAFFICANNOTATION.fields_by_name['semantics'].message_type = _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS -_NETWORKTRAFFICANNOTATION.fields_by_name['policy'].message_type = _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY -_EXTRACTEDNETWORKTRAFFICANNOTATION.fields_by_name['network_traffic_annotation'].message_type = _NETWORKTRAFFICANNOTATION -_WHITELISTEDNETWORKTRAFFICANNOTATIONS.fields_by_name['network_traffic_annotation'].message_type = _NETWORKTRAFFICANNOTATION -_NETWORKTRAFFICANNOTATIONS.fields_by_name['extracted_network_traffic_annotations'].message_type = _EXTRACTEDNETWORKTRAFFICANNOTATION -_NETWORKTRAFFICANNOTATIONS.fields_by_name['whitelisted_network_traffic_annotations'].message_type = _WHITELISTEDNETWORKTRAFFICANNOTATIONS -DESCRIPTOR.message_types_by_name['NetworkTrafficAnnotation'] = _NETWORKTRAFFICANNOTATION -DESCRIPTOR.message_types_by_name['ExtractedNetworkTrafficAnnotation'] = _EXTRACTEDNETWORKTRAFFICANNOTATION -DESCRIPTOR.message_types_by_name['WhitelistedNetworkTrafficAnnotations'] = _WHITELISTEDNETWORKTRAFFICANNOTATIONS -DESCRIPTOR.message_types_by_name['NetworkTrafficAnnotations'] = _NETWORKTRAFFICANNOTATIONS -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -NetworkTrafficAnnotation = _reflection.GeneratedProtocolMessageType('NetworkTrafficAnnotation', (_message.Message,), { - - 'TrafficSource' : _reflection.GeneratedProtocolMessageType('TrafficSource', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKTRAFFICANNOTATION_TRAFFICSOURCE, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.NetworkTrafficAnnotation.TrafficSource) - }) - , - - 'TrafficSemantics' : _reflection.GeneratedProtocolMessageType('TrafficSemantics', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.NetworkTrafficAnnotation.TrafficSemantics) - }) - , - - 'TrafficPolicy' : _reflection.GeneratedProtocolMessageType('TrafficPolicy', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.NetworkTrafficAnnotation.TrafficPolicy) - }) - , - 'DESCRIPTOR' : _NETWORKTRAFFICANNOTATION, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.NetworkTrafficAnnotation) - }) -_sym_db.RegisterMessage(NetworkTrafficAnnotation) -_sym_db.RegisterMessage(NetworkTrafficAnnotation.TrafficSource) -_sym_db.RegisterMessage(NetworkTrafficAnnotation.TrafficSemantics) -_sym_db.RegisterMessage(NetworkTrafficAnnotation.TrafficPolicy) - -ExtractedNetworkTrafficAnnotation = _reflection.GeneratedProtocolMessageType('ExtractedNetworkTrafficAnnotation', (_message.Message,), { - 'DESCRIPTOR' : _EXTRACTEDNETWORKTRAFFICANNOTATION, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.ExtractedNetworkTrafficAnnotation) - }) -_sym_db.RegisterMessage(ExtractedNetworkTrafficAnnotation) - -WhitelistedNetworkTrafficAnnotations = _reflection.GeneratedProtocolMessageType('WhitelistedNetworkTrafficAnnotations', (_message.Message,), { - 'DESCRIPTOR' : _WHITELISTEDNETWORKTRAFFICANNOTATIONS, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.WhitelistedNetworkTrafficAnnotations) - }) -_sym_db.RegisterMessage(WhitelistedNetworkTrafficAnnotations) - -NetworkTrafficAnnotations = _reflection.GeneratedProtocolMessageType('NetworkTrafficAnnotations', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKTRAFFICANNOTATIONS, - '__module__' : 'traffic_annotation_pb2' - # @@protoc_insertion_point(class_scope:traffic_annotation.NetworkTrafficAnnotations) - }) -_sym_db.RegisterMessage(NetworkTrafficAnnotations) - - + DESCRIPTOR._options = None + _NETWORKTRAFFICANNOTATION._serialized_start=85 + _NETWORKTRAFFICANNOTATION._serialized_end=2051 + _NETWORKTRAFFICANNOTATION_TRAFFICSOURCE._serialized_start=384 + _NETWORKTRAFFICANNOTATION_TRAFFICSOURCE._serialized_end=448 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS._serialized_start=451 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS._serialized_end=1705 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_INTERNAL._serialized_start=867 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_INTERNAL._serialized_end=1019 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_INTERNAL_CONTACT._serialized_start=977 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_INTERNAL_CONTACT._serialized_end=1019 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_USERDATA._serialized_start=1022 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_USERDATA._serialized_end=1611 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_USERDATA_USERDATATYPE._serialized_start=1134 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_USERDATA_USERDATATYPE._serialized_end=1611 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION._serialized_start=1613 + _NETWORKTRAFFICANNOTATION_TRAFFICSEMANTICS_DESTINATION._serialized_end=1705 + _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY._serialized_start=1708 + _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY._serialized_end=2051 + _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED._serialized_start=2001 + _NETWORKTRAFFICANNOTATION_TRAFFICPOLICY_COOKIESALLOWED._serialized_end=2051 + _EXTRACTEDNETWORKTRAFFICANNOTATION._serialized_start=2053 + _EXTRACTEDNETWORKTRAFFICANNOTATION._serialized_end=2170 + _WHITELISTEDNETWORKTRAFFICANNOTATIONS._serialized_start=2172 + _WHITELISTEDNETWORKTRAFFICANNOTATIONS._serialized_end=2292 + _NETWORKTRAFFICANNOTATIONS._serialized_start=2295 + _NETWORKTRAFFICANNOTATIONS._serialized_end=2531 # @@protoc_insertion_point(module_scope)
diff --git a/tools/traffic_annotation/scripts/test_data/test_sample_annotations.cc b/tools/traffic_annotation/scripts/test_data/test_sample_annotations.cc index d084731..0c63da0 100644 --- a/tools/traffic_annotation/scripts/test_data/test_sample_annotations.cc +++ b/tools/traffic_annotation/scripts/test_data/test_sample_annotations.cc
@@ -74,3 +74,38 @@ "This feature cannot be controlled by Chrome settings, but users " "can sign out of Chrome to disable it." })"); + +// An annotation with a incomplete email address, unspecified user_data +// invalid date format. +net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("invalid_assignment_annotation", R"( + semantics { + sender: "Cloud Policy" + description: + "Used to fetch policy for extensions, policy-controlled wallpaper, " + "and custom terms of service." + trigger: + "Periodically loaded when a managed user is signed in to Chrome." + data: + "This request does not send any data. It loads external resources " + "by a unique URL provided by the admin." + destination: GOOGLE_OWNED_SERVICE + internal { + contacts { + email: "chromium-dev@google.com" + } + } + user_data { + type: NONE + } + last_reviewed: "23-12-2022" + } + policy { + cookies_allowed: NO + setting: + "This feature cannot be controlled by Chrome settings, but users " + "can sign out of Chrome to disable it." + policy_exception_justification: + "Not implemented, considered not useful. This request is part of " + "the policy fetcher itself." + })");
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml index 36aaac6..893f986 100644 --- a/tools/traffic_annotation/summary/annotations.xml +++ b/tools/traffic_annotation/summary/annotations.xml
@@ -20,9 +20,9 @@ <item id="autofill_image_fetcher_card_art_image" added_in_milestone="93" content_hash_code="0177b54c" os_list="linux,windows,chromeos,android" file_path="chrome/browser/autofill/autofill_image_fetcher_impl.cc" /> <item id="autofill_query" added_in_milestone="62" content_hash_code="00ed7a4b" os_list="linux,windows,chromeos,android" file_path="components/autofill/core/browser/autofill_download_manager.cc" /> <item id="autofill_upload" added_in_milestone="62" content_hash_code="0698270b" os_list="linux,windows,chromeos,android" file_path="components/autofill/core/browser/autofill_download_manager.cc" /> - <item id="backdrop_collection_images_download" added_in_milestone="68" content_hash_code="03c0de0e" os_list="linux,windows" file_path="chrome/browser/search/background/ntp_background_service.cc" /> - <item id="backdrop_collection_names_download" added_in_milestone="68" content_hash_code="0592b787" os_list="linux,windows" file_path="chrome/browser/search/background/ntp_background_service.cc" /> - <item id="backdrop_next_image_download" added_in_milestone="77" content_hash_code="05df91f2" os_list="linux,windows" file_path="chrome/browser/search/background/ntp_background_service.cc" /> + <item id="backdrop_collection_images_download" added_in_milestone="68" content_hash_code="03c0de0e" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_background_service.cc" /> + <item id="backdrop_collection_names_download" added_in_milestone="68" content_hash_code="0592b787" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_background_service.cc" /> + <item id="backdrop_next_image_download" added_in_milestone="77" content_hash_code="05df91f2" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_background_service.cc" /> <item id="background_fetch_context" added_in_milestone="62" content_hash_code="031d0caa" os_list="linux,windows,chromeos,android" file_path="content/browser/background_fetch/background_fetch_delegate_proxy.cc" /> <item id="bidirectional_stream" added_in_milestone="67" content_hash_code="07c03a44" os_list="linux,windows,chromeos,android" file_path="net/http/bidirectional_stream.cc" /> <item id="blink_extension_resource_loader" added_in_milestone="63" content_hash_code="03c97c39" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc" /> @@ -179,10 +179,10 @@ <item id="profile_avatar" added_in_milestone="62" content_hash_code="06c4a5fd" os_list="linux,windows,chromeos,android" file_path="chrome/browser/profiles/profile_avatar_downloader.cc" /> <item id="profile_resetter_upload" added_in_milestone="62" content_hash_code="07b56813" os_list="linux,windows,chromeos" file_path="chrome/browser/profile_resetter/reset_report_uploader.cc" /> <item id="promo_service" added_in_milestone="72" content_hash_code="01f69c19" os_list="linux,windows,chromeos" file_path="chrome/browser/new_tab_page/promos/promo_service.cc" /> - <item id="proxy_config_direct" added_in_milestone="67" content_hash_code="072602b0" os_list="linux,windows,chromeos,android" file_path="net/proxy_resolution/proxy_config_with_annotation.cc" /> + <item id="proxy_config_direct" added_in_milestone="67" content_hash_code="032a4682" os_list="linux,windows,chromeos,android" file_path="net/proxy_resolution/proxy_config_with_annotation.cc" /> <item id="proxy_config_headless" added_in_milestone="67" content_hash_code="049def4d" os_list="linux,windows,chromeos" file_path="headless/lib/browser/headless_request_context_manager.cc" /> - <item id="proxy_config_settings" added_in_milestone="67" content_hash_code="0129f6d1" os_list="linux,windows,chromeos,android" file_path="components/proxy_config/pref_proxy_config_tracker_impl.cc" /> - <item id="proxy_config_system" added_in_milestone="67" content_hash_code="0497cf89" os_list="linux,windows,chromeos,android" file_path="net/proxy_resolution/proxy_config_service.cc" /> + <item id="proxy_config_settings" added_in_milestone="67" content_hash_code="05940645" os_list="linux,windows,chromeos,android" file_path="components/proxy_config/pref_proxy_config_tracker_impl.cc" /> + <item id="proxy_config_system" added_in_milestone="67" content_hash_code="061e794f" os_list="linux,windows,chromeos,android" file_path="net/proxy_resolution/proxy_config_service.cc" /> <item id="proxy_config_windows_resolver" added_in_milestone="86" content_hash_code="075530ef" os_list="windows" file_path="net/proxy_resolution/win/windows_system_proxy_resolution_request.cc" /> <item id="qr_code_save" added_in_milestone="84" content_hash_code="045593bd" os_list="linux,windows,chromeos" file_path="chrome/browser/ui/views/qrcode_generator/qrcode_generator_bubble.cc" /> <item id="query_tiles_fetcher" added_in_milestone="84" content_hash_code="0100b835" os_list="linux,windows,chromeos,android" file_path="components/query_tiles/internal/tile_fetcher.cc" /> @@ -394,9 +394,9 @@ <item id="k_anonymity_service_join_set" added_in_milestone="108" content_hash_code="02ae88a5" os_list="linux,windows,android,chromeos" file_path="chrome/browser/k_anonymity_service/k_anonymity_service_client.cc" /> <item id="k_anonymity_service_query_set" added_in_milestone="108" content_hash_code="0411a8c6" os_list="linux,windows,android,chromeos" file_path="chrome/browser/k_anonymity_service/k_anonymity_service_client.cc" /> <item id="managed_acccount_signin_restrictions_secure_connect_chromeos" added_in_milestone="109" content_hash_code="05958d4c" os_list="chromeos" file_path="chrome/browser/ui/webui/signin/ash/user_cloud_signin_restriction_policy_fetcher.cc" /> - <item id="ntp_custom_background" added_in_milestone="109" content_hash_code="062e3e29" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_custom_background_service.cc" /> - <item id="iwa_policy_update_manifest" added_in_milestone="110" content_hash_code="01f71479" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> - <item id="iwa_policy_signed_web_bundle" added_in_milestone="110" content_hash_code="024e4e8b" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> + <item id="ntp_custom_background" added_in_milestone="109" content_hash_code="08080082" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_custom_background_service.cc" /> + <item id="iwa_policy_update_manifest" added_in_milestone="110" content_hash_code="057bb523" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> + <item id="iwa_policy_signed_web_bundle" added_in_milestone="110" content_hash_code="03a6049c" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> <item id="quick_start_challenge_bytes_fetcher" added_in_milestone="110" content_hash_code="050ba600" os_list="chromeos" file_path="chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc" /> <item id="customization_document" added_in_milestone="110" content_hash_code="007a3dda" os_list="chromeos" file_path="chrome/browser/ash/customization/customization_document.cc" /> <item id="nearby_webrtc_connection" added_in_milestone="110" content_hash_code="070e1f72" os_list="chromeos" file_path="chrome/services/sharing/nearby/platform/webrtc.cc" /> @@ -405,7 +405,7 @@ <item id="password_sync_token_fetcher" added_in_milestone="110" content_hash_code="0451c1ff" os_list="chromeos" file_path="chrome/browser/ash/login/saml/password_sync_token_fetcher.cc" /> <item id="projector_xhr_loader" added_in_milestone="110" content_hash_code="071c4ac5" os_list="chromeos" file_path="ash/webui/projector_app/projector_xhr_sender.cc" /> <item id="cloud_speech_recognition" added_in_milestone="110" content_hash_code="00d56fd8" os_list="linux,windows,chromeos" file_path="components/live_caption/live_translate_controller.cc" /> - <item id="bruschetta_installer_download" added_in_milestone="110" content_hash_code="01b953f4" os_list="chromeos" file_path="chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc" /> + <item id="bruschetta_installer_download" added_in_milestone="110" content_hash_code="073f0263" os_list="chromeos" file_path="chrome/browser/ash/bruschetta/bruschetta_installer_impl.cc" /> <item id="quick_start_session_auth_requester" added_in_milestone="110" content_hash_code="08353e70" os_list="chromeos" file_path="chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc" /> <item id="network_diagnostics_routines" added_in_milestone="110" content_hash_code="0007b237" os_list="chromeos" file_path="chrome/browser/ash/net/network_diagnostics/http_request_manager.cc" /> <item id="trial_group_lookup" added_in_milestone="110" content_hash_code="047aeeca" os_list="chromeos" file_path="chromeos/ash/components/trial_group/trial_group_checker.cc" />
diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn index eed0eed..52504f4 100644 --- a/tools/v8_context_snapshot/BUILD.gn +++ b/tools/v8_context_snapshot/BUILD.gn
@@ -36,32 +36,11 @@ } if (use_v8_context_snapshot) { - if (is_android && enable_java_templates) { - android_assets("v8_context_snapshot_assets") { - deps = [ ":v8_context_snapshot" ] - default_toolchain_root_out_dir = - get_label_info(":v8_context_snapshot_generator($default_toolchain)", - "root_out_dir") - snapshot_file = - "$default_toolchain_root_out_dir/$v8_context_snapshot_filename" - renaming_sources = [ snapshot_file ] - renaming_destinations = [ "$v8_context_snapshot_filename" ] - disable_compression = true - } - } - if (v8_snapshot_toolchain == current_toolchain) { action("generate_v8_context_snapshot") { script = "//build/gn_run_binary.py" - # When cross compiling this target runs in a toolchain other than the - # default_toolchain. Code depending on this expect the snapshot to be - # generated in root_out_dir for the default toolchain. - default_toolchain_root_out_dir = - get_label_info(":v8_context_snapshot_generator($default_toolchain)", - "root_out_dir") - output_file = - "$default_toolchain_root_out_dir/$v8_context_snapshot_filename" + output_file = "$root_build_dir/$v8_context_snapshot_filename" output_path = rebase_path(output_file, root_build_dir) args = [
diff --git a/ui/accessibility/ax_assistant_structure.cc b/ui/accessibility/ax_assistant_structure.cc index 7892cb06..5d3a8a5 100644 --- a/ui/accessibility/ax_assistant_structure.cc +++ b/ui/accessibility/ax_assistant_structure.cc
@@ -267,13 +267,21 @@ const gfx::Rect& absolute_rect = gfx::ToEnclosingRect(tree->GetTreeBounds(node)); + const gfx::Rect& unclipped_rect = gfx::ToEnclosingRect( + tree->GetTreeBounds(node, nullptr, /* clip_bounds = */ false)); + gfx::Rect parent_relative_rect = absolute_rect; + gfx::Rect parent_relative_unclipped_rect = unclipped_rect; bool is_root = !node->GetUnignoredParent(); if (!is_root) { parent_relative_rect.Offset(-rect.OffsetFromOrigin()); + parent_relative_unclipped_rect.Offset(-rect.OffsetFromOrigin()); } result->rect = gfx::Rect(parent_relative_rect.x(), parent_relative_rect.y(), absolute_rect.width(), absolute_rect.height()); + result->unclipped_rect = gfx::Rect( + parent_relative_unclipped_rect.x(), parent_relative_unclipped_rect.y(), + unclipped_rect.width(), unclipped_rect.height()); // Selection state comes from the tree data rather than // GetUnignoredSelection() which uses AXPosition, as AXPosition requires a
diff --git a/ui/accessibility/ax_assistant_structure.h b/ui/accessibility/ax_assistant_structure.h index 6eb1228..4411b22c 100644 --- a/ui/accessibility/ax_assistant_structure.h +++ b/ui/accessibility/ax_assistant_structure.h
@@ -32,6 +32,9 @@ // Geometry of the view in pixels gfx::Rect rect; + // Geometry of the view in pixels, unclipped. + gfx::Rect unclipped_rect; + // Text of the view. std::u16string text;
diff --git a/ui/accessibility/mojom/ax_assistant_structure_mojom_traits.h b/ui/accessibility/mojom/ax_assistant_structure_mojom_traits.h index c5b7b77d..f46dabb 100644 --- a/ui/accessibility/mojom/ax_assistant_structure_mojom_traits.h +++ b/ui/accessibility/mojom/ax_assistant_structure_mojom_traits.h
@@ -40,6 +40,10 @@ const std::unique_ptr<ui::AssistantNode>& node) { return node->children_indices; } + static const gfx::Rect& unclipped_rect( + const std::unique_ptr<ui::AssistantNode>& node) { + return node->unclipped_rect; + } static const gfx::Rect& rect(const std::unique_ptr<ui::AssistantNode>& node) { return node->rect; }
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc index 77c0f3ad..ca2443a6 100644 --- a/ui/accessibility/platform/ax_platform_node_win.cc +++ b/ui/accessibility/platform/ax_platform_node_win.cc
@@ -7323,7 +7323,14 @@ return true; } // end of web-content only case. - return IsFocusable(); + // TODO(accessibility): This condition is very wide - it returns true for most + // elements, except the ones that are explicitly invisible/ignored and not + // focusable. We might want to revisit this implementation to match the specs: + // https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-treeoverview#control-view. + // + // Also, should we really have a different implementation for Views than for + // web content? + return !(IsInvisibleOrIgnored() && !IsFocusable()); } absl::optional<LONG> AXPlatformNodeWin::ComputeUIALandmarkType() const {
diff --git a/ui/accessibility/platform/ax_platform_node_win_unittest.cc b/ui/accessibility/platform/ax_platform_node_win_unittest.cc index 817d758..a7b69a5 100644 --- a/ui/accessibility/platform/ax_platform_node_win_unittest.cc +++ b/ui/accessibility/platform/ax_platform_node_win_unittest.cc
@@ -4176,6 +4176,38 @@ EXPECT_UIA_BOOL_EQ(text_7_provider, UIA_IsControlElementPropertyId, false); } +TEST_F(AXPlatformNodeWinTest, IsUIAControlForNonFocusableNodesInViews) { + // ++1 kUnknown + // ++++2 kButton + + AXNodeData root_1; + AXNodeData button_2; + + root_1.id = 1; + button_2.id = 2; + + root_1.role = ax::mojom::Role::kUnknown; + root_1.child_ids = {button_2.id}; + + button_2.role = ax::mojom::Role::kButton; + + Init(root_1, button_2); + + // Set web content mode to false for the AXTree since we're testing for Views. + TestAXNodeWrapper::SetGlobalIsWebContent(false); + + AXNode* root_1_node = GetRoot(); + AXNode* button_2_node = root_1_node->children()[0]; + + ComPtr<IRawElementProviderSimple> root_1_provider = + QueryInterfaceFromNode<IRawElementProviderSimple>(root_1_node); + EXPECT_UIA_BOOL_EQ(root_1_provider, UIA_IsControlElementPropertyId, true); + + ComPtr<IRawElementProviderSimple> button_2_provider = + QueryInterfaceFromNode<IRawElementProviderSimple>(button_2_node); + EXPECT_UIA_BOOL_EQ(button_2_provider, UIA_IsControlElementPropertyId, true); +} + TEST_F(AXPlatformNodeWinTest, UIAGetPropertyValueClickablePoint) { AXNodeData root; root.id = 1;
diff --git a/ui/base/interaction/element_test_util.cc b/ui/base/interaction/element_test_util.cc index 468af64d..95731858 100644 --- a/ui/base/interaction/element_test_util.cc +++ b/ui/base/interaction/element_test_util.cc
@@ -48,6 +48,14 @@ ElementTracker::GetFrameworkDelegate()->NotifyCustomEvent(this, event_type); } +void TestElementBase::SetScreenBounds(const gfx::Rect& screen_bounds) { + screen_bounds_ = screen_bounds; +} + +gfx::Rect TestElementBase::GetScreenBounds() const { + return screen_bounds_; +} + DEFINE_FRAMEWORK_SPECIFIC_METADATA(TestElement) DEFINE_FRAMEWORK_SPECIFIC_METADATA(TestElementOtherFramework)
diff --git a/ui/base/interaction/element_test_util.h b/ui/base/interaction/element_test_util.h index 4eb1b00f..689755c 100644 --- a/ui/base/interaction/element_test_util.h +++ b/ui/base/interaction/element_test_util.h
@@ -8,6 +8,7 @@ #include "ui/base/interaction/element_identifier.h" #include "ui/base/interaction/element_tracker.h" #include "ui/base/interaction/framework_specific_implementation.h" +#include "ui/gfx/geometry/rect.h" namespace ui::test { @@ -30,8 +31,12 @@ // Simuate a custom event on this element. void SendCustomEvent(CustomElementEventType event_type); + void SetScreenBounds(const gfx::Rect& screen_bounds); + gfx::Rect GetScreenBounds() const override; + private: bool visible_ = false; + gfx::Rect screen_bounds_; }; // Provides a platform-less test element in a fictional UI framework.
diff --git a/ui/base/interaction/element_tracker.cc b/ui/base/interaction/element_tracker.cc index 9994578..5532637 100644 --- a/ui/base/interaction/element_tracker.cc +++ b/ui/base/interaction/element_tracker.cc
@@ -10,6 +10,7 @@ #include <sstream> #include "base/auto_reset.h" +#include "base/callback_list.h" #include "base/containers/contains.h" #include "base/dcheck_is_on.h" #include "base/functional/bind.h" @@ -185,6 +186,10 @@ TrackedElement::~TrackedElement() = default; +gfx::Rect TrackedElement::GetScreenBounds() const { + return gfx::Rect(); +} + std::string TrackedElement::ToString() const { std::ostringstream oss; oss << GetImplementationName() << "(" << identifier() << ", " << context()
diff --git a/ui/base/interaction/element_tracker.h b/ui/base/interaction/element_tracker.h index 61f41e1..1770627 100644 --- a/ui/base/interaction/element_tracker.h +++ b/ui/base/interaction/element_tracker.h
@@ -19,6 +19,7 @@ #include "base/observer_list_types.h" #include "ui/base/interaction/element_identifier.h" #include "ui/base/interaction/framework_specific_implementation.h" +#include "ui/gfx/geometry/rect.h" namespace ui { @@ -51,6 +52,17 @@ ElementIdentifier identifier() const { return identifier_; } ElementContext context() const { return context_; } + // Returns the bounds of the element on the screen, or an empty rect if it + // cannot be determined. + // + // Note: it is not yet necessary to set up a general method for listening to + // bounds changes, as they are (a) somewhat difficult to track and (b) tend to + // be handled correctly by most frameworks in terms of element positioning + // (e.g. anchoring logic for User Education help bubbles). Specific + // implementations that need to do additional tracking can implement their own + // methods. + virtual gfx::Rect GetScreenBounds() const; + // FrameworkSpecificImplementation: std::string ToString() const override;
diff --git a/ui/base/interaction/element_tracker_mac.h b/ui/base/interaction/element_tracker_mac.h index a2d1afc7..9526b4c 100644 --- a/ui/base/interaction/element_tracker_mac.h +++ b/ui/base/interaction/element_tracker_mac.h
@@ -29,7 +29,8 @@ const gfx::Rect& screen_bounds); ~TrackedElementMac() override; - gfx::Rect screen_bounds() const { return screen_bounds_; } + // TrackedElement: + gfx::Rect GetScreenBounds() const override; DECLARE_FRAMEWORK_SPECIFIC_METADATA()
diff --git a/ui/base/interaction/element_tracker_mac.mm b/ui/base/interaction/element_tracker_mac.mm index d3b8d98..429f724 100644 --- a/ui/base/interaction/element_tracker_mac.mm +++ b/ui/base/interaction/element_tracker_mac.mm
@@ -22,6 +22,10 @@ TrackedElementMac::~TrackedElementMac() = default; +gfx::Rect TrackedElementMac::GetScreenBounds() const { + return screen_bounds_; +} + class ElementTrackerMac::ContextData { public: explicit ContextData(ElementContext context) : context_(context) {
diff --git a/ui/base/interaction/element_tracker_mac_unittest.mm b/ui/base/interaction/element_tracker_mac_unittest.mm index 753a276..4fda029 100644 --- a/ui/base/interaction/element_tracker_mac_unittest.mm +++ b/ui/base/interaction/element_tracker_mac_unittest.mm
@@ -86,7 +86,7 @@ ASSERT_TRUE(element->IsA<TrackedElementMac>()); if (expected_bounds_.has_value()) { EXPECT_EQ(expected_bounds_.value(), - element->AsA<TrackedElementMac>()->screen_bounds()); + element->AsA<TrackedElementMac>()->GetScreenBounds()); expected_bounds_.reset(); } EXPECT_EQ(identifier_, element->identifier());
diff --git a/ui/display/manager/managed_display_info.cc b/ui/display/manager/managed_display_info.cc index 27d1437..99c954a 100644 --- a/ui/display/manager/managed_display_info.cc +++ b/ui/display/manager/managed_display_info.cc
@@ -10,7 +10,6 @@ #include <vector> #include "base/command_line.h" -#include "base/format_macros.h" #include "base/logging.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_piece_forward.h" @@ -23,6 +22,7 @@ #include "ui/display/display_features.h" #include "ui/display/display_switches.h" #include "ui/display/manager/display_manager_utilities.h" +#include "ui/display/util/display_util.h" #include "ui/gfx/color_space.h" #include "ui/gfx/display_color_spaces.h" #include "ui/gfx/geometry/dip_util.h" @@ -38,6 +38,8 @@ const int64_t kSynthesizedDisplayIdStart = 2200000000LL; int64_t next_synthesized_display_id = kSynthesizedDisplayIdStart; +uint8_t device_index = 0; +uint8_t display_index = 0; const float kDpi96 = 96.0; @@ -281,9 +283,8 @@ highest_refresh_rate = refresh_rate; native_mode = i; } - display_modes.push_back( - ManagedDisplayMode(size, refresh_rate, is_interlaced, false, - device_scale_factor_for_mode)); + display_modes.emplace_back(size, refresh_rate, is_interlaced, false, + device_scale_factor_for_mode); } ManagedDisplayMode dm = display_modes[native_mode]; display_modes[native_mode] = @@ -294,13 +295,22 @@ if (id == kInvalidDisplayId) { id = next_synthesized_display_id; - next_synthesized_display_id = GetNextSynthesizedDisplayId(id); + if (features::IsEdidBasedDisplayIdsEnabled()) { + next_synthesized_display_id += 0x100; + } else { + next_synthesized_display_id = GetNextSynthesizedDisplayId(id); + } } ManagedDisplayInfo display_info( id, base::StringPrintf("Display-%d", static_cast<int>(id)), has_overscan); - // Output index is stored in the first 8 bits. - const uint8_t connector_index = id & 0xFF; - display_info.set_connector_index(connector_index); + + if (features::IsEdidBasedDisplayIdsEnabled()) { + display_info.set_connector_index( + GetNextSynthesizedEdidDisplayConnectorIndex()); + } else { + // Output index is stored in the first 8 bits. + display_info.set_connector_index(id & 0xFF); + } display_info.set_device_scale_factor(device_scale_factor); display_info.SetRotation(rotation, Display::RotationSource::ACTIVE); display_info.SetRotation(rotation, Display::RotationSource::USER); @@ -309,9 +319,9 @@ display_info.set_rounded_corners_radii(rounded_corners_radii); if (!display_modes.size()) { - display_modes.push_back(ManagedDisplayMode( - display_info.size_in_pixel(), 60.0f, - /*interlace=*/false, /*native=*/true, device_scale_factor)); + display_modes.emplace_back(display_info.size_in_pixel(), 60.0f, + /*interlace=*/false, /*native=*/true, + device_scale_factor); } display_info.SetManagedDisplayModes(display_modes); @@ -584,16 +594,32 @@ void ResetDisplayIdForTest() { next_synthesized_display_id = kSynthesizedDisplayIdStart; + device_index = 0; + display_index = 0; } int64_t GetNextSynthesizedDisplayId(int64_t id) { int next_output_index = id & 0xFF; next_output_index++; DCHECK_GT(0x100, next_output_index); - int64_t base = GetDisplayIdWithoutOutputIndex(id); + const int64_t base = GetDisplayIdWithoutOutputIndex(id); if (id == kSynthesizedDisplayIdStart) return id + 0x100 + next_output_index; return base + next_output_index; } +int64_t GetNextSynthesizedEdidDisplayConnectorIndex() { + if (display_index == 255) { + display_index = 0; + device_index++; + } else { + display_index++; + } + // Synthesized IDs are limited to 256^2 unique IDs. + DCHECK_LT(device_index, 255) << "Connector index exceeded 65536. Cannot " + "synthesize any more unique display IDs."; + + return ConnectorIndex16(device_index, display_index); +} + } // namespace display
diff --git a/ui/display/manager/managed_display_info.h b/ui/display/manager/managed_display_info.h index b9fad89..5c60a00 100644 --- a/ui/display/manager/managed_display_info.h +++ b/ui/display/manager/managed_display_info.h
@@ -446,6 +446,10 @@ // |kInvalidDisplayId| is passed to |ManagedDisplayInfo| constructor. int64_t DISPLAY_MANAGER_EXPORT GetNextSynthesizedDisplayId(int64_t id); +// Generates the next fake connector index for displays who's ID was generated +// by hashing their EDIDs. +int64_t DISPLAY_MANAGER_EXPORT GetNextSynthesizedEdidDisplayConnectorIndex(); + } // namespace display #endif // UI_DISPLAY_MANAGER_MANAGED_DISPLAY_INFO_H_
diff --git a/ui/display/util/display_util.cc b/ui/display/util/display_util.cc index 0b53fd1..05f706b 100644 --- a/ui/display/util/display_util.cc +++ b/ui/display/util/display_util.cc
@@ -322,4 +322,14 @@ } #endif // BUILDFLAG(IS_CHROMEOS) +int ConnectorIndex8(int device_index, int display_index) { + DCHECK_LT(device_index, 16); + DCHECK_LT(display_index, 16); + return ((device_index << 4) + display_index) & 0xFF; +} + +uint16_t ConnectorIndex16(uint8_t device_index, uint8_t display_index) { + return ((device_index << 8) + display_index) & 0xFFFF; +} + } // namespace display
diff --git a/ui/display/util/display_util.h b/ui/display/util/display_util.h index 5d32030..7470616 100644 --- a/ui/display/util/display_util.h +++ b/ui/display/util/display_util.h
@@ -90,6 +90,16 @@ const absl::optional<gfx::HDRStaticMetadata>& hdr_static_metadata); #endif // BUILDFLAG(IS_CHROMEOS) +DISPLAY_UTIL_EXPORT int ConnectorIndex8(int device_index, int display_index); + +// A connector's index is a combination of: +// 1) |display_index| the display's index in DRM bits 0-7 +// 2) |device_index| the display's DRM's index bits 8-15 +// e.g. - A 3rd display in a 2nd DRM would produce a connector index == 0x0102 +// (since display index == 2 and DRM index == 1) +DISPLAY_UTIL_EXPORT uint16_t ConnectorIndex16(uint8_t device_index, + uint8_t display_index); + } // namespace display #endif // UI_DISPLAY_UTIL_DISPLAY_UTIL_H_
diff --git a/ui/events/ozone/evdev/event_device_info.cc b/ui/events/ozone/evdev/event_device_info.cc index 20011da3..c097eba 100644 --- a/ui/events/ozone/evdev/event_device_info.cc +++ b/ui/events/ozone/evdev/event_device_info.cc
@@ -240,6 +240,8 @@ {0x1050, 0x0407}, // Yubico.com Yubikey 4 OTP+U2F+CCID {0x1532, 0x007a}, // Razer Viper Ultimate (Wired) {0x1532, 0x007b}, // Razer Viper Ultimate (Wireless) + {0x1532, 0x009a}, // Razer Pro Click Mini (Dongle) + {0x1532, 0x009b}, // Razer Pro Click Mini (Bluetooth) {0x17ef, 0x60be}, // Lenovo Legion M200 RGB Gaming Mouse {0x17ef, 0x60e4}, // Lenovo Legion M300 RGB Gaming Mouse {0x17ef, 0x6123}, // Lenovo USB-C Wired Compact Mouse
diff --git a/ui/ozone/platform/drm/common/drm_util.cc b/ui/ozone/platform/drm/common/drm_util.cc index 3ad0e80..e0bbb075 100644 --- a/ui/ozone/platform/drm/common/drm_util.cc +++ b/ui/ozone/platform/drm/common/drm_util.cc
@@ -259,21 +259,6 @@ return static_cast<display::PanelOrientation>(connector->prop_values[index]); } -int ConnectorIndex8(int device_index, int display_index) { - DCHECK_LT(device_index, 16); - DCHECK_LT(display_index, 16); - return ((device_index << 4) + display_index) & 0xFF; -} - -// A connector's index is a combination of: -// 1) |display_index| the display's index in DRM bits 0-7 -// 2) |device_index| the display's DRM's index bits 8-15 -// e.g. - A 3rd display in a 2nd DRM would produce a connector index == 0x0102 -// (since display index == 2 and DRM index == 1) -uint16_t ConnectorIndex16(uint8_t device_index, uint8_t display_index) { - return ((device_index << 8) + display_index) & 0xFFFF; -} - bool HasPerPlaneColorCorrectionMatrix(const int fd, drmModeCrtc* crtc) { ScopedDrmPlaneResPtr plane_resources(drmModeGetPlaneResources(fd)); DCHECK(plane_resources); @@ -539,9 +524,10 @@ const base::FilePath& sys_path, uint8_t device_index, const display::DrmFormatsAndModifiers& drm_formats_and_modifiers) { - const uint8_t display_index = ConnectorIndex8(device_index, info->index()); + const uint8_t display_index = + display::ConnectorIndex8(device_index, info->index()); const uint16_t connector_index = - ConnectorIndex16(device_index, info->index()); + display::ConnectorIndex16(device_index, info->index()); const gfx::Size physical_size = gfx::Size(info->connector()->mmWidth, info->connector()->mmHeight); const display::DisplayConnectionType type = GetDisplayType(info->connector());
diff --git a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc index 1e88b5e..7f4840b 100644 --- a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc +++ b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
@@ -452,6 +452,7 @@ const bool did_active_change = is_active_ != window_states.is_activated; is_active_ = window_states.is_activated; +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) // The tiled state affects the window geometry, so apply it here. if (window_states.tiled_edges != tiled_state_) { // This configure changes the decoration insets. We should adjust the @@ -459,6 +460,7 @@ tiled_state_ = window_states.tiled_edges; delegate()->OnWindowTiledStateChanged(window_states.tiled_edges); } +#endif // IS_LINUX || IS_CHROMEOS_LACROS // Rather than call SetBounds here for every configure event, just save the // most recent bounds, and have WaylandConnection call ApplyPendingBounds
diff --git a/ui/ozone/platform/wayland/host/wayland_toplevel_window.h b/ui/ozone/platform/wayland/host/wayland_toplevel_window.h index 3ca1106..b903fa7 100644 --- a/ui/ozone/platform/wayland/host/wayland_toplevel_window.h +++ b/ui/ozone/platform/wayland/host/wayland_toplevel_window.h
@@ -254,8 +254,10 @@ // Contains the previous state of the window. PlatformWindowState previous_state_ = PlatformWindowState::kUnknown; +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) // Contains the current state of the tiled edges. WindowTiledEdges tiled_state_; +#endif bool is_active_ = false;
diff --git a/ui/ozone/platform/wayland/host/wayland_window.h b/ui/ozone/platform/wayland/host/wayland_window.h index bb4c2af..bde7bab 100644 --- a/ui/ozone/platform/wayland/host/wayland_window.h +++ b/ui/ozone/platform/wayland/host/wayland_window.h
@@ -235,7 +235,9 @@ bool is_snapped_primary = false; bool is_snapped_secondary = false; bool is_floated = false; +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) WindowTiledEdges tiled_edges; +#endif }; // Configure related:
diff --git a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc index fb68e97..db18c55 100644 --- a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc +++ b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
@@ -269,6 +269,7 @@ CheckIfWlArrayHasValue(states, XDG_TOPLEVEL_STATE_ACTIVATED), }; +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) if (xdg_toplevel_get_version(xdg_toplevel) >= XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) { // All four tiled states have the same since version, so it is enough to @@ -280,6 +281,7 @@ .bottom = CheckIfWlArrayHasValue(states, XDG_TOPLEVEL_STATE_TILED_BOTTOM)}; } +#endif // IS_LINUX || IS_CHROMEOS_LACROS surface->wayland_window_->HandleToplevelConfigure(width, height, window_states);
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn index 75070cd..3fb3721c 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn
@@ -608,6 +608,7 @@ "cocoa/native_widget_mac_ns_window_host.h", "controls/menu/menu_closure_animation_mac.h", "controls/menu/menu_cocoa_watcher_mac.h", + "controls/menu/menu_controller_cocoa_delegate_impl.h", "controls/menu/menu_runner_impl_cocoa.h", "controls/scrollbar/cocoa_scroll_bar.h", "event_monitor_mac.h", @@ -631,6 +632,7 @@ "controls/menu/menu_closure_animation_mac.mm", "controls/menu/menu_cocoa_watcher_mac.mm", "controls/menu/menu_config_mac.mm", + "controls/menu/menu_controller_cocoa_delegate_impl.mm", "controls/menu/menu_pre_target_handler_mac.h", "controls/menu/menu_pre_target_handler_mac.mm", "controls/menu/menu_runner_impl_cocoa.mm",
diff --git a/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h b/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h new file mode 100644 index 0000000..f6d2a348 --- /dev/null +++ b/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h
@@ -0,0 +1,19 @@ +// 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. + +#ifndef UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_COCOA_DELEGATE_IMPL_H_ +#define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_COCOA_DELEGATE_IMPL_H_ + +#import "base/mac/scoped_nsobject.h" +#import "ui/base/cocoa/menu_controller.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/views/views_export.h" + +VIEWS_EXPORT +@interface MenuControllerCocoaDelegateImpl + : NSObject <MenuControllerCocoaDelegate> +- (void)setAnchorRect:(gfx::Rect)rect; +@end + +#endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_COCOA_DELEGATE_IMPL_H_
diff --git a/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.mm b/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.mm new file mode 100644 index 0000000..012e4ed --- /dev/null +++ b/ui/views/controls/menu/menu_controller_cocoa_delegate_impl.mm
@@ -0,0 +1,347 @@ +// 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. + +#import "ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h" + +#include "base/logging.h" +#import "base/mac/scoped_nsobject.h" +#import "base/message_loop/message_pump_mac.h" +#import "skia/ext/skia_utils_mac.h" +#import "ui/base/cocoa/cocoa_base_utils.h" +#include "ui/base/interaction/element_tracker_mac.h" +#include "ui/base/l10n/l10n_util_mac.h" +#include "ui/base/models/menu_model.h" +#include "ui/color/color_provider.h" +#include "ui/gfx/mac/coordinate_conversion.h" +#include "ui/gfx/platform_font_mac.h" +#include "ui/strings/grit/ui_strings.h" +#include "ui/views/controls/menu/new_badge.h" + +namespace { + +constexpr CGFloat kIPHDotSize = 6; + +NSImage* NewTagImage(const ui::ColorProvider* color_provider) { + // 1. Make the attributed string. + + NSString* badge_text = l10n_util::GetNSString(IDS_NEW_BADGE); + + // The preferred font is slightly smaller and slightly more bold than the + // menu font. The size change is required to make it look correct in the + // badge; we add a small degree of bold to prevent color smearing/blurring + // due to font smoothing. This ensures readability on all platforms and in + // both light and dark modes. + gfx::Font badge_font = gfx::Font( + new gfx::PlatformFontMac(gfx::PlatformFontMac::SystemFontType::kMenu)); + badge_font = badge_font.Derive(views::NewBadge::kNewBadgeFontSizeAdjustment, + gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM); + + DCHECK(color_provider); + NSColor* badge_text_color = skia::SkColorToSRGBNSColor( + color_provider->GetColor(ui::kColorButtonBackgroundProminent)); + + NSDictionary* badge_attrs = @{ + NSFontAttributeName : badge_font.GetNativeFont(), + NSForegroundColorAttributeName : badge_text_color, + }; + + NSMutableAttributedString* badge_attr_string = + [[NSMutableAttributedString alloc] initWithString:badge_text + attributes:badge_attrs]; + + // 2. Calculate the size required. + + NSSize badge_size = [badge_attr_string size]; + badge_size.width = trunc(badge_size.width); + badge_size.height = trunc(badge_size.height); + + badge_size.width += 2 * views::NewBadge::kNewBadgeInternalPadding + + 2 * views::NewBadge::kNewBadgeHorizontalMargin; + badge_size.height += views::NewBadge::kNewBadgeInternalPaddingTopMac; + + // 3. Craft the image. + + return [NSImage + imageWithSize:badge_size + flipped:NO + drawingHandler:^(NSRect dest_rect) { + NSRect badge_frame = NSInsetRect( + dest_rect, views::NewBadge::kNewBadgeHorizontalMargin, 0); + NSBezierPath* rounded_badge_rect = [NSBezierPath + bezierPathWithRoundedRect:badge_frame + xRadius:views::NewBadge::kNewBadgeCornerRadius + yRadius:views::NewBadge::kNewBadgeCornerRadius]; + DCHECK(color_provider); + NSColor* badge_color = skia::SkColorToSRGBNSColor( + color_provider->GetColor(ui::kColorButtonBackgroundProminent)); + [badge_color set]; + [rounded_badge_rect fill]; + + NSPoint badge_text_location = NSMakePoint( + NSMinX(badge_frame) + views::NewBadge::kNewBadgeInternalPadding, + NSMinY(badge_frame) + + views::NewBadge::kNewBadgeInternalPaddingTopMac); + [badge_attr_string drawAtPoint:badge_text_location]; + + return YES; + }]; +} + +NSImage* IPHDotImage(const ui::ColorProvider* color_provider) { + // Embed horizontal centering space as NSMenuItem will otherwise left-align + // it. + return [NSImage + imageWithSize:NSMakeSize(2 * kIPHDotSize, kIPHDotSize) + flipped:NO + drawingHandler:^(NSRect dest_rect) { + NSBezierPath* dot_path = [NSBezierPath + bezierPathWithOvalInRect:NSMakeRect(kIPHDotSize / 2, 0, kIPHDotSize, + kIPHDotSize)]; + NSColor* dot_color = skia::SkColorToSRGBNSColor( + color_provider->GetColor(ui::kColorButtonBackgroundProminent)); + [dot_color set]; + [dot_path fill]; + + return YES; + }]; +} + +} // namespace + +// --- Private API begin --- + +@interface NSCarbonMenuImpl : NSObject +- (void)highlightItemAtIndex:(NSInteger)index; +@end + +@interface NSMenu () +- (NSCarbonMenuImpl*)_menuImpl; +- (CGRect)_boundsIfOpen; +@end + +// --- Private API end --- + +// An NSTextAttachmentCell to show the [New] tag on a menu item. +// +// /!\ WARNING /!\ +// +// Do NOT update to the "new in macOS 10.11" API of NSTextAttachment.image until +// macOS 10.15 is the minimum required macOS for Chromium. Because menus are +// Carbon-based, the new NSTextAttachment.image API did not function correctly +// until then. Specifically, in macOS 10.11-10.12, images that use the new API +// do not appear. In macOS 10.13-10.14, the flipped flag of -[NSImage +// imageWithSize:flipped:drawingHandler:] is not respected. Only when 10.15 is +// the minimum required OS can https://crrev.com/c/2572937 be relanded. +@interface NewTagAttachmentCell : NSTextAttachmentCell +@end + +@implementation NewTagAttachmentCell + +- (instancetype)initWithColorProvider:(const ui::ColorProvider*)colorProvider { + if (self = [super init]) { + self.image = NewTagImage(colorProvider); + } + return self; +} + +- (NSPoint)cellBaselineOffset { + return NSMakePoint(0, views::NewBadge::kNewBadgeBaselineOffsetMac); +} + +- (NSSize)cellSize { + return [self.image size]; +} + +@end + +@interface IdentifierContainer : NSObject +- (std::vector<ui::ElementIdentifier>&)ids; +@end + +@implementation IdentifierContainer { + std::vector<ui::ElementIdentifier> _ids; +} +- (std::vector<ui::ElementIdentifier>&)ids { + return _ids; +} +@end + +@implementation MenuControllerCocoaDelegateImpl + +NSMutableArray* _menuObservers; +gfx::Rect _anchorRect; + +- (instancetype)init { + if (self = [super init]) { + _menuObservers = [[NSMutableArray alloc] init]; + } + return self; +} + +- (void)dealloc { + for (NSObject* obj in _menuObservers) { + [[NSNotificationCenter defaultCenter] removeObserver:obj]; + } + + [_menuObservers release]; + + [super dealloc]; +} + +- (void)setAnchorRect:(gfx::Rect)rect { + _anchorRect = rect; +} + +- (void)controllerWillAddItem:(NSMenuItem*)menuItem + fromModel:(ui::MenuModel*)model + atIndex:(size_t)index + withColorProvider:(const ui::ColorProvider*)colorProvider { + if (model->IsNewFeatureAt(index)) { + NSMutableAttributedString* attrTitle = [[[NSMutableAttributedString alloc] + initWithString:menuItem.title] autorelease]; + + // /!\ WARNING /!\ Do not update this to use NSTextAttachment.image until + // macOS 10.15 is the minimum required OS. See the details on the class + // comment above. + NSTextAttachment* attachment = + [[[NSTextAttachment alloc] init] autorelease]; + attachment.attachmentCell = [[[NewTagAttachmentCell alloc] + initWithColorProvider:colorProvider] autorelease]; + + [attrTitle + appendAttributedString:[NSAttributedString + attributedStringWithAttachment:attachment]]; + + menuItem.attributedTitle = attrTitle; + } + + if (model->IsAlertedAt(index)) { + NSImage* iphDotImage = IPHDotImage(colorProvider); + menuItem.onStateImage = iphDotImage; + menuItem.offStateImage = iphDotImage; + menuItem.mixedStateImage = iphDotImage; + } +} + +- (void)controllerWillAddMenu:(NSMenu*)menu fromModel:(ui::MenuModel*)model { + absl::optional<size_t> alerted_index; + IdentifierContainer* const element_ids = + [[[IdentifierContainer alloc] init] autorelease]; + for (size_t i = 0; i < model->GetItemCount(); ++i) { + if (model->IsAlertedAt(i)) { + DCHECK(!alerted_index.has_value()); + alerted_index = i; + } + const ui::ElementIdentifier identifier = model->GetElementIdentifierAt(i); + if (identifier) { + [element_ids ids].push_back(identifier); + } + } + + if (alerted_index.has_value() || ![element_ids ids].empty()) { + auto shown_callback = ^(NSNotification* note) { + NSMenu* const menu_obj = note.object; + if (alerted_index.has_value()) { + if ([menu respondsToSelector:@selector(_menuImpl)]) { + NSCarbonMenuImpl* menuImpl = [menu_obj _menuImpl]; + if ([menuImpl respondsToSelector:@selector(highlightItemAtIndex:)]) { + const auto index = + base::checked_cast<NSInteger>(alerted_index.value()); + [menuImpl highlightItemAtIndex:index]; + } + } + } + + // This situation is broken. + // + // First, NSMenuDidBeginTrackingNotification is the best way to get called + // right before the menu is shown, but at the moment of the call, the menu + // isn't open yet. Second, to make things worse, the implementation of + // -_boundsIfOpen *tries* to return an NSZeroRect if the menu isn't open + // yet but fails to detect it correctly, and instead falls over and + // returns a bogus bounds. Fortunately, those bounds are broken in a + // predictable way, so that situation can be detected. Don't even bother + // trying to make the -_boundsIfOpen call on the notification; there's no + // point. + // + // However, it takes just one trip through the main loop for the menu to + // appear and the -_boundsIfOpen call to work. + dispatch_after( + dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_MSEC), + dispatch_get_main_queue(), ^{ + // Even though all supported macOS releases have `-_boundsIfOpen`, + // because it's not official API, retain the fallback code written + // for earlier versions of macOSes. + // + // The fallback bounds are intentionally twice as wide as they + // should be because even though we could check the RTL bit and + // guess whether the menu should appear to the left or right of the + // anchor, if the anchor is near one side of the screen the menu + // could end up on the other side. + gfx::Rect screen_rect = _anchorRect; + CGSize menu_size = [menu_obj size]; + screen_rect.Inset(gfx::Insets::TLBR( + 0, -menu_size.width, -menu_size.height, -menu_size.width)); + if ([menu_obj respondsToSelector:@selector(_boundsIfOpen)]) { + CGRect bounds = [menu_obj _boundsIfOpen]; + // A broken bounds for a menu that isn't + // actually yet open looks like: {{zeroish, + // main display height}, {zeroish, zeroish}}. + auto is_zeroish = [](CGFloat f) { return f >= 0 && f < 0.00001; }; + if (is_zeroish(bounds.origin.x) && bounds.origin.y > 300 && + is_zeroish(bounds.size.width) && + is_zeroish(bounds.size.height)) { + // FYI, this never actually happens. + LOG(ERROR) << "Get menu bounds failed."; + } else { + screen_rect = gfx::ScreenRectFromNSRect(bounds); + } + } + + for (ui::ElementIdentifier element_id : [element_ids ids]) { + ui::ElementTrackerMac::GetInstance()->NotifyMenuItemShown( + menu_obj, element_id, screen_rect); + } + }); + }; + + [_menuObservers + addObject:[[NSNotificationCenter defaultCenter] + addObserverForName:NSMenuDidBeginTrackingNotification + object:menu + queue:nil + usingBlock:shown_callback]]; + } + + if (![element_ids ids].empty()) { + auto hidden_callback = ^(NSNotification* note) { + NSMenu* const menu_obj = note.object; + // We expect to see the following order of events: + // - element shown + // - element activated (optional) + // - element hidden + // However, the code that detects menu item activation is called *after* + // the current callback. To make sure the events happen in the right order + // we'll defer processing of element hidden events until the end of the + // current system event queue. + dispatch_after( + dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_MSEC), + dispatch_get_main_queue(), ^{ + for (ui::ElementIdentifier element_id : [element_ids ids]) { + ui::ElementTrackerMac::GetInstance()->NotifyMenuItemHidden( + menu_obj, element_id); + } + }); + }; + + [_menuObservers + addObject:[[NSNotificationCenter defaultCenter] + addObserverForName:NSMenuDidEndTrackingNotification + object:menu + queue:nil + usingBlock:hidden_callback]]; + } +} + +@end
diff --git a/ui/views/controls/menu/menu_runner_impl_cocoa.h b/ui/views/controls/menu/menu_runner_impl_cocoa.h index 328fc57..50291eb0 100644 --- a/ui/views/controls/menu/menu_runner_impl_cocoa.h +++ b/ui/views/controls/menu/menu_runner_impl_cocoa.h
@@ -13,7 +13,7 @@ #include "ui/views/controls/menu/menu_runner_impl_interface.h" @class MenuControllerCocoa; -@class MenuControllerDelegate; +@class MenuControllerCocoaDelegateImpl; namespace gfx { class RoundedCornersF; @@ -56,7 +56,7 @@ base::scoped_nsobject<MenuControllerCocoa> menu_controller_; // The delegate for the |menu_controller_|. - base::scoped_nsobject<MenuControllerDelegate> menu_delegate_; + base::scoped_nsobject<MenuControllerCocoaDelegateImpl> menu_delegate_; // Are we in run waiting for it to return? bool running_ = false;
diff --git a/ui/views/controls/menu/menu_runner_impl_cocoa.mm b/ui/views/controls/menu/menu_runner_impl_cocoa.mm index c0818ab3..9ad468f 100644 --- a/ui/views/controls/menu/menu_runner_impl_cocoa.mm +++ b/ui/views/controls/menu/menu_runner_impl_cocoa.mm
@@ -26,6 +26,7 @@ #include "ui/native_theme/native_theme.h" #include "ui/strings/grit/ui_strings.h" #include "ui/views/controls/menu/menu_config.h" +#import "ui/views/controls/menu/menu_controller_cocoa_delegate_impl.h" #include "ui/views/controls/menu/menu_runner_impl_adapter.h" #include "ui/views/controls/menu/new_badge.h" #include "ui/views/interaction/element_tracker_views.h" @@ -36,333 +37,9 @@ constexpr CGFloat kNativeCheckmarkWidth = 18; constexpr CGFloat kNativeMenuItemHeight = 18; -constexpr CGFloat kIPHDotSize = 6; - -NSImage* NewTagImage(const ui::ColorProvider* color_provider) { - // 1. Make the attributed string. - - NSString* badge_text = l10n_util::GetNSString(IDS_NEW_BADGE); - - // The preferred font is slightly smaller and slightly more bold than the - // menu font. The size change is required to make it look correct in the - // badge; we add a small degree of bold to prevent color smearing/blurring - // due to font smoothing. This ensures readability on all platforms and in - // both light and dark modes. - gfx::Font badge_font = gfx::Font( - new gfx::PlatformFontMac(gfx::PlatformFontMac::SystemFontType::kMenu)); - badge_font = badge_font.Derive(views::NewBadge::kNewBadgeFontSizeAdjustment, - gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM); - - DCHECK(color_provider); - NSColor* badge_text_color = skia::SkColorToSRGBNSColor( - color_provider->GetColor(ui::kColorButtonBackgroundProminent)); - - NSDictionary* badge_attrs = @{ - NSFontAttributeName : badge_font.GetNativeFont(), - NSForegroundColorAttributeName : badge_text_color, - }; - - NSMutableAttributedString* badge_attr_string = - [[NSMutableAttributedString alloc] initWithString:badge_text - attributes:badge_attrs]; - - // 2. Calculate the size required. - - NSSize badge_size = [badge_attr_string size]; - badge_size.width = trunc(badge_size.width); - badge_size.height = trunc(badge_size.height); - - badge_size.width += 2 * views::NewBadge::kNewBadgeInternalPadding + - 2 * views::NewBadge::kNewBadgeHorizontalMargin; - badge_size.height += views::NewBadge::kNewBadgeInternalPaddingTopMac; - - // 3. Craft the image. - - return [NSImage - imageWithSize:badge_size - flipped:NO - drawingHandler:^(NSRect dest_rect) { - NSRect badge_frame = NSInsetRect( - dest_rect, views::NewBadge::kNewBadgeHorizontalMargin, 0); - NSBezierPath* rounded_badge_rect = [NSBezierPath - bezierPathWithRoundedRect:badge_frame - xRadius:views::NewBadge::kNewBadgeCornerRadius - yRadius:views::NewBadge::kNewBadgeCornerRadius]; - DCHECK(color_provider); - NSColor* badge_color = skia::SkColorToSRGBNSColor( - color_provider->GetColor(ui::kColorButtonBackgroundProminent)); - [badge_color set]; - [rounded_badge_rect fill]; - - NSPoint badge_text_location = NSMakePoint( - NSMinX(badge_frame) + views::NewBadge::kNewBadgeInternalPadding, - NSMinY(badge_frame) + - views::NewBadge::kNewBadgeInternalPaddingTopMac); - [badge_attr_string drawAtPoint:badge_text_location]; - - return YES; - }]; -} - -NSImage* IPHDotImage(const ui::ColorProvider* color_provider) { - // Embed horizontal centering space as NSMenuItem will otherwise left-align - // it. - return [NSImage - imageWithSize:NSMakeSize(2 * kIPHDotSize, kIPHDotSize) - flipped:NO - drawingHandler:^(NSRect dest_rect) { - NSBezierPath* dot_path = [NSBezierPath - bezierPathWithOvalInRect:NSMakeRect(kIPHDotSize / 2, 0, kIPHDotSize, - kIPHDotSize)]; - NSColor* dot_color = skia::SkColorToSRGBNSColor( - color_provider->GetColor(ui::kColorButtonBackgroundProminent)); - [dot_color set]; - [dot_path fill]; - - return YES; - }]; -} } // namespace -// --- Private API begin --- - -@interface NSCarbonMenuImpl : NSObject -- (void)highlightItemAtIndex:(NSInteger)index; -@end - -@interface NSMenu () -- (NSCarbonMenuImpl*)_menuImpl; -- (CGRect)_boundsIfOpen; -@end - -// --- Private API end --- - -// An NSTextAttachmentCell to show the [New] tag on a menu item. -// -// /!\ WARNING /!\ -// -// Do NOT update to the "new in macOS 10.11" API of NSTextAttachment.image until -// macOS 10.15 is the minimum required macOS for Chromium. Because menus are -// Carbon-based, the new NSTextAttachment.image API did not function correctly -// until then. Specifically, in macOS 10.11-10.12, images that use the new API -// do not appear. In macOS 10.13-10.14, the flipped flag of -[NSImage -// imageWithSize:flipped:drawingHandler:] is not respected. Only when 10.15 is -// the minimum required OS can https://crrev.com/c/2572937 be relanded. -@interface NewTagAttachmentCell : NSTextAttachmentCell -@end - -@implementation NewTagAttachmentCell - -- (instancetype)initWithColorProvider:(const ui::ColorProvider*)colorProvider { - if (self = [super init]) { - self.image = NewTagImage(colorProvider); - } - return self; -} - -- (NSPoint)cellBaselineOffset { - return NSMakePoint(0, views::NewBadge::kNewBadgeBaselineOffsetMac); -} - -- (NSSize)cellSize { - return [self.image size]; -} - -@end - -@interface IdentifierContainer : NSObject -- (std::vector<ui::ElementIdentifier>&)ids; -@end - -@implementation IdentifierContainer { - std::vector<ui::ElementIdentifier> _ids; -} -- (std::vector<ui::ElementIdentifier>&)ids { - return _ids; -} -@end - -@interface MenuControllerDelegate : NSObject <MenuControllerCocoaDelegate> { - NSMutableArray* _menuObservers; - gfx::Rect _anchorRect; -} -@end - -@implementation MenuControllerDelegate - -- (instancetype)init { - if (self = [super init]) { - _menuObservers = [[NSMutableArray alloc] init]; - } - return self; -} - -- (void)dealloc { - for (NSObject* obj in _menuObservers) - [[NSNotificationCenter defaultCenter] removeObserver:obj]; - - [_menuObservers release]; - - [super dealloc]; -} - -- (void)setAnchorRect:(gfx::Rect)rect { - _anchorRect = rect; -} - -- (void)controllerWillAddItem:(NSMenuItem*)menuItem - fromModel:(ui::MenuModel*)model - atIndex:(size_t)index - withColorProvider:(const ui::ColorProvider*)colorProvider { - if (model->IsNewFeatureAt(index)) { - NSMutableAttributedString* attrTitle = [[[NSMutableAttributedString alloc] - initWithString:menuItem.title] autorelease]; - - // /!\ WARNING /!\ Do not update this to use NSTextAttachment.image until - // macOS 10.15 is the minimum required OS. See the details on the class - // comment above. - NSTextAttachment* attachment = - [[[NSTextAttachment alloc] init] autorelease]; - attachment.attachmentCell = [[[NewTagAttachmentCell alloc] - initWithColorProvider:colorProvider] autorelease]; - - [attrTitle - appendAttributedString:[NSAttributedString - attributedStringWithAttachment:attachment]]; - - menuItem.attributedTitle = attrTitle; - } - - if (model->IsAlertedAt(index)) { - NSImage* iphDotImage = IPHDotImage(colorProvider); - menuItem.onStateImage = iphDotImage; - menuItem.offStateImage = iphDotImage; - menuItem.mixedStateImage = iphDotImage; - } -} - -- (void)controllerWillAddMenu:(NSMenu*)menu fromModel:(ui::MenuModel*)model { - absl::optional<size_t> alerted_index; - IdentifierContainer* const element_ids = - [[[IdentifierContainer alloc] init] autorelease]; - for (size_t i = 0; i < model->GetItemCount(); ++i) { - if (model->IsAlertedAt(i)) { - DCHECK(!alerted_index.has_value()); - alerted_index = i; - } - const ui::ElementIdentifier identifier = model->GetElementIdentifierAt(i); - if (identifier) - [element_ids ids].push_back(identifier); - } - - if (alerted_index.has_value() || ![element_ids ids].empty()) { - auto shown_callback = ^(NSNotification* note) { - NSMenu* const menu_obj = note.object; - if (alerted_index.has_value()) { - if ([menu respondsToSelector:@selector(_menuImpl)]) { - NSCarbonMenuImpl* menuImpl = [menu_obj _menuImpl]; - if ([menuImpl respondsToSelector:@selector(highlightItemAtIndex:)]) { - const auto index = - base::checked_cast<NSInteger>(alerted_index.value()); - [menuImpl highlightItemAtIndex:index]; - } - } - } - - // This situation is broken. - // - // First, NSMenuDidBeginTrackingNotification is the best way to get called - // right before the menu is shown, but at the moment of the call, the menu - // isn't open yet. Second, to make things worse, the implementation of - // -_boundsIfOpen *tries* to return an NSZeroRect if the menu isn't open - // yet but fails to detect it correctly, and instead falls over and - // returns a bogus bounds. Fortunately, those bounds are broken in a - // predictable way, so that situation can be detected. Don't even bother - // trying to make the -_boundsIfOpen call on the notification; there's no - // point. - // - // However, it takes just one trip through the main loop for the menu to - // appear and the -_boundsIfOpen call to work. - dispatch_after( - dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_MSEC), - dispatch_get_main_queue(), ^{ - // Even though all supported macOS releases have `-_boundsIfOpen`, - // because it's not official API, retain the fallback code written - // for earlier versions of macOSes. - // - // The fallback bounds are intentionally twice as wide as they - // should be because even though we could check the RTL bit and - // guess whether the menu should appear to the left or right of the - // anchor, if the anchor is near one side of the screen the menu - // could end up on the other side. - gfx::Rect screen_rect = _anchorRect; - CGSize menu_size = [menu_obj size]; - screen_rect.Inset(gfx::Insets::TLBR( - 0, -menu_size.width, -menu_size.height, -menu_size.width)); - if ([menu_obj respondsToSelector:@selector(_boundsIfOpen)]) { - CGRect bounds = [menu_obj _boundsIfOpen]; - // A broken bounds for a menu that isn't - // actually yet open looks like: {{zeroish, - // main display height}, {zeroish, zeroish}}. - auto is_zeroish = [](CGFloat f) { return f >= 0 && f < 0.00001; }; - if (is_zeroish(bounds.origin.x) && bounds.origin.y > 300 && - is_zeroish(bounds.size.width) && - is_zeroish(bounds.size.height)) { - // FYI, this never actually happens. - LOG(ERROR) << "Get menu bounds failed."; - } else { - screen_rect = gfx::ScreenRectFromNSRect(bounds); - } - } - - for (ui::ElementIdentifier element_id : [element_ids ids]) { - ui::ElementTrackerMac::GetInstance()->NotifyMenuItemShown( - menu_obj, element_id, screen_rect); - } - }); - }; - - [_menuObservers - addObject:[[NSNotificationCenter defaultCenter] - addObserverForName:NSMenuDidBeginTrackingNotification - object:menu - queue:nil - usingBlock:shown_callback]]; - } - - if (![element_ids ids].empty()) { - auto hidden_callback = ^(NSNotification* note) { - NSMenu* const menu_obj = note.object; - // We expect to see the following order of events: - // - element shown - // - element activated (optional) - // - element hidden - // However, the code that detects menu item activation is called *after* - // the current callback. To make sure the events happen in the right order - // we'll defer processing of element hidden events until the end of the - // current system event queue. - dispatch_after( - dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_MSEC), - dispatch_get_main_queue(), ^{ - for (ui::ElementIdentifier element_id : [element_ids ids]) { - ui::ElementTrackerMac::GetInstance()->NotifyMenuItemHidden( - menu_obj, element_id); - } - }); - }; - - [_menuObservers - addObject:[[NSNotificationCenter defaultCenter] - addObserverForName:NSMenuDidEndTrackingNotification - object:menu - queue:nil - usingBlock:hidden_callback]]; - } -} - -@end - namespace views::internal { namespace { @@ -482,7 +159,7 @@ ui::MenuModel* menu, base::RepeatingClosure on_menu_closed_callback) : on_menu_closed_callback_(std::move(on_menu_closed_callback)) { - menu_delegate_.reset([[MenuControllerDelegate alloc] init]); + menu_delegate_.reset([[MenuControllerCocoaDelegateImpl alloc] init]); menu_controller_.reset([[MenuControllerCocoa alloc] initWithModel:menu delegate:menu_delegate_.get()
diff --git a/ui/views/interaction/element_tracker_views.cc b/ui/views/interaction/element_tracker_views.cc index a18b745..b475bff7 100644 --- a/ui/views/interaction/element_tracker_views.cc +++ b/ui/views/interaction/element_tracker_views.cc
@@ -34,6 +34,10 @@ TrackedElementViews::~TrackedElementViews() = default; +gfx::Rect TrackedElementViews::GetScreenBounds() const { + return view()->GetBoundsInScreen(); +} + std::string TrackedElementViews::ToString() const { auto result = TrackedElement::ToString(); result.append(" with view ");
diff --git a/ui/views/interaction/element_tracker_views.h b/ui/views/interaction/element_tracker_views.h index ba8562fe..01987f93 100644 --- a/ui/views/interaction/element_tracker_views.h +++ b/ui/views/interaction/element_tracker_views.h
@@ -35,6 +35,8 @@ View* view() { return view_; } const View* view() const { return view_; } + // TrackedElement: + gfx::Rect GetScreenBounds() const override; std::string ToString() const override; DECLARE_FRAMEWORK_SPECIFIC_METADATA()
diff --git a/ui/webui/resources/cr_components/help_bubble/help_bubble.html b/ui/webui/resources/cr_components/help_bubble/help_bubble.html index 9155eed..3d37b6a 100644 --- a/ui/webui/resources/cr_components/help_bubble/help_bubble.html +++ b/ui/webui/resources/cr_components/help_bubble/help_bubble.html
@@ -2,6 +2,7 @@ :host { border-radius: 8px; box-shadow: 0 6px 10px 4px rgba(60, 64, 67, 0.15), 0 2px 3px rgba(60, 64, 67, 0.3); + box-sizing: border-box; position: absolute; z-index: 1; } @@ -140,17 +141,14 @@ --help-bubble-text-color: var(--google-grey-200); background-color: var(--help-bubble-background); border-radius: 8px; + box-sizing: border-box; color: var(--help-bubble-text-color); display: flex; flex-direction: column; justify-content: space-between; padding: 16px 20px; position: relative; - /* - * actual width is 340px when adding padding - * cannot use 'box-sizing: border-box' here because size calculation in js - */ - width: 300px; + width: 340px; } #main { @@ -265,7 +263,7 @@ <p id="mainBody">[[bodyText]]</p> </div> <div id="buttons" hidden$="[[!buttons.length]]"> - <template is="dom-repeat" items="[[buttons]]" sort="buttonSortFunc_"> + <template is="dom-repeat" id="buttonlist" items="[[buttons]]" sort="buttonSortFunc_"> <cr-button id$="[[getButtonId_(itemsIndex)]]" tabindex$="[[getButtonTabIndex_(itemsIndex, item.isDefault)]]" class$="[[getButtonClass_(item.isDefault)]]"
diff --git a/ui/webui/resources/cr_components/help_bubble/help_bubble.ts b/ui/webui/resources/cr_components/help_bubble/help_bubble.ts index ac32c73..6a68408 100644 --- a/ui/webui/resources/cr_components/help_bubble/help_bubble.ts +++ b/ui/webui/resources/cr_components/help_bubble/help_bubble.ts
@@ -20,7 +20,7 @@ import {CrIconButtonElement} from '//resources/cr_elements/cr_icon_button/cr_icon_button.js'; import {assert, assertNotReached} from '//resources/js/assert_ts.js'; import {isWindows} from '//resources/js/platform.js'; -import {DomRepeatEvent, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {DomRepeat, DomRepeatEvent, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {getTemplate} from './help_bubble.html.js'; import {HelpBubbleArrowPosition, HelpBubbleButtonParams, Progress} from './help_bubble.mojom-webui.js'; @@ -42,11 +42,22 @@ nativeId: any, }>; +type ResizeListener = (this: Window, ev: UIEvent) => any; + +function debounceEnd(fn: Function, time: number = 50) { + let timerId: number|undefined; + return () => { + clearTimeout(timerId); + timerId = setTimeout(fn, time); + }; +} + export interface HelpBubbleElement { $: { arrow: HTMLElement, bodyIcon: HTMLElement, buttons: HTMLElement, + buttonlist: DomRepeat, close: CrIconButtonElement, main: HTMLElement, mainBody: HTMLElement, @@ -94,6 +105,8 @@ forceCloseButton: boolean; timeoutMs: number|null = null; timeoutTimerId: number|null = null; + debouncedUpdate: ResizeListener|EventListenerOrEventListenerObject|null = + null; /** * HTMLElement corresponding to |this.nativeId|. @@ -133,6 +146,17 @@ this.updatePosition_(); this.setAnchorHighlight_(true); + this.debouncedUpdate = debounceEnd(() => { + if (this.anchorElement_) { + this.updatePosition_(); + } + }, 50); + + this.$.buttonlist.addEventListener( + 'rendered-item-count-changed', + this.debouncedUpdate as EventListenerOrEventListenerObject); + window.addEventListener('resize', this.debouncedUpdate as ResizeListener); + if (this.timeoutMs !== null) { const timedOutCallback = () => { this.dispatchEvent(new CustomEvent(HELP_BUBBLE_TIMED_OUT_EVENT, { @@ -162,6 +186,14 @@ clearInterval(this.timeoutTimerId); this.timeoutTimerId = null; } + if (this.debouncedUpdate) { + window.removeEventListener( + 'resize', this.debouncedUpdate as ResizeListener); + this.$.buttonlist.removeEventListener( + 'rendered-item-count-changed', + this.debouncedUpdate as EventListenerOrEventListenerObject); + this.debouncedUpdate = null; + } } /** @@ -348,96 +380,98 @@ // Inclusive of 8px visible arrow and 8px margin. const anchorRect = this.anchorElement_.getBoundingClientRect(); - const helpBubbleRect = this.getBoundingClientRect(); const anchorRectCenter = { x: anchorRect.left + (anchorRect.width / 2), y: anchorRect.top + (anchorRect.height / 2), }; + const helpBubbleRect = this.getBoundingClientRect(); - // component is inserted after anchor so start with a reset - let transform = `translateY(-${anchorRect.height}px) `; + // component is inserted at mixin root so start with anchor offsets + let offsetX = this.anchorElement_.offsetLeft; + let offsetY = this.anchorElement_.offsetTop; // Move HelpBubble to correct side of the anchorElement switch (this.position) { case HelpBubbleArrowPosition.TOP_LEFT: case HelpBubbleArrowPosition.TOP_CENTER: case HelpBubbleArrowPosition.TOP_RIGHT: - transform += `translateY(${ - anchorRect.height - }px) translateY(${ANCHOR_OFFSET}px) `; + offsetY += anchorRect.height + ANCHOR_OFFSET; break; case HelpBubbleArrowPosition.BOTTOM_LEFT: case HelpBubbleArrowPosition.BOTTOM_CENTER: case HelpBubbleArrowPosition.BOTTOM_RIGHT: - transform += `translateY(-100%) translateY(-${ANCHOR_OFFSET}px) `; + offsetY -= (helpBubbleRect.height + ANCHOR_OFFSET); break; case HelpBubbleArrowPosition.LEFT_TOP: case HelpBubbleArrowPosition.LEFT_CENTER: case HelpBubbleArrowPosition.LEFT_BOTTOM: - transform += `translateX(${ - anchorRect.width - }px) translateX(${ANCHOR_OFFSET}px) `; + offsetX += anchorRect.width + ANCHOR_OFFSET; break; case HelpBubbleArrowPosition.RIGHT_TOP: case HelpBubbleArrowPosition.RIGHT_CENTER: case HelpBubbleArrowPosition.RIGHT_BOTTOM: - transform += `translateX(-100%) translateX(-${ANCHOR_OFFSET}px) `; + offsetX -= (helpBubbleRect.width + ANCHOR_OFFSET); break; default: assertNotReached(); } + // Move HelpBubble along the anchorElement edge according to arrow position switch (this.position) { case HelpBubbleArrowPosition.TOP_LEFT: case HelpBubbleArrowPosition.BOTTOM_LEFT: - // If anchor element is small, point arrow to center of anchor element + // If anchor element width is small, point arrow to center of anchor + // element if ((anchorRect.left + ARROW_OFFSET_FROM_EDGE) > anchorRectCenter.x) { - transform += `translateX(${ - (anchorRect.width / 2) - ARROW_OFFSET_FROM_EDGE}px)`; + offsetX += (anchorRect.width / 2) - ARROW_OFFSET_FROM_EDGE; } break; case HelpBubbleArrowPosition.TOP_CENTER: case HelpBubbleArrowPosition.BOTTOM_CENTER: - transform += `translateX(${ - (anchorRect.width / 2) - (helpBubbleRect.width / 2) - }px)`; + offsetX += (anchorRect.width / 2) - (helpBubbleRect.width / 2); break; case HelpBubbleArrowPosition.TOP_RIGHT: case HelpBubbleArrowPosition.BOTTOM_RIGHT: - // If anchor element is small, point arrow to center of anchor element + // If anchor element width is small, point arrow to center of anchor + // element if ((anchorRect.right - ARROW_OFFSET_FROM_EDGE) < anchorRectCenter.x) { - transform += `translateX(${ - (anchorRect.width / 2) - - (helpBubbleRect.width - ARROW_OFFSET_FROM_EDGE)}px)`; + offsetX += (anchorRect.width / 2) - helpBubbleRect.width + + ARROW_OFFSET_FROM_EDGE; } else { // Right-align bubble and anchor elements - transform += - `translateX(${anchorRect.width - helpBubbleRect.width}px)`; + offsetX += anchorRect.width - helpBubbleRect.width; } break; case HelpBubbleArrowPosition.LEFT_TOP: case HelpBubbleArrowPosition.RIGHT_TOP: - transform += `translateY(${ - (anchorRect.height / 2) - ARROW_OFFSET_FROM_EDGE - }px)`; + // If anchor element height is small, point arrow to center of anchor + // element + if ((anchorRect.top + ARROW_OFFSET_FROM_EDGE) > anchorRectCenter.y) { + offsetY += (anchorRect.height / 2) - ARROW_OFFSET_FROM_EDGE; + } break; case HelpBubbleArrowPosition.LEFT_CENTER: case HelpBubbleArrowPosition.RIGHT_CENTER: - transform += `translateY(${ - (anchorRect.height / 2) - (helpBubbleRect.height / 2) - }px)`; + offsetY += (anchorRect.height / 2) - (helpBubbleRect.height / 2); break; case HelpBubbleArrowPosition.LEFT_BOTTOM: case HelpBubbleArrowPosition.RIGHT_BOTTOM: - transform += `translateY(${ - (anchorRect.height / 2) - - (helpBubbleRect.height - ARROW_OFFSET_FROM_EDGE) - }px)`; + // If anchor element height is small, point arrow to center of anchor + // element + if ((anchorRect.bottom - ARROW_OFFSET_FROM_EDGE) < anchorRectCenter.y) { + offsetY += (anchorRect.height / 2) - helpBubbleRect.height + + ARROW_OFFSET_FROM_EDGE; + } else { + // Bottom-align bubble and anchor elements + offsetY += anchorRect.height - helpBubbleRect.height; + } break; default: assertNotReached(); } - this.style.transform = transform; + + this.style.top = offsetY.toString() + 'px'; + this.style.left = offsetX.toString() + 'px'; } /**
diff --git a/ui/webui/resources/cr_components/help_bubble/help_bubble_controller.ts b/ui/webui/resources/cr_components/help_bubble/help_bubble_controller.ts index 66669b6d..1637ece4 100644 --- a/ui/webui/resources/cr_components/help_bubble/help_bubble_controller.ts +++ b/ui/webui/resources/cr_components/help_bubble/help_bubble_controller.ts
@@ -7,7 +7,9 @@ import {HelpBubbleElement} from './help_bubble.js'; import {HelpBubbleParams} from './help_bubble.mojom-webui.js'; -export type Trackable = string|HTMLElement; +type Root = HTMLElement|ShadowRoot&{shadowRoot?: ShadowRoot}; + +export type Trackable = string|string[]|HTMLElement; /** * HelpBubble controller class @@ -55,6 +57,8 @@ let anchor: HTMLElement|null = null; if (typeof trackable === 'string') { anchor = this.root_.querySelector<HTMLElement>(trackable); + } else if (Array.isArray(trackable)) { + anchor = this.deepQuery(trackable); } else if (trackable instanceof HTMLElement) { anchor = trackable; } else { @@ -70,6 +74,22 @@ return true; } + deepQuery(selectors: string[]): HTMLElement|null { + let cur: Root = this.root_; + for (const selector of selectors) { + if (cur.shadowRoot) { + cur = cur.shadowRoot; + } + const el: HTMLElement|null = cur.querySelector(selector); + if (!el) { + return null; + } else { + cur = el; + } + } + return cur as HTMLElement; + } + hasElement() { return !!this.bubble_; } @@ -121,10 +141,8 @@ !this.bubble_.progress || this.bubble_.progress.total >= this.bubble_.progress.current); - // insert after anchor - if nextSibling is null, bubble will - // be added as the last child of parentNode - this.anchor_!.parentNode!.insertBefore( - this.bubble_, this.anchor_!.nextSibling); + assert(this.root_); + this.root_.appendChild(this.bubble_); return this.bubble_; }
diff --git a/ui/webui/resources/cr_components/help_bubble/help_bubble_mixin.ts b/ui/webui/resources/cr_components/help_bubble/help_bubble_mixin.ts index 403b458..8da6ec23 100644 --- a/ui/webui/resources/cr_components/help_bubble/help_bubble_mixin.ts +++ b/ui/webui/resources/cr_components/help_bubble/help_bubble_mixin.ts
@@ -102,8 +102,10 @@ /** * Maps `nativeId`, which should be the name of a ui::ElementIdentifier - * referenced by the WebUIController, with either an `htmlId` of - * an element in this component or an arbitrary HTMLElement. + * referenced by the WebUIController, with either: + * - a selector + * - an array of selectors (will traverse shadow DOM elements) + * - an arbitrary HTMLElement * * Example: * registerHelpBubbleIdentifier( @@ -113,8 +115,12 @@ * Example: * registerHelpBubbleIdentifier( * 'kMyComponentTitleLabelElementIdentifier', - * this.$.list.childNodes[0]); + * ['#child-component', '#child-component-button']); * + * Example: + * registerHelpBubbleIdentifier( + * 'kMyComponentTitleLabelElementIdentifier', + * this.$.list.childNodes[0]); * * See README.md for full instructions. *
diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn index 5a5fb708..82a9112 100644 --- a/weblayer/test/BUILD.gn +++ b/weblayer/test/BUILD.gn
@@ -6,7 +6,6 @@ import("//build/config/ui.gni") import("//testing/test.gni") import("//tools/grit/grit_rule.gni") -import("//tools/v8_context_snapshot/v8_context_snapshot.gni") import("//weblayer/variables.gni") if (is_android) { @@ -69,15 +68,12 @@ ] } - android_assets("weblayer_test_assets") { + java_group("weblayer_test_assets") { testonly = true - disable_compression = true - deps = [ "//third_party/icu:icu_assets" ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] - } + deps = [ + "//gin:v8_snapshot_assets", + "//third_party/icu:icu_assets", + ] } java_cpp_enum("generated_enums") {