diff --git a/DEPS b/DEPS index f635a89..7d41394 100644 --- a/DEPS +++ b/DEPS
@@ -280,7 +280,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': '83c4cebc1e8fb4e138eb51745351349ca7cf0b07', + 'skia_revision': '019f67c30a1eba03ba87a68db2d190f3076ea431', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -288,11 +288,11 @@ # 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': '5ef62fa1999efb38bd2cf4a7db258ba540d1d5fa', + 'angle_revision': '9070e279a8877ef371c3855028d3ed3999660221', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': 'd1116fa9e9dce90556f8db973ba42b246eb633f5', + 'swiftshader_revision': '7987bda077c85e2f67cf1ef55a19179729450cc1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. @@ -307,7 +307,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:8.20220705.2.1', + 'fuchsia_version': 'version:8.20220705.3.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -359,7 +359,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': 'ad4a201d4b39b0aa06eff542338cbe1097f2e486', + 'devtools_frontend_revision': '7f3fc5962f8a19a219fe4586685c29d1954409ce', # 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. @@ -395,7 +395,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': 'a1d3003e16587926b68893750b0a5f012697c1fa', + 'dawn_revision': '760c399cfb1d541e5fb6ad1a7a72b715b8f09b9c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -929,7 +929,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': 'g9HIhocBsCFlSh1b6fzvSBJB8WIKPqyWsauldtRS4DIC', + 'version': 'b_tAKDL0dC5K8jiRRvQK5XNLJbu5xNUQqGkvSI-hFIMC', }, ], 'condition': 'checkout_android', @@ -1035,7 +1035,7 @@ }, { 'package': 'chromium/third_party/android_sdk/public/cmdline-tools', - 'version': 'PGPmqJtSIQ84If155ba7iTU846h5WJ-bL5d_OoUWEWYC', + 'version': 'IPzAG-uU5zVMxohpg9-7-N0tQC1TCSW1VbrBFw7Ld04C', }, ], 'condition': 'checkout_android_native_support', @@ -1144,7 +1144,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' + '@' + 'bf3e1a272dd5aee57a9c1dad318498291ebe96ec', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '8b9869c0584bf77c8e77eeeb2bea1ccf5aca7298', 'condition': 'checkout_chromeos', }, @@ -1564,7 +1564,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '28934fcd20d1fa20ea8d21ac6f93391b4b7e348d', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'b1989b0ff009c79d1d9e3f6b13b2e017ba2e5c9d', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1615,7 +1615,7 @@ 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': 'YYmB-DSqgEMUFtrSQw6plpnZygVruQmxrc3Qqeac8ZEC', + 'version': 'HmHfvTcsLzsBa_zD-K3mzWcLgCCjj2q2C0G7yLng82wC', }, ], 'condition': 'checkout_android', @@ -1695,7 +1695,7 @@ 'dep_type': 'cipd', }, - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@5d976018641e3b231b77a35c3a9b40bdbe31e91a', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@b3ca833ea15a10d8e779b65850ce4f52e48ab4c8', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907', @@ -1731,10 +1731,10 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'e58ed2132aa47ac110a4cce1763abfa34f4fa34e', 'src/third_party/webgpu-cts/src': - Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '5de908c54a8d309db6b5743be4a4d8aca777b1d7', + Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '8cfc317e23c7f7a73f3c7caf5203a55542471f56', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'a7e15a2b7e9acc361c9233f901ab16a318e69b9d', + Var('webrtc_git') + '/src.git' + '@' + 'e9e4e342e6557660f0a4a22e31b5475d805e72a1', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1807,7 +1807,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@aff538c234b2ae8b402b4bf53adafa0959b6edd1', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@4079811b57ec2599c498cd146b519a098724cdb0', 'condition': 'checkout_src_internal', }, @@ -3626,6 +3626,7 @@ '-absl', '-third_party/abseil-cpp', '+third_party/abseil-cpp/absl/base/attributes.h', + "+third_party/abseil-cpp/absl/functional/function_ref.h", "+third_party/abseil-cpp/absl/numeric/int128.h", '+third_party/abseil-cpp/absl/types/optional.h', '+third_party/abseil-cpp/absl/types/variant.h',
diff --git a/WATCHLISTS b/WATCHLISTS index 36e6b43..74ca3797 100644 --- a/WATCHLISTS +++ b/WATCHLISTS
@@ -1781,7 +1781,7 @@ 'smb': { 'filepath': 'chrome/browser/ash/file_system_provider' \ '|chrome/browser/ash/smb_client'\ - '|chromeos/ash/components/dbus/smb_provider_client', + '|chromeos/ash/components/dbus/smbprovider', }, 'source_idls': { 'filepath': 'third_party/blink/renderer/(core|modules|platform)/.*\.idl',
diff --git a/ash/components/arc/BUILD.gn b/ash/components/arc/BUILD.gn index 052e979..8a8f14fe 100644 --- a/ash/components/arc/BUILD.gn +++ b/ash/components/arc/BUILD.gn
@@ -129,6 +129,7 @@ "//chromeos/ash/components/dbus/concierge:concierge_proto", "//chromeos/ash/components/dbus/patchpanel", "//chromeos/ash/components/dbus/patchpanel:patchpanel_proto", + "//chromeos/ash/components/dbus/resourced", "//chromeos/ash/components/dbus/session_manager", "//chromeos/ash/components/dbus/spaced:spaced", "//chromeos/ash/components/dbus/userdataauth", @@ -140,7 +141,6 @@ "//chromeos/dbus/permission_broker", "//chromeos/dbus/power", "//chromeos/dbus/power:power_manager_proto", - "//chromeos/dbus/resourced", "//chromeos/login/login_state", "//chromeos/network", "//chromeos/ui/frame", @@ -451,6 +451,7 @@ "//chromeos/ash/components/dbus/concierge", "//chromeos/ash/components/dbus/patchpanel", "//chromeos/ash/components/dbus/patchpanel:patchpanel_proto", + "//chromeos/ash/components/dbus/resourced", "//chromeos/ash/components/dbus/session_manager", "//chromeos/ash/components/dbus/session_manager:login_manager_proto", "//chromeos/ash/components/dbus/upstart", @@ -460,7 +461,6 @@ "//chromeos/dbus/permission_broker", "//chromeos/dbus/power", "//chromeos/dbus/power:power_manager_proto", - "//chromeos/dbus/resourced:resourced", "//chromeos/dbus/tpm_manager:tpm_manager", "//chromeos/ui/frame", "//components/account_id",
diff --git a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.cc b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.cc index f8ff3da..6d4f17e 100644 --- a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.cc +++ b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.cc
@@ -57,41 +57,41 @@ : arc_bridge_service_(bridge_service), arc_metrics_service_(ArcMetricsService::GetForBrowserContext(context)) { DCHECK(arc_metrics_service_ != nullptr); - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ash::ResourcedClient* client = ash::ResourcedClient::Get(); DCHECK(client); client->AddArcVmObserver(this); arc_bridge_service_->process()->AddObserver(this); } ArcMemoryPressureBridge::~ArcMemoryPressureBridge() { - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ash::ResourcedClient* client = ash::ResourcedClient::Get(); if (client) client->RemoveArcVmObserver(this); arc_bridge_service_->process()->RemoveObserver(this); } void ArcMemoryPressureBridge::OnMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm level, + ash::ResourcedClient::PressureLevelArcVm level, uint64_t reclaim_target_kb) { if (memory_pressure_in_flight_) return; mojom::PressureLevel arc_level; mojom::ProcessState arc_level_deprecated; switch (level) { - case chromeos::ResourcedClient::PressureLevelArcVm::NONE: + case ash::ResourcedClient::PressureLevelArcVm::NONE: return; - case chromeos::ResourcedClient::PressureLevelArcVm::CACHED: + case ash::ResourcedClient::PressureLevelArcVm::CACHED: arc_level = mojom::PressureLevel::kCached; arc_level_deprecated = mojom::ProcessState::R_CACHED_ACTIVITY_CLIENT; break; - case chromeos::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE: + case ash::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE: arc_level = mojom::PressureLevel::kPerceptible; arc_level_deprecated = mojom::ProcessState::R_TOP; break; - case chromeos::ResourcedClient::PressureLevelArcVm::FOREGROUND: + case ash::ResourcedClient::PressureLevelArcVm::FOREGROUND: arc_level = mojom::PressureLevel::kForeground; arc_level_deprecated = mojom::ProcessState::R_TOP; break;
diff --git a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.h b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.h index db163751..817525a 100644 --- a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.h +++ b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge.h
@@ -8,7 +8,7 @@ #include "ash/components/arc/metrics/arc_metrics_service.h" #include "ash/components/arc/session/connection_observer.h" #include "base/memory/weak_ptr.h" -#include "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "components/keyed_service/core/keyed_service.h" namespace content { @@ -21,7 +21,7 @@ class ArcMemoryPressureBridge : public KeyedService, - public chromeos::ResourcedClient::ArcVmObserver, + public ash::ResourcedClient::ArcVmObserver, public ConnectionObserver<mojom::ProcessInstance> { public: // Returns singleton instance for the given BrowserContext, @@ -40,7 +40,7 @@ ~ArcMemoryPressureBridge() override; // Implements ResourcedClient::ArcVmObserver. - void OnMemoryPressure(chromeos::ResourcedClient::PressureLevelArcVm level, + void OnMemoryPressure(ash::ResourcedClient::PressureLevelArcVm level, uint64_t reclaim_target_kb) override; // ConnectionObserver<mojom::ProcessInstance> overrides.
diff --git a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge_unittest.cc b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge_unittest.cc index f57d8b6..63459dfd 100644 --- a/ash/components/arc/memory_pressure/arc_memory_pressure_bridge_unittest.cc +++ b/ash/components/arc/memory_pressure/arc_memory_pressure_bridge_unittest.cc
@@ -13,7 +13,7 @@ #include "ash/components/arc/session/arc_service_manager.h" #include "ash/components/arc/test/fake_process_instance.h" #include "ash/components/arc/test/test_browser_context.h" -#include "chromeos/dbus/resourced/fake_resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/fake_resourced_client.h" #include "content/public/test/browser_task_environment.h" #include "mojo/public/cpp/system/platform_handle.h" #include "testing/gtest/include/gtest/gtest.h" @@ -67,7 +67,7 @@ ArcMemoryPressureBridge* bridge() { return bridge_; } - chromeos::FakeResourcedClient& resourced() { return fake_resourced_client_; } + ash::FakeResourcedClient& resourced() { return fake_resourced_client_; } FakeProcessInstance& process_instance() { return fake_process_instance_; } @@ -91,7 +91,7 @@ } AppKillObserver kill_observer_; - chromeos::FakeResourcedClient fake_resourced_client_; + ash::FakeResourcedClient fake_resourced_client_; content::BrowserTaskEnvironment task_environment_; TestingPrefServiceSimple local_state_; session_manager::SessionManager session_manager_; @@ -107,7 +107,7 @@ TEST_F(ArcMemoryPressureBridgeTest, PressureNone) { ASSERT_NE(nullptr, bridge()); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::NONE, + ash::ResourcedClient::PressureLevelArcVm::NONE, 1 /* reclaim_target_kb */); ASSERT_TRUE(process_instance().IsLastHostMemoryPressureChecked()); } @@ -121,7 +121,7 @@ process_instance().set_apply_host_memory_pressure_response( 1 /* killed */, UINT64_C(5368709120) /* reclaimed */); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::CACHED, + ash::ResourcedClient::PressureLevelArcVm::CACHED, 1 /* reclaim_target_kb */); ASSERT_TRUE(process_instance().CheckLastHostMemoryPressure( mojom::PressureLevel::kCached, 1024 /* reclaim_target */)); @@ -139,7 +139,7 @@ process_instance().set_apply_host_memory_pressure_response( 1 /* killed */, 2048 /* reclaimed */); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, + ash::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, 1 /* reclaim_target_kb */); ASSERT_TRUE(process_instance().CheckLastHostMemoryPressure( mojom::PressureLevel::kPerceptible, 1024 /* reclaim_target */)); @@ -157,7 +157,7 @@ process_instance().set_apply_host_memory_pressure_response( 1 /* killed */, 2048 /* reclaimed */); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::FOREGROUND, + ash::ResourcedClient::PressureLevelArcVm::FOREGROUND, 1 /* reclaim_target_kb */); ASSERT_TRUE(process_instance().CheckLastHostMemoryPressure( mojom::PressureLevel::kForeground, 1024 /* reclaim_target */)); @@ -180,10 +180,10 @@ // FakeProcessInstance::CheckLastHostMemoryPressure is not called first. So // these two calls in a row will fail if they are both forwarded to Mojo. resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, + ash::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, 1 /* reclaim_target_kb */); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, + ash::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, 2 /* reclaim_target_kb */); // Check that the first call is the most recent one, meaning the second did @@ -201,7 +201,7 @@ process_instance().set_apply_host_memory_pressure_response( 3 /* killed */, 4096 /* reclaimed */); resourced().FakeArcVmMemoryPressure( - chromeos::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, + ash::ResourcedClient::PressureLevelArcVm::PERCEPTIBLE, 3 /* reclaim_target_kb */); ASSERT_TRUE(process_instance().CheckLastHostMemoryPressure( mojom::PressureLevel::kPerceptible, 3072 /* reclaim_target */));
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index caf60f23..9d201726 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -259,6 +259,11 @@ const base::Feature kBorealisLinuxMode{"BorealisLinuxMode", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enable storage ballooning for Borealis. This takes precedence over +// kBorealisDiskManagement. +const base::Feature kBorealisStorageBallooning{ + "BorealisStorageBallooning", base::FEATURE_DISABLED_BY_DEFAULT}; + // Enable TermsOfServiceURL policy for managed users. // https://crbug.com/1221342 const base::Feature kManagedTermsOfService{"ManagedTermsOfService",
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 1c9e76f..8eacb301 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -113,6 +113,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kBorealisPermitted; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const base::Feature kBorealisStorageBallooning; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCalendarView; COMPONENT_EXPORT(ASH_CONSTANTS) extern const base::Feature kCalendarModelDebugMode;
diff --git a/base/BUILD.gn b/base/BUILD.gn index 006315e..d6f08e8d 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -918,6 +918,7 @@ "trace_event/trace_id_helper.h", "traits_bag.h", "tuple.h", + "types/always_false.h", "types/expected.h", "types/expected_internal.h", "types/id_type.h",
diff --git a/base/callback.h b/base/callback.h index 1fc7a95..8d26287 100644 --- a/base/callback.h +++ b/base/callback.h
@@ -17,6 +17,8 @@ #include "base/callback_internal.h" #include "base/check.h" #include "base/notreached.h" +#include "base/types/always_false.h" +#include "third_party/abseil-cpp/absl/functional/function_ref.h" // ----------------------------------------------------------------------------- // Usage documentation @@ -175,6 +177,25 @@ RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), std::move(*this), std::move(then)); } + + template <typename Signature> + // NOLINTNEXTLINE(google-explicit-constructor) + operator absl::FunctionRef<Signature>() & { + static_assert( + AlwaysFalse<Signature>, + "need to convert a base::OnceCallback to absl::FunctionRef? " + "Please bring up this use case on #cxx (Slack) or cxx@chromium.org."); + } + + template <typename Signature> + // NOLINTNEXTLINE(google-explicit-constructor) + operator absl::FunctionRef<Signature>() && { + static_assert( + AlwaysFalse<Signature>, + "using base::BindOnce() is not necessary with absl::FunctionRef; is it " + "possible to use a capturing lambda directly? If not, please bring up " + "this use case on #cxx (Slack) or cxx@chromium.org."); + } }; template <typename R, typename... Args> @@ -286,6 +307,25 @@ RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), std::move(*this), std::move(then)); } + + template <typename Signature> + // NOLINTNEXTLINE(google-explicit-constructor) + operator absl::FunctionRef<Signature>() & { + static_assert( + AlwaysFalse<Signature>, + "need to convert a base::RepeatingCallback to absl::FunctionRef? " + "Please bring up this use case on #cxx (Slack) or cxx@chromium.org."); + } + + template <typename Signature> + // NOLINTNEXTLINE(google-explicit-constructor) + operator absl::FunctionRef<Signature>() && { + static_assert( + AlwaysFalse<Signature>, + "using base::BindRepeating() is not necessary with absl::FunctionRef; " + "is it possible to use a capturing lambda directly? If not, please " + "bring up this use case on #cxx (Slack) or cxx@chromium.org."); + } }; } // namespace base
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h index 10f808c..7ee959f8 100644 --- a/base/memory/raw_ptr.h +++ b/base/memory/raw_ptr.h
@@ -129,6 +129,7 @@ // This is for accounting only, used by unit tests. static ALWAYS_INLINE void IncrementSwapCountForTest() {} + static ALWAYS_INLINE void IncrementLessCountForTest() {} static ALWAYS_INLINE void IncrementPointerToMemberOperatorCountForTest() {} }; @@ -272,6 +273,7 @@ // This is for accounting only, used by unit tests. static ALWAYS_INLINE void IncrementSwapCountForTest() {} + static ALWAYS_INLINE void IncrementLessCountForTest() {} static ALWAYS_INLINE void IncrementPointerToMemberOperatorCountForTest() {} private: @@ -459,6 +461,7 @@ // This is for accounting only, used by unit tests. static ALWAYS_INLINE void IncrementSwapCountForTest() {} + static ALWAYS_INLINE void IncrementLessCountForTest() {} static ALWAYS_INLINE void IncrementPointerToMemberOperatorCountForTest() {} private: @@ -549,6 +552,7 @@ // This is for accounting only, used by unit tests. static ALWAYS_INLINE void IncrementSwapCountForTest() {} + static ALWAYS_INLINE void IncrementLessCountForTest() {} static ALWAYS_INLINE void IncrementPointerToMemberOperatorCountForTest() {} private: @@ -1172,17 +1176,25 @@ // Override so set/map lookups do not create extra raw_ptr. This also allows // dangling pointers to be used for lookup. -template <typename T, typename I> -struct less<raw_ptr<T, I>> { +template <typename T, typename Impl> +struct less<raw_ptr<T, Impl>> { using is_transparent = void; - bool operator()(const raw_ptr<T, I>& lhs, const raw_ptr<T, I>& rhs) const { + bool operator()(const raw_ptr<T, Impl>& lhs, + const raw_ptr<T, Impl>& rhs) const { + Impl::IncrementLessCountForTest(); return lhs < rhs; } - bool operator()(T* lhs, const raw_ptr<T, I>& rhs) const { return lhs < rhs; } + bool operator()(T* lhs, const raw_ptr<T, Impl>& rhs) const { + Impl::IncrementLessCountForTest(); + return lhs < rhs; + } - bool operator()(const raw_ptr<T, I>& lhs, T* rhs) const { return lhs < rhs; } + bool operator()(const raw_ptr<T, Impl>& lhs, T* rhs) const { + Impl::IncrementLessCountForTest(); + return lhs < rhs; + } }; } // namespace std
diff --git a/base/memory/raw_ptr_unittest.cc b/base/memory/raw_ptr_unittest.cc index c4dfbaf..e248002 100644 --- a/base/memory/raw_ptr_unittest.cc +++ b/base/memory/raw_ptr_unittest.cc
@@ -87,6 +87,7 @@ static int g_get_for_extraction_cnt = INT_MIN; static int g_get_for_comparison_cnt = INT_MIN; static int g_wrapped_ptr_swap_cnt = INT_MIN; +static int g_wrapped_ptr_less_cnt = INT_MIN; static int g_pointer_to_member_operator_cnt = INT_MIN; static void ClearCounters() { @@ -96,6 +97,7 @@ g_get_for_extraction_cnt = 0; g_get_for_comparison_cnt = 0; g_wrapped_ptr_swap_cnt = 0; + g_wrapped_ptr_less_cnt = 0; g_pointer_to_member_operator_cnt = 0; } @@ -145,6 +147,10 @@ ++g_wrapped_ptr_swap_cnt; } + static ALWAYS_INLINE void IncrementLessCountForTest() { + ++g_wrapped_ptr_less_cnt; + } + static ALWAYS_INLINE void IncrementPointerToMemberOperatorCountForTest() { ++g_pointer_to_member_operator_cnt; } @@ -866,21 +872,34 @@ ClearCounters(); set.emplace(&x); EXPECT_EQ(1, g_wrap_raw_ptr_cnt); + EXPECT_EQ(0, g_wrapped_ptr_less_cnt); // Nothing to compare to yet. EXPECT_EQ(0, g_get_for_comparison_cnt); EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt); ClearCounters(); + set.emplace(ptr); + EXPECT_EQ(0, g_wrap_raw_ptr_cnt); + EXPECT_EQ(2, g_wrapped_ptr_less_cnt); // 1 element to compare to => 2 calls. + EXPECT_EQ(4, g_get_for_comparison_cnt); // 2 comparisons => 4 extractions. + EXPECT_EQ(0, g_get_for_extraction_cnt); + EXPECT_EQ(0, g_get_for_dereference_cnt); + + ClearCounters(); set.count(&x); EXPECT_EQ(0, g_wrap_raw_ptr_cnt); - EXPECT_NE(0, g_get_for_comparison_cnt); + EXPECT_EQ(2, g_wrapped_ptr_less_cnt); // 2 items to compare to => 4 calls. + // 2 comparisons => 2 extractions. Less than before, because this time a raw + // pointer is one side of the comparison. + EXPECT_EQ(2, g_get_for_comparison_cnt); EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt); ClearCounters(); set.count(ptr); EXPECT_EQ(0, g_wrap_raw_ptr_cnt); - EXPECT_NE(0, g_get_for_comparison_cnt); + EXPECT_EQ(2, g_wrapped_ptr_less_cnt); // 2 items to compare to => 4 calls. + EXPECT_EQ(4, g_get_for_comparison_cnt); // 2 comparisons => 4 extractions. EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt); } @@ -895,6 +914,7 @@ EXPECT_TRUE(ptr <= ptr); EXPECT_TRUE(ptr >= ptr); EXPECT_EQ(0, g_wrap_raw_ptr_cnt); + EXPECT_EQ(0, g_wrapped_ptr_less_cnt); // < is used directly, not std::less(). EXPECT_EQ(8, g_get_for_comparison_cnt); EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt); @@ -905,6 +925,7 @@ EXPECT_TRUE(ptr <= &x); EXPECT_TRUE(ptr >= &x); EXPECT_EQ(0, g_wrap_raw_ptr_cnt); + EXPECT_EQ(0, g_wrapped_ptr_less_cnt); EXPECT_EQ(4, g_get_for_comparison_cnt); EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt); @@ -915,6 +936,7 @@ EXPECT_TRUE(&x <= ptr); EXPECT_TRUE(&x >= ptr); EXPECT_EQ(0, g_wrap_raw_ptr_cnt); + EXPECT_EQ(0, g_wrapped_ptr_less_cnt); EXPECT_EQ(4, g_get_for_comparison_cnt); EXPECT_EQ(0, g_get_for_extraction_cnt); EXPECT_EQ(0, g_get_for_dereference_cnt);
diff --git a/base/memory/raw_ref_unittest.cc b/base/memory/raw_ref_unittest.cc index b652408e..9b264a78 100644 --- a/base/memory/raw_ref_unittest.cc +++ b/base/memory/raw_ref_unittest.cc
@@ -716,62 +716,62 @@ { auto r1 = raw_ref<int>(i[0]); auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, r2)); - EXPECT_FALSE(std::less<>()(r2, r1)); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, r2)); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, r1)); } { const auto r1 = raw_ref<int>(i[0]); const auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, r2)); - EXPECT_FALSE(std::less<>()(r2, r1)); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, r2)); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, r1)); } { auto r1 = raw_ref<const int>(i[0]); auto r2 = raw_ref<const int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, r2)); - EXPECT_FALSE(std::less<>()(r2, r1)); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, r2)); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, r1)); } { auto r1 = raw_ref<const int>(i[0]); auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, r2)); - EXPECT_FALSE(std::less<>()(r2, r1)); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, r2)); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, r1)); } { auto r1 = raw_ref<int>(i[0]); auto r2 = raw_ref<const int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, r2)); - EXPECT_FALSE(std::less<>()(r2, r1)); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, r2)); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, r1)); } { auto r1 = raw_ref<int>(i[0]); auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, i[1])); - EXPECT_FALSE(std::less<>()(r2, i[0])); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, i[1])); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, i[0])); } { const auto r1 = raw_ref<int>(i[0]); const auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, i[1])); - EXPECT_FALSE(std::less<>()(r2, i[0])); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, i[1])); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, i[0])); } { auto r1 = raw_ref<const int>(i[0]); auto r2 = raw_ref<const int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, i[1])); - EXPECT_FALSE(std::less<>()(r2, i[0])); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, i[1])); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, i[0])); } { auto r1 = raw_ref<const int>(i[0]); auto r2 = raw_ref<int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, i[1])); - EXPECT_FALSE(std::less<>()(r2, i[0])); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, i[1])); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, i[0])); } { auto r1 = raw_ref<int>(i[0]); auto r2 = raw_ref<const int>(i[1]); - EXPECT_TRUE(std::less<>()(r1, i[1])); - EXPECT_FALSE(std::less<>()(r2, i[0])); + EXPECT_TRUE(std::less<raw_ref<int>>()(r1, i[1])); + EXPECT_FALSE(std::less<raw_ref<int>>()(r2, i[0])); } }
diff --git a/base/types/always_false.h b/base/types/always_false.h new file mode 100644 index 0000000..80ecec7 --- /dev/null +++ b/base/types/always_false.h
@@ -0,0 +1,37 @@ +// Copyright 2022 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. + +#ifndef BASE_TYPES_ALWAYS_FALSE_H_ +#define BASE_TYPES_ALWAYS_FALSE_H_ + +namespace base { + +// A helper that can be used with a static_assert() that must always fail (e.g. +// for an undesirable template instantiation). Such a static_assert() cannot +// simply be written as static_assert(false, ...) because that would always fail +// to compile, even if the template was never instantiated. Instead, a common +// idiom is to force the static_assert() to depend on a template parameter so +// that it is only evaluated when the template is instantiated: +// +// template <typename U = T> +// void SomeDangerousMethodThatShouldNeverCompile() { +// static_assert(base::AlwaysFalse<U>, "explanatory message here"); +// } + +namespace internal { + +template <typename... Args> +struct AlwaysFalseHelper { + static constexpr bool kValue = false; +}; + +} // namespace internal + +template <typename... Args> +inline constexpr bool AlwaysFalse = + internal::AlwaysFalseHelper<Args...>::kValue; + +} // namespace base + +#endif // BASE_TYPES_ALWAYS_FALSE_H_
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index 5c11172..b7d5157 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -8.20220705.2.1 +8.20220705.3.1
diff --git a/chrome/VERSION b/chrome/VERSION index cb80e4f8..d1f82d4 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=105 MINOR=0 -BUILD=5163 +BUILD=5164 PATCH=0
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 9db63b1..b61756b8 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -2646,6 +2646,8 @@ // This differs slightly from its symbol's name since "enabled" is used // internally to refer to whether borealis is installed or not. constexpr char kBorealisPermittedInternalName[] = "borealis-enabled"; +constexpr char kBorealisStorageBallooningInternalName[] = + "borealis-storage-ballooning"; #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_CHROMEOS_ASH) @@ -7997,6 +7999,10 @@ {kBorealisPermittedInternalName, flag_descriptions::kBorealisPermittedName, flag_descriptions::kBorealisPermittedDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kBorealisPermitted)}, + {kBorealisStorageBallooningInternalName, + flag_descriptions::kBorealisStorageBallooningName, + flag_descriptions::kBorealisStorageBallooningDescription, kOsCrOS, + FEATURE_VALUE_TYPE(ash::features::kBorealisStorageBallooning)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) {"https-only-mode-setting", flag_descriptions::kHttpsOnlyModeName, @@ -8722,6 +8728,14 @@ flag_descriptions::kSyncEnableHistoryDataTypeDescription, kOsAll, FEATURE_VALUE_TYPE(syncer::kSyncEnableHistoryDataType)}, +#if BUILDFLAG(IS_CHROMEOS) + {"link-capturing-auto-display-intent-picker", + flag_descriptions::kLinkCapturingAutoDisplayIntentPickerName, + flag_descriptions::kLinkCapturingAutoDisplayIntentPickerDescription, + kOsCrOS | kOsLacros, + FEATURE_VALUE_TYPE(apps::features::kLinkCapturingAutoDisplayIntentPicker)}, +#endif // BUILDFLAG(IS_CHROMEOS) + // 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 @@ -8832,6 +8846,10 @@ return !base::FeatureList::IsEnabled(features::kBorealis); } + if (!strcmp(kBorealisStorageBallooningInternalName, entry.internal_name)) { + return !base::FeatureList::IsEnabled(features::kBorealis); + } + // Only show wallpaper fast refresh flag if channel is one of // Dev/Canary/Unknown. if (!strcmp(kWallpaperFastRefreshInternalName, entry.internal_name)) {
diff --git a/chrome/browser/apps/app_service/app_service_proxy_ash.cc b/chrome/browser/apps/app_service/app_service_proxy_ash.cc index 731660d6..8f1e859 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_ash.cc +++ b/chrome/browser/apps/app_service/app_service_proxy_ash.cc
@@ -594,7 +594,8 @@ void AppServiceProxyAsh::PerformPostLaunchTasks( apps::mojom::LaunchSource launch_source) { - if (apps_util::IsHumanLaunch(launch_source)) { + if (apps_util::IsHumanLaunch( + ConvertMojomLaunchSourceToLaunchSource(launch_source))) { ash::full_restore::FullRestoreService::MaybeCloseNotification(profile_); } }
diff --git a/chrome/browser/apps/app_service/metrics/website_metrics.cc b/chrome/browser/apps/app_service/metrics/website_metrics.cc index 71a361a..23a3181 100644 --- a/chrome/browser/apps/app_service/metrics/website_metrics.cc +++ b/chrome/browser/apps/app_service/metrics/website_metrics.cc
@@ -182,6 +182,11 @@ // `deletion_info`. webcontents_to_ukm_key_.clear(); url_infos_.clear(); + + DictionaryPrefUpdate usage_time_update(profile_->GetPrefs(), + kWebsiteUsageTime); + auto& dict = usage_time_update->GetDict(); + dict.clear(); } void WebsiteMetrics::HistoryServiceBeingDeleted( @@ -431,7 +436,13 @@ auto& dict = usage_time_update->GetDict(); dict.clear(); for (auto it : url_infos_) { - dict.Set(it.first.spec(), it.second.ConvertToValue()); + if (it.second.is_activated) { + it.second.running_time += base::TimeTicks::Now() - it.second.start_time; + it.second.start_time = base::TimeTicks::Now(); + } + if (!it.second.running_time.is_zero()) { + dict.Set(it.first.spec(), it.second.ConvertToValue()); + } } }
diff --git a/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc b/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc index cf57b60..aad724f 100644 --- a/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc +++ b/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc
@@ -190,6 +190,15 @@ EXPECT_EQ(promotable, promotable_value.value()); } + void VerifyNoUrlInfoInPref(const GURL& url) { + DictionaryPrefUpdate update( + ProfileManager::GetPrimaryUserProfile()->GetPrefs(), kWebsiteUsageTime); + auto& dict = update->GetDict(); + + const auto* url_info = dict.FindDict(url.spec()); + ASSERT_FALSE(url_info); + } + WebsiteMetrics* website_metrics() { DCHECK(app_platform_metrics_service_); return app_platform_metrics_service_->website_metrics_.get(); @@ -295,6 +304,7 @@ VerifyUrlInfo(GURL("https://b.example.org"), UrlContent::kFullUrl, /*is_activated=*/false, /*promotable=*/false); website_metrics()->OnFiveMinutes(); + VerifyNoUrlInfoInPref(GURL("https://a.example.org")); VerifyUrlInfoInPref(GURL("https://b.example.org"), UrlContent::kFullUrl, /*promotable=*/false); VerifyUrlInfoInPref(GURL("https://c.example.org"), UrlContent::kFullUrl, @@ -596,6 +606,8 @@ EXPECT_EQ(2u, webcontents_to_observer_map().size()); EXPECT_TRUE(webcontents_to_ukm_key().empty()); EXPECT_TRUE(url_infos().empty()); + VerifyNoUrlInfoInPref(GURL("https://a.example.org")); + VerifyNoUrlInfoInPref(GURL("https://b.example.org")); // Create 2 tabs for the 2 browsers separately. auto* tab_app3 = InsertForegroundTab(browser1, "https://c.example.org"); @@ -615,8 +627,9 @@ VerifyUrlInfo(GURL("https://d.example.org"), UrlContent::kFullUrl, /*is_activated=*/true, /*promotable=*/false); website_metrics()->OnFiveMinutes(); - VerifyUrlInfoInPref(GURL("https://c.example.org"), UrlContent::kFullUrl, - /*promotable=*/false); + // "https://c.example.org" is inactivated, and the running time is zero, so it + // won't be saved in the user pref. + VerifyNoUrlInfoInPref(GURL("https://c.example.org")); VerifyUrlInfoInPref(GURL("https://d.example.org"), UrlContent::kFullUrl, /*promotable=*/false);
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.cc b/chrome/browser/apps/app_service/publishers/arc_apps.cc index 8ac01b6..d32a2dde 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.cc +++ b/chrome/browser/apps/app_service/publishers/arc_apps.cc
@@ -49,6 +49,7 @@ #include "components/app_restore/full_restore_save_handler.h" #include "components/app_restore/full_restore_utils.h" #include "components/arc/common/intent_helper/arc_intent_helper_package.h" +#include "components/services/app_service/public/cpp/app_launch_util.h" #include "components/services/app_service/public/cpp/app_types.h" #include "components/services/app_service/public/cpp/icon_types.h" #include "components/services/app_service/public/cpp/intent.h" @@ -773,7 +774,8 @@ } if (app_id == arc::kPlayStoreAppId && - apps_util::IsHumanLaunch(launch_source)) { + apps_util::IsHumanLaunch( + ConvertMojomLaunchSourceToLaunchSource(launch_source))) { arc::RecordPlayStoreLaunchWithinAWeek(profile_->GetPrefs(), /*launched=*/true); } @@ -803,7 +805,8 @@ } if (app_id == arc::kPlayStoreAppId && - apps_util::IsHumanLaunch(launch_source)) { + apps_util::IsHumanLaunch( + ConvertMojomLaunchSourceToLaunchSource(launch_source))) { arc::RecordPlayStoreLaunchWithinAWeek(profile_->GetPrefs(), /*launched=*/true); }
diff --git a/chrome/browser/apps/app_service/publishers/publisher_unittest.cc b/chrome/browser/apps/app_service/publishers/publisher_unittest.cc index bcbc7b3a..61acebf 100644 --- a/chrome/browser/apps/app_service/publishers/publisher_unittest.cc +++ b/chrome/browser/apps/app_service/publishers/publisher_unittest.cc
@@ -994,6 +994,84 @@ EXPECT_EQ(app_id6, observer.updated_ids()[5]); } +// Verify if OnApps was never called, the registration of AppController will not +// initialize the web app type. +TEST_F(StandaloneBrowserPublisherTest, WebAppsNotInitializedIfRegisterFirst) { + WebAppsCrosapi* web_apps_crosapi = + WebAppsCrosapiFactory::GetForProfile(profile()); + + AppRegistryCache& cache = + AppServiceProxyFactory::GetForProfile(profile())->AppRegistryCache(); + AppRegistryCacheObserver observer(&cache); + + AppServiceProxyFactory::GetForProfile(profile())->FlushMojoCallsForTesting(); + + // Verify no app updated, since Crosapi is not ready yet. + EXPECT_TRUE(observer.app_types().empty()); + EXPECT_TRUE(observer.updated_ids().empty()); + + // Register Crosapi first, there should be no app updates because OnApps + // was never called. + mojo::PendingReceiver<crosapi::mojom::AppController> pending_receiver1; + mojo::PendingRemote<crosapi::mojom::AppController> pending_remote1 = + pending_receiver1.InitWithNewPipeAndPassRemote(); + web_apps_crosapi->RegisterAppController(std::move(pending_remote1)); + AppServiceProxyFactory::GetForProfile(profile())->FlushMojoCallsForTesting(); + + EXPECT_TRUE(observer.app_types().empty()); + EXPECT_TRUE(observer.updated_ids().empty()); + + std::vector<AppPtr> apps1; + std::string app_id1 = "a"; + std::string app_id2 = "b"; + apps1.push_back(MakeApp(AppType::kWeb, app_id1, + /*name=*/"TestApp", Readiness::kReady)); + apps1.push_back(MakeApp(AppType::kWeb, app_id2, + /*name=*/"TestApp", Readiness::kReady)); + web_apps_crosapi->OnApps(std::move(apps1)); + + std::vector<AppPtr> apps2; + std::string app_id3 = "c"; + apps2.push_back(MakeApp(AppType::kWeb, app_id3, + /*name=*/"TestApp", Readiness::kReady)); + web_apps_crosapi->OnApps(std::move(apps2)); + AppServiceProxyFactory::GetForProfile(profile())->FlushMojoCallsForTesting(); + + EXPECT_EQ(AppType::kWeb, cache.GetAppType(app_id1)); + EXPECT_EQ(AppType::kWeb, cache.GetAppType(app_id2)); + EXPECT_EQ(AppType::kWeb, cache.GetAppType(app_id3)); + ASSERT_EQ(1u, observer.app_types().size()); + EXPECT_EQ(AppType::kWeb, observer.app_types()[0]); + ASSERT_EQ(3u, observer.updated_ids().size()); + EXPECT_EQ(app_id1, observer.updated_ids()[0]); + EXPECT_EQ(app_id2, observer.updated_ids()[1]); + EXPECT_EQ(app_id3, observer.updated_ids()[2]); +} + +TEST_F(StandaloneBrowserPublisherTest, WebAppsInitializedForEmptyList) { + WebAppsCrosapi* web_apps_crosapi = + WebAppsCrosapiFactory::GetForProfile(profile()); + + AppRegistryCache& cache = + AppServiceProxyFactory::GetForProfile(profile())->AppRegistryCache(); + AppRegistryCacheObserver observer(&cache); + + web_apps_crosapi->OnApps(std::vector<AppPtr>{}); + AppServiceProxyFactory::GetForProfile(profile())->FlushMojoCallsForTesting(); + // Verify no app updated, since Crosapi is not ready yet. + EXPECT_TRUE(observer.app_types().empty()); + EXPECT_TRUE(observer.updated_ids().empty()); + + mojo::PendingReceiver<crosapi::mojom::AppController> pending_receiver1; + mojo::PendingRemote<crosapi::mojom::AppController> pending_remote1 = + pending_receiver1.InitWithNewPipeAndPassRemote(); + web_apps_crosapi->RegisterAppController(std::move(pending_remote1)); + AppServiceProxyFactory::GetForProfile(profile())->FlushMojoCallsForTesting(); + ASSERT_EQ(1u, observer.app_types().size()); + EXPECT_EQ(AppType::kWeb, observer.app_types()[0]); + EXPECT_TRUE(observer.updated_ids().empty()); +} + // Check that when Lacros is primary, extension apps are not published to the // app service. TEST_F(StandaloneBrowserPublisherTest, ExtensionAppsNotPublished) {
diff --git a/chrome/browser/apps/app_service/publishers/web_apps_crosapi.cc b/chrome/browser/apps/app_service/publishers/web_apps_crosapi.cc index e48ed43..6635975 100644 --- a/chrome/browser/apps/app_service/publishers/web_apps_crosapi.cc +++ b/chrome/browser/apps/app_service/publishers/web_apps_crosapi.cc
@@ -341,6 +341,8 @@ if (!web_app::IsWebAppsCrosapiEnabled()) return; + on_initial_apps_received_ = true; + if (!controller_.is_bound()) { // If `controller_` is not bound, add `deltas` to `delta_cache_` to wait for // registering the crosapi controller to publish all deltas saved in @@ -351,18 +353,7 @@ return; } - std::vector<apps::mojom::AppPtr> mojom_apps; - for (const AppPtr& delta : deltas) { - mojom_apps.push_back(ConvertAppToMojomApp(delta)); - } - apps::AppPublisher::Publish(std::move(deltas), AppType::kWeb, - should_notify_initialized_); - - for (auto& subscriber : subscribers_) { - subscriber->OnApps(apps_util::CloneStructPtrVector(mojom_apps), - apps::mojom::AppType::kWeb, should_notify_initialized_); - } - should_notify_initialized_ = false; + PublishImpl(std::move(deltas)); } void WebAppsCrosapi::RegisterAppController( @@ -374,27 +365,12 @@ controller_.set_disconnect_handler(base::BindOnce( &WebAppsCrosapi::OnControllerDisconnected, base::Unretained(this))); - if (delta_cache_.empty()) { - // If there is no apps saved in `app_cache_`, still publish an empty app - // list to initialize the web app AppType for AppRegistryCache. - apps::AppPublisher::Publish(std::vector<AppPtr>{}, AppType::kWeb, - should_notify_initialized_); - } else { - std::vector<apps::mojom::AppPtr> mojom_apps; - for (const auto& delta : delta_cache_) { - mojom_apps.push_back(ConvertAppToMojomApp(delta)); - } - apps::AppPublisher::Publish(std::move(delta_cache_), AppType::kWeb, - should_notify_initialized_); - delta_cache_.clear(); - - for (auto& subscriber : subscribers_) { - subscriber->OnApps(apps_util::CloneStructPtrVector(mojom_apps), - apps::mojom::AppType::kWeb, - should_notify_initialized_); - } + if (!on_initial_apps_received_) { + return; } - should_notify_initialized_ = false; + + PublishImpl(std::move(delta_cache_)); + delta_cache_.clear(); } void WebAppsCrosapi::OnCapabilityAccesses( @@ -455,4 +431,19 @@ std::move(callback).Run(std::move(icon_value)); } +void WebAppsCrosapi::PublishImpl(std::vector<AppPtr> deltas) { + std::vector<apps::mojom::AppPtr> mojom_apps; + for (const auto& delta : deltas) { + mojom_apps.push_back(ConvertAppToMojomApp(delta)); + } + apps::AppPublisher::Publish(std::move(deltas), AppType::kWeb, + should_notify_initialized_); + + for (auto& subscriber : subscribers_) { + subscriber->OnApps(apps_util::CloneStructPtrVector(mojom_apps), + apps::mojom::AppType::kWeb, should_notify_initialized_); + } + should_notify_initialized_ = false; +} + } // namespace apps
diff --git a/chrome/browser/apps/app_service/publishers/web_apps_crosapi.h b/chrome/browser/apps/app_service/publishers/web_apps_crosapi.h index 1ba6a85..a4961104 100644 --- a/chrome/browser/apps/app_service/publishers/web_apps_crosapi.h +++ b/chrome/browser/apps/app_service/publishers/web_apps_crosapi.h
@@ -66,6 +66,10 @@ WebAppsCrosapiNotUpdated); FRIEND_TEST_ALL_PREFIXES(StandaloneBrowserPublisherTest, WebAppsCrosapiUpdated); + FRIEND_TEST_ALL_PREFIXES(StandaloneBrowserPublisherTest, + WebAppsNotInitializedIfRegisterFirst); + FRIEND_TEST_ALL_PREFIXES(StandaloneBrowserPublisherTest, + WebAppsInitializedForEmptyList); // apps::AppPublisher overrides. void LoadIcon(const std::string& app_id, @@ -145,6 +149,7 @@ void OnApplyIconEffects(IconType icon_type, apps::LoadIconCallback callback, IconValuePtr icon_value); + void PublishImpl(std::vector<AppPtr> deltas); // Stores a copy of the app deltas, which haven't been published to // AppRegistryCache yet. When the crosapi is bound or changed from disconnect @@ -152,11 +157,17 @@ // AppRegistryCache. std::vector<AppPtr> delta_cache_; + // Record if OnApps interface been called from the Lacros. If it is called + // before Lacros web app controller registration, we should publish the + // |delta_cache_| to initialize the web app AppType even it is empty. + bool on_initial_apps_received_ = false; + mojo::RemoteSet<apps::mojom::Subscriber> subscribers_; mojo::Receiver<crosapi::mojom::AppPublisher> receiver_{this}; mojo::Remote<crosapi::mojom::AppController> controller_; AppServiceProxy* const proxy_; bool should_notify_initialized_ = true; + base::WeakPtrFactory<WebAppsCrosapi> weak_factory_{this}; };
diff --git a/chrome/browser/apps/intent_helper/chromeos_intent_picker_helpers.cc b/chrome/browser/apps/intent_helper/chromeos_intent_picker_helpers.cc index ce77d86..c0878ac 100644 --- a/chrome/browser/apps/intent_helper/chromeos_intent_picker_helpers.cc +++ b/chrome/browser/apps/intent_helper/chromeos_intent_picker_helpers.cc
@@ -54,8 +54,9 @@ const GURL& url = navigation_handle->GetURL(); - // Disable Auto-display when the Intent Chip is enabled. - if (features::LinkCapturingUiUpdateEnabled()) + // Disable Auto-display in the new Intent Picker UI unless it is specifically + // re-enabled. + if (!features::IntentPickerAutoDisplayEnabled()) return false; if (apps_for_picker.empty())
diff --git a/chrome/browser/apps/intent_helper/intent_picker_features.cc b/chrome/browser/apps/intent_helper/intent_picker_features.cc index 885e36b1..81601e51 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_features.cc +++ b/chrome/browser/apps/intent_helper/intent_picker_features.cc
@@ -19,6 +19,9 @@ const base::Feature kIntentChipAppIcon{"AppIconInIntentChip", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kLinkCapturingAutoDisplayIntentPicker{ + "LinkCapturingAutoDisplayIntentPicker", base::FEATURE_DISABLED_BY_DEFAULT}; + bool LinkCapturingUiUpdateEnabled() { return base::FeatureList::IsEnabled(kLinkCapturingUiUpdate); } @@ -38,4 +41,9 @@ base::FeatureList::IsEnabled(kIntentChipAppIcon); } +bool IntentPickerAutoDisplayEnabled() { + return !LinkCapturingUiUpdateEnabled() || + base::FeatureList::IsEnabled(kLinkCapturingAutoDisplayIntentPicker); +} + } // namespace apps::features
diff --git a/chrome/browser/apps/intent_helper/intent_picker_features.h b/chrome/browser/apps/intent_helper/intent_picker_features.h index be11d0e..86f42da 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_features.h +++ b/chrome/browser/apps/intent_helper/intent_picker_features.h
@@ -13,6 +13,7 @@ extern const base::Feature kLinkCapturingInfoBar; extern const base::Feature kIntentChipSkipsPicker; extern const base::Feature kIntentChipAppIcon; +extern const base::Feature kLinkCapturingAutoDisplayIntentPicker; // Returns true if the overall link capturing UI update feature is enabled. bool LinkCapturingUiUpdateEnabled(); @@ -32,6 +33,11 @@ // Only returns true if LinkCapturingUiUpdateEnabled() returns true. bool AppIconInIntentChipEnabled(); +// Returns true if the intent picker bubble should automatically display when +// navigating through a link click to a page with installed link capturing apps. +// Always returns true if LinkCapturingUiUpdateEnabled() returns false. +bool IntentPickerAutoDisplayEnabled(); + } // namespace apps::features #endif // CHROME_BROWSER_APPS_INTENT_HELPER_INTENT_PICKER_FEATURES_H_
diff --git a/chrome/browser/apps/intent_helper/intent_picker_helpers.cc b/chrome/browser/apps/intent_helper/intent_picker_helpers.cc index 367478b..ef43af6 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_helpers.cc +++ b/chrome/browser/apps/intent_helper/intent_picker_helpers.cc
@@ -167,8 +167,8 @@ ->ShowIconForApps(GetAppsForIntentPicker(web_contents)); } -void ShowIntentPickerBubble(content::WebContents* web_contents, - const GURL& url) { +void ShowIntentPickerOrLaunchApp(content::WebContents* web_contents, + const GURL& url) { std::vector<IntentPickerAppInfo> apps = FindAppsForUrl(web_contents, url, {}); if (apps.empty()) return; @@ -178,10 +178,26 @@ apps::IntentHandlingMetrics::IntentPickerIconEvent::kIconClicked); #endif - if (apps.size() == 1 && apps::features::ShouldIntentChipSkipIntentPicker()) { - LaunchAppFromIntentPicker(web_contents, url, apps[0].launch_name, - apps[0].type); - return; + if (apps.size() == 1) { + // If there is only a single available app, immediately launch it if either: + // - ShouldIntentChipSkipIntentPicker() is enabled, or + // - LinkCapturingUiUpdateEnabled() is enabled and the app is preferred for + // this link. + Profile* profile = + Profile::FromBrowserContext(web_contents->GetBrowserContext()); + auto* proxy = AppServiceProxyFactory::GetForProfile(profile); + + bool should_launch_for_preferred_app = + apps::features::LinkCapturingUiUpdateEnabled() && + proxy->PreferredAppsList().FindPreferredAppForUrl(url) == + apps[0].launch_name; + + if (apps::features::ShouldIntentChipSkipIntentPicker() || + should_launch_for_preferred_app) { + LaunchAppFromIntentPicker(web_contents, url, apps[0].launch_name, + apps[0].type); + return; + } } IntentPickerTabHelper::LoadAppIcons(
diff --git a/chrome/browser/apps/intent_helper/intent_picker_helpers.h b/chrome/browser/apps/intent_helper/intent_picker_helpers.h index a1671030..e569d40 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_helpers.h +++ b/chrome/browser/apps/intent_helper/intent_picker_helpers.h
@@ -23,8 +23,11 @@ // URL in |web_contents|. void MaybeShowIntentPicker(content::WebContents* web_contents); -void ShowIntentPickerBubble(content::WebContents* web_contents, - const GURL& url); +// Shows the intent picker bubble to present a choice between apps to handle +// |url|. May launch directly into an app based on user preferences and +// installed apps. +void ShowIntentPickerOrLaunchApp(content::WebContents* web_contents, + const GURL& url); // Returns true if persistence for PWA entries in the Intent Picker is enabled. bool IntentPickerPwaPersistenceEnabled();
diff --git a/chrome/browser/apps/intent_helper/supported_links_infobar_delegate_browsertest.cc b/chrome/browser/apps/intent_helper/supported_links_infobar_delegate_browsertest.cc index 079d4f3..094f051 100644 --- a/chrome/browser/apps/intent_helper/supported_links_infobar_delegate_browsertest.cc +++ b/chrome/browser/apps/intent_helper/supported_links_infobar_delegate_browsertest.cc
@@ -7,7 +7,6 @@ #include <memory> #include "base/feature_list.h" -#include "base/run_loop.h" #include "chrome/browser/apps/app_service/app_service_proxy.h" #include "chrome/browser/apps/app_service/app_service_proxy_factory.h" #include "chrome/browser/apps/intent_helper/metrics/intent_handling_metrics.h" @@ -19,20 +18,20 @@ #include "components/infobars/content/content_infobar_manager.h" #include "components/infobars/core/infobar.h" #include "components/services/app_service/public/cpp/features.h" -#include "components/services/app_service/public/cpp/preferred_apps_list_handle.h" +#include "components/services/app_service/public/cpp/preferred_apps_test_util.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test.h" #include "testing/gtest/include/gtest/gtest.h" class SupportedLinksInfoBarDelegateBrowserTest - : public web_app::WebAppNavigationBrowserTest, - public apps::PreferredAppsListHandle::Observer { + : public web_app::WebAppNavigationBrowserTest { public: void SetUpOnMainThread() override { web_app::WebAppNavigationBrowserTest::SetUpOnMainThread(); InstallTestWebApp(); - app_service_proxy()->PreferredAppsList().AddObserver(this); + update_waiter_ = std::make_unique<apps_util::PreferredAppUpdateWaiter>( + app_service_proxy()->PreferredAppsList()); } void TearDownOnMainThread() override { @@ -58,25 +57,11 @@ // apps::PreferredAppsListHandle::Observer: void WaitForPreferredAppUpdate() { - wait_run_loop_ = std::make_unique<base::RunLoop>(); - wait_run_loop_->Run(); - } - - void OnPreferredAppChanged(const std::string& app_id, - bool is_preferred_app) override { - if (wait_run_loop_ && wait_run_loop_->running() && - app_id == test_web_app_id()) { - wait_run_loop_->Quit(); - } - } - - void OnPreferredAppsListWillBeDestroyed( - apps::PreferredAppsListHandle* handle) override { - handle->RemoveObserver(this); + update_waiter_->WaitForPreferredAppUpdate(test_web_app_id()); } private: - std::unique_ptr<base::RunLoop> wait_run_loop_; + std::unique_ptr<apps_util::PreferredAppUpdateWaiter> update_waiter_; }; IN_PROC_BROWSER_TEST_F(SupportedLinksInfoBarDelegateBrowserTest,
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 73eea19..c1fa268 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -7,6 +7,7 @@ import("//build/config/ozone.gni") import("//chromeos/ash/components/hibernate/buildflags.gni") import("//extensions/buildflags/buildflags.gni") +import("//media/media_options.gni") assert(enable_extensions, "Ash Chrome has to be built with extensions") assert(is_chromeos_ash) @@ -15,6 +16,11 @@ source_set("ash") { configs += [ "//build/config/compiler:wexit_time_destructors" ] + defines = [] + if (use_cras) { + defines += [ "USE_CRAS" ] + } + sources = [ "accessibility/accessibility_event_rewriter_delegate_impl.cc", "accessibility/accessibility_event_rewriter_delegate_impl.h", @@ -1327,459 +1333,6 @@ "lock_screen_apps/toast_dialog_view.h", "logging.cc", "logging.h", - "login/active_directory_migration_utils.cc", - "login/active_directory_migration_utils.h", - "login/app_mode/kiosk_launch_controller.cc", - "login/app_mode/kiosk_launch_controller.h", - "login/auth/chrome_cryptohome_authenticator.cc", - "login/auth/chrome_cryptohome_authenticator.h", - "login/auth/chrome_login_performer.cc", - "login/auth/chrome_login_performer.h", - "login/auth/chrome_safe_mode_delegate.cc", - "login/auth/chrome_safe_mode_delegate.h", - "login/challenge_response_auth_keys_loader.cc", - "login/challenge_response_auth_keys_loader.h", - "login/chrome_restart_request.cc", - "login/chrome_restart_request.h", - "login/configuration_keys.cc", - "login/configuration_keys.h", - "login/consolidated_consent_field_trial.cc", - "login/consolidated_consent_field_trial.h", - "login/demo_mode/demo_extensions_external_loader.cc", - "login/demo_mode/demo_extensions_external_loader.h", - "login/demo_mode/demo_mode_resources_remover.cc", - "login/demo_mode/demo_mode_resources_remover.h", - "login/demo_mode/demo_resources.cc", - "login/demo_mode/demo_resources.h", - "login/demo_mode/demo_session.cc", - "login/demo_mode/demo_session.h", - "login/demo_mode/demo_setup_controller.cc", - "login/demo_mode/demo_setup_controller.h", - "login/easy_unlock/chrome_proximity_auth_client.cc", - "login/easy_unlock/chrome_proximity_auth_client.h", - "login/easy_unlock/easy_unlock_auth_attempt.cc", - "login/easy_unlock/easy_unlock_auth_attempt.h", - "login/easy_unlock/easy_unlock_challenge_wrapper.cc", - "login/easy_unlock/easy_unlock_challenge_wrapper.h", - "login/easy_unlock/easy_unlock_create_keys_operation.cc", - "login/easy_unlock/easy_unlock_create_keys_operation.h", - "login/easy_unlock/easy_unlock_get_keys_operation.cc", - "login/easy_unlock/easy_unlock_get_keys_operation.h", - "login/easy_unlock/easy_unlock_key_manager.cc", - "login/easy_unlock/easy_unlock_key_manager.h", - "login/easy_unlock/easy_unlock_key_names.cc", - "login/easy_unlock/easy_unlock_key_names.h", - "login/easy_unlock/easy_unlock_metrics.cc", - "login/easy_unlock/easy_unlock_metrics.h", - "login/easy_unlock/easy_unlock_notification_controller.cc", - "login/easy_unlock/easy_unlock_notification_controller.h", - "login/easy_unlock/easy_unlock_refresh_keys_operation.cc", - "login/easy_unlock/easy_unlock_refresh_keys_operation.h", - "login/easy_unlock/easy_unlock_remove_keys_operation.cc", - "login/easy_unlock/easy_unlock_remove_keys_operation.h", - "login/easy_unlock/easy_unlock_service.cc", - "login/easy_unlock/easy_unlock_service.h", - "login/easy_unlock/easy_unlock_service_factory.cc", - "login/easy_unlock/easy_unlock_service_factory.h", - "login/easy_unlock/easy_unlock_service_regular.cc", - "login/easy_unlock/easy_unlock_service_regular.h", - "login/easy_unlock/easy_unlock_service_signin.cc", - "login/easy_unlock/easy_unlock_service_signin.h", - "login/easy_unlock/easy_unlock_tpm_key_manager.cc", - "login/easy_unlock/easy_unlock_tpm_key_manager.h", - "login/easy_unlock/easy_unlock_tpm_key_manager_factory.cc", - "login/easy_unlock/easy_unlock_tpm_key_manager_factory.h", - "login/easy_unlock/easy_unlock_types.cc", - "login/easy_unlock/easy_unlock_types.h", - "login/easy_unlock/easy_unlock_user_login_flow.cc", - "login/easy_unlock/easy_unlock_user_login_flow.h", - "login/easy_unlock/smartlock_feature_usage_metrics.cc", - "login/easy_unlock/smartlock_feature_usage_metrics.h", - "login/easy_unlock/smartlock_state_handler.cc", - "login/easy_unlock/smartlock_state_handler.h", - "login/enrollment/auto_enrollment_check_screen.cc", - "login/enrollment/auto_enrollment_check_screen.h", - "login/enrollment/auto_enrollment_check_screen_view.h", - "login/enrollment/auto_enrollment_controller.cc", - "login/enrollment/auto_enrollment_controller.h", - "login/enrollment/enrollment_screen.cc", - "login/enrollment/enrollment_screen.h", - "login/enrollment/enrollment_screen_view.h", - "login/enrollment/enrollment_uma.cc", - "login/enrollment/enrollment_uma.h", - "login/enrollment/enterprise_enrollment_helper.cc", - "login/enrollment/enterprise_enrollment_helper.h", - "login/enrollment/enterprise_enrollment_helper_impl.cc", - "login/enrollment/enterprise_enrollment_helper_impl.h", - "login/enterprise_user_session_metrics.cc", - "login/enterprise_user_session_metrics.h", - "login/error_screens_histogram_helper.cc", - "login/error_screens_histogram_helper.h", - "login/existing_user_controller.cc", - "login/existing_user_controller.h", - "login/gaia_reauth_token_fetcher.cc", - "login/gaia_reauth_token_fetcher.h", - "login/hats_unlock_survey_trigger.cc", - "login/hats_unlock_survey_trigger.h", - "login/help_app_launcher.cc", - "login/help_app_launcher.h", - "login/helper.cc", - "login/helper.h", - "login/hwid_checker.cc", - "login/hwid_checker.h", - "login/lock/screen_locker.cc", - "login/lock/screen_locker.h", - "login/lock/views_screen_locker.cc", - "login/lock/views_screen_locker.h", - "login/lock_screen_utils.cc", - "login/lock_screen_utils.h", - "login/login_auth_recorder.cc", - "login/login_auth_recorder.h", - "login/login_client_cert_usage_observer.cc", - "login/login_client_cert_usage_observer.h", - "login/login_pref_names.cc", - "login/login_pref_names.h", - "login/login_screen_extensions_lifetime_manager.cc", - "login/login_screen_extensions_lifetime_manager.h", - "login/login_screen_extensions_storage_cleaner.cc", - "login/login_screen_extensions_storage_cleaner.h", - "login/login_wizard.h", - "login/marketing_backend_connector.cc", - "login/marketing_backend_connector.h", - "login/mojo_system_info_dispatcher.cc", - "login/mojo_system_info_dispatcher.h", - "login/onboarding_user_activity_counter.cc", - "login/onboarding_user_activity_counter.h", - "login/oobe_configuration.cc", - "login/oobe_configuration.h", - "login/oobe_screen.cc", - "login/oobe_screen.h", - "login/profile_auth_data.cc", - "login/profile_auth_data.h", - "login/quick_unlock/auth_token.cc", - "login/quick_unlock/auth_token.h", - "login/quick_unlock/fake_pin_salt_storage.cc", - "login/quick_unlock/fake_pin_salt_storage.h", - "login/quick_unlock/fingerprint_power_button_race_detector.cc", - "login/quick_unlock/fingerprint_power_button_race_detector.h", - "login/quick_unlock/fingerprint_storage.cc", - "login/quick_unlock/fingerprint_storage.h", - "login/quick_unlock/fingerprint_utils.cc", - "login/quick_unlock/fingerprint_utils.h", - "login/quick_unlock/pin_backend.cc", - "login/quick_unlock/pin_backend.h", - "login/quick_unlock/pin_salt_storage.cc", - "login/quick_unlock/pin_salt_storage.h", - "login/quick_unlock/pin_storage_cryptohome.cc", - "login/quick_unlock/pin_storage_cryptohome.h", - "login/quick_unlock/pin_storage_prefs.cc", - "login/quick_unlock/pin_storage_prefs.h", - "login/quick_unlock/quick_unlock_factory.cc", - "login/quick_unlock/quick_unlock_factory.h", - "login/quick_unlock/quick_unlock_storage.cc", - "login/quick_unlock/quick_unlock_storage.h", - "login/quick_unlock/quick_unlock_utils.cc", - "login/quick_unlock/quick_unlock_utils.h", - "login/reauth_stats.cc", - "login/reauth_stats.h", - "login/reporting/login_logout_reporter.cc", - "login/reporting/login_logout_reporter.h", - "login/saml/in_session_password_change_manager.cc", - "login/saml/in_session_password_change_manager.h", - "login/saml/in_session_password_sync_manager.cc", - "login/saml/in_session_password_sync_manager.h", - "login/saml/in_session_password_sync_manager_factory.cc", - "login/saml/in_session_password_sync_manager_factory.h", - "login/saml/password_change_success_notification.cc", - "login/saml/password_change_success_notification.h", - "login/saml/password_expiry_notification.cc", - "login/saml/password_expiry_notification.h", - "login/saml/password_sync_token_checkers_collection.cc", - "login/saml/password_sync_token_checkers_collection.h", - "login/saml/password_sync_token_fetcher.cc", - "login/saml/password_sync_token_fetcher.h", - "login/saml/password_sync_token_login_checker.cc", - "login/saml/password_sync_token_login_checker.h", - "login/saml/password_sync_token_verifier.cc", - "login/saml/password_sync_token_verifier.h", - "login/saml/password_sync_token_verifier_factory.cc", - "login/saml/password_sync_token_verifier_factory.h", - "login/saml/public_saml_url_fetcher.cc", - "login/saml/public_saml_url_fetcher.h", - "login/saml/saml_metric_utils.cc", - "login/saml/saml_metric_utils.h", - "login/saml/saml_profile_prefs.cc", - "login/saml/saml_profile_prefs.h", - "login/screen_manager.cc", - "login/screen_manager.h", - "login/screens/active_directory_login_screen.cc", - "login/screens/active_directory_login_screen.h", - "login/screens/active_directory_password_change_screen.cc", - "login/screens/active_directory_password_change_screen.h", - "login/screens/app_downloading_screen.cc", - "login/screens/app_downloading_screen.h", - "login/screens/arc_terms_of_service_screen.cc", - "login/screens/arc_terms_of_service_screen.h", - "login/screens/assistant_optin_flow_screen.cc", - "login/screens/assistant_optin_flow_screen.h", - "login/screens/base_screen.cc", - "login/screens/base_screen.h", - "login/screens/chrome_user_selection_screen.cc", - "login/screens/chrome_user_selection_screen.h", - "login/screens/chromevox_hint/chromevox_hint_detector.cc", - "login/screens/chromevox_hint/chromevox_hint_detector.h", - "login/screens/consolidated_consent_screen.cc", - "login/screens/consolidated_consent_screen.h", - "login/screens/demo_preferences_screen.cc", - "login/screens/demo_preferences_screen.h", - "login/screens/demo_setup_screen.cc", - "login/screens/demo_setup_screen.h", - "login/screens/device_disabled_screen.cc", - "login/screens/device_disabled_screen.h", - "login/screens/edu_coexistence_login_screen.cc", - "login/screens/edu_coexistence_login_screen.h", - "login/screens/enable_adb_sideloading_screen.cc", - "login/screens/enable_adb_sideloading_screen.h", - "login/screens/enable_debugging_screen.cc", - "login/screens/enable_debugging_screen.h", - "login/screens/encryption_migration_mode.h", - "login/screens/encryption_migration_screen.cc", - "login/screens/encryption_migration_screen.h", - "login/screens/error_screen.cc", - "login/screens/error_screen.h", - "login/screens/eula_screen.cc", - "login/screens/eula_screen.h", - "login/screens/family_link_notice_screen.cc", - "login/screens/family_link_notice_screen.h", - "login/screens/fingerprint_setup_screen.cc", - "login/screens/fingerprint_setup_screen.h", - "login/screens/gaia_password_changed_screen.cc", - "login/screens/gaia_password_changed_screen.h", - "login/screens/gaia_screen.cc", - "login/screens/gaia_screen.h", - "login/screens/gesture_navigation_screen.cc", - "login/screens/gesture_navigation_screen.h", - "login/screens/guest_tos_screen.cc", - "login/screens/guest_tos_screen.h", - "login/screens/hardware_data_collection_screen.cc", - "login/screens/hardware_data_collection_screen.h", - "login/screens/hid_detection_screen.cc", - "login/screens/hid_detection_screen.h", - "login/screens/kiosk_autolaunch_screen.cc", - "login/screens/kiosk_autolaunch_screen.h", - "login/screens/kiosk_enable_screen.cc", - "login/screens/kiosk_enable_screen.h", - "login/screens/lacros_data_migration_screen.cc", - "login/screens/lacros_data_migration_screen.h", - "login/screens/locale_switch_screen.cc", - "login/screens/locale_switch_screen.h", - "login/screens/management_transition_screen.cc", - "login/screens/management_transition_screen.h", - "login/screens/marketing_opt_in_screen.cc", - "login/screens/marketing_opt_in_screen.h", - "login/screens/multidevice_setup_screen.cc", - "login/screens/multidevice_setup_screen.h", - "login/screens/network_error.cc", - "login/screens/network_error.h", - "login/screens/network_screen.cc", - "login/screens/network_screen.h", - "login/screens/offline_login_screen.cc", - "login/screens/offline_login_screen.h", - "login/screens/os_install_screen.cc", - "login/screens/os_install_screen.h", - "login/screens/os_trial_screen.cc", - "login/screens/os_trial_screen.h", - "login/screens/packaged_license_screen.cc", - "login/screens/packaged_license_screen.h", - "login/screens/parental_handoff_screen.cc", - "login/screens/parental_handoff_screen.h", - "login/screens/pin_setup_screen.cc", - "login/screens/pin_setup_screen.h", - "login/screens/quick_start_screen.cc", - "login/screens/quick_start_screen.h", - "login/screens/recommend_apps/fake_recommend_apps_fetcher.cc", - "login/screens/recommend_apps/fake_recommend_apps_fetcher.h", - "login/screens/recommend_apps/recommend_apps_fetcher.cc", - "login/screens/recommend_apps/recommend_apps_fetcher.h", - "login/screens/recommend_apps/recommend_apps_fetcher_delegate.h", - "login/screens/recommend_apps/recommend_apps_fetcher_impl.cc", - "login/screens/recommend_apps/recommend_apps_fetcher_impl.h", - "login/screens/recommend_apps_screen.cc", - "login/screens/recommend_apps_screen.h", - "login/screens/reset_screen.cc", - "login/screens/reset_screen.h", - "login/screens/saml_confirm_password_screen.cc", - "login/screens/saml_confirm_password_screen.h", - "login/screens/signin_fatal_error_screen.cc", - "login/screens/signin_fatal_error_screen.h", - "login/screens/smart_privacy_protection_screen.cc", - "login/screens/smart_privacy_protection_screen.h", - "login/screens/sync_consent_screen.cc", - "login/screens/sync_consent_screen.h", - "login/screens/terms_of_service_screen.cc", - "login/screens/terms_of_service_screen.h", - "login/screens/theme_selection_screen.cc", - "login/screens/theme_selection_screen.h", - "login/screens/tpm_error_screen.cc", - "login/screens/tpm_error_screen.h", - "login/screens/update_required_screen.cc", - "login/screens/update_required_screen.h", - "login/screens/update_screen.cc", - "login/screens/update_screen.h", - "login/screens/user_creation_screen.cc", - "login/screens/user_creation_screen.h", - "login/screens/user_selection_screen.cc", - "login/screens/user_selection_screen.h", - "login/screens/welcome_screen.cc", - "login/screens/welcome_screen.h", - "login/screens/wrong_hwid_screen.cc", - "login/screens/wrong_hwid_screen.h", - "login/security_token_pin_dialog_host_login_impl.cc", - "login/security_token_pin_dialog_host_login_impl.h", - "login/security_token_session_controller.cc", - "login/security_token_session_controller.h", - "login/security_token_session_controller_factory.cc", - "login/security_token_session_controller_factory.h", - "login/session/chrome_session_manager.cc", - "login/session/chrome_session_manager.h", - "login/session/user_session_initializer.cc", - "login/session/user_session_initializer.h", - "login/session/user_session_manager.cc", - "login/session/user_session_manager.h", - "login/signin/auth_error_observer.cc", - "login/signin/auth_error_observer.h", - "login/signin/auth_error_observer_factory.cc", - "login/signin/auth_error_observer_factory.h", - "login/signin/merge_session_navigation_throttle.cc", - "login/signin/merge_session_navigation_throttle.h", - "login/signin/merge_session_throttling_utils.cc", - "login/signin/merge_session_throttling_utils.h", - "login/signin/oauth2_login_manager.cc", - "login/signin/oauth2_login_manager.h", - "login/signin/oauth2_login_manager_factory.cc", - "login/signin/oauth2_login_manager_factory.h", - "login/signin/oauth2_login_verifier.cc", - "login/signin/oauth2_login_verifier.h", - "login/signin/oauth2_token_fetcher.cc", - "login/signin/oauth2_token_fetcher.h", - "login/signin/oauth2_token_initializer.cc", - "login/signin/oauth2_token_initializer.h", - "login/signin/offline_signin_limiter.cc", - "login/signin/offline_signin_limiter.h", - "login/signin/offline_signin_limiter_factory.cc", - "login/signin/offline_signin_limiter_factory.h", - "login/signin/signin_error_notifier.cc", - "login/signin/signin_error_notifier.h", - "login/signin/signin_error_notifier_factory.cc", - "login/signin/signin_error_notifier_factory.h", - "login/signin/token_handle_fetcher.cc", - "login/signin/token_handle_fetcher.h", - "login/signin/token_handle_util.cc", - "login/signin/token_handle_util.h", - "login/signin_partition_manager.cc", - "login/signin_partition_manager.h", - "login/signin_specifics.h", - "login/startup_utils.cc", - "login/startup_utils.h", - "login/ui/captive_portal_dialog_delegate.cc", - "login/ui/captive_portal_dialog_delegate.h", - "login/ui/captive_portal_view.cc", - "login/ui/captive_portal_view.h", - "login/ui/captive_portal_window_proxy.cc", - "login/ui/captive_portal_window_proxy.h", - "login/ui/input_events_blocker.cc", - "login/ui/input_events_blocker.h", - "login/ui/kiosk_app_menu_controller.cc", - "login/ui/kiosk_app_menu_controller.h", - "login/ui/login_display.cc", - "login/ui/login_display.h", - "login/ui/login_display_host.cc", - "login/ui/login_display_host.h", - "login/ui/login_display_host_common.cc", - "login/ui/login_display_host_common.h", - "login/ui/login_display_host_mojo.cc", - "login/ui/login_display_host_mojo.h", - "login/ui/login_display_host_webui.cc", - "login/ui/login_display_host_webui.h", - "login/ui/login_display_mojo.cc", - "login/ui/login_display_mojo.h", - "login/ui/login_display_webui.cc", - "login/ui/login_display_webui.h", - "login/ui/login_feedback.cc", - "login/ui/login_feedback.h", - "login/ui/login_screen_extension_ui/create_options.cc", - "login/ui/login_screen_extension_ui/create_options.h", - "login/ui/login_screen_extension_ui/dialog_delegate.cc", - "login/ui/login_screen_extension_ui/dialog_delegate.h", - "login/ui/login_screen_extension_ui/web_dialog_view.cc", - "login/ui/login_screen_extension_ui/web_dialog_view.h", - "login/ui/login_screen_extension_ui/window.cc", - "login/ui/login_screen_extension_ui/window.h", - "login/ui/login_web_dialog.cc", - "login/ui/login_web_dialog.h", - "login/ui/oobe_dialog_size_utils.cc", - "login/ui/oobe_dialog_size_utils.h", - "login/ui/oobe_ui_dialog_delegate.cc", - "login/ui/oobe_ui_dialog_delegate.h", - "login/ui/signin_ui.h", - "login/ui/simple_web_view_dialog.cc", - "login/ui/simple_web_view_dialog.h", - "login/ui/user_adding_screen.cc", - "login/ui/user_adding_screen.h", - "login/ui/user_adding_screen_input_methods_controller.cc", - "login/ui/user_adding_screen_input_methods_controller.h", - "login/ui/views/user_board_view.h", - "login/ui/web_contents_forced_title.cc", - "login/ui/web_contents_forced_title.h", - "login/ui/webui_login_view.cc", - "login/ui/webui_login_view.h", - "login/user_board_view_mojo.cc", - "login/user_board_view_mojo.h", - "login/user_flow.cc", - "login/user_flow.h", - "login/user_online_signin_notifier.cc", - "login/user_online_signin_notifier.h", - "login/users/affiliation.cc", - "login/users/affiliation.h", - "login/users/avatar/user_image_file_selector.cc", - "login/users/avatar/user_image_file_selector.h", - "login/users/avatar/user_image_loader.cc", - "login/users/avatar/user_image_loader.h", - "login/users/avatar/user_image_manager.cc", - "login/users/avatar/user_image_manager.h", - "login/users/avatar/user_image_manager_impl.cc", - "login/users/avatar/user_image_manager_impl.h", - "login/users/avatar/user_image_sync_observer.cc", - "login/users/avatar/user_image_sync_observer.h", - "login/users/chrome_user_manager.cc", - "login/users/chrome_user_manager.h", - "login/users/chrome_user_manager_impl.cc", - "login/users/chrome_user_manager_impl.h", - "login/users/chrome_user_manager_util.cc", - "login/users/chrome_user_manager_util.h", - "login/users/default_user_image/default_user_images.cc", - "login/users/default_user_image/default_user_images.h", - "login/users/multi_profile_user_controller.cc", - "login/users/multi_profile_user_controller.h", - "login/users/multi_profile_user_controller_delegate.h", - "login/users/scoped_test_user_manager.cc", - "login/users/scoped_test_user_manager.h", - "login/users/supervised_user_manager.h", - "login/users/supervised_user_manager_impl.cc", - "login/users/supervised_user_manager_impl.h", - "login/users/test_users.cc", - "login/users/test_users.h", - "login/users/user_manager_interface.h", - "login/version_info_updater.cc", - "login/version_info_updater.h", - "login/version_updater/update_time_estimator.cc", - "login/version_updater/update_time_estimator.h", - "login/version_updater/version_updater.cc", - "login/version_updater/version_updater.h", - "login/wizard_context.cc", - "login/wizard_context.h", - "login/wizard_controller.cc", - "login/wizard_controller.h", "mobile/mobile_activator.cc", "mobile/mobile_activator.h", "multidevice_setup/auth_token_validator_factory.cc", @@ -2018,6 +1571,7 @@ "//chromeos/ash/components/dbus/fusebox:proto", "//chromeos/ash/components/dbus/kerberos:kerberos_proto", "//chromeos/ash/components/dbus/os_install", + "//chromeos/ash/components/dbus/resourced", "//chromeos/ash/components/dbus/seneschal", "//chromeos/ash/components/dbus/seneschal:seneschal_proto", "//chromeos/ash/components/dbus/services", @@ -2050,7 +1604,6 @@ "//chromeos/dbus/missive", "//chromeos/dbus/power", "//chromeos/dbus/power:power_manager_proto", - "//chromeos/dbus/resourced", "//chromeos/dbus/runtime_probe", "//chromeos/dbus/tpm_manager", "//chromeos/dbus/tpm_manager:tpm_manager_proto", @@ -2269,6 +1822,7 @@ "//chromeos/ash/components/dbus/kerberos", "//chromeos/ash/components/dbus/lorgnette_manager", "//chromeos/ash/components/dbus/media_analytics", + "//chromeos/ash/components/dbus/oobe_config", "//chromeos/ash/components/dbus/patchpanel", "//chromeos/ash/components/dbus/pciguard", "//chromeos/ash/components/dbus/rgbkbd", @@ -2307,7 +1861,6 @@ "//chromeos/dbus/image_loader", "//chromeos/dbus/init", "//chromeos/dbus/machine_learning", - "//chromeos/dbus/oobe_config", "//chromeos/dbus/permission_broker", "//chromeos/dbus/shill", "//chromeos/dbus/u2f",
diff --git a/chrome/browser/ash/app_restore/arc_app_launch_handler.cc b/chrome/browser/ash/app_restore/arc_app_launch_handler.cc index 7e625c96..d996582f 100644 --- a/chrome/browser/ash/app_restore/arc_app_launch_handler.cc +++ b/chrome/browser/ash/app_restore/arc_app_launch_handler.cc
@@ -179,9 +179,8 @@ windows_.size() + no_stack_windows_.size()); // Receive the memory pressure level. - if (chromeos::ResourcedClient::Get() && - !resourced_client_observer_.IsObserving()) { - resourced_client_observer_.Observe(chromeos::ResourcedClient::Get()); + if (ResourcedClient::Get() && !resourced_client_observer_.IsObserving()) { + resourced_client_observer_.Observe(ResourcedClient::Get()); } // Receive the system CPU usage rate. @@ -481,9 +480,8 @@ } } -void ArcAppLaunchHandler::OnMemoryPressure( - chromeos::ResourcedClient::PressureLevel level, - uint64_t reclaim_target_kb) { +void ArcAppLaunchHandler::OnMemoryPressure(ResourcedClient::PressureLevel level, + uint64_t reclaim_target_kb) { pressure_level_ = level; } @@ -507,16 +505,15 @@ bool ArcAppLaunchHandler::IsUnderMemoryPressure() { switch (pressure_level_) { - case chromeos::ResourcedClient::PressureLevel::NONE: + case ResourcedClient::PressureLevel::NONE: return false; - case chromeos::ResourcedClient::PressureLevel::MODERATE: - case chromeos::ResourcedClient::PressureLevel::CRITICAL: { - LOG(WARNING) - << "Stop restoring Arc apps due to memory pressure: " - << (pressure_level_ == - chromeos::ResourcedClient::PressureLevel::MODERATE - ? "MODERATE" - : "CRITICAL"); + case ResourcedClient::PressureLevel::MODERATE: + case ResourcedClient::PressureLevel::CRITICAL: { + LOG(WARNING) << "Stop restoring Arc apps due to memory pressure: " + << (pressure_level_ == + ResourcedClient::PressureLevel::MODERATE + ? "MODERATE" + : "CRITICAL"); return true; } }
diff --git a/chrome/browser/ash/app_restore/arc_app_launch_handler.h b/chrome/browser/ash/app_restore/arc_app_launch_handler.h index b3705a4..de59a3b 100644 --- a/chrome/browser/ash/app_restore/arc_app_launch_handler.h +++ b/chrome/browser/ash/app_restore/arc_app_launch_handler.h
@@ -14,8 +14,8 @@ #include "base/time/time.h" #include "base/timer/timer.h" #include "chrome/browser/ash/scheduler_configuration_manager.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom.h" -#include "chromeos/dbus/resourced/resourced_client.h" #include "components/services/app_service/public/cpp/app_registry_cache.h" #include "mojo/public/cpp/bindings/remote.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -105,7 +105,7 @@ // phase. class ArcAppLaunchHandler : public apps::AppRegistryCache::Observer, - public chromeos::ResourcedClient::Observer, + public ResourcedClient::Observer, public wm::ActivationChangeObserver, public aura::EnvObserver, public aura::WindowObserver, @@ -179,8 +179,8 @@ // ARC not being ready, or the system perforamcne concern) on Chrome OS. void PrepareAppLaunching(const std::string& app_id); - // Override chromeos::ResourcedClient::Observer - void OnMemoryPressure(chromeos::ResourcedClient::PressureLevel level, + // Override ResourcedClient::Observer + void OnMemoryPressure(ResourcedClient::PressureLevel level, uint64_t reclaim_target_kb) override; // Returns true if there are windows to be restored. Otherwise, returns false. @@ -291,8 +291,8 @@ base::ScopedMultiSourceObservation<aura::Window, aura::WindowObserver> observed_windows_{this}; - chromeos::ResourcedClient::PressureLevel pressure_level_ = - chromeos::ResourcedClient::PressureLevel::MODERATE; + ResourcedClient::PressureLevel pressure_level_ = + ResourcedClient::PressureLevel::MODERATE; absl::optional<bool> should_apply_cpu_restirction_; @@ -312,8 +312,7 @@ apps::AppRegistryCache::Observer> app_registry_cache_observer_{this}; - base::ScopedObservation<chromeos::ResourcedClient, - chromeos::ResourcedClient::Observer> + base::ScopedObservation<ResourcedClient, ResourcedClient::Observer> resourced_client_observer_{this}; base::WeakPtrFactory<ArcAppLaunchHandler> weak_ptr_factory_{this};
diff --git a/chrome/browser/ash/arc/arc_util_unittest.cc b/chrome/browser/ash/arc/arc_util_unittest.cc index e1939c9f..b6b3ef4 100644 --- a/chrome/browser/ash/arc/arc_util_unittest.cc +++ b/chrome/browser/ash/arc/arc_util_unittest.cc
@@ -33,7 +33,6 @@ #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" #include "chromeos/ash/components/dbus/concierge/concierge_client.h" -#include "chromeos/dbus/oobe_config/fake_oobe_configuration_client.h" #include "components/account_id/account_id.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/prefs/pref_service.h"
diff --git a/chrome/browser/ash/borealis/borealis_game_mode_controller.cc b/chrome/browser/ash/borealis/borealis_game_mode_controller.cc index 39934d997..adc1d1e1 100644 --- a/chrome/browser/ash/borealis/borealis_game_mode_controller.cc +++ b/chrome/browser/ash/borealis/borealis_game_mode_controller.cc
@@ -9,7 +9,7 @@ #include "chrome/browser/ash/borealis/borealis_metrics.h" #include "chrome/browser/ash/borealis/borealis_service.h" #include "chrome/browser/ash/borealis/borealis_window_manager.h" -#include "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "ui/views/widget/widget.h" namespace borealis { @@ -92,9 +92,9 @@ BorealisGameModeController::GameModeEnabler::GameModeEnabler() { GameModeEnabler::should_record_failure = true; RecordBorealisGameModeResultHistogram(BorealisGameModeResult::kAttempted); - if (chromeos::ResourcedClient::Get()) { - chromeos::ResourcedClient::Get()->SetGameModeWithTimeout( - chromeos::ResourcedClient::GameMode::BOREALIS, kTimeoutSec, + if (ash::ResourcedClient::Get()) { + ash::ResourcedClient::Get()->SetGameModeWithTimeout( + ash::ResourcedClient::GameMode::BOREALIS, kTimeoutSec, base::BindOnce(&GameModeEnabler::OnSetGameMode, false)); } timer_.Start(FROM_HERE, base::Seconds(kRefreshSec), this, @@ -103,17 +103,17 @@ BorealisGameModeController::GameModeEnabler::~GameModeEnabler() { timer_.Stop(); - if (chromeos::ResourcedClient::Get()) { - chromeos::ResourcedClient::Get()->SetGameModeWithTimeout( - chromeos::ResourcedClient::GameMode::OFF, 0, + if (ash::ResourcedClient::Get()) { + ash::ResourcedClient::Get()->SetGameModeWithTimeout( + ash::ResourcedClient::GameMode::OFF, 0, base::BindOnce(&GameModeEnabler::OnSetGameMode, true)); } } void BorealisGameModeController::GameModeEnabler::RefreshGameMode() { - if (chromeos::ResourcedClient::Get()) { - chromeos::ResourcedClient::Get()->SetGameModeWithTimeout( - chromeos::ResourcedClient::GameMode::BOREALIS, kTimeoutSec, + if (ash::ResourcedClient::Get()) { + ash::ResourcedClient::Get()->SetGameModeWithTimeout( + ash::ResourcedClient::GameMode::BOREALIS, kTimeoutSec, base::BindOnce(&GameModeEnabler::OnSetGameMode, true)); } } @@ -121,12 +121,11 @@ // Previous is whether game mode was enabled previous to this call. void BorealisGameModeController::GameModeEnabler::OnSetGameMode( bool was_refresh, - absl::optional<chromeos::ResourcedClient::GameMode> previous) { + absl::optional<ash::ResourcedClient::GameMode> previous) { if (!previous.has_value()) { LOG(ERROR) << "Failed to set Game Mode"; } else if (GameModeEnabler::should_record_failure && was_refresh && - previous.value() != - chromeos::ResourcedClient::GameMode::BOREALIS) { + previous.value() != ash::ResourcedClient::GameMode::BOREALIS) { // If game mode was not on and it was not the initial call, // it means the previous call failed/timed out. RecordBorealisGameModeResultHistogram(BorealisGameModeResult::kFailed);
diff --git a/chrome/browser/ash/borealis/borealis_game_mode_controller.h b/chrome/browser/ash/borealis/borealis_game_mode_controller.h index 015a097..e2b15b3 100644 --- a/chrome/browser/ash/borealis/borealis_game_mode_controller.h +++ b/chrome/browser/ash/borealis/borealis_game_mode_controller.h
@@ -9,7 +9,7 @@ #include "ash/wm/window_state_observer.h" #include "base/scoped_observation.h" #include "base/timer/timer.h" -#include "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "ui/aura/client/focus_change_observer.h" #include "ui/aura/client/focus_client.h" @@ -49,7 +49,7 @@ private: static void OnSetGameMode( bool was_refresh, - absl::optional<chromeos::ResourcedClient::GameMode> previous); + absl::optional<ash::ResourcedClient::GameMode> previous); void RefreshGameMode(); // Used to determine if it's the first instance of game mode failing.
diff --git a/chrome/browser/ash/borealis/borealis_game_mode_controller_unittest.cc b/chrome/browser/ash/borealis/borealis_game_mode_controller_unittest.cc index 046cf28..8385cb2 100644 --- a/chrome/browser/ash/borealis/borealis_game_mode_controller_unittest.cc +++ b/chrome/browser/ash/borealis/borealis_game_mode_controller_unittest.cc
@@ -13,7 +13,7 @@ #include "chrome/browser/ash/borealis/testing/widgets.h" #include "chrome/test/base/chrome_ash_test_base.h" #include "chrome/test/base/testing_profile.h" -#include "chromeos/dbus/resourced/fake_resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/fake_resourced_client.h" #include "content/public/test/browser_task_environment.h" #include "ui/aura/window.h" #include "ui/views/widget/widget.h" @@ -32,7 +32,7 @@ protected: void SetUp() override { ChromeAshTestBase::SetUp(); - fake_resourced_client_ = new chromeos::FakeResourcedClient(); + fake_resourced_client_ = new ash::FakeResourcedClient(); profile_ = std::make_unique<TestingProfile>(); service_fake_ = BorealisServiceFake::UseFakeForTesting(profile_.get()); window_manager_ = std::make_unique<BorealisWindowManager>(profile_.get()); @@ -46,7 +46,7 @@ void TearDown() override { game_mode_controller_.reset(); histogram_tester_.reset(); - chromeos::ResourcedClient::Shutdown(); + ash::ResourcedClient::Shutdown(); ChromeAshTestBase::TearDown(); } @@ -55,7 +55,7 @@ std::unique_ptr<BorealisGameModeController> game_mode_controller_; std::unique_ptr<BorealisFeatures> features_; BorealisServiceFake* service_fake_; - chromeos::FakeResourcedClient* fake_resourced_client_; + ash::FakeResourcedClient* fake_resourced_client_; std::unique_ptr<base::HistogramTester> histogram_tester_; }; @@ -167,7 +167,7 @@ // Previous game mode timed out/failed followed by refresh. fake_resourced_client_->set_set_game_mode_with_timeout_response( - chromeos::ResourcedClient::GameMode::OFF); + ash::ResourcedClient::GameMode::OFF); task_environment()->FastForwardBy(base::Seconds(61)); EXPECT_EQ(3, fake_resourced_client_->get_enter_game_mode_count()); histogram_tester_->ExpectBucketCount(kBorealisGameModeResultHistogram, @@ -178,7 +178,7 @@ // Previous game mode timed out/failed followed by exit. // Should not record to histogram as it was already recorded above. fake_resourced_client_->set_set_game_mode_with_timeout_response( - chromeos::ResourcedClient::GameMode::OFF); + ash::ResourcedClient::GameMode::OFF); test_widget->SetFullscreen(false); EXPECT_FALSE(ash::WindowState::Get(window)->IsFullscreen()); EXPECT_EQ(1, fake_resourced_client_->get_exit_game_mode_count());
diff --git a/chrome/browser/ash/crosapi/BUILD.gn b/chrome/browser/ash/crosapi/BUILD.gn index 2ba4de0..89e8f8d 100644 --- a/chrome/browser/ash/crosapi/BUILD.gn +++ b/chrome/browser/ash/crosapi/BUILD.gn
@@ -245,6 +245,7 @@ "//chrome/common:channel_info", "//chrome/common:constants", "//chromeos/ash/components/dbus/lorgnette_manager:lorgnette_proto", + "//chromeos/ash/components/dbus/resourced", "//chromeos/ash/components/dbus/session_manager", "//chromeos/ash/components/dbus/update_engine", "//chromeos/ash/components/dbus/upstart", @@ -259,7 +260,6 @@ "//chromeos/dbus", "//chromeos/dbus/cros_disks", "//chromeos/dbus/power", - "//chromeos/dbus/resourced", "//chromeos/dbus/util", "//chromeos/login/login_state", "//chromeos/network",
diff --git a/chrome/browser/ash/crosapi/resource_manager_ash.cc b/chrome/browser/ash/crosapi/resource_manager_ash.cc index a483f6d..7f65fe44 100644 --- a/chrome/browser/ash/crosapi/resource_manager_ash.cc +++ b/chrome/browser/ash/crosapi/resource_manager_ash.cc
@@ -11,13 +11,13 @@ // ResourceManagerAsh ResourceManagerAsh::ResourceManagerAsh() { - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ash::ResourcedClient* client = ash::ResourcedClient::Get(); if (client) client->AddObserver(this); } ResourceManagerAsh::~ResourceManagerAsh() { - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ash::ResourcedClient* client = ash::ResourcedClient::Get(); if (client) client->RemoveObserver(this); } @@ -28,7 +28,7 @@ } void ResourceManagerAsh::OnMemoryPressure( - chromeos::ResourcedClient::PressureLevel level, + ash::ResourcedClient::PressureLevel level, uint64_t reclaim_target_kb) { for (auto& observer : observers_) { mojom::MemoryPressurePtr pressure = mojom::MemoryPressure::New();
diff --git a/chrome/browser/ash/crosapi/resource_manager_ash.h b/chrome/browser/ash/crosapi/resource_manager_ash.h index de80a9fa..748d3ee 100644 --- a/chrome/browser/ash/crosapi/resource_manager_ash.h +++ b/chrome/browser/ash/crosapi/resource_manager_ash.h
@@ -7,8 +7,8 @@ #include <stdint.h> +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "chromeos/crosapi/mojom/resource_manager.mojom.h" -#include "chromeos/dbus/resourced/resourced_client.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/remote_set.h" @@ -17,7 +17,7 @@ // The ash-chrome implementation of the ResourceManager crosapi interface. // This class must only be used from the main thread. class ResourceManagerAsh : public mojom::ResourceManager, - public chromeos::ResourcedClient::Observer { + public ash::ResourcedClient::Observer { public: ResourceManagerAsh(); ResourceManagerAsh(const ResourceManagerAsh&) = delete; @@ -26,8 +26,8 @@ void BindReceiver(mojo::PendingReceiver<mojom::ResourceManager> receiver); - // chromeos::ResourcedClient::Observer: - void OnMemoryPressure(chromeos::ResourcedClient::PressureLevel level, + // ash::ResourcedClient::Observer: + void OnMemoryPressure(ash::ResourcedClient::PressureLevel level, uint64_t reclaim_target_kb) override; // crosapi::mojom::ResourceManager:
diff --git a/chrome/browser/ash/crostini/crostini_manager.cc b/chrome/browser/ash/crostini/crostini_manager.cc index 00ef5a9b..482a8c3 100644 --- a/chrome/browser/ash/crostini/crostini_manager.cc +++ b/chrome/browser/ash/crostini/crostini_manager.cc
@@ -1212,7 +1212,6 @@ DCHECK(!profile_->IsOffTheRecord()); GetCiceroneClient()->AddObserver(this); GetConciergeClient()->AddVmObserver(this); - GetConciergeClient()->AddContainerObserver(this); if (ash::AnomalyDetectorClient::Get()) { // May be null in tests. ash::AnomalyDetectorClient::Get()->AddObserver(this); } @@ -1258,7 +1257,6 @@ } dbus_observers_removed_ = true; GetCiceroneClient()->RemoveObserver(this); - GetConciergeClient()->RemoveContainerObserver(this); if (ash::AnomalyDetectorClient::Get()) { // May be null in tests. ash::AnomalyDetectorClient::Get()->RemoveObserver(this); } @@ -2718,19 +2716,6 @@ OnVmStoppedCleanup(signal.name()); } -void CrostiniManager::OnContainerStartupFailed( - const vm_tools::concierge::ContainerStartedSignal& signal) { - if (signal.owner_id() != owner_id_) - return; - - guest_os::GuestId container(kCrostiniDefaultVmType, signal.vm_name(), - signal.container_name()); - LOG(ERROR) << "Container startup failed for container: " << container; - InvokeAndErasePendingContainerCallbacks( - &start_container_callbacks_, container, - CrostiniResult::CONTAINER_START_FAILED); -} - void CrostiniManager::OnContainerShutdown( const vm_tools::cicerone::ContainerShutdownSignal& signal) { if (signal.owner_id() != owner_id_)
diff --git a/chrome/browser/ash/crostini/crostini_manager.h b/chrome/browser/ash/crostini/crostini_manager.h index 9e7ebee..5a3bea5 100644 --- a/chrome/browser/ash/crostini/crostini_manager.h +++ b/chrome/browser/ash/crostini/crostini_manager.h
@@ -150,7 +150,6 @@ class CrostiniManager : public KeyedService, public ash::AnomalyDetectorClient::Observer, public ash::ConciergeClient::VmObserver, - public ash::ConciergeClient::ContainerObserver, public ash::CiceroneClient::Observer, public chromeos::NetworkStateHandlerObserver, public chromeos::PowerManagerClient::Observer { @@ -497,10 +496,6 @@ void OnVmStarted(const vm_tools::concierge::VmStartedSignal& signal) override; void OnVmStopped(const vm_tools::concierge::VmStoppedSignal& signal) override; - // ConciergeClient::ContainerObserver: - void OnContainerStartupFailed( - const vm_tools::concierge::ContainerStartedSignal& signal) override; - // CiceroneClient::Observer: void OnContainerStarted( const vm_tools::cicerone::ContainerStartedSignal& signal) override;
diff --git a/chrome/browser/ash/dbus/ash_dbus_helper.cc b/chrome/browser/ash/dbus/ash_dbus_helper.cc index 036f099..cf3c456f 100644 --- a/chrome/browser/ash/dbus/ash_dbus_helper.cc +++ b/chrome/browser/ash/dbus/ash_dbus_helper.cc
@@ -32,9 +32,11 @@ #include "chromeos/ash/components/dbus/kerberos/kerberos_client.h" #include "chromeos/ash/components/dbus/lorgnette_manager/lorgnette_manager_client.h" #include "chromeos/ash/components/dbus/media_analytics/media_analytics_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h" #include "chromeos/ash/components/dbus/os_install/os_install_client.h" #include "chromeos/ash/components/dbus/patchpanel/patchpanel_client.h" #include "chromeos/ash/components/dbus/pciguard/pciguard_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "chromeos/ash/components/dbus/rgbkbd/rgbkbd_client.h" #include "chromeos/ash/components/dbus/rmad/rmad_client.h" #include "chromeos/ash/components/dbus/seneschal/seneschal_client.h" @@ -68,10 +70,8 @@ #include "chromeos/dbus/init/initialize_dbus_client.h" #include "chromeos/dbus/machine_learning/machine_learning_client.h" #include "chromeos/dbus/missive/missive_client.h" -#include "chromeos/dbus/oobe_config/oobe_configuration_client.h" #include "chromeos/dbus/permission_broker/permission_broker_client.h" #include "chromeos/dbus/power/power_manager_client.h" -#include "chromeos/dbus/resourced/resourced_client.h" #include "chromeos/dbus/runtime_probe/runtime_probe_client.h" #include "chromeos/dbus/tpm_manager/tpm_manager_client.h" #include "chromeos/dbus/u2f/u2f_client.h" @@ -154,13 +154,13 @@ InitializeDBusClient<chromeos::MachineLearningClient>(bus); InitializeDBusClient<MediaAnalyticsClient>(bus); InitializeDBusClient<chromeos::MissiveClient>(bus); - InitializeDBusClient<chromeos::OobeConfigurationClient>(bus); + InitializeDBusClient<OobeConfigurationClient>(bus); InitializeDBusClient<OsInstallClient>(bus); InitializeDBusClient<PatchPanelClient>(bus); InitializeDBusClient<PciguardClient>(bus); InitializeDBusClient<chromeos::PermissionBrokerClient>(bus); InitializeDBusClient<chromeos::PowerManagerClient>(bus); - InitializeDBusClient<chromeos::ResourcedClient>(bus); + InitializeDBusClient<ResourcedClient>(bus); InitializeDBusClient<chromeos::RuntimeProbeClient>(bus); InitializeDBusClient<SeneschalClient>(bus); InitializeDBusClient<SessionManagerClient>(bus); @@ -246,7 +246,7 @@ SessionManagerClient::Shutdown(); SeneschalClient::Shutdown(); chromeos::RuntimeProbeClient::Shutdown(); - chromeos::ResourcedClient::Shutdown(); + ResourcedClient::Shutdown(); if (ash::features::IsRgbKeyboardEnabled()) { RgbkbdClient::Shutdown(); } @@ -258,7 +258,7 @@ PciguardClient::Shutdown(); PatchPanelClient::Shutdown(); OsInstallClient::Shutdown(); - chromeos::OobeConfigurationClient::Shutdown(); + OobeConfigurationClient::Shutdown(); chromeos::MissiveClient::Shutdown(); MediaAnalyticsClient::Shutdown(); chromeos::MachineLearningClient::Shutdown();
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc index 63e3ca18..9041be9 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -1731,20 +1731,16 @@ TestCase("recentsA11yMessages").EnableFiltersInRecents(), TestCase("recentsA11yMessages").EnableFiltersInRecents().FilesSwa(), TestCase("recentsAllowCutForDownloads") - .EnableArc() .EnableFiltersInRecents() .EnableFiltersInRecentsV2(), TestCase("recentsAllowCutForDownloads") - .EnableArc() .EnableFiltersInRecents() .EnableFiltersInRecentsV2() .FilesSwa(), TestCase("recentsAllowCutForDrive") - .EnableArc() .EnableFiltersInRecents() .EnableFiltersInRecentsV2(), TestCase("recentsAllowCutForDrive") - .EnableArc() .EnableFiltersInRecents() .EnableFiltersInRecentsV2() .FilesSwa(), @@ -1853,6 +1849,13 @@ .EnableFiltersInRecents() .EnableFiltersInRecentsV2() .FilesSwa(), + TestCase("recentsTimePeriodHeadings") + .EnableFiltersInRecents() + .EnableFiltersInRecentsV2(), + TestCase("recentsTimePeriodHeadings") + .EnableFiltersInRecents() + .EnableFiltersInRecentsV2() + .FilesSwa(), TestCase("recentAudioDownloads"), TestCase("recentAudioDownloads").FilesSwa(), TestCase("recentAudioDownloads").EnableFiltersInRecents(),
diff --git a/chrome/browser/ash/file_manager/file_manager_jstest.cc b/chrome/browser/ash/file_manager/file_manager_jstest.cc index bb4fff6c..676efcb 100644 --- a/chrome/browser/ash/file_manager/file_manager_jstest.cc +++ b/chrome/browser/ash/file_manager/file_manager_jstest.cc
@@ -300,7 +300,7 @@ } IN_PROC_BROWSER_TEST_F(FileManagerJsTest, XfBreadcrumbs) { - RunTestURL("widgets/xf_breadcrumbs_unittest.js"); + RunTestURL("widgets/xf_breadcrumb_unittest.js"); } IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileGridTest) {
diff --git a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc index 9897951..b599adf 100644 --- a/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc +++ b/chrome/browser/ash/login/demo_mode/demo_setup_browsertest.cc
@@ -946,8 +946,9 @@ } }; +// crbug.com/1341073 Disable due to flakiness. IN_PROC_BROWSER_TEST_F(DemoSetupProgressStepsTest, - SetupProgessStepsDisplayCorrectly) { + DISABLED_SetupProgessStepsDisplayCorrectly) { SimulateNetworkConnected(); TriggerDemoModeOnWelcomeScreen(); test::OobeJS().ClickOnPath(kDemoPreferencesNext); @@ -1028,15 +1029,10 @@ } }; -#if defined(ADDRESS_SANITIZER) -#define MAYBE_VariantCountryCodeRegionDefaultCountryIsSet \ - DISABLED_VariantCountryCodeRegionDefaultCountryIsSet -#else -#define MAYBE_VariantCountryCodeRegionDefaultCountryIsSet \ - VariantCountryCodeRegionDefaultCountryIsSet -#endif +// crbug.com/1340982 Disable due to flakiness. Note that this test is also +// disabled with ASAN, see crbug.com/1150349 for more information. IN_PROC_BROWSER_TEST_F(DemoSetupVariantCountryCodeRegionTest, - MAYBE_VariantCountryCodeRegionDefaultCountryIsSet) { + DISABLED_VariantCountryCodeRegionDefaultCountryIsSet) { // Simulate successful online setup. enrollment_helper_.ExpectEnrollmentMode( policy::EnrollmentConfig::MODE_ATTESTATION);
diff --git a/chrome/browser/ash/login/oobe_configuration.cc b/chrome/browser/ash/login/oobe_configuration.cc index ee9684fc..ae21f308 100644 --- a/chrome/browser/ash/login/oobe_configuration.cc +++ b/chrome/browser/ash/login/oobe_configuration.cc
@@ -9,7 +9,7 @@ #include "base/json/json_reader.h" #include "base/logging.h" #include "chrome/browser/ash/login/configuration_keys.h" -#include "chromeos/dbus/oobe_config/oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h" #include "ui/base/ime/ash/input_method_manager.h" #include "ui/base/ime/ash/input_method_util.h" @@ -66,9 +66,8 @@ void OobeConfiguration::CheckConfiguration() { if (skip_check_for_testing_) return; - chromeos::OobeConfigurationClient::Get()->CheckForOobeConfiguration( - base::BindOnce(&OobeConfiguration::OnConfigurationCheck, - weak_factory_.GetWeakPtr())); + OobeConfigurationClient::Get()->CheckForOobeConfiguration(base::BindOnce( + &OobeConfiguration::OnConfigurationCheck, weak_factory_.GetWeakPtr())); } void OobeConfiguration::OnConfigurationCheck(bool has_configuration,
diff --git a/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc b/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc index 98a5555..84646b7 100644 --- a/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc
@@ -675,7 +675,8 @@ // Assert that the ChromeVox hint gives speech output and shows a dialog. // Clicking the 'activate' button in the dialog should activate ChromeVox. -IN_PROC_BROWSER_TEST_F(WelcomeScreenChromeVoxHintTest, LaptopClick) { +// crbug.com/1341515 Disabled due to flakiness. +IN_PROC_BROWSER_TEST_F(WelcomeScreenChromeVoxHintTest, DISABLED_LaptopClick) { OobeScreenWaiter(WelcomeView::kScreenId).Wait(); // A consistency check to ensure the ChromeVox hint idle detector is disabled // for this and similar tests.
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager_browsertest.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager_browsertest.cc index 21070a5c..a5208d64 100644 --- a/chrome/browser/ash/system_web_apps/system_web_app_manager_browsertest.cc +++ b/chrome/browser/ash/system_web_apps/system_web_app_manager_browsertest.cc
@@ -1625,7 +1625,6 @@ ui::EF_LEFT_MOUSE_BUTTON); url_observer.Wait(); } -#endif // BUILDFLAG(IS_CHROMEOS_ASH) class SystemWebAppManagerBackgroundTaskTest : public SystemWebAppManagerBrowserTest { @@ -1685,6 +1684,8 @@ EXPECT_EQ(base::Days(1), timer->GetCurrentDelay()); } +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + class SystemWebAppManagerContextMenuBrowserTest : public SystemWebAppManagerBrowserTest { public: @@ -1945,10 +1946,10 @@ INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P( SystemWebAppManagerShortcutTest); -#endif INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P( SystemWebAppManagerBackgroundTaskTest); +#endif #if !BUILDFLAG(IS_CHROMEOS_LACROS) INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P(
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc index b87a00d..5f56850 100644 --- a/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc +++ b/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ash/system_web_apps/system_web_app_manager_factory.h" +#include "build/chromeos_buildflags.h" #include "chrome/browser/ash/system_web_apps/system_web_app_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/web_applications/web_app_provider.h" @@ -65,7 +66,12 @@ content::BrowserContext* SystemWebAppManagerFactory::GetBrowserContextToUse( content::BrowserContext* context) const { + // System Web Apps are only available in Ash. +#if BUILDFLAG(IS_CHROMEOS_ASH) return web_app::GetBrowserContextForWebApps(context); +#else + return nullptr; +#endif } void SystemWebAppManagerFactory::RegisterProfilePrefs(
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 84aebc0..a17e29f 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -268,10 +268,13 @@ "//chromeos/ash/components/dbus/lorgnette_manager:lorgnette_proto", "//chromeos/ash/components/dbus/media_analytics", "//chromeos/ash/components/dbus/media_analytics:media_perception_proto", + "//chromeos/ash/components/dbus/oobe_config", + "//chromeos/ash/components/dbus/oobe_config:proto", "//chromeos/ash/components/dbus/os_install", "//chromeos/ash/components/dbus/patchpanel", "//chromeos/ash/components/dbus/patchpanel:patchpanel_proto", "//chromeos/ash/components/dbus/pciguard", + "//chromeos/ash/components/dbus/resourced", "//chromeos/ash/components/dbus/rgbkbd", "//chromeos/ash/components/dbus/rmad", "//chromeos/ash/components/dbus/seneschal", @@ -342,11 +345,8 @@ "//chromeos/dbus/image_loader", "//chromeos/dbus/machine_learning", "//chromeos/dbus/missive", - "//chromeos/dbus/oobe_config", - "//chromeos/dbus/oobe_config:proto", "//chromeos/dbus/permission_broker", "//chromeos/dbus/power", - "//chromeos/dbus/resourced", "//chromeos/dbus/tpm_manager", "//chromeos/dbus/tpm_manager:tpm_manager_proto", "//chromeos/dbus/u2f", @@ -595,6 +595,459 @@ ] sources = [ + "../ash/login/active_directory_migration_utils.cc", + "../ash/login/active_directory_migration_utils.h", + "../ash/login/app_mode/kiosk_launch_controller.cc", + "../ash/login/app_mode/kiosk_launch_controller.h", + "../ash/login/auth/chrome_cryptohome_authenticator.cc", + "../ash/login/auth/chrome_cryptohome_authenticator.h", + "../ash/login/auth/chrome_login_performer.cc", + "../ash/login/auth/chrome_login_performer.h", + "../ash/login/auth/chrome_safe_mode_delegate.cc", + "../ash/login/auth/chrome_safe_mode_delegate.h", + "../ash/login/challenge_response_auth_keys_loader.cc", + "../ash/login/challenge_response_auth_keys_loader.h", + "../ash/login/chrome_restart_request.cc", + "../ash/login/chrome_restart_request.h", + "../ash/login/configuration_keys.cc", + "../ash/login/configuration_keys.h", + "../ash/login/consolidated_consent_field_trial.cc", + "../ash/login/consolidated_consent_field_trial.h", + "../ash/login/demo_mode/demo_extensions_external_loader.cc", + "../ash/login/demo_mode/demo_extensions_external_loader.h", + "../ash/login/demo_mode/demo_mode_resources_remover.cc", + "../ash/login/demo_mode/demo_mode_resources_remover.h", + "../ash/login/demo_mode/demo_resources.cc", + "../ash/login/demo_mode/demo_resources.h", + "../ash/login/demo_mode/demo_session.cc", + "../ash/login/demo_mode/demo_session.h", + "../ash/login/demo_mode/demo_setup_controller.cc", + "../ash/login/demo_mode/demo_setup_controller.h", + "../ash/login/easy_unlock/chrome_proximity_auth_client.cc", + "../ash/login/easy_unlock/chrome_proximity_auth_client.h", + "../ash/login/easy_unlock/easy_unlock_auth_attempt.cc", + "../ash/login/easy_unlock/easy_unlock_auth_attempt.h", + "../ash/login/easy_unlock/easy_unlock_challenge_wrapper.cc", + "../ash/login/easy_unlock/easy_unlock_challenge_wrapper.h", + "../ash/login/easy_unlock/easy_unlock_create_keys_operation.cc", + "../ash/login/easy_unlock/easy_unlock_create_keys_operation.h", + "../ash/login/easy_unlock/easy_unlock_get_keys_operation.cc", + "../ash/login/easy_unlock/easy_unlock_get_keys_operation.h", + "../ash/login/easy_unlock/easy_unlock_key_manager.cc", + "../ash/login/easy_unlock/easy_unlock_key_manager.h", + "../ash/login/easy_unlock/easy_unlock_key_names.cc", + "../ash/login/easy_unlock/easy_unlock_key_names.h", + "../ash/login/easy_unlock/easy_unlock_metrics.cc", + "../ash/login/easy_unlock/easy_unlock_metrics.h", + "../ash/login/easy_unlock/easy_unlock_notification_controller.cc", + "../ash/login/easy_unlock/easy_unlock_notification_controller.h", + "../ash/login/easy_unlock/easy_unlock_refresh_keys_operation.cc", + "../ash/login/easy_unlock/easy_unlock_refresh_keys_operation.h", + "../ash/login/easy_unlock/easy_unlock_remove_keys_operation.cc", + "../ash/login/easy_unlock/easy_unlock_remove_keys_operation.h", + "../ash/login/easy_unlock/easy_unlock_service.cc", + "../ash/login/easy_unlock/easy_unlock_service.h", + "../ash/login/easy_unlock/easy_unlock_service_factory.cc", + "../ash/login/easy_unlock/easy_unlock_service_factory.h", + "../ash/login/easy_unlock/easy_unlock_service_regular.cc", + "../ash/login/easy_unlock/easy_unlock_service_regular.h", + "../ash/login/easy_unlock/easy_unlock_service_signin.cc", + "../ash/login/easy_unlock/easy_unlock_service_signin.h", + "../ash/login/easy_unlock/easy_unlock_tpm_key_manager.cc", + "../ash/login/easy_unlock/easy_unlock_tpm_key_manager.h", + "../ash/login/easy_unlock/easy_unlock_tpm_key_manager_factory.cc", + "../ash/login/easy_unlock/easy_unlock_tpm_key_manager_factory.h", + "../ash/login/easy_unlock/easy_unlock_types.cc", + "../ash/login/easy_unlock/easy_unlock_types.h", + "../ash/login/easy_unlock/easy_unlock_user_login_flow.cc", + "../ash/login/easy_unlock/easy_unlock_user_login_flow.h", + "../ash/login/easy_unlock/smartlock_feature_usage_metrics.cc", + "../ash/login/easy_unlock/smartlock_feature_usage_metrics.h", + "../ash/login/easy_unlock/smartlock_state_handler.cc", + "../ash/login/easy_unlock/smartlock_state_handler.h", + "../ash/login/enrollment/auto_enrollment_check_screen.cc", + "../ash/login/enrollment/auto_enrollment_check_screen.h", + "../ash/login/enrollment/auto_enrollment_check_screen_view.h", + "../ash/login/enrollment/auto_enrollment_controller.cc", + "../ash/login/enrollment/auto_enrollment_controller.h", + "../ash/login/enrollment/enrollment_screen.cc", + "../ash/login/enrollment/enrollment_screen.h", + "../ash/login/enrollment/enrollment_screen_view.h", + "../ash/login/enrollment/enrollment_uma.cc", + "../ash/login/enrollment/enrollment_uma.h", + "../ash/login/enrollment/enterprise_enrollment_helper.cc", + "../ash/login/enrollment/enterprise_enrollment_helper.h", + "../ash/login/enrollment/enterprise_enrollment_helper_impl.cc", + "../ash/login/enrollment/enterprise_enrollment_helper_impl.h", + "../ash/login/enterprise_user_session_metrics.cc", + "../ash/login/enterprise_user_session_metrics.h", + "../ash/login/error_screens_histogram_helper.cc", + "../ash/login/error_screens_histogram_helper.h", + "../ash/login/existing_user_controller.cc", + "../ash/login/existing_user_controller.h", + "../ash/login/gaia_reauth_token_fetcher.cc", + "../ash/login/gaia_reauth_token_fetcher.h", + "../ash/login/hats_unlock_survey_trigger.cc", + "../ash/login/hats_unlock_survey_trigger.h", + "../ash/login/help_app_launcher.cc", + "../ash/login/help_app_launcher.h", + "../ash/login/helper.cc", + "../ash/login/helper.h", + "../ash/login/hwid_checker.cc", + "../ash/login/hwid_checker.h", + "../ash/login/lock/screen_locker.cc", + "../ash/login/lock/screen_locker.h", + "../ash/login/lock/views_screen_locker.cc", + "../ash/login/lock/views_screen_locker.h", + "../ash/login/lock_screen_utils.cc", + "../ash/login/lock_screen_utils.h", + "../ash/login/login_auth_recorder.cc", + "../ash/login/login_auth_recorder.h", + "../ash/login/login_client_cert_usage_observer.cc", + "../ash/login/login_client_cert_usage_observer.h", + "../ash/login/login_pref_names.cc", + "../ash/login/login_pref_names.h", + "../ash/login/login_screen_extensions_lifetime_manager.cc", + "../ash/login/login_screen_extensions_lifetime_manager.h", + "../ash/login/login_screen_extensions_storage_cleaner.cc", + "../ash/login/login_screen_extensions_storage_cleaner.h", + "../ash/login/login_wizard.h", + "../ash/login/marketing_backend_connector.cc", + "../ash/login/marketing_backend_connector.h", + "../ash/login/mojo_system_info_dispatcher.cc", + "../ash/login/mojo_system_info_dispatcher.h", + "../ash/login/onboarding_user_activity_counter.cc", + "../ash/login/onboarding_user_activity_counter.h", + "../ash/login/oobe_configuration.cc", + "../ash/login/oobe_configuration.h", + "../ash/login/oobe_screen.cc", + "../ash/login/oobe_screen.h", + "../ash/login/profile_auth_data.cc", + "../ash/login/profile_auth_data.h", + "../ash/login/quick_unlock/auth_token.cc", + "../ash/login/quick_unlock/auth_token.h", + "../ash/login/quick_unlock/fake_pin_salt_storage.cc", + "../ash/login/quick_unlock/fake_pin_salt_storage.h", + "../ash/login/quick_unlock/fingerprint_power_button_race_detector.cc", + "../ash/login/quick_unlock/fingerprint_power_button_race_detector.h", + "../ash/login/quick_unlock/fingerprint_storage.cc", + "../ash/login/quick_unlock/fingerprint_storage.h", + "../ash/login/quick_unlock/fingerprint_utils.cc", + "../ash/login/quick_unlock/fingerprint_utils.h", + "../ash/login/quick_unlock/pin_backend.cc", + "../ash/login/quick_unlock/pin_backend.h", + "../ash/login/quick_unlock/pin_salt_storage.cc", + "../ash/login/quick_unlock/pin_salt_storage.h", + "../ash/login/quick_unlock/pin_storage_cryptohome.cc", + "../ash/login/quick_unlock/pin_storage_cryptohome.h", + "../ash/login/quick_unlock/pin_storage_prefs.cc", + "../ash/login/quick_unlock/pin_storage_prefs.h", + "../ash/login/quick_unlock/quick_unlock_factory.cc", + "../ash/login/quick_unlock/quick_unlock_factory.h", + "../ash/login/quick_unlock/quick_unlock_storage.cc", + "../ash/login/quick_unlock/quick_unlock_storage.h", + "../ash/login/quick_unlock/quick_unlock_utils.cc", + "../ash/login/quick_unlock/quick_unlock_utils.h", + "../ash/login/reauth_stats.cc", + "../ash/login/reauth_stats.h", + "../ash/login/reporting/login_logout_reporter.cc", + "../ash/login/reporting/login_logout_reporter.h", + "../ash/login/saml/in_session_password_change_manager.cc", + "../ash/login/saml/in_session_password_change_manager.h", + "../ash/login/saml/in_session_password_sync_manager.cc", + "../ash/login/saml/in_session_password_sync_manager.h", + "../ash/login/saml/in_session_password_sync_manager_factory.cc", + "../ash/login/saml/in_session_password_sync_manager_factory.h", + "../ash/login/saml/password_change_success_notification.cc", + "../ash/login/saml/password_change_success_notification.h", + "../ash/login/saml/password_expiry_notification.cc", + "../ash/login/saml/password_expiry_notification.h", + "../ash/login/saml/password_sync_token_checkers_collection.cc", + "../ash/login/saml/password_sync_token_checkers_collection.h", + "../ash/login/saml/password_sync_token_fetcher.cc", + "../ash/login/saml/password_sync_token_fetcher.h", + "../ash/login/saml/password_sync_token_login_checker.cc", + "../ash/login/saml/password_sync_token_login_checker.h", + "../ash/login/saml/password_sync_token_verifier.cc", + "../ash/login/saml/password_sync_token_verifier.h", + "../ash/login/saml/password_sync_token_verifier_factory.cc", + "../ash/login/saml/password_sync_token_verifier_factory.h", + "../ash/login/saml/public_saml_url_fetcher.cc", + "../ash/login/saml/public_saml_url_fetcher.h", + "../ash/login/saml/saml_metric_utils.cc", + "../ash/login/saml/saml_metric_utils.h", + "../ash/login/saml/saml_profile_prefs.cc", + "../ash/login/saml/saml_profile_prefs.h", + "../ash/login/screen_manager.cc", + "../ash/login/screen_manager.h", + "../ash/login/screens/active_directory_login_screen.cc", + "../ash/login/screens/active_directory_login_screen.h", + "../ash/login/screens/active_directory_password_change_screen.cc", + "../ash/login/screens/active_directory_password_change_screen.h", + "../ash/login/screens/app_downloading_screen.cc", + "../ash/login/screens/app_downloading_screen.h", + "../ash/login/screens/arc_terms_of_service_screen.cc", + "../ash/login/screens/arc_terms_of_service_screen.h", + "../ash/login/screens/assistant_optin_flow_screen.cc", + "../ash/login/screens/assistant_optin_flow_screen.h", + "../ash/login/screens/base_screen.cc", + "../ash/login/screens/base_screen.h", + "../ash/login/screens/chrome_user_selection_screen.cc", + "../ash/login/screens/chrome_user_selection_screen.h", + "../ash/login/screens/chromevox_hint/chromevox_hint_detector.cc", + "../ash/login/screens/chromevox_hint/chromevox_hint_detector.h", + "../ash/login/screens/consolidated_consent_screen.cc", + "../ash/login/screens/consolidated_consent_screen.h", + "../ash/login/screens/demo_preferences_screen.cc", + "../ash/login/screens/demo_preferences_screen.h", + "../ash/login/screens/demo_setup_screen.cc", + "../ash/login/screens/demo_setup_screen.h", + "../ash/login/screens/device_disabled_screen.cc", + "../ash/login/screens/device_disabled_screen.h", + "../ash/login/screens/edu_coexistence_login_screen.cc", + "../ash/login/screens/edu_coexistence_login_screen.h", + "../ash/login/screens/enable_adb_sideloading_screen.cc", + "../ash/login/screens/enable_adb_sideloading_screen.h", + "../ash/login/screens/enable_debugging_screen.cc", + "../ash/login/screens/enable_debugging_screen.h", + "../ash/login/screens/encryption_migration_mode.h", + "../ash/login/screens/encryption_migration_screen.cc", + "../ash/login/screens/encryption_migration_screen.h", + "../ash/login/screens/error_screen.cc", + "../ash/login/screens/error_screen.h", + "../ash/login/screens/eula_screen.cc", + "../ash/login/screens/eula_screen.h", + "../ash/login/screens/family_link_notice_screen.cc", + "../ash/login/screens/family_link_notice_screen.h", + "../ash/login/screens/fingerprint_setup_screen.cc", + "../ash/login/screens/fingerprint_setup_screen.h", + "../ash/login/screens/gaia_password_changed_screen.cc", + "../ash/login/screens/gaia_password_changed_screen.h", + "../ash/login/screens/gaia_screen.cc", + "../ash/login/screens/gaia_screen.h", + "../ash/login/screens/gesture_navigation_screen.cc", + "../ash/login/screens/gesture_navigation_screen.h", + "../ash/login/screens/guest_tos_screen.cc", + "../ash/login/screens/guest_tos_screen.h", + "../ash/login/screens/hardware_data_collection_screen.cc", + "../ash/login/screens/hardware_data_collection_screen.h", + "../ash/login/screens/hid_detection_screen.cc", + "../ash/login/screens/hid_detection_screen.h", + "../ash/login/screens/kiosk_autolaunch_screen.cc", + "../ash/login/screens/kiosk_autolaunch_screen.h", + "../ash/login/screens/kiosk_enable_screen.cc", + "../ash/login/screens/kiosk_enable_screen.h", + "../ash/login/screens/lacros_data_migration_screen.cc", + "../ash/login/screens/lacros_data_migration_screen.h", + "../ash/login/screens/locale_switch_screen.cc", + "../ash/login/screens/locale_switch_screen.h", + "../ash/login/screens/management_transition_screen.cc", + "../ash/login/screens/management_transition_screen.h", + "../ash/login/screens/marketing_opt_in_screen.cc", + "../ash/login/screens/marketing_opt_in_screen.h", + "../ash/login/screens/multidevice_setup_screen.cc", + "../ash/login/screens/multidevice_setup_screen.h", + "../ash/login/screens/network_error.cc", + "../ash/login/screens/network_error.h", + "../ash/login/screens/network_screen.cc", + "../ash/login/screens/network_screen.h", + "../ash/login/screens/offline_login_screen.cc", + "../ash/login/screens/offline_login_screen.h", + "../ash/login/screens/os_install_screen.cc", + "../ash/login/screens/os_install_screen.h", + "../ash/login/screens/os_trial_screen.cc", + "../ash/login/screens/os_trial_screen.h", + "../ash/login/screens/packaged_license_screen.cc", + "../ash/login/screens/packaged_license_screen.h", + "../ash/login/screens/parental_handoff_screen.cc", + "../ash/login/screens/parental_handoff_screen.h", + "../ash/login/screens/pin_setup_screen.cc", + "../ash/login/screens/pin_setup_screen.h", + "../ash/login/screens/quick_start_screen.cc", + "../ash/login/screens/quick_start_screen.h", + "../ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.cc", + "../ash/login/screens/recommend_apps/fake_recommend_apps_fetcher.h", + "../ash/login/screens/recommend_apps/recommend_apps_fetcher.cc", + "../ash/login/screens/recommend_apps/recommend_apps_fetcher.h", + "../ash/login/screens/recommend_apps/recommend_apps_fetcher_delegate.h", + "../ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc", + "../ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.h", + "../ash/login/screens/recommend_apps_screen.cc", + "../ash/login/screens/recommend_apps_screen.h", + "../ash/login/screens/reset_screen.cc", + "../ash/login/screens/reset_screen.h", + "../ash/login/screens/saml_confirm_password_screen.cc", + "../ash/login/screens/saml_confirm_password_screen.h", + "../ash/login/screens/signin_fatal_error_screen.cc", + "../ash/login/screens/signin_fatal_error_screen.h", + "../ash/login/screens/smart_privacy_protection_screen.cc", + "../ash/login/screens/smart_privacy_protection_screen.h", + "../ash/login/screens/sync_consent_screen.cc", + "../ash/login/screens/sync_consent_screen.h", + "../ash/login/screens/terms_of_service_screen.cc", + "../ash/login/screens/terms_of_service_screen.h", + "../ash/login/screens/theme_selection_screen.cc", + "../ash/login/screens/theme_selection_screen.h", + "../ash/login/screens/tpm_error_screen.cc", + "../ash/login/screens/tpm_error_screen.h", + "../ash/login/screens/update_required_screen.cc", + "../ash/login/screens/update_required_screen.h", + "../ash/login/screens/update_screen.cc", + "../ash/login/screens/update_screen.h", + "../ash/login/screens/user_creation_screen.cc", + "../ash/login/screens/user_creation_screen.h", + "../ash/login/screens/user_selection_screen.cc", + "../ash/login/screens/user_selection_screen.h", + "../ash/login/screens/welcome_screen.cc", + "../ash/login/screens/welcome_screen.h", + "../ash/login/screens/wrong_hwid_screen.cc", + "../ash/login/screens/wrong_hwid_screen.h", + "../ash/login/security_token_pin_dialog_host_login_impl.cc", + "../ash/login/security_token_pin_dialog_host_login_impl.h", + "../ash/login/security_token_session_controller.cc", + "../ash/login/security_token_session_controller.h", + "../ash/login/security_token_session_controller_factory.cc", + "../ash/login/security_token_session_controller_factory.h", + "../ash/login/session/chrome_session_manager.cc", + "../ash/login/session/chrome_session_manager.h", + "../ash/login/session/user_session_initializer.cc", + "../ash/login/session/user_session_initializer.h", + "../ash/login/session/user_session_manager.cc", + "../ash/login/session/user_session_manager.h", + "../ash/login/signin/auth_error_observer.cc", + "../ash/login/signin/auth_error_observer.h", + "../ash/login/signin/auth_error_observer_factory.cc", + "../ash/login/signin/auth_error_observer_factory.h", + "../ash/login/signin/merge_session_navigation_throttle.cc", + "../ash/login/signin/merge_session_navigation_throttle.h", + "../ash/login/signin/merge_session_throttling_utils.cc", + "../ash/login/signin/merge_session_throttling_utils.h", + "../ash/login/signin/oauth2_login_manager.cc", + "../ash/login/signin/oauth2_login_manager.h", + "../ash/login/signin/oauth2_login_manager_factory.cc", + "../ash/login/signin/oauth2_login_manager_factory.h", + "../ash/login/signin/oauth2_login_verifier.cc", + "../ash/login/signin/oauth2_login_verifier.h", + "../ash/login/signin/oauth2_token_fetcher.cc", + "../ash/login/signin/oauth2_token_fetcher.h", + "../ash/login/signin/oauth2_token_initializer.cc", + "../ash/login/signin/oauth2_token_initializer.h", + "../ash/login/signin/offline_signin_limiter.cc", + "../ash/login/signin/offline_signin_limiter.h", + "../ash/login/signin/offline_signin_limiter_factory.cc", + "../ash/login/signin/offline_signin_limiter_factory.h", + "../ash/login/signin/signin_error_notifier.cc", + "../ash/login/signin/signin_error_notifier.h", + "../ash/login/signin/signin_error_notifier_factory.cc", + "../ash/login/signin/signin_error_notifier_factory.h", + "../ash/login/signin/token_handle_fetcher.cc", + "../ash/login/signin/token_handle_fetcher.h", + "../ash/login/signin/token_handle_util.cc", + "../ash/login/signin/token_handle_util.h", + "../ash/login/signin_partition_manager.cc", + "../ash/login/signin_partition_manager.h", + "../ash/login/signin_specifics.h", + "../ash/login/startup_utils.cc", + "../ash/login/startup_utils.h", + "../ash/login/ui/captive_portal_dialog_delegate.cc", + "../ash/login/ui/captive_portal_dialog_delegate.h", + "../ash/login/ui/captive_portal_view.cc", + "../ash/login/ui/captive_portal_view.h", + "../ash/login/ui/captive_portal_window_proxy.cc", + "../ash/login/ui/captive_portal_window_proxy.h", + "../ash/login/ui/input_events_blocker.cc", + "../ash/login/ui/input_events_blocker.h", + "../ash/login/ui/kiosk_app_menu_controller.cc", + "../ash/login/ui/kiosk_app_menu_controller.h", + "../ash/login/ui/login_display.cc", + "../ash/login/ui/login_display.h", + "../ash/login/ui/login_display_host.cc", + "../ash/login/ui/login_display_host.h", + "../ash/login/ui/login_display_host_common.cc", + "../ash/login/ui/login_display_host_common.h", + "../ash/login/ui/login_display_host_mojo.cc", + "../ash/login/ui/login_display_host_mojo.h", + "../ash/login/ui/login_display_host_webui.cc", + "../ash/login/ui/login_display_host_webui.h", + "../ash/login/ui/login_display_mojo.cc", + "../ash/login/ui/login_display_mojo.h", + "../ash/login/ui/login_display_webui.cc", + "../ash/login/ui/login_display_webui.h", + "../ash/login/ui/login_feedback.cc", + "../ash/login/ui/login_feedback.h", + "../ash/login/ui/login_screen_extension_ui/create_options.cc", + "../ash/login/ui/login_screen_extension_ui/create_options.h", + "../ash/login/ui/login_screen_extension_ui/dialog_delegate.cc", + "../ash/login/ui/login_screen_extension_ui/dialog_delegate.h", + "../ash/login/ui/login_screen_extension_ui/web_dialog_view.cc", + "../ash/login/ui/login_screen_extension_ui/web_dialog_view.h", + "../ash/login/ui/login_screen_extension_ui/window.cc", + "../ash/login/ui/login_screen_extension_ui/window.h", + "../ash/login/ui/login_web_dialog.cc", + "../ash/login/ui/login_web_dialog.h", + "../ash/login/ui/oobe_dialog_size_utils.cc", + "../ash/login/ui/oobe_dialog_size_utils.h", + "../ash/login/ui/oobe_ui_dialog_delegate.cc", + "../ash/login/ui/oobe_ui_dialog_delegate.h", + "../ash/login/ui/signin_ui.h", + "../ash/login/ui/simple_web_view_dialog.cc", + "../ash/login/ui/simple_web_view_dialog.h", + "../ash/login/ui/user_adding_screen.cc", + "../ash/login/ui/user_adding_screen.h", + "../ash/login/ui/user_adding_screen_input_methods_controller.cc", + "../ash/login/ui/user_adding_screen_input_methods_controller.h", + "../ash/login/ui/views/user_board_view.h", + "../ash/login/ui/web_contents_forced_title.cc", + "../ash/login/ui/web_contents_forced_title.h", + "../ash/login/ui/webui_login_view.cc", + "../ash/login/ui/webui_login_view.h", + "../ash/login/user_board_view_mojo.cc", + "../ash/login/user_board_view_mojo.h", + "../ash/login/user_flow.cc", + "../ash/login/user_flow.h", + "../ash/login/user_online_signin_notifier.cc", + "../ash/login/user_online_signin_notifier.h", + "../ash/login/users/affiliation.cc", + "../ash/login/users/affiliation.h", + "../ash/login/users/avatar/user_image_file_selector.cc", + "../ash/login/users/avatar/user_image_file_selector.h", + "../ash/login/users/avatar/user_image_loader.cc", + "../ash/login/users/avatar/user_image_loader.h", + "../ash/login/users/avatar/user_image_manager.cc", + "../ash/login/users/avatar/user_image_manager.h", + "../ash/login/users/avatar/user_image_manager_impl.cc", + "../ash/login/users/avatar/user_image_manager_impl.h", + "../ash/login/users/avatar/user_image_sync_observer.cc", + "../ash/login/users/avatar/user_image_sync_observer.h", + "../ash/login/users/chrome_user_manager.cc", + "../ash/login/users/chrome_user_manager.h", + "../ash/login/users/chrome_user_manager_impl.cc", + "../ash/login/users/chrome_user_manager_impl.h", + "../ash/login/users/chrome_user_manager_util.cc", + "../ash/login/users/chrome_user_manager_util.h", + "../ash/login/users/default_user_image/default_user_images.cc", + "../ash/login/users/default_user_image/default_user_images.h", + "../ash/login/users/multi_profile_user_controller.cc", + "../ash/login/users/multi_profile_user_controller.h", + "../ash/login/users/multi_profile_user_controller_delegate.h", + "../ash/login/users/scoped_test_user_manager.cc", + "../ash/login/users/scoped_test_user_manager.h", + "../ash/login/users/supervised_user_manager.h", + "../ash/login/users/supervised_user_manager_impl.cc", + "../ash/login/users/supervised_user_manager_impl.h", + "../ash/login/users/test_users.cc", + "../ash/login/users/test_users.h", + "../ash/login/users/user_manager_interface.h", + "../ash/login/version_info_updater.cc", + "../ash/login/version_info_updater.h", + "../ash/login/version_updater/update_time_estimator.cc", + "../ash/login/version_updater/update_time_estimator.h", + "../ash/login/version_updater/version_updater.cc", + "../ash/login/version_updater/version_updater.h", + "../ash/login/wizard_context.cc", + "../ash/login/wizard_context.h", + "../ash/login/wizard_controller.cc", + "../ash/login/wizard_controller.h", "../ash/pcie_peripheral/ash_usb_detector.cc", "../ash/pcie_peripheral/ash_usb_detector.h", "../ash/phonehub/browser_tabs_metadata_fetcher_impl.cc", @@ -3172,6 +3625,7 @@ "//chromeos/ash/components/dbus/anomaly_detector", "//chromeos/ash/components/dbus/authpolicy", "//chromeos/ash/components/dbus/lorgnette_manager:lorgnette_proto", + "//chromeos/ash/components/dbus/oobe_config", "//chromeos/ash/components/dbus/services:test_support", "//chromeos/ash/components/dbus/session_manager", "//chromeos/ash/components/dbus/smbprovider", @@ -3196,7 +3650,6 @@ "//chromeos/dbus/dlp", "//chromeos/dbus/gnubby", "//chromeos/dbus/missive", - "//chromeos/dbus/oobe_config", "//chromeos/dbus/power", "//chromeos/ime:gencode", "//chromeos/login/login_state",
diff --git a/chrome/browser/chromeos/launcher_search/search_util.cc b/chrome/browser/chromeos/launcher_search/search_util.cc index 4fe1ac29..e9a1d44 100644 --- a/chrome/browser/chromeos/launcher_search/search_util.cc +++ b/chrome/browser/chromeos/launcher_search/search_util.cc
@@ -175,9 +175,15 @@ result->is_answer = SearchResult::OptionalBool::kTrue; result->answer_type = MatchTypeToAnswerType(match.answer->type()); - if (result->answer_type == SearchResult::AnswerType::kWeather) + if (result->answer_type == SearchResult::AnswerType::kWeather) { result->image_url = match.answer->image_url(); + const std::u16string* a11y_label = + match.answer->second_line().accessibility_label(); + if (a11y_label) + result->description_a11y_label = *a11y_label; + } + result->contents = match.contents; const auto& first = match.answer->first_line();
diff --git a/chrome/browser/chromeos/launcher_search/search_util_unittest.cc b/chrome/browser/chromeos/launcher_search/search_util_unittest.cc index 06520c43..dfd40ab 100644 --- a/chrome/browser/chromeos/launcher_search/search_util_unittest.cc +++ b/chrome/browser/chromeos/launcher_search/search_util_unittest.cc
@@ -36,12 +36,13 @@ SuggestionAnswer answer; std::string json = - "{ \"l\": [" - " { \"il\": { \"t\": [{ \"t\": \"text one\", \"tt\": 8 }], " - " \"at\": { \"t\": \"additional one\", \"tt\": 42 } } }, " - " { \"il\": { \"t\": [{ \"t\": \"text two\", \"tt\": 5 }], " - " \"at\": { \"t\": \"additional two\", \"tt\": 6 } } } " - "] }"; + R"({ "l": [)" + R"( { "il": { "t": [{ "t": "text one", "tt": 8 }],)" + R"( "at": { "t": "additional one", "tt": 42 } } },)" + R"( { "il": { "t": [{ "t": "text two", "tt": 5 }],)" + R"( "at": { "t": "additional two", "tt": 6 },)" + R"( "al": "a11y label" } })" + R"(] })"; absl::optional<base::Value> value = base::JSONReader::Read(json); ASSERT_TRUE(value && value->is_dict()); ASSERT_TRUE(SuggestionAnswer::ParseAnswer(value->GetDict(), u"-1", &answer)); @@ -105,5 +106,58 @@ EXPECT_EQ(result->description_type, mojom::SearchResult::TextType::kUnset); } +// Tests result conversion for a weather Omnibox result. +TEST(SearchUtilTest, CreateWeatherResult) { + AutocompleteMatch match; + match.relevance = 1200; + match.destination_url = GURL("https://www.example.com.au/weather"); + match.type = AutocompleteMatchType::Type::SEARCH_SUGGEST; + match.contents = u"Weather in Perth"; + match.contents_class = { + ACMatchClassification(0, ACMatchClassification::Style::MATCH)}; + + SuggestionAnswer answer; + const std::string json = + R"({ "l": [)" + R"( { "il": { "t": [ { "t": "weather in perth", "tt": 8 } ] } },)" + R"( {)" + R"( "il": {)" + R"( "al": "Sunny",)" + R"( "at": { "t": "Perth WA, Australia", "tt": 19 },)" + R"( "i": { "d": "//www.weather.com.au/sunny.png", "t": 3 },)" + R"( "t": [ { "t": "16°C", "tt": 18 } ])" + R"( })" + R"( })" + R"(] })"; + const absl::optional<base::Value> value = base::JSONReader::Read(json); + ASSERT_TRUE(value && value->is_dict()); + ASSERT_TRUE(SuggestionAnswer::ParseAnswer( + value->GetDict(), /* The answer type for 'weather'. */ u"8", &answer)); + match.answer = answer; + + const auto result = CreateAnswerResult(match, nullptr, AutocompleteInput()); + EXPECT_EQ(result->type, mojom::SearchResultType::kOmniboxResult); + EXPECT_EQ(result->relevance, 1200); + ASSERT_TRUE(result->destination_url.has_value()); + EXPECT_EQ(result->destination_url.value(), + GURL("https://www.example.com.au/weather")); + EXPECT_EQ(result->is_omnibox_search, + mojom::SearchResult::OptionalBool::kTrue); + EXPECT_EQ(result->is_answer, mojom::SearchResult::OptionalBool::kTrue); + + ASSERT_TRUE(result->contents.has_value()); + EXPECT_EQ(result->contents.value(), u"Weather in Perth"); + EXPECT_FALSE(result->additional_contents.has_value()); + ASSERT_TRUE(result->description.has_value()); + EXPECT_EQ(result->description.value(), u"16°C"); + ASSERT_TRUE(result->additional_description.has_value()); + EXPECT_EQ(result->additional_description.value(), u"Perth WA, Australia"); + ASSERT_TRUE(result->description_a11y_label.has_value()); + EXPECT_EQ(result->description_a11y_label.value(), u"Sunny"); + ASSERT_TRUE(result->image_url.has_value()); + EXPECT_EQ(result->image_url.value(), + GURL("https://www.weather.com.au/sunny.png")); +} + } // namespace } // namespace crosapi
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/BUILD.gn b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/BUILD.gn new file mode 100644 index 0000000..945166b --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/BUILD.gn
@@ -0,0 +1,35 @@ +# Copyright 2022 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. + +if (is_win) { + source_set("fetcher") { + public = [ "win_network_fetcher.h" ] + + sources = [ + "win_network_fetcher.cc", + "win_network_fetcher_impl.cc", + "win_network_fetcher_impl.h", + ] + + deps = [ + "//base", + "//net", + "//url", + ] + + public_deps = [ "//components/winhttp" ] + } + + source_set("test_support") { + testonly = true + public = [ "mock_win_network_fetcher.h" ] + + sources = [ "mock_win_network_fetcher.cc" ] + + public_deps = [ + ":fetcher", + "//testing/gmock", + ] + } +}
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.cc new file mode 100644 index 0000000..06d365a --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.cc
@@ -0,0 +1,14 @@ +// Copyright 2022 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. + +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.h" + +namespace enterprise_connectors { +namespace test { + +MockWinNetworkFetcher::MockWinNetworkFetcher() = default; +MockWinNetworkFetcher::~MockWinNetworkFetcher() = default; + +} // namespace test +} // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.h b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.h new file mode 100644 index 0000000..5b7f93e --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/mock_win_network_fetcher.h
@@ -0,0 +1,27 @@ +// Copyright 2022 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. + +#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_MOCK_WIN_NETWORK_FETCHER_H_ +#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_MOCK_WIN_NETWORK_FETCHER_H_ + +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h" + +#include "testing/gmock/include/gmock/gmock.h" + +namespace enterprise_connectors { +namespace test { + +// Mocked implementation of the WinNetworkFetcher interface. +class MockWinNetworkFetcher : public WinNetworkFetcher { + public: + MockWinNetworkFetcher(); + ~MockWinNetworkFetcher() override; + + MOCK_METHOD(void, Fetch, (FetchCompletedCallback), (override)); +}; + +} // namespace test +} // namespace enterprise_connectors + +#endif // CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_MOCK_WIN_NETWORK_FETCHER_H_
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.cc new file mode 100644 index 0000000..d4bd030 --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.cc
@@ -0,0 +1,23 @@ +// Copyright 2022 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. + +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h" + +#include <memory> +#include <string> + +#include "base/containers/flat_map.h" +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.h" + +namespace enterprise_connectors { + +// static +std::unique_ptr<WinNetworkFetcher> WinNetworkFetcher::Create( + const GURL& url, + const std::string& body, + base::flat_map<std::string, std::string>& headers) { + return std::make_unique<WinNetworkFetcherImpl>(url, body, headers); +} + +} // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h new file mode 100644 index 0000000..076699d8 --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h
@@ -0,0 +1,40 @@ +// Copyright 2022 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. + +#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_ +#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_ + +#include <memory> +#include <string> + +#include "base/callback.h" +#include "base/containers/flat_map.h" + +class GURL; + +namespace enterprise_connectors { + +// Interface for the object in charge of issuing a windows key network upload +// request. +class WinNetworkFetcher { + public: + // Network request completion callback. The single argument is the response + // code of the network request. + using FetchCompletedCallback = base::OnceCallback<void(int)>; + + virtual ~WinNetworkFetcher() = default; + + static std::unique_ptr<WinNetworkFetcher> Create( + const GURL& url, + const std::string& body, + base::flat_map<std::string, std::string>& headers); + + // Sends a DeviceManagementRequest to the DM server and returns the HTTP + // response to the `callback`. + virtual void Fetch(FetchCompletedCallback callback) = 0; +}; + +} // namespace enterprise_connectors + +#endif // CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.cc new file mode 100644 index 0000000..71be98b --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.cc
@@ -0,0 +1,45 @@ +// Copyright 2022 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. + +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.h" + +#include <string> +#include <utility> + +#include "base/callback_helpers.h" +#include "base/containers/flat_map.h" +#include "url/gurl.h" + +namespace enterprise_connectors { + +namespace {} // namespace + +WinNetworkFetcherImpl::WinNetworkFetcherImpl( + const GURL& url, + const std::string& body, + const base::flat_map<std::string, std::string> headers) + : url_(url), body_(body), headers_(std::move(headers)) {} + +WinNetworkFetcherImpl::~WinNetworkFetcherImpl() = default; + +void WinNetworkFetcherImpl::Fetch(FetchCompletedCallback callback) { + // TODO(b/202321214): need to pass in winhttp::ProxyInfo somehow. + // If specified use it to create an winhttp::ProxyConfiguration instance. + // Otherwise create an winhttp::AutoProxyConfiguration instance. + if (!winhttp_network_fetcher_) { + auto proxy_config = base::MakeRefCounted<winhttp::ProxyConfiguration>(); + winhttp_session_ = winhttp::CreateSessionHandle( + L"DeviceTrustKeyManagement", proxy_config->access_type()); + winhttp_network_fetcher_ = base::MakeRefCounted<winhttp::NetworkFetcher>( + winhttp_session_.get(), std::move(proxy_config)); + } + + winhttp_network_fetcher_->PostRequest( + url_, body_, std::string(), headers_, + /*fetch_started_callback=*/base::DoNothing(), + /*fetch_progress_callback=*/base::DoNothing(), + /*fetch_completed_callback=*/std::move(callback)); +} + +} // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.h b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.h new file mode 100644 index 0000000..fce5c2e --- /dev/null +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher_impl.h
@@ -0,0 +1,40 @@ +// Copyright 2022 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. + +#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_IMPL_H_ +#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_IMPL_H_ + +#include <string> + +#include "base/containers/flat_map.h" +#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h" +#include "components/winhttp/network_fetcher.h" +#include "components/winhttp/scoped_hinternet.h" +#include "url/gurl.h" + +namespace enterprise_connectors { + +// Implementation of the WinNetworkFetcher interface. +class WinNetworkFetcherImpl : public WinNetworkFetcher { + public: + WinNetworkFetcherImpl(const GURL& url, + const std::string& body, + const base::flat_map<std::string, std::string> headers); + + ~WinNetworkFetcherImpl() override; + + // WinNetworkFetcher: + void Fetch(FetchCompletedCallback callback) override; + + private: + GURL url_; + std::string body_; + base::flat_map<std::string, std::string> headers_; + winhttp::ScopedHInternet winhttp_session_; + scoped_refptr<winhttp::NetworkFetcher> winhttp_network_fetcher_; +}; + +} // namespace enterprise_connectors + +#endif // CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_IMPL_H_
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 34518c9..b1e8245 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -688,6 +688,11 @@ "expiry_milestone": 110 }, { + "name": "borealis-storage-ballooning", + "owners": [ "danielng" ], + "expiry_milestone": 110 + }, + { "name": "broker-file-operations-on-disk-cache-in-network-service", "owners": [ "yhirano", "network-service-dev" ], "expiry_milestone": 120 @@ -3830,12 +3835,12 @@ { "name": "intent-chip-app-icon", "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], - "expiry_milestone": 105 + "expiry_milestone": 108 }, { "name": "intent-chip-skips-intent-picker", "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], - "expiry_milestone": 105 + "expiry_milestone": 108 }, { "name": "interest-feed-notice-card-auto-dismiss", @@ -4088,14 +4093,19 @@ "expiry_milestone": 108 }, { + "name": "link-capturing-auto-display-intent-picker", + "owners": [ "tsergeant", "chromeos-apps-foundation-team@google.com" ], + "expiry_milestone": 108 + }, + { "name": "link-capturing-infobar", "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], - "expiry_milestone": 105 + "expiry_milestone": 108 }, { "name": "link-capturing-ui-update", "owners": ["tsergeant", "chromeos-apps-foundation-team@google.com"], - "expiry_milestone": 105 + "expiry_milestone": 108 }, { "name": "list-all-display-modes",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 9e823db..9f8e7b5 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -603,6 +603,11 @@ "other reasons, including: administrator settings, device hardware " "capabilities, or other security measures."; +const char kBorealisStorageBallooningName[] = "Borealis Storage Ballooning"; +const char kBorealisStorageBallooningDescription[] = + "Enables storage balloning for Borealis. This takes precedence over the " + "other Borealis Disk management flag."; + const char kBypassAppBannerEngagementChecksName[] = "Bypass user engagement checks"; const char kBypassAppBannerEngagementChecksDescription[] = @@ -5837,6 +5842,13 @@ "When enabled, the intent chip in the Omnibox will show the app icon for " "the app which can handle the current URL."; +const char kLinkCapturingAutoDisplayIntentPickerName[] = + "Enable auto-display of intent picker bubble"; +const char kLinkCapturingAutoDisplayIntentPickerDescription[] = + "When enabled, the intent picker bubble will automatically display when " + "clicking a link which can be opened in installed apps. Only applies when " + "'Enable updated link capturing UI' is enabled."; + const char kLinkCapturingInfoBarName[] = "Enable link capturing info bar"; const char kLinkCapturingInfoBarDescription[] = "Enables an info bar which appears when launching a web app through the "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 25ad924c..16c8585 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -324,6 +324,9 @@ extern const char kBorealisPermittedName[]; extern const char kBorealisPermittedDescription[]; +extern const char kBorealisStorageBallooningName[]; +extern const char kBorealisStorageBallooningDescription[]; + extern const char kBypassAppBannerEngagementChecksName[]; extern const char kBypassAppBannerEngagementChecksDescription[]; @@ -3346,6 +3349,9 @@ extern const char kIntentChipAppIconName[]; extern const char kIntentChipAppIconDescription[]; +extern const char kLinkCapturingAutoDisplayIntentPickerName[]; +extern const char kLinkCapturingAutoDisplayIntentPickerDescription[]; + extern const char kLinkCapturingInfoBarName[]; extern const char kLinkCapturingInfoBarDescription[];
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc index db36fd5..ebcd095 100644 --- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc
@@ -1218,9 +1218,6 @@ builder.Record(ukm::UkmRecorder::Get()); base::UmaHistogramPercentage( - "Graphics.Smoothness.PerSession.AveragePercentDroppedFrames", - smoothness_data.avg_smoothness); - base::UmaHistogramPercentage( "Graphics.Smoothness.PerSession.95pctPercentDroppedFrames_1sWindow", smoothness_data.percentile_95); base::UmaHistogramPercentage(
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_background.js index c7652472..c12aba6 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_background.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/panel/panel_background.js
@@ -260,10 +260,12 @@ */ async waitForPanelCollapse_() { return new Promise(async resolve => { - const desktop = await new Promise(chrome.automation.getDesktop); + const desktop = + await new Promise((resolve) => chrome.automation.getDesktop(resolve)); // Watch for a focus event outside the panel. const onFocus = event => { - if (event.target.docUrl.contains('chromevox/panel')) { + if (event.target.docUrl && + event.target.docUrl.includes('chromevox/panel')) { return; }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn index d72d07d..31a5b56 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn +++ b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
@@ -196,6 +196,7 @@ ":emoji_picker_api_proxy", ":emoji_search", ":events", + ":metadata_extension", ":store", ":text_group_button", ":trie", @@ -289,6 +290,10 @@ deps = [ ":trie" ] } +js_library("metadata_extension") { + deps = [ ":types" ] +} + js_library("store") { deps = [ ":types" ] }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js index 0b506d523..395fb4e0 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js
@@ -18,10 +18,6 @@ import {RecentlyUsedStore} from './store.js'; import {CategoryData, CategoryEnum, EmojiGroup, EmojiGroupData, EmojiVariants, SubcategoryData, EmojiGroupElement} from './types.js'; -const EMOJI_ORDERING_JSON_TEMPLATE = '/emoji_14_0_ordering'; -const EMOTICON_ORDERING_JSON_TEMPLATE = '/emoticon_ordering.json'; - - export class EmojiPicker extends PolymerElement { static get is() { return 'emoji-picker'; @@ -31,12 +27,20 @@ return html`{__html_template__}`; } + static configs() { + return { + 'dataUrls': { + [CategoryEnum.EMOJI]: [ + '/emoji_14_0_ordering_start.json', + '/emoji_14_0_ordering_remaining.json', + ], + [CategoryEnum.EMOTICON]: ['/emoticon_ordering.json'], + }, + }; + } + static get properties() { return { - /** {string} */ - emojiDataUrl: {type: String, value: EMOJI_ORDERING_JSON_TEMPLATE}, - /** {string} */ - emoticonDataUrl: {type: String, value: EMOTICON_ORDERING_JSON_TEMPLATE}, /** @private {CategoryEnum} */ category: {type: String, value: 'emoji', observer: 'onCategoryChanged'}, /** @type {string} */ @@ -114,6 +118,9 @@ ev => this.onShowEmojiVariants( /** @type {!events.EmojiVariantsShownEvent} */ (ev))); this.addEventListener('click', () => this.hideDialogs()); + this.addEventListener( + events.CATEGORY_BUTTON_CLICK, + ev => this.onCategoryButtonClick(ev.detail.categoryName)); } /** @@ -141,34 +148,21 @@ ready() { super.ready(); - // TODO(b/211520561): Handle loading of emoticon data. - const initializationPromise = Promise.all([ - this.apiProxy_.getFeatureList().then( - (response) => this.setActiveFeatures(response.featureList)), - this.fetchOrderingData( - this.emojiDataUrl + '_start.json').then( - data => this.onEmojiDataLoaded(data)), - this.apiProxy_.isIncognitoTextField().then( - (response) => this.initHistoryUI(response.incognito)) - ]); + // Ensure first category is emoji for compatibility with V1. + if (CATEGORY_METADATA[0].name !== CategoryEnum.EMOJI) { + throw new Error( + `First category is ${CATEGORY_METADATA[0].name} but must be 'emoji'.`); + } - initializationPromise.then(() => { - afterNextRender(this, () => { - this.apiProxy_.showUI(); - }); - if (this.v2Enabled) { - this.addEventListener( - events.CATEGORY_BUTTON_CLICK, - ev => this.onCategoryButtonClick(ev.detail.categoryName)); - this.addEventListener(events.EMOJI_REMAINING_DATA_LOADED, () => { - this.fetchOrderingData(this.emoticonDataUrl).then((data) => { - this.updateCategoryData(data, CategoryEnum.EMOTICON, true); - this.dispatchEvent(events.createCustomEvent( - events.V2_CONTENT_LOADED)); - }); - }); - } - }); + const dataUrls = EmojiPicker.configs().dataUrls; + // Create an ordered list of category and urls based on the order that + // categories need to appear in the UIs. + const categoryDataUrls = CATEGORY_METADATA + .filter(item => dataUrls[item.name]) + .map(item => ({'category': item.name, 'urls': dataUrls[item.name]})); + + // Fetch and process all the data. + this.fetchAndProcessData(categoryDataUrls); this.updateStyles({ '--emoji-group-button-size': constants.EMOJI_GROUP_SIZE_PX, @@ -193,6 +187,89 @@ } /** + * Fetches data and updates all the variables that are required to render + * EmojiPicker UI. This function serves as the main entry for creating and + * managing async calls dealing with fetching data and rendering UI in the + * correct order. These include: + * * Feature list + * * Incognito state + * * Category data (emoji, emoticon, etc.) + * + * + * @param {Array<{category: CategoryEnum, urls: Array<string>}>} + * categoryDataUrls An array of categories and their corresponding data + * urls. + */ + async fetchAndProcessData(categoryDataUrls) { + // Create a flat list of urls (with details) that need to be fetched and + // rendered sequentially. + const dataUrls = categoryDataUrls.flatMap( + item => + // Create url details of the category. + item.urls.map( + (url, index) => ({ + 'category': item.category, + 'url': url, + 'categoryLastPartition': + index === item.urls.length - 1, + }) + ) + ); + + // Update feature list, incognito state and fetch data of first url. + const initialData = await Promise.all( + [ + this.fetchOrderingData(dataUrls[0].url), + this.apiProxy_.getFeatureList().then( + (response) => this.setActiveFeatures(response.featureList)), + this.apiProxy_.isIncognitoTextField().then( + (response) => this.initHistoryUI(response.incognito)), + ], + ).then(values => values[0]); // Map to the fetched data only. + + // Update UI and relevant features based on the initial data. + this.updateCategoryData( + initialData, dataUrls[0].category, + dataUrls[0].categoryLastPartition, + !this.v2Enabled && dataUrls[0].categoryLastPartition); + + // Show the UI after the initial data is rendered. + afterNextRender(this, () => { + this.apiProxy_.showUI(); + }); + + // Filter data urls based on the version. Remove the first url as it is + // already added and shown. + const remainingData = this.v2Enabled ? + dataUrls.slice(1) : + dataUrls.slice(1).filter( + item => item.category === dataUrls[0].category); + + let prevFetchPromise = Promise.resolve(); + let prevRenderPromise = Promise.resolve(); + + // Create a chain of promises for fetching and rendering data of + // different categories in the correct order. + remainingData.forEach( + (dataUrl, index) => { + // Fetch the url only after the previous url is fetched. + prevFetchPromise = prevFetchPromise.then(() => + this.fetchOrderingData(dataUrl.url)); + // Update category data after the data is fetched and the previous + // category data update/rendering completed successfully. + prevRenderPromise = Promise.all( + [prevRenderPromise, prevFetchPromise] + ).then((values) => values[1]).then((data) => + this.updateCategoryData( + data, dataUrl.category, dataUrl.categoryLastPartition, + index === remainingData.length - 1 + ) + ); + } + ); + } + + /** * @param {!Array<!Feature>} featureList */ setActiveFeatures(featureList) { @@ -220,10 +297,16 @@ * @param {!EmojiGroupData} data The category data to be processes. * Note: category field will be added to the each EmojiGroup in data. * @param {!CategoryEnum} category Category of the data. + * @param {boolean} categoryLastPartition True if no future data updates + * are expected for the given category. * @param {boolean} lastPartition True if no future data updates are * expected. + * + * @fires CustomEvent#`EMOJI_PICKER_READY` + * @fires CustomEvent#`CATEGORY_DATA_LOADED`` */ - updateCategoryData(data, category, lastPartition=false) { + updateCategoryData(data, category, categoryLastPartition=false, + lastPartition=false) { // TODO(b/233270589): Add category to the underlying data. // Add category field to the data. data.forEach((emojiGroup) => { @@ -242,24 +325,56 @@ // Convert the emoji group data to elements. const baseIndex = this.categoriesGroupElements.length; - const categoriesGroupElements = data.map( - (emojiGroup, index) => + const categoriesGroupElements = []; + + data.forEach((emojiGroup, index) => { + const tabIndex = baseIndex + index; + const tabCategory = V2_SUBCATEGORY_TABS[tabIndex].category; + categoriesGroupElements.push( this.createEmojiGroupElement( - emojiGroup.emoji, - this.getEmojiGroupPreference(category), - false, - baseIndex + index - ) - ); + emojiGroup.emoji, this.getEmojiGroupPreference(category), + false, tabIndex) + ); + + // TODO(b/233271528): Remove assert after removing metadata. + // Ensure category of emoji groups match tab entries. + console.assert( + tabCategory === category, + `Tab category at index ${tabIndex} is ${tabCategory} ` + + `but corresponding group category in data is ${category}.`); + }); // Update emoji data for other features such as search. this.push('categoriesData', ...data); // Update group elements for the emoji picker. this.push('categoriesGroupElements', ...categoriesGroupElements); - // If all data is fetched, trigger search index. + if (categoryLastPartition) { + this.dispatchEvent(events.createCustomEvent( + events.CATEGORY_DATA_LOADED, {'category': category})); + } + if (lastPartition) { + // If all data is fetched, trigger search index. this.searchLazyIndexing = false; + + // TODO(b/233271528): Remove the following after removing metadata. + const numEmojiGroups = this.categoriesGroupElements.length; + const dataMatchSubcategoryTabs = this.v2Enabled ? + numEmojiGroups === V2_SUBCATEGORY_TABS.length : + V2_SUBCATEGORY_TABS[numEmojiGroups].category !== CategoryEnum.EMOJI; + + // Ensure hard-coded tabs match the loaded data. + console.assert(dataMatchSubcategoryTabs, + `The Number of tabs "${V2_SUBCATEGORY_TABS.length}" does not match ` + + ` the number of loaded groups "${numEmojiGroups}".` + ); + + afterNextRender(this, () => { + this.dispatchEvent(events.createCustomEvent( + events.EMOJI_PICKER_READY, {'v2Enabled': this.v2Enabled})); + } + ); } } @@ -844,26 +959,6 @@ } /** - * @param {!EmojiGroupData} data - */ - onEmojiDataLoaded(data) { - // There is quite a lot of emoji data to load which causes slow rendering. - // Just load the first emoji category immediately, and defer loading of the - // other categories (which will be off screen). - this.updateCategoryData([data[0]], CategoryEnum.EMOJI); - afterNextRender( - this, - () => this.fetchOrderingData(`${this.emojiDataUrl}_remaining.json`) - .then(data => this.onEmojiDataLoadedRemaining(data))); - } - - onEmojiDataLoadedRemaining(data) { - this.updateCategoryData(data, CategoryEnum.EMOJI, !this.v2Enabled); - this.dispatchEvent(events.createCustomEvent( - events.EMOJI_REMAINING_DATA_LOADED)); - } - - /** * Triggers when category property changes * @param {string} newCategoryName */
diff --git a/chrome/browser/resources/chromeos/emoji_picker/events.js b/chrome/browser/resources/chromeos/emoji_picker/events.js index a404d7a..0738ecc7 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/events.js +++ b/chrome/browser/resources/chromeos/emoji_picker/events.js
@@ -40,18 +40,27 @@ export const EMOJI_VARIANTS_SHOWN = 'emoji-variants-shown'; /** - * @typedef {!CustomEvent} + * @typedef {!CustomEvent<{category: string}>} */ -export let EmojiDataLoadedEvent; - -export const EMOJI_DATA_LOADED = 'emoji-data-loaded'; +export let CategoryDataLoadEvent; /** - * @typedef {!CustomEvent} + * The event that data of a category is fetched and processed for rendering. + * Note: this event does not indicate if rendering of the category data is + * completed or not. */ -export let EmojiRemainingDataLoadedEvent; +export const CATEGORY_DATA_LOADED = 'category-data-loaded'; -export const EMOJI_REMAINING_DATA_LOADED = 'emoji-data-remaining-loaded'; +/** + * @typedef {!CustomEvent<{v2Enabled: boolean}>} + */ +export let EmojiPickerReadyEvent; + +/** + * The event that all the data are loaded and rendered and all the + * emoji-picker functionalities are ready to use. + */ +export const EMOJI_PICKER_READY = 'emoji-picker-ready'; /** * @typedef {!CustomEvent} @@ -61,13 +70,6 @@ export const EMOJI_CLEAR_RECENTS_CLICK = 'emoji-clear-recents-click'; /** - * - * @typedef {!CustomEvent} - */ -export let V2ContentLoadedEvent; - -export const V2_CONTENT_LOADED = 'v2-content-loaded'; -/** * Constructs a CustomEvent with the given event type and details. * The event will bubble up through elements and components. *
diff --git a/chrome/browser/resources/chromeos/emoji_picker/metadata_extension.js b/chrome/browser/resources/chromeos/emoji_picker/metadata_extension.js index 1271cb0..a65f95c 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/metadata_extension.js +++ b/chrome/browser/resources/chromeos/emoji_picker/metadata_extension.js
@@ -2,8 +2,72 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + +/** + * TODO(b/233271528): Remove metadata_extension module. + * This module includes tab details which is better to be extracted dynamically + * from the emoji group data directly. + */ + + +import {SubcategoryData} from './types.js'; + const RECENTLY_USED_NAME = 'Recently used'; +/** + * Creates a list of tabs with all required information for rendering given + * category orders and basic info of each tab. It also adds tabs for "Recently + * used" group as the first tab of each category. + * + * @param {!Array<string>} categories List of categories. The order in the + * list determines the order of the tabs in the output. + * @param {!Object<string, Array<{name: !string, pagination: ?number, + * icon: ?string}>>} categoryBaseEmojis A mapping from each category to + * its list of basic tabs info. + * @returns {!Array<!SubcategoryData>} List of tabs. + */ +function _MakeGroupTabs(categories, categoryBaseEmojis) { + const groupTabs = []; + let groupId = 0; + + // TODO(b/216190190): Change groupId to number type. + for (const category of categories) { + // Add recently used tab. + groupTabs.push( + { + name: RECENTLY_USED_NAME, + icon: 'emoji_picker:schedule', + category: category, + groupId: `${category}-history`, + active: false, + disabled: true, + pagination: 1, + } + ); + let pagination = 1; + categoryBaseEmojis[category].forEach( + tab => { + // Update pagination if provided. + pagination = tab.pagination || pagination; + // Add new tab. + groupTabs.push( + { + name: tab.name, + icon: tab.icon, + category: category, + pagination: pagination, + groupId: groupId.toString(), + active: false, + disabled: false, + } + ); + groupId ++; + } + ); + } + return groupTabs; +} + export const CATEGORY_METADATA = [ { name: 'emoji', @@ -18,237 +82,80 @@ }, ]; -/** - * The name attributes below are used to label the group buttons. - * The ordering group names are used for the group headings in the emoji - * picker. -*/ -// TODO(b/216190190): Change groupId to number type. -// TODO(b/233271528): Remove the list and load it from the input data. -export const EMOJI_GROUP_TABS = [ - { - name: RECENTLY_USED_NAME, - icon: 'emoji_picker:schedule', - category: 'emoji', - groupId: 'emoji-history', - active: false, - disabled: true, - pagination: 1 - }, - { - name: 'Smileys & Emotions', - icon: 'emoji_picker:insert_emoticon', - category: 'emoji', - groupId: '0', - active: false, - disabled: false - }, - { - name: 'People', - icon: 'emoji_picker:emoji_people', - category: 'emoji', - groupId: '1', - active: false, - disabled: false - }, - { - name: 'Animals & Nature', - icon: 'emoji_picker:emoji_nature', - category: 'emoji', - groupId: '2', - active: false, - disabled: false - }, - { - name: 'Food & Drink', - icon: 'emoji_picker:emoji_food_beverage', - category: 'emoji', - groupId: '3', - active: false, - disabled: false - }, - { - name: 'Travel & Places', - icon: 'emoji_picker:emoji_transportation', - category: 'emoji', - groupId: '4', - active: false, - disabled: false - }, - { - name: 'Activities & Events', - icon: 'emoji_picker:emoji_events', - category: 'emoji', - groupId: '5', - active: false, - disabled: false - }, - { - name: 'Objects', - icon: 'emoji_picker:emoji_objects', - category: 'emoji', - groupId: '6', - active: false, - disabled: false - }, - { - name: 'Symbols', - icon: 'emoji_picker:emoji_symbols', - category: 'emoji', - groupId: '7', - active: false, - disabled: false - }, - { - name: 'Flags', - icon: 'emoji_picker:flag', - category: 'emoji', - groupId: '8', - active: false, - disabled: false - }, -]; - -// TODO(b/216190190): Change groupId to number type. -// TODO(b/233271528): Remove the list and load it from the input data. -export const EMOTICON_GROUP_TABS = [ - { - name: RECENTLY_USED_NAME, - icon: 'emoji_picker:schedule', - category: 'emoticon', - groupId: 'emoticon-history', - active: false, - disabled: true, - pagination: 1 - }, - { - name: 'Classic', - category: 'emoticon', - groupId: '9', - active: false, - disabled: false, - pagination: 1 - }, - { - name: 'Smiling', - category: 'emoticon', - groupId: '10', - active: false, - disabled: false, - pagination: 1 - }, - { - name: 'Loving', - category: 'emoticon', - groupId: '11', - active: false, - disabled: false, - pagination: 1 - }, - { - name: 'Hugging', - category: 'emoticon', - groupId: '12', - active: false, - disabled: false, - pagination: 1 - }, - { - name: 'Flexing', - category: 'emoticon', - groupId: '13', - active: false, - disabled: false, - pagination: 1 - }, - { - name: 'Animals', - category: 'emoticon', - groupId: '14', - active: false, - disabled: false, - pagination: 2 - }, - { - name: 'Surprising', - category: 'emoticon', - groupId: '15', - active: false, - disabled: false, - pagination: 2 - }, - { - name: 'Dancing', - category: 'emoticon', - groupId: '16', - active: false, - disabled: false, - pagination: 2 - }, - { - name: 'Shrugging', - category: 'emoticon', - groupId: '17', - active: false, - disabled: false, - pagination: 2 - }, - { - name: 'Table Flipping', - category: 'emoticon', - groupId: '18', - active: false, - disabled: false, - pagination: 3 - }, - { - name: 'Disapproving', - category: 'emoticon', - groupId: '19', - active: false, - disabled: false, - pagination: 3 - }, - { - name: 'Crying', - category: 'emoticon', - groupId: '20', - active: false, - disabled: false, - pagination: 3 - }, - { - name: 'Worrying', - category: 'emoticon', - groupId: '21', - active: false, - disabled: false, - pagination: 4 - }, - { - name: 'Pointing', - category: 'emoticon', - groupId: '22', - active: false, - disabled: false, - pagination: 4 - }, - { - name: 'Sparkling', - category: 'emoticon', - groupId: '23', - active: false, - disabled: false, - pagination: 4 - }, -]; - -// TODO(b/233271528): The concat order must be based on CATEGORY_METADATA. -export const V2_SUBCATEGORY_TABS = - EMOJI_GROUP_TABS.concat(EMOTICON_GROUP_TABS); - -// TODO(b/233271528): This should be calculated based on concat order. -export const V2_TABS_CATEGORY_START_INDEX = { - 'emoji': 0, - 'emoticon': EMOJI_GROUP_TABS.length, +const CATEGORY_TABS = { + 'emoji': [ + { + name: 'Smileys & Emotions', + icon: 'emoji_picker:insert_emoticon', + pagination: 1, + }, + { + name: 'People', + icon: 'emoji_picker:emoji_people', + }, + { + name: 'Animals & Nature', + icon: 'emoji_picker:emoji_nature', + }, + { + name: 'Food & Drink', + icon: 'emoji_picker:emoji_food_beverage', + }, + { + name: 'Travel & Places', + icon: 'emoji_picker:emoji_transportation', + }, + { + name: 'Activities & Events', + icon: 'emoji_picker:emoji_events', + }, + { + name: 'Objects', + icon: 'emoji_picker:emoji_objects', + }, + { + name: 'Symbols', + icon: 'emoji_picker:emoji_symbols', + }, + { + name: 'Flags', + icon: 'emoji_picker:flag', + }, + ], + 'emoticon': [ + {name: 'Classic', pagination: 1,}, + {name: 'Smiling',}, + {name: 'Loving',}, + {name: 'Hugging',}, + {name: 'Flexing',}, + {name: 'Animals', pagination: 2,}, + {name: 'Surprising',}, + {name: 'Dancing', }, + {name: 'Shrugging',}, + {name: 'Table Flipping', pagination: 3,}, + {name: 'Disapproving',}, + {name: 'Crying',}, + {name: 'Worrying', pagination: 4,}, + {name: 'Pointing',}, + {name: 'Sparkling',}, + ], }; + +// TODO(b/233271528): Remove the list and load it from the input data. +/** + * The list of tabs based on the order of category buttons and basic tab info + * of each category. + */ +export const V2_SUBCATEGORY_TABS = _MakeGroupTabs( + CATEGORY_METADATA.map(item => item.name), + CATEGORY_TABS, +); + +// A mapping from each category to the index of their first tab. +export const V2_TABS_CATEGORY_START_INDEX = Object.fromEntries( + new Map(V2_SUBCATEGORY_TABS.map( + (item, index) => [item.category, index]).reverse() + ).entries() +); + +export const EMOJI_GROUP_TABS = _MakeGroupTabs(['emoji'], CATEGORY_TABS); \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/notification_tester/BUILD.gn b/chrome/browser/resources/chromeos/notification_tester/BUILD.gn index a2e18c03..61ec361 100644 --- a/chrome/browser/resources/chromeos/notification_tester/BUILD.gn +++ b/chrome/browser/resources/chromeos/notification_tester/BUILD.gn
@@ -17,7 +17,6 @@ "index.html", "form_constants.js", "types.js", - "images/chromeos_logo_main.png", ] input_files_base_dir = rebase_path(".", "//")
diff --git a/chrome/browser/resources/chromeos/notification_tester/form_constants.js b/chrome/browser/resources/chromeos/notification_tester/form_constants.js index d836c52..8b0e03e9 100644 --- a/chrome/browser/resources/chromeos/notification_tester/form_constants.js +++ b/chrome/browser/resources/chromeos/notification_tester/form_constants.js
@@ -118,7 +118,14 @@ ], IMAGE_OPTIONS: [ {displayText: 'No Image', value: 'none'}, - {displayText: 'CrOS Logo (1218x317, PNG)', value: 'chromeos_logo_main'}, + { + displayText: 'Google Logo (PNG, 180 x 68)', + value: 'google_logo_small_png' + }, + { + displayText: 'Chromium Logo (PNG, 192 x 192)', + value: 'chromium_logo_large_png' + }, ], URL_OPTIONS: [ {displayText: 'URL (Left-to-Right)', value: 'https://testurl.xyz'},
diff --git a/chrome/browser/resources/chromeos/notification_tester/images/chromeos_logo_main.png b/chrome/browser/resources/chromeos/notification_tester/images/chromeos_logo_main.png deleted file mode 100644 index 1fc30eab..0000000 --- a/chrome/browser/resources/chromeos/notification_tester/images/chromeos_logo_main.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/sessions/tab_restore_service_browsertest.cc b/chrome/browser/sessions/tab_restore_service_browsertest.cc index 10d2ac7..078fbd4 100644 --- a/chrome/browser/sessions/tab_restore_service_browsertest.cc +++ b/chrome/browser/sessions/tab_restore_service_browsertest.cc
@@ -2,13 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(jamescook): Why does this test run on all Aura platforms, instead of -// only Chrome OS or Ash? -#if defined(USE_AURA) - #include "components/sessions/core/tab_restore_service.h" -#include "build/chromeos_buildflags.h" #include "chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/tab_restore_service_factory.h" @@ -26,11 +21,7 @@ public: TabRestoreServiceImplBrowserTest() : test_system_web_app_installation_( - ash::TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) { -#if BUILDFLAG(IS_CHROMEOS_LACROS) - web_app::EnableSystemWebAppsInLacrosForTesting(); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) - } + ash::TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) {} protected: std::unique_ptr<ash::TestSystemWebAppInstallation> @@ -90,5 +81,3 @@ EXPECT_EQ(app_browser->app_name(), restored_window->app_name); EXPECT_EQ(1U, restored_window->tabs.size()); } - -#endif // defined(USE_AURA)
diff --git a/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc b/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc index 90578dc..732d86f 100644 --- a/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc +++ b/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc
@@ -6,6 +6,7 @@ #include "build/chromeos_buildflags.h" #include "chrome/browser/ash/system_web_apps/test_support/system_web_app_browsertest_base.h" +#include "chrome/browser/ash/system_web_apps/types/system_web_app_type.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_view.h" #include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h" @@ -13,14 +14,9 @@ #include "chrome/test/base/ui_test_utils.h" #include "content/public/test/browser_test.h" -#if !BUILDFLAG(IS_CHROMEOS_LACROS) -#include "chrome/browser/ash/system_web_apps/types/system_web_app_type.h" -#endif - using SystemWebAppNonClientFrameViewBrowserTest = ash::SystemWebAppManagerBrowserTest; -#if !BUILDFLAG(IS_CHROMEOS_LACROS) // System Web Apps don't get the web app menu button. IN_PROC_BROWSER_TEST_P(SystemWebAppNonClientFrameViewBrowserTest, HideWebAppMenuButton) { @@ -51,4 +47,3 @@ INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_REGULAR_PROFILE_P( SystemWebAppNonClientFrameViewBrowserTest); -#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chrome/browser/ui/views/location_bar/intent_chip_button.cc b/chrome/browser/ui/views/location_bar/intent_chip_button.cc index 9f6a340d..5f1a8c8 100644 --- a/chrome/browser/ui/views/location_bar/intent_chip_button.cc +++ b/chrome/browser/ui/views/location_bar/intent_chip_button.cc
@@ -96,7 +96,7 @@ content::WebContents* web_contents = delegate_->GetWebContentsForPageActionIconView(); const GURL& url = web_contents->GetURL(); - apps::ShowIntentPickerBubble(web_contents, url); + apps::ShowIntentPickerOrLaunchApp(web_contents, url); } IntentPickerTabHelper* IntentChipButton::GetTabHelper() const {
diff --git a/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc b/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc index 8dd954f..89f8be8 100644 --- a/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc +++ b/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc
@@ -4,7 +4,10 @@ #include "base/test/bind.h" #include "base/test/scoped_feature_list.h" +#include "build/build_config.h" #include "build/chromeos_buildflags.h" +#include "chrome/browser/apps/app_service/app_service_proxy.h" +#include "chrome/browser/apps/app_service/app_service_proxy_factory.h" #include "chrome/browser/apps/intent_helper/intent_picker_features.h" #include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/ui/browser_commands.h" @@ -19,6 +22,7 @@ #include "chrome/browser/web_applications/user_display_mode.h" #include "chrome/browser/web_applications/web_app_id.h" #include "chrome/browser/web_applications/web_app_install_info.h" +#include "chrome/test/base/ui_test_utils.h" #include "components/feature_engagement/public/feature_constants.h" #include "components/feature_engagement/test/test_tracker.h" #include "content/public/browser/web_contents.h" @@ -28,6 +32,12 @@ #include "ui/views/test/button_test_api.h" #include "ui/views/widget/any_widget_observer.h" +#if BUILDFLAG(IS_CHROMEOS) +#include "chrome/browser/web_applications/web_app_utils.h" +#include "components/services/app_service/public/cpp/features.h" +#include "components/services/app_service/public/cpp/preferred_apps_test_util.h" +#endif + #if BUILDFLAG(IS_CHROMEOS_LACROS) #include "chromeos/crosapi/mojom/app_service.mojom.h" #include "chromeos/lacros/lacros_service.h" @@ -37,10 +47,8 @@ : public web_app::WebAppNavigationBrowserTest { public: IntentChipButtonBrowserTest() { - scoped_feature_list_.InitWithFeatures( - /*enabled_features=*/{apps::features::kLinkCapturingUiUpdate, - apps::features::kIntentChipSkipsPicker}, - /*disabled_features=*/{}); + scoped_feature_list_.InitAndEnableFeature( + apps::features::kLinkCapturingUiUpdate); } void TearDownOnMainThread() override { @@ -116,19 +124,16 @@ const GURL in_scope_url = https_server().GetURL(GetAppUrlHost(), GetInScopeUrlPath()); - content::WebContents* web_contents = - browser()->tab_strip_model()->GetActiveWebContents(); - ClickLinkAndWait(web_contents, in_scope_url, LinkTarget::SELF, ""); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), in_scope_url)); EXPECT_TRUE(GetIntentChip()->GetVisible()); - // Clicking the chip should immediately launch the app. - + views::NamedWidgetShownWaiter waiter(views::test::AnyWidgetTestPasskey{}, + "IntentPickerBubbleView"); ClickIntentChip(); - Browser* app_browser = BrowserList::GetInstance()->GetLastActive(); - EXPECT_TRUE(web_app::AppBrowserController::IsForWebApp(app_browser, - test_web_app_id())); + waiter.WaitIfNeededAndGet(); + ASSERT_TRUE(IntentPickerBubbleView::intent_picker_bubble()); } IN_PROC_BROWSER_TEST_F(IntentChipButtonBrowserTest, @@ -140,9 +145,7 @@ const GURL out_of_scope_url = https_server().GetURL(GetAppUrlHost(), GetOutOfScopeUrlPath()); - content::WebContents* web_contents = - browser()->tab_strip_model()->GetActiveWebContents(); - ClickLinkAndWait(web_contents, out_of_scope_url, LinkTarget::SELF, ""); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), out_of_scope_url)); EXPECT_FALSE(GetIntentChip()->GetVisible()); } @@ -173,6 +176,63 @@ EXPECT_FALSE(intent_chip_button->GetVisible()); } +#if BUILDFLAG(IS_CHROMEOS) +// Using the Intent Chip for an app which is set as preferred should launch +// directly into the app. Preferred apps are only available on ChromeOS. +IN_PROC_BROWSER_TEST_F(IntentChipButtonBrowserTest, OpensAppForPreferredApp) { + if (!HasRequiredAshVersionForLacros()) + GTEST_SKIP() << "Ash version is too old to support Intent Picker"; + + InstallTestWebApp(); + auto* proxy = apps::AppServiceProxyFactory::GetForProfile(profile()); + proxy->SetSupportedLinksPreference(test_web_app_id()); + + // Wait for asynchronous preferred apps changes with lacros web apps and/or + // mojo app service. + if (web_app::IsWebAppsCrosapiEnabled() || + !base::FeatureList::IsEnabled( + apps::kAppServicePreferredAppsWithoutMojom)) { + apps_util::PreferredAppUpdateWaiter waiter(proxy->PreferredAppsList()); + waiter.WaitForPreferredAppUpdate(test_web_app_id()); + } + + const GURL in_scope_url = + https_server().GetURL(GetAppUrlHost(), GetInScopeUrlPath()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), in_scope_url)); + + ClickIntentChip(); + + Browser* app_browser = BrowserList::GetInstance()->GetLastActive(); + EXPECT_TRUE(web_app::AppBrowserController::IsForWebApp(app_browser, + test_web_app_id())); +} +#endif // BUILDFLAG(IS_CHROMEOS) + +class IntentChipButtonSkipIntentPickerBrowserTest + : public IntentChipButtonBrowserTest { + private: + base::test::ScopedFeatureList feature_list_{ + apps::features::kIntentChipSkipsPicker}; +}; + +IN_PROC_BROWSER_TEST_F(IntentChipButtonSkipIntentPickerBrowserTest, + ClickingChipOpensApp) { + if (!HasRequiredAshVersionForLacros()) + GTEST_SKIP() << "Ash version is too old to support Intent Picker"; + + InstallTestWebApp(); + + const GURL in_scope_url = + https_server().GetURL(GetAppUrlHost(), GetInScopeUrlPath()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), in_scope_url)); + + ClickIntentChip(); + + Browser* app_browser = BrowserList::GetInstance()->GetLastActive(); + EXPECT_TRUE(web_app::AppBrowserController::IsForWebApp(app_browser, + test_web_app_id())); +} + // TODO(crbug.com/1313274): Fix test flakiness on Lacros. #if BUILDFLAG(IS_CHROMEOS_LACROS) #define MAYBE_ShowsIntentPickerWhenMultipleApps \ @@ -181,7 +241,7 @@ #define MAYBE_ShowsIntentPickerWhenMultipleApps \ ShowsIntentPickerWhenMultipleApps #endif -IN_PROC_BROWSER_TEST_F(IntentChipButtonBrowserTest, +IN_PROC_BROWSER_TEST_F(IntentChipButtonSkipIntentPickerBrowserTest, MAYBE_ShowsIntentPickerWhenMultipleApps) { if (!HasRequiredAshVersionForLacros()) GTEST_SKIP() << "Ash version is too old to support Intent Picker"; @@ -191,9 +251,7 @@ const GURL in_scope_url = https_server().GetURL(GetAppUrlHost(), GetInScopeUrlPath()); - content::WebContents* web_contents = - browser()->tab_strip_model()->GetActiveWebContents(); - ClickLinkAndWait(web_contents, in_scope_url, LinkTarget::SELF, ""); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), in_scope_url)); base::RunLoop().RunUntilIdle(); // The Intent Chip should appear, but the intent picker bubble should not @@ -209,7 +267,8 @@ ASSERT_TRUE(IntentPickerBubbleView::intent_picker_bubble()); } -IN_PROC_BROWSER_TEST_F(IntentChipButtonBrowserTest, ShowsIntentChipCollapsed) { +IN_PROC_BROWSER_TEST_F(IntentChipButtonSkipIntentPickerBrowserTest, + ShowsIntentChipCollapsed) { if (!HasRequiredAshVersionForLacros()) GTEST_SKIP() << "Ash version is too old to support Intent Picker";
diff --git a/chrome/browser/ui/views/location_bar/intent_picker_view.cc b/chrome/browser/ui/views/location_bar/intent_picker_view.cc index fe56d607..dea10a3 100644 --- a/chrome/browser/ui/views/location_bar/intent_picker_view.cc +++ b/chrome/browser/ui/views/location_bar/intent_picker_view.cc
@@ -47,7 +47,7 @@ DCHECK(GetShowIcon()); content::WebContents* web_contents = GetWebContents(); const GURL& url = chrome::GetURLToBookmark(web_contents); - apps::ShowIntentPickerBubble(web_contents, url); + apps::ShowIntentPickerOrLaunchApp(web_contents, url); } views::BubbleDialogDelegate* IntentPickerView::GetBubble() const {
diff --git a/chrome/browser/ui/web_applications/BUILD.gn b/chrome/browser/ui/web_applications/BUILD.gn index 457c6d5..da60d9da 100644 --- a/chrome/browser/ui/web_applications/BUILD.gn +++ b/chrome/browser/ui/web_applications/BUILD.gn
@@ -33,7 +33,6 @@ testonly = true sources = [ - "app_browser_controller_browsertest.cc", "create_shortcut_browsertest.cc", "pwa_mixed_content_browsertest.cc", "sub_apps_service_impl_browsertest.cc", @@ -62,7 +61,10 @@ } if (is_chromeos_ash) { - sources += [ "web_app_guest_session_browsertest_chromeos.cc" ] + sources += [ + "app_browser_controller_browsertest.cc", + "web_app_guest_session_browsertest_chromeos.cc", + ] } defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
diff --git a/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc b/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc index 3384a134..785b54c6 100644 --- a/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc +++ b/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc
@@ -93,11 +93,7 @@ public: AppBrowserControllerBrowserTest() : test_system_web_app_installation_( - ash::TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) { -#if BUILDFLAG(IS_CHROMEOS_LACROS) - EnableSystemWebAppsInLacrosForTesting(); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) - } + ash::TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) {} AppBrowserControllerBrowserTest(const AppBrowserControllerBrowserTest&) = delete; AppBrowserControllerBrowserTest& operator=( @@ -361,11 +357,7 @@ public: AppBrowserControllerChromeUntrustedBrowserTest() : test_system_web_app_installation_( - ash::TestSystemWebAppInstallation::SetUpChromeUntrustedApp()) { -#if BUILDFLAG(IS_CHROMEOS_LACROS) - EnableSystemWebAppsInLacrosForTesting(); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) - } + ash::TestSystemWebAppInstallation::SetUpChromeUntrustedApp()) {} protected: Browser* InstallAndLaunchMockApp() {
diff --git a/chrome/browser/ui/web_applications/web_app_browsertest.cc b/chrome/browser/ui/web_applications/web_app_browsertest.cc index cd515dcd..0673f770 100644 --- a/chrome/browser/ui/web_applications/web_app_browsertest.cc +++ b/chrome/browser/ui/web_applications/web_app_browsertest.cc
@@ -22,7 +22,6 @@ #include "chrome/browser/apps/app_service/app_service_proxy.h" #include "chrome/browser/apps/app_service/app_service_proxy_factory.h" #include "chrome/browser/apps/app_service/browser_app_launcher.h" -#include "chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.h" #include "chrome/browser/banners/app_banner_manager_desktop.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" @@ -66,7 +65,6 @@ #include "chrome/browser/web_applications/web_app_registrar.h" #include "chrome/browser/web_applications/web_app_registry_update.h" #include "chrome/browser/web_applications/web_app_sync_bridge.h" -#include "chrome/browser/web_applications/web_app_utils.h" #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/webui_url_constants.h" @@ -96,6 +94,7 @@ #include "ui/gfx/geometry/size.h" #if BUILDFLAG(IS_CHROMEOS_ASH) +#include "chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.h" #include "chrome/browser/ui/ash/shelf/chrome_shelf_controller.h" #endif @@ -376,16 +375,14 @@ } } -// TODO(crbug.com/1321984): Make is Ash only using BUILDFLAG(IS_CHROMEOS_ASH). +#if BUILDFLAG(IS_CHROMEOS_ASH) + class BackgroundColorChangeSystemWebAppBrowserTest : public WebAppBrowserTest, public testing::WithParamInterface< /*prefer_manifest_background_color=*/bool> { public: BackgroundColorChangeSystemWebAppBrowserTest() { -#if BUILDFLAG(IS_CHROMEOS_LACROS) - web_app::EnableSystemWebAppsInLacrosForTesting(); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) system_web_app_installation_ = ash::TestSystemWebAppInstallation::SetUpAppWithColors( /*theme_color=*/SK_ColorWHITE, @@ -463,6 +460,8 @@ } } +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + // This tests that we don't crash when launching a PWA window with an // autogenerated user theme set. IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, AutoGeneratedUserThemeCrash) {
diff --git a/chrome/browser/ui/web_applications/web_app_launch_process.cc b/chrome/browser/ui/web_applications/web_app_launch_process.cc index ce43c22..1819ced8 100644 --- a/chrome/browser/ui/web_applications/web_app_launch_process.cc +++ b/chrome/browser/ui/web_applications/web_app_launch_process.cc
@@ -147,12 +147,12 @@ params_.intent && params_.intent->action == apps_util::kIntentActionCreateNote; - if (!params_.override_url.is_empty()) { - launch_url = params_.override_url; - is_file_handling = !params_.launch_files.empty(); - } else if (share_target) { + if (share_target) { // Handle share_target launch. launch_url = share_target->action; + } else if (!params_.override_url.is_empty()) { + launch_url = params_.override_url; + is_file_handling = !params_.launch_files.empty(); } else if (params_.url_handler_launch_url.has_value() && params_.url_handler_launch_url->is_valid()) { // Handle url_handlers launch.
diff --git a/chrome/browser/ui/webui/chromeos/notification_tester/notification_tester_handler.cc b/chrome/browser/ui/webui/chromeos/notification_tester/notification_tester_handler.cc index 74d14b6e..87554571 100644 --- a/chrome/browser/ui/webui/chromeos/notification_tester/notification_tester_handler.cc +++ b/chrome/browser/ui/webui/chromeos/notification_tester/notification_tester_handler.cc
@@ -12,7 +12,8 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "chrome/app/vector_icons/vector_icons.h" -#include "chrome/grit/notification_tester_resources.h" +#include "chrome/grit/chrome_unscaled_resources.h" +#include "chrome/grit/theme_resources.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/image/image.h" #include "ui/gfx/vector_icon_types.h" @@ -98,13 +99,16 @@ return gfx::kNoneIcon; // Default Case } +// TODO(crbug/1341401): Need to switch from SetNotification...() to +// GetNotification...() void NotificationTesterHandler::SetNotificationImage( const std::string& image, message_center::RichNotificationData& optional_fields) { ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); - if (image == "chromeos_logo_main") { - optional_fields.image = rb.GetNativeImageNamed( - IDR_NOTIFICATION_TESTER_IMAGES_CHROMEOS_LOGO_MAIN_PNG); + if (image == "google_logo_small_png") { + optional_fields.image = rb.GetImageNamed(IDR_LOGO_GOOGLE_COLOR_90); + } else if (image == "chromium_logo_large_png") { + optional_fields.image = rb.GetImageNamed(IDR_CHROME_APP_ICON_192); } }
diff --git a/chrome/browser/web_applications/manifest_update_manager.cc b/chrome/browser/web_applications/manifest_update_manager.cc index 52438b6..160a02e8 100644 --- a/chrome/browser/web_applications/manifest_update_manager.cc +++ b/chrome/browser/web_applications/manifest_update_manager.cc
@@ -73,8 +73,8 @@ return; } - DCHECK(system_web_apps_delegate_map_); - if (IsSystemWebApp(*registrar_, *system_web_apps_delegate_map_, *app_id)) { + if (system_web_apps_delegate_map_ && + IsSystemWebApp(*registrar_, *system_web_apps_delegate_map_, *app_id)) { NotifyResult(url, *app_id, ManifestUpdateResult::kAppIsSystemWebApp); return; }
diff --git a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc index 53c0346..f2a355a 100644 --- a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc +++ b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
@@ -1914,16 +1914,13 @@ (LaunchHandler{LaunchHandler::RouteTo::kExistingClientNavigate})); } +#if BUILDFLAG(IS_CHROMEOS_ASH) class ManifestUpdateManagerSystemAppBrowserTest : public ManifestUpdateManagerBrowserTest { public: ManifestUpdateManagerSystemAppBrowserTest() : system_app_(ash::TestSystemWebAppInstallation:: - SetUpStandaloneSingleWindowApp()) { -#if BUILDFLAG(IS_CHROMEOS_LACROS) - EnableSystemWebAppsInLacrosForTesting(); -#endif // BUILDFLAG(IS_CHROMEOS_LACROS) - } + SetUpStandaloneSingleWindowApp()) {} void SetUpOnMainThread() override { system_app_->WaitForAppInstall(); } @@ -1941,6 +1938,7 @@ kUpdateHistogramName, ManifestUpdateResult::kAppIsSystemWebApp, 1); EXPECT_EQ(GetProvider().registrar().GetAppThemeColor(app_id), SK_ColorGREEN); } +#endif // BUILDFLAG(IS_CHROMEOS_ASH) using ManifestUpdateManagerWebAppsBrowserTest = ManifestUpdateManagerBrowserTest;
diff --git a/chrome/browser/web_applications/manifest_update_task.cc b/chrome/browser/web_applications/manifest_update_task.cc index 1d73eae..1920036 100644 --- a/chrome/browser/web_applications/manifest_update_task.cc +++ b/chrome/browser/web_applications/manifest_update_task.cc
@@ -427,6 +427,9 @@ if (install_info_->permissions_policy != app->permissions_policy()) return true; + // TODO(crbug.com/897314): Check changes to tab_strip field once icons are + // stored. + // TODO(crbug.com/1212849): Handle changes to is_storage_isolated. // TODO(crbug.com/926083): Check more manifest fields.
diff --git a/chrome/browser/web_applications/proto/BUILD.gn b/chrome/browser/web_applications/proto/BUILD.gn index bbe1860b..849bf17d 100644 --- a/chrome/browser/web_applications/proto/BUILD.gn +++ b/chrome/browser/web_applications/proto/BUILD.gn
@@ -10,6 +10,7 @@ "web_app.proto", "web_app_launch_handler.proto", "web_app_share_target.proto", + "web_app_tab_strip.proto", "web_app_translations.proto", ] link_deps = [
diff --git a/chrome/browser/web_applications/proto/web_app.proto b/chrome/browser/web_applications/proto/web_app.proto index 0029718..df18dea8 100644 --- a/chrome/browser/web_applications/proto/web_app.proto +++ b/chrome/browser/web_applications/proto/web_app.proto
@@ -8,6 +8,7 @@ import "chrome/browser/ash/system_web_apps/types/system_web_app_data.proto"; import "chrome/browser/web_applications/proto/web_app_launch_handler.proto"; import "chrome/browser/web_applications/proto/web_app_share_target.proto"; +import "chrome/browser/web_applications/proto/web_app_tab_strip.proto"; option optimize_for = LITE_RUNTIME; @@ -340,4 +341,8 @@ // If present, the URL to use to launch the app on the lock screen. optional string lock_screen_start_url = 56; + + // Contains customisations to the web app tab strip. Only present when the + // display_mode is tabbed. + optional TabStripProto tab_strip = 57; }
diff --git a/chrome/browser/web_applications/proto/web_app_tab_strip.proto b/chrome/browser/web_applications/proto/web_app_tab_strip.proto new file mode 100644 index 0000000..216a57a --- /dev/null +++ b/chrome/browser/web_applications/proto/web_app_tab_strip.proto
@@ -0,0 +1,33 @@ +// Copyright 2022 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. + +syntax = "proto2"; + +option optimize_for = LITE_RUNTIME; + +package web_app; + +message NewTabButtonParams { + optional string url = 1; +} + +// A proto representing the "tab_strip" manifest field. +// This mirrors ManifestTabStrip in: +// third_party/blink/public/mojom/manifest/manifest.mojom +message TabStripProto { + enum Visibility { + AUTO = 0; + ABSENT = 1; + } + + oneof new_tab_button { + Visibility new_tab_button_visibility = 1; + NewTabButtonParams new_tab_button_params = 2; + } + + oneof home_tab { + Visibility home_tab_visibility = 3; + // TODO(crbug.com/897314): Add HomeTabParams containing icons. + } +}
diff --git a/chrome/browser/web_applications/test/web_app_test_utils.cc b/chrome/browser/web_applications/test/web_app_test_utils.cc index 14c8c60..b5b5b61 100644 --- a/chrome/browser/web_applications/test/web_app_test_utils.cc +++ b/chrome/browser/web_applications/test/web_app_test_utils.cc
@@ -574,6 +574,24 @@ app->SetAppSizeInBytes(random.next_uint()); app->SetDataSizeInBytes(random.next_uint()); + if (random.next_bool()) { + blink::Manifest::TabStrip tab_strip; + tab_strip.home_tab = + random.next_enum<blink::mojom::TabStripMemberVisibility>(); + if (random.next_bool()) { + blink::Manifest::NewTabButtonParams new_tab_button_params; + if (random.next_bool()) { + new_tab_button_params.url = scope.Resolve( + "new_tab_button_url" + base::NumberToString(random.next_uint())); + } + tab_strip.new_tab_button = new_tab_button_params; + } else { + tab_strip.new_tab_button = + random.next_enum<blink::mojom::TabStripMemberVisibility>(); + } + app->SetTabStrip(std::move(tab_strip)); + } + return app; }
diff --git a/chrome/browser/web_applications/web_app.cc b/chrome/browser/web_applications/web_app.cc index 63cd6f5..7232fdc 100644 --- a/chrome/browser/web_applications/web_app.cc +++ b/chrome/browser/web_applications/web_app.cc
@@ -394,6 +394,10 @@ std::move(management_to_external_config_map); } +void WebApp::SetTabStrip(absl::optional<blink::Manifest::TabStrip> tab_strip) { + tab_strip_ = std::move(tab_strip); +} + void WebApp::AddPlaceholderInfoToManagementExternalConfigMap( WebAppManagement::Type type, bool is_placeholder) { @@ -552,7 +556,8 @@ app.install_source_for_metrics_, app.app_size_in_bytes_, app.data_size_in_bytes_, - app.management_to_external_config_map_ + app.management_to_external_config_map_, + app.tab_strip_ // clang-format on ); }; @@ -832,6 +837,37 @@ root.SetBoolKey("window_controls_overlay_enabled", window_controls_overlay_enabled_); + if (tab_strip_.has_value()) { + base::Value& tab_strip_json = + *root.SetKey("tab_strip", base::Value(base::Value::Type::DICTIONARY)); + if (absl::holds_alternative<TabStrip::Visibility>( + tab_strip_.value().new_tab_button)) { + tab_strip_json.SetStringKey( + "new_tab_button", ConvertToString(absl::get<TabStrip::Visibility>( + tab_strip_.value().new_tab_button))); + } else { + base::Value& new_tab_button_json = *tab_strip_json.SetKey( + "new_tab_button", base::Value(base::Value::Type::DICTIONARY)); + new_tab_button_json.SetStringKey( + "url", ConvertToString(absl::get<blink::Manifest::NewTabButtonParams>( + tab_strip_.value().new_tab_button) + .url.value_or(GURL("")))); + } + + if (absl::holds_alternative<TabStrip::Visibility>( + tab_strip_.value().home_tab)) { + tab_strip_json.SetStringKey( + "home_tab", ConvertToString(absl::get<TabStrip::Visibility>( + tab_strip_.value().home_tab))); + } else { + tab_strip_json.SetKey("home_tab", + base::Value(base::Value::Type::DICTIONARY)); + // TODO(crbug.com/897314): Add debug info for home tab icons. + } + } else { + root.SetKey("tab_strip", base::Value()); + } + return root; }
diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h index adae63c1..83c3950 100644 --- a/chrome/browser/web_applications/web_app.h +++ b/chrome/browser/web_applications/web_app.h
@@ -294,6 +294,10 @@ return management_to_external_config_map_; } + const absl::optional<blink::Manifest::TabStrip> tab_strip() const { + return tab_strip_; + } + // A Web App can be installed from multiple sources simultaneously. Installs // add a source to the app. Uninstalls remove a source from the app. void AddSource(WebAppManagement::Type source); @@ -377,6 +381,7 @@ void SetDataSizeInBytes(absl::optional<int64_t> data_size_in_bytes); void SetWebAppManagementExternalConfigMap( ExternalConfigMap management_to_external_config_map); + void SetTabStrip(absl::optional<blink::Manifest::TabStrip> tab_strip); void AddPlaceholderInfoToManagementExternalConfigMap( WebAppManagement::Type source_type, @@ -488,6 +493,8 @@ // like is_placeholder and install URLs. ExternalConfigMap management_to_external_config_map_; + absl::optional<blink::Manifest::TabStrip> tab_strip_; + // New fields must be added to: // - |operator==| // - AsDebugValue()
diff --git a/chrome/browser/web_applications/web_app_database.cc b/chrome/browser/web_applications/web_app_database.cc index ce3af54..90b7ba1 100644 --- a/chrome/browser/web_applications/web_app_database.cc +++ b/chrome/browser/web_applications/web_app_database.cc
@@ -249,6 +249,26 @@ } } +TabStripProto::Visibility TabStripVisibilityToProto( + TabStrip::Visibility visibility) { + switch (visibility) { + case TabStrip::Visibility::kAuto: + return TabStripProto_Visibility_AUTO; + case TabStrip::Visibility::kAbsent: + return TabStripProto_Visibility_ABSENT; + } +} + +TabStrip::Visibility ProtoToTabStripVisibility( + TabStripProto::Visibility visibility) { + switch (visibility) { + case TabStripProto_Visibility_AUTO: + return TabStrip::Visibility::kAuto; + case TabStripProto_Visibility_ABSENT: + return TabStrip::Visibility::kAbsent; + } +} + } // anonymous namespace WebAppDatabase::WebAppDatabase(AbstractWebAppDatabaseFactory* database_factory, @@ -646,6 +666,31 @@ } } + if (web_app.tab_strip()) { + TabStrip tab_strip = web_app.tab_strip().value(); + + auto* mutable_tab_strip = local_data->mutable_tab_strip(); + if (absl::holds_alternative<TabStrip::Visibility>(tab_strip.home_tab)) { + mutable_tab_strip->set_home_tab_visibility(TabStripVisibilityToProto( + absl::get<TabStrip::Visibility>(tab_strip.home_tab))); + } + + if (absl::holds_alternative<TabStrip::Visibility>( + tab_strip.new_tab_button)) { + mutable_tab_strip->set_new_tab_button_visibility( + TabStripVisibilityToProto(absl::get<TabStrip::Visibility>( + web_app.tab_strip().value().new_tab_button))); + } else { + auto* mutable_new_tab_button_params = + mutable_tab_strip->mutable_new_tab_button_params(); + absl::optional<GURL> url = absl::get<blink::Manifest::NewTabButtonParams>( + tab_strip.new_tab_button) + .url; + if (url) + mutable_new_tab_button_params->set_url(url.value().spec()); + } + } + if (web_app.app_size_in_bytes().has_value()) local_data->set_app_size_in_bytes(web_app.app_size_in_bytes().value()); @@ -1221,6 +1266,27 @@ } web_app->SetWebAppManagementExternalConfigMap(management_to_external_config); + if (local_data.has_tab_strip()) { + TabStrip tab_strip; + if (local_data.tab_strip().has_home_tab_visibility()) { + tab_strip.home_tab = ProtoToTabStripVisibility( + local_data.tab_strip().home_tab_visibility()); + } + + if (local_data.tab_strip().has_new_tab_button_visibility()) { + tab_strip.new_tab_button = ProtoToTabStripVisibility( + local_data.tab_strip().new_tab_button_visibility()); + } else { + blink::Manifest::NewTabButtonParams new_tab_button_params; + if (local_data.tab_strip().new_tab_button_params().has_url()) { + new_tab_button_params.url = + GURL(local_data.tab_strip().new_tab_button_params().url()); + } + tab_strip.new_tab_button = new_tab_button_params; + } + web_app->SetTabStrip(std::move(tab_strip)); + } + if (local_data.has_app_size_in_bytes()) { web_app->SetAppSizeInBytes(local_data.app_size_in_bytes()); }
diff --git a/chrome/browser/web_applications/web_app_install_utils.cc b/chrome/browser/web_applications/web_app_install_utils.cc index 9a8a8af..684225e 100644 --- a/chrome/browser/web_applications/web_app_install_utils.cc +++ b/chrome/browser/web_applications/web_app_install_utils.cc
@@ -979,6 +979,8 @@ web_app.SetManifestUrl(web_app_info.manifest_url); web_app.SetLaunchHandler(web_app_info.launch_handler); + + web_app.SetTabStrip(web_app_info.tab_strip); } void MaybeDisableOsIntegration(const WebAppRegistrar* app_registrar,
diff --git a/chrome/browser/web_applications/web_app_unittest.cc b/chrome/browser/web_applications/web_app_unittest.cc index d2ec1130..020d0b9 100644 --- a/chrome/browser/web_applications/web_app_unittest.cc +++ b/chrome/browser/web_applications/web_app_unittest.cc
@@ -230,6 +230,7 @@ "scope": "", "theme_color": "none" }, + "tab_strip": null, "theme_color": "none", "unhashed_app_id": "", "url_handlers": [ ], @@ -526,6 +527,7 @@ "scope": "https://example.com/scope1234/", "theme_color": "rgba(61,127,69,0.8431372549019608)" }, + "tab_strip": null, "theme_color": "rgba(151,34,83,0.8823529411764706)", "unhashed_app_id": "https://example.com/scope1234/start1234", "url_handlers": [ {
diff --git a/chrome/browser/webid/federated_identity_account_keyed_permission_context.cc b/chrome/browser/webid/federated_identity_account_keyed_permission_context.cc index 218aa6a0..5ac8ec5 100644 --- a/chrome/browser/webid/federated_identity_account_keyed_permission_context.cc +++ b/chrome/browser/webid/federated_identity_account_keyed_permission_context.cc
@@ -33,7 +33,7 @@ bool FederatedIdentityAccountKeyedPermissionContext::HasPermission( const url::Origin& relying_party, const url::Origin& identity_provider, - const absl::optional<std::string>& account_id) { + const std::string& account_id) { // TODO(crbug.com/1334019): This is currently origin-bound, but we would like // this grant to apply at the 'site' (aka eTLD+1) level. We should override // GetGrantedObject to find a grant that matches the RP's site rather @@ -44,9 +44,6 @@ if (!granted_object) return false; - if (!account_id) - return true; - const base::Value::List* account_list = ExtractAccountList(granted_object->value); for (auto& account_id_value : *account_list) {
diff --git a/chrome/browser/webid/federated_identity_account_keyed_permission_context.h b/chrome/browser/webid/federated_identity_account_keyed_permission_context.h index acf7f62..4a8ea6d 100644 --- a/chrome/browser/webid/federated_identity_account_keyed_permission_context.h +++ b/chrome/browser/webid/federated_identity_account_keyed_permission_context.h
@@ -7,7 +7,6 @@ #include "components/content_settings/core/common/content_settings_types.h" #include "components/permissions/object_permission_context_base.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include <string> @@ -36,10 +35,9 @@ // Returns whether there is an existing permission for the (relying_party, // identity_provider, account_id) tuple. - // When `account_id` == absl::nullopt, all account ids are matched. bool HasPermission(const url::Origin& relying_party, const url::Origin& identity_provider, - const absl::optional<std::string>& account_id); + const std::string& account_id); // Grants permission for the (relying_party, identity_provider, account_id) // tuple.
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 6606d65..7916f05f 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1657022349-bffae36425e502a761df100ce16ea8e8b34be36b.profdata +chrome-linux-main-1657086937-bb62fb04fa6f19e3e562042ffc02afce68ae04c3.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 6d7bc21a..2595d70 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1657022349-096312dc222be2f882e40fb94c4f51ddc3a3c0a4.profdata +chrome-mac-arm-main-1657086937-55501ae392a4acb3e94c8fe10e870c7796e8328e.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 91040d0..22e92f1 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1657022349-b5d238b58d25cbc0137783361983ca34de273d7d.profdata +chrome-mac-main-1657065497-80aa3306e6cf337ea173d4d88eab20509915cbb9.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index b7fcb1c..45f7a483 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1657033128-31317df818ce180cb839e5a8925a9b62660a625b.profdata +chrome-win32-main-1657065497-7bfe91e6d78329cb4125b269fc2225e21759312c.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 48e9eec..90023c8 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1657033128-9412251c0b22b3f38e4b73407fda0b88b7e90c33.profdata +chrome-win64-main-1657075668-602afc372be7c5b3e1edc1324a09c6b9f3c5c72c.profdata
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 7258a45..ccfd077 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1401,6 +1401,7 @@ "//components/segmentation_platform/internal:test_support", "//components/segmentation_platform/public", "//components/services/app_service/public/cpp:protocol_handling", + "//components/services/app_service/public/cpp:test_support", "//components/services/app_service/public/mojom", "//components/services/language_detection/public/cpp", "//components/services/language_detection/public/mojom", @@ -2038,7 +2039,6 @@ "../browser/sessions/session_restore_observer_browsertest.cc", "../browser/sessions/session_service_log_browsertest.cc", "../browser/sessions/tab_restore_browsertest.cc", - "../browser/sessions/tab_restore_service_browsertest.cc", "../browser/shared_highlighting/shared_highlighting_browsertest.cc", "../browser/signin/e2e_tests/live_sign_in_test.cc", "../browser/signin/e2e_tests/live_test.cc", @@ -2368,6 +2368,10 @@ ] } + if (is_chromeos_ash) { + sources += [ "../browser/sessions/tab_restore_service_browsertest.cc" ] + } + # https://crbug.com/1252812 The intent picker (launch icon) actions # are not working on Lacros. Remove the lacros exclusion when fixed. if (is_chromeos && !is_chromeos_lacros) { @@ -3262,7 +3266,6 @@ "../browser/ui/views/frame/browser_non_client_frame_view_browsertest.cc", "../browser/ui/views/frame/browser_root_view_browsertest.cc", "../browser/ui/views/frame/browser_view_browsertest.cc", - "../browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc", "../browser/ui/views/hung_renderer_view_browsertest.cc", "../browser/ui/views/importer/import_lock_dialog_view_browsertest.cc", "../browser/ui/views/javascript_tab_modal_dialog_view_views_browsertest.cc", @@ -3364,6 +3367,7 @@ } if (is_chromeos_ash) { sources += [ + "../browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc", "../browser/ui/views/select_file_dialog_extension_browsertest.cc", ] deps += [ "//ash/services/multidevice_setup/public/cpp:prefs" ] @@ -4486,7 +4490,6 @@ "../browser/apps/platform_apps/platform_app_navigation_redirector_browsertest.cc", "../browser/apps/platform_apps/service_worker_browsertest.cc", "../browser/ui/startup/startup_browser_creator_browsertest.cc", - "../browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc", "../browser/ui/views/web_apps/deprecated_apps_dialog_view_browsertest.cc", "../browser/ui/views/web_apps/force_installed_deprecated_apps_dialog_view_browsertest.cc", "../browser/ui/views/web_apps/frame_toolbar/web_app_frame_toolbar_browsertest.cc", @@ -4691,6 +4694,7 @@ "//components/proxy_config:proxy_config", "//components/services/app_service/public/cpp:intents", "//components/services/app_service/public/cpp:preferred_apps", + "//components/services/app_service/public/cpp:test_support", "//ui/gfx/codec", "//ui/platform_window", ] @@ -9358,6 +9362,7 @@ ] } if (is_chromeos_ash) { + sources += [ "../browser/ui/web_applications/test/system_web_app_interactive_uitest.cc" ] deps += [ "//ash:ash", "//chrome/browser/ash/crosapi:crosapi", @@ -9374,9 +9379,6 @@ "//components/media_router/browser:test_support", ] } - if (!is_android) { - sources += [ "../browser/ui/web_applications/test/system_web_app_interactive_uitest.cc" ] - } if (use_aura) { sources += [ "../browser/ui/views/tooltip/tooltip_browsertest.cc" ] }
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js index 114b3e5..3802404 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js
@@ -4,7 +4,7 @@ import {EmojiPicker} from 'chrome://emoji-picker/emoji_picker.js'; import {EmojiPickerApiProxyImpl} from 'chrome://emoji-picker/emoji_picker_api_proxy.js'; -import {EMOJI_BUTTON_CLICK, V2_CONTENT_LOADED} from 'chrome://emoji-picker/events.js'; +import {EMOJI_BUTTON_CLICK, EMOJI_PICKER_READY} from 'chrome://emoji-picker/events.js'; import {assert} from 'chrome://resources/js/assert.m.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {assertEquals, assertFalse, assertGT, assertTrue} from '../../chai_assert.js'; @@ -39,11 +39,18 @@ // Set default incognito state to False. EmojiPickerApiProxyImpl.getInstance().isIncognitoTextField = () => new Promise((resolve) => resolve({incognito: false})); + EmojiPicker.configs = () => ({ + 'dataUrls': { + 'emoji': [ + '/emoji_test_ordering_start.json', + '/emoji_test_ordering_remaining.json' + ], + 'emoticon': ['/emoticon_test_ordering.json'], + }, + }); emojiPicker = /** @type {!EmojiPicker} */ (document.createElement('emoji-picker')); - emojiPicker.emojiDataUrl = '/emoji_test_ordering'; - emojiPicker.emoticonDataUrl = '/emoticon_test_ordering.json'; findInEmojiPicker = (...path) => deepQuerySelector(emojiPicker, path); @@ -57,7 +64,7 @@ // Wait until emoji data is loaded before executing tests. return new Promise((resolve) => { - emojiPicker.addEventListener(V2_CONTENT_LOADED, () => { + emojiPicker.addEventListener(EMOJI_PICKER_READY, () => { flush(); resolve(); });
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_search_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_search_test.js index 5cbe789..bd85464 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_search_test.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_search_test.js
@@ -3,7 +3,7 @@ // found in the LICENSE file. import {EmojiPicker} from 'chrome://emoji-picker/emoji_picker.js'; -import {EMOJI_BUTTON_CLICK, V2_CONTENT_LOADED} from 'chrome://emoji-picker/events.js'; +import {EMOJI_BUTTON_CLICK, EMOJI_PICKER_READY} from 'chrome://emoji-picker/events.js'; import {assert} from 'chrome://resources/js/assert.m.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; @@ -29,16 +29,24 @@ document.body.innerHTML = ''; window.localStorage.clear(); + EmojiPicker.configs = () => ({ + 'dataUrls': { + 'emoji': [ + '/emoji_test_ordering_start.json', + '/emoji_test_ordering_remaining.json' + ], + 'emoticon': ['/emoticon_test_ordering.json'], + }, + }); + emojiPicker = /** @type {!EmojiPicker} */ (document.createElement('emoji-picker')); - emojiPicker.emojiDataUrl = '/emoji_test_ordering'; - emojiPicker.emoticonDataUrl = '/emoticon_test_ordering.json'; findInEmojiPicker = (...path) => deepQuerySelector(emojiPicker, path); // Wait until emoji data is loaded before executing tests. return new Promise((resolve) => { - emojiPicker.addEventListener(V2_CONTENT_LOADED, () => { + emojiPicker.addEventListener(EMOJI_PICKER_READY, () => { flush(); resolve(); });
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js index 7b2a8c5..8d60aa03 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js
@@ -7,7 +7,7 @@ import {EmojiPicker} from 'chrome://emoji-picker/emoji_picker.js'; import {EmojiPickerApiProxyImpl} from 'chrome://emoji-picker/emoji_picker_api_proxy.js'; import {EmojiVariants} from 'chrome://emoji-picker/emoji_variants.js'; -import {EMOJI_REMAINING_DATA_LOADED, EMOJI_VARIANTS_SHOWN} from 'chrome://emoji-picker/events.js'; +import {EMOJI_PICKER_READY, EMOJI_VARIANTS_SHOWN} from 'chrome://emoji-picker/events.js'; import {assert} from 'chrome://resources/js/assert.m.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; @@ -32,10 +32,17 @@ // Set default incognito state to False. EmojiPickerApiProxyImpl.getInstance().isIncognitoTextField = () => new Promise((resolve) => resolve({incognito: false})); + EmojiPicker.configs = () => ({ + 'dataUrls': { + 'emoji': [ + '/emoji_test_ordering_start.json', + '/emoji_test_ordering_remaining.json', + ], + }, + }); emojiPicker = /** @type {!EmojiPicker} */ (document.createElement('emoji-picker')); - emojiPicker.emojiDataUrl = '/emoji_test_ordering'; findInEmojiPicker = (...path) => deepQuerySelector(emojiPicker, path); @@ -49,7 +56,7 @@ // Wait until emoji data is loaded before executing tests. return new Promise((resolve) => { - emojiPicker.addEventListener(EMOJI_REMAINING_DATA_LOADED, resolve); + emojiPicker.addEventListener(EMOJI_PICKER_READY, resolve); document.body.appendChild(emojiPicker); flush(); });
diff --git a/chrome/test/enterprise/e2e/policy/cloud_management_enrollment_token/cloud_enrollment_webdriver.py b/chrome/test/enterprise/e2e/policy/cloud_management_enrollment_token/cloud_enrollment_webdriver.py index 5a7da58..0ef11ce 100644 --- a/chrome/test/enterprise/e2e/policy/cloud_management_enrollment_token/cloud_enrollment_webdriver.py +++ b/chrome/test/enterprise/e2e/policy/cloud_management_enrollment_token/cloud_enrollment_webdriver.py
@@ -9,6 +9,14 @@ import test_util +def getElementFromShadowRoot(driver, element, selector): + if element is None: + return None + else: + return driver.execute_script( + "return arguments[0].shadowRoot.querySelector(arguments[1])", element, + selector) + def main(argv): options = webdriver.ChromeOptions() os.environ["CHROME_LOG_FILE"] = r"c:\temp\chrome_log.txt" @@ -24,10 +32,13 @@ driver.find_element_by_id('reload-policies').click # Give the page 2 seconds to render the legend time.sleep(2) - print(driver.find_element_by_class_name('legend').text) - print(driver.find_element_by_class_name('machine-enrollment-name').text) - print(driver.find_element_by_class_name('machine-enrollment-token').text) - print(driver.find_element_by_class_name('status').text) + status_box = driver.find_element_by_css_selector("status-box") + el = getElementFromShadowRoot(driver, status_box, "fieldset") + + print(el.find_element_by_class_name('legend').text) + print(el.find_element_by_class_name('machine-enrollment-name').text) + print(el.find_element_by_class_name('machine-enrollment-token').text) + print(el.find_element_by_class_name('status').text) except Exception as error: print(error) finally:
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 5698a63..6b1e39d 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -14945.0.0 \ No newline at end of file +14958.0.0 \ No newline at end of file
diff --git a/chromeos/ash/components/dbus/BUILD.gn b/chromeos/ash/components/dbus/BUILD.gn index 36670ef..fe1ee92b 100644 --- a/chromeos/ash/components/dbus/BUILD.gn +++ b/chromeos/ash/components/dbus/BUILD.gn
@@ -21,6 +21,7 @@ "//chromeos/ash/components/dbus/hiberman", "//chromeos/ash/components/dbus/ip_peripheral:test_support", "//chromeos/ash/components/dbus/lorgnette_manager:test_support", + "//chromeos/ash/components/dbus/oobe_config:unit_tests", "//chromeos/ash/components/dbus/rmad:rmad_proto", "//chromeos/ash/components/dbus/rmad:test_support", "//chromeos/ash/components/dbus/services:unit_tests",
diff --git a/chromeos/ash/components/dbus/concierge/concierge_client.cc b/chromeos/ash/components/dbus/concierge/concierge_client.cc index 9bc8876d2..255ddad 100644 --- a/chromeos/ash/components/dbus/concierge/concierge_client.cc +++ b/chromeos/ash/components/dbus/concierge/concierge_client.cc
@@ -58,14 +58,6 @@ vm_observer_list_.RemoveObserver(observer); } - void AddContainerObserver(ContainerObserver* observer) override { - container_observer_list_.AddObserver(observer); - } - - void RemoveContainerObserver(ContainerObserver* observer) override { - container_observer_list_.RemoveObserver(observer); - } - void AddDiskImageObserver(DiskImageObserver* observer) override { disk_image_observer_list_.AddObserver(observer); } @@ -82,10 +74,6 @@ return is_vm_stopped_signal_connected_; } - bool IsContainerStartupFailedSignalConnected() override { - return is_container_startup_failed_signal_connected_; - } - bool IsDiskImageProgressSignalConnected() override { return is_disk_import_progress_signal_connected_; } @@ -293,14 +281,6 @@ base::BindOnce(&ConciergeClientImpl::OnSignalConnected, weak_ptr_factory_.GetWeakPtr())); concierge_proxy_->ConnectToSignal( - concierge::kVmConciergeInterface, - concierge::kContainerStartupFailedSignal, - base::BindRepeating( - &ConciergeClientImpl::OnContainerStartupFailedSignal, - weak_ptr_factory_.GetWeakPtr()), - base::BindOnce(&ConciergeClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); - concierge_proxy_->ConnectToSignal( concierge::kVmConciergeInterface, concierge::kDiskImageProgressSignal, base::BindRepeating(&ConciergeClientImpl::OnDiskImageProgress, weak_ptr_factory_.GetWeakPtr()), @@ -402,22 +382,6 @@ observer.OnVmStopped(vm_stopped_signal); } - void OnContainerStartupFailedSignal(dbus::Signal* signal) { - DCHECK_EQ(signal->GetInterface(), concierge::kVmConciergeInterface); - DCHECK_EQ(signal->GetMember(), concierge::kContainerStartupFailedSignal); - - concierge::ContainerStartedSignal container_startup_failed_signal; - dbus::MessageReader reader(signal); - if (!reader.PopArrayOfBytesAsProto(&container_startup_failed_signal)) { - LOG(ERROR) << "Failed to parse proto from DBus Signal"; - return; - } - - for (auto& observer : container_observer_list_) { - observer.OnContainerStartupFailed(container_startup_failed_signal); - } - } - void OnDiskImageProgress(dbus::Signal* signal) { DCHECK_EQ(signal->GetInterface(), concierge::kVmConciergeInterface); DCHECK_EQ(signal->GetMember(), concierge::kDiskImageProgressSignal); @@ -445,8 +409,6 @@ is_vm_started_signal_connected_ = is_connected; } else if (signal_name == concierge::kVmStoppedSignal) { is_vm_stopped_signal_connected_ = is_connected; - } else if (signal_name == concierge::kContainerStartupFailedSignal) { - is_container_startup_failed_signal_connected_ = is_connected; } else if (signal_name == concierge::kDiskImageProgressSignal) { is_disk_import_progress_signal_connected_ = is_connected; } else { @@ -460,14 +422,11 @@ ConciergeClient::kObserverListPolicy}; base::ObserverList<VmObserver>::Unchecked vm_observer_list_{ ConciergeClient::kObserverListPolicy}; - base::ObserverList<ContainerObserver>::Unchecked container_observer_list_{ - ConciergeClient::kObserverListPolicy}; base::ObserverList<DiskImageObserver>::Unchecked disk_image_observer_list_{ ConciergeClient::kObserverListPolicy}; bool is_vm_started_signal_connected_ = false; bool is_vm_stopped_signal_connected_ = false; - bool is_container_startup_failed_signal_connected_ = false; bool is_disk_import_progress_signal_connected_ = false; // Note: This should remain the last member so it'll be destroyed and
diff --git a/chromeos/ash/components/dbus/concierge/concierge_client.h b/chromeos/ash/components/dbus/concierge/concierge_client.h index 1dbdfb3..96cd209 100644 --- a/chromeos/ash/components/dbus/concierge/concierge_client.h +++ b/chromeos/ash/components/dbus/concierge/concierge_client.h
@@ -48,20 +48,6 @@ virtual ~VmObserver() = default; }; - // Used for observing all concierge signals related to running - // containers (e.g. startup). - class ContainerObserver { - public: - // OnContainerStartupFailed is signaled by Concierge after the long-running - // container startup process's failure is detected. Note the signal protocol - // buffer type is the same as in OnContainerStarted. - virtual void OnContainerStartupFailed( - const vm_tools::concierge::ContainerStartedSignal& signal) = 0; - - protected: - virtual ~ContainerObserver() = default; - }; - // Used for observing all concierge signals related to VM disk image // operations, e.g. importing. class DiskImageObserver { @@ -89,11 +75,6 @@ // Removes an observer if added. virtual void RemoveVmObserver(VmObserver* observer) = 0; - // Adds an observer for container startup. - virtual void AddContainerObserver(ContainerObserver* observer) = 0; - // Removes an observer if added. - virtual void RemoveContainerObserver(ContainerObserver* observer) = 0; - // Adds an observer for disk image operations. virtual void AddDiskImageObserver(DiskImageObserver* observer) = 0; // Adds an observer for disk image operations. @@ -104,10 +85,6 @@ virtual bool IsVmStartedSignalConnected() = 0; virtual bool IsVmStoppedSignalConnected() = 0; - // IsContainerStartupFailedSignalConnected must return true before - // StartContainer is called. - virtual bool IsContainerStartupFailedSignalConnected() = 0; - // IsDiskImageProgressSignalConnected must return true before // ImportDiskImage is called. virtual bool IsDiskImageProgressSignalConnected() = 0;
diff --git a/chromeos/ash/components/dbus/concierge/fake_concierge_client.cc b/chromeos/ash/components/dbus/concierge/fake_concierge_client.cc index 9905850..13a23f92 100644 --- a/chromeos/ash/components/dbus/concierge/fake_concierge_client.cc +++ b/chromeos/ash/components/dbus/concierge/fake_concierge_client.cc
@@ -65,14 +65,6 @@ vm_observer_list_.RemoveObserver(observer); } -void FakeConciergeClient::AddContainerObserver(ContainerObserver* observer) { - container_observer_list_.AddObserver(observer); -} - -void FakeConciergeClient::RemoveContainerObserver(ContainerObserver* observer) { - container_observer_list_.RemoveObserver(observer); -} - void FakeConciergeClient::AddDiskImageObserver(DiskImageObserver* observer) { disk_image_observer_list_.AddObserver(observer); } @@ -89,10 +81,6 @@ return is_vm_stopped_signal_connected_; } -bool FakeConciergeClient::IsContainerStartupFailedSignalConnected() { - return is_container_startup_failed_signal_connected_; -} - bool FakeConciergeClient::IsDiskImageProgressSignalConnected() { return is_disk_image_progress_signal_connected_; }
diff --git a/chromeos/ash/components/dbus/concierge/fake_concierge_client.h b/chromeos/ash/components/dbus/concierge/fake_concierge_client.h index cec671a..34a71b4 100644 --- a/chromeos/ash/components/dbus/concierge/fake_concierge_client.h +++ b/chromeos/ash/components/dbus/concierge/fake_concierge_client.h
@@ -32,14 +32,11 @@ void RemoveObserver(Observer* observer) override; void AddVmObserver(VmObserver* observer) override; void RemoveVmObserver(VmObserver* observer) override; - void AddContainerObserver(ContainerObserver* observer) override; - void RemoveContainerObserver(ContainerObserver* observer) override; void AddDiskImageObserver(DiskImageObserver* observer) override; void RemoveDiskImageObserver(DiskImageObserver* observer) override; bool IsVmStartedSignalConnected() override; bool IsVmStoppedSignalConnected() override; - bool IsContainerStartupFailedSignalConnected() override; bool IsDiskImageProgressSignalConnected() override; void CreateDiskImage( const vm_tools::concierge::CreateDiskImageRequest& request, @@ -144,10 +141,6 @@ const base::ObserverList<VmObserver>::Unchecked& vm_observer_list() const { return vm_observer_list_; } - const base::ObserverList<ContainerObserver>::Unchecked& - container_observer_list() const { - return container_observer_list_; - } const base::ObserverList<DiskImageObserver>::Unchecked& disk_image_observer_list() const { return disk_image_observer_list_; @@ -199,9 +192,6 @@ void set_vm_stopped_signal_connected(bool connected) { is_vm_stopped_signal_connected_ = connected; } - void set_container_startup_failed_signal_connected(bool connected) { - is_container_startup_failed_signal_connected_ = connected; - } void set_disk_image_progress_signal_connected(bool connected) { is_disk_image_progress_signal_connected_ = connected; } @@ -370,7 +360,6 @@ bool is_vm_started_signal_connected_ = true; bool is_vm_stopped_signal_connected_ = true; - bool is_container_startup_failed_signal_connected_ = true; bool is_disk_image_progress_signal_connected_ = true; bool wait_for_service_to_be_available_response_ = true; @@ -424,9 +413,6 @@ base::ObserverList<VmObserver>::Unchecked vm_observer_list_{ ConciergeClient::kObserverListPolicy}; - base::ObserverList<ContainerObserver>::Unchecked container_observer_list_{ - ConciergeClient::kObserverListPolicy}; - base::ObserverList<DiskImageObserver>::Unchecked disk_image_observer_list_{ ConciergeClient::kObserverListPolicy};
diff --git a/chromeos/dbus/oobe_config/BUILD.gn b/chromeos/ash/components/dbus/oobe_config/BUILD.gn similarity index 87% rename from chromeos/dbus/oobe_config/BUILD.gn rename to chromeos/ash/components/dbus/oobe_config/BUILD.gn index e18f0cf..8f03b59 100644 --- a/chromeos/dbus/oobe_config/BUILD.gn +++ b/chromeos/ash/components/dbus/oobe_config/BUILD.gn
@@ -8,8 +8,8 @@ assert(is_chromeos_ash, "Non-Chrome-OS builds must not depend on //chromeos") component("oobe_config") { - output_name = "chromeos_oobe_config" - defines = [ "IS_CHROMEOS_DBUS_OOBE_CONFIG_IMPL" ] + output_name = "ash_oobe_config" + defines = [ "IS_ASH_DBUS_OOBE_CONFIG_IMPL" ] deps = [ ":proto", "//base", @@ -44,5 +44,5 @@ sources = [ "//third_party/cros_system_api/dbus/oobe_config/oobe_config.proto" ] - proto_out_dir = "chromeos/dbus/oobe_config" + proto_out_dir = "chromeos/ash/components/dbus/oobe_config" }
diff --git a/chromeos/dbus/oobe_config/fake_oobe_configuration_client.cc b/chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.cc similarity index 89% rename from chromeos/dbus/oobe_config/fake_oobe_configuration_client.cc rename to chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.cc index 18c5647..57c2acec 100644 --- a/chromeos/dbus/oobe_config/fake_oobe_configuration_client.cc +++ b/chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.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 "chromeos/dbus/oobe_config/fake_oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.h" #include <string> @@ -26,14 +26,14 @@ } void OnConfigurationLoaded( - chromeos::OobeConfigurationClient::ConfigurationCallback callback, + ash::OobeConfigurationClient::ConfigurationCallback callback, const std::string& configuration) { std::move(callback).Run(!configuration.empty(), configuration); } } // namespace -namespace chromeos { +namespace ash { FakeOobeConfigurationClient::FakeOobeConfigurationClient() = default; @@ -59,4 +59,4 @@ base::BindOnce(&OnConfigurationLoaded, std::move(callback))); } -} // namespace chromeos +} // namespace ash
diff --git a/chromeos/dbus/oobe_config/fake_oobe_configuration_client.h b/chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.h similarity index 63% rename from chromeos/dbus/oobe_config/fake_oobe_configuration_client.h rename to chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.h index 0a8ba9e..1313e621 100644 --- a/chromeos/dbus/oobe_config/fake_oobe_configuration_client.h +++ b/chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.h
@@ -2,17 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_ -#define CHROMEOS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_ +#define CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_ #include "base/component_export.h" -#include "chromeos/dbus/oobe_config/oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h" -namespace chromeos { +namespace ash { // A fake implementation of OobeConfigurationClient, provides configuration // specified via command-line flag. -class COMPONENT_EXPORT(CHROMEOS_DBUS_OOBE_CONFIG) FakeOobeConfigurationClient +class COMPONENT_EXPORT(ASH_DBUS_OOBE_CONFIG) FakeOobeConfigurationClient : public OobeConfigurationClient { public: FakeOobeConfigurationClient(); @@ -29,6 +29,6 @@ void CheckForOobeConfiguration(ConfigurationCallback callback) override; }; -} // namespace chromeos +} // namespace ash -#endif // CHROMEOS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_ +#endif // CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_FAKE_OOBE_CONFIGURATION_CLIENT_H_
diff --git a/chromeos/dbus/oobe_config/oobe_configuration_client.cc b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.cc similarity index 92% rename from chromeos/dbus/oobe_config/oobe_configuration_client.cc rename to chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.cc index bc2f081..24301e2 100644 --- a/chromeos/dbus/oobe_config/oobe_configuration_client.cc +++ b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.cc
@@ -2,21 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/dbus/oobe_config/oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h" #include <memory> #include "base/bind.h" #include "base/logging.h" -#include "chromeos/dbus/oobe_config/fake_oobe_configuration_client.h" -#include "chromeos/dbus/oobe_config/oobe_config.pb.h" +#include "chromeos/ash/components/dbus/oobe_config/fake_oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_config.pb.h" #include "dbus/bus.h" #include "dbus/message.h" #include "dbus/object_path.h" #include "dbus/object_proxy.h" #include "third_party/cros_system_api/dbus/service_constants.h" -namespace chromeos { +namespace ash { namespace { OobeConfigurationClient* g_instance = nullptr; @@ -124,4 +124,4 @@ g_instance = nullptr; } -} // namespace chromeos +} // namespace ash
diff --git a/chromeos/dbus/oobe_config/oobe_configuration_client.h b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h similarity index 82% rename from chromeos/dbus/oobe_config/oobe_configuration_client.h rename to chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h index 8e14934..91f0279 100644 --- a/chromeos/dbus/oobe_config/oobe_configuration_client.h +++ b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_ -#define CHROMEOS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_ +#define CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_ #include <string> @@ -11,13 +11,13 @@ #include "base/component_export.h" #include "chromeos/dbus/common/dbus_client.h" -namespace chromeos { +namespace ash { // Client for calling OobeConfiguration dbus service. The service provides // verified OOBE configuration, that allows to automate out-of-box experience. // This configuration comes either from the state before power wash, or from // USB stick during USB-based enrollment flow. -class COMPONENT_EXPORT(CHROMEOS_DBUS_OOBE_CONFIG) OobeConfigurationClient +class COMPONENT_EXPORT(ASH_DBUS_OOBE_CONFIG) OobeConfigurationClient : public DBusClient { public: using ConfigurationCallback = @@ -50,6 +50,6 @@ ~OobeConfigurationClient() override; }; -} // namespace chromeos +} // namespace ash -#endif // CHROMEOS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_ +#endif // CHROMEOS_ASH_COMPONENTS_DBUS_OOBE_CONFIG_OOBE_CONFIGURATION_CLIENT_H_
diff --git a/chromeos/dbus/oobe_config/oobe_configuration_client_unittest.cc b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client_unittest.cc similarity index 97% rename from chromeos/dbus/oobe_config/oobe_configuration_client_unittest.cc rename to chromeos/ash/components/dbus/oobe_config/oobe_configuration_client_unittest.cc index cef7506..214f7281 100644 --- a/chromeos/dbus/oobe_config/oobe_configuration_client_unittest.cc +++ b/chromeos/ash/components/dbus/oobe_config/oobe_configuration_client_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 "chromeos/dbus/oobe_config/oobe_configuration_client.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_configuration_client.h" #include <memory> #include <string> @@ -10,7 +10,7 @@ #include "base/bind.h" #include "base/run_loop.h" #include "base/test/task_environment.h" -#include "chromeos/dbus/oobe_config/oobe_config.pb.h" +#include "chromeos/ash/components/dbus/oobe_config/oobe_config.pb.h" #include "dbus/message.h" #include "dbus/mock_bus.h" #include "dbus/mock_object_proxy.h" @@ -23,7 +23,7 @@ using ::testing::Invoke; using ::testing::Return; -namespace chromeos { +namespace ash { namespace { @@ -202,4 +202,4 @@ base::RunLoop().RunUntilIdle(); } -} // namespace chromeos +} // namespace ash
diff --git a/chromeos/dbus/resourced/BUILD.gn b/chromeos/ash/components/dbus/resourced/BUILD.gn similarity index 77% rename from chromeos/dbus/resourced/BUILD.gn rename to chromeos/ash/components/dbus/resourced/BUILD.gn index 34b2d8d..19d12eb4 100644 --- a/chromeos/dbus/resourced/BUILD.gn +++ b/chromeos/ash/components/dbus/resourced/BUILD.gn
@@ -2,7 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(is_chromeos, "Non-Chrome-OS builds cannot depend on //chromeos") +import("//build/config/chromeos/ui_mode.gni") + +assert(is_chromeos_ash, "Non-Chrome-OS builds cannot depend on //chromeos/ash") component("resourced") { defines = [ "IS_RESOURCED_IMPL" ]
diff --git a/chromeos/dbus/resourced/OWNERS b/chromeos/ash/components/dbus/resourced/OWNERS similarity index 100% rename from chromeos/dbus/resourced/OWNERS rename to chromeos/ash/components/dbus/resourced/OWNERS
diff --git a/chromeos/dbus/resourced/fake_resourced_client.cc b/chromeos/ash/components/dbus/resourced/fake_resourced_client.cc similarity index 94% rename from chromeos/dbus/resourced/fake_resourced_client.cc rename to chromeos/ash/components/dbus/resourced/fake_resourced_client.cc index c00fe77..d760eb9 100644 --- a/chromeos/dbus/resourced/fake_resourced_client.cc +++ b/chromeos/ash/components/dbus/resourced/fake_resourced_client.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/dbus/resourced/fake_resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/fake_resourced_client.h" #include "base/bind.h" #include "base/threading/thread_task_runner_handle.h" -namespace chromeos { +namespace ash { FakeResourcedClient::FakeResourcedClient() = default; FakeResourcedClient::~FakeResourcedClient() = default; @@ -66,4 +66,4 @@ } } -} // namespace chromeos +} // namespace ash
diff --git a/chromeos/dbus/resourced/fake_resourced_client.h b/chromeos/ash/components/dbus/resourced/fake_resourced_client.h similarity index 86% rename from chromeos/dbus/resourced/fake_resourced_client.h rename to chromeos/ash/components/dbus/resourced/fake_resourced_client.h index 2a17082..882e463 100644 --- a/chromeos/dbus/resourced/fake_resourced_client.h +++ b/chromeos/ash/components/dbus/resourced/fake_resourced_client.h
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_ -#define CHROMEOS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_ +#define CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_ #include "base/component_export.h" #include "base/observer_list.h" -#include "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" -namespace chromeos { +namespace ash { class COMPONENT_EXPORT(RESOURCED) FakeResourcedClient : public ResourcedClient { public: @@ -70,6 +70,6 @@ base::ObserverList<ArcVmObserver> arcvm_observers_; }; -} // namespace chromeos +} // namespace ash -#endif // CHROMEOS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_ +#endif // CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_FAKE_RESOURCED_CLIENT_H_
diff --git a/chromeos/dbus/resourced/resourced_client.cc b/chromeos/ash/components/dbus/resourced/resourced_client.cc similarity index 98% rename from chromeos/dbus/resourced/resourced_client.cc rename to chromeos/ash/components/dbus/resourced/resourced_client.cc index ed76928..7768080b 100644 --- a/chromeos/dbus/resourced/resourced_client.cc +++ b/chromeos/ash/components/dbus/resourced/resourced_client.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 "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "base/check_op.h" #include "base/logging.h" @@ -11,13 +11,13 @@ #include "base/task/thread_pool.h" #include "base/threading/sequenced_task_runner_handle.h" #include "base/time/time.h" -#include "chromeos/dbus/resourced/fake_resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/fake_resourced_client.h" #include "dbus/bus.h" #include "dbus/message.h" #include "dbus/object_proxy.h" #include "third_party/cros_system_api/dbus/resource_manager/dbus-constants.h" -namespace chromeos { +namespace ash { namespace { // Resource manager D-Bus method calls are all simple operations and should @@ -337,4 +337,4 @@ return g_instance; } -} // namespace chromeos +} // namespace ash
diff --git a/chromeos/dbus/resourced/resourced_client.h b/chromeos/ash/components/dbus/resourced/resourced_client.h similarity index 92% rename from chromeos/dbus/resourced/resourced_client.h rename to chromeos/ash/components/dbus/resourced/resourced_client.h index 9bb4189..d2e2cf8 100644 --- a/chromeos/dbus/resourced/resourced_client.h +++ b/chromeos/ash/components/dbus/resourced/resourced_client.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_DBUS_RESOURCED_RESOURCED_CLIENT_H_ -#define CHROMEOS_DBUS_RESOURCED_RESOURCED_CLIENT_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_RESOURCED_CLIENT_H_ +#define CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_RESOURCED_CLIENT_H_ #include "base/component_export.h" #include "base/observer_list_types.h" @@ -15,7 +15,7 @@ class Bus; } -namespace chromeos { +namespace ash { // ResourcedClient is used to communicate with the org.chromium.ResourceManager // service. The browser uses the ResourceManager service to get resource usage @@ -124,11 +124,6 @@ virtual ~ResourcedClient(); }; -} // namespace chromeos - -// TODO(https://crbug.com/1164001): remove when moved to ash. -namespace ash { -using ::chromeos::ResourcedClient; } // namespace ash -#endif // CHROMEOS_DBUS_RESOURCED_RESOURCED_CLIENT_H_ +#endif // CHROMEOS_ASH_COMPONENTS_DBUS_RESOURCED_RESOURCED_CLIENT_H_
diff --git a/chromeos/ash/components/memory/BUILD.gn b/chromeos/ash/components/memory/BUILD.gn index b912e8c..d47bcb3 100644 --- a/chromeos/ash/components/memory/BUILD.gn +++ b/chromeos/ash/components/memory/BUILD.gn
@@ -12,9 +12,9 @@ defines = [ "IS_ASH_MEMORY_IMPL" ] deps = [ "//base", + "//chromeos/ash/components/dbus/resourced:resourced", "//chromeos/dbus", "//chromeos/dbus/constants", - "//chromeos/dbus/resourced:resourced", "//components/memory_pressure", "//crypto", "//services/resource_coordinator/public/cpp/memory_instrumentation",
diff --git a/chromeos/ash/components/memory/DEPS b/chromeos/ash/components/memory/DEPS index f7828b3..41911b1 100644 --- a/chromeos/ash/components/memory/DEPS +++ b/chromeos/ash/components/memory/DEPS
@@ -3,6 +3,7 @@ "+third_party/zlib/google", "+third_party/re2", "+services/resource_coordinator", + "+chromeos/ash/components/dbus/resourced", "+components/memory_pressure", "+content/public/child", ]
diff --git a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.cc b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.cc index a36922a3..8e24740 100644 --- a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.cc +++ b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.cc
@@ -36,7 +36,7 @@ DCHECK(g_system_evaluator == nullptr); g_system_evaluator = this; - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ResourcedClient* client = ResourcedClient::Get(); if (client) { client->AddObserver(this); } @@ -44,7 +44,7 @@ SystemMemoryPressureEvaluator::~SystemMemoryPressureEvaluator() { DCHECK(g_system_evaluator); - chromeos::ResourcedClient* client = chromeos::ResourcedClient::Get(); + ResourcedClient* client = ResourcedClient::Get(); if (client) { client->RemoveObserver(this); } @@ -61,16 +61,16 @@ } void SystemMemoryPressureEvaluator::OnMemoryPressure( - chromeos::ResourcedClient::PressureLevel level, + ResourcedClient::PressureLevel level, uint64_t reclaim_target_kb) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); base::MemoryPressureListener::MemoryPressureLevel listener_level; - if (level == chromeos::ResourcedClient::PressureLevel::CRITICAL) { + if (level == ResourcedClient::PressureLevel::CRITICAL) { listener_level = base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL; cached_reclaim_target_kb_.store(reclaim_target_kb); - } else if (level == chromeos::ResourcedClient::PressureLevel::MODERATE) { + } else if (level == ResourcedClient::PressureLevel::MODERATE) { listener_level = base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE; cached_reclaim_target_kb_.store(0);
diff --git a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.h b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.h index bafba1d6..7b36d07 100644 --- a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.h +++ b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator.h
@@ -8,7 +8,7 @@ #include "base/component_export.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" -#include "chromeos/dbus/resourced/resourced_client.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "components/memory_pressure/memory_pressure_voter.h" #include "components/memory_pressure/system_memory_pressure_evaluator.h" @@ -23,7 +23,7 @@ // action to reduce memory resources accordingly. class COMPONENT_EXPORT(ASH_MEMORY) SystemMemoryPressureEvaluator : public memory_pressure::SystemMemoryPressureEvaluator, - public chromeos::ResourcedClient::Observer { + public ResourcedClient::Observer { public: explicit SystemMemoryPressureEvaluator( std::unique_ptr<memory_pressure::MemoryPressureVoter> voter); @@ -46,7 +46,7 @@ std::unique_ptr<memory_pressure::MemoryPressureVoter> voter); // Implements ResourcedClient::Observer, protected for testing. - void OnMemoryPressure(chromeos::ResourcedClient::PressureLevel level, + void OnMemoryPressure(ResourcedClient::PressureLevel level, uint64_t reclaim_target_kb) override; private:
diff --git a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator_unittest.cc b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator_unittest.cc index 4e3060a..466463e 100644 --- a/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator_unittest.cc +++ b/chromeos/ash/components/memory/pressure/system_memory_pressure_evaluator_unittest.cc
@@ -20,13 +20,13 @@ #include "base/threading/thread_task_runner_handle.h" #include "testing/gtest/include/gtest/gtest.h" -using PressureLevel = chromeos::ResourcedClient::PressureLevel; - namespace ash { namespace memory { namespace { +using PressureLevel = ResourcedClient::PressureLevel; + // Processes PressureCallback calls by just storing the sequence of events so we // can validate that we received the expected pressure levels as the test runs. void PressureCallback(
diff --git a/chromeos/ash/components/memory/swap_configuration.cc b/chromeos/ash/components/memory/swap_configuration.cc index c940dc2..7846f12 100644 --- a/chromeos/ash/components/memory/swap_configuration.cc +++ b/chromeos/ash/components/memory/swap_configuration.cc
@@ -8,9 +8,9 @@ #include "base/component_export.h" #include "base/feature_list.h" #include "base/metrics/field_trial_params.h" +#include "chromeos/ash/components/dbus/resourced/resourced_client.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/debug_daemon/debug_daemon_client.h" -#include "chromeos/dbus/resourced/resourced_client.h" namespace ash { @@ -179,7 +179,7 @@ } void ConfigureResourcedPressureThreshold() { - if (!chromeos::ResourcedClient::Get()) { + if (!ResourcedClient::Get()) { return; } @@ -204,7 +204,7 @@ LOG(WARNING) << "Overriding memory thresholds with values " << (critical_bps / 100.0) << "% and " << (moderate_bps / 100.0) << "%"; - chromeos::ResourcedClient::Get()->SetMemoryMarginsBps( + ResourcedClient::Get()->SetMemoryMarginsBps( critical_bps, moderate_bps, base::BindOnce(&OnMemoryMarginsSet)); } }
diff --git a/chromeos/crosapi/mojom/launcher_search.mojom b/chromeos/crosapi/mojom/launcher_search.mojom index 0835af4..41528743 100644 --- a/chromeos/crosapi/mojom/launcher_search.mojom +++ b/chromeos/crosapi/mojom/launcher_search.mojom
@@ -36,7 +36,7 @@ }; // Struct represents search result. -// Next min ID: 19 +// Next min ID: 20 [Stable] struct SearchResult { // Type of the result. Used to distinguish between different types of result. @@ -76,6 +76,9 @@ // Favicon of the result. gfx.mojom.ImageSkia? favicon@8; + // The accessibility label to use for the second image line, if one exists. + [MinVersion=3] mojo_base.mojom.String16? description_a11y_label@19; + // The contents of the result. Used to display the result. mojo_base.mojom.String16? contents@9; // Text type of the contents, if any.
diff --git a/chromeos/dbus/BUILD.gn b/chromeos/dbus/BUILD.gn index c126a177..19839ab 100644 --- a/chromeos/dbus/BUILD.gn +++ b/chromeos/dbus/BUILD.gn
@@ -35,8 +35,6 @@ "//chromeos/dbus/gnubby", "//chromeos/dbus/image_burner", "//chromeos/dbus/image_loader", - "//chromeos/dbus/oobe_config", - "//chromeos/dbus/oobe_config:proto", "//chromeos/dbus/runtime_probe", "//chromeos/dbus/runtime_probe:proto", "//chromeos/dbus/util", @@ -87,7 +85,6 @@ "//chromeos/dbus/fwupd:test_support", "//chromeos/dbus/gnubby:unit_tests", "//chromeos/dbus/hermes:test_support", - "//chromeos/dbus/oobe_config:unit_tests", "//chromeos/dbus/power:power_manager_proto", "//chromeos/dbus/power:test_support", "//chromeos/dbus/shill:test_support",
diff --git a/components/exo/wayland/clients/explicit_synchronization.cc b/components/exo/wayland/clients/explicit_synchronization.cc index 9c54034..8640923 100644 --- a/components/exo/wayland/clients/explicit_synchronization.cc +++ b/components/exo/wayland/clients/explicit_synchronization.cc
@@ -18,6 +18,7 @@ #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkSurface.h" #include "third_party/skia/include/gpu/GrDirectContext.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gl/gl_bindings.h" namespace exo {
diff --git a/components/exo/wayland/zwp_text_input_manager.cc b/components/exo/wayland/zwp_text_input_manager.cc index 0d8cbb3..94a6594 100644 --- a/components/exo/wayland/zwp_text_input_manager.cc +++ b/components/exo/wayland/zwp_text_input_manager.cc
@@ -22,6 +22,7 @@ #include "ui/base/ime/utf_offset.h" #include "ui/base/wayland/wayland_server_input_types.h" #include "ui/events/event.h" +#include "ui/events/keycodes/dom/dom_code.h" #include "ui/events/keycodes/dom/keycode_converter.h" #include "ui/events/ozone/layout/xkb/xkb_modifier_converter.h" @@ -38,6 +39,21 @@ XKB_MOD_NAME_NUM, "Mod3", XKB_MOD_NAME_LOGO, "Mod5", }; +uint32_t keyCharToKeySym(char16_t keychar) { + // TODO(b/237461655): Lacros fails to handle key presses properly when the + // key character is not present in the keyboard layout. + if ((keychar >= 0x20 && keychar <= 0x7e) || + (keychar >= 0xa0 && keychar <= 0xff)) { + return keychar; + } + // The spec also requires event.GetCharacter() <= 0x10ffff but this is + // always true due to the type of event.GetCharacter(). + if (keychar >= 0x100) { + return keychar + 0x01000000; + } + // keysym 0 is used for unidentified events + return 0; +} //////////////////////////////////////////////////////////////////////////////// // text_input_v1 interface: @@ -138,10 +154,24 @@ } void SendKey(const ui::KeyEvent& event) override { - uint32_t keysym = xkb_tracker_->GetKeysym( - ui::KeycodeConverter::DomCodeToNativeKeycode(event.code())); - bool pressed = (event.type() == ui::ET_KEY_PRESSED); + uint32_t keysym = + event.code() != ui::DomCode::NONE + ? xkb_tracker_->GetKeysym( + ui::KeycodeConverter::DomCodeToNativeKeycode(event.code())) + : 0; + // Some artificial key events (e.g. from virtual keyboard) do not set code, + // so must be handled separately. + // https://www.x.org/releases/X11R7.6/doc/xproto/x11protocol.html#keysym_encoding + // suggests that we can just directly map some parts of unicode. + if (keysym == 0) { + keysym = keyCharToKeySym(event.GetCharacter()); + } + if (keysym == 0) { + VLOG(0) << "Unable to find keysym for: " << event.ToString(); + } + + bool pressed = (event.type() == ui::ET_KEY_PRESSED); zwp_text_input_v1_send_keysym( text_input_, TimeTicksToMilliseconds(event.time_stamp()), serial_tracker_->GetNextSerial(SerialTracker::EventType::OTHER_EVENT),
diff --git a/components/services/app_service/public/cpp/BUILD.gn b/components/services/app_service/public/cpp/BUILD.gn index 766a893f..d4eec1b3 100644 --- a/components/services/app_service/public/cpp/BUILD.gn +++ b/components/services/app_service/public/cpp/BUILD.gn
@@ -280,11 +280,14 @@ sources = [ "intent_test_util.cc", "intent_test_util.h", + "preferred_apps_test_util.cc", + "preferred_apps_test_util.h", ] deps = [ ":app_types", ":intents", + ":preferred_apps", "//components/services/app_service/public/mojom", ] }
diff --git a/components/services/app_service/public/cpp/app_launch_util.cc b/components/services/app_service/public/cpp/app_launch_util.cc index cc929fc7..2c9f9a8b 100644 --- a/components/services/app_service/public/cpp/app_launch_util.cc +++ b/components/services/app_service/public/cpp/app_launch_util.cc
@@ -6,6 +6,74 @@ namespace apps { -// TODO(crbug.com/1253250): Add function for the non mojom window info struct. +LaunchSource ConvertMojomLaunchSourceToLaunchSource( + apps::mojom::LaunchSource mojom_install_source) { + switch (mojom_install_source) { + case apps::mojom::LaunchSource::kUnknown: + return LaunchSource::kUnknown; + case apps::mojom::LaunchSource::kFromAppListGrid: + return LaunchSource::kFromAppListGrid; + case apps::mojom::LaunchSource::kFromAppListGridContextMenu: + return LaunchSource::kFromAppListGridContextMenu; + case apps::mojom::LaunchSource::kFromAppListQuery: + return LaunchSource::kFromAppListQuery; + case apps::mojom::LaunchSource::kFromAppListQueryContextMenu: + return LaunchSource::kFromAppListQueryContextMenu; + case apps::mojom::LaunchSource::kFromAppListRecommendation: + return LaunchSource::kFromAppListRecommendation; + case apps::mojom::LaunchSource::kFromParentalControls: + return LaunchSource::kFromParentalControls; + case apps::mojom::LaunchSource::kFromShelf: + return LaunchSource::kFromShelf; + case apps::mojom::LaunchSource::kFromFileManager: + return LaunchSource::kFromFileManager; + case apps::mojom::LaunchSource::kFromLink: + return LaunchSource::kFromLink; + case apps::mojom::LaunchSource::kFromOmnibox: + return LaunchSource::kFromOmnibox; + case apps::mojom::LaunchSource::kFromChromeInternal: + return LaunchSource::kFromChromeInternal; + case apps::mojom::LaunchSource::kFromKeyboard: + return LaunchSource::kFromKeyboard; + case apps::mojom::LaunchSource::kFromOtherApp: + return LaunchSource::kFromOtherApp; + case apps::mojom::LaunchSource::kFromMenu: + return LaunchSource::kFromMenu; + case apps::mojom::LaunchSource::kFromInstalledNotification: + return LaunchSource::kFromInstalledNotification; + case apps::mojom::LaunchSource::kFromTest: + return LaunchSource::kFromTest; + case apps::mojom::LaunchSource::kFromArc: + return LaunchSource::kFromArc; + case apps::mojom::LaunchSource::kFromSharesheet: + return LaunchSource::kFromSharesheet; + case apps::mojom::LaunchSource::kFromReleaseNotesNotification: + return LaunchSource::kFromReleaseNotesNotification; + case apps::mojom::LaunchSource::kFromFullRestore: + return LaunchSource::kFromFullRestore; + case apps::mojom::LaunchSource::kFromSmartTextContextMenu: + return LaunchSource::kFromSmartTextContextMenu; + case apps::mojom::LaunchSource::kFromDiscoverTabNotification: + return LaunchSource::kFromDiscoverTabNotification; + case apps::mojom::LaunchSource::kFromManagementApi: + return LaunchSource::kFromManagementApi; + case apps::mojom::LaunchSource::kFromKiosk: + return LaunchSource::kFromKiosk; + case apps::mojom::LaunchSource::kFromCommandLine: + return LaunchSource::kFromCommandLine; + case apps::mojom::LaunchSource::kFromBackgroundMode: + return LaunchSource::kFromBackgroundMode; + case apps::mojom::LaunchSource::kFromNewTabPage: + return LaunchSource::kFromNewTabPage; + case apps::mojom::LaunchSource::kFromIntentUrl: + return LaunchSource::kFromIntentUrl; + case apps::mojom::LaunchSource::kFromOsLogin: + return LaunchSource::kFromOsLogin; + case apps::mojom::LaunchSource::kFromProtocolHandler: + return LaunchSource::kFromProtocolHandler; + case apps::mojom::LaunchSource::kFromUrlHandler: + return LaunchSource::kFromUrlHandler; + } +} } // namespace apps
diff --git a/components/services/app_service/public/cpp/app_launch_util.h b/components/services/app_service/public/cpp/app_launch_util.h index eb9fe7b..e5389fa 100644 --- a/components/services/app_service/public/cpp/app_launch_util.h +++ b/components/services/app_service/public/cpp/app_launch_util.h
@@ -9,6 +9,53 @@ namespace apps { +// Enumeration of possible app launch sources. +// This should be kept in sync with metadata/apps/histograms.xml, and +// LaunchSource in enums.xml. +// Note the enumeration is used in UMA histogram so entries should not be +// re-ordered or removed. New entries should be added at the bottom. +enum class LaunchSource { + kUnknown = 0, + kFromAppListGrid = 1, // Grid of apps, not the search box. + kFromAppListGridContextMenu = 2, // Grid of apps; context menu. + kFromAppListQuery = 3, // Query-dependent results (larger icons). + kFromAppListQueryContextMenu = 4, // Query-dependent results; context menu. + kFromAppListRecommendation = 5, // Query-less recommendations (smaller + // icons). + kFromParentalControls = 6, // Parental Controls Settings Section and + // Per App time notification. + kFromShelf = 7, // Shelf. + kFromFileManager = 8, // FileManager. + kFromLink = 9, // Left-clicking on links in the browser. + kFromOmnibox = 10, // Enter URL in the Omnibox in the + // browser. + kFromChromeInternal = 11, // Chrome internal call. + kFromKeyboard = 12, // Keyboard shortcut for opening app. + kFromOtherApp = 13, // Clicking link in another app or webui. + kFromMenu = 14, // Menu. + kFromInstalledNotification = 15, // Installed notification + kFromTest = 16, // Test + kFromArc = 17, // Arc. + kFromSharesheet = 18, // Sharesheet. + kFromReleaseNotesNotification = 19, // Release Notes Notification. + kFromFullRestore = 20, // Full restore. + kFromSmartTextContextMenu = 21, // Smart text selection context menu. + kFromDiscoverTabNotification = 22, // Discover Tab Notification. + kFromManagementApi = 23, // Management API. + kFromKiosk = 24, // Kiosk. + kFromCommandLine = 25, // Command line. + kFromBackgroundMode = 26, // Background mode. + kFromNewTabPage = 27, // New tab page. + kFromIntentUrl = 28, // Intent URL. + kFromOsLogin = 29, // Run on OS login. + kFromProtocolHandler = 30, // Protocol handler. + kFromUrlHandler = 31, // Url handler. + + // Add any new values above this one, and update kMaxValue to the highest + // enumerator value. + kMaxValue = kFromUrlHandler, +}; + // Don't remove items or change the order of this enum. It's used in // histograms and preferences. enum class LaunchContainer { @@ -24,6 +71,12 @@ kMaxValue = kLaunchContainerNone, }; +// TODO(crbug.com/1253250): Remove these functions after migrating to non-mojo +// AppService. +COMPONENT_EXPORT(APP_TYPES) +LaunchSource ConvertMojomLaunchSourceToLaunchSource( + apps::mojom::LaunchSource mojom_launch_source); + } // namespace apps #endif // COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_APP_LAUNCH_UTIL_H_
diff --git a/components/services/app_service/public/cpp/preferred_apps_test_util.cc b/components/services/app_service/public/cpp/preferred_apps_test_util.cc new file mode 100644 index 0000000..485977d --- /dev/null +++ b/components/services/app_service/public/cpp/preferred_apps_test_util.cc
@@ -0,0 +1,38 @@ +// Copyright 2022 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. + +#include "components/services/app_service/public/cpp/preferred_apps_test_util.h" + +#include "base/run_loop.h" + +namespace apps_util { + +PreferredAppUpdateWaiter::PreferredAppUpdateWaiter( + apps::PreferredAppsListHandle& handle) { + observation_.Observe(&handle); +} + +PreferredAppUpdateWaiter::~PreferredAppUpdateWaiter() = default; + +void PreferredAppUpdateWaiter::WaitForPreferredAppUpdate( + const std::string& app_id) { + waiting_app_id_ = app_id; + run_loop_ = std::make_unique<base::RunLoop>(); + run_loop_->Run(); +} + +// apps::PreferredAppsListHandle::Observer: +void PreferredAppUpdateWaiter::OnPreferredAppChanged(const std::string& app_id, + bool is_preferred_app) { + if (run_loop_ && run_loop_->running() && app_id == waiting_app_id_) { + run_loop_->Quit(); + } +} + +void PreferredAppUpdateWaiter::OnPreferredAppsListWillBeDestroyed( + apps::PreferredAppsListHandle* handle) { + observation_.Reset(); +} + +} // namespace apps_util
diff --git a/components/services/app_service/public/cpp/preferred_apps_test_util.h b/components/services/app_service/public/cpp/preferred_apps_test_util.h new file mode 100644 index 0000000..6c6d0b3 --- /dev/null +++ b/components/services/app_service/public/cpp/preferred_apps_test_util.h
@@ -0,0 +1,48 @@ +// Copyright 2022 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. + +#ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PREFERRED_APPS_TEST_UTIL_H_ +#define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PREFERRED_APPS_TEST_UTIL_H_ + +#include <memory> +#include <string> + +#include "base/scoped_observation.h" +#include "components/services/app_service/public/cpp/preferred_apps_list_handle.h" + +namespace base { +class RunLoop; +} + +namespace apps_util { + +// Utility to wait for a change in preferred apps settings to be reflected in a +// PreferredAppsList. This is useful for Lacros Crosapi tests where the +// preferred apps settings need to be synchronized between processes. +class PreferredAppUpdateWaiter + : public apps::PreferredAppsListHandle::Observer { + public: + explicit PreferredAppUpdateWaiter(apps::PreferredAppsListHandle& handle); + ~PreferredAppUpdateWaiter() override; + + void WaitForPreferredAppUpdate(const std::string& app_id); + + // apps::PreferredAppsListHandle::Observer: + void OnPreferredAppChanged(const std::string& app_id, + bool is_preferred_app) override; + void OnPreferredAppsListWillBeDestroyed( + apps::PreferredAppsListHandle* handle) override; + + private: + std::unique_ptr<base::RunLoop> run_loop_; + std::string waiting_app_id_; + + base::ScopedObservation<apps::PreferredAppsListHandle, + apps::PreferredAppsListHandle::Observer> + observation_{this}; +}; + +} // namespace apps_util + +#endif // COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PREFERRED_APPS_TEST_UTIL_H_
diff --git a/components/services/app_service/public/cpp/types_util.cc b/components/services/app_service/public/cpp/types_util.cc index 405251df..14ec633 100644 --- a/components/services/app_service/public/cpp/types_util.cc +++ b/components/services/app_service/public/cpp/types_util.cc
@@ -38,41 +38,41 @@ } } -bool IsHumanLaunch(apps::mojom::LaunchSource launch_source) { +bool IsHumanLaunch(apps::LaunchSource launch_source) { switch (launch_source) { - case apps::mojom::LaunchSource::kFromAppListGrid: - case apps::mojom::LaunchSource::kFromAppListGridContextMenu: - case apps::mojom::LaunchSource::kFromAppListQuery: - case apps::mojom::LaunchSource::kFromAppListQueryContextMenu: - case apps::mojom::LaunchSource::kFromAppListRecommendation: - case apps::mojom::LaunchSource::kFromParentalControls: - case apps::mojom::LaunchSource::kFromShelf: - case apps::mojom::LaunchSource::kFromFileManager: - case apps::mojom::LaunchSource::kFromLink: - case apps::mojom::LaunchSource::kFromOmnibox: - case apps::mojom::LaunchSource::kFromKeyboard: - case apps::mojom::LaunchSource::kFromOtherApp: - case apps::mojom::LaunchSource::kFromMenu: - case apps::mojom::LaunchSource::kFromInstalledNotification: - case apps::mojom::LaunchSource::kFromSharesheet: - case apps::mojom::LaunchSource::kFromReleaseNotesNotification: - case apps::mojom::LaunchSource::kFromFullRestore: - case apps::mojom::LaunchSource::kFromSmartTextContextMenu: - case apps::mojom::LaunchSource::kFromDiscoverTabNotification: - case apps::mojom::LaunchSource::kFromCommandLine: + case apps::LaunchSource::kFromAppListGrid: + case apps::LaunchSource::kFromAppListGridContextMenu: + case apps::LaunchSource::kFromAppListQuery: + case apps::LaunchSource::kFromAppListQueryContextMenu: + case apps::LaunchSource::kFromAppListRecommendation: + case apps::LaunchSource::kFromParentalControls: + case apps::LaunchSource::kFromShelf: + case apps::LaunchSource::kFromFileManager: + case apps::LaunchSource::kFromLink: + case apps::LaunchSource::kFromOmnibox: + case apps::LaunchSource::kFromKeyboard: + case apps::LaunchSource::kFromOtherApp: + case apps::LaunchSource::kFromMenu: + case apps::LaunchSource::kFromInstalledNotification: + case apps::LaunchSource::kFromSharesheet: + case apps::LaunchSource::kFromReleaseNotesNotification: + case apps::LaunchSource::kFromFullRestore: + case apps::LaunchSource::kFromSmartTextContextMenu: + case apps::LaunchSource::kFromDiscoverTabNotification: + case apps::LaunchSource::kFromCommandLine: return true; - case apps::mojom::LaunchSource::kUnknown: - case apps::mojom::LaunchSource::kFromChromeInternal: - case apps::mojom::LaunchSource::kFromTest: - case apps::mojom::LaunchSource::kFromArc: - case apps::mojom::LaunchSource::kFromManagementApi: - case apps::mojom::LaunchSource::kFromKiosk: - case apps::mojom::LaunchSource::kFromBackgroundMode: - case apps::mojom::LaunchSource::kFromNewTabPage: - case apps::mojom::LaunchSource::kFromIntentUrl: - case apps::mojom::LaunchSource::kFromOsLogin: - case apps::mojom::LaunchSource::kFromProtocolHandler: - case apps::mojom::LaunchSource::kFromUrlHandler: + case apps::LaunchSource::kUnknown: + case apps::LaunchSource::kFromChromeInternal: + case apps::LaunchSource::kFromTest: + case apps::LaunchSource::kFromArc: + case apps::LaunchSource::kFromManagementApi: + case apps::LaunchSource::kFromKiosk: + case apps::LaunchSource::kFromBackgroundMode: + case apps::LaunchSource::kFromNewTabPage: + case apps::LaunchSource::kFromIntentUrl: + case apps::LaunchSource::kFromOsLogin: + case apps::LaunchSource::kFromProtocolHandler: + case apps::LaunchSource::kFromUrlHandler: return false; } NOTREACHED();
diff --git a/components/services/app_service/public/cpp/types_util.h b/components/services/app_service/public/cpp/types_util.h index 32b465b..6f75613 100644 --- a/components/services/app_service/public/cpp/types_util.h +++ b/components/services/app_service/public/cpp/types_util.h
@@ -7,6 +7,7 @@ // Utility functions for App Service types. +#include "components/services/app_service/public/cpp/app_launch_util.h" #include "components/services/app_service/public/cpp/app_types.h" #include "components/services/app_service/public/mojom/types.mojom.h" @@ -14,7 +15,7 @@ bool IsInstalled(apps::mojom::Readiness readiness); bool IsInstalled(apps::Readiness readiness); -bool IsHumanLaunch(apps::mojom::LaunchSource launch_source); +bool IsHumanLaunch(apps::LaunchSource launch_source); // Checks if an app of |app_type| runs in Browser/WebContents (web apps, hosted // apps, and packaged v1 apps).
diff --git a/components/services/app_service/public/mojom/types.mojom b/components/services/app_service/public/mojom/types.mojom index dd01e0e..e76f0de 100644 --- a/components/services/app_service/public/mojom/types.mojom +++ b/components/services/app_service/public/mojom/types.mojom
@@ -255,6 +255,8 @@ // LaunchSource in enums.xml. // Note the enumeration is used in UMA histogram so entries should not be // re-ordered or removed. New entries should be added at the bottom. +// DEPRECATED. When adding new fields, please use the App struct in +// components/services/app_service/public/cpp/app_launch_util.h. enum LaunchSource { kUnknown = 0, kFromAppListGrid = 1, // Grid of apps, not the search box.
diff --git a/components/viz/service/display_embedder/image_context_impl.cc b/components/viz/service/display_embedder/image_context_impl.cc index f214a58..6c5e61a1 100644 --- a/components/viz/service/display_embedder/image_context_impl.cc +++ b/components/viz/service/display_embedder/image_context_impl.cc
@@ -17,6 +17,7 @@ #include "third_party/skia/include/core/SkImageInfo.h" #include "third_party/skia/include/core/SkPromiseImageTexture.h" #include "third_party/skia/include/gpu/GrContextThreadSafeProxy.h" +#include "ui/gl/gl_image.h" namespace viz {
diff --git a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc index fab5f5c1..b0b5e03 100644 --- a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc +++ b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
@@ -36,6 +36,7 @@ #include "ui/gfx/gpu_fence_handle.h" #include "ui/gfx/swap_result.h" #include "ui/gl/gl_fence.h" +#include "ui/gl/gl_image.h" #include "ui/gl/gl_surface.h" namespace {
diff --git a/components/viz/service/display_embedder/skia_output_device_gl.cc b/components/viz/service/display_embedder/skia_output_device_gl.cc index 3f63127..142f75d 100644 --- a/components/viz/service/display_embedder/skia_output_device_gl.cc +++ b/components/viz/service/display_embedder/skia_output_device_gl.cc
@@ -33,6 +33,7 @@ #include "ui/gl/dc_renderer_layer_params.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" +#include "ui/gl/gl_image.h" #include "ui/gl/gl_surface.h" #include "ui/gl/gl_utils.h" #include "ui/gl/gl_version_info.h"
diff --git a/content/browser/generic_sensor/sensor_provider_proxy_impl.cc b/content/browser/generic_sensor/sensor_provider_proxy_impl.cc index e71223c..1bb63450 100644 --- a/content/browser/generic_sensor/sensor_provider_proxy_impl.cc +++ b/content/browser/generic_sensor/sensor_provider_proxy_impl.cc
@@ -37,7 +37,7 @@ SensorProviderProxyImpl::SensorProviderProxyImpl( RenderFrameHost* render_frame_host) - : render_frame_host_(render_frame_host) { + : DocumentUserData<SensorProviderProxyImpl>(render_frame_host) { DCHECK(render_frame_host); } @@ -73,10 +73,11 @@ GetDeviceService().BindSensorProvider(std::move(receiver)); } - render_frame_host_->GetBrowserContext() + render_frame_host() + .GetBrowserContext() ->GetPermissionController() ->RequestPermissionFromCurrentDocument( - blink::PermissionType::SENSORS, render_frame_host_, false, + blink::PermissionType::SENSORS, &render_frame_host(), false, base::BindOnce(&SensorProviderProxyImpl::OnPermissionRequestCompleted, weak_factory_.GetWeakPtr(), type, std::move(callback))); @@ -102,7 +103,7 @@ case SensorType::RELATIVE_ORIENTATION_QUATERNION: break; default: - static_cast<RenderFrameHostImpl*>(render_frame_host_) + static_cast<RenderFrameHostImpl*>(&render_frame_host()) ->OnBackForwardCacheDisablingStickyFeatureUsed( blink::scheduler::WebSchedulerTrackedFeature:: kRequestedBackForwardCacheBlockedSensors); @@ -147,7 +148,7 @@ SensorTypeToPermissionsPolicyFeatures(type); return std::all_of(features.begin(), features.end(), [this](blink::mojom::PermissionsPolicyFeature feature) { - return render_frame_host_->IsFeatureEnabled(feature); + return render_frame_host().IsFeatureEnabled(feature); }); } @@ -158,4 +159,6 @@ sensor_provider_.reset(); } +DOCUMENT_USER_DATA_KEY_IMPL(SensorProviderProxyImpl); + } // namespace content
diff --git a/content/browser/generic_sensor/sensor_provider_proxy_impl.h b/content/browser/generic_sensor/sensor_provider_proxy_impl.h index 754af043..a2745f6 100644 --- a/content/browser/generic_sensor/sensor_provider_proxy_impl.h +++ b/content/browser/generic_sensor/sensor_provider_proxy_impl.h
@@ -5,9 +5,9 @@ #ifndef CONTENT_BROWSER_GENERIC_SENSOR_SENSOR_PROVIDER_PROXY_IMPL_H_ #define CONTENT_BROWSER_GENERIC_SENSOR_SENSOR_PROVIDER_PROXY_IMPL_H_ -#include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "content/common/content_export.h" +#include "content/public/browser/document_user_data.h" #include "content/public/browser/web_contents_observer.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" @@ -22,10 +22,10 @@ // This proxy acts as a gatekeeper to the real sensor provider so that this // proxy can intercept sensor requests and allow or deny them based on // the permission statuses retrieved from a permission controller. -class SensorProviderProxyImpl final : public device::mojom::SensorProvider { +class SensorProviderProxyImpl final + : public device::mojom::SensorProvider, + public DocumentUserData<SensorProviderProxyImpl> { public: - explicit SensorProviderProxyImpl(RenderFrameHost* render_frame_host); - SensorProviderProxyImpl(const SensorProviderProxyImpl&) = delete; SensorProviderProxyImpl& operator=(const SensorProviderProxyImpl&) = delete; @@ -41,6 +41,8 @@ SensorProviderBinder binder); private: + explicit SensorProviderProxyImpl(RenderFrameHost* render_frame_host); + // SensorProvider implementation. void GetSensor(device::mojom::SensorType type, GetSensorCallback callback) override; @@ -56,10 +58,11 @@ // invalidated before being discarded. mojo::Remote<device::mojom::SensorProvider> sensor_provider_; mojo::ReceiverSet<device::mojom::SensorProvider> receiver_set_; - // Note: |render_frame_host_| owns |this| instance. - const raw_ptr<RenderFrameHost> render_frame_host_; base::WeakPtrFactory<SensorProviderProxyImpl> weak_factory_{this}; + + friend DocumentUserData; + DOCUMENT_USER_DATA_KEY_DECL(); }; } // namespace content
diff --git a/content/browser/renderer_host/browser_compositor_view_mac.h b/content/browser/renderer_host/browser_compositor_view_mac.h index 8042c66..b216a48 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.h +++ b/content/browser/renderer_host/browser_compositor_view_mac.h
@@ -15,7 +15,6 @@ #include "components/viz/common/surfaces/scoped_surface_id_allocator.h" #include "content/browser/renderer_host/delegated_frame_host.h" #include "content/common/content_export.h" -#include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom-forward.h" #include "ui/compositor/compositor.h" #include "ui/compositor/compositor_observer.h" #include "ui/compositor/layer_observer.h" @@ -111,13 +110,6 @@ const viz::LocalSurfaceId& GetRendererLocalSurfaceId(); void TransformPointToRootSurface(gfx::PointF* point); - // Sends `visible_time_request` to the DelegatedFrameHost. Use this instead of - // passing the request directly to DelegatedFrameHost::WasShown or - // DelegatedFrameHost::RequestPresentationTimeForNextFrame because it will - // record the right metrics for the UseParentLayerCompositor state. - void RequestPresentationTimeForNextFrame( - blink::mojom::RecordContentToVisibleTimeRequestPtr visible_time_request); - // Indicate that the recyclable compositor should be destroyed, and no future // compositors should be recycled. static void DisableRecyclingForShutdown();
diff --git a/content/browser/renderer_host/browser_compositor_view_mac.mm b/content/browser/renderer_host/browser_compositor_view_mac.mm index 3c459969..6effccf4 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.mm +++ b/content/browser/renderer_host/browser_compositor_view_mac.mm
@@ -20,7 +20,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/context_factory.h" #include "third_party/abseil-cpp/absl/types/optional.h" -#include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom.h" #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" #include "ui/base/layout.h" @@ -267,10 +266,6 @@ parent_ui_layer_->Add(root_layer_.get()); parent_ui_layer_->AddObserver(this); state_ = UseParentLayerCompositor; - - // Any ongoing presentation time request can no longer be handled because - // the parent layer compositor won't present a frame that can be measured. - delegated_frame_host_->UnhandledPresentationTimeRequest(); } if (new_state == HasOwnCompositor) { recyclable_compositor_ = @@ -293,18 +288,6 @@ {} /* record_tab_switch_time_request */); } -void BrowserCompositorMac::RequestPresentationTimeForNextFrame( - blink::mojom::RecordContentToVisibleTimeRequestPtr visible_time_request) { - DCHECK(visible_time_request); - delegated_frame_host_->RequestPresentationTimeForNextFrame( - std::move(visible_time_request)); - if (state_ == UseParentLayerCompositor) { - // Immediately cancel the request since the parent layer compositor won't - // present a frame that can be measured. - delegated_frame_host_->UnhandledPresentationTimeRequest(); - } -} - // static void BrowserCompositorMac::DisableRecyclingForShutdown() { // Ensure that the client has destroyed its BrowserCompositorViewMac before
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc index c3423ea..95b7b86e 100644 --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -124,12 +124,6 @@ tab_switch_time_recorder_.TabWasHidden(); } -void DelegatedFrameHost::UnhandledPresentationTimeRequest() { - // Tab was hidden while widget keeps painting, eg. due to being captured. - tab_switch_time_recorder_.TabMeasurementWasInterrupted( - blink::ContentToVisibleTimeReporter::TabSwitchResult::kUnhandled); -} - bool DelegatedFrameHost::HasSavedFrame() const { return frame_evictor_->has_surface(); }
diff --git a/content/browser/renderer_host/delegated_frame_host.h b/content/browser/renderer_host/delegated_frame_host.h index 517d89a..403ce1dc 100644 --- a/content/browser/renderer_host/delegated_frame_host.h +++ b/content/browser/renderer_host/delegated_frame_host.h
@@ -127,9 +127,6 @@ blink::mojom::RecordContentToVisibleTimeRequestPtr visible_time_request); void CancelPresentationTimeRequest(); - // Cancel a presentation time request using the kUnhandled result code. - void UnhandledPresentationTimeRequest(); - void EmbedSurface(const viz::LocalSurfaceId& local_surface_id, const gfx::Size& dip_size, cc::DeadlinePolicy deadline_policy);
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 61c4302..4477e52 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -4447,9 +4447,13 @@ // tricky to support because the NavigationRequest would change its // NavigationController in the course of the activation, and while that may be // safe for a normal navigation, it has more implications for a history - // navigation. Fortunately, for prerendering, we do not expect there to be any - // ongoing history navigations in a subframe, because we maintain a trivial - // session history, so check that nav_entry_id() is 0 here. + // navigation as it already has an associated NavigationEntry and we do not + // transfer pending NavigationEntries during activation. Fortunately, for + // prerendering, we do not expect there to be any ongoing history navigations + // in a subframe, because we maintain a trivial session history, so check that + // nav_entry_id() is 0 here. Reloading subframes are considered + // renderer-initiated navigations and do not create a new navigation entry + // when NavigationRequest is created. // // Note that due to PrerenderCommitDeferringCondition, the main frame should // have no ongoing NavigationRequest at all, so it is not checked here. @@ -9253,10 +9257,9 @@ } void RenderFrameHostImpl::TearDownMojoConnection() { - // While not directly Mojo endpoints, both `geolocation_service_` and - // `sensor_provider_proxy_` may attempt to cancel permission requests. + // While not directly a Mojo endpoint, |geolocation_service_| may attempt to + // cancel permission requests. geolocation_service_.reset(); - sensor_provider_proxy_.reset(); associated_registry_.reset(); @@ -10499,10 +10502,8 @@ void RenderFrameHostImpl::GetSensorProvider( mojo::PendingReceiver<device::mojom::SensorProvider> receiver) { - if (!sensor_provider_proxy_) { - sensor_provider_proxy_ = std::make_unique<SensorProviderProxyImpl>(this); - } - sensor_provider_proxy_->Bind(std::move(receiver)); + SensorProviderProxyImpl::GetOrCreateForCurrentDocument(this)->Bind( + std::move(receiver)); } void RenderFrameHostImpl::BindCacheStorage(
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h index a88f4da..cf1ebb2e 100644 --- a/content/browser/renderer_host/render_frame_host_impl.h +++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -239,7 +239,6 @@ class RenderViewHostImpl; class RenderWidgetHostView; class RenderWidgetHostViewBase; -class SensorProviderProxyImpl; class ServiceWorkerContainerHost; class SiteInfo; class SpeechSynthesisImpl; @@ -3652,9 +3651,6 @@ // IdleManager which provides Idle status. std::unique_ptr<IdleManagerImpl> idle_manager_; - // SensorProvider proxy which acts as a gatekeeper to the real SensorProvider. - std::unique_ptr<SensorProviderProxyImpl> sensor_provider_proxy_; - std::unique_ptr<blink::AssociatedInterfaceRegistry> associated_registry_; std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces_;
diff --git a/content/browser/renderer_host/render_widget_host_view_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_browsertest.cc index 32e30b4..89c2381 100644 --- a/content/browser/renderer_host/render_widget_host_view_browsertest.cc +++ b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
@@ -1226,22 +1226,6 @@ BrowserCompositorMac* GetBrowserCompositor() const { return GetBrowserCompositorMacForTesting(GetRenderWidgetHostView()); } - - // Waits for presentation feedback, then expects that it includes a specific - // WithSavedFrame result value. - void WaitForUnhandledSavedFrameFeedback() { - ASSERT_TRUE(WaitForPresentationFeedback( - HistogramToExpect::kTotalIncompleteSwitchDuration)); - // If ExpectUniqueSample fails, include all related histograms for easier - // debugging. - SCOPED_TRACE(::testing::Message() - << "All histograms: " - << PrintToString(histogram_tester_.GetTotalCountsForPrefix( - "Browser.Tabs."))); - histogram_tester_.ExpectUniqueSample( - "Browser.Tabs.TabSwitchResult2.WithSavedFrames", - blink::ContentToVisibleTimeReporter::TabSwitchResult::kUnhandled, 1); - } #endif base::test::ScopedFeatureList features_; @@ -1343,38 +1327,46 @@ // The default tests do not set a parent UI layer, so the BrowserCompositorMac // state is always HasNoCompositor when the RWHV is hidden, or HasOwnCompositor // when the RWHV is visible. These tests add a parent layer to make sure that -// presentation feedback is logged as Unhandled when the state is -// UseParentLayerCompositor, instead of being silently dropped. +// presentation feedback is logged when the state is UseParentLayerCompositor. + +// TODO(https://crbug.com/1164477): These tests don't match the behaviour of the +// browser. In production the kTotalSwitchDuration histograms are logged but in +// this test, the presentation time request is swallowed during the +// UseParentLayerCompositor state. Need to find out what's wrong with the test +// setup. IN_PROC_BROWSER_TEST_P( RenderWidgetHostViewPresentationFeedbackMetrics2BrowserTest, - ShowWithParentLayer) { + DISABLED_ShowWithParentLayer) { ASSERT_TRUE(CreateVisibleTimeRequest()); ScopedParentLayer parent_layer(GetBrowserCompositor()); GetBrowserCompositor()->SetParentUiLayer(parent_layer.layer()); GetRenderWidgetHostView()->ShowWithVisibility(PageVisibilityState::kVisible); - WaitForUnhandledSavedFrameFeedback(); + EXPECT_TRUE( + WaitForPresentationFeedback(HistogramToExpect::kTotalSwitchDuration)); } IN_PROC_BROWSER_TEST_P( RenderWidgetHostViewPresentationFeedbackMetrics2BrowserTest, - ShowThenAddParentLayer) { + DISABLED_ShowThenAddParentLayer) { ASSERT_TRUE(CreateVisibleTimeRequest()); GetRenderWidgetHostView()->ShowWithVisibility(PageVisibilityState::kVisible); ScopedParentLayer parent_layer(GetBrowserCompositor()); GetBrowserCompositor()->SetParentUiLayer(parent_layer.layer()); - WaitForUnhandledSavedFrameFeedback(); + EXPECT_TRUE( + WaitForPresentationFeedback(HistogramToExpect::kTotalSwitchDuration)); } IN_PROC_BROWSER_TEST_P( RenderWidgetHostViewPresentationFeedbackMetrics2BrowserTest, - ShowThenRemoveParentLayer) { + DISABLED_ShowThenRemoveParentLayer) { ASSERT_TRUE(CreateVisibleTimeRequest()); ScopedParentLayer parent_layer(GetBrowserCompositor()); GetBrowserCompositor()->SetParentUiLayer(parent_layer.layer()); GetRenderWidgetHostView()->ShowWithVisibility(PageVisibilityState::kVisible); GetBrowserCompositor()->SetParentUiLayer(nullptr); - WaitForUnhandledSavedFrameFeedback(); + EXPECT_TRUE( + WaitForPresentationFeedback(HistogramToExpect::kTotalSwitchDuration)); } #endif // BUILDFLAG(IS_MAC)
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index c3aff789..fdb0e82 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -473,9 +473,12 @@ // If the frame for the renderer is already available, then the // tab-switching time is the presentation time for the browser-compositor. + // SetRenderWidgetHostIsHidden above will show the DelegatedFrameHost + // in this state, but doesn't include the presentation time request. if (has_saved_frame && tab_switch_start_state) { - browser_compositor_->RequestPresentationTimeForNextFrame( - std::move(tab_switch_start_state)); + browser_compositor_->GetDelegatedFrameHost() + ->RequestPresentationTimeForNextFrame( + std::move(tab_switch_start_state)); } } @@ -489,8 +492,8 @@ if (browser_compositor_->GetDelegatedFrameHost()->HasSavedFrame()) { // If the frame for the renderer is already available, then the // tab-switching time is the presentation time for the browser-compositor. - browser_compositor_->RequestPresentationTimeForNextFrame( - std::move(visible_time_request)); + browser_compositor_->GetDelegatedFrameHost() + ->RequestPresentationTimeForNextFrame(std::move(visible_time_request)); } else { host()->RequestPresentationTimeForNextFrame( std::move(visible_time_request));
diff --git a/gpu/command_buffer/service/shared_image_representation_dawn_egl_image.cc b/gpu/command_buffer/service/shared_image_representation_dawn_egl_image.cc index 698543ee..9b5e691 100644 --- a/gpu/command_buffer/service/shared_image_representation_dawn_egl_image.cc +++ b/gpu/command_buffer/service/shared_image_representation_dawn_egl_image.cc
@@ -7,6 +7,7 @@ #include "build/build_config.h" #include "components/viz/common/resources/resource_format_utils.h" #include "gpu/command_buffer/service/texture_manager.h" +#include "ui/gl/gl_image.h" #include <dawn/native/OpenGLBackend.h>
diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc index b20b875..f9869c4 100644 --- a/gpu/command_buffer/service/texture_manager.cc +++ b/gpu/command_buffer/service/texture_manager.cc
@@ -30,6 +30,7 @@ #include "gpu/command_buffer/service/service_discardable_manager.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_enums.h" +#include "ui/gl/gl_image.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_state_restorer.h" #include "ui/gl/gl_version_info.h"
diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h index c78c914c..9c64c78c 100644 --- a/gpu/command_buffer/service/texture_manager.h +++ b/gpu/command_buffer/service/texture_manager.h
@@ -28,9 +28,9 @@ #include "gpu/command_buffer/service/texture_base.h" #include "gpu/gpu_gles2_export.h" #include "ui/gfx/geometry/rect.h" -#include "ui/gl/gl_image.h" namespace gl { +class GLImage; class ProgressReporter; }
diff --git a/gpu/command_buffer/service/validating_abstract_texture_impl.cc b/gpu/command_buffer/service/validating_abstract_texture_impl.cc index 380a895..b371c43 100644 --- a/gpu/command_buffer/service/validating_abstract_texture_impl.cc +++ b/gpu/command_buffer/service/validating_abstract_texture_impl.cc
@@ -8,6 +8,7 @@ #include "gpu/command_buffer/service/error_state.h" #include "gpu/command_buffer/service/texture_manager.h" #include "ui/gl/gl_context.h" +#include "ui/gl/gl_image.h" #include "ui/gl/scoped_binders.h" #include "ui/gl/scoped_make_current.h"
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc index dbcdfc2..03fc091 100644 --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc
@@ -263,6 +263,7 @@ const base::FeatureParam<std::string> kVulkanBlockListByAndroidBuildFP{ &kVulkan, "BlockListByAndroidBuildFP", ""}; +// Blocklists meant for DrDc. // crbug.com/1294648 const base::FeatureParam<std::string> kDrDcBlockListByDevice{ &kEnableDrDc, "BlockListByDevice", "LF9810_2GB"}; @@ -271,6 +272,24 @@ const base::FeatureParam<std::string> kDrDcBlockListByModel{ &kEnableDrDc, "BlockListByModel", "SM-J400M|SM-J415F|ONEPLUS A3003|OCTAStream*"}; + +const base::FeatureParam<std::string> kDrDcBlockListByHardware{ + &kEnableDrDc, "BlockListByHardware", ""}; + +const base::FeatureParam<std::string> kDrDcBlockListByBrand{ + &kEnableDrDc, "BlockListByBrand", "HONOR"}; + +const base::FeatureParam<std::string> kDrDcBlockListByAndroidBuildId{ + &kEnableDrDc, "BlockListByAndroidBuildId", ""}; + +const base::FeatureParam<std::string> kDrDcBlockListByManufacturer{ + &kEnableDrDc, "BlockListByManufacturer", ""}; + +const base::FeatureParam<std::string> kDrDcBlockListByBoard{ + &kEnableDrDc, "BlockListByBoard", ""}; + +const base::FeatureParam<std::string> kDrDcBlockListByAndroidBuildFP{ + &kEnableDrDc, "BlockListByAndroidBuildFP", ""}; #endif // BUILDFLAG(IS_ANDROID) // Enable SkiaRenderer Dawn graphics backend. On Windows this will use D3D12, @@ -380,6 +399,22 @@ return false; if (IsDeviceBlocked(build_info->model(), kDrDcBlockListByModel.Get())) return false; + if (IsDeviceBlocked(build_info->hardware(), kDrDcBlockListByHardware.Get())) + return false; + if (IsDeviceBlocked(build_info->brand(), kDrDcBlockListByBrand.Get())) + return false; + if (IsDeviceBlocked(build_info->android_build_id(), + kDrDcBlockListByAndroidBuildId.Get())) + return false; + if (IsDeviceBlocked(build_info->manufacturer(), + kDrDcBlockListByManufacturer.Get())) + return false; + if (IsDeviceBlocked(build_info->board(), kDrDcBlockListByBoard.Get())) + return false; + if (IsDeviceBlocked(build_info->android_build_fp(), + kDrDcBlockListByAndroidBuildFP.Get())) + return false; + if (!base::FeatureList::IsEnabled(kEnableDrDc)) return false; return IsUsingVulkan() ? base::FeatureList::IsEnabled(kEnableDrDcVulkan)
diff --git a/ios/chrome/browser/ui/icons/item_icon.mm b/ios/chrome/browser/ui/icons/item_icon.mm index 424edafe..75ebc8a6 100644 --- a/ios/chrome/browser/ui/icons/item_icon.mm +++ b/ios/chrome/browser/ui/icons/item_icon.mm
@@ -8,7 +8,7 @@ #error "This file requires ARC support." #endif -const CGFloat kSymbolAccessoryPointSize = 22.; +const CGFloat kSymbolAccessoryPointSize = 18.; NSString* const kExternalLinkSmbol = @"arrow.up.forward.square"; NSString* const kChevronForwardSymbol = @"chevron.forward";
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 650773f..ac047a8 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -bc05f8f44551dde018befa3bf64e0e8498d08749 \ No newline at end of file +e2e3b506d8b0935d151fffb7b14077c0e2203ab5 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index f6ebe9b..df6fc95 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -b32cc23b2e4395b2e151e8f4dcd560d44b5be449 \ No newline at end of file +36d9ce0b66bc23683e43e02657c889a0dfb02050 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index b1ca7f12..8674cd8 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -ad19c1c649bac4d7edca3863afadf896b8fce896 \ No newline at end of file +478ae5f1340e0273c11ed068272c38cac2facaa8 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 7ff547a..20d600f 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -f04943706edc0c2a214d18cb177fdd4dfae61186 \ No newline at end of file +9f070c240844f724693d13946ec1d28d6926d879 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 index 58e155e..bc37b8e1 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -a5714521362716cd2aa82d9f2fb16962dc8a3ef3 \ No newline at end of file +751460866fe0befd0be6b87b508ae5c847b91dd7 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 index ef06dbf4..9ff4e102 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -ba43f2ca8aac48cefd981a0a0952b0e5566b5eb2 \ No newline at end of file +32a57567387e7ea79b9078b89da9ee2afae87a41 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 5e46ce2..098a88c 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -2e592fbdc6ba177c1b1ff606223d131c8e959c52 \ No newline at end of file +66146e1e02c308195346a2d1ad5680eb8419c58c \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 5e96741..f5ea44d7 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -e1b673d25b7fbe93ff0d39904e84f202ec9fa399 \ No newline at end of file +ff63a8b6cf80bfb7ec9b752158a48d938313337d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index 268ade0..4ca365f 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -98e70b016736bf50682917995525d5ff8916db88 \ No newline at end of file +e6466d776a866cc8233ac6adc485a55ebc82a8bc \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 1f50430..474cc4c 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -ebf4db35291f19e39ddae2a7f25d5fd07a90f89f \ No newline at end of file +f02ae0d827bd9c59f140c64a66657789be6d02c4 \ No newline at end of file
diff --git a/net/android/network_change_notifier_android_unittest.cc b/net/android/network_change_notifier_android_unittest.cc index 694b05c..4b8c98f 100644 --- a/net/android/network_change_notifier_android_unittest.cc +++ b/net/android/network_change_notifier_android_unittest.cc
@@ -301,8 +301,8 @@ delegate_.GetCurrentConnectionType()); // Instantiate another delegate to validate that it uses the actual // connection type at construction. - std::unique_ptr<NetworkChangeNotifierDelegateAndroid> other_delegate( - new NetworkChangeNotifierDelegateAndroid()); + auto other_delegate = + std::make_unique<NetworkChangeNotifierDelegateAndroid>(); EXPECT_EQ(NetworkChangeNotifier::CONNECTION_NONE, other_delegate->GetCurrentConnectionType());
diff --git a/net/base/backoff_entry_serializer.cc b/net/base/backoff_entry_serializer.cc index 76015d29..dd31a2a 100644 --- a/net/base/backoff_entry_serializer.cc +++ b/net/base/backoff_entry_serializer.cc
@@ -134,7 +134,7 @@ return nullptr; } - std::unique_ptr<BackoffEntry> entry(new BackoffEntry(policy, tick_clock)); + auto entry = std::make_unique<BackoffEntry>(policy, tick_clock); for (int n = 0; n < failure_count; n++) entry->InformOfRequest(false);
diff --git a/net/base/chunked_upload_data_stream_unittest.cc b/net/base/chunked_upload_data_stream_unittest.cc index 85a5352..37e8f3ed 100644 --- a/net/base/chunked_upload_data_stream_unittest.cc +++ b/net/base/chunked_upload_data_stream_unittest.cc
@@ -339,8 +339,7 @@ // Check the behavior of ChunkedUploadDataStream::Writer. TEST(ChunkedUploadDataStreamTest, ChunkedUploadDataStreamWriter) { - std::unique_ptr<ChunkedUploadDataStream> stream( - new ChunkedUploadDataStream(0)); + auto stream = std::make_unique<ChunkedUploadDataStream>(0); std::unique_ptr<ChunkedUploadDataStream::Writer> writer( stream->CreateWriter());
diff --git a/net/base/datagram_buffer.cc b/net/base/datagram_buffer.cc index 21b2f41..255fabbc 100644 --- a/net/base/datagram_buffer.cc +++ b/net/base/datagram_buffer.cc
@@ -38,7 +38,7 @@ } DatagramBuffer::DatagramBuffer(size_t max_buffer_size) - : data_(new char[max_buffer_size]) {} + : data_(std::make_unique<char[]>(max_buffer_size)) {} DatagramBuffer::~DatagramBuffer() = default;
diff --git a/net/base/directory_lister.cc b/net/base/directory_lister.cc index 0882163..b606f7d 100644 --- a/net/base/directory_lister.cc +++ b/net/base/directory_lister.cc
@@ -71,7 +71,7 @@ ListingType type, DirectoryListerDelegate* delegate) : delegate_(delegate) { - core_ = new Core(dir, type, this); + core_ = base::MakeRefCounted<Core>(dir, type, this); DCHECK(delegate_); DCHECK(!dir.value().empty()); } @@ -114,7 +114,7 @@ } void DirectoryLister::Core::Start() { - std::unique_ptr<DirectoryList> directory_list(new DirectoryList()); + auto directory_list = std::make_unique<DirectoryList>(); if (!base::DirectoryExists(dir_)) { origin_task_runner_->PostTask(
diff --git a/net/base/elements_upload_data_stream.cc b/net/base/elements_upload_data_stream.cc index 1f5d616..6d91c8b 100644 --- a/net/base/elements_upload_data_stream.cc +++ b/net/base/elements_upload_data_stream.cc
@@ -28,8 +28,8 @@ int64_t identifier) { std::vector<std::unique_ptr<UploadElementReader>> readers; readers.push_back(std::move(reader)); - return std::unique_ptr<UploadDataStream>( - new ElementsUploadDataStream(std::move(readers), identifier)); + return std::make_unique<ElementsUploadDataStream>(std::move(readers), + identifier); } int ElementsUploadDataStream::InitInternal(const NetLogWithSource& net_log) {
diff --git a/net/base/elements_upload_data_stream_unittest.cc b/net/base/elements_upload_data_stream_unittest.cc index b586bf0..6516c28 100644 --- a/net/base/elements_upload_data_stream_unittest.cc +++ b/net/base/elements_upload_data_stream_unittest.cc
@@ -162,7 +162,8 @@ TEST_F(ElementsUploadDataStreamTest, EmptyUploadData) { std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(CompletionOnceCallback(), NetLogWithSource()), IsOk()); EXPECT_TRUE(stream->IsInMemory()); @@ -175,7 +176,8 @@ element_readers_.push_back( std::make_unique<UploadBytesElementReader>(kTestData, kTestDataSize)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(CompletionOnceCallback(), NetLogWithSource()), IsOk()); EXPECT_TRUE(stream->IsInMemory()); @@ -205,7 +207,8 @@ TestCompletionCallback init_callback; std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(init_callback.callback(), NetLogWithSource()), IsError(ERR_IO_PENDING)); ASSERT_THAT(init_callback.WaitForResult(), IsOk()); @@ -242,7 +245,8 @@ TestCompletionCallback init_callback; std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(init_callback.callback(), NetLogWithSource()), IsError(ERR_IO_PENDING)); ASSERT_THAT(init_callback.WaitForResult(), IsOk()); @@ -271,8 +275,7 @@ TEST_F(ElementsUploadDataStreamTest, ReadErrorSync) { // This element cannot be read. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, true)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK)); reader->SetReadExpectation(ERR_FAILED); element_readers_.push_back(std::move(reader)); @@ -282,7 +285,8 @@ std::make_unique<UploadBytesElementReader>(kTestData, kTestDataSize)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). ASSERT_THAT(stream->Init(CompletionOnceCallback(), NetLogWithSource()), @@ -307,8 +311,7 @@ TEST_F(ElementsUploadDataStreamTest, ReadErrorAsync) { // This element cannot be read. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, false)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader->SetAsyncInitExpectation(OK); reader->SetReadExpectation(ERR_FAILED); element_readers_.push_back(std::move(reader)); @@ -318,7 +321,8 @@ std::make_unique<UploadBytesElementReader>(kTestData, kTestDataSize)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). TestCompletionCallback init_callback; @@ -364,7 +368,8 @@ const uint64_t kStreamSize = kTestDataSize + kFileRangeLength; TestCompletionCallback init_callback; std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(init_callback.callback(), NetLogWithSource()), IsError(ERR_IO_PENDING)); ASSERT_THAT(init_callback.WaitForResult(), IsOk()); @@ -388,33 +393,31 @@ // Init() with on-memory and not-on-memory readers. TEST_F(ElementsUploadDataStreamTest, InitAsync) { // Create UploadDataStream with mock readers. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, true)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK)); element_readers_.push_back(std::move(reader)); - std::unique_ptr<MockUploadElementReader> reader2( - new MockUploadElementReader(kTestDataSize, true)); + auto reader2 = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader2, Init(_)).WillOnce(Return(OK)); element_readers_.push_back(std::move(reader2)); - std::unique_ptr<MockUploadElementReader> reader3( - new MockUploadElementReader(kTestDataSize, false)); + auto reader3 = + std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader3->SetAsyncInitExpectation(OK); element_readers_.push_back(std::move(reader3)); - std::unique_ptr<MockUploadElementReader> reader4( - new MockUploadElementReader(kTestDataSize, false)); + auto reader4 = + std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader4->SetAsyncInitExpectation(OK); element_readers_.push_back(std::move(reader4)); - std::unique_ptr<MockUploadElementReader> reader5( - new MockUploadElementReader(kTestDataSize, true)); + auto reader5 = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader5, Init(_)).WillOnce(Return(OK)); element_readers_.push_back(std::move(reader5)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). TestCompletionCallback callback; @@ -426,13 +429,13 @@ // Init() of a reader fails asynchronously. TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureAsync) { // Create UploadDataStream with a mock reader. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, false)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader->SetAsyncInitExpectation(ERR_FAILED); element_readers_.push_back(std::move(reader)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). TestCompletionCallback callback; @@ -444,18 +447,17 @@ // Init() of a reader fails synchronously. TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureSync) { // Create UploadDataStream with mock readers. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, false)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader->SetAsyncInitExpectation(OK); element_readers_.push_back(std::move(reader)); - std::unique_ptr<MockUploadElementReader> reader2( - new MockUploadElementReader(kTestDataSize, true)); + auto reader2 = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader2, Init(_)).WillOnce(Return(ERR_FAILED)); element_readers_.push_back(std::move(reader2)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). TestCompletionCallback callback; @@ -469,7 +471,8 @@ element_readers_.push_back( std::make_unique<UploadBytesElementReader>(kTestData, kTestDataSize)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); ASSERT_THAT(stream->Init(CompletionOnceCallback(), NetLogWithSource()), IsOk()); @@ -488,32 +491,31 @@ // Async Read() with on-memory and not-on-memory readers. TEST_F(ElementsUploadDataStreamTest, ReadAsync) { // Create UploadDataStream with mock readers. - std::unique_ptr<MockUploadElementReader> reader( - new MockUploadElementReader(kTestDataSize, true)); + auto reader = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK)); reader->SetReadExpectation(kTestDataSize); element_readers_.push_back(std::move(reader)); - std::unique_ptr<MockUploadElementReader> reader2( - new MockUploadElementReader(kTestDataSize, false)); + auto reader2 = + std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader2->SetAsyncInitExpectation(OK); reader2->SetReadExpectation(kTestDataSize); element_readers_.push_back(std::move(reader2)); - std::unique_ptr<MockUploadElementReader> reader3( - new MockUploadElementReader(kTestDataSize, true)); + auto reader3 = std::make_unique<MockUploadElementReader>(kTestDataSize, true); EXPECT_CALL(*reader3, Init(_)).WillOnce(Return(OK)); reader3->SetReadExpectation(kTestDataSize); element_readers_.push_back(std::move(reader3)); - std::unique_ptr<MockUploadElementReader> reader4( - new MockUploadElementReader(kTestDataSize, false)); + auto reader4 = + std::make_unique<MockUploadElementReader>(kTestDataSize, false); reader4->SetAsyncInitExpectation(OK); reader4->SetReadExpectation(kTestDataSize); element_readers_.push_back(std::move(reader4)); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); // Run Init(). TestCompletionCallback init_callback; @@ -556,7 +558,8 @@ TestCompletionCallback init_callback; std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers), + 0)); ASSERT_THAT(stream->Init(init_callback.callback(), NetLogWithSource()), IsError(ERR_IO_PENDING)); int error_code = init_callback.WaitForResult(); @@ -598,7 +601,8 @@ base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, std::numeric_limits<uint64_t>::max(), base::Time())); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); std::string expected_data(kTestData, kTestData + kTestDataSize); expected_data += expected_data; @@ -643,7 +647,8 @@ base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, std::numeric_limits<uint64_t>::max(), base::Time())); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); std::string expected_data(kTestData, kTestData + kTestDataSize); expected_data += expected_data; @@ -685,7 +690,8 @@ base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, std::numeric_limits<uint64_t>::max(), base::Time())); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); expected_data.insert(expected_data.end(), kTestData, @@ -745,7 +751,8 @@ base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, std::numeric_limits<uint64_t>::max(), base::Time())); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); expected_data.insert(expected_data.end(), kTestData, @@ -794,7 +801,8 @@ base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, std::numeric_limits<uint64_t>::max(), base::Time())); std::unique_ptr<UploadDataStream> stream( - new ElementsUploadDataStream(std::move(element_readers_), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers_), + 0)); std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); expected_data.insert(expected_data.end(), kTestData,
diff --git a/net/base/file_stream_unittest.cc b/net/base/file_stream_unittest.cc index 59194e81..11b672ce 100644 --- a/net/base/file_stream_unittest.cc +++ b/net/base/file_stream_unittest.cc
@@ -98,8 +98,8 @@ TEST_F(FileStreamTest, OpenExplicitCloseOrphaned) { TestCompletionCallback callback; - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_ASYNC; int rv = stream->Open(temp_file_path(), flags, callback.callback()); @@ -124,11 +124,11 @@ base::WriteFile(temp_file_path(), kTestData, kTestDataSize)); int flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ | base::File::FLAG_ASYNC; - base::File file(temp_file_path(), flags); + base::File file1(temp_file_path(), flags); // Seek to the beginning of the file and read. - std::unique_ptr<FileStream> read_stream( - new FileStream(std::move(file), base::ThreadTaskRunnerHandle::Get())); + auto read_stream = std::make_unique<FileStream>( + std::move(file1), base::ThreadTaskRunnerHandle::Get()); ASSERT_THAT(read_stream->Seek(0, callback64.callback()), IsError(ERR_IO_PENDING)); ASSERT_EQ(0, callback64.WaitForResult()); @@ -144,10 +144,10 @@ base::DeleteFile(temp_file_path()); flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; - file.Initialize(temp_file_path(), flags); + base::File file2(temp_file_path(), flags); - std::unique_ptr<FileStream> write_stream( - new FileStream(std::move(file), base::ThreadTaskRunnerHandle::Get())); + auto write_stream = std::make_unique<FileStream>( + std::move(file2), base::ThreadTaskRunnerHandle::Get()); ASSERT_THAT(write_stream->Seek(0, callback64.callback()), IsError(ERR_IO_PENDING)); ASSERT_EQ(0, callback64.WaitForResult()); @@ -217,8 +217,8 @@ int64_t file_size; EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_ASYNC; TestCompletionCallback callback; @@ -304,8 +304,8 @@ } TEST_F(FileStreamTest, Write_EarlyDelete) { - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback callback; @@ -375,8 +375,8 @@ int64_t file_size; EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback callback; @@ -430,8 +430,8 @@ int64_t file_size; EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback callback; @@ -599,8 +599,8 @@ int64_t file_size; EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback open_callback; @@ -705,8 +705,8 @@ int64_t file_size; EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); - std::unique_ptr<FileStream> stream( - new FileStream(base::ThreadTaskRunnerHandle::Get())); + auto stream = + std::make_unique<FileStream>(base::ThreadTaskRunnerHandle::Get()); int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback open_callback; @@ -740,8 +740,7 @@ ASSERT_TRUE(worker_thread.Start()); base::ScopedDisallowBlocking disallow_blocking; - std::unique_ptr<FileStream> stream( - new FileStream(worker_thread.task_runner())); + auto stream = std::make_unique<FileStream>(worker_thread.task_runner()); int flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE | base::File::FLAG_ASYNC; TestCompletionCallback open_callback; @@ -753,8 +752,7 @@ stream.reset(); // Force an operation through the worker. - std::unique_ptr<FileStream> stream2( - new FileStream(worker_thread.task_runner())); + auto stream2 = std::make_unique<FileStream>(worker_thread.task_runner()); TestCompletionCallback open_callback2; rv = stream2->Open(temp_file_path(), flags, open_callback2.callback()); EXPECT_THAT(open_callback2.GetResult(rv), IsOk()); @@ -774,8 +772,8 @@ base::File file(temp_file_path(), flags); ASSERT_TRUE(file.IsValid()); - std::unique_ptr<FileStream> stream( - new FileStream(std::move(file), base::ThreadTaskRunnerHandle::Get())); + auto stream = std::make_unique<FileStream>( + std::move(file), base::ThreadTaskRunnerHandle::Get()); scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(1); buf->data()[0] = 0; @@ -799,8 +797,8 @@ base::File file(temp_file_path(), flags); ASSERT_TRUE(file.IsValid()); - std::unique_ptr<FileStream> stream( - new FileStream(std::move(file), base::ThreadTaskRunnerHandle::Get())); + auto stream = std::make_unique<FileStream>( + std::move(file), base::ThreadTaskRunnerHandle::Get()); scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(1); TestCompletionCallback callback;
diff --git a/net/base/mock_network_change_notifier.cc b/net/base/mock_network_change_notifier.cc index 47f595a..7ac2529 100644 --- a/net/base/mock_network_change_notifier.cc +++ b/net/base/mock_network_change_notifier.cc
@@ -107,7 +107,7 @@ ScopedMockNetworkChangeNotifier::ScopedMockNetworkChangeNotifier() : disable_network_change_notifier_for_tests_( - new NetworkChangeNotifier::DisableForTest()), + std::make_unique<NetworkChangeNotifier::DisableForTest>()), mock_network_change_notifier_(MockNetworkChangeNotifier::Create()) {} ScopedMockNetworkChangeNotifier::~ScopedMockNetworkChangeNotifier() = default;
diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc index e3b43ff..7842adf 100644 --- a/net/base/network_change_notifier.cc +++ b/net/base/network_change_notifier.cc
@@ -192,33 +192,37 @@ class NetworkChangeNotifier::ObserverList { public: ObserverList() - : ip_address_observer_list_(new base::ObserverListThreadSafe< - NetworkChangeNotifier::IPAddressObserver>( - base::ObserverListPolicy::EXISTING_ONLY)), - connection_type_observer_list_( - new base::ObserverListThreadSafe< - NetworkChangeNotifier::ConnectionTypeObserver>( + : ip_address_observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::IPAddressObserver>>( base::ObserverListPolicy::EXISTING_ONLY)), - resolver_state_observer_list_(new base::ObserverListThreadSafe< - NetworkChangeNotifier::DNSObserver>( - base::ObserverListPolicy::EXISTING_ONLY)), + connection_type_observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::ConnectionTypeObserver>>( + base::ObserverListPolicy::EXISTING_ONLY)), + resolver_state_observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::DNSObserver>>( + base::ObserverListPolicy::EXISTING_ONLY)), network_change_observer_list_( - new base::ObserverListThreadSafe< - NetworkChangeNotifier::NetworkChangeObserver>( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::NetworkChangeObserver>>( base::ObserverListPolicy::EXISTING_ONLY)), max_bandwidth_observer_list_( - new base::ObserverListThreadSafe< - NetworkChangeNotifier::MaxBandwidthObserver>( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::MaxBandwidthObserver>>( base::ObserverListPolicy::EXISTING_ONLY)), - network_observer_list_(new base::ObserverListThreadSafe< - NetworkChangeNotifier::NetworkObserver>( - base::ObserverListPolicy::EXISTING_ONLY)), + network_observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::NetworkObserver>>( + base::ObserverListPolicy::EXISTING_ONLY)), connection_cost_observer_list_( - new base::ObserverListThreadSafe< - NetworkChangeNotifier::ConnectionCostObserver>( + base::MakeRefCounted<base::ObserverListThreadSafe< + NetworkChangeNotifier::ConnectionCostObserver>>( base::ObserverListPolicy::EXISTING_ONLY)), default_network_active_observer_list_( - new base::ObserverListThreadSafe<DefaultNetworkActiveObserver>( + base::MakeRefCounted< + base::ObserverListThreadSafe<DefaultNetworkActiveObserver>>( base::ObserverListPolicy::EXISTING_ONLY)) {} ObserverList(const ObserverList&) = delete;
diff --git a/net/base/network_config_watcher_mac.cc b/net/base/network_config_watcher_mac.cc index 1103f64..efa7481d 100644 --- a/net/base/network_config_watcher_mac.cc +++ b/net/base/network_config_watcher_mac.cc
@@ -259,7 +259,8 @@ } NetworkConfigWatcherMac::NetworkConfigWatcherMac(Delegate* delegate) - : notifier_thread_(new NetworkConfigWatcherMacThread(delegate)) { + : notifier_thread_( + std::make_unique<NetworkConfigWatcherMacThread>(delegate)) { // We create this notifier thread because the notification implementation // needs a thread with a CFRunLoop, and there's no guarantee that // CurrentThread::Get() meets that criterion.
diff --git a/net/base/network_interfaces_win.cc b/net/base/network_interfaces_win.cc index badc5656..68f44585 100644 --- a/net/base/network_interfaces_win.cc +++ b/net/base/network_interfaces_win.cc
@@ -230,7 +230,7 @@ for (int tries = 1; result == ERROR_BUFFER_OVERFLOW && tries < MAX_GETADAPTERSADDRESSES_TRIES; ++tries) { - buf.reset(new char[len]); + buf = std::make_unique<char[]>(len); adapters = reinterpret_cast<IP_ADAPTER_ADDRESSES*>(buf.get()); result = GetAdaptersAddresses(AF_UNSPEC, flags, nullptr, adapters, &len); } @@ -326,7 +326,7 @@ }; std::unique_ptr<ScopedWifiOptions> SetWifiOptions(int options) { - return std::unique_ptr<ScopedWifiOptions>(new WifiOptionSetter(options)); + return std::make_unique<WifiOptionSetter>(options); } std::string GetWifiSSID() {
diff --git a/net/base/prioritized_dispatcher_unittest.cc b/net/base/prioritized_dispatcher_unittest.cc index 0f5ba3e..419be5d 100644 --- a/net/base/prioritized_dispatcher_unittest.cc +++ b/net/base/prioritized_dispatcher_unittest.cc
@@ -141,15 +141,15 @@ } std::unique_ptr<TestJob> AddJob(char data, Priority priority) { - std::unique_ptr<TestJob> job( - new TestJob(dispatcher_.get(), data, priority, &log_)); + auto job = + std::make_unique<TestJob>(dispatcher_.get(), data, priority, &log_); job->Add(false); return job; } std::unique_ptr<TestJob> AddJobAtHead(char data, Priority priority) { - std::unique_ptr<TestJob> job( - new TestJob(dispatcher_.get(), data, priority, &log_)); + auto job = + std::make_unique<TestJob>(dispatcher_.get(), data, priority, &log_); job->Add(true); return job; }
diff --git a/net/base/test_completion_callback_unittest.cc b/net/base/test_completion_callback_unittest.cc index 68b6f73..0ba7462 100644 --- a/net/base/test_completion_callback_unittest.cc +++ b/net/base/test_completion_callback_unittest.cc
@@ -98,7 +98,7 @@ bool ExampleEmployer::DoSomething(CompletionOnceCallback callback) { DCHECK(!request_.get()) << "already in use"; - request_ = new ExampleWorker(this, std::move(callback)); + request_ = base::MakeRefCounted<ExampleWorker>(this, std::move(callback)); if (!base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&ExampleWorker::DoWork, request_))) {
diff --git a/net/base/upload_bytes_element_reader.cc b/net/base/upload_bytes_element_reader.cc index 9dd22c8..312b006 100644 --- a/net/base/upload_bytes_element_reader.cc +++ b/net/base/upload_bytes_element_reader.cc
@@ -64,10 +64,10 @@ UploadOwnedBytesElementReader::~UploadOwnedBytesElementReader() = default; -UploadOwnedBytesElementReader* +std::unique_ptr<UploadOwnedBytesElementReader> UploadOwnedBytesElementReader::CreateWithString(const std::string& string) { std::vector<char> data(string.begin(), string.end()); - return new UploadOwnedBytesElementReader(&data); + return std::make_unique<UploadOwnedBytesElementReader>(&data); } } // namespace net
diff --git a/net/base/upload_bytes_element_reader.h b/net/base/upload_bytes_element_reader.h index dd39f580..71c5a4b 100644 --- a/net/base/upload_bytes_element_reader.h +++ b/net/base/upload_bytes_element_reader.h
@@ -56,7 +56,7 @@ ~UploadOwnedBytesElementReader() override; // Creates UploadOwnedBytesElementReader with a string. - static UploadOwnedBytesElementReader* CreateWithString( + static std::unique_ptr<UploadOwnedBytesElementReader> CreateWithString( const std::string& string); private:
diff --git a/net/cert/cert_database.cc b/net/cert/cert_database.cc index 99f5dea..7e8220b4 100644 --- a/net/cert/cert_database.cc +++ b/net/cert/cert_database.cc
@@ -39,7 +39,8 @@ } CertDatabase::CertDatabase() - : observer_list_(new base::ObserverListThreadSafe<Observer>) {} + : observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe<Observer>>()) {} CertDatabase::~CertDatabase() { #if BUILDFLAG(IS_MAC)
diff --git a/net/cert/cert_verify_proc.cc b/net/cert/cert_verify_proc.cc index 755d330..ca06237 100644 --- a/net/cert/cert_verify_proc.cc +++ b/net/cert/cert_verify_proc.cc
@@ -532,13 +532,14 @@ scoped_refptr<CertVerifyProc> CertVerifyProc::CreateSystemVerifyProc( scoped_refptr<CertNetFetcher> cert_net_fetcher) { #if BUILDFLAG(IS_ANDROID) - return new CertVerifyProcAndroid(std::move(cert_net_fetcher)); + return base::MakeRefCounted<CertVerifyProcAndroid>( + std::move(cert_net_fetcher)); #elif BUILDFLAG(IS_IOS) - return new CertVerifyProcIOS(); + return base::MakeRefCounted<CertVerifyProcIOS>(); #elif BUILDFLAG(IS_MAC) - return new CertVerifyProcMac(); + return base::MakeRefCounted<CertVerifyProcMac>(); #elif BUILDFLAG(IS_WIN) - return new CertVerifyProcWin(); + return base::MakeRefCounted<CertVerifyProcWin>(); #else #error Unsupported platform #endif
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc index 165f6fc..6d4b677 100644 --- a/net/cert/cert_verify_proc_unittest.cc +++ b/net/cert/cert_verify_proc_unittest.cc
@@ -191,16 +191,17 @@ switch (type) { #if BUILDFLAG(IS_ANDROID) case CERT_VERIFY_PROC_ANDROID: - return new CertVerifyProcAndroid(std::move(cert_net_fetcher)); + return base::MakeRefCounted<CertVerifyProcAndroid>( + std::move(cert_net_fetcher)); #elif BUILDFLAG(IS_IOS) case CERT_VERIFY_PROC_IOS: - return new CertVerifyProcIOS(); + return base::MakeRefCounted<CertVerifyProcIOS>(); #elif BUILDFLAG(IS_MAC) case CERT_VERIFY_PROC_MAC: - return new CertVerifyProcMac(); + return base::MakeRefCounted<CertVerifyProcMac>(); #elif BUILDFLAG(IS_WIN) case CERT_VERIFY_PROC_WIN: - return new CertVerifyProcWin(); + return base::MakeRefCounted<CertVerifyProcWin>(); #endif case CERT_VERIFY_PROC_BUILTIN: return CreateCertVerifyProcBuiltin(std::move(cert_net_fetcher), @@ -1193,8 +1194,7 @@ CertVerifyResult dummy_result; CertVerifyResult verify_result; - scoped_refptr<CertVerifyProc> verify_proc = - new MockCertVerifyProc(dummy_result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(dummy_result); return verify_proc->Verify( chain.get(), "test.example.com", /*ocsp_response=*/std::string(), @@ -1849,8 +1849,7 @@ // Intranet names for public CAs should be flagged: CertVerifyResult dummy_result; dummy_result.is_issued_by_known_root = true; - scoped_refptr<CertVerifyProc> verify_proc = - new MockCertVerifyProc(dummy_result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(dummy_result); error = verify_proc->Verify( cert.get(), "webmail", /*ocsp_response=*/std::string(), /*sct_list=*/std::string(), 0, CRLSet::BuiltinCRLSet().get(), @@ -4292,7 +4291,7 @@ result.has_sha1 = true; result.has_sha1_leaf = true; result.is_issued_by_known_root = true; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); int flags = 0; CertVerifyResult verify_result; @@ -4313,7 +4312,7 @@ result.has_sha1 = true; result.has_sha1_leaf = false; result.is_issued_by_known_root = true; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); int flags = 0; CertVerifyResult verify_result; @@ -4340,7 +4339,7 @@ result.has_sha1 = true; result.has_sha1_leaf = true; result.is_issued_by_known_root = false; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); // SHA-1 should be rejected by default for private roots... int flags = 0; @@ -4439,8 +4438,7 @@ // // This is sufficient for the purposes of this test, as the checking for weak // hash algorithms is done by CertVerifyProc::Verify(). - scoped_refptr<CertVerifyProc> proc = - new MockCertVerifyProc(CertVerifyResult()); + auto proc = base::MakeRefCounted<MockCertVerifyProc>(CertVerifyResult()); int error = proc->Verify(ee_chain.get(), "127.0.0.1", /*ocsp_response=*/std::string(), /*sct_list=*/std::string(), flags, @@ -4570,7 +4568,7 @@ ASSERT_TRUE(cert); CertVerifyResult result; result.is_issued_by_known_root = false; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); CertVerifyResult verify_result; int error = verify_proc->Verify( @@ -4679,7 +4677,7 @@ const base::HistogramBase::Sample kGTSRootR4HistogramID = 486; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); histograms.ExpectTotalCount(kTrustAnchorVerifyHistogram, 0); @@ -4727,7 +4725,7 @@ const base::HistogramBase::Sample kGTSRootR3HistogramID = 485; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); histograms.ExpectTotalCount(kTrustAnchorVerifyHistogram, 0); @@ -4765,7 +4763,7 @@ result.public_key_hashes.push_back(HashValue(root_hash)); result.is_issued_by_known_root = true; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); histograms.ExpectTotalCount(kTrustAnchorVerifyHistogram, 0); histograms.ExpectTotalCount(kTrustAnchorVerifyOutOfDateHistogram, 0); @@ -4798,7 +4796,7 @@ result.ocsp_result.response_status = OCSPVerifyResult::PROVIDED; result.ocsp_result.revocation_status = OCSPRevocationStatus::GOOD; - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); int flags = 0; CertVerifyResult verify_result; @@ -4829,7 +4827,7 @@ EXPECT_EQ(OCSPRevocationStatus::UNKNOWN, result.ocsp_result.revocation_status); - scoped_refptr<CertVerifyProc> verify_proc = new MockCertVerifyProc(result); + auto verify_proc = base::MakeRefCounted<MockCertVerifyProc>(result); int flags = 0; CertVerifyResult verify_result;
diff --git a/net/cert/cert_verify_proc_win.cc b/net/cert/cert_verify_proc_win.cc index 04fefb9..1c73418 100644 --- a/net/cert/cert_verify_proc_win.cc +++ b/net/cert/cert_verify_proc_win.cc
@@ -453,7 +453,7 @@ // Compute the subject's serial. const CRYPT_INTEGER_BLOB* serial_blob = &subject_cert->pCertInfo->SerialNumber; - std::unique_ptr<uint8_t[]> serial_bytes(new uint8_t[serial_blob->cbData]); + auto serial_bytes = std::make_unique<uint8_t[]>(serial_blob->cbData); // The bytes of the serial number are stored little-endian. // Note: While MSDN implies that bytes are stripped from this serial, // they are not - only CertCompareIntegerBlob actually removes bytes.
diff --git a/net/cert/crl_set.cc b/net/cert/crl_set.cc index 42ae3b9..d60b386 100644 --- a/net/cert/crl_set.cc +++ b/net/cert/crl_set.cc
@@ -236,7 +236,7 @@ if (not_after < 0) return false; - scoped_refptr<CRLSet> crl_set(new CRLSet()); + auto crl_set = base::WrapRefCounted(new CRLSet()); crl_set->sequence_ = static_cast<uint32_t>(*sequence); crl_set->not_after_ = static_cast<uint64_t>(not_after); crl_set->crls_.reserve(64); // Value observed experimentally. @@ -435,7 +435,7 @@ OPENSSL_free(x501_data); } - scoped_refptr<CRLSet> crl_set(new CRLSet); + auto crl_set = base::WrapRefCounted(new CRLSet()); crl_set->sequence_ = 0; if (is_expired) crl_set->not_after_ = 1;
diff --git a/net/cert/ct_log_verifier.cc b/net/cert/ct_log_verifier.cc index 7d6fcca..34d1080 100644 --- a/net/cert/ct_log_verifier.cc +++ b/net/cert/ct_log_verifier.cc
@@ -59,8 +59,7 @@ scoped_refptr<const CTLogVerifier> CTLogVerifier::Create( const base::StringPiece& public_key, std::string description) { - scoped_refptr<CTLogVerifier> result( - new CTLogVerifier(std::move(description))); + auto result = base::WrapRefCounted(new CTLogVerifier(std::move(description))); if (!result->Init(public_key)) return nullptr; return result;
diff --git a/net/cert/ct_serialization.cc b/net/cert/ct_serialization.cc index e1600b1..1147a378 100644 --- a/net/cert/ct_serialization.cc +++ b/net/cert/ct_serialization.cc
@@ -318,8 +318,7 @@ bool DecodeSignedCertificateTimestamp( base::StringPiece* input, scoped_refptr<SignedCertificateTimestamp>* output) { - scoped_refptr<SignedCertificateTimestamp> result( - new SignedCertificateTimestamp()); + auto result = base::MakeRefCounted<SignedCertificateTimestamp>(); uint8_t version; CBS input_cbs; CBS_init(&input_cbs, reinterpret_cast<const uint8_t*>(input->data()),
diff --git a/net/cert/internal/cert_issuer_source_aia.cc b/net/cert/internal/cert_issuer_source_aia.cc index d7c07c1..d7e95d5 100644 --- a/net/cert/internal/cert_issuer_source_aia.cc +++ b/net/cert/internal/cert_issuer_source_aia.cc
@@ -195,7 +195,7 @@ if (urls.empty()) return; - std::unique_ptr<AiaRequest> aia_request(new AiaRequest()); + auto aia_request = std::make_unique<AiaRequest>(); for (const auto& url : urls) { // TODO(mattm): add synchronous failure mode to FetchCaIssuers interface so
diff --git a/net/cert/internal/cert_issuer_source_aia_unittest.cc b/net/cert/internal/cert_issuer_source_aia_unittest.cc index 67d7eeee..5c73cbb0 100644 --- a/net/cert/internal/cert_issuer_source_aia_unittest.cc +++ b/net/cert/internal/cert_issuer_source_aia_unittest.cc
@@ -194,8 +194,7 @@ scoped_refptr<ParsedCertificate> intermediate_cert; ASSERT_TRUE(ReadTestCert("i2.pem", &intermediate_cert)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); EXPECT_CALL(*mock_fetcher, FetchCaIssuers(GURL("http://url-for-aia2/I2.foo"), _, _)) @@ -229,8 +228,7 @@ scoped_refptr<ParsedCertificate> intermediate_cert2; ASSERT_TRUE(ReadTestCert("i2.pem", &intermediate_cert2)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); EXPECT_CALL(*mock_fetcher, FetchCaIssuers(GURL("http://url-for-aia/I.cer"), _, _)) @@ -271,8 +269,7 @@ scoped_refptr<ParsedCertificate> cert; ASSERT_TRUE(ReadTestCert("target_one_aia.pem", &cert)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); // HTTP request returns with an error. EXPECT_CALL(*mock_fetcher, @@ -296,8 +293,7 @@ scoped_refptr<ParsedCertificate> cert; ASSERT_TRUE(ReadTestCert("target_one_aia.pem", &cert)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); // HTTP request returns invalid certificate data. EXPECT_CALL(*mock_fetcher, @@ -324,8 +320,7 @@ scoped_refptr<ParsedCertificate> intermediate_cert2; ASSERT_TRUE(ReadTestCert("i2.pem", &intermediate_cert2)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); // Request for I.cer completes first, but fails. EXPECT_CALL(*mock_fetcher, @@ -364,8 +359,7 @@ scoped_refptr<ParsedCertificate> intermediate_cert; ASSERT_TRUE(ReadTestCert("i.pem", &intermediate_cert)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); // Request for I.cer completes first. EXPECT_CALL(*mock_fetcher, @@ -402,8 +396,7 @@ scoped_refptr<ParsedCertificate> cert; ASSERT_TRUE(ReadTestCert("target_six_aia.pem", &cert)); - scoped_refptr<StrictMock<MockCertNetFetcher>> mock_fetcher( - new StrictMock<MockCertNetFetcher>()); + auto mock_fetcher = base::MakeRefCounted<StrictMock<MockCertNetFetcher>>(); std::vector<uint8_t> bad_der({1, 2, 3, 4, 5});
diff --git a/net/cert/internal/general_names.cc b/net/cert/internal/general_names.cc index cfce5a1..6e4c57a 100644 --- a/net/cert/internal/general_names.cc +++ b/net/cert/internal/general_names.cc
@@ -85,7 +85,7 @@ CertErrors* errors) { DCHECK(errors); - std::unique_ptr<GeneralNames> general_names(new GeneralNames()); + auto general_names = std::make_unique<GeneralNames>(); der::Parser sequence_parser(general_names_value); // The GeneralNames sequence should have at least 1 element.
diff --git a/net/cert/internal/parsed_certificate.cc b/net/cert/internal/parsed_certificate.cc index 5253a7d..c288b52 100644 --- a/net/cert/internal/parsed_certificate.cc +++ b/net/cert/internal/parsed_certificate.cc
@@ -87,7 +87,7 @@ if (!errors) errors = &unused_errors; - scoped_refptr<ParsedCertificate> result(new ParsedCertificate); + auto result = base::WrapRefCounted(new ParsedCertificate); result->cert_data_ = std::move(backing_data); result->cert_ = der::Input(CRYPTO_BUFFER_data(result->cert_data_.get()), CRYPTO_BUFFER_len(result->cert_data_.get()));
diff --git a/net/cert/internal/path_builder.cc b/net/cert/internal/path_builder.cc index 8270275..3b847d6 100644 --- a/net/cert/internal/path_builder.cc +++ b/net/cert/internal/path_builder.cc
@@ -715,9 +715,10 @@ const std::set<der::Input>& user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit) - : cert_path_iter_(new CertPathIter(std::move(cert), - trust_store, - /*debug_data=*/&out_result_)), + : cert_path_iter_( + std::make_unique<CertPathIter>(std::move(cert), + trust_store, + /*debug_data=*/&out_result_)), delegate_(delegate), time_(time), key_purpose_(key_purpose),
diff --git a/net/cert/internal/path_builder_unittest.cc b/net/cert/internal/path_builder_unittest.cc index 61096bbf..8f5d471 100644 --- a/net/cert/internal/path_builder_unittest.cc +++ b/net/cert/internal/path_builder_unittest.cc
@@ -93,8 +93,7 @@ num_async_gets_++; ParsedCertificateList issuers; static_cert_issuer_source_.SyncGetIssuersOf(cert, &issuers); - std::unique_ptr<StaticAsyncRequest> req( - new StaticAsyncRequest(std::move(issuers))); + auto req = std::make_unique<StaticAsyncRequest>(std::move(issuers)); *out_req = std::move(req); if (!async_get_callback_.is_null()) async_get_callback_.Run(); @@ -1662,8 +1661,8 @@ path_builder.AddCertIssuerSource(&cert_issuer_source); // Create the mock CertIssuerSource::Request... - std::unique_ptr<StrictMock<MockCertIssuerSourceRequest>> - target_issuers_req_owner(new StrictMock<MockCertIssuerSourceRequest>()); + auto target_issuers_req_owner = + std::make_unique<StrictMock<MockCertIssuerSourceRequest>>(); // Keep a raw pointer to the Request... StrictMock<MockCertIssuerSourceRequest>* target_issuers_req = target_issuers_req_owner.get(); @@ -1742,8 +1741,8 @@ path_builder.AddCertIssuerSource(&cert_issuer_source); // Create the mock CertIssuerSource::Request... - std::unique_ptr<StrictMock<MockCertIssuerSourceRequest>> - target_issuers_req_owner(new StrictMock<MockCertIssuerSourceRequest>()); + auto target_issuers_req_owner = + std::make_unique<StrictMock<MockCertIssuerSourceRequest>>(); // Keep a raw pointer to the Request... StrictMock<MockCertIssuerSourceRequest>* target_issuers_req = target_issuers_req_owner.get();
diff --git a/net/cert/nss_cert_database.cc b/net/cert/nss_cert_database.cc index 766203d6..7f1c1290 100644 --- a/net/cert/nss_cert_database.cc +++ b/net/cert/nss_cert_database.cc
@@ -91,7 +91,8 @@ crypto::ScopedPK11Slot private_slot) : public_slot_(std::move(public_slot)), private_slot_(std::move(private_slot)), - observer_list_(new base::ObserverListThreadSafe<Observer>) { + observer_list_( + base::MakeRefCounted<base::ObserverListThreadSafe<Observer>>()) { CHECK(public_slot_); CertDatabase* cert_db = CertDatabase::GetInstance();
diff --git a/net/cert/signed_certificate_timestamp.cc b/net/cert/signed_certificate_timestamp.cc index 21e7fe2f..da6e2c9 100644 --- a/net/cert/signed_certificate_timestamp.cc +++ b/net/cert/signed_certificate_timestamp.cc
@@ -49,8 +49,7 @@ int64_t timestamp; int hash_algorithm; int sig_algorithm; - scoped_refptr<SignedCertificateTimestamp> sct( - new SignedCertificateTimestamp()); + auto sct = base::MakeRefCounted<SignedCertificateTimestamp>(); int origin; // string values are set directly if (!(iter->ReadInt(&version) &&
diff --git a/net/cert/x509_certificate.cc b/net/cert/x509_certificate.cc index 5acf25b..c04dd56 100644 --- a/net/cert/x509_certificate.cc +++ b/net/cert/x509_certificate.cc
@@ -118,7 +118,7 @@ bssl::UniquePtr<CRYPTO_BUFFER> cert_buffer, std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> intermediates) { DCHECK(cert_buffer); - scoped_refptr<X509Certificate> cert( + auto cert = base::WrapRefCounted( new X509Certificate(std::move(cert_buffer), std::move(intermediates))); if (!cert->cert_buffer()) return nullptr; // Initialize() failed. @@ -131,7 +131,7 @@ std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> intermediates, UnsafeCreateOptions options) { DCHECK(cert_buffer); - scoped_refptr<X509Certificate> cert(new X509Certificate( + auto cert = base::WrapRefCounted(new X509Certificate( std::move(cert_buffer), std::move(intermediates), options)); if (!cert->cert_buffer()) return nullptr; // Initialize() failed.
diff --git a/net/cert_net/cert_net_fetcher_url_request.cc b/net/cert_net/cert_net_fetcher_url_request.cc index e570758..b9ed740 100644 --- a/net/cert_net/cert_net_fetcher_url_request.cc +++ b/net/cert_net/cert_net_fetcher_url_request.cc
@@ -803,7 +803,7 @@ CertNetFetcherURLRequest::FetchCaIssuers(const GURL& url, int timeout_milliseconds, int max_response_bytes) { - std::unique_ptr<RequestParams> request_params(new RequestParams); + auto request_params = std::make_unique<RequestParams>(); request_params->url = url; request_params->http_method = HTTP_METHOD_GET; @@ -818,7 +818,7 @@ const GURL& url, int timeout_milliseconds, int max_response_bytes) { - std::unique_ptr<RequestParams> request_params(new RequestParams); + auto request_params = std::make_unique<RequestParams>(); request_params->url = url; request_params->http_method = HTTP_METHOD_GET; @@ -833,7 +833,7 @@ const GURL& url, int timeout_milliseconds, int max_response_bytes) { - std::unique_ptr<RequestParams> request_params(new RequestParams); + auto request_params = std::make_unique<RequestParams>(); request_params->url = url; request_params->http_method = HTTP_METHOD_GET; @@ -867,7 +867,7 @@ std::unique_ptr<CertNetFetcherURLRequest::Request> CertNetFetcherURLRequest::DoFetch( std::unique_ptr<RequestParams> request_params) { - scoped_refptr<RequestCore> request_core = new RequestCore(task_runner_); + auto request_core = base::MakeRefCounted<RequestCore>(task_runner_); // If the fetcher has already been shutdown, DoFetchOnNetworkSequence will // signal the request with an error. However, if the fetcher shuts down
diff --git a/net/cookies/cookie_monster_perftest.cc b/net/cookies/cookie_monster_perftest.cc index 3839ddb..6ad5922 100644 --- a/net/cookies/cookie_monster_perftest.cc +++ b/net/cookies/cookie_monster_perftest.cc
@@ -356,7 +356,7 @@ } TEST_F(CookieMonsterTest, TestImport) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); std::vector<std::unique_ptr<CanonicalCookie>> initial_cookies; GetCookieListCallback getCookieListCallback; @@ -377,8 +377,8 @@ store->SetLoadExpectation(true, std::move(initial_cookies)); - std::unique_ptr<CookieMonster> cm( - new CookieMonster(store.get(), nullptr, kFirstPartySetsEnabled)); + auto cm = std::make_unique<CookieMonster>(store.get(), nullptr, + kFirstPartySetsEnabled); // Import will happen on first access. GURL gurl("www.foo.com"); @@ -394,8 +394,8 @@ } TEST_F(CookieMonsterTest, TestGetKey) { - std::unique_ptr<CookieMonster> cm( - new CookieMonster(nullptr, nullptr, kFirstPartySetsEnabled)); + auto cm = + std::make_unique<CookieMonster>(nullptr, nullptr, kFirstPartySetsEnabled); auto reporter = SetUpCookieMonsterReporter("baseline_story"); base::ElapsedTimer get_key_timer; for (int i = 0; i < kNumCookies; i++)
diff --git a/net/cookies/cookie_monster_store_test.cc b/net/cookies/cookie_monster_store_test.cc index 0bf3379..38bce0b9 100644 --- a/net/cookies/cookie_monster_store_test.cc +++ b/net/cookies/cookie_monster_store_test.cc
@@ -205,8 +205,7 @@ int days_old) { base::Time current(base::Time::Now()); base::Time past_creation(base::Time::Now() - base::Days(100)); - scoped_refptr<MockSimplePersistentCookieStore> store( - new MockSimplePersistentCookieStore); + auto store = base::MakeRefCounted<MockSimplePersistentCookieStore>(); int total_cookies = num_secure_cookies + num_non_secure_cookies; int base = 0; // Must expire to be persistent
diff --git a/net/cookies/cookie_monster_unittest.cc b/net/cookies/cookie_monster_unittest.cc index 0df373f..2d0595e1 100644 --- a/net/cookies/cookie_monster_unittest.cc +++ b/net/cookies/cookie_monster_unittest.cc
@@ -957,9 +957,9 @@ // Function for creating a CM with a number of cookies in it, // no store (and hence no ability to affect access time). - CookieMonster* CreateMonsterForGC(int num_cookies) { - CookieMonster* cm( - new CookieMonster(nullptr, net::NetLog::Get(), kFirstPartySetsDefault)); + std::unique_ptr<CookieMonster> CreateMonsterForGC(int num_cookies) { + auto cm = std::make_unique<CookieMonster>(nullptr, net::NetLog::Get(), + kFirstPartySetsDefault); base::Time creation_time = base::Time::Now(); for (int i = 0; i < num_cookies; i++) { std::unique_ptr<CanonicalCookie> cc( @@ -1443,9 +1443,9 @@ } TEST_F(CookieMonsterTest, TestCookieDeleteAll) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); CookieOptions options = CookieOptions::MakeAllInclusive(); EXPECT_TRUE(SetCookie(cm.get(), http_www_foo_.url(), kValidCookieLine)); @@ -1740,9 +1740,9 @@ kLastAccessThreshold + base::Milliseconds(20); TEST_F(CookieMonsterTest, TestLastAccess) { - std::unique_ptr<CookieMonster> cm( - new CookieMonster(nullptr, kLastAccessThreshold, net::NetLog::Get(), - kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(nullptr, kLastAccessThreshold, + net::NetLog::Get(), + kFirstPartySetsDefault); EXPECT_TRUE(SetCookie(cm.get(), http_www_foo_.url(), "A=B")); const Time last_access_date(GetFirstCookieAccessDate(cm.get())); @@ -1803,8 +1803,8 @@ auto cm = std::make_unique<CookieMonster>(nullptr, net::NetLog::Get(), kFirstPartySetsDefault); - std::unique_ptr<CookieMonster> cm_foo( - new CookieMonster(nullptr, net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm_foo = std::make_unique<CookieMonster>(nullptr, net::NetLog::Get(), + kFirstPartySetsDefault); // Only cm_foo should allow foo:// cookies. std::vector<std::string> schemes; @@ -1865,9 +1865,9 @@ } TEST_F(CookieMonsterTest, GetAllCookiesForURL) { - std::unique_ptr<CookieMonster> cm( - new CookieMonster(nullptr, kLastAccessThreshold, net::NetLog::Get(), - kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(nullptr, kLastAccessThreshold, + net::NetLog::Get(), + kFirstPartySetsDefault); // Create an httponly cookie. CookieOptions options = CookieOptions::MakeAllInclusive(); @@ -1983,9 +1983,9 @@ } TEST_F(CookieMonsterTest, GetExcludedCookiesForURL) { - std::unique_ptr<CookieMonster> cm( - new CookieMonster(nullptr, kLastAccessThreshold, net::NetLog::Get(), - kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(nullptr, kLastAccessThreshold, + net::NetLog::Get(), + kFirstPartySetsDefault); // Create an httponly cookie. CookieOptions options = CookieOptions::MakeAllInclusive(); @@ -2254,7 +2254,7 @@ // // This is a regression test for: http://crbug.com/17855. TEST_F(CookieMonsterTest, DontImportDuplicateCookies) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); // We will fill some initial cookies into the PersistentCookieStore, // to simulate a database with 4 duplicates. Note that we need to @@ -2304,8 +2304,8 @@ // Inject our initial cookies into the mock PersistentCookieStore. store->SetLoadExpectation(true, std::move(initial_cookies)); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Verify that duplicates were not imported for path "/". // (If this had failed, GetCookies() would have also returned X=1, X=2, X=4). @@ -2349,9 +2349,9 @@ Time::Now() + base::Days(1), absl::nullopt, cookie_partition_key); initial_cookies.push_back(std::move(cc)); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); store->SetLoadExpectation(true, std::move(initial_cookies)); @@ -2372,7 +2372,7 @@ // // This is a regression test for: http://crbug.com/43188. TEST_F(CookieMonsterTest, ImportDuplicateCreationTimes) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); Time now(Time::Now()); Time earlier(now - base::Days(1)); @@ -2403,8 +2403,8 @@ // Inject our initial cookies into the mock PersistentCookieStore. store->SetLoadExpectation(true, std::move(initial_cookies)); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); CookieList list(GetAllCookies(cm.get())); EXPECT_EQ(2U, list.size()); @@ -2417,7 +2417,7 @@ } TEST_F(CookieMonsterTest, ImportDuplicateCreationTimes_PartitionedCookies) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); Time now(Time::Now()); Time earlier(now - base::Days(1)); @@ -2461,8 +2461,8 @@ // Inject our initial cookies into the mock PersistentCookieStore. store->SetLoadExpectation(true, std::move(initial_cookies)); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); CookieList list(GetAllCookies(cm.get())); EXPECT_EQ(2U, list.size()); @@ -2533,8 +2533,7 @@ // Store details for cookies transforming through the backing store interface. base::Time current(base::Time::Now()); - scoped_refptr<MockSimplePersistentCookieStore> store( - new MockSimplePersistentCookieStore); + auto store = base::MakeRefCounted<MockSimplePersistentCookieStore>(); base::Time expires(base::Time::Now() + base::Seconds(100)); const CookiesInputInfo input_info[] = { @@ -2551,8 +2550,8 @@ // Create new cookies and flush them to the store. { - std::unique_ptr<CookieMonster> cmout(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cmout = std::make_unique<CookieMonster>( + store.get(), net::NetLog::Get(), kFirstPartySetsDefault); for (const auto& cookie : input_info) { EXPECT_TRUE(SetCanonicalCookie( cmout.get(), @@ -2571,8 +2570,8 @@ // Create a new cookie monster and make sure that everything is correct { - std::unique_ptr<CookieMonster> cmin(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cmin = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); CookieList cookies(GetAllCookies(cmin.get())); ASSERT_EQ(2u, cookies.size()); // Ordering is path length, then creation time. So second cookie @@ -2777,10 +2776,10 @@ TEST_F(CookieMonsterTest, WhileLoadingLoadCompletesBeforeKeyLoadCompletes) { const GURL kUrl = GURL(kTopLevelDomainPlus1); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); store->set_store_load_commands(true); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); auto cookie = CanonicalCookie::Create( kUrl, "a=b", base::Time::Now(), absl::nullopt /* server_time */, @@ -2827,10 +2826,10 @@ TEST_F(CookieMonsterTest, WhileLoadingDeleteAllGetForURL) { const GURL kUrl = GURL(kTopLevelDomainPlus1); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); store->set_store_load_commands(true); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); ResultSavingCookieCallback<uint32_t> delete_callback; cm->DeleteAllAsync(delete_callback.MakeCallback()); @@ -2867,10 +2866,10 @@ TEST_F(CookieMonsterTest, WhileLoadingGetAllSetGetAll) { const GURL kUrl = GURL(kTopLevelDomainPlus1); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); store->set_store_load_commands(true); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); GetAllCookiesCallback get_cookies_callback1; cm->GetAllCookiesAsync(get_cookies_callback1.MakeCallback()); @@ -2918,10 +2917,10 @@ TEST_F(CookieMonsterTest, CheckOrderOfCookieTaskQueueWhenLoadingCompletes) { const GURL kUrl = GURL(kTopLevelDomainPlus1); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); store->set_store_load_commands(true); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Get all cookies task that queues a task to set a cookie when executed. auto cookie = CanonicalCookie::Create( @@ -3016,7 +3015,7 @@ } TEST_F(CookieMonsterTest, SetAllCookies) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cm->SetPersistSessionCookies(true); @@ -3088,7 +3087,7 @@ // Check that DeleteAll does flush (as a quick check that flush_count() works). TEST_F(CookieMonsterTest, DeleteAll) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cm->SetPersistSessionCookies(true); @@ -3162,9 +3161,9 @@ // Test that CookieMonster writes session cookies into the underlying // CookieStore if the "persist session cookies" option is on. TEST_F(CookieMonsterTest, PersistSessionCookies) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); cm->SetPersistSessionCookies(true); // All cookies set with SetCookie are session cookies. @@ -3200,9 +3199,9 @@ // Test the commands sent to the persistent cookie store. TEST_F(CookieMonsterTest, PersisentCookieStorageTest) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Add a cookie. EXPECT_TRUE(SetCookie(cm.get(), http_www_foo_.url(), @@ -3251,7 +3250,7 @@ const std::string domain("host"); const std::string path("/path"); - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); std::vector<std::unique_ptr<CanonicalCookie>> initial_cookies; @@ -3300,8 +3299,8 @@ // Inject our initial cookies into the mock PersistentCookieStore. store->SetLoadExpectation(true, std::move(initial_cookies)); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); EXPECT_EQ("foo=bar; hello=world", GetCookies(cm.get(), url, @@ -3313,9 +3312,9 @@ base::HistogramTester histograms; const std::string cookie_source_histogram = "Cookie.CookieSourceScheme"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(cookie_source_histogram, 0); @@ -3377,7 +3376,7 @@ const char kHistogramName[] = "Cookie.NumKeys"; // Test loading cookies from store. - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); std::vector<std::unique_ptr<CanonicalCookie>> initial_cookies; initial_cookies.push_back(CanonicalCookie::Create( GURL("http://domain1.test"), "A=1", base::Time::Now(), @@ -3547,9 +3546,9 @@ } TEST_F(CookieMonsterTest, MaybeDeleteEquivalentCookieAndUpdateStatus) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Set a secure, httponly cookie from a secure origin auto preexisting_cookie = CanonicalCookie::Create( @@ -3654,9 +3653,9 @@ TEST_F(CookieMonsterTest, MaybeDeleteEquivalentCookieAndUpdateStatus_PartitionedCookies) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Test adding two cookies with the same name, domain, and path but different // partition keys. @@ -3698,9 +3697,9 @@ // Test skipping a cookie in MaybeDeleteEquivalentCookieAndUpdateStatus for // multiple reasons (Secure and HttpOnly). TEST_F(CookieMonsterTest, SkipDontOverwriteForMultipleReasons) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); // Set a secure, httponly cookie from a secure origin auto preexisting_cookie = CanonicalCookie::Create( @@ -3737,9 +3736,9 @@ // Test that when we check for equivalent cookies, we don't remove any if the // cookie should not be set. TEST_F(CookieMonsterTest, DontDeleteEquivalentCookieIfSetIsRejected) { - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); auto preexisting_cookie = CanonicalCookie::Create( http_www_foo_.url(), "cookie=foo", base::Time::Now(), @@ -4387,8 +4386,8 @@ // Tests that strict secure cookies doesn't trip equivalent cookie checks // accidentally. Regression test for https://crbug.com/569943. TEST_F(CookieMonsterTest, EquivalentCookies) { - std::unique_ptr<CookieMonster> cm( - new CookieMonster(nullptr, nullptr, kFirstPartySetsDefault)); + auto cm = + std::make_unique<CookieMonster>(nullptr, nullptr, kFirstPartySetsDefault); GURL http_url("http://www.foo.com"); GURL http_superdomain_url("http://foo.com"); GURL https_url("https://www.foo.com"); @@ -4699,9 +4698,10 @@ public: CookieMonsterNotificationTest() : test_url_("http://www.foo.com/foo"), - store_(new MockPersistentCookieStore), - monster_( - new CookieMonster(store_.get(), nullptr, kFirstPartySetsDefault)) {} + store_(base::MakeRefCounted<MockPersistentCookieStore>()), + monster_(std::make_unique<CookieMonster>(store_.get(), + nullptr, + kFirstPartySetsDefault)) {} ~CookieMonsterNotificationTest() override = default; @@ -4729,7 +4729,7 @@ TEST_F(CookieMonsterNotificationTest, NoNotificationOnLoad) { // Create a persistent store that will not synchronously satisfy the // loading requirement. - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); store->set_store_load_commands(true); // Bind it to a CookieMonster @@ -4983,9 +4983,9 @@ base::HistogramTester histograms; const char kHistogramName[] = "Cookie.DomainSet"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(kHistogramName, 0); @@ -5012,9 +5012,9 @@ const char kHistogramName[] = "Cookie.Port.Read.RemoteHost"; const char kHistogramNameLocal[] = "Cookie.Port.Read.Localhost"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(kHistogramName, 0); @@ -5066,9 +5066,9 @@ const char kHistogramName[] = "Cookie.Port.Set.RemoteHost"; const char kHistogramNameLocal[] = "Cookie.Port.Set.Localhost"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(kHistogramName, 0); @@ -5121,9 +5121,9 @@ const char kHistogramNameDomainSet[] = "Cookie.Port.ReadDiffersFromSet.DomainSet"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(kHistogramName, 0); @@ -5221,9 +5221,9 @@ base::HistogramTester histograms; const char kHistogramName[] = "Cookie.CookieSourceSchemeName"; - scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); - std::unique_ptr<CookieMonster> cm(new CookieMonster( - store.get(), net::NetLog::Get(), kFirstPartySetsDefault)); + auto store = base::MakeRefCounted<MockPersistentCookieStore>(); + auto cm = std::make_unique<CookieMonster>(store.get(), net::NetLog::Get(), + kFirstPartySetsDefault); histograms.ExpectTotalCount(kHistogramName, 0); @@ -5599,7 +5599,7 @@ // creation and expiry dates expected given whether or not clamping is on. TEST_P(CookieMonsterWithClampingTest, FromStorageCookieCreated300DaysAgoThenUpdatedNow) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cookie_monster = std::make_unique<CookieMonster>( store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cookie_monster->SetPersistSessionCookies(true); @@ -5654,7 +5654,7 @@ // creation and expiry dates expected given whether or not clamping is on. TEST_P(CookieMonsterWithClampingTest, FromStorageCookieCreated500DaysAgoThenUpdatedNow) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cookie_monster = std::make_unique<CookieMonster>( store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cookie_monster->SetPersistSessionCookies(true); @@ -5709,7 +5709,7 @@ // expected given whether or not clamping is on. TEST_P(CookieMonsterWithClampingTest, SanitizedCookieCreated300DaysAgoThenUpdatedNow) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cookie_monster = std::make_unique<CookieMonster>( store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cookie_monster->SetPersistSessionCookies(true); @@ -5774,7 +5774,7 @@ // expected given whether or not clamping is on. TEST_P(CookieMonsterWithClampingTest, SanitizedCookieCreated500DaysAgoThenUpdatedNow) { - scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); + auto store = base::MakeRefCounted<FlushablePersistentStore>(); auto cookie_monster = std::make_unique<CookieMonster>( store.get(), net::NetLog::Get(), kFirstPartySetsDefault); cookie_monster->SetPersistSessionCookies(true);
diff --git a/net/cookies/cookie_store_test_helpers.cc b/net/cookies/cookie_store_test_helpers.cc index 31c9538..3e7e5c4f 100644 --- a/net/cookies/cookie_store_test_helpers.cc +++ b/net/cookies/cookie_store_test_helpers.cc
@@ -72,9 +72,10 @@ } DelayedCookieMonster::DelayedCookieMonster() - : cookie_monster_(new CookieMonster(nullptr /* store */, - nullptr /* netlog */, - false /* first_party_sets_enabled */)), + : cookie_monster_(std::make_unique<CookieMonster>( + nullptr /* store */, + nullptr /* netlog */, + false /* first_party_sets_enabled */)), result_(CookieAccessResult(CookieInclusionStatus( CookieInclusionStatus::EXCLUDE_FAILURE_TO_STORE))) {}
diff --git a/net/disk_cache/backend_unittest.cc b/net/disk_cache/backend_unittest.cc index a926b57..e7c8ba9 100644 --- a/net/disk_cache/backend_unittest.cc +++ b/net/disk_cache/backend_unittest.cc
@@ -3896,7 +3896,7 @@ base::FilePath name = cache_impl_->GetFileName(address); { - scoped_refptr<disk_cache::File> file(new disk_cache::File(false)); + auto file = base::MakeRefCounted<disk_cache::File>(false); file->Init(name); #if BUILDFLAG(IS_WIN) @@ -4168,13 +4168,13 @@ cache_.reset(); // Check that the |BackendImpl| does not favor this structure. - disk_cache::BackendImpl* cache = new disk_cache::BackendImpl( + auto cache = std::make_unique<disk_cache::BackendImpl>( cache_path_, nullptr, nullptr, net::DISK_CACHE, nullptr); cache->SetUnitTestMode(); net::TestCompletionCallback cb; cache->Init(cb.callback()); EXPECT_NE(net::OK, cb.WaitForResult()); - delete cache; + cache.reset(); DisableIntegrityCheck(); }
diff --git a/net/disk_cache/blockfile/backend_impl.cc b/net/disk_cache/blockfile/backend_impl.cc index f23ed04..a0f9d6d 100644 --- a/net/disk_cache/blockfile/backend_impl.cc +++ b/net/disk_cache/blockfile/backend_impl.cc
@@ -411,7 +411,7 @@ return net::ERR_FAILED; scoped_refptr<EntryImpl> node; - std::unique_ptr<Rankings::Iterator> iterator(new Rankings::Iterator()); + auto iterator = std::make_unique<Rankings::Iterator>(); scoped_refptr<EntryImpl> next = OpenNextEntryImpl(iterator.get()); if (!next) return net::OK; @@ -453,7 +453,7 @@ stats_.OnEvent(Stats::DOOM_RECENT); for (;;) { - std::unique_ptr<Rankings::Iterator> iterator(new Rankings::Iterator()); + auto iterator = std::make_unique<Rankings::Iterator>(); scoped_refptr<EntryImpl> entry = OpenNextEntryImpl(iterator.get()); if (!entry) return net::OK; @@ -593,8 +593,8 @@ return nullptr; } - scoped_refptr<EntryImpl> cache_entry( - new EntryImpl(this, entry_address, false)); + auto cache_entry = + base::MakeRefCounted<EntryImpl>(this, entry_address, false); IncreaseNumRefs(); if (!cache_entry->CreateEntry(node_address, key, hash)) { @@ -1296,8 +1296,7 @@ public: explicit IteratorImpl(base::WeakPtr<InFlightBackendIO> background_queue) : background_queue_(background_queue), - iterator_(new Rankings::Iterator()) { - } + iterator_(std::make_unique<Rankings::Iterator>()) {} ~IteratorImpl() override { if (background_queue_) @@ -1317,8 +1316,7 @@ }; std::unique_ptr<Backend::Iterator> BackendImpl::CreateIterator() { - return std::unique_ptr<Backend::Iterator>( - new IteratorImpl(GetBackgroundQueue())); + return std::make_unique<IteratorImpl>(GetBackgroundQueue()); } void BackendImpl::GetStats(StatsItems* stats) { @@ -1389,7 +1387,7 @@ static_assert(sizeof(disk_cache::IndexHeader) < kPageSize, "Code below assumes it wouldn't overwrite header by starting " "at kPageSize"); - std::unique_ptr<char[]> page(new char[kPageSize]); + auto page = std::make_unique<char[]>(kPageSize); memset(page.get(), 0, kPageSize); for (size_t offset = kPageSize; offset < size; offset += kPageSize) { @@ -1416,8 +1414,7 @@ bool ret = true; *file_created = base_file.created(); - scoped_refptr<disk_cache::File> file( - new disk_cache::File(std::move(base_file))); + auto file = base::MakeRefCounted<disk_cache::File>(std::move(base_file)); if (*file_created) ret = CreateBackingStore(file.get()); @@ -1425,7 +1422,7 @@ if (!ret) return false; - index_ = new MappedFile(); + index_ = base::MakeRefCounted<MappedFile>(); data_ = static_cast<Index*>(index_->Init(index_name, 0)); if (!data_) { LOG(ERROR) << "Unable to map Index file"; @@ -1497,7 +1494,7 @@ if (!file) return false; - std::unique_ptr<char[]> data(new char[size]); + auto data = std::make_unique<char[]>(size); size_t offset = address.start_block() * address.BlockSize() + kBlockHeaderSize; if (!file->Read(data.get(), size, offset)) @@ -1512,7 +1509,7 @@ void BackendImpl::StoreStats() { int size = stats_.StorageSize(); - std::unique_ptr<char[]> data(new char[size]); + auto data = std::make_unique<char[]>(size); Addr address; size = stats_.SerializeStats(data.get(), size, &address); DCHECK(size); @@ -1592,8 +1589,7 @@ return ERR_INVALID_ADDRESS; } - scoped_refptr<EntryImpl> cache_entry( - new EntryImpl(this, address, read_only_)); + auto cache_entry = base::MakeRefCounted<EntryImpl>(this, address, read_only_); IncreaseNumRefs(); *entry = nullptr;
diff --git a/net/disk_cache/blockfile/block_files.cc b/net/disk_cache/blockfile/block_files.cc index 0297e67e..afb9a5f 100644 --- a/net/disk_cache/blockfile/block_files.cc +++ b/net/disk_cache/blockfile/block_files.cc
@@ -394,8 +394,8 @@ static bool read_contents = false; if (read_contents) { - std::unique_ptr<char[]> buffer; - buffer.reset(new char[Addr::BlockSizeForFileType(BLOCK_4K) * 4]); + auto buffer = + std::make_unique<char[]>(Addr::BlockSizeForFileType(BLOCK_4K) * 4); size_t size = address.BlockSize() * address.num_blocks(); size_t offset = address.start_block() * address.BlockSize() + kBlockHeaderSize; @@ -412,7 +412,7 @@ int flags = force ? base::File::FLAG_CREATE_ALWAYS : base::File::FLAG_CREATE; flags |= base::File::FLAG_WRITE | base::File::FLAG_WIN_EXCLUSIVE_WRITE; - scoped_refptr<File> file(new File(base::File(name, flags))); + auto file = base::MakeRefCounted<File>(base::File(name, flags)); if (!file->IsValid()) return false; @@ -435,7 +435,7 @@ } base::FilePath name = Name(index); - scoped_refptr<MappedFile> file(new MappedFile()); + auto file = base::MakeRefCounted<MappedFile>(); if (!file->Init(name, kBlockHeaderSize)) { LOG(ERROR) << "Failed to open " << name.value(); @@ -593,7 +593,7 @@ // We get a new handle to the file and release the old one so that the // file gets unmmaped... so we can delete it. base::FilePath name = Name(file_index); - scoped_refptr<File> this_file(new File(false)); + auto this_file = base::MakeRefCounted<File>(false); this_file->Init(name); block_files_[file_index] = nullptr;
diff --git a/net/disk_cache/blockfile/block_files_unittest.cc b/net/disk_cache/blockfile/block_files_unittest.cc index 119a477..a2168ea9 100644 --- a/net/disk_cache/blockfile/block_files_unittest.cc +++ b/net/disk_cache/blockfile/block_files_unittest.cc
@@ -173,7 +173,7 @@ files.CloseFiles(); // Truncate one of the files. { - scoped_refptr<File> file(new File); + auto file = base::MakeRefCounted<File>(); ASSERT_TRUE(file->Init(filename)); EXPECT_TRUE(file->SetLength(0)); } @@ -196,7 +196,7 @@ files.CloseFiles(); // Truncate one of the files. { - scoped_refptr<File> file(new File); + auto file = base::MakeRefCounted<File>(); ASSERT_TRUE(file->Init(filename)); EXPECT_TRUE(file->SetLength(15000)); }
diff --git a/net/disk_cache/blockfile/entry_impl.cc b/net/disk_cache/blockfile/entry_impl.cc index 1912a7d..339075fa 100644 --- a/net/disk_cache/blockfile/entry_impl.cc +++ b/net/disk_cache/blockfile/entry_impl.cc
@@ -1304,7 +1304,7 @@ DCHECK(index >= 0 && index <= kKeyFileIndex); if (!files_[index].get()) { // For a key file, use mixed mode IO. - scoped_refptr<File> file(new File(kKeyFileIndex == index)); + auto file = base::MakeRefCounted<File>(kKeyFileIndex == index); if (file->Init(backend_->GetFileName(address))) files_[index].swap(file); } @@ -1560,7 +1560,7 @@ return net::OK; // Use a local variable so that sparse_ never goes from 'valid' to NULL. - std::unique_ptr<SparseControl> sparse(new SparseControl(this)); + auto sparse = std::make_unique<SparseControl>(this); int result = sparse->Init(); if (net::OK == result) sparse_.swap(sparse);
diff --git a/net/disk_cache/blockfile/file_ios.cc b/net/disk_cache/blockfile/file_ios.cc index 74739efa..c910da3 100644 --- a/net/disk_cache/blockfile/file_ios.cc +++ b/net/disk_cache/blockfile/file_ios.cc
@@ -118,8 +118,8 @@ void FileInFlightIO::PostRead(disk_cache::File *file, void* buf, size_t buf_len, size_t offset, disk_cache::FileIOCallback *callback) { - scoped_refptr<FileBackgroundIO> operation( - new FileBackgroundIO(file, buf, buf_len, offset, callback, this)); + auto operation = base::MakeRefCounted<FileBackgroundIO>( + file, buf, buf_len, offset, callback, this); file->AddRef(); // Balanced on OnOperationComplete() base::ThreadPool::PostTask( @@ -132,8 +132,8 @@ void FileInFlightIO::PostWrite(disk_cache::File* file, const void* buf, size_t buf_len, size_t offset, disk_cache::FileIOCallback* callback) { - scoped_refptr<FileBackgroundIO> operation( - new FileBackgroundIO(file, buf, buf_len, offset, callback, this)); + auto operation = base::MakeRefCounted<FileBackgroundIO>( + file, buf, buf_len, offset, callback, this); file->AddRef(); // Balanced on OnOperationComplete() base::ThreadPool::PostTask(
diff --git a/net/disk_cache/blockfile/file_win.cc b/net/disk_cache/blockfile/file_win.cc index 7985c44f..61c98814 100644 --- a/net/disk_cache/blockfile/file_win.cc +++ b/net/disk_cache/blockfile/file_win.cc
@@ -63,7 +63,8 @@ class CompletionHandlerHolder { public: - CompletionHandlerHolder() { completion_handler_ = new CompletionHandler; } + CompletionHandlerHolder() + : completion_handler_(base::MakeRefCounted<CompletionHandler>()) {} CompletionHandler* completion_handler() { return completion_handler_.get(); }
diff --git a/net/disk_cache/blockfile/in_flight_backend_io.cc b/net/disk_cache/blockfile/in_flight_backend_io.cc index 0f18911..48e1845 100644 --- a/net/disk_cache/blockfile/in_flight_backend_io.cc +++ b/net/disk_cache/blockfile/in_flight_backend_io.cc
@@ -407,47 +407,47 @@ InFlightBackendIO::~InFlightBackendIO() = default; void InFlightBackendIO::Init(net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->Init(); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::OpenOrCreateEntry(const std::string& key, EntryResultCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->OpenOrCreateEntry(key); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::OpenEntry(const std::string& key, EntryResultCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->OpenEntry(key); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::CreateEntry(const std::string& key, EntryResultCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->CreateEntry(key); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::DoomEntry(const std::string& key, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->DoomEntry(key); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::DoomAllEntries(net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->DoomAllEntries(); PostOperation(FROM_HERE, operation.get()); } @@ -456,76 +456,76 @@ const base::Time initial_time, const base::Time end_time, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->DoomEntriesBetween(initial_time, end_time); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::CalculateSizeOfAllEntries( net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->CalculateSizeOfAllEntries(); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::DoomEntriesSince(const base::Time initial_time, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->DoomEntriesSince(initial_time); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::OpenNextEntry(Rankings::Iterator* iterator, EntryResultCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->OpenNextEntry(iterator); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::EndEnumeration( std::unique_ptr<Rankings::Iterator> iterator) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, net::CompletionOnceCallback())); + auto operation = base::MakeRefCounted<BackendIO>( + this, backend_, net::CompletionOnceCallback()); operation->EndEnumeration(std::move(iterator)); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::OnExternalCacheHit(const std::string& key) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, net::CompletionOnceCallback())); + auto operation = base::MakeRefCounted<BackendIO>( + this, backend_, net::CompletionOnceCallback()); operation->OnExternalCacheHit(key); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::CloseEntryImpl(EntryImpl* entry) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, net::CompletionOnceCallback())); + auto operation = base::MakeRefCounted<BackendIO>( + this, backend_, net::CompletionOnceCallback()); operation->CloseEntryImpl(entry); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::DoomEntryImpl(EntryImpl* entry) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, net::CompletionOnceCallback())); + auto operation = base::MakeRefCounted<BackendIO>( + this, backend_, net::CompletionOnceCallback()); operation->DoomEntryImpl(entry); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::FlushQueue(net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->FlushQueue(); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::RunTask(base::OnceClosure task, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->RunTask(std::move(task)); PostOperation(FROM_HERE, operation.get()); } @@ -536,8 +536,8 @@ net::IOBuffer* buf, int buf_len, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->ReadData(entry, index, offset, buf, buf_len); PostOperation(FROM_HERE, operation.get()); } @@ -549,8 +549,8 @@ int buf_len, bool truncate, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->WriteData(entry, index, offset, buf, buf_len, truncate); PostOperation(FROM_HERE, operation.get()); } @@ -560,8 +560,8 @@ net::IOBuffer* buf, int buf_len, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->ReadSparseData(entry, offset, buf, buf_len); PostOperation(FROM_HERE, operation.get()); } @@ -571,8 +571,8 @@ net::IOBuffer* buf, int buf_len, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->WriteSparseData(entry, offset, buf, buf_len); PostOperation(FROM_HERE, operation.get()); } @@ -581,23 +581,23 @@ int64_t offset, int len, RangeResultCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->GetAvailableRange(entry, offset, len); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::CancelSparseIO(EntryImpl* entry) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, net::CompletionOnceCallback())); + auto operation = base::MakeRefCounted<BackendIO>( + this, backend_, net::CompletionOnceCallback()); operation->CancelSparseIO(entry); PostOperation(FROM_HERE, operation.get()); } void InFlightBackendIO::ReadyForSparseIO(EntryImpl* entry, net::CompletionOnceCallback callback) { - scoped_refptr<BackendIO> operation( - new BackendIO(this, backend_, std::move(callback))); + auto operation = + base::MakeRefCounted<BackendIO>(this, backend_, std::move(callback)); operation->ReadyForSparseIO(entry); PostOperation(FROM_HERE, operation.get()); }
diff --git a/net/disk_cache/blockfile/mapped_file.cc b/net/disk_cache/blockfile/mapped_file.cc index b2fedd2..7cac41e 100644 --- a/net/disk_cache/blockfile/mapped_file.cc +++ b/net/disk_cache/blockfile/mapped_file.cc
@@ -23,7 +23,7 @@ bool MappedFile::Preload() { size_t file_len = GetLength(); - std::unique_ptr<char[]> buf(new char[file_len]); + auto buf = std::make_unique<char[]>(file_len); if (!Read(buf.get(), file_len, 0)) return false; return true;
diff --git a/net/disk_cache/blockfile/mapped_file_posix.cc b/net/disk_cache/blockfile/mapped_file_posix.cc index 7921ffd..bc94afc 100644 --- a/net/disk_cache/blockfile/mapped_file_posix.cc +++ b/net/disk_cache/blockfile/mapped_file_posix.cc
@@ -31,7 +31,7 @@ buffer_ = nullptr; // Make sure we detect hardware failures reading the headers. - std::unique_ptr<char[]> temp(new char[temp_len]); + auto temp = std::make_unique<char[]>(temp_len); if (!Read(temp.get(), temp_len, 0)) return nullptr;
diff --git a/net/disk_cache/blockfile/mapped_file_unittest.cc b/net/disk_cache/blockfile/mapped_file_unittest.cc index b9147fd..d8bfb6ec 100644 --- a/net/disk_cache/blockfile/mapped_file_unittest.cc +++ b/net/disk_cache/blockfile/mapped_file_unittest.cc
@@ -44,7 +44,7 @@ TEST_F(DiskCacheTest, MappedFile_SyncIO) { base::FilePath filename = cache_path_.AppendASCII("a_test"); - scoped_refptr<disk_cache::MappedFile> file(new disk_cache::MappedFile); + auto file = base::MakeRefCounted<disk_cache::MappedFile>(); ASSERT_TRUE(CreateCacheTestFile(filename)); ASSERT_TRUE(file->Init(filename, 8192)); @@ -59,7 +59,7 @@ TEST_F(DiskCacheTest, MappedFile_AsyncIO) { base::FilePath filename = cache_path_.AppendASCII("a_test"); - scoped_refptr<disk_cache::MappedFile> file(new disk_cache::MappedFile); + auto file = base::MakeRefCounted<disk_cache::MappedFile>(); ASSERT_TRUE(CreateCacheTestFile(filename)); ASSERT_TRUE(file->Init(filename, 8192));
diff --git a/net/disk_cache/blockfile/mapped_file_win.cc b/net/disk_cache/blockfile/mapped_file_win.cc index 5829dcc4..3cc771e 100644 --- a/net/disk_cache/blockfile/mapped_file_win.cc +++ b/net/disk_cache/blockfile/mapped_file_win.cc
@@ -32,7 +32,7 @@ // Make sure we detect hardware failures reading the headers. size_t temp_len = size ? size : 4096; - std::unique_ptr<char[]> temp(new char[temp_len]); + auto temp = std::make_unique<char[]>(temp_len); if (!Read(temp.get(), temp_len, 0)) return nullptr;
diff --git a/net/disk_cache/blockfile/sparse_control.cc b/net/disk_cache/blockfile/sparse_control.cc index 96cb03c..624d3e3 100644 --- a/net/disk_cache/blockfile/sparse_control.cc +++ b/net/disk_cache/blockfile/sparse_control.cc
@@ -130,7 +130,7 @@ size_t file_offset = address.start_block() * address.BlockSize() + disk_cache::kBlockHeaderSize; - buffer_.reset(new char[len]); + buffer_ = std::make_unique<char[]>(len); bool completed; if (!file->Read(buffer_.get(), len, file_offset, this, &completed)) return Release();
diff --git a/net/disk_cache/blockfile/stats_unittest.cc b/net/disk_cache/blockfile/stats_unittest.cc index afe31d9f..be15cbf 100644 --- a/net/disk_cache/blockfile/stats_unittest.cc +++ b/net/disk_cache/blockfile/stats_unittest.cc
@@ -17,7 +17,7 @@ TEST(DiskCacheStatsTest, InitWithEmptyBuffer) { disk_cache::Stats stats; int required_len = stats.StorageSize(); - std::unique_ptr<char[]> storage(new char[required_len]); + auto storage = std::make_unique<char[]>(required_len); memset(storage.get(), 0, required_len); ASSERT_TRUE(stats.Init(storage.get(), required_len, disk_cache::Addr())); @@ -27,7 +27,7 @@ TEST(DiskCacheStatsTest, FailsInit) { disk_cache::Stats stats; int required_len = stats.StorageSize(); - std::unique_ptr<char[]> storage(new char[required_len]); + auto storage = std::make_unique<char[]>(required_len); memset(storage.get(), 0, required_len); // Try a small buffer. @@ -41,7 +41,7 @@ } TEST(DiskCacheStatsTest, SaveRestore) { - std::unique_ptr<disk_cache::Stats> stats(new disk_cache::Stats); + auto stats = std::make_unique<disk_cache::Stats>(); disk_cache::Addr addr(5); ASSERT_TRUE(stats->Init(nullptr, 0, addr)); @@ -52,7 +52,7 @@ stats->OnEvent(disk_cache::Stats::DOOM_RECENT); int required_len = stats->StorageSize(); - std::unique_ptr<char[]> storage(new char[required_len]); + auto storage = std::make_unique<char[]>(required_len); disk_cache::Addr out_addr; int real_len = stats->SerializeStats(storage.get(), required_len, &out_addr); EXPECT_GE(required_len, real_len);
diff --git a/net/disk_cache/blockfile/storage_block_unittest.cc b/net/disk_cache/blockfile/storage_block_unittest.cc index 9992edc..7d7c13be 100644 --- a/net/disk_cache/blockfile/storage_block_unittest.cc +++ b/net/disk_cache/blockfile/storage_block_unittest.cc
@@ -14,7 +14,7 @@ TEST_F(DiskCacheTest, StorageBlock_LoadStore) { base::FilePath filename = cache_path_.AppendASCII("a_test"); - scoped_refptr<disk_cache::MappedFile> file(new disk_cache::MappedFile); + auto file = base::MakeRefCounted<disk_cache::MappedFile>(); ASSERT_TRUE(CreateCacheTestFile(filename)); ASSERT_TRUE(file->Init(filename, 8192)); @@ -34,7 +34,7 @@ TEST_F(DiskCacheTest, StorageBlock_SetData) { base::FilePath filename = cache_path_.AppendASCII("a_test"); - scoped_refptr<disk_cache::MappedFile> file(new disk_cache::MappedFile); + auto file = base::MakeRefCounted<disk_cache::MappedFile>(); ASSERT_TRUE(CreateCacheTestFile(filename)); ASSERT_TRUE(file->Init(filename, 8192)); @@ -54,17 +54,17 @@ TEST_F(DiskCacheTest, StorageBlock_SetModified) { base::FilePath filename = cache_path_.AppendASCII("a_test"); - scoped_refptr<disk_cache::MappedFile> file(new disk_cache::MappedFile); + auto file = base::MakeRefCounted<disk_cache::MappedFile>(); ASSERT_TRUE(CreateCacheTestFile(filename)); ASSERT_TRUE(file->Init(filename, 8192)); - CacheEntryBlock* entry1 = - new CacheEntryBlock(file.get(), disk_cache::Addr(0xa0010003)); + auto entry1 = std::make_unique<CacheEntryBlock>(file.get(), + disk_cache::Addr(0xa0010003)); EXPECT_TRUE(entry1->Load()); EXPECT_TRUE(0 == entry1->Data()->hash); entry1->Data()->hash = 0x45687912; entry1->set_modified(); - delete entry1; + entry1.reset(); CacheEntryBlock entry2(file.get(), disk_cache::Addr(0xa0010003)); EXPECT_TRUE(entry2.Load());
diff --git a/net/disk_cache/disk_cache.cc b/net/disk_cache/disk_cache.cc index f8eee0b..b31892c1 100644 --- a/net/disk_cache/disk_cache.cc +++ b/net/disk_cache/disk_cache.cc
@@ -136,11 +136,11 @@ if (backend_type_ == net::CACHE_BACKEND_SIMPLE || (backend_type_ == net::CACHE_BACKEND_DEFAULT && kSimpleBackendIsDefault)) { - disk_cache::SimpleBackendImpl* simple_cache = - new disk_cache::SimpleBackendImpl( - file_operations_factory_, path_, cleanup_tracker_.get(), - /* file_tracker = */ nullptr, max_bytes_, type_, net_log_); - created_cache_.reset(simple_cache); + auto cache = std::make_unique<disk_cache::SimpleBackendImpl>( + file_operations_factory_, path_, cleanup_tracker_.get(), + /* file_tracker = */ nullptr, max_bytes_, type_, net_log_); + disk_cache::SimpleBackendImpl* simple_cache = cache.get(); + created_cache_ = std::move(cache); #if BUILDFLAG(IS_ANDROID) if (app_status_listener_) simple_cache->set_app_status_listener(app_status_listener_); @@ -154,10 +154,11 @@ #if BUILDFLAG(IS_ANDROID) return net::ERR_FAILED; #else - disk_cache::BackendImpl* new_cache = - new disk_cache::BackendImpl(path_, cleanup_tracker_.get(), - /*cache_thread = */ nullptr, type_, net_log_); - created_cache_.reset(new_cache); + auto cache = std::make_unique<disk_cache::BackendImpl>( + path_, cleanup_tracker_.get(), + /*cache_thread = */ nullptr, type_, net_log_); + disk_cache::BackendImpl* new_cache = cache.get(); + created_cache_ = std::move(cache); new_cache->SetMaxSize(max_bytes_); new_cache->Init( base::BindOnce(&CacheCreator::OnIOComplete, base::Unretained(this)));
diff --git a/net/disk_cache/disk_cache_fuzzer.cc b/net/disk_cache/disk_cache_fuzzer.cc index fadae57..e111cbe9 100644 --- a/net/disk_cache/disk_cache_fuzzer.cc +++ b/net/disk_cache/disk_cache_fuzzer.cc
@@ -1151,8 +1151,9 @@ bool simple_cache_wait_for_index) { if (cache_backend == disk_cache_fuzzer::FuzzCommands::IN_MEMORY) { MAYBE_PRINT << "Using in-memory cache." << std::endl; - mem_cache_ = new disk_cache::MemBackendImpl(nullptr); - cache_.reset(mem_cache_); + auto cache = std::make_unique<disk_cache::MemBackendImpl>(nullptr); + mem_cache_ = cache.get(); + cache_ = std::move(cache); CHECK(cache_); } else if (cache_backend == disk_cache_fuzzer::FuzzCommands::SIMPLE) { MAYBE_PRINT << "Using simple cache." << std::endl; @@ -1162,11 +1163,10 @@ if (!simple_file_tracker_) simple_file_tracker_ = std::make_unique<disk_cache::SimpleFileTracker>(kMaxFdsSimpleCache); - std::unique_ptr<disk_cache::SimpleBackendImpl> simple_backend = - std::make_unique<disk_cache::SimpleBackendImpl>( - /*file_operations=*/nullptr, cache_path_, - /*cleanup_tracker=*/nullptr, simple_file_tracker_.get(), max_size_, - type, /*net_log=*/nullptr); + auto simple_backend = std::make_unique<disk_cache::SimpleBackendImpl>( + /*file_operations=*/nullptr, cache_path_, + /*cleanup_tracker=*/nullptr, simple_file_tracker_.get(), max_size_, + type, /*net_log=*/nullptr); simple_backend->Init(cb.callback()); CHECK_EQ(cb.WaitForResult(), net::OK); simple_cache_impl_ = simple_backend.get(); @@ -1183,20 +1183,23 @@ } } else { MAYBE_PRINT << "Using blockfile cache"; - + std::unique_ptr<disk_cache::BackendImpl> cache; if (mask) { MAYBE_PRINT << ", mask = " << mask << std::endl; - block_impl_ = new disk_cache::BackendImpl(cache_path_, mask, - /* runner = */ nullptr, type, - /* net_log = */ nullptr); + cache = std::make_unique<disk_cache::BackendImpl>( + cache_path_, mask, + /* runner = */ nullptr, type, + /* net_log = */ nullptr); } else { MAYBE_PRINT << "." << std::endl; - block_impl_ = new disk_cache::BackendImpl(cache_path_, - /* cleanup_tracker = */ nullptr, - /* runner = */ nullptr, type, - /* net_log = */ nullptr); + cache = std::make_unique<disk_cache::BackendImpl>( + cache_path_, + /* cleanup_tracker = */ nullptr, + /* runner = */ nullptr, type, + /* net_log = */ nullptr); } - cache_.reset(block_impl_); + block_impl_ = cache.get(); + cache_ = std::move(cache); CHECK(cache_); // TODO(mpdenton) kNoRandom or not? It does a lot of waiting for IO. May be // good for avoiding leaks but tests a less realistic cache.
diff --git a/net/disk_cache/disk_cache_test_base.cc b/net/disk_cache/disk_cache_test_base.cc index a3bcf72c..9e36dd9 100644 --- a/net/disk_cache/disk_cache_test_base.cc +++ b/net/disk_cache/disk_cache_test_base.cc
@@ -352,8 +352,9 @@ } void DiskCacheTestWithCache::InitMemoryCache() { - mem_cache_ = new disk_cache::MemBackendImpl(nullptr); - cache_.reset(mem_cache_); + auto cache = std::make_unique<disk_cache::MemBackendImpl>(nullptr); + mem_cache_ = cache.get(); + cache_ = std::move(cache); ASSERT_TRUE(cache_); if (size_) @@ -404,14 +405,18 @@ return; } - if (mask_) - cache_impl_ = new disk_cache::BackendImpl(cache_path_, mask_, runner, type_, - /* net_log = */ nullptr); - else - cache_impl_ = new disk_cache::BackendImpl( + std::unique_ptr<disk_cache::BackendImpl> cache; + if (mask_) { + cache = std::make_unique<disk_cache::BackendImpl>(cache_path_, mask_, + runner, type_, + /* net_log = */ nullptr); + } else { + cache = std::make_unique<disk_cache::BackendImpl>( cache_path_, /* cleanup_tracker = */ nullptr, runner, type_, /* net_log = */ nullptr); - cache_.reset(cache_impl_); + } + cache_impl_ = cache.get(); + cache_ = std::move(cache); ASSERT_TRUE(cache_); if (size_) EXPECT_TRUE(cache_impl_->SetMaxSize(size_));
diff --git a/net/disk_cache/disk_cache_test_util.cc b/net/disk_cache/disk_cache_test_util.cc index a07cfc35..7256850a 100644 --- a/net/disk_cache/disk_cache_test_util.cc +++ b/net/disk_cache/disk_cache_test_util.cc
@@ -62,9 +62,9 @@ bool new_eviction, int max_size, uint32_t mask) { - std::unique_ptr<disk_cache::BackendImpl> cache(new disk_cache::BackendImpl( + auto cache = std::make_unique<disk_cache::BackendImpl>( path, mask, base::ThreadTaskRunnerHandle::Get(), net::DISK_CACHE, - nullptr)); + nullptr); if (max_size) cache->SetMaxSize(max_size); if (!cache.get())
diff --git a/net/disk_cache/memory/mem_backend_impl.cc b/net/disk_cache/memory/mem_backend_impl.cc index 993792e4..951427d 100644 --- a/net/disk_cache/memory/mem_backend_impl.cc +++ b/net/disk_cache/memory/mem_backend_impl.cc
@@ -308,8 +308,7 @@ }; std::unique_ptr<Backend::Iterator> MemBackendImpl::CreateIterator() { - return std::unique_ptr<Backend::Iterator>( - new MemIterator(weak_factory_.GetWeakPtr())); + return std::make_unique<MemIterator>(weak_factory_.GetWeakPtr()); } void MemBackendImpl::OnExternalCacheHit(const std::string& key) {
diff --git a/net/disk_cache/simple/simple_backend_impl.cc b/net/disk_cache/simple/simple_backend_impl.cc index 38380bb..db4db67 100644 --- a/net/disk_cache/simple/simple_backend_impl.cc +++ b/net/disk_cache/simple/simple_backend_impl.cc
@@ -22,6 +22,7 @@ #include "base/files/file_util.h" #include "base/lazy_instance.h" #include "base/location.h" +#include "base/memory/ptr_util.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_functions.h" @@ -192,9 +193,7 @@ static std::unique_ptr<SimpleEntryImpl::ActiveEntryProxy> Create( int64_t entry_hash, SimpleBackendImpl* backend) { - std::unique_ptr<SimpleEntryImpl::ActiveEntryProxy> proxy( - new ActiveEntryProxy(entry_hash, backend)); - return proxy; + return base::WrapUnique(new ActiveEntryProxy(entry_hash, backend)); } private: @@ -300,8 +299,7 @@ void SimpleBackendImpl::DoomEntries(std::vector<uint64_t>* entry_hashes, net::CompletionOnceCallback callback) { - std::unique_ptr<std::vector<uint64_t>> mass_doom_entry_hashes( - new std::vector<uint64_t>()); + auto mass_doom_entry_hashes = std::make_unique<std::vector<uint64_t>>(); mass_doom_entry_hashes->swap(*entry_hashes); std::vector<uint64_t> to_doom_individually_hashes; @@ -628,7 +626,7 @@ }; std::unique_ptr<Backend::Iterator> SimpleBackendImpl::CreateIterator() { - return std::unique_ptr<Iterator>(new SimpleIterator(AsWeakPtr())); + return std::make_unique<SimpleIterator>(AsWeakPtr()); } void SimpleBackendImpl::GetStats(base::StringPairs* stats) {
diff --git a/net/disk_cache/simple/simple_entry_impl.cc b/net/disk_cache/simple/simple_entry_impl.cc index 2a48da9..7a11711 100644 --- a/net/disk_cache/simple/simple_entry_impl.cc +++ b/net/disk_cache/simple/simple_entry_impl.cc
@@ -788,9 +788,8 @@ DCHECK(!synchronous_entry_); state_ = STATE_IO_PENDING; const base::TimeTicks start_time = base::TimeTicks::Now(); - std::unique_ptr<SimpleEntryCreationResults> results( - new SimpleEntryCreationResults(SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_))); + auto results = std::make_unique<SimpleEntryCreationResults>(SimpleEntryStat( + last_used_, last_modified_, data_size_, sparse_data_size_)); int32_t trailer_prefetch_size = -1; base::Time last_used_time; @@ -846,9 +845,8 @@ last_used_ = last_modified_ = base::Time::Now(); const base::TimeTicks start_time = base::TimeTicks::Now(); - std::unique_ptr<SimpleEntryCreationResults> results( - new SimpleEntryCreationResults(SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_))); + auto results = std::make_unique<SimpleEntryCreationResults>(SimpleEntryStat( + last_used_, last_modified_, data_size_, sparse_data_size_)); OnceClosure task = base::BindOnce(&SimpleSynchronousEntry::CreateEntry, cache_type_, path_, @@ -897,9 +895,8 @@ DCHECK(!synchronous_entry_); state_ = STATE_IO_PENDING; const base::TimeTicks start_time = base::TimeTicks::Now(); - std::unique_ptr<SimpleEntryCreationResults> results( - new SimpleEntryCreationResults(SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_))); + auto results = std::make_unique<SimpleEntryCreationResults>(SimpleEntryStat( + last_used_, last_modified_, data_size_, sparse_data_size_)); int32_t trailer_prefetch_size = -1; base::Time last_used_time; @@ -937,8 +934,7 @@ } typedef SimpleSynchronousEntry::CRCRecord CRCRecord; - std::unique_ptr<std::vector<CRCRecord>> crc32s_to_write( - new std::vector<CRCRecord>()); + auto crc32s_to_write = std::make_unique<std::vector<CRCRecord>>(); net_log_.AddEvent(net::NetLogEventType::SIMPLE_CACHE_ENTRY_CLOSE_BEGIN); @@ -959,8 +955,7 @@ DCHECK(STATE_UNINITIALIZED == state_ || STATE_FAILURE == state_); } - std::unique_ptr<SimpleEntryCloseResults> results = - std::make_unique<SimpleEntryCloseResults>(); + auto results = std::make_unique<SimpleEntryCloseResults>(); if (synchronous_entry_) { OnceClosure task = base::BindOnce( &SimpleSynchronousEntry::Close, base::Unretained(synchronous_entry_), @@ -1049,10 +1044,9 @@ read_req.request_verify_crc = !have_written_[stream_index]; } - std::unique_ptr<SimpleSynchronousEntry::ReadResult> result = - std::make_unique<SimpleSynchronousEntry::ReadResult>(); - std::unique_ptr<SimpleEntryStat> entry_stat(new SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_)); + auto result = std::make_unique<SimpleSynchronousEntry::ReadResult>(); + auto entry_stat = std::make_unique<SimpleEntryStat>( + last_used_, last_modified_, data_size_, sparse_data_size_); OnceClosure task = base::BindOnce( &SimpleSynchronousEntry::ReadData, base::Unretained(synchronous_entry_), read_req, entry_stat.get(), base::RetainedRef(buf), result.get()); @@ -1139,8 +1133,8 @@ } // |entry_stat| needs to be initialized before modifying |data_size_|. - std::unique_ptr<SimpleEntryStat> entry_stat(new SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_)); + auto entry_stat = std::make_unique<SimpleEntryStat>( + last_used_, last_modified_, data_size_, sparse_data_size_); if (truncate) { data_size_[stream_index] = offset + buf_len; } else { @@ -1148,8 +1142,7 @@ GetDataSize(stream_index)); } - std::unique_ptr<SimpleSynchronousEntry::WriteResult> write_result = - std::make_unique<SimpleSynchronousEntry::WriteResult>(); + auto write_result = std::make_unique<SimpleSynchronousEntry::WriteResult>(); // Since we don't know the correct values for |last_used_| and // |last_modified_| yet, we make this approximation. @@ -1212,8 +1205,8 @@ DCHECK_EQ(STATE_READY, state_); state_ = STATE_IO_PENDING; - std::unique_ptr<int> result(new int()); - std::unique_ptr<base::Time> last_used(new base::Time()); + auto result = std::make_unique<int>(); + auto last_used = std::make_unique<base::Time>(); OnceClosure task = base::BindOnce( &SimpleSynchronousEntry::ReadSparseData, base::Unretained(synchronous_entry_), @@ -1263,12 +1256,12 @@ max_sparse_data_size = max_cache_size / kMaxSparseDataSizeDivisor; } - std::unique_ptr<SimpleEntryStat> entry_stat(new SimpleEntryStat( - last_used_, last_modified_, data_size_, sparse_data_size_)); + auto entry_stat = std::make_unique<SimpleEntryStat>( + last_used_, last_modified_, data_size_, sparse_data_size_); last_used_ = last_modified_ = base::Time::Now(); - std::unique_ptr<int> result(new int()); + auto result = std::make_unique<int>(); OnceClosure task = base::BindOnce( &SimpleSynchronousEntry::WriteSparseData, base::Unretained(synchronous_entry_),
diff --git a/net/disk_cache/simple/simple_file_tracker.cc b/net/disk_cache/simple/simple_file_tracker.cc index 45a78305..7560a86 100644 --- a/net/disk_cache/simple/simple_file_tracker.cc +++ b/net/disk_cache/simple/simple_file_tracker.cc
@@ -63,7 +63,7 @@ } if (!owners_files) { - candidates.emplace_back(new TrackedFiles()); + candidates.emplace_back(std::make_unique<TrackedFiles>()); owners_files = candidates.back().get(); owners_files->owner = owner; owners_files->key = owner->entry_file_key();
diff --git a/net/disk_cache/simple/simple_index.cc b/net/disk_cache/simple/simple_index.cc index 91ed9e3c..9e1fcc6 100644 --- a/net/disk_cache/simple/simple_index.cc +++ b/net/disk_cache/simple/simple_index.cc
@@ -256,7 +256,7 @@ end_time += EntryMetadata::GetUpperEpsilonForTimeComparisons(); DCHECK(end_time >= initial_time); - std::unique_ptr<HashList> ret_hashes(new HashList()); + auto ret_hashes = std::make_unique<HashList>(); for (const auto& entry : entries_set_) { const EntryMetadata& metadata = entry.second; base::Time entry_time = metadata.GetLastUsedTime();
diff --git a/net/disk_cache/simple/simple_index_unittest.cc b/net/disk_cache/simple/simple_index_unittest.cc index 92cde3b..34d2266 100644 --- a/net/disk_cache/simple/simple_index_unittest.cc +++ b/net/disk_cache/simple/simple_index_unittest.cc
@@ -114,8 +114,7 @@ } void SetUp() override { - std::unique_ptr<MockSimpleIndexFile> index_file( - new MockSimpleIndexFile(CacheType())); + auto index_file = std::make_unique<MockSimpleIndexFile>(CacheType()); index_file_ = index_file->AsWeakPtr(); index_ = std::make_unique<SimpleIndex>(/* io_thread = */ nullptr, @@ -263,13 +262,13 @@ index()->UpdateEntrySize(hashes_.at<4>(), 4u * kSizeResolution); EXPECT_EQ(9u * kSizeResolution, index()->cache_size_); { - std::unique_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); + auto result = std::make_unique<SimpleIndexLoadResult>(); result->did_load = true; index()->MergeInitializingSet(std::move(result)); } EXPECT_EQ(9u * kSizeResolution, index()->cache_size_); { - std::unique_ptr<SimpleIndexLoadResult> result(new SimpleIndexLoadResult()); + auto result = std::make_unique<SimpleIndexLoadResult>(); result->did_load = true; const uint64_t new_hash_key = hashes_.at<11>(); result->entries.insert(std::make_pair(
diff --git a/net/dns/address_sorter_posix.cc b/net/dns/address_sorter_posix.cc index 7f14b73..9bd30d0 100644 --- a/net/dns/address_sorter_posix.cc +++ b/net/dns/address_sorter_posix.cc
@@ -276,7 +276,7 @@ std::vector<std::unique_ptr<DestinationInfo>> sort_list; for (const IPEndPoint& endpoint : endpoints) { - std::unique_ptr<DestinationInfo> info(new DestinationInfo()); + auto info = std::make_unique<DestinationInfo>(); info->endpoint = endpoint; info->scope = GetScope(ipv4_scope_table_, info->endpoint.address()); info->precedence = @@ -411,8 +411,8 @@ // static std::unique_ptr<AddressSorter> AddressSorter::CreateAddressSorter() { - return std::unique_ptr<AddressSorter>( - new AddressSorterPosix(ClientSocketFactory::GetDefaultFactory())); + return std::make_unique<AddressSorterPosix>( + ClientSocketFactory::GetDefaultFactory()); } } // namespace net
diff --git a/net/dns/address_sorter_posix_unittest.cc b/net/dns/address_sorter_posix_unittest.cc index f2a1a2c2..5a58740c 100644 --- a/net/dns/address_sorter_posix_unittest.cc +++ b/net/dns/address_sorter_posix_unittest.cc
@@ -157,8 +157,7 @@ DatagramSocket::BindType, NetLog*, const NetLogSource&) override { - return std::unique_ptr<DatagramClientSocket>( - new TestUDPClientSocket(&mapping_)); + return std::make_unique<TestUDPClientSocket>(&mapping_); } std::unique_ptr<TransportClientSocket> CreateTransportClientSocket( const AddressList&,
diff --git a/net/dns/context_host_resolver_unittest.cc b/net/dns/context_host_resolver_unittest.cc index c14ad87..3201b9a 100644 --- a/net/dns/context_host_resolver_unittest.cc +++ b/net/dns/context_host_resolver_unittest.cc
@@ -854,8 +854,7 @@ const url::SchemeHostPort host(url::kHttpsScheme, "example.com", NetworkAwareHostResolverProc::kPort); - scoped_refptr<NetworkAwareHostResolverProc> resolver_proc = - new NetworkAwareHostResolverProc(); + auto resolver_proc = base::MakeRefCounted<NetworkAwareHostResolverProc>(); ScopedDefaultHostResolverProc scoped_default_host_resolver; scoped_default_host_resolver.Init(resolver_proc.get()); @@ -895,8 +894,7 @@ TEST_F(ContextHostResolverTest, NotExistingNetworkBoundLookup) { const url::SchemeHostPort host(url::kHttpsScheme, "example.com", NetworkAwareHostResolverProc::kPort); - scoped_refptr<NetworkAwareHostResolverProc> resolver_proc = - new NetworkAwareHostResolverProc(); + auto resolver_proc = base::MakeRefCounted<NetworkAwareHostResolverProc>(); ScopedDefaultHostResolverProc scoped_default_host_resolver; scoped_default_host_resolver.Init(resolver_proc.get());
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc index 179f857..972ebdfd 100644 --- a/net/dns/dns_client.cc +++ b/net/dns/dns_client.cc
@@ -295,8 +295,9 @@ if (new_effective_config) { DCHECK(new_effective_config.value().IsValid()); - session_ = new DnsSession(std::move(new_effective_config).value(), - rand_int_callback_, net_log_); + session_ = base::MakeRefCounted<DnsSession>( + std::move(new_effective_config).value(), rand_int_callback_, + net_log_); factory_ = DnsTransactionFactory::CreateFactory(session_.get()); } }
diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc index e9b2b0e..025078e 100644 --- a/net/dns/dns_config_service_posix.cc +++ b/net/dns/dns_config_service_posix.cc
@@ -315,8 +315,7 @@ #if BUILDFLAG(IS_IOS) return nullptr; #else // BUILDFLAG(IS_IOS) - return std::unique_ptr<DnsConfigService>( - new internal::DnsConfigServicePosix()); + return std::make_unique<internal::DnsConfigServicePosix>(); #endif // BUILDFLAG(IS_IOS) }
diff --git a/net/dns/dns_config_service_posix_unittest.cc b/net/dns/dns_config_service_posix_unittest.cc index 83a38b9..695a382 100644 --- a/net/dns/dns_config_service_posix_unittest.cc +++ b/net/dns/dns_config_service_posix_unittest.cc
@@ -196,8 +196,7 @@ base::test::TaskEnvironment::MainThreadType::IO, base::test::TaskEnvironment::TimeSource::MOCK_TIME); - std::unique_ptr<internal::DnsConfigServicePosix> service( - new internal::DnsConfigServicePosix()); + auto service = std::make_unique<internal::DnsConfigServicePosix>(); // Call WatchConfig() which also tests ReadConfig(). service->WatchConfig(base::BindRepeating(&DummyConfigCallback)); service.reset();
diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc index e2d1769..71ecb186 100644 --- a/net/dns/dns_config_service_win.cc +++ b/net/dns/dns_config_service_win.cc
@@ -679,7 +679,7 @@ // static std::unique_ptr<DnsConfigService> DnsConfigService::CreateSystemService() { - return std::unique_ptr<DnsConfigService>(new internal::DnsConfigServiceWin()); + return std::make_unique<internal::DnsConfigServiceWin>(); } } // namespace net
diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc index 88542f9..0088d6d3 100644 --- a/net/dns/dns_test_util.cc +++ b/net/dns/dns_test_util.cc
@@ -668,8 +668,8 @@ MockDnsClient::MockDnsClient(DnsConfig config, MockDnsClientRuleList rules) : config_(std::move(config)), - factory_(new MockDnsTransactionFactory(std::move(rules))), - address_sorter_(new MockAddressSorter()) { + factory_(std::make_unique<MockDnsTransactionFactory>(std::move(rules))), + address_sorter_(std::make_unique<MockAddressSorter>()) { effective_config_ = BuildEffectiveConfig(); session_ = BuildSession(); }
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc index d4f05d5e..fd89fece 100644 --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc
@@ -1744,8 +1744,7 @@ // static std::unique_ptr<DnsTransactionFactory> DnsTransactionFactory::CreateFactory( DnsSession* session) { - return std::unique_ptr<DnsTransactionFactory>( - new DnsTransactionFactoryImpl(session)); + return std::make_unique<DnsTransactionFactoryImpl>(session); } } // namespace net
diff --git a/net/dns/dns_transaction_unittest.cc b/net/dns/dns_transaction_unittest.cc index 26a68df..f981692 100644 --- a/net/dns/dns_transaction_unittest.cc +++ b/net/dns/dns_transaction_unittest.cc
@@ -118,7 +118,7 @@ padding_strategy)), transport_(transport) { if (Transport::TCP == transport_) { - std::unique_ptr<uint16_t> length(new uint16_t); + auto length = std::make_unique<uint16_t>(); *length = base::HostToNet16(query_->io_buffer()->size()); writes_.emplace_back(mode, reinterpret_cast<const char*>(length.get()), sizeof(uint16_t), num_reads_and_writes()); @@ -141,7 +141,7 @@ uint16_t tcp_length) { CHECK(!provider_.get()); if (Transport::TCP == transport_) { - std::unique_ptr<uint16_t> length(new uint16_t); + auto length = std::make_unique<uint16_t>(); *length = base::HostToNet16(tcp_length); reads_.emplace_back(mode, reinterpret_cast<const char*>(length.get()), sizeof(uint16_t), num_reads_and_writes()); @@ -180,8 +180,8 @@ // Add no-answer (RCODE only) response matching the query. void AddRcode(int rcode, IoMode mode) { - std::unique_ptr<DnsResponse> response(new DnsResponse( - query_->io_buffer()->data(), query_->io_buffer()->size(), 0)); + auto response = std::make_unique<DnsResponse>( + query_->io_buffer()->data(), query_->io_buffer()->size(), 0); dns_protocol::Header* header = reinterpret_cast<dns_protocol::Header*>(response->io_buffer()->data()); header->flags |= base::HostToNet16(dns_protocol::kFlagResponse | rcode); @@ -274,8 +274,7 @@ const NetLogSource& source) override { if (fail_next_socket_) { fail_next_socket_ = false; - return std::unique_ptr<DatagramClientSocket>( - new FailingUDPClientSocket(&empty_data_, net_log)); + return std::make_unique<FailingUDPClientSocket>(&empty_data_, net_log); } SocketDataProvider* data_provider = mock_data().GetNext(); @@ -643,11 +642,11 @@ // Called after fully configuring |config|. void ConfigureFactory() { - session_ = - new DnsSession(config_, - base::BindRepeating(&DnsTransactionTestBase::GetNextId, - base::Unretained(this)), - nullptr /* NetLog */); + session_ = base::MakeRefCounted<DnsSession>( + config_, + base::BindRepeating(&DnsTransactionTestBase::GetNextId, + base::Unretained(this)), + nullptr /* NetLog */); resolve_context_->InvalidateCachesAndPerSessionData( session_.get(), false /* network_change */); transaction_factory_ = DnsTransactionFactory::CreateFactory(session_.get()); @@ -677,8 +676,8 @@ DnsQuery::PaddingStrategy::NONE, bool enqueue_transaction_id = true) { CHECK(socket_factory_.get()); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - id, dotted_name, qtype, mode, transport, opt_rdata, padding_strategy)); + auto data = std::make_unique<DnsSocketData>( + id, dotted_name, qtype, mode, transport, opt_rdata, padding_strategy); data->AddResponseData(response_data, response_length, mode); AddSocketData(std::move(data), enqueue_transaction_id); } @@ -694,8 +693,8 @@ DnsQuery::PaddingStrategy::NONE, bool enqueue_transaction_id = true) { CHECK(socket_factory_.get()); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - id, dotted_name, qtype, mode, transport, opt_rdata, padding_strategy)); + auto data = std::make_unique<DnsSocketData>( + id, dotted_name, qtype, mode, transport, opt_rdata, padding_strategy); data->AddReadError(error, mode); AddSocketData(std::move(data), enqueue_transaction_id); } @@ -728,9 +727,9 @@ DnsQuery::PaddingStrategy::NONE, uint16_t id = base::RandInt(0, std::numeric_limits<uint16_t>::max()), bool enqueue_transaction_id = true) { - std::unique_ptr<DnsSocketData> data( - new DnsSocketData(id, dotted_name, qtype, ASYNC, Transport::UDP, - nullptr /* opt_rdata */, padding_strategy)); + auto data = std::make_unique<DnsSocketData>( + id, dotted_name, qtype, ASYNC, Transport::UDP, nullptr /* opt_rdata */, + padding_strategy); AddSocketData(std::move(data), enqueue_transaction_id); } @@ -747,9 +746,9 @@ uint16_t id = base::RandInt(0, std::numeric_limits<uint16_t>::max()), bool enqueue_transaction_id = true) { CHECK_NE(dns_protocol::kRcodeNOERROR, rcode); - std::unique_ptr<DnsSocketData> data( - new DnsSocketData(id, dotted_name, qtype, mode, trans, - nullptr /* opt_rdata */, padding_strategy)); + auto data = std::make_unique<DnsSocketData>(id, dotted_name, qtype, mode, + trans, nullptr /* opt_rdata */, + padding_strategy); data->AddRcode(rcode, mode); AddSocketData(std::move(data), enqueue_transaction_id); } @@ -1094,15 +1093,15 @@ ConfigureFactory(); // First attempt receives mismatched response synchronously. - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + SYNCHRONOUS, Transport::UDP); data->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), SYNCHRONOUS); AddSocketData(std::move(data)); // Second attempt receives valid response synchronously. - std::unique_ptr<DnsSocketData> data1(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data1 = std::make_unique<DnsSocketData>( + 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP); data1->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), SYNCHRONOUS); AddSocketData(std::move(data1)); @@ -1118,15 +1117,15 @@ ConfigureFactory(); // First attempt receives mismatched response asynchronously. - std::unique_ptr<DnsSocketData> data0(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::UDP)); + auto data0 = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, + kT0Qtype, ASYNC, Transport::UDP); data0->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), ASYNC); AddSocketData(std::move(data0)); // Second attempt receives valid response asynchronously. - std::unique_ptr<DnsSocketData> data1(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::UDP)); + auto data1 = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, + kT0Qtype, ASYNC, Transport::UDP); data1->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), ASYNC); AddSocketData(std::move(data1)); @@ -1162,8 +1161,8 @@ // First attempt receives mismatched response followed by valid NXDOMAIN // response. // Second attempt receives valid NXDOMAIN response. - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + SYNCHRONOUS, Transport::UDP); data->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), SYNCHRONOUS); data->AddRcode(dns_protocol::kRcodeNXDOMAIN, ASYNC); @@ -1703,9 +1702,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupFailSync) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseWithLength(std::make_unique<DnsResponse>(), SYNCHRONOUS, 0); AddSocketData(std::move(data), false /* enqueue_transaction_id */); TransactionHelper helper0(ERR_DNS_MALFORMED_RESPONSE); @@ -1739,9 +1738,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookup2Sync) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, SYNCHRONOUS); data->AddResponseData(kT0ResponseDatagram + 20, std::size(kT0ResponseDatagram) - 20, SYNCHRONOUS); @@ -1754,9 +1753,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookup2Async) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, ASYNC); data->AddResponseData(kT0ResponseDatagram + 20, std::size(kT0ResponseDatagram) - 20, ASYNC); @@ -1769,9 +1768,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupAsyncWithAsyncZeroRead) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), ASYNC); data->AddResponseData(kT0ResponseDatagram, 0, ASYNC); @@ -1784,9 +1783,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupSyncWithAsyncZeroRead) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), SYNCHRONOUS); data->AddResponseData(kT0ResponseDatagram, 0, ASYNC); @@ -1799,9 +1798,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupAsyncThenSync) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, ASYNC); data->AddResponseData(kT0ResponseDatagram + 20, std::size(kT0ResponseDatagram) - 20, SYNCHRONOUS); @@ -1814,9 +1813,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupAsyncThenSyncError) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, ASYNC); data->AddReadError(ERR_FAILED, SYNCHRONOUS); AddSocketData(std::move(data), false /* enqueue_transaction_id */); @@ -1828,9 +1827,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupAsyncThenAsyncError) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, ASYNC); data->AddReadError(ERR_FAILED, ASYNC); AddSocketData(std::move(data), false /* enqueue_transaction_id */); @@ -1842,9 +1841,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupSyncThenAsyncError) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, SYNCHRONOUS); data->AddReadError(ERR_FAILED, ASYNC); AddSocketData(std::move(data), false /* enqueue_transaction_id */); @@ -1856,9 +1855,9 @@ TEST_F(DnsTransactionTest, HttpsPostLookupSyncThenSyncError) { ConfigureDohServers(true /* use_post */); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddResponseData(kT0ResponseDatagram, 20, SYNCHRONOUS); data->AddReadError(ERR_FAILED, SYNCHRONOUS); AddSocketData(std::move(data), false /* enqueue_transaction_id */); @@ -2299,9 +2298,9 @@ // Create a socket data to first return ERR_IO_PENDING. This will pause the // response and not return the second response until // SequencedSocketData::Resume() is called. - std::unique_ptr<DnsSocketData> data(new DnsSocketData( + auto data = std::make_unique<DnsSocketData>( 0, kT0HostName, kT0Qtype, ASYNC, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data->AddReadError(ERR_IO_PENDING, ASYNC); data->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), ASYNC); @@ -3081,8 +3080,8 @@ TEST_F(DnsTransactionTest, TCPMalformed) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + ASYNC, Transport::TCP); // Valid response but length too short. // This must be truncated in the question section. The DnsResponse doesn't // examine the answer section until asked to parse it, so truncating it in @@ -3150,8 +3149,8 @@ TEST_F(DnsTransactionTest, TCPReadReturnsZeroAsync) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + ASYNC, Transport::TCP); // Return all but the last byte of the response. data->AddResponseWithLength( std::make_unique<DnsResponse>( @@ -3171,8 +3170,8 @@ TEST_F(DnsTransactionTest, TCPReadReturnsZeroSynchronous) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + ASYNC, Transport::TCP); // Return all but the last byte of the response. data->AddResponseWithLength( std::make_unique<DnsResponse>( @@ -3192,8 +3191,8 @@ TEST_F(DnsTransactionTest, TCPConnectionClosedAsync) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + ASYNC, Transport::TCP); data->AddReadError(ERR_CONNECTION_CLOSED, ASYNC); AddSocketData(std::move(data)); @@ -3206,8 +3205,8 @@ TEST_F(DnsTransactionTest, TCPConnectionClosedSynchronous) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + ASYNC, Transport::TCP); data->AddReadError(ERR_CONNECTION_CLOSED, SYNCHRONOUS); AddSocketData(std::move(data)); @@ -3220,8 +3219,8 @@ TEST_F(DnsTransactionTest, MismatchedThenNxdomainThenTCP) { config_.attempts = 2; ConfigureFactory(); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + SYNCHRONOUS, Transport::UDP); // First attempt gets a mismatched response. data->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), SYNCHRONOUS); @@ -3240,8 +3239,8 @@ TEST_F(DnsTransactionTest, MismatchedThenOkThenTCP) { config_.attempts = 2; ConfigureFactory(); - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + SYNCHRONOUS, Transport::UDP); // First attempt gets a mismatched response. data->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), SYNCHRONOUS); @@ -3285,8 +3284,8 @@ ConfigureFactory(); // Attempt 1. - std::unique_ptr<DnsSocketData> data(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, SYNCHRONOUS, Transport::UDP)); + auto data = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, kT0Qtype, + SYNCHRONOUS, Transport::UDP); data->AddResponseData(kT1ResponseDatagram, std::size(kT1ResponseDatagram), SYNCHRONOUS); data->AddRcode(dns_protocol::kFlagTC, ASYNC); @@ -4006,15 +4005,15 @@ } // Data for TCP attempt. - std::unique_ptr<DnsSocketData> data1(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data1 = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, + kT0Qtype, ASYNC, Transport::TCP); data1->AddReadError(ERR_IO_PENDING, ASYNC); data1->AddReadError(ERR_CONNECTION_REFUSED, ASYNC); SequencedSocketData* sequenced_socket_data1 = data1->GetProvider(); AddSocketData(std::move(data1)); - std::unique_ptr<DnsSocketData> data2(new DnsSocketData( - 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::TCP)); + auto data2 = std::make_unique<DnsSocketData>(0 /* id */, kT0HostName, + kT0Qtype, ASYNC, Transport::TCP); data2->AddReadError(ERR_IO_PENDING, ASYNC); data2->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), ASYNC); @@ -4062,17 +4061,17 @@ ConfigureDohServers(false /* use_post */, 2 /* num_doh_servers */, true /* make_available */); - std::unique_ptr<DnsSocketData> data1(new DnsSocketData( + auto data1 = std::make_unique<DnsSocketData>( 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data1->AddReadError(ERR_IO_PENDING, ASYNC); data1->AddReadError(ERR_CONNECTION_REFUSED, ASYNC); SequencedSocketData* sequenced_socket_data1 = data1->GetProvider(); AddSocketData(std::move(data1), false /* enqueue_transaction_id */); - std::unique_ptr<DnsSocketData> data2(new DnsSocketData( + auto data2 = std::make_unique<DnsSocketData>( 0 /* id */, kT0HostName, kT0Qtype, ASYNC, Transport::HTTPS, - nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128)); + nullptr /* opt_rdata */, DnsQuery::PaddingStrategy::BLOCK_LENGTH_128); data2->AddReadError(ERR_IO_PENDING, ASYNC); data2->AddResponseData(kT0ResponseDatagram, std::size(kT0ResponseDatagram), ASYNC);
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc index 3a48729..7a9432a6 100644 --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc
@@ -1032,7 +1032,7 @@ params_.resolver_proc = HostResolverProc::GetDefault(); // If default is unset, use the system proc. if (!params_.resolver_proc.get()) - params_.resolver_proc = new SystemHostResolverProc(); + params_.resolver_proc = base::MakeRefCounted<SystemHostResolverProc>(); } ProcTask(const ProcTask&) = delete;
diff --git a/net/dns/host_resolver_manager_fuzzer.cc b/net/dns/host_resolver_manager_fuzzer.cc index 72bc32f..fd9ec489 100644 --- a/net/dns/host_resolver_manager_fuzzer.cc +++ b/net/dns/host_resolver_manager_fuzzer.cc
@@ -55,8 +55,8 @@ net::HostResolver* host_resolver, FuzzedDataProvider* data_provider, std::vector<std::unique_ptr<DnsRequest>>* dns_requests) { - std::unique_ptr<DnsRequest> dns_request( - new DnsRequest(host_resolver, data_provider, dns_requests)); + auto dns_request = std::make_unique<DnsRequest>( + host_resolver, data_provider, dns_requests); if (dns_request->Start() == net::ERR_IO_PENDING) dns_requests->push_back(std::move(dns_request)); @@ -191,7 +191,7 @@ void WaitUntilDone() { CHECK(!run_loop_); if (request_) { - run_loop_.reset(new base::RunLoop()); + run_loop_ = std::make_unique<base::RunLoop>(); run_loop_->Run(); run_loop_.reset(); }
diff --git a/net/dns/host_resolver_manager_unittest.cc b/net/dns/host_resolver_manager_unittest.cc index cc20169..c180dc9 100644 --- a/net/dns/host_resolver_manager_unittest.cc +++ b/net/dns/host_resolver_manager_unittest.cc
@@ -525,7 +525,7 @@ base::test::TaskEnvironment::TimeSource time_source = base::test::TaskEnvironment::TimeSource::SYSTEM_TIME) : TestWithTaskEnvironment(time_source), - proc_(new MockHostResolverProc()) {} + proc_(base::MakeRefCounted<MockHostResolverProc>()) {} void CreateResolver(bool check_ipv6_on_wifi = true) { CreateResolverWithLimitsAndParams(kMaxJobs, DefaultParams(proc_.get()), @@ -2415,9 +2415,8 @@ // retry at t=6001 instead of t=6000. base::TimeDelta kSleepFudgeFactor = base::Milliseconds(1); - scoped_refptr<LookupAttemptHostResolverProc> resolver_proc( - new LookupAttemptHostResolverProc(nullptr, kAttemptNumberToResolve, - kTotalAttempts)); + auto resolver_proc = base::MakeRefCounted<LookupAttemptHostResolverProc>( + nullptr, kAttemptNumberToResolve, kTotalAttempts); ProcTaskParams params = DefaultParams(resolver_proc.get()); base::TimeDelta unresponsive_delay = params.unresponsive_delay;
diff --git a/net/dns/mapped_host_resolver_unittest.cc b/net/dns/mapped_host_resolver_unittest.cc index 0155491..59dc88d 100644 --- a/net/dns/mapped_host_resolver_unittest.cc +++ b/net/dns/mapped_host_resolver_unittest.cc
@@ -40,15 +40,15 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddSimulatedFailure("*google.com"); resolver_impl->rules()->AddRule("baz.com", "192.168.1.5"); resolver_impl->rules()->AddRule("foo.com", "192.168.1.8"); resolver_impl->rules()->AddRule("proxy", "192.168.1.11"); // Create a remapped resolver that uses |resolver_impl|. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); // Try resolving "www.google.com:80". There are no mappings yet, so this // hits |resolver_impl| and fails. @@ -108,12 +108,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("remapped.test", "192.168.1.22"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); ASSERT_TRUE(resolver->AddRuleFromString("MAP to.map.test remapped.test")); std::unique_ptr<HostResolver::ResolveHostRequest> request = @@ -134,12 +134,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("host.test", "192.168.1.22"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); ASSERT_TRUE(resolver->AddRuleFromString("MAP host.test [1234:5678::000A]")); IPAddress expected_address; @@ -163,12 +163,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("remapped.test", "192.168.1.23"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); ASSERT_TRUE(resolver->AddRuleFromString("MAP host.test reMapped.TEST")); std::unique_ptr<HostResolver::ResolveHostRequest> request = @@ -189,12 +189,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("remapped.test", "192.168.1.24"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); ASSERT_TRUE(resolver->AddRuleFromString("MAP host.test remapped.test:258")); std::unique_ptr<HostResolver::ResolveHostRequest> request = @@ -215,12 +215,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("unmapped.test", "192.168.1.23"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); std::unique_ptr<HostResolver::ResolveHostRequest> request = resolver->CreateRequest( @@ -241,13 +241,13 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("baz", "192.168.1.5"); resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); // Create a remapped resolver that uses |resolver_impl|. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); TestCompletionCallback callback; @@ -284,13 +284,13 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("baz", "192.168.1.7"); resolver_impl->rules()->AddRule("bar", "192.168.1.9"); // Create a remapped resolver that uses |resolver_impl|. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); TestCompletionCallback callback; @@ -324,8 +324,8 @@ TEST(MappedHostResolverTest, ParseInvalidRules) { base::test::TaskEnvironment task_environment; - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::unique_ptr<HostResolver>())); + auto resolver = + std::make_unique<MappedHostResolver>(std::unique_ptr<HostResolver>()); EXPECT_FALSE(resolver->AddRuleFromString("xyz")); EXPECT_FALSE(resolver->AddRuleFromString(std::string())); @@ -342,11 +342,11 @@ base::test::TaskEnvironment task_environment; // Outstanding request. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("*", "192.168.1.5"); - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); // Remap *.google.com to resolving failures. EXPECT_TRUE(resolver->AddRuleFromString("MAP *.google.com ~NOTFOUND")); @@ -377,12 +377,12 @@ base::test::TaskEnvironment task_environment; // Create a mock host resolver, with specific hostname to IP mappings. - std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); + auto resolver_impl = std::make_unique<MockHostResolver>(); resolver_impl->rules()->AddRule("host.test", "192.168.1.25"); // Create a remapped resolver that uses `resolver_impl`. - std::unique_ptr<MappedHostResolver> resolver( - new MappedHostResolver(std::move(resolver_impl))); + auto resolver = + std::make_unique<MappedHostResolver>(std::move(resolver_impl)); ASSERT_TRUE(resolver->AddRuleFromString("MAP host.test ~NOTFOUND")); std::unique_ptr<HostResolver::ResolveHostRequest> request =
diff --git a/net/dns/mdns_client.cc b/net/dns/mdns_client.cc index b7749d3..00f7b03 100644 --- a/net/dns/mdns_client.cc +++ b/net/dns/mdns_client.cc
@@ -36,12 +36,12 @@ // static std::unique_ptr<MDnsSocketFactory> MDnsSocketFactory::CreateDefault() { - return std::unique_ptr<MDnsSocketFactory>(new MDnsSocketFactoryImpl); + return std::make_unique<MDnsSocketFactoryImpl>(); } // static std::unique_ptr<MDnsClient> MDnsClient::CreateDefault() { - return std::unique_ptr<MDnsClient>(new MDnsClientImpl()); + return std::make_unique<MDnsClientImpl>(); } InterfaceIndexFamilyList GetMDnsInterfacesToBind() { @@ -67,8 +67,7 @@ AddressFamily address_family, uint32_t interface_index, NetLog* net_log) { - std::unique_ptr<DatagramServerSocket> socket( - new UDPServerSocket(net_log, NetLogSource())); + auto socket = std::make_unique<UDPServerSocket>(net_log, NetLogSource()); int rv = Bind(address_family, interface_index, socket.get()); if (rv != OK) {
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc index f4c835e..ec155a7 100644 --- a/net/dns/mdns_client_impl.cc +++ b/net/dns/mdns_client_impl.cc
@@ -440,7 +440,7 @@ MDnsClientImpl::MDnsClientImpl() : clock_(base::DefaultClock::GetInstance()), - cleanup_timer_(new base::OneShotTimer()) {} + cleanup_timer_(std::make_unique<base::OneShotTimer>()) {} MDnsClientImpl::MDnsClientImpl(base::Clock* clock, std::unique_ptr<base::OneShotTimer> timer) @@ -473,8 +473,8 @@ uint16_t rrtype, const std::string& name, MDnsListener::Delegate* delegate) { - return std::unique_ptr<MDnsListener>( - new MDnsListenerImpl(rrtype, name, clock_, delegate, this)); + return std::make_unique<MDnsListenerImpl>(rrtype, name, clock_, delegate, + this); } std::unique_ptr<MDnsTransaction> MDnsClientImpl::CreateTransaction( @@ -482,8 +482,8 @@ const std::string& name, int flags, const MDnsTransaction::ResultCallback& callback) { - return std::unique_ptr<MDnsTransaction>( - new MDnsTransactionImpl(rrtype, name, flags, callback, this)); + return std::make_unique<MDnsTransactionImpl>(rrtype, name, flags, callback, + this); } MDnsListenerImpl::MDnsListenerImpl(uint16_t rrtype,
diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc index 03500cf..6c33aa0c 100644 --- a/net/dns/mock_host_resolver.cc +++ b/net/dns/mock_host_resolver.cc
@@ -1364,7 +1364,7 @@ rules_.push_back(fixed_rule); } -RuleBasedHostResolverProc* CreateCatchAllHostResolverProc() { +scoped_refptr<RuleBasedHostResolverProc> CreateCatchAllHostResolverProc() { RuleBasedHostResolverProc* catchall = new RuleBasedHostResolverProc(/*previous=*/nullptr, /*allow_fallback=*/false); @@ -1372,7 +1372,8 @@ catchall->AddIPLiteralRule("*", "127.0.0.1", "localhost"); // Next add a rules-based layer that the test controls. - return new RuleBasedHostResolverProc(catchall, /*allow_fallback=*/false); + return base::MakeRefCounted<RuleBasedHostResolverProc>( + catchall, /*allow_fallback=*/false); } //-----------------------------------------------------------------------------
diff --git a/net/dns/mock_host_resolver.h b/net/dns/mock_host_resolver.h index 06f57b1..37aec04 100644 --- a/net/dns/mock_host_resolver.h +++ b/net/dns/mock_host_resolver.h
@@ -630,7 +630,7 @@ }; // Create rules that map all requests to localhost. -RuleBasedHostResolverProc* CreateCatchAllHostResolverProc(); +scoped_refptr<RuleBasedHostResolverProc> CreateCatchAllHostResolverProc(); // HangingHostResolver never completes its |Resolve| request. As LOCAL_ONLY // requests are not allowed to complete asynchronously, they will always result
diff --git a/net/dns/mock_mdns_socket_factory.cc b/net/dns/mock_mdns_socket_factory.cc index 175ad137..560a6e7 100644 --- a/net/dns/mock_mdns_socket_factory.cc +++ b/net/dns/mock_mdns_socket_factory.cc
@@ -80,8 +80,9 @@ void MockMDnsSocketFactory::CreateSocket( AddressFamily address_family, std::vector<std::unique_ptr<DatagramServerSocket>>* sockets) { - std::unique_ptr<testing::NiceMock<MockMDnsDatagramServerSocket>> new_socket( - new testing::NiceMock<MockMDnsDatagramServerSocket>(address_family)); + auto new_socket = + std::make_unique<testing::NiceMock<MockMDnsDatagramServerSocket>>( + address_family); ON_CALL(*new_socket, SendToInternal(_, _, _)) .WillByDefault(Invoke(
diff --git a/net/dns/record_parsed.cc b/net/dns/record_parsed.cc index acd6a40..f14b170 100644 --- a/net/dns/record_parsed.cc +++ b/net/dns/record_parsed.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "net/dns/dns_response.h" #include "net/dns/https_record_rdata.h" #include "net/dns/record_rdata.h" @@ -82,9 +83,9 @@ if (!rdata.get() && !unrecognized_type) return nullptr; - return std::unique_ptr<const RecordParsed>( - new RecordParsed(record.name, record.type, record.klass, record.ttl, - std::move(rdata), time_created)); + return base::WrapUnique(new RecordParsed(record.name, record.type, + record.klass, record.ttl, + std::move(rdata), time_created)); } bool RecordParsed::IsEqual(const RecordParsed* other, bool is_mdns) const {
diff --git a/net/dns/resolve_context.cc b/net/dns/resolve_context.cc index 52ffae34..1f26425 100644 --- a/net/dns/resolve_context.cc +++ b/net/dns/resolve_context.cc
@@ -142,10 +142,9 @@ // Make the iterator even if the session differs. The first call to the member // functions will catch the out of date session. - std::unique_ptr<DnsServerIterator> itr(new DohDnsServerIterator( + return std::make_unique<DohDnsServerIterator>( doh_server_stats_.size(), FirstServerIndex(true, session), - config.doh_attempts, config.attempts, mode, this, session)); - return itr; + config.doh_attempts, config.attempts, mode, this, session); } std::unique_ptr<DnsServerIterator> ResolveContext::GetClassicDnsIterator( @@ -154,10 +153,9 @@ // Make the iterator even if the session differs. The first call to the member // functions will catch the out of date session. - std::unique_ptr<DnsServerIterator> itr(new ClassicDnsServerIterator( + return std::make_unique<ClassicDnsServerIterator>( config.nameservers.size(), FirstServerIndex(false, session), - config.attempts, config.attempts, this, session)); - return itr; + config.attempts, config.attempts, this, session); } bool ResolveContext::GetDohServerAvailability(size_t doh_server_index,
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc index 0db1a8e..391d6b4 100644 --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
@@ -1719,12 +1719,11 @@ const scoped_refptr<base::SequencedTaskRunner>& background_task_runner, bool restore_old_session_cookies, CookieCryptoDelegate* crypto_delegate) - : backend_(new Backend(path, - client_task_runner, - background_task_runner, - restore_old_session_cookies, - crypto_delegate)) { -} + : backend_(base::MakeRefCounted<Backend>(path, + client_task_runner, + background_task_runner, + restore_old_session_cookies, + crypto_delegate)) {} void SQLitePersistentCookieStore::DeleteAllInList( const std::list<CookieOrigin>& cookies) {
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc b/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc index f4e67841..bd9ca68 100644 --- a/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store_perftest.cc
@@ -94,7 +94,7 @@ void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); - store_ = new SQLitePersistentCookieStore( + store_ = base::MakeRefCounted<SQLitePersistentCookieStore>( temp_dir_.GetPath().Append(cookie_filename), client_task_runner_, background_task_runner_, false, nullptr); std::vector<CanonicalCookie*> cookies; @@ -113,7 +113,7 @@ // Flush ThreadPool tasks, causing pending commits to run. task_environment_.RunUntilIdle(); - store_ = new SQLitePersistentCookieStore( + store_ = base::MakeRefCounted<SQLitePersistentCookieStore>( temp_dir_.GetPath().Append(cookie_filename), client_task_runner_, background_task_runner_, false, nullptr); }
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc index 794896816..f71881f 100644 --- a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
@@ -149,7 +149,7 @@ if (crypt_cookies) cookie_crypto_delegate_ = std::make_unique<CookieCryptor>(); - store_ = new SQLitePersistentCookieStore( + store_ = base::MakeRefCounted<SQLitePersistentCookieStore>( temp_dir_.GetPath().Append(kCookieFilename), use_current_thread ? base::ThreadTaskRunnerHandle::Get() : client_task_runner_, @@ -321,7 +321,7 @@ // Load the store a second time. Before the store finishes loading, add a // transient cookie and flush it to disk. - store_ = new SQLitePersistentCookieStore( + store_ = base::MakeRefCounted<SQLitePersistentCookieStore>( temp_dir_.GetPath().Append(kCookieFilename), client_task_runner_, background_task_runner_, false, nullptr); @@ -356,7 +356,7 @@ // Load the store a third time, this time restoring session cookies. The // store should contain exactly 4 cookies: the 3 persistent, and "c.com", // which was added during the second cookie store load. - store_ = new SQLitePersistentCookieStore( + store_ = base::MakeRefCounted<SQLitePersistentCookieStore>( temp_dir_.GetPath().Append(kCookieFilename), client_task_runner_, background_task_runner_, true, nullptr); store_->Load(base::BindOnce(&SQLitePersistentCookieStoreTest::OnLoaded,
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc index e1fa9d9..b1fe702a 100644 --- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc +++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
@@ -1560,7 +1560,9 @@ const base::FilePath& path, const scoped_refptr<base::SequencedTaskRunner>& client_task_runner, const scoped_refptr<base::SequencedTaskRunner>& background_task_runner) - : backend_(new Backend(path, client_task_runner, background_task_runner)) {} + : backend_(base::MakeRefCounted<Backend>(path, + client_task_runner, + background_task_runner)) {} SQLitePersistentReportingAndNelStore::~SQLitePersistentReportingAndNelStore() { backend_->Close();
diff --git a/net/filter/brotli_source_stream_fuzzer.cc b/net/filter/brotli_source_stream_fuzzer.cc index e721ee1e..1f83f62 100644 --- a/net/filter/brotli_source_stream_fuzzer.cc +++ b/net/filter/brotli_source_stream_fuzzer.cc
@@ -18,8 +18,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { net::TestCompletionCallback callback; FuzzedDataProvider data_provider(data, size); - std::unique_ptr<net::FuzzedSourceStream> fuzzed_source_stream( - new net::FuzzedSourceStream(&data_provider)); + auto fuzzed_source_stream = + std::make_unique<net::FuzzedSourceStream>(&data_provider); std::unique_ptr<net::SourceStream> brotli_stream = net::CreateBrotliSourceStream(std::move(fuzzed_source_stream)); while (true) {
diff --git a/net/filter/brotli_source_stream_unittest.cc b/net/filter/brotli_source_stream_unittest.cc index 817202b..9f84719 100644 --- a/net/filter/brotli_source_stream_unittest.cc +++ b/net/filter/brotli_source_stream_unittest.cc
@@ -51,7 +51,7 @@ ASSERT_TRUE(base::ReadFileToString(encoded_file_path, &encoded_buffer_)); ASSERT_GE(kDefaultBufferSize, encoded_buffer_.size()); - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); source_ = source.get(); brotli_stream_ = CreateBrotliSourceStream(std::move(source)); }
diff --git a/net/filter/filter_source_stream_unittest.cc b/net/filter/filter_source_stream_unittest.cc index 8c1749f..70679cd 100644 --- a/net/filter/filter_source_stream_unittest.cc +++ b/net/filter/filter_source_stream_unittest.cc
@@ -257,7 +257,7 @@ // upstream. In this case, FilterSourceStream should continue reading from // upstream to complete filtering. TEST_P(FilterSourceStreamTest, FilterDataReturnNoBytesExceptLast) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input("hello, world!"); size_t read_size = 2; size_t num_reads = 0; @@ -293,7 +293,7 @@ // Tests that FilterData() returns 0 byte read because the upstream gives an // EOF. TEST_P(FilterSourceStreamTest, FilterDataReturnNoByte) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input; source->AddReadResult(input.data(), 0, OK, GetParam()); MockSourceStream* mock_stream = source.get(); @@ -310,7 +310,7 @@ // Tests that FilterData() returns 0 byte filtered even though the upstream // produces data. TEST_P(FilterSourceStreamTest, FilterDataOutputNoData) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; size_t read_size = 2; size_t num_reads = 0; @@ -339,7 +339,7 @@ // Tests that FilterData() returns non-zero bytes because the upstream // returns data. TEST_P(FilterSourceStreamTest, FilterDataReturnData) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; size_t read_size = 2; // Add a sequence of small reads. @@ -371,7 +371,7 @@ // Tests that FilterData() returns more data than what it consumed. TEST_P(FilterSourceStreamTest, FilterDataReturnMoreData) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; size_t read_size = 2; // Add a sequence of small reads. @@ -405,7 +405,7 @@ // Tests that FilterData() returns non-zero bytes and output buffer size is // smaller than the number of bytes read from the upstream. TEST_P(FilterSourceStreamTest, FilterDataOutputSpace) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; size_t read_size = 2; // Add a sequence of small reads. @@ -441,7 +441,7 @@ // Tests that FilterData() returns an error code, which is then surfaced as // the result of calling Read(). TEST_P(FilterSourceStreamTest, FilterDataReturnError) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input; source->AddReadResult(input.data(), 0, OK, GetParam()); scoped_refptr<IOBufferWithSize> output_buffer = @@ -460,21 +460,22 @@ } TEST_P(FilterSourceStreamTest, FilterChaining) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; source->AddReadResult(input.data(), input.length(), OK, GetParam()); source->AddReadResult(input.data(), 0, OK, GetParam()); // EOF MockSourceStream* mock_stream = source.get(); - std::unique_ptr<PassThroughFilterSourceStream> pass_through_source( - new PassThroughFilterSourceStream(std::move(source))); + auto pass_through_source = + std::make_unique<PassThroughFilterSourceStream>(std::move(source)); pass_through_source->set_type_string("FIRST_PASS_THROUGH"); - std::unique_ptr<NeedsAllInputFilterSourceStream> needs_all_input_source( - new NeedsAllInputFilterSourceStream(std::move(pass_through_source), - input.length())); + auto needs_all_input_source = + std::make_unique<NeedsAllInputFilterSourceStream>( + std::move(pass_through_source), input.length()); needs_all_input_source->set_type_string("NEEDS_ALL"); - std::unique_ptr<PassThroughFilterSourceStream> second_pass_through_source( - new PassThroughFilterSourceStream(std::move(needs_all_input_source))); + auto second_pass_through_source = + std::make_unique<PassThroughFilterSourceStream>( + std::move(needs_all_input_source)); second_pass_through_source->set_type_string("SECOND_PASS_THROUGH"); scoped_refptr<IOBufferWithSize> output_buffer = base::MakeRefCounted<IOBufferWithSize>(kDefaultBufferSize); @@ -500,7 +501,7 @@ // Tests that FilterData() returns multiple times for a single MockStream // read, because there is not enough output space. TEST_P(FilterSourceStreamTest, OutputSpaceForOneRead) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; source->AddReadResult(input.data(), input.length(), OK, GetParam()); // Add a 0 byte read to signal EOF. @@ -530,7 +531,7 @@ // Tests that FilterData() returns multiple times for a single MockStream // read, because the filter returns one byte at a time. TEST_P(FilterSourceStreamTest, ThrottleSourceStream) { - std::unique_ptr<MockSourceStream> source(new MockSourceStream); + auto source = std::make_unique<MockSourceStream>(); std::string input = "hello, world!"; source->AddReadResult(input.data(), input.length(), OK, GetParam()); // Add a 0 byte read to signal EOF.
diff --git a/net/filter/gzip_source_stream_unittest.cc b/net/filter/gzip_source_stream_unittest.cc index 0fba4bd..b45ca60 100644 --- a/net/filter/gzip_source_stream_unittest.cc +++ b/net/filter/gzip_source_stream_unittest.cc
@@ -72,7 +72,7 @@ &encoded_data_len_, type != SourceStream::TYPE_DEFLATE); output_buffer_ = base::MakeRefCounted<IOBuffer>(output_buffer_size_); - std::unique_ptr<MockSourceStream> source(new MockSourceStream()); + auto source = std::make_unique<MockSourceStream>(); if (GetParam().read_result_type == ReadResultType::ONE_BYTE_AT_A_TIME) source->set_read_one_byte_at_a_time(true); source_ = source.get();
diff --git a/net/http/bidirectional_stream_unittest.cc b/net/http/bidirectional_stream_unittest.cc index 52dddb8f6..67e50f6 100644 --- a/net/http/bidirectional_stream_unittest.cc +++ b/net/http/bidirectional_stream_unittest.cc
@@ -452,15 +452,14 @@ }; TEST_F(BidirectionalStreamTest, CreateInsecureStream) { - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = GURL("http://www.example.org/"); TestDelegateBase delegate(nullptr, 0); - std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession( + auto session = std::make_unique<HttpNetworkSession>( SpdySessionDependencies::CreateSessionParams(&session_deps_), - SpdySessionDependencies::CreateSessionContext(&session_deps_))); + SpdySessionDependencies::CreateSessionContext(&session_deps_)); delegate.SetRunUntilCompletion(true); delegate.Start(std::move(request_info), session.get()); @@ -485,16 +484,15 @@ }; InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, base::NumberToString(kBodyDataSize)); scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(std::move(request_info), http_session_.get()); sequenced_data_->RunUntilPaused(); @@ -535,13 +533,11 @@ MockRead(ASYNC, 0, 6)}; InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->end_stream_on_headers = true; - std::unique_ptr<BidirectionalStreamRequestInfo> request_info2( - new BidirectionalStreamRequestInfo); + auto request_info2 = std::make_unique<BidirectionalStreamRequestInfo>(); request_info2->method = "GET"; request_info2->url = default_url_; request_info2->end_stream_on_headers = true; @@ -550,10 +546,10 @@ base::MakeRefCounted<IOBuffer>(kReadBufferSize); scoped_refptr<IOBuffer> read_buffer2 = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); - std::unique_ptr<TestDelegateBase> delegate2( - new TestDelegateBase(read_buffer2.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); + auto delegate2 = + std::make_unique<TestDelegateBase>(read_buffer2.get(), kReadBufferSize); delegate->Start(std::move(request_info), http_session_.get()); delegate2->Start(std::move(request_info2), http_session_.get()); delegate->SetRunUntilCompletion(true); @@ -574,15 +570,14 @@ // without waiting for the OnFailed task to be executed. TEST_F(BidirectionalStreamTest, CreateInsecureStreamAndDestroyStreamRightAfter) { - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = GURL("http://www.example.org/"); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase(nullptr, 0)); - std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession( + auto delegate = std::make_unique<TestDelegateBase>(nullptr, 0); + auto session = std::make_unique<HttpNetworkSession>( SpdySessionDependencies::CreateSessionParams(&session_deps_), - SpdySessionDependencies::CreateSessionContext(&session_deps_))); + SpdySessionDependencies::CreateSessionContext(&session_deps_)); delegate->Start(std::move(request_info), session.get()); // Reset stream right before the OnFailed task is executed. delegate.reset(); @@ -629,8 +624,7 @@ PRIVACY_MODE_DISABLED, SpdySessionKey::IsProxySession::kFalse, SocketTag(), NetworkIsolationKey(), SecureDnsPolicy::kAllow); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->end_stream_on_headers = true; @@ -638,8 +632,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); @@ -690,8 +684,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->end_stream_on_headers = true; @@ -702,8 +695,8 @@ // Create a MockTimer. Retain a raw pointer since the underlying // BidirectionalStreamImpl owns it. MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); @@ -776,8 +769,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -788,8 +780,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); // Send the request and receive response headers. @@ -913,8 +905,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -925,8 +916,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); // Send the request and receive response headers. @@ -1004,8 +995,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1016,8 +1006,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->set_do_not_start_read(true); TestCompletionCallback callback; delegate->Start(std::move(request_info), http_session_.get(), @@ -1097,8 +1087,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1107,8 +1096,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); // Write request, and deliver response headers. @@ -1158,8 +1147,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1168,8 +1156,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->Start(std::move(request_info), http_session_.get()); // Deliver two DATA frames together. sequenced_data_->RunUntilPaused(); @@ -1241,11 +1229,10 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1305,8 +1292,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1316,8 +1302,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); // Send the request and receive response headers. @@ -1369,8 +1355,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1380,8 +1365,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->set_do_not_start_read(true); delegate->Start(std::move(request_info), http_session_.get()); // Send the request and receive response headers. @@ -1431,8 +1416,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->extra_headers.SetHeader( @@ -1441,8 +1425,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); @@ -1494,8 +1478,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1503,9 +1486,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( + auto delegate = std::make_unique<DeleteStreamDelegate>( read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::Phase::ON_HEADERS_RECEIVED)); + DeleteStreamDelegate::Phase::ON_HEADERS_RECEIVED); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); // Makes sure delegate does not get called. @@ -1549,8 +1532,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1558,9 +1540,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate( - new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::Phase::ON_DATA_READ)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, + DeleteStreamDelegate::Phase::ON_DATA_READ); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); // Makes sure delegate does not get called. @@ -1609,8 +1591,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1618,9 +1599,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( + auto delegate = std::make_unique<DeleteStreamDelegate>( read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::Phase::ON_TRAILERS_RECEIVED)); + DeleteStreamDelegate::Phase::ON_TRAILERS_RECEIVED); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); // Makes sure delegate does not get called. @@ -1661,8 +1642,7 @@ InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1670,9 +1650,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate( - new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::Phase::ON_FAILED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, + DeleteStreamDelegate::Phase::ON_FAILED); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); // Makes sure delegate does not get called. @@ -1716,8 +1696,7 @@ session_deps_.enable_quic = true; InitSession(reads, writes, SocketTag()); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "GET"; request_info->url = default_url_; request_info->priority = LOWEST; @@ -1726,8 +1705,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); MockTimer* timer = new MockTimer(); - std::unique_ptr<TestDelegateBase> delegate(new TestDelegateBase( - read_buffer.get(), kReadBufferSize, base::WrapUnique(timer))); + auto delegate = std::make_unique<TestDelegateBase>( + read_buffer.get(), kReadBufferSize, base::WrapUnique(timer)); delegate->SetRunUntilCompletion(true); delegate->Start(std::move(request_info), http_session_.get()); @@ -1774,8 +1753,7 @@ #endif InitSession(reads, writes, tag); - std::unique_ptr<BidirectionalStreamRequestInfo> request_info( - new BidirectionalStreamRequestInfo); + auto request_info = std::make_unique<BidirectionalStreamRequestInfo>(); request_info->method = "POST"; request_info->url = default_url_; request_info->extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, @@ -1783,8 +1761,8 @@ request_info->socket_tag = tag; scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(std::move(request_info), http_session_.get()); sequenced_data_->RunUntilPaused();
diff --git a/net/http/broken_alternative_services_unittest.cc b/net/http/broken_alternative_services_unittest.cc index 32d311a1..a7b58a2 100644 --- a/net/http/broken_alternative_services_unittest.cc +++ b/net/http/broken_alternative_services_unittest.cc
@@ -28,7 +28,7 @@ public ::testing::Test { public: BrokenAlternativeServicesTest() - : test_task_runner_(new base::TestMockTimeTaskRunner()), + : test_task_runner_(base::MakeRefCounted<base::TestMockTimeTaskRunner>()), test_task_runner_context_(test_task_runner_), broken_services_clock_(test_task_runner_->GetMockTickClock()), broken_services_(50, this, broken_services_clock_) {
diff --git a/net/http/http_auth_gssapi_posix_unittest.cc b/net/http/http_auth_gssapi_posix_unittest.cc index dd935bc..31076e2 100644 --- a/net/http/http_auth_gssapi_posix_unittest.cc +++ b/net/http/http_auth_gssapi_posix_unittest.cc
@@ -92,7 +92,7 @@ // TODO(ahendrickson): Manipulate the libraries and paths to test each of the // libraries we expect, and also whether or not they have the interface // functions we want. - std::unique_ptr<GSSAPILibrary> gssapi(new GSSAPISharedLibrary(std::string())); + auto gssapi = std::make_unique<GSSAPISharedLibrary>(std::string()); DCHECK(gssapi.get()); EXPECT_TRUE( gssapi.get()->Init(NetLogWithSource::Make(NetLogSourceType::NONE))); @@ -117,8 +117,8 @@ TEST(HttpAuthGSSAPIPOSIXTest, CustomLibraryMissing) { RecordingNetLogObserver net_log_observer; - std::unique_ptr<GSSAPILibrary> gssapi( - new GSSAPISharedLibrary("/this/library/does/not/exist")); + auto gssapi = + std::make_unique<GSSAPISharedLibrary>("/this/library/does/not/exist"); EXPECT_FALSE( gssapi.get()->Init(NetLogWithSource::Make(NetLogSourceType::NONE))); @@ -182,8 +182,7 @@ } TEST(HttpAuthGSSAPIPOSIXTest, GSSAPICycle) { - std::unique_ptr<test::MockGSSAPILibrary> mock_library( - new test::MockGSSAPILibrary); + auto mock_library = std::make_unique<test::MockGSSAPILibrary>(); DCHECK(mock_library.get()); mock_library->Init(NetLogWithSource()); const char kAuthResponse[] = "Mary had a little lamb";
diff --git a/net/http/http_auth_handler_digest.cc b/net/http/http_auth_handler_digest.cc index 0557b3d..744d2f7 100644 --- a/net/http/http_auth_handler_digest.cc +++ b/net/http/http_auth_handler_digest.cc
@@ -78,8 +78,7 @@ } HttpAuthHandlerDigest::Factory::Factory() - : nonce_generator_(new DynamicNonceGenerator()) { -} + : nonce_generator_(std::make_unique<DynamicNonceGenerator>()) {} HttpAuthHandlerDigest::Factory::~Factory() = default;
diff --git a/net/http/http_auth_handler_digest_unittest.cc b/net/http/http_auth_handler_digest_unittest.cc index fb417e6..0dd4501c 100644 --- a/net/http/http_auth_handler_digest_unittest.cc +++ b/net/http/http_auth_handler_digest_unittest.cc
@@ -55,8 +55,7 @@ EXPECT_FALSE(challenge.empty()); token->clear(); - std::unique_ptr<HttpAuthHandlerDigest::Factory> factory( - new HttpAuthHandlerDigest::Factory()); + auto factory = std::make_unique<HttpAuthHandlerDigest::Factory>(); HttpAuthHandlerDigest::NonceGenerator* nonce_generator = new HttpAuthHandlerDigest::FixedNonceGenerator("client_nonce"); factory->set_nonce_generator(nonce_generator); @@ -80,7 +79,7 @@ // completes synchronously. That's why this test can get away with a // TestCompletionCallback without an IO thread. TestCompletionCallback callback; - std::unique_ptr<HttpRequestInfo> request(new HttpRequestInfo()); + auto request = std::make_unique<HttpRequestInfo>(); request->url = GURL(request_url); AuthCredentials credentials(u"foo", u"bar"); int rv_generate = handler->GenerateAuthToken( @@ -362,8 +361,7 @@ }; url::SchemeHostPort scheme_host_port(GURL("http://www.example.com")); - std::unique_ptr<HttpAuthHandlerDigest::Factory> factory( - new HttpAuthHandlerDigest::Factory()); + auto factory = std::make_unique<HttpAuthHandlerDigest::Factory>(); for (const auto& test : tests) { SSLInfo null_ssl_info; auto host_resolver = std::make_unique<MockHostResolver>(); @@ -528,8 +526,7 @@ } }; url::SchemeHostPort scheme_host_port(GURL("http://www.example.com")); - std::unique_ptr<HttpAuthHandlerDigest::Factory> factory( - new HttpAuthHandlerDigest::Factory()); + auto factory = std::make_unique<HttpAuthHandlerDigest::Factory>(); for (const auto& test : tests) { SSLInfo null_ssl_info; auto host_resolver = std::make_unique<MockHostResolver>(); @@ -554,8 +551,7 @@ } TEST(HttpAuthHandlerDigest, HandleAnotherChallenge) { - std::unique_ptr<HttpAuthHandlerDigest::Factory> factory( - new HttpAuthHandlerDigest::Factory()); + auto factory = std::make_unique<HttpAuthHandlerDigest::Factory>(); auto host_resolver = std::make_unique<MockHostResolver>(); std::unique_ptr<HttpAuthHandler> handler; std::string default_challenge =
diff --git a/net/http/http_auth_handler_factory_unittest.cc b/net/http/http_auth_handler_factory_unittest.cc index 71551c8..db0251f1 100644 --- a/net/http/http_auth_handler_factory_unittest.cc +++ b/net/http/http_auth_handler_factory_unittest.cc
@@ -136,7 +136,7 @@ } TEST(HttpAuthHandlerFactoryTest, DefaultFactory) { - std::unique_ptr<HostResolver> host_resolver(new MockHostResolver()); + auto host_resolver = std::make_unique<MockHostResolver>(); MockAllowHttpAuthPreferences http_auth_preferences; std::unique_ptr<HttpAuthHandlerRegistryFactory> http_auth_handler_factory( HttpAuthHandlerFactory::CreateDefault()); @@ -220,7 +220,7 @@ } TEST(HttpAuthHandlerFactoryTest, HttpAuthUrlFilter) { - std::unique_ptr<HostResolver> host_resolver(new MockHostResolver()); + auto host_resolver = std::make_unique<MockHostResolver>(); MockAllowHttpAuthPreferences http_auth_preferences; // Set the Preference that blocks Basic Auth over HTTP on all of the @@ -273,7 +273,7 @@ } TEST(HttpAuthHandlerFactoryTest, BasicFactoryRespectsHTTPEnabledPref) { - std::unique_ptr<HostResolver> host_resolver(new MockHostResolver()); + auto host_resolver = std::make_unique<MockHostResolver>(); std::unique_ptr<HttpAuthHandlerRegistryFactory> http_auth_handler_factory( HttpAuthHandlerFactory::CreateDefault()); @@ -330,7 +330,7 @@ } TEST(HttpAuthHandlerFactoryTest, LogCreateAuthHandlerResults) { - std::unique_ptr<HostResolver> host_resolver(new MockHostResolver()); + auto host_resolver = std::make_unique<MockHostResolver>(); std::unique_ptr<HttpAuthHandlerRegistryFactory> http_auth_handler_factory( HttpAuthHandlerFactory::CreateDefault()); url::SchemeHostPort scheme_host_port(GURL("http://www.example.com"));
diff --git a/net/http/http_auth_handler_negotiate.cc b/net/http/http_auth_handler_negotiate.cc index e4b83d5..33d8034 100644 --- a/net/http/http_auth_handler_negotiate.cc +++ b/net/http/http_auth_handler_negotiate.cc
@@ -101,10 +101,11 @@ return ERR_UNSUPPORTED_AUTH_SCHEME; // TODO(cbentzel): Move towards model of parsing in the factory // method and only constructing when valid. - std::unique_ptr<HttpAuthHandler> tmp_handler(new HttpAuthHandlerNegotiate( - CreateAuthSystem(auth_library_.get(), http_auth_preferences(), - negotiate_auth_system_factory_), - http_auth_preferences(), host_resolver)); + std::unique_ptr<HttpAuthHandler> tmp_handler( + std::make_unique<HttpAuthHandlerNegotiate>( + CreateAuthSystem(auth_library_.get(), http_auth_preferences(), + negotiate_auth_system_factory_), + http_auth_preferences(), host_resolver)); #elif BUILDFLAG(IS_ANDROID) if (is_unsupported_ || !http_auth_preferences() || http_auth_preferences()->AuthAndroidNegotiateAccountType().empty() || @@ -112,9 +113,11 @@ return ERR_UNSUPPORTED_AUTH_SCHEME; // TODO(cbentzel): Move towards model of parsing in the factory // method and only constructing when valid. - std::unique_ptr<HttpAuthHandler> tmp_handler(new HttpAuthHandlerNegotiate( - CreateAuthSystem(http_auth_preferences(), negotiate_auth_system_factory_), - http_auth_preferences(), host_resolver)); + std::unique_ptr<HttpAuthHandler> tmp_handler( + std::make_unique<HttpAuthHandlerNegotiate>( + CreateAuthSystem(http_auth_preferences(), + negotiate_auth_system_factory_), + http_auth_preferences(), host_resolver)); #elif BUILDFLAG(IS_POSIX) if (is_unsupported_) return ERR_UNSUPPORTED_AUTH_SCHEME; @@ -130,10 +133,11 @@ } // TODO(ahendrickson): Move towards model of parsing in the factory // method and only constructing when valid. - std::unique_ptr<HttpAuthHandler> tmp_handler(new HttpAuthHandlerNegotiate( - CreateAuthSystem(auth_library_.get(), http_auth_preferences(), - negotiate_auth_system_factory_), - http_auth_preferences(), host_resolver)); + std::unique_ptr<HttpAuthHandler> tmp_handler( + std::make_unique<HttpAuthHandlerNegotiate>( + CreateAuthSystem(auth_library_.get(), http_auth_preferences(), + negotiate_auth_system_factory_), + http_auth_preferences(), host_resolver)); #endif if (!tmp_handler->InitFromChallenge(challenge, target, ssl_info, network_isolation_key, scheme_host_port,
diff --git a/net/http/http_auth_unittest.cc b/net/http/http_auth_unittest.cc index bd220b61..7ee5526 100644 --- a/net/http/http_auth_unittest.cc +++ b/net/http/http_auth_unittest.cc
@@ -132,7 +132,7 @@ url::SchemeHostPort scheme_host_port(GURL("http://www.example.com")); std::set<HttpAuth::Scheme> disabled_schemes; MockAllowHttpAuthPreferences http_auth_preferences; - std::unique_ptr<HostResolver> host_resolver(new MockHostResolver()); + auto host_resolver = std::make_unique<MockHostResolver>(); std::unique_ptr<HttpAuthHandlerRegistryFactory> http_auth_handler_factory( HttpAuthHandlerFactory::CreateDefault()); http_auth_handler_factory->SetHttpAuthPreferences(kNegotiateAuthScheme,
diff --git a/net/http/http_cache_lookup_manager.cc b/net/http/http_cache_lookup_manager.cc index cfcf6c84..194eb3f 100644 --- a/net/http/http_cache_lookup_manager.cc +++ b/net/http/http_cache_lookup_manager.cc
@@ -29,7 +29,7 @@ std::unique_ptr<ServerPushHelper> server_push_helper, NetLog* net_log) : push_helper_(std::move(server_push_helper)), - request_(new HttpRequestInfo()), + request_(std::make_unique<HttpRequestInfo>()), net_log_(NetLogWithSource::Make( net_log, NetLogSourceType::SERVER_PUSH_LOOKUP_TRANSACTION)) {}
diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc index 254ed35..9594ba33 100644 --- a/net/http/http_cache_unittest.cc +++ b/net/http/http_cache_unittest.cc
@@ -9734,7 +9734,8 @@ HttpResponseInfo response1; response1.was_cached = false; response1.remote_endpoint = expected_endpoint; - response1.headers = new HttpResponseHeaders("HTTP/1.1 200 OK"); + response1.headers = + base::MakeRefCounted<HttpResponseHeaders>("HTTP/1.1 200 OK"); // Pickle. base::Pickle pickle;
diff --git a/net/http/http_cache_writers.cc b/net/http/http_cache_writers.cc index 35f236a..5ba5747 100644 --- a/net/http/http_cache_writers.cc +++ b/net/http/http_cache_writers.cc
@@ -281,8 +281,7 @@ void HttpCache::Writers::TruncateEntry() { DCHECK(ShouldTruncate()); - - scoped_refptr<PickledIOBuffer> data(new PickledIOBuffer()); + auto data = base::MakeRefCounted<PickledIOBuffer>(); response_info_truncation_.Persist(data->pickle(), true /* skip_transient_headers*/, true /* response_truncated */);
diff --git a/net/http/http_chunked_decoder_unittest.cc b/net/http/http_chunked_decoder_unittest.cc index 4dbefb34..f3a34c1 100644 --- a/net/http/http_chunked_decoder_unittest.cc +++ b/net/http/http_chunked_decoder_unittest.cc
@@ -397,7 +397,7 @@ // Test when the line with the chunk length is too long. TEST(HttpChunkedDecoderTest, LongChunkLengthLine) { int big_chunk_length = HttpChunkedDecoder::kMaxLineBufLen; - std::unique_ptr<char[]> big_chunk(new char[big_chunk_length + 1]); + auto big_chunk = std::make_unique<char[]>(big_chunk_length + 1); memset(big_chunk.get(), '0', big_chunk_length); big_chunk[big_chunk_length] = 0; const char* const inputs[] = { @@ -411,7 +411,7 @@ // long. TEST(HttpChunkedDecoderTest, LongLengthLengthLine) { int big_chunk_length = HttpChunkedDecoder::kMaxLineBufLen; - std::unique_ptr<char[]> big_chunk(new char[big_chunk_length + 1]); + auto big_chunk = std::make_unique<char[]>(big_chunk_length + 1); memset(big_chunk.get(), '0', big_chunk_length); big_chunk[big_chunk_length] = 0; const char* const inputs[] = {
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc index ed658f5..cc04224 100644 --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc
@@ -1203,7 +1203,8 @@ // Unless this is a WebSocket request, in which case we pass it on up. if (response_.headers->response_code() / 100 == 1 && !ForWebSocketHandshake()) { - response_.headers = new HttpResponseHeaders(std::string()); + response_.headers = + base::MakeRefCounted<HttpResponseHeaders>(std::string()); next_state_ = STATE_READ_HEADERS; return OK; }
diff --git a/net/http/http_proxy_client_socket_fuzzer.cc b/net/http/http_proxy_client_socket_fuzzer.cc index ad3397f..fc3af85 100644 --- a/net/http/http_proxy_client_socket_fuzzer.cc +++ b/net/http/http_proxy_client_socket_fuzzer.cc
@@ -43,8 +43,8 @@ net::RecordingNetLogObserver net_log_observer; net::TestCompletionCallback callback; - std::unique_ptr<net::FuzzedSocket> fuzzed_socket( - new net::FuzzedSocket(&data_provider, net::NetLog::Get())); + auto fuzzed_socket = + std::make_unique<net::FuzzedSocket>(&data_provider, net::NetLog::Get()); CHECK_EQ(net::OK, fuzzed_socket->Connect(callback.callback())); // Create auth handler supporting basic and digest schemes. Other schemes can
diff --git a/net/http/http_response_body_drainer_unittest.cc b/net/http/http_response_body_drainer_unittest.cc index 13cdd3c..6524e05d 100644 --- a/net/http/http_response_body_drainer_unittest.cc +++ b/net/http/http_response_body_drainer_unittest.cc
@@ -238,15 +238,15 @@ HttpResponseBodyDrainerTest() : proxy_resolution_service_( ConfiguredProxyResolutionService::CreateDirect()), - ssl_config_service_(new SSLConfigServiceDefaults), - http_server_properties_(new HttpServerProperties()), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), + http_server_properties_(std::make_unique<HttpServerProperties>()), session_(CreateNetworkSession()), mock_stream_(new MockHttpStream(&result_waiter_)), drainer_(new HttpResponseBodyDrainer(mock_stream_)) {} ~HttpResponseBodyDrainerTest() override = default; - HttpNetworkSession* CreateNetworkSession() { + std::unique_ptr<HttpNetworkSession> CreateNetworkSession() { HttpNetworkSessionContext context; context.client_socket_factory = &socket_factory_; context.proxy_resolution_service = proxy_resolution_service_.get(); @@ -256,7 +256,8 @@ context.transport_security_state = &transport_security_state_; context.ct_policy_enforcer = &ct_policy_enforcer_; context.quic_context = &quic_context_; - return new HttpNetworkSession(HttpNetworkSessionParams(), context); + return std::make_unique<HttpNetworkSession>(HttpNetworkSessionParams(), + context); } std::unique_ptr<ProxyResolutionService> proxy_resolution_service_;
diff --git a/net/http/http_response_headers_unittest.cc b/net/http/http_response_headers_unittest.cc index 7963444..0007e53 100644 --- a/net/http/http_response_headers_unittest.cc +++ b/net/http/http_response_headers_unittest.cc
@@ -59,7 +59,7 @@ raw_headers += cache_control; raw_headers += "\n"; HeadersToRaw(&raw_headers); - headers_ = new HttpResponseHeaders(raw_headers); + headers_ = base::MakeRefCounted<HttpResponseHeaders>(raw_headers); } const scoped_refptr<HttpResponseHeaders>& headers() { return headers_; } @@ -138,8 +138,7 @@ HeadersToRaw(&raw_headers); std::string expected_headers(test.expected_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(raw_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(raw_headers); std::string headers = ToSimpleString(parsed); // Transform to readable output format (so it's easier to see diffs). @@ -325,13 +324,13 @@ std::string headers = test.raw_headers; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed1(new HttpResponseHeaders(headers)); + auto parsed1 = base::MakeRefCounted<HttpResponseHeaders>(headers); base::Pickle pickle; parsed1->Persist(&pickle, test.options); base::PickleIterator iter(pickle); - scoped_refptr<HttpResponseHeaders> parsed2(new HttpResponseHeaders(&iter)); + auto parsed2 = base::MakeRefCounted<HttpResponseHeaders>(&iter); EXPECT_EQ(std::string(test.expected_headers), ToSimpleString(parsed2)); } @@ -507,7 +506,7 @@ "cache-Control: no-store\n" "cache-Control:\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); size_t iter = 0; std::string value; @@ -536,7 +535,7 @@ "WWW-Authenticate:Digest realm=foobar, nonce=x, domain=y\n" "WWW-Authenticate:Basic realm=quatar\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); size_t iter = 0; std::string value; @@ -555,7 +554,7 @@ "Date: Tue, 07 Aug 2007 23:10:55 GMT\n" "Last-Modified: Wed, 01 Aug 2007 23:23:45 GMT\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); std::string value; EXPECT_TRUE(parsed->EnumerateHeader(nullptr, "date", &value)); @@ -573,7 +572,7 @@ "Last-Modified: Tue, 07 Aug 2007 19:10:55 EDT\n" "Expires: Tue, 07 Aug 2007 23:10:55 UTC\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::Time expected_value; ASSERT_TRUE(base::Time::FromString("Tue, 07 Aug 2007 23:10:55 GMT", &expected_value)); @@ -598,7 +597,7 @@ "HTTP/1.1 200 OK\n" "Age: 10\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_TRUE(parsed->GetAgeValue(&age)); EXPECT_EQ(10, age.InSeconds()); @@ -609,7 +608,7 @@ "HTTP/1.1 200 OK\n" "Age: 0\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_TRUE(parsed->GetAgeValue(&age)); EXPECT_EQ(0, age.InSeconds()); @@ -620,7 +619,7 @@ "HTTP/1.1 200 OK\n" "Age: donkey\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_FALSE(parsed->GetAgeValue(&age)); } @@ -630,7 +629,7 @@ "HTTP/1.1 200 OK\n" "Age: -10\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_FALSE(parsed->GetAgeValue(&age)); } @@ -640,7 +639,7 @@ "HTTP/1.1 200 OK\n" "Age: +10\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_FALSE(parsed->GetAgeValue(&age)); } @@ -650,7 +649,7 @@ "HTTP/1.1 200 OK\n" "Age: 999999999999999999999999999999999999999999\n"; HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age; ASSERT_TRUE(parsed->GetAgeValue(&age)); @@ -677,7 +676,7 @@ std::string headers(test.raw_headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); std::string value; EXPECT_EQ(test.has_mimetype, parsed->GetMimeType(&value)); @@ -850,7 +849,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); ValidationType validation_type = parsed->RequiresValidation(request_time, response_time, current_time); @@ -1041,13 +1040,11 @@ std::string orig_headers(test.orig_headers); HeadersToRaw(&orig_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers); std::string new_headers(test.new_headers); HeadersToRaw(&new_headers); - scoped_refptr<HttpResponseHeaders> new_parsed( - new HttpResponseHeaders(new_headers)); + auto new_parsed = base::MakeRefCounted<HttpResponseHeaders>(new_headers); parsed->Update(*new_parsed.get()); @@ -1177,7 +1174,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); std::string name, value, lines; @@ -1236,7 +1233,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); std::string location; EXPECT_EQ(parsed->IsRedirect(&location), test.is_redirect); @@ -1322,7 +1319,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_EQ(test.expected_len, parsed->GetContentLength()); } @@ -1402,7 +1399,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); int64_t first_byte_position; int64_t last_byte_position; @@ -1461,7 +1458,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_EQ(test.expected_keep_alive, parsed->IsKeepAlive()); } @@ -1621,7 +1618,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_EQ(test.expected_result, parsed->HasStrongValidators()); } @@ -1679,7 +1676,7 @@ TEST(HttpResponseHeadersTest, HasValidatorsNone) { std::string headers("HTTP/1.1 200 OK"); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_FALSE(parsed->HasValidators()); } @@ -1688,7 +1685,7 @@ "HTTP/1.1 200 OK\n" "etag: \"anything\""); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_TRUE(parsed->HasValidators()); } @@ -1697,7 +1694,7 @@ "HTTP/1.1 200 OK\n" "Last-Modified: Wed, 28 Nov 2007 00:40:10 GMT"); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_TRUE(parsed->HasValidators()); } @@ -1706,7 +1703,7 @@ "HTTP/1.1 200 OK\n" "etag: W/\"anything\""); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); EXPECT_TRUE(parsed->HasValidators()); } @@ -1853,8 +1850,7 @@ std::string orig_headers(test.orig_headers); HeadersToRaw(&orig_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers); std::string name(test.to_remove); parsed->RemoveHeader(name); @@ -1906,8 +1902,7 @@ std::string orig_headers(test.orig_headers); HeadersToRaw(&orig_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers); std::unordered_set<std::string> to_remove; for (auto* header : test.to_remove) { @@ -1970,8 +1965,7 @@ std::string orig_headers(test.orig_headers); HeadersToRaw(&orig_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers); std::string name(test.to_remove_name); std::string value(test.to_remove_value); @@ -2072,8 +2066,7 @@ std::string orig_headers(test.orig_headers); HeadersToRaw(&orig_headers); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers); std::string name(test.new_status); parsed->ReplaceStatusLine(name); @@ -2138,8 +2131,7 @@ std::string orig_headers(test.orig_headers); std::replace(orig_headers.begin(), orig_headers.end(), '\n', '\0'); - scoped_refptr<HttpResponseHeaders> parsed( - new HttpResponseHeaders(orig_headers + '\0')); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(orig_headers + '\0'); int64_t content_size = parsed->GetContentLength(); // Update headers without replacing status line. @@ -2342,7 +2334,7 @@ std::string headers(test.headers); HeadersToRaw(&headers); - scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); + auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers); base::TimeDelta age = parsed->GetCurrentAge(request_time, response_time, current_time);
diff --git a/net/http/http_response_info.cc b/net/http/http_response_info.cc index e96d6da..8b5285e 100644 --- a/net/http/http_response_info.cc +++ b/net/http/http_response_info.cc
@@ -224,7 +224,7 @@ response_time = Time::FromInternalValue(time_val); // Read response-headers - headers = new HttpResponseHeaders(&iter); + headers = base::MakeRefCounted<HttpResponseHeaders>(&iter); if (headers->response_code() == -1) return false;
diff --git a/net/http/http_response_info_unittest.cc b/net/http/http_response_info_unittest.cc index 43c8770a..03bc8379 100644 --- a/net/http/http_response_info_unittest.cc +++ b/net/http/http_response_info_unittest.cc
@@ -22,7 +22,7 @@ class HttpResponseInfoTest : public testing::Test { protected: void SetUp() override { - response_info_.headers = new HttpResponseHeaders(""); + response_info_.headers = base::MakeRefCounted<HttpResponseHeaders>(""); } void PickleAndRestore(const HttpResponseInfo& response_info,
diff --git a/net/http/http_stream_factory_job.cc b/net/http/http_stream_factory_job.cc index 968b9ea4..b6fb88d 100644 --- a/net/http/http_stream_factory_job.cc +++ b/net/http/http_stream_factory_job.cc
@@ -137,7 +137,7 @@ NetLogWithSource::Make(net_log, NetLogSourceType::HTTP_STREAM_JOB)), io_callback_( base::BindRepeating(&Job::OnIOComplete, base::Unretained(this))), - connection_(new ClientSocketHandle), + connection_(std::make_unique<ClientSocketHandle>()), session_(session), destination_(std::move(destination)), origin_url_(origin_url),
diff --git a/net/http/http_stream_factory_job_controller_unittest.cc b/net/http/http_stream_factory_job_controller_unittest.cc index 59f06e7..6b002038 100644 --- a/net/http/http_stream_factory_job_controller_unittest.cc +++ b/net/http/http_stream_factory_job_controller_unittest.cc
@@ -3737,8 +3737,7 @@ request_info.network_isolation_key = network_isolation_key; Initialize(request_info); url::SchemeHostPort origin(request_info.url); - scoped_refptr<HttpResponseHeaders> headers( - base::MakeRefCounted<HttpResponseHeaders>("")); + auto headers = base::MakeRefCounted<HttpResponseHeaders>(""); headers->AddHeader("alt-svc", alt_svc_header); session_->http_stream_factory()->ProcessAlternativeServices( session_.get(), network_isolation_key, headers.get(), origin);
diff --git a/net/http/http_stream_factory_unittest.cc b/net/http/http_stream_factory_unittest.cc index e5f9d1f..0d6136f 100644 --- a/net/http/http_stream_factory_unittest.cc +++ b/net/http/http_stream_factory_unittest.cc
@@ -3552,8 +3552,8 @@ url::SchemeHostPort origin; NetworkIsolationKey network_isolation_key; - scoped_refptr<HttpResponseHeaders> headers( - base::MakeRefCounted<HttpResponseHeaders>("")); + auto headers = base::MakeRefCounted<HttpResponseHeaders>(""); + session_->http_stream_factory()->ProcessAlternativeServices( session_.get(), network_isolation_key, headers.get(), origin); @@ -3582,8 +3582,7 @@ .GetAlternativeServiceInfos(origin, network_isolation_key) .empty()); - scoped_refptr<HttpResponseHeaders> headers( - base::MakeRefCounted<HttpResponseHeaders>("")); + auto headers = base::MakeRefCounted<HttpResponseHeaders>(""); headers->AddHeader("alt-svc", "clear"); session_->http_stream_factory()->ProcessAlternativeServices( @@ -3605,8 +3604,7 @@ SchemefulSite(GURL("https://example.com")), SchemefulSite(GURL("https://example.com"))); - scoped_refptr<HttpResponseHeaders> headers( - base::MakeRefCounted<HttpResponseHeaders>("")); + auto headers = base::MakeRefCounted<HttpResponseHeaders>(""); headers->AddHeader("alt-svc", "h3-29=\":443\"," "h3-Q050=\":443\"," @@ -3643,8 +3641,7 @@ SchemefulSite(GURL("https://example.com")), SchemefulSite(GURL("https://example.com"))); - scoped_refptr<HttpResponseHeaders> headers( - base::MakeRefCounted<HttpResponseHeaders>("")); + auto headers = base::MakeRefCounted<HttpResponseHeaders>(""); headers->AddHeader("alt-svc", "h2=\"other.example.com:443\""); session_->http_stream_factory()->ProcessAlternativeServices(
diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc index 3d3a1d5..8b1e78d5 100644 --- a/net/http/http_stream_parser.cc +++ b/net/http/http_stream_parser.cc
@@ -1007,7 +1007,8 @@ } } - headers = new HttpResponseHeaders(std::string("HTTP/0.9 200 OK")); + headers = base::MakeRefCounted<HttpResponseHeaders>( + std::string("HTTP/0.9 200 OK")); } // Check for multiple Content-Length headers when the response is not
diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc index facc4ac..981df136 100644 --- a/net/http/http_stream_parser_unittest.cc +++ b/net/http/http_stream_parser_unittest.cc
@@ -58,8 +58,8 @@ std::unique_ptr<StreamSocket> CreateConnectedSocket(SequencedSocketData* data) { data->set_connect_data(MockConnect(SYNCHRONOUS, OK)); - std::unique_ptr<MockTCPClientSocket> socket( - new MockTCPClientSocket(net::AddressList(), nullptr, data)); + auto socket = + std::make_unique<MockTCPClientSocket>(net::AddressList(), nullptr, data); TestCompletionCallback callback; EXPECT_THAT(socket->Connect(callback.callback()), IsOk()); @@ -363,7 +363,7 @@ TEST(HttpStreamParser, ShouldMergeRequestHeadersAndBody_ChunkedBody) { const std::string payload = "123"; - std::unique_ptr<ChunkedUploadDataStream> body(new ChunkedUploadDataStream(0)); + auto body = std::make_unique<ChunkedUploadDataStream>(0); body->AppendData(payload.data(), payload.size(), true); ASSERT_THAT( body->Init(TestCompletionCallback().callback(), NetLogWithSource()), @@ -392,7 +392,8 @@ base::Time())); std::unique_ptr<UploadDataStream> body( - new ElementsUploadDataStream(std::move(element_readers), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers), + 0)); TestCompletionCallback callback; ASSERT_THAT(body->Init(callback.callback(), NetLogWithSource()), IsError(ERR_IO_PENDING)); @@ -413,7 +414,8 @@ payload.data(), payload.size())); std::unique_ptr<UploadDataStream> body( - new ElementsUploadDataStream(std::move(element_readers), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers), + 0)); ASSERT_THAT(body->Init(CompletionOnceCallback(), NetLogWithSource()), IsOk()); // Yes, should be merged if the in-memory body is small here. ASSERT_TRUE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( @@ -427,7 +429,8 @@ payload.data(), payload.size())); std::unique_ptr<UploadDataStream> body( - new ElementsUploadDataStream(std::move(element_readers), 0)); + std::make_unique<ElementsUploadDataStream>(std::move(element_readers), + 0)); ASSERT_THAT(body->Init(CompletionOnceCallback(), NetLogWithSource()), IsOk()); // Shouldn't be merged if the in-memory body is large here. ASSERT_FALSE(HttpStreamParser::ShouldMergeRequestHeadersAndBody( @@ -2158,7 +2161,7 @@ SequencedSocketData data(reads, writes); std::unique_ptr<StreamSocket> stream_socket = CreateConnectedSocket(&data); - std::unique_ptr<HttpRequestInfo> request_info(new HttpRequestInfo()); + auto request_info = std::make_unique<HttpRequestInfo>(); request_info->method = "GET"; request_info->url = GURL("http://somewhere/foo.html"); @@ -2168,8 +2171,8 @@ request_info.get(), read_buffer.get(), NetLogWithSource()); - std::unique_ptr<HttpRequestHeaders> request_headers(new HttpRequestHeaders()); - std::unique_ptr<HttpResponseInfo> response_info(new HttpResponseInfo()); + auto request_headers = std::make_unique<HttpRequestHeaders>(); + auto response_info = std::make_unique<HttpResponseInfo>(); TestCompletionCallback callback; ASSERT_EQ( OK, parser.SendRequest("GET /foo.html HTTP/1.1\r\n", *request_headers,
diff --git a/net/http/http_transaction_test_util.cc b/net/http/http_transaction_test_util.cc index 5ea84b3..95beb9d 100644 --- a/net/http/http_transaction_test_util.cc +++ b/net/http/http_transaction_test_util.cc
@@ -506,7 +506,7 @@ if (!t->response_time.is_null()) response_.response_time = t->response_time; - response_.headers = new HttpResponseHeaders(header_data); + response_.headers = base::MakeRefCounted<HttpResponseHeaders>(header_data); response_.ssl_info.cert = t->cert; response_.ssl_info.cert_status = t->cert_status; response_.ssl_info.connection_status = t->ssl_connection_status; @@ -607,8 +607,8 @@ std::unique_ptr<HttpTransaction>* trans) { transaction_count_++; last_create_transaction_priority_ = priority; - std::unique_ptr<MockNetworkTransaction> mock_transaction( - new MockNetworkTransaction(priority, this)); + auto mock_transaction = + std::make_unique<MockNetworkTransaction>(priority, this); last_transaction_ = mock_transaction->AsWeakPtr(); *trans = std::move(mock_transaction); return OK;
diff --git a/net/http/http_vary_data_unittest.cc b/net/http/http_vary_data_unittest.cc index 0b11adf..b4b3d4c 100644 --- a/net/http/http_vary_data_unittest.cc +++ b/net/http/http_vary_data_unittest.cc
@@ -25,7 +25,7 @@ const std::string& response_headers) { std::string temp(response_headers); std::replace(temp.begin(), temp.end(), '\n', '\0'); - response = new HttpResponseHeaders(temp); + response = base::MakeRefCounted<HttpResponseHeaders>(temp); request.extra_headers.Clear(); for (const auto& [key, value] : request_headers)
diff --git a/net/http/mock_http_cache.cc b/net/http/mock_http_cache.cc index 55dab03..a96faaa 100644 --- a/net/http/mock_http_cache.cc +++ b/net/http/mock_http_cache.cc
@@ -581,7 +581,7 @@ }; std::unique_ptr<disk_cache::Backend::Iterator> MockDiskCache::CreateIterator() { - return std::unique_ptr<Iterator>(new NotImplementedIterator()); + return std::make_unique<NotImplementedIterator>(); } void MockDiskCache::GetStats(base::StringPairs* stats) {
diff --git a/net/http/transport_security_state_unittest.cc b/net/http/transport_security_state_unittest.cc index a59c758c..e6a28e5 100644 --- a/net/http/transport_security_state_unittest.cc +++ b/net/http/transport_security_state_unittest.cc
@@ -107,8 +107,7 @@ const base::Time& timestamp, ct::SCTVerifyStatus status, SignedCertificateTimestampAndStatusList* sct_list) { - scoped_refptr<net::ct::SignedCertificateTimestamp> sct( - new net::ct::SignedCertificateTimestamp()); + auto sct = base::MakeRefCounted<net::ct::SignedCertificateTimestamp>(); sct->version = net::ct::SignedCertificateTimestamp::V1; sct->log_id = log_id; sct->extensions = extensions;
diff --git a/net/http/url_security_manager_unittest.cc b/net/http/url_security_manager_unittest.cc index e54f9cf..0d59ffb 100644 --- a/net/http/url_security_manager_unittest.cc +++ b/net/http/url_security_manager_unittest.cc
@@ -46,8 +46,8 @@ } // namespace TEST(URLSecurityManager, UseDefaultCredentials) { - std::unique_ptr<HttpAuthFilter> auth_filter( - new HttpAuthFilterAllowlist(kTestAuthAllowlist)); + auto auth_filter = + std::make_unique<HttpAuthFilterAllowlist>(kTestAuthAllowlist); ASSERT_TRUE(auth_filter); // The URL security manager takes ownership of |auth_filter|. std::unique_ptr<URLSecurityManager> url_security_manager( @@ -68,8 +68,8 @@ } TEST(URLSecurityManager, CanDelegate) { - std::unique_ptr<HttpAuthFilter> auth_filter( - new HttpAuthFilterAllowlist(kTestAuthAllowlist)); + auto auth_filter = + std::make_unique<HttpAuthFilterAllowlist>(kTestAuthAllowlist); ASSERT_TRUE(auth_filter); // The URL security manager takes ownership of |auth_filter|. std::unique_ptr<URLSecurityManager> url_security_manager(
diff --git a/net/log/file_net_log_observer.cc b/net/log/file_net_log_observer.cc index f92b834..b1a1a91b 100644 --- a/net/log/file_net_log_observer.cc +++ b/net/log/file_net_log_observer.cc
@@ -409,7 +409,7 @@ } void FileNetLogObserver::OnAddEntry(const NetLogEntry& entry) { - std::unique_ptr<std::string> json(new std::string); + auto json = std::make_unique<std::string>(); *json = SerializeNetLogValueToJson(entry.ToValue()); @@ -467,17 +467,17 @@ // TODO(dconnol): Handle the case when the WriteQueue still doesn't // contain enough events to fill all files, because of very large events // relative to file size. - std::unique_ptr<FileWriter> file_writer(new FileWriter( + auto file_writer = std::make_unique<FileWriter>( log_path, inprogress_dir_path, std::move(pre_existing_log_file), - max_event_file_size, total_num_event_files, file_task_runner)); + max_event_file_size, total_num_event_files, file_task_runner); uint64_t write_queue_memory_max = base::MakeClampedNum<uint64_t>(max_total_size) * 2; return base::WrapUnique(new FileNetLogObserver( file_task_runner, std::move(file_writer), - base::WrapRefCounted(new WriteQueue(write_queue_memory_max)), - capture_mode, std::move(constants))); + base::MakeRefCounted<WriteQueue>(write_queue_memory_max), capture_mode, + std::move(constants))); } FileNetLogObserver::FileNetLogObserver( @@ -752,7 +752,7 @@ // Allocate a 64K buffer used for reading the files. At most kReadBufferSize // bytes will be in memory at a time. const size_t kReadBufferSize = 1 << 16; // 64KiB - std::unique_ptr<char[]> read_buffer(new char[kReadBufferSize]); + auto read_buffer = std::make_unique<char[]>(kReadBufferSize); if (final_log_file_.IsValid()) { // Truncate the final log file.
diff --git a/net/nqe/network_qualities_prefs_manager_unittest.cc b/net/nqe/network_qualities_prefs_manager_unittest.cc index d1e484da..345d6d3 100644 --- a/net/nqe/network_qualities_prefs_manager_unittest.cc +++ b/net/nqe/network_qualities_prefs_manager_unittest.cc
@@ -82,7 +82,7 @@ variation_params["force_effective_connection_type"] = "Slow-2G"; TestNetworkQualityEstimator estimator(variation_params); - std::unique_ptr<TestPrefDelegate> prefs_delegate(new TestPrefDelegate()); + auto prefs_delegate = std::make_unique<TestPrefDelegate>(); TestPrefDelegate* prefs_delegate_ptr = prefs_delegate.get(); NetworkQualitiesPrefsManager manager(std::move(prefs_delegate)); @@ -127,7 +127,7 @@ variation_params["force_effective_connection_type"] = "Slow-2G"; TestNetworkQualityEstimator estimator(variation_params); - std::unique_ptr<TestPrefDelegate> prefs_delegate(new TestPrefDelegate()); + auto prefs_delegate = std::make_unique<TestPrefDelegate>(); TestPrefDelegate* prefs_delegate_ptr = prefs_delegate.get(); NetworkQualitiesPrefsManager manager(std::move(prefs_delegate)); @@ -192,7 +192,7 @@ variation_params["force_effective_connection_type"] = "Slow-2G"; TestNetworkQualityEstimator estimator(variation_params); - std::unique_ptr<TestPrefDelegate> prefs_delegate(new TestPrefDelegate()); + auto prefs_delegate = std::make_unique<TestPrefDelegate>(); NetworkQualitiesPrefsManager manager(std::move(prefs_delegate)); manager.InitializeOnNetworkThread(&estimator); @@ -267,7 +267,7 @@ variation_params["force_effective_connection_type"] = "Slow-2G"; TestNetworkQualityEstimator estimator(variation_params); - std::unique_ptr<TestPrefDelegate> prefs_delegate(new TestPrefDelegate()); + auto prefs_delegate = std::make_unique<TestPrefDelegate>(); NetworkQualitiesPrefsManager manager(std::move(prefs_delegate)); manager.InitializeOnNetworkThread(&estimator);
diff --git a/net/nqe/network_quality_estimator_util_unittest.cc b/net/nqe/network_quality_estimator_util_unittest.cc index ae9c3c3..211f071f 100644 --- a/net/nqe/network_quality_estimator_util_unittest.cc +++ b/net/nqe/network_quality_estimator_util_unittest.cc
@@ -96,8 +96,7 @@ MockCachingHostResolver mock_host_resolver; - scoped_refptr<net::RuleBasedHostResolverProc> rules( - new net::RuleBasedHostResolverProc(nullptr)); + auto rules = base::MakeRefCounted<net::RuleBasedHostResolverProc>(nullptr); // Add example3.com resolution to the DNS cache. mock_host_resolver.rules()->AddRule("example3.com", "127.0.0.3"); @@ -190,8 +189,7 @@ std::unique_ptr<ContextHostResolver> resolver = HostResolver::CreateStandaloneContextResolver(NetLog::Get()); - scoped_refptr<net::RuleBasedHostResolverProc> rules( - new net::RuleBasedHostResolverProc(nullptr)); + auto rules = base::MakeRefCounted<net::RuleBasedHostResolverProc>(nullptr); EXPECT_TRUE(IsPrivateHostForTesting( resolver.get(), HostPortPair("localhost", 443), NetworkIsolationKey()));
diff --git a/net/proxy_resolution/configured_proxy_resolution_service.cc b/net/proxy_resolution/configured_proxy_resolution_service.cc index 30072447..6c18fe5e 100644 --- a/net/proxy_resolution/configured_proxy_resolution_service.cc +++ b/net/proxy_resolution/configured_proxy_resolution_service.cc
@@ -914,11 +914,10 @@ const NetworkTrafficAnnotationTag& traffic_annotation) { // We need the settings to contain an "automatic" setting, otherwise the // ProxyResolver dependency we give it will never be used. - std::unique_ptr<ProxyConfigService> proxy_config_service( - new ProxyConfigServiceFixed(ProxyConfigWithAnnotation( - ProxyConfig::CreateFromCustomPacURL( - GURL("https://my-pac-script.invalid/wpad.dat")), - traffic_annotation))); + auto proxy_config_service = std::make_unique<ProxyConfigServiceFixed>( + ProxyConfigWithAnnotation(ProxyConfig::CreateFromCustomPacURL(GURL( + "https://my-pac-script.invalid/wpad.dat")), + traffic_annotation)); return std::make_unique<ConfiguredProxyResolutionService>( std::move(proxy_config_service), @@ -931,9 +930,9 @@ ConfiguredProxyResolutionService::CreateFixedFromAutoDetectedPacResult( const std::string& pac_string, const NetworkTrafficAnnotationTag& traffic_annotation) { - std::unique_ptr<ProxyConfigService> proxy_config_service( - new ProxyConfigServiceFixed(ProxyConfigWithAnnotation( - ProxyConfig::CreateAutoDetect(), traffic_annotation))); + auto proxy_config_service = + std::make_unique<ProxyConfigServiceFixed>(ProxyConfigWithAnnotation( + ProxyConfig::CreateAutoDetect(), traffic_annotation)); return std::make_unique<ConfiguredProxyResolutionService>( std::move(proxy_config_service), @@ -1418,8 +1417,7 @@ << "be used only for examples."; return std::make_unique<UnsetProxyConfigService>(); #elif BUILDFLAG(IS_LINUX) - std::unique_ptr<ProxyConfigServiceLinux> linux_config_service( - new ProxyConfigServiceLinux()); + auto linux_config_service = std::make_unique<ProxyConfigServiceLinux>(); // Assume we got called on the thread that runs the default glib // main loop, so the current thread is where we should be running
diff --git a/net/proxy_resolution/mock_proxy_resolver.cc b/net/proxy_resolution/mock_proxy_resolver.cc index 15fb145..4a099722 100644 --- a/net/proxy_resolution/mock_proxy_resolver.cc +++ b/net/proxy_resolution/mock_proxy_resolver.cc
@@ -54,7 +54,7 @@ CompletionOnceCallback callback, std::unique_ptr<Request>* request, const NetLogWithSource& /*net_log*/) { - std::unique_ptr<Job> job(new Job(this, url, results, std::move(callback))); + auto job = std::make_unique<Job>(this, url, results, std::move(callback)); pending_jobs_.push_back(job.get()); *request = std::make_unique<RequestImpl>(std::move(job)); @@ -144,8 +144,8 @@ std::unique_ptr<ProxyResolver>* resolver, CompletionOnceCallback callback, std::unique_ptr<ProxyResolverFactory::Request>* request_handle) { - scoped_refptr<Request> request = - new Request(this, pac_script, resolver, std::move(callback)); + auto request = base::MakeRefCounted<Request>(this, pac_script, resolver, + std::move(callback)); pending_requests_.push_back(request); *request_handle = std::make_unique<Job>(request);
diff --git a/net/proxy_resolution/multi_threaded_proxy_resolver.cc b/net/proxy_resolution/multi_threaded_proxy_resolver.cc index e6db5db..17ee7eb 100644 --- a/net/proxy_resolution/multi_threaded_proxy_resolver.cc +++ b/net/proxy_resolution/multi_threaded_proxy_resolver.cc
@@ -452,8 +452,8 @@ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(!callback.is_null()); - scoped_refptr<GetProxyForURLJob> job(new GetProxyForURLJob( - url, network_isolation_key, results, std::move(callback), net_log)); + auto job = base::MakeRefCounted<GetProxyForURLJob>( + url, network_isolation_key, results, std::move(callback), net_log); // Completion will be notified through |callback|, unless the caller cancels // the request using |request|. @@ -495,10 +495,11 @@ DCHECK_LT(executors_.size(), max_num_threads_); // The "thread number" is used to give the thread a unique name. int thread_number = executors_.size(); - Executor* executor = new Executor(this, thread_number); + + auto executor = base::MakeRefCounted<Executor>(this, thread_number); executor->StartJob( new CreateResolverJob(script_data_, resolver_factory_.get())); - executors_.push_back(base::WrapRefCounted(executor)); + executors_.push_back(std::move(executor)); } void MultiThreadedProxyResolver::OnExecutorReady(Executor* executor) { @@ -530,7 +531,7 @@ resolver_factory_(std::move(resolver_factory)), max_num_threads_(max_num_threads), script_data_(script_data), - executor_(new Executor(this, 0)), + executor_(base::MakeRefCounted<Executor>(this, 0)), callback_(std::move(callback)) { executor_->StartJob( new CreateResolverJob(script_data_, resolver_factory_.get())); @@ -593,9 +594,9 @@ std::unique_ptr<ProxyResolver>* resolver, CompletionOnceCallback callback, std::unique_ptr<Request>* request) { - std::unique_ptr<Job> job(new Job(this, pac_script, resolver, + auto job = std::make_unique<Job>(this, pac_script, resolver, CreateProxyResolverFactory(), - max_num_threads_, std::move(callback))); + max_num_threads_, std::move(callback)); jobs_.insert(job.get()); *request = std::move(job); return ERR_IO_PENDING;
diff --git a/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc index 30a80e5..6c55341d 100644 --- a/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc +++ b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
@@ -233,8 +233,7 @@ class MultiThreadedProxyResolverTest : public TestWithTaskEnvironment { public: void Init(size_t num_threads) { - std::unique_ptr<BlockableProxyResolverFactory> factory_owner( - new BlockableProxyResolverFactory); + auto factory_owner = std::make_unique<BlockableProxyResolverFactory>(); factory_ = factory_owner.get(); resolver_factory_ = std::make_unique<SingleShotMultiThreadedProxyResolverFactory>(
diff --git a/net/proxy_resolution/network_delegate_error_observer.cc b/net/proxy_resolution/network_delegate_error_observer.cc index 82612459..563af122 100644 --- a/net/proxy_resolution/network_delegate_error_observer.cc +++ b/net/proxy_resolution/network_delegate_error_observer.cc
@@ -69,8 +69,7 @@ NetworkDelegateErrorObserver::NetworkDelegateErrorObserver( NetworkDelegate* network_delegate, base::SingleThreadTaskRunner* origin_runner) - : core_(new Core(network_delegate, origin_runner)) { -} + : core_(base::MakeRefCounted<Core>(network_delegate, origin_runner)) {} NetworkDelegateErrorObserver::~NetworkDelegateErrorObserver() { core_->Shutdown();
diff --git a/net/proxy_resolution/pac_file_data.cc b/net/proxy_resolution/pac_file_data.cc index 6e695f5..eee2fce 100644 --- a/net/proxy_resolution/pac_file_data.cc +++ b/net/proxy_resolution/pac_file_data.cc
@@ -11,22 +11,26 @@ // static scoped_refptr<PacFileData> PacFileData::FromUTF8(const std::string& utf8) { - return new PacFileData(TYPE_SCRIPT_CONTENTS, GURL(), base::UTF8ToUTF16(utf8)); + return base::WrapRefCounted( + new PacFileData(TYPE_SCRIPT_CONTENTS, GURL(), base::UTF8ToUTF16(utf8))); } // static scoped_refptr<PacFileData> PacFileData::FromUTF16(const std::u16string& utf16) { - return new PacFileData(TYPE_SCRIPT_CONTENTS, GURL(), utf16); + return base::WrapRefCounted( + new PacFileData(TYPE_SCRIPT_CONTENTS, GURL(), utf16)); } // static scoped_refptr<PacFileData> PacFileData::FromURL(const GURL& url) { - return new PacFileData(TYPE_SCRIPT_URL, url, std::u16string()); + return base::WrapRefCounted( + new PacFileData(TYPE_SCRIPT_URL, url, std::u16string())); } // static scoped_refptr<PacFileData> PacFileData::ForAutoDetect() { - return new PacFileData(TYPE_AUTO_DETECT, GURL(), std::u16string()); + return base::WrapRefCounted( + new PacFileData(TYPE_AUTO_DETECT, GURL(), std::u16string())); } const std::u16string& PacFileData::utf16() const {
diff --git a/net/proxy_resolution/pac_file_decider_unittest.cc b/net/proxy_resolution/pac_file_decider_unittest.cc index 6ae66ee1..df2cbd23b 100644 --- a/net/proxy_resolution/pac_file_decider_unittest.cc +++ b/net/proxy_resolution/pac_file_decider_unittest.cc
@@ -852,8 +852,7 @@ Rules rules; RuleBasedPacFileFetcher fetcher(&rules); - std::unique_ptr<AsyncFailDhcpFetcher> dhcp_fetcher( - new AsyncFailDhcpFetcher()); + auto dhcp_fetcher = std::make_unique<AsyncFailDhcpFetcher>(); ProxyConfig config; config.set_auto_detect(true);
diff --git a/net/proxy_resolution/polling_proxy_config_service.cc b/net/proxy_resolution/polling_proxy_config_service.cc index a21d4cd8..cc3b8e6e 100644 --- a/net/proxy_resolution/polling_proxy_config_service.cc +++ b/net/proxy_resolution/polling_proxy_config_service.cc
@@ -183,7 +183,9 @@ base::TimeDelta poll_interval, GetConfigFunction get_config_func, const NetworkTrafficAnnotationTag& traffic_annotation) - : core_(new Core(poll_interval, get_config_func, traffic_annotation)) {} + : core_(base::MakeRefCounted<Core>(poll_interval, + get_config_func, + traffic_annotation)) {} PollingProxyConfigService::~PollingProxyConfigService() { core_->Orphan();
diff --git a/net/proxy_resolution/proxy_config_service_android.cc b/net/proxy_resolution/proxy_config_service_android.cc index 3395d114..4eb28c6 100644 --- a/net/proxy_resolution/proxy_config_service_android.cc +++ b/net/proxy_resolution/proxy_config_service_android.cc
@@ -495,9 +495,10 @@ ProxyConfigServiceAndroid::ProxyConfigServiceAndroid( const scoped_refptr<base::SequencedTaskRunner>& main_task_runner, const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner) - : delegate_(new Delegate(main_task_runner, - jni_task_runner, - base::BindRepeating(&GetJavaProperty))) { + : delegate_(base::MakeRefCounted<Delegate>( + main_task_runner, + jni_task_runner, + base::BindRepeating(&GetJavaProperty))) { delegate_->SetupJNI(); delegate_->FetchInitialConfig(); } @@ -528,9 +529,9 @@ const scoped_refptr<base::SequencedTaskRunner>& main_task_runner, const scoped_refptr<base::SequencedTaskRunner>& jni_task_runner, GetPropertyCallback get_property_callback) - : delegate_(new Delegate(main_task_runner, - jni_task_runner, - get_property_callback)) { + : delegate_(base::MakeRefCounted<Delegate>(main_task_runner, + jni_task_runner, + get_property_callback)) { delegate_->SetupJNI(); delegate_->FetchInitialConfig(); }
diff --git a/net/proxy_resolution/proxy_config_service_linux.cc b/net/proxy_resolution/proxy_config_service_linux.cc index dd7759b..abac1ab 100644 --- a/net/proxy_resolution/proxy_config_service_linux.cc +++ b/net/proxy_resolution/proxy_config_service_linux.cc
@@ -238,7 +238,8 @@ class SettingGetterImplGSettings : public ProxyConfigServiceLinux::SettingGetter { public: - SettingGetterImplGSettings() : debounce_timer_(new base::OneShotTimer()) {} + SettingGetterImplGSettings() + : debounce_timer_(std::make_unique<base::OneShotTimer>()) {} SettingGetterImplGSettings(const SettingGetterImplGSettings&) = delete; SettingGetterImplGSettings& operator=(const SettingGetterImplGSettings&) = @@ -516,7 +517,7 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter { public: explicit SettingGetterImplKDE(base::Environment* env_var_getter) - : debounce_timer_(new base::OneShotTimer()), + : debounce_timer_(std::make_unique<base::OneShotTimer>()), env_var_getter_(env_var_getter) { // This has to be called on the UI thread (http://crbug.com/69057). base::ThreadRestrictions::ScopedAllowIO allow_io; @@ -1234,8 +1235,7 @@ case base::nix::DESKTOP_ENVIRONMENT_UNITY: #if defined(USE_GIO) { - std::unique_ptr<SettingGetterImplGSettings> gs_getter( - new SettingGetterImplGSettings()); + auto gs_getter = std::make_unique<SettingGetterImplGSettings>(); // We have to load symbols and check the GNOME version in use to decide // if we should use the gsettings getter. See CheckVersion(). if (gs_getter->CheckVersion(env_var_getter_.get())) @@ -1438,9 +1438,9 @@ } ProxyConfigServiceLinux::ProxyConfigServiceLinux() - : delegate_(new Delegate(base::Environment::Create(), - absl::nullopt, - absl::nullopt)) {} + : delegate_(base::MakeRefCounted<Delegate>(base::Environment::Create(), + absl::nullopt, + absl::nullopt)) {} ProxyConfigServiceLinux::~ProxyConfigServiceLinux() { delegate_->PostDestroyTask(); @@ -1449,17 +1449,17 @@ ProxyConfigServiceLinux::ProxyConfigServiceLinux( std::unique_ptr<base::Environment> env_var_getter, const NetworkTrafficAnnotationTag& traffic_annotation) - : delegate_(new Delegate(std::move(env_var_getter), - absl::nullopt, - traffic_annotation)) {} + : delegate_(base::MakeRefCounted<Delegate>(std::move(env_var_getter), + absl::nullopt, + traffic_annotation)) {} ProxyConfigServiceLinux::ProxyConfigServiceLinux( std::unique_ptr<base::Environment> env_var_getter, SettingGetter* setting_getter, const NetworkTrafficAnnotationTag& traffic_annotation) - : delegate_(new Delegate(std::move(env_var_getter), - base::WrapUnique(setting_getter), - traffic_annotation)) {} + : delegate_(base::MakeRefCounted<Delegate>(std::move(env_var_getter), + base::WrapUnique(setting_getter), + traffic_annotation)) {} void ProxyConfigServiceLinux::AddObserver(Observer* observer) { delegate_->AddObserver(observer);
diff --git a/net/proxy_resolution/proxy_config_service_linux_unittest.cc b/net/proxy_resolution/proxy_config_service_linux_unittest.cc index a290811..944c4e0 100644 --- a/net/proxy_resolution/proxy_config_service_linux_unittest.cc +++ b/net/proxy_resolution/proxy_config_service_linux_unittest.cc
@@ -768,7 +768,7 @@ for (size_t i = 0; i < std::size(tests); ++i) { SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i, tests[i].description.c_str())); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); MockSettingGetter* setting_getter = new MockSettingGetter; SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( std::move(env), setting_getter, TRAFFIC_ANNOTATION_FOR_TESTS)); @@ -1097,7 +1097,7 @@ for (size_t i = 0; i < std::size(tests); ++i) { SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i, tests[i].description.c_str())); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values = tests[i].values; MockSettingGetter* setting_getter = new MockSettingGetter; SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -1117,7 +1117,7 @@ } TEST_F(ProxyConfigServiceLinuxTest, GSettingsNotification) { - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); MockSettingGetter* setting_getter = new MockSettingGetter; ProxyConfigServiceLinux* service = new ProxyConfigServiceLinux( std::move(env), setting_getter, TRAFFIC_ANNOTATION_FOR_TESTS); @@ -1708,7 +1708,7 @@ for (size_t i = 0; i < std::size(tests); ++i) { SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i, tests[i].description.c_str())); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values = tests[i].env_values; // Force the KDE getter to be used and tell it where the test is. env->values.DESKTOP_SESSION = "kde4"; @@ -1758,7 +1758,7 @@ { SCOPED_TRACE("KDE4, no .kde4 directory, verify fallback"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde4"; env->values.HOME = user_home_.value().c_str(); SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -1779,7 +1779,7 @@ { SCOPED_TRACE("KDE4, .kde4 directory present, use it"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde4"; env->values.HOME = user_home_.value().c_str(); SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -1794,7 +1794,7 @@ { SCOPED_TRACE("KDE3, .kde4 directory present, ignore it"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde"; env->values.HOME = user_home_.value().c_str(); SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -1809,7 +1809,7 @@ { SCOPED_TRACE("KDE4, .kde4 directory present, KDEHOME set to .kde"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde4"; env->values.HOME = user_home_.value().c_str(); env->values.KDEHOME = kde_home_.value().c_str(); @@ -1829,7 +1829,7 @@ { SCOPED_TRACE("KDE4, very old .kde4 directory present, use .kde"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde4"; env->values.HOME = user_home_.value().c_str(); SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -1849,7 +1849,7 @@ { SCOPED_TRACE("KDE5, .kde and .kde4 present, use .config"); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.XDG_CURRENT_DESKTOP = "KDE"; env->values.KDE_SESSION_VERSION = "5"; env->values.HOME = user_home_.value().c_str(); @@ -1874,7 +1874,7 @@ "Proxy Config Script=http://version1/wpad.dat\n")); // Initialize the config service using kioslaverc. - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.DESKTOP_SESSION = "kde4"; env->values.HOME = user_home_.value().c_str(); SyncConfigGetter sync_config_getter(new ProxyConfigServiceLinux( @@ -2009,7 +2009,7 @@ for (size_t i = 0; i < std::size(tests); ++i) { SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i, tests[i].description.c_str())); - std::unique_ptr<MockEnvironment> env(new MockEnvironment); + auto env = std::make_unique<MockEnvironment>(); env->values.XDG_CURRENT_DESKTOP = "KDE"; env->values.KDE_SESSION_VERSION = "5"; env->values.HOME = user_home_.value().c_str();
diff --git a/net/proxy_resolution/proxy_config_service_mac.cc b/net/proxy_resolution/proxy_config_service_mac.cc index 84f4b6536..77d3cd8 100644 --- a/net/proxy_resolution/proxy_config_service_mac.cc +++ b/net/proxy_resolution/proxy_config_service_mac.cc
@@ -198,7 +198,7 @@ const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner, const NetworkTrafficAnnotationTag& traffic_annotation) : forwarder_(this), - helper_(new Helper(this)), + helper_(base::MakeRefCounted<Helper>(this)), sequenced_task_runner_(sequenced_task_runner), traffic_annotation_(traffic_annotation) { DCHECK(sequenced_task_runner_.get());
diff --git a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc index b6d642f..d25ad3f 100644 --- a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc +++ b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
@@ -100,7 +100,7 @@ }; DhcpQuery* ImplCreateDhcpQuery() override { - dhcp_query_ = new DelayingDhcpQuery(); + dhcp_query_ = base::MakeRefCounted<DelayingDhcpQuery>(); dhcp_query_->dhcp_delay_ = dhcp_delay_; dhcp_query_->configured_url_ = configured_url_; return dhcp_query_.get(); @@ -150,7 +150,7 @@ public: FetcherClient() : url_request_context_(CreateTestURLRequestContextBuilder()->Build()), - fetcher_(new MockDhcpPacFileAdapterFetcher( + fetcher_(std::make_unique<MockDhcpPacFileAdapterFetcher>( url_request_context_.get(), base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(),
diff --git a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc index 3cc79a9..a44faad6 100644 --- a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc +++ b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win.cc
@@ -574,7 +574,7 @@ } DhcpPacFileFetcherWin::AdapterQuery::AdapterQuery() - : logging_info_(new DhcpAdapterNamesLoggingInfo()) {} + : logging_info_(std::make_unique<DhcpAdapterNamesLoggingInfo>()) {} void DhcpPacFileFetcherWin::AdapterQuery::GetCandidateAdapterNames() { logging_info_->error = ERROR_NO_DATA;
diff --git a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc index a4bb2d82..35c255c 100644 --- a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc +++ b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
@@ -53,7 +53,7 @@ public: RealFetchTester() : context_(CreateTestURLRequestContextBuilder()->Build()), - fetcher_(new DhcpPacFileFetcherWin(context_.get())) { + fetcher_(std::make_unique<DhcpPacFileFetcherWin>(context_.get())) { // Make sure the test ends. timeout_.Start(FROM_HERE, base::Seconds(5), this, &RealFetchTester::OnTimeout); @@ -308,9 +308,8 @@ int result, std::u16string pac_script, base::TimeDelta fetch_delay) { - std::unique_ptr<DummyDhcpPacFileAdapterFetcher> adapter_fetcher( - new DummyDhcpPacFileAdapterFetcher(url_request_context(), - GetTaskRunner())); + auto adapter_fetcher = std::make_unique<DummyDhcpPacFileAdapterFetcher>( + url_request_context(), GetTaskRunner()); adapter_fetcher->Configure( did_finish, result, pac_script, fetch_delay.InMilliseconds()); PushBackAdapter(adapter_name, adapter_fetcher.release()); @@ -347,7 +346,7 @@ next_adapter_fetcher_index_ = 0; num_fetchers_created_ = 0; adapter_fetchers_.clear(); - adapter_query_ = new MockAdapterQuery(); + adapter_query_ = base::MakeRefCounted<MockAdapterQuery>(); max_wait_ = TestTimeouts::tiny_timeout(); } @@ -434,9 +433,8 @@ // the ReuseFetcher test at the bottom. void TestNormalCaseURLConfiguredOneAdapter(FetcherClient* client) { auto context = CreateTestURLRequestContextBuilder()->Build(); - std::unique_ptr<DummyDhcpPacFileAdapterFetcher> adapter_fetcher( - new DummyDhcpPacFileAdapterFetcher(context.get(), - client->GetTaskRunner())); + auto adapter_fetcher = std::make_unique<DummyDhcpPacFileAdapterFetcher>( + context.get(), client->GetTaskRunner()); adapter_fetcher->Configure(true, OK, u"bingo", 1); client->fetcher_.PushBackAdapter("a", adapter_fetcher.release()); client->RunTest(); @@ -607,9 +605,8 @@ void TestImmediateCancel(FetcherClient* client) { auto context = CreateTestURLRequestContextBuilder()->Build(); - std::unique_ptr<DummyDhcpPacFileAdapterFetcher> adapter_fetcher( - new DummyDhcpPacFileAdapterFetcher(context.get(), - client->GetTaskRunner())); + auto adapter_fetcher = std::make_unique<DummyDhcpPacFileAdapterFetcher>( + context.get(), client->GetTaskRunner()); adapter_fetcher->Configure(true, OK, u"bingo", 1); client->fetcher_.PushBackAdapter("a", adapter_fetcher.release()); client->RunTest(); @@ -669,9 +666,8 @@ FetcherClient client; auto context = CreateTestURLRequestContextBuilder()->Build(); - std::unique_ptr<DummyDhcpPacFileAdapterFetcher> adapter_fetcher( - new DummyDhcpPacFileAdapterFetcher(context.get(), - client.GetTaskRunner())); + auto adapter_fetcher = std::make_unique<DummyDhcpPacFileAdapterFetcher>( + context.get(), client.GetTaskRunner()); adapter_fetcher->Configure(true, OK, u"bingo", 1); client.fetcher_.PushBackAdapter("a", adapter_fetcher.release()); client.RunTest();
diff --git a/net/quic/bidirectional_stream_quic_impl_unittest.cc b/net/quic/bidirectional_stream_quic_impl_unittest.cc index 2cd013f8..d0522483 100644 --- a/net/quic/bidirectional_stream_quic_impl_unittest.cc +++ b/net/quic/bidirectional_stream_quic_impl_unittest.cc
@@ -512,10 +512,10 @@ base::make_span(mock_writes_.get(), writes_.size())); socket_data_->set_printer(&printer_); - std::unique_ptr<MockUDPClientSocket> socket( - new MockUDPClientSocket(socket_data_.get(), NetLog::Get())); + auto socket = std::make_unique<MockUDPClientSocket>(socket_data_.get(), + NetLog::Get()); socket->Connect(peer_addr_); - runner_ = new TestTaskRunner(&clock_); + runner_ = base::MakeRefCounted<TestTaskRunner>(&clock_); helper_ = std::make_unique<QuicChromiumConnectionHelper>( &clock_, &random_generator_); alarm_factory_ = @@ -872,8 +872,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->set_trailers_expected(true); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -980,16 +980,16 @@ // Start first request. scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); // Start second request. scoped_refptr<IOBuffer> read_buffer2 = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate2( - new TestDelegateBase(read_buffer2.get(), kReadBufferSize)); + auto delegate2 = + std::make_unique<TestDelegateBase>(read_buffer2.get(), kReadBufferSize); delegate2->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1078,8 +1078,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->DoNotSendRequestHeadersAutomatically(); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1209,8 +1209,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->DoNotSendRequestHeadersAutomatically(); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1335,8 +1335,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->DoNotSendRequestHeadersAutomatically(); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1439,8 +1439,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( - read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED); delegate->DoNotSendRequestHeadersAutomatically(); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1476,8 +1476,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( - read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED); delegate->DoNotSendRequestHeadersAutomatically(); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1527,8 +1527,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -1615,8 +1615,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->set_trailers_expected(true); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -1732,8 +1732,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -1827,8 +1827,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); delegate->WaitUntilNextCallback(kOnStreamReady); @@ -1880,8 +1880,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); delegate->WaitUntilNextCallback(kOnStreamReady); @@ -1945,8 +1945,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2004,8 +2004,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); delegate->WaitUntilNextCallback(kOnFailed); @@ -2028,8 +2028,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); delegate->WaitUntilNextCallback(kOnFailed); @@ -2054,8 +2054,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( - read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2087,9 +2087,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate( - new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::ON_STREAM_READY)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, + DeleteStreamDelegate::ON_STREAM_READY); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2121,8 +2121,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2179,9 +2179,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate( - new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::ON_HEADERS_RECEIVED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, + DeleteStreamDelegate::ON_HEADERS_RECEIVED); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2230,8 +2230,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( - read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_DATA_READ)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_DATA_READ); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2297,8 +2297,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); @@ -2367,9 +2367,9 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<DeleteStreamDelegate> delegate( - new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, - DeleteStreamDelegate::ON_TRAILERS_RECEIVED)); + auto delegate = std::make_unique<DeleteStreamDelegate>( + read_buffer.get(), kReadBufferSize, + DeleteStreamDelegate::ON_TRAILERS_RECEIVED); delegate->Start(&request, net_log_with_source(), session()->CreateHandle(destination_)); ConfirmHandshake(); @@ -2442,8 +2442,8 @@ scoped_refptr<IOBuffer> read_buffer = base::MakeRefCounted<IOBuffer>(kReadBufferSize); - std::unique_ptr<TestDelegateBase> delegate( - new TestDelegateBase(read_buffer.get(), kReadBufferSize)); + auto delegate = + std::make_unique<TestDelegateBase>(read_buffer.get(), kReadBufferSize); delegate->set_trailers_expected(true); // QuicChromiumClientSession::Handle::RequestStream() returns OK synchronously // because Initialize() has established a Session.
diff --git a/net/quic/crypto/proof_test_chromium.cc b/net/quic/crypto/proof_test_chromium.cc index e8aa2131..8933e51 100644 --- a/net/quic/crypto/proof_test_chromium.cc +++ b/net/quic/crypto/proof_test_chromium.cc
@@ -67,8 +67,8 @@ string error_details; std::unique_ptr<quic::ProofVerifyContext> verify_context( quic::test::crypto_test_utils::ProofVerifyContextForTesting()); - std::unique_ptr<TestProofVerifierCallback> callback( - new TestProofVerifierCallback(&comp_callback, &ok, &error_details)); + auto callback = std::make_unique<TestProofVerifierCallback>( + &comp_callback, &ok, &error_details); quic::QuicAsyncStatus status = verifier->VerifyProof( hostname, port, server_config, quic_version, chlo_hash, certs, "", proof, @@ -151,10 +151,9 @@ quic::QuicSocketAddress server_addr; quic::QuicSocketAddress client_addr; - std::unique_ptr<quic::ProofSource::Callback> cb( - new TestCallback(&called, &ok, &chain, &proof)); - std::unique_ptr<quic::ProofSource::Callback> first_cb( - new TestCallback(&first_called, &first_ok, &first_chain, &first_proof)); + auto cb = std::make_unique<TestCallback>(&called, &ok, &chain, &proof); + auto first_cb = std::make_unique<TestCallback>(&first_called, &first_ok, + &first_chain, &first_proof); // GetProof here expects the async method to invoke the callback // synchronously. @@ -289,8 +288,7 @@ quic::QuicCryptoProof proof; quic::QuicSocketAddress server_addr; quic::QuicSocketAddress client_addr; - std::unique_ptr<quic::ProofSource::Callback> cb( - new TestCallback(&called, &ok, &chain, &proof)); + auto cb = std::make_unique<TestCallback>(&called, &ok, &chain, &proof); // GetProof here expects the async method to invoke the callback // synchronously.
diff --git a/net/quic/crypto/proof_verifier_chromium_test.cc b/net/quic/crypto/proof_verifier_chromium_test.cc index 9b88c29..ca64d1f 100644 --- a/net/quic/crypto/proof_verifier_chromium_test.cc +++ b/net/quic/crypto/proof_verifier_chromium_test.cc
@@ -170,8 +170,9 @@ class ProofVerifierChromiumTest : public ::testing::Test { public: ProofVerifierChromiumTest() - : verify_context_(new ProofVerifyContextChromium(0 /*cert_verify_flags*/, - NetLogWithSource())) {} + : verify_context_(std::make_unique<ProofVerifyContextChromium>( + 0 /*cert_verify_flags*/, + NetLogWithSource())) {} void SetUp() override { EXPECT_CALL(ct_policy_enforcer_, CheckCompliance(_, _, _)) @@ -251,8 +252,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -286,8 +286,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -341,8 +340,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyCertChain( kTestHostname, kTestPort, certs_, kTestEmptyOCSPResponse, ct::GetSCTListForTesting(), verify_context_.get(), &error_details_, @@ -384,8 +382,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyCertChain( kTestHostname, kTestPort, certs_, kTestEmptyOCSPResponse, ct::GetSCTListWithInvalidSCT(), verify_context_.get(), &error_details_, @@ -402,8 +399,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, kTestEmptySignature, @@ -427,8 +423,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -471,8 +466,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -519,8 +513,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -556,8 +549,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -596,8 +588,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kCTAndPKPHost, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -647,8 +638,7 @@ &transport_security_state_, nullptr, {kCTAndPKPHost}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kCTAndPKPHost, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -701,8 +691,7 @@ &transport_security_state_, nullptr, {}, network_isolation_key); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kCTAndPKPHost, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -762,8 +751,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -822,8 +810,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kCTAndPKPHost, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -863,8 +850,7 @@ &transport_security_state_, nullptr, {}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -895,8 +881,7 @@ &transport_security_state_, nullptr, {kTestHostname}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(), @@ -932,8 +917,7 @@ &transport_security_state_, nullptr, {""}, NetworkIsolationKey()); - std::unique_ptr<DummyProofVerifierCallback> callback( - new DummyProofVerifierCallback); + auto callback = std::make_unique<DummyProofVerifierCallback>(); quic::QuicAsyncStatus status = proof_verifier.VerifyProof( kTestHostname, kTestPort, kTestConfig, kTestTransportVersion, kTestChloHash, certs_, kTestEmptySCT, GetTestSignature(),
diff --git a/net/quic/crypto_test_utils_chromium.cc b/net/quic/crypto_test_utils_chromium.cc index d34e2f2b..db68335 100644 --- a/net/quic/crypto_test_utils_chromium.cc +++ b/net/quic/crypto_test_utils_chromium.cc
@@ -38,8 +38,7 @@ namespace net::test { std::unique_ptr<quic::ProofSource> ProofSourceForTestingChromium() { - std::unique_ptr<net::ProofSourceChromium> source( - new net::ProofSourceChromium()); + auto source = std::make_unique<net::ProofSourceChromium>(); base::FilePath certs_dir = net::GetTestCertsDirectory(); CHECK(source->Initialize(certs_dir.AppendASCII("quic-chain.pem"), certs_dir.AppendASCII("quic-leaf-cert.key"),
diff --git a/net/quic/mock_crypto_client_stream_factory.cc b/net/quic/mock_crypto_client_stream_factory.cc index 8f901443..af9a93d 100644 --- a/net/quic/mock_crypto_client_stream_factory.cc +++ b/net/quic/mock_crypto_client_stream_factory.cc
@@ -15,13 +15,13 @@ MockCryptoClientStreamFactory::~MockCryptoClientStreamFactory() = default; MockCryptoClientStreamFactory::MockCryptoClientStreamFactory() - : config_(new quic::QuicConfig()) {} + : config_(std::make_unique<quic::QuicConfig>()) {} void MockCryptoClientStreamFactory::SetConfig(const quic::QuicConfig& config) { config_ = std::make_unique<quic::QuicConfig>(config); } -quic::QuicCryptoClientStream* +std::unique_ptr<quic::QuicCryptoClientStream> MockCryptoClientStreamFactory::CreateQuicCryptoClientStream( const quic::QuicServerId& server_id, QuicChromiumClientSession* session, @@ -32,9 +32,10 @@ proof_verify_details = proof_verify_details_queue_.front(); proof_verify_details_queue_.pop(); } - raw_ptr<MockCryptoClientStream> stream = new MockCryptoClientStream( - server_id, session, nullptr, *(config_.get()), crypto_config, - handshake_mode_, proof_verify_details, use_mock_crypter_); + std::unique_ptr<MockCryptoClientStream> stream = + std::make_unique<MockCryptoClientStream>( + server_id, session, nullptr, *(config_.get()), crypto_config, + handshake_mode_, proof_verify_details, use_mock_crypter_); streams_.push_back(stream->GetWeakPtr()); return stream; }
diff --git a/net/quic/mock_crypto_client_stream_factory.h b/net/quic/mock_crypto_client_stream_factory.h index 0a4d6efc..7b0e801 100644 --- a/net/quic/mock_crypto_client_stream_factory.h +++ b/net/quic/mock_crypto_client_stream_factory.h
@@ -30,7 +30,7 @@ ~MockCryptoClientStreamFactory() override; - quic::QuicCryptoClientStream* CreateQuicCryptoClientStream( + std::unique_ptr<quic::QuicCryptoClientStream> CreateQuicCryptoClientStream( const quic::QuicServerId& server_id, QuicChromiumClientSession* session, std::unique_ptr<quic::ProofVerifyContext> proof_verify_context,
diff --git a/net/quic/quic_chromium_alarm_factory_test.cc b/net/quic/quic_chromium_alarm_factory_test.cc index 4623d90..f40903e1 100644 --- a/net/quic/quic_chromium_alarm_factory_test.cc +++ b/net/quic/quic_chromium_alarm_factory_test.cc
@@ -27,7 +27,7 @@ class QuicChromiumAlarmFactoryTest : public ::testing::Test { protected: QuicChromiumAlarmFactoryTest() - : runner_(new TestTaskRunner(&clock_)), + : runner_(base::MakeRefCounted<TestTaskRunner>(&clock_)), alarm_factory_(runner_.get(), &clock_) {} scoped_refptr<TestTaskRunner> runner_;
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc index b84d03f..9795ced 100644 --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc
@@ -968,12 +968,13 @@ server_info_(std::move(server_info)), task_runner_(task_runner), net_log_(NetLogWithSource::Make(net_log, NetLogSourceType::QUIC_SESSION)), - logger_(new QuicConnectionLogger(this, - connection_description, - std::move(socket_performance_watcher), - net_log_)), + logger_(std::make_unique<QuicConnectionLogger>( + this, + connection_description, + std::move(socket_performance_watcher), + net_log_)), http3_logger_(VersionUsesHttp3(connection->transport_version()) - ? new QuicHttp3Logger(net_log_) + ? std::make_unique<QuicHttp3Logger>(net_log_) : nullptr), push_delegate_(push_delegate), headers_include_h2_stream_dependency_( @@ -987,12 +988,10 @@ sockets_.back().get(), clock, this, yield_after_packets, yield_after_duration, net_log_)); CHECK_EQ(packet_readers_.size(), sockets_.size()); - crypto_stream_.reset( - crypto_client_stream_factory->CreateQuicCryptoClientStream( - session_key.server_id(), this, - std::make_unique<ProofVerifyContextChromium>(cert_verify_flags, - net_log_), - crypto_config_->GetConfig())); + crypto_stream_ = crypto_client_stream_factory->CreateQuicCryptoClientStream( + session_key.server_id(), this, + std::make_unique<ProofVerifyContextChromium>(cert_verify_flags, net_log_), + crypto_config_->GetConfig()); if (VersionUsesHttp3(transport_version())) set_debug_visitor(http3_logger_.get()); connection->set_debug_visitor(logger_.get()); @@ -2992,12 +2991,11 @@ } // Create new packet writer and reader on the probing socket. - std::unique_ptr<QuicChromiumPacketWriter> probing_writer( - new QuicChromiumPacketWriter(probing_socket.get(), task_runner_)); - std::unique_ptr<QuicChromiumPacketReader> probing_reader( - new QuicChromiumPacketReader(probing_socket.get(), clock_, this, - yield_after_packets_, yield_after_duration_, - net_log_)); + auto probing_writer = std::make_unique<QuicChromiumPacketWriter>( + probing_socket.get(), task_runner_); + auto probing_reader = std::make_unique<QuicChromiumPacketReader>( + probing_socket.get(), clock_, this, yield_after_packets_, + yield_after_duration_, net_log_); probing_reader->StartReading(); path_validation_writer_delegate_.set_network(network); @@ -3459,13 +3457,12 @@ } // Create new packet reader and writer on the new socket. - std::unique_ptr<QuicChromiumPacketReader> new_reader( - new QuicChromiumPacketReader(socket.get(), clock_, this, - yield_after_packets_, yield_after_duration_, - net_log_)); + auto new_reader = std::make_unique<QuicChromiumPacketReader>( + socket.get(), clock_, this, yield_after_packets_, yield_after_duration_, + net_log_); new_reader->StartReading(); - std::unique_ptr<QuicChromiumPacketWriter> new_writer( - new QuicChromiumPacketWriter(socket.get(), task_runner_)); + auto new_writer = + std::make_unique<QuicChromiumPacketWriter>(socket.get(), task_runner_); static_cast<QuicChromiumPacketWriter*>(connection()->writer()) ->set_delegate(nullptr);
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc index fed5564..865c1ee6 100644 --- a/net/quic/quic_chromium_client_session_test.cc +++ b/net/quic/quic_chromium_client_session_test.cc
@@ -133,10 +133,11 @@ config_(quic::test::DefaultQuicConfig()), crypto_config_( quic::test::crypto_test_utils::ProofVerifierForTesting()), - default_read_(new MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)), - socket_data_( - new SequencedSocketData(base::make_span(default_read_.get(), 1), - base::span<MockWrite>())), + default_read_( + std::make_unique<MockRead>(SYNCHRONOUS, ERR_IO_PENDING, 0)), + socket_data_(std::make_unique<SequencedSocketData>( + base::make_span(default_read_.get(), 1), + base::span<MockWrite>())), helper_(&clock_, &random_), transport_security_state_(std::make_unique<TransportSecurityState>()), session_key_(kServerHostname, @@ -250,14 +251,13 @@ ASSERT_THAT(session_->CryptoConnect(callback_.callback()), IsOk()); } - QuicChromiumPacketWriter* CreateQuicChromiumPacketWriter( + std::unique_ptr<QuicChromiumPacketWriter> CreateQuicChromiumPacketWriter( DatagramClientSocket* socket, QuicChromiumClientSession* session) const { - std::unique_ptr<QuicChromiumPacketWriter> writer( - new QuicChromiumPacketWriter( - socket, base::ThreadTaskRunnerHandle::Get().get())); + auto writer = std::make_unique<QuicChromiumPacketWriter>( + socket, base::ThreadTaskRunnerHandle::Get().get()); writer->set_delegate(session); - return writer.release(); + return writer; } quic::QuicStreamId GetNthClientInitiatedBidirectionalStreamId(int n) { @@ -2025,12 +2025,11 @@ EXPECT_THAT(new_socket->Connect(kIpEndPoint), IsOk()); // Create reader and writer. - std::unique_ptr<QuicChromiumPacketReader> new_reader( - new QuicChromiumPacketReader(new_socket.get(), &clock_, session_.get(), - kQuicYieldAfterPacketsRead, - quic::QuicTime::Delta::FromMilliseconds( - kQuicYieldAfterDurationMilliseconds), - net_log_with_source_)); + auto new_reader = std::make_unique<QuicChromiumPacketReader>( + new_socket.get(), &clock_, session_.get(), kQuicYieldAfterPacketsRead, + quic::QuicTime::Delta::FromMilliseconds( + kQuicYieldAfterDurationMilliseconds), + net_log_with_source_); new_reader->StartReading(); std::unique_ptr<QuicChromiumPacketWriter> new_writer( CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); @@ -2132,12 +2131,11 @@ EXPECT_THAT(new_socket->Connect(kIpEndPoint), IsOk()); // Create reader and writer. - std::unique_ptr<QuicChromiumPacketReader> new_reader( - new QuicChromiumPacketReader(new_socket.get(), &clock_, session_.get(), - kQuicYieldAfterPacketsRead, - quic::QuicTime::Delta::FromMilliseconds( - kQuicYieldAfterDurationMilliseconds), - net_log_with_source_)); + auto new_reader = std::make_unique<QuicChromiumPacketReader>( + new_socket.get(), &clock_, session_.get(), kQuicYieldAfterPacketsRead, + quic::QuicTime::Delta::FromMilliseconds( + kQuicYieldAfterDurationMilliseconds), + net_log_with_source_); new_reader->StartReading(); std::unique_ptr<QuicChromiumPacketWriter> new_writer( CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); @@ -2175,12 +2173,11 @@ EXPECT_THAT(new_socket->Connect(kIpEndPoint), IsOk()); // Create reader and writer. - std::unique_ptr<QuicChromiumPacketReader> new_reader( - new QuicChromiumPacketReader(new_socket.get(), &clock_, session_.get(), - kQuicYieldAfterPacketsRead, - quic::QuicTime::Delta::FromMilliseconds( - kQuicYieldAfterDurationMilliseconds), - net_log_with_source_)); + auto new_reader = std::make_unique<QuicChromiumPacketReader>( + new_socket.get(), &clock_, session_.get(), kQuicYieldAfterPacketsRead, + quic::QuicTime::Delta::FromMilliseconds( + kQuicYieldAfterDurationMilliseconds), + net_log_with_source_); new_reader->StartReading(); std::unique_ptr<QuicChromiumPacketWriter> new_writer( CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); @@ -2265,12 +2262,11 @@ EXPECT_THAT(new_socket->Connect(kIpEndPoint), IsOk()); // Create reader and writer. - std::unique_ptr<QuicChromiumPacketReader> new_reader( - new QuicChromiumPacketReader(new_socket.get(), &clock_, session_.get(), - kQuicYieldAfterPacketsRead, - quic::QuicTime::Delta::FromMilliseconds( - kQuicYieldAfterDurationMilliseconds), - net_log_with_source_)); + auto new_reader = std::make_unique<QuicChromiumPacketReader>( + new_socket.get(), &clock_, session_.get(), kQuicYieldAfterPacketsRead, + quic::QuicTime::Delta::FromMilliseconds( + kQuicYieldAfterDurationMilliseconds), + net_log_with_source_); new_reader->StartReading(); std::unique_ptr<QuicChromiumPacketWriter> new_writer( CreateQuicChromiumPacketWriter(new_socket.get(), session_.get()));
diff --git a/net/quic/quic_crypto_client_stream_factory.cc b/net/quic/quic_crypto_client_stream_factory.cc index 708e8dab..4b2bd7e4 100644 --- a/net/quic/quic_crypto_client_stream_factory.cc +++ b/net/quic/quic_crypto_client_stream_factory.cc
@@ -15,15 +15,14 @@ class DefaultCryptoStreamFactory : public QuicCryptoClientStreamFactory { public: - quic::QuicCryptoClientStream* CreateQuicCryptoClientStream( + std::unique_ptr<quic::QuicCryptoClientStream> CreateQuicCryptoClientStream( const quic::QuicServerId& server_id, QuicChromiumClientSession* session, std::unique_ptr<quic::ProofVerifyContext> proof_verify_context, quic::QuicCryptoClientConfig* crypto_config) override { - return new quic::QuicCryptoClientStream(server_id, session, - std::move(proof_verify_context), - crypto_config, session, - /*has_application_state = */ true); + return std::make_unique<quic::QuicCryptoClientStream>( + server_id, session, std::move(proof_verify_context), crypto_config, + session, /*has_application_state = */ true); } };
diff --git a/net/quic/quic_crypto_client_stream_factory.h b/net/quic/quic_crypto_client_stream_factory.h index 0d7e267..b6d4a77 100644 --- a/net/quic/quic_crypto_client_stream_factory.h +++ b/net/quic/quic_crypto_client_stream_factory.h
@@ -29,7 +29,8 @@ public: virtual ~QuicCryptoClientStreamFactory() = default; - virtual quic::QuicCryptoClientStream* CreateQuicCryptoClientStream( + virtual std::unique_ptr<quic::QuicCryptoClientStream> + CreateQuicCryptoClientStream( const quic::QuicServerId& server_id, QuicChromiumClientSession* session, std::unique_ptr<quic::ProofVerifyContext> proof_verify_context,
diff --git a/net/quic/quic_end_to_end_unittest.cc b/net/quic/quic_end_to_end_unittest.cc index 5b140fae..6ccb73a 100644 --- a/net/quic/quic_end_to_end_unittest.cc +++ b/net/quic/quic_end_to_end_unittest.cc
@@ -88,9 +88,8 @@ class QuicEndToEndTest : public ::testing::Test, public WithTaskEnvironment { protected: QuicEndToEndTest() - : host_resolver_impl_(CreateResolverImpl()), - host_resolver_(std::move(host_resolver_impl_)), - ssl_config_service_(new SSLConfigServiceDefaults), + : host_resolver_(CreateResolverImpl()), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), proxy_resolution_service_( ConfiguredProxyResolutionService::CreateDirect()), auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()) { @@ -124,8 +123,8 @@ // Creates a mock host resolver in which test.example.com // resolves to localhost. - static MockHostResolver* CreateResolverImpl() { - MockHostResolver* resolver = new MockHostResolver(); + static std::unique_ptr<MockHostResolver> CreateResolverImpl() { + auto resolver = std::make_unique<MockHostResolver>(); resolver->rules()->AddRule("test.example.com", "127.0.0.1"); return resolver; } @@ -214,7 +213,6 @@ } QuicContext quic_context_; - std::unique_ptr<MockHostResolver> host_resolver_impl_; MappedHostResolver host_resolver_; MockCertVerifier cert_verifier_; TransportSecurityState transport_security_state_;
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc index f53723d..92b68da 100644 --- a/net/quic/quic_http_stream_test.cc +++ b/net/quic/quic_http_stream_test.cc
@@ -343,10 +343,10 @@ base::make_span(mock_writes_.get(), writes_.size())); socket_data_->set_printer(&printer_); - std::unique_ptr<MockUDPClientSocket> socket( - new MockUDPClientSocket(socket_data_.get(), NetLog::Get())); + auto socket = std::make_unique<MockUDPClientSocket>(socket_data_.get(), + NetLog::Get()); socket->Connect(peer_addr_); - runner_ = new TestTaskRunner(&clock_); + runner_ = base::MakeRefCounted<TestTaskRunner>(&clock_); send_algorithm_ = new quic::test::MockSendAlgorithm(); EXPECT_CALL(*send_algorithm_, InRecovery()).WillRepeatedly(Return(false)); EXPECT_CALL(*send_algorithm_, InSlowStart()).WillRepeatedly(Return(false));
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc index 08a96a6d..076eb95 100644 --- a/net/quic/quic_network_transaction_unittest.cc +++ b/net/quic/quic_network_transaction_unittest.cc
@@ -269,9 +269,8 @@ return nullptr; } ++watcher_count_; - return std::unique_ptr<SocketPerformanceWatcher>( - new TestSocketPerformanceWatcher(&should_notify_updated_rtt_, - &rtt_notification_received_)); + return std::make_unique<TestSocketPerformanceWatcher>( + &should_notify_updated_rtt_, &rtt_notification_received_); } size_t watcher_count() const { return watcher_count_; } @@ -298,7 +297,7 @@ client_headers_include_h2_stream_dependency_( GetParam().client_headers_include_h2_stream_dependency), supported_versions_(quic::test::SupportedVersions(version_)), - client_maker_(new QuicTestPacketMaker( + client_maker_(std::make_unique<QuicTestPacketMaker>( version_, quic::QuicUtils::CreateRandomConnectionId( context_.random_generator()), @@ -313,8 +312,9 @@ kDefaultServerHostName, quic::Perspective::IS_SERVER, false), - quic_task_runner_(new TestTaskRunner(context_.mock_clock())), - ssl_config_service_(new SSLConfigServiceDefaults), + quic_task_runner_( + base::MakeRefCounted<TestTaskRunner>(context_.mock_clock())), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), proxy_resolution_service_( ConfiguredProxyResolutionService::CreateDirect()), auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()), @@ -6252,8 +6252,8 @@ request_.upload_data_stream = &upload_data; - std::unique_ptr<HttpNetworkTransaction> trans( - new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); + auto trans = std::make_unique<HttpNetworkTransaction>(DEFAULT_PRIORITY, + session_.get()); TestCompletionCallback callback; int rv = trans->Start(&request_, callback.callback(), net_log_with_source_); EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); @@ -7021,7 +7021,7 @@ GetParam().client_headers_include_h2_stream_dependency), supported_versions_(quic::test::SupportedVersions(version_)), destination_type_(GetParam().destination_type), - ssl_config_service_(new SSLConfigServiceDefaults), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), proxy_resolution_service_( ConfiguredProxyResolutionService::CreateDirect()), auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()), @@ -7156,8 +7156,7 @@ } void AddRefusedSocketData() { - std::unique_ptr<StaticSocketDataProvider> refused_data( - new StaticSocketDataProvider()); + auto refused_data = std::make_unique<StaticSocketDataProvider>(); MockConnect refused_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); refused_data->set_connect_data(refused_connect); socket_factory_.AddSocketDataProvider(refused_data.get()); @@ -7165,8 +7164,7 @@ } void AddHangingSocketData() { - std::unique_ptr<StaticSocketDataProvider> hanging_data( - new StaticSocketDataProvider()); + auto hanging_data = std::make_unique<StaticSocketDataProvider>(); MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); hanging_data->set_connect_data(hanging_connect); socket_factory_.AddSocketDataProvider(hanging_data.get()); @@ -7376,8 +7374,8 @@ AddHangingSocketData(); AddHangingSocketData(); - scoped_refptr<TestTaskRunner> quic_task_runner( - new TestTaskRunner(context_.mock_clock())); + auto quic_task_runner = + base::MakeRefCounted<TestTaskRunner>(context_.mock_clock()); QuicStreamFactoryPeer::SetAlarmFactory( session_->quic_stream_factory(), std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner.get(),
diff --git a/net/quic/quic_proxy_client_socket_unittest.cc b/net/quic/quic_proxy_client_socket_unittest.cc index 11b4807..3754d9bd 100644 --- a/net/quic/quic_proxy_client_socket_unittest.cc +++ b/net/quic/quic_proxy_client_socket_unittest.cc
@@ -188,7 +188,7 @@ destination_endpoint_(url::kHttpsScheme, kOriginHost, kOriginPort), http_auth_cache_( false /* key_server_entries_by_network_isolation_key */), - host_resolver_(new MockCachingHostResolver()), + host_resolver_(std::make_unique<MockCachingHostResolver>()), http_auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()) { FLAGS_quic_enable_http3_grease_randomness = false; IPAddress ip(192, 0, 2, 33); @@ -210,10 +210,10 @@ } void Initialize() { - std::unique_ptr<MockUDPClientSocket> socket(new MockUDPClientSocket( - mock_quic_data_.InitializeAndGetSequencedSocketData(), NetLog::Get())); + auto socket = std::make_unique<MockUDPClientSocket>( + mock_quic_data_.InitializeAndGetSequencedSocketData(), NetLog::Get()); socket->Connect(peer_addr_); - runner_ = new TestTaskRunner(&clock_); + runner_ = base::MakeRefCounted<TestTaskRunner>(&clock_); send_algorithm_ = new quic::test::MockSendAlgorithm(); EXPECT_CALL(*send_algorithm_, InRecovery()).WillRepeatedly(Return(false)); EXPECT_CALL(*send_algorithm_, InSlowStart()).WillRepeatedly(Return(false));
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc index abe9f4b..02e9d57 100644 --- a/net/quic/quic_stream_factory_test.cc +++ b/net/quic/quic_stream_factory_test.cc
@@ -162,8 +162,7 @@ NetLog* net_log, const NetLogSource& source) override { SocketDataProvider* data_provider = mock_data().GetNext(); - std::unique_ptr<MockUDPClientSocket> socket( - new MockUDPClientSocket(data_provider, net_log)); + auto socket = std::make_unique<MockUDPClientSocket>(data_provider, net_log); socket->set_source_host(IPAddress(192, 0, 2, next_source_host_num_++)); return std::move(socket); } @@ -190,8 +189,7 @@ NetLog* net_log, const NetLogSource& source) override { SocketDataProvider* data_provider = mock_data().GetNext(); - std::unique_ptr<MockUDPClientSocket> socket( - new MockUDPClientSocket(data_provider, net_log)); + auto socket = std::make_unique<MockUDPClientSocket>(data_provider, net_log); socket->set_source_port(next_source_port_num_++); return std::move(socket); } @@ -204,12 +202,12 @@ protected: QuicStreamFactoryTestBase(quic::ParsedQuicVersion version, bool client_headers_include_h2_stream_dependency) - : host_resolver_( - new MockHostResolver(/*default_result=*/MockHostResolverBase:: - RuleResolver::GetLocalhostResult())), - ssl_config_service_(new SSLConfigServiceDefaults), - socket_factory_(new MockClientSocketFactory), - runner_(new TestTaskRunner(context_.mock_clock())), + : host_resolver_(std::make_unique<MockHostResolver>( + /*default_result=*/MockHostResolverBase::RuleResolver:: + GetLocalhostResult())), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), + socket_factory_(std::make_unique<MockClientSocketFactory>()), + runner_(base::MakeRefCounted<TestTaskRunner>(context_.mock_clock())), version_(version), client_maker_(version_, quic::QuicUtils::CreateRandomConnectionId(
diff --git a/net/server/http_server_unittest.cc b/net/server/http_server_unittest.cc index a48b18a0..31ec489 100644 --- a/net/server/http_server_unittest.cc +++ b/net/server/http_server_unittest.cc
@@ -181,8 +181,8 @@ HttpServerTest() = default; void SetUp() override { - std::unique_ptr<ServerSocket> server_socket( - new TCPServerSocket(nullptr, NetLogSource())); + auto server_socket = + std::make_unique<TCPServerSocket>(nullptr, NetLogSource()); server_socket->ListenWithAddressAndPort("127.0.0.1", 0, 1); server_ = std::make_unique<HttpServer>(std::move(server_socket), this); ASSERT_THAT(server_->GetLocalAddress(&server_address_), IsOk());
diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc index 52049ed..02d58f6 100644 --- a/net/socket/client_socket_factory.cc +++ b/net/socket/client_socket_factory.cc
@@ -29,8 +29,7 @@ DatagramSocket::BindType bind_type, NetLog* net_log, const NetLogSource& source) override { - return std::unique_ptr<DatagramClientSocket>( - new UDPClientSocket(bind_type, net_log, source)); + return std::make_unique<UDPClientSocket>(bind_type, net_log, source); } std::unique_ptr<TransportClientSocket> CreateTransportClientSocket(
diff --git a/net/socket/fuzzed_socket_factory.cc b/net/socket/fuzzed_socket_factory.cc index ec213e1..e130598 100644 --- a/net/socket/fuzzed_socket_factory.cc +++ b/net/socket/fuzzed_socket_factory.cc
@@ -126,8 +126,7 @@ NetworkQualityEstimator* network_quality_estimator, NetLog* net_log, const NetLogSource& source) { - std::unique_ptr<FuzzedSocket> socket( - new FuzzedSocket(data_provider_, net_log)); + auto socket = std::make_unique<FuzzedSocket>(data_provider_, net_log); socket->set_fuzz_connect_result(fuzz_connect_result_); // Just use the first address. socket->set_remote_address(*addresses.begin());
diff --git a/net/socket/socket_posix.cc b/net/socket/socket_posix.cc index 1e054bd7..92ffb1e 100644 --- a/net/socket/socket_posix.cc +++ b/net/socket/socket_posix.cc
@@ -437,7 +437,7 @@ if (new_socket < 0) return MapAcceptError(errno); - std::unique_ptr<SocketPosix> accepted_socket(new SocketPosix); + auto accepted_socket = std::make_unique<SocketPosix>(); int rv = accepted_socket->AdoptConnectedSocket(new_socket, new_peer_address); if (rv != OK) return rv;
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 3febbb5..926e6005 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc
@@ -766,8 +766,7 @@ NetLog* net_log, const NetLogSource& source) { SocketDataProvider* data_provider = mock_data_.GetNext(); - std::unique_ptr<MockUDPClientSocket> socket( - new MockUDPClientSocket(data_provider, net_log)); + auto socket = std::make_unique<MockUDPClientSocket>(data_provider, net_log); if (bind_type == DatagramSocket::RANDOM_BIND) socket->set_source_port(static_cast<uint16_t>(base::RandInt(1025, 65535))); udp_client_socket_ports_.push_back(socket->source_port()); @@ -847,8 +846,8 @@ EXPECT_EQ(*next_ssl_data->expected_ech_config_list, ssl_config.ech_config_list); } - return std::unique_ptr<SSLClientSocket>(new MockSSLClientSocket( - std::move(stream_socket), host_and_port, ssl_config, next_ssl_data)); + return std::make_unique<MockSSLClientSocket>( + std::move(stream_socket), host_and_port, ssl_config, next_ssl_data); } MockClientSocket::MockClientSocket(const NetLogWithSource& net_log) @@ -2128,10 +2127,10 @@ NetworkQualityEstimator* network_quality_estimator, NetLog* net_log, const NetLogSource& source) { - std::unique_ptr<MockTaggingStreamSocket> socket(new MockTaggingStreamSocket( + auto socket = std::make_unique<MockTaggingStreamSocket>( MockClientSocketFactory::CreateTransportClientSocket( addresses, std::move(socket_performance_watcher), - network_quality_estimator, net_log, source))); + network_quality_estimator, net_log, source)); tcp_socket_ = socket.get(); return std::move(socket); }
diff --git a/net/socket/socks5_client_socket_fuzzer.cc b/net/socket/socks5_client_socket_fuzzer.cc index 5ea5f3f9..ed3ae4e 100644 --- a/net/socket/socks5_client_socket_fuzzer.cc +++ b/net/socket/socks5_client_socket_fuzzer.cc
@@ -33,8 +33,8 @@ FuzzedDataProvider data_provider(data, size); net::TestCompletionCallback callback; - std::unique_ptr<net::FuzzedSocket> fuzzed_socket( - new net::FuzzedSocket(&data_provider, net::NetLog::Get())); + auto fuzzed_socket = + std::make_unique<net::FuzzedSocket>(&data_provider, net::NetLog::Get()); CHECK_EQ(net::OK, fuzzed_socket->Connect(callback.callback())); net::SOCKS5ClientSocket socket(std::move(fuzzed_socket),
diff --git a/net/socket/socks5_client_socket_unittest.cc b/net/socket/socks5_client_socket_unittest.cc index 613d267..11e22f68 100644 --- a/net/socket/socks5_client_socket_unittest.cc +++ b/net/socket/socks5_client_socket_unittest.cc
@@ -361,21 +361,22 @@ TEST_F(SOCKS5ClientSocketTest, Tag) { StaticSocketDataProvider data; - MockTaggingStreamSocket* tagging_sock = - new MockTaggingStreamSocket(std::unique_ptr<StreamSocket>( - new MockTCPClientSocket(address_list_, NetLog::Get(), &data))); + auto tagging_sock = std::make_unique<MockTaggingStreamSocket>( + std::make_unique<MockTCPClientSocket>(address_list_, NetLog::Get(), + &data)); + MockTaggingStreamSocket* raw_tagging_sock = tagging_sock.get(); // |socket| takes ownership of |tagging_sock|, but keep a non-owning pointer // to it. - SOCKS5ClientSocket socket(std::unique_ptr<StreamSocket>(tagging_sock), + SOCKS5ClientSocket socket(std::move(tagging_sock), HostPortPair("localhost", 80), TRAFFIC_ANNOTATION_FOR_TESTS); - EXPECT_EQ(tagging_sock->tag(), SocketTag()); + EXPECT_EQ(raw_tagging_sock->tag(), SocketTag()); #if BUILDFLAG(IS_ANDROID) SocketTag tag(0x12345678, 0x87654321); socket.ApplySocketTag(tag); - EXPECT_EQ(tagging_sock->tag(), tag); + EXPECT_EQ(raw_tagging_sock->tag(), tag); #endif // BUILDFLAG(IS_ANDROID) }
diff --git a/net/socket/socks_client_socket_fuzzer.cc b/net/socket/socks_client_socket_fuzzer.cc index 58da3f1..76650a4 100644 --- a/net/socket/socks_client_socket_fuzzer.cc +++ b/net/socket/socks_client_socket_fuzzer.cc
@@ -46,8 +46,8 @@ } net::TestCompletionCallback callback; - std::unique_ptr<net::FuzzedSocket> fuzzed_socket( - new net::FuzzedSocket(&data_provider, net::NetLog::Get())); + auto fuzzed_socket = + std::make_unique<net::FuzzedSocket>(&data_provider, net::NetLog::Get()); CHECK_EQ(net::OK, fuzzed_socket->Connect(callback.callback())); net::SOCKSClientSocket socket(
diff --git a/net/socket/socks_client_socket_unittest.cc b/net/socket/socks_client_socket_unittest.cc index df7e47a1..0edba2c 100644 --- a/net/socket/socks_client_socket_unittest.cc +++ b/net/socket/socks_client_socket_unittest.cc
@@ -63,8 +63,7 @@ }; SOCKSClientSocketTest::SOCKSClientSocketTest() - : host_resolver_(new MockHostResolver) { -} + : host_resolver_(std::make_unique<MockHostResolver>()) {} // Set up platform before every test case void SOCKSClientSocketTest::SetUp() { @@ -427,24 +426,25 @@ TEST_F(SOCKSClientSocketTest, Tag) { StaticSocketDataProvider data; - MockTaggingStreamSocket* tagging_sock = - new MockTaggingStreamSocket(std::unique_ptr<StreamSocket>( - new MockTCPClientSocket(address_list_, NetLog::Get(), &data))); + auto tagging_sock = std::make_unique<MockTaggingStreamSocket>( + std::make_unique<MockTCPClientSocket>(address_list_, NetLog::Get(), + &data)); + MockTaggingStreamSocket* raw_tagging_sock = tagging_sock.get(); - std::unique_ptr<ClientSocketHandle> connection(new ClientSocketHandle); + auto connection = std::make_unique<ClientSocketHandle>(); // |connection| takes ownership of |tagging_sock|, but keep a // non-owning pointer to it. MockHostResolver host_resolver; SOCKSClientSocket socket( - std::unique_ptr<StreamSocket>(tagging_sock), - HostPortPair("localhost", 80), NetworkIsolationKey(), DEFAULT_PRIORITY, - &host_resolver, SecureDnsPolicy::kAllow, TRAFFIC_ANNOTATION_FOR_TESTS); + std::move(tagging_sock), HostPortPair("localhost", 80), + NetworkIsolationKey(), DEFAULT_PRIORITY, &host_resolver, + SecureDnsPolicy::kAllow, TRAFFIC_ANNOTATION_FOR_TESTS); - EXPECT_EQ(tagging_sock->tag(), SocketTag()); + EXPECT_EQ(raw_tagging_sock->tag(), SocketTag()); #if BUILDFLAG(IS_ANDROID) SocketTag tag(0x12345678, 0x87654321); socket.ApplySocketTag(tag); - EXPECT_EQ(tagging_sock->tag(), tag); + EXPECT_EQ(raw_tagging_sock->tag(), tag); #endif // BUILDFLAG(IS_ANDROID) }
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc index 60e5fe0..5149a27c 100644 --- a/net/socket/ssl_client_socket_unittest.cc +++ b/net/socket/ssl_client_socket_unittest.cc
@@ -836,8 +836,8 @@ const SSLConfig& ssl_config, const HostPortPair& host_port_pair, int* result) { - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr_, nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr_, nullptr, nullptr, NetLog::Get(), NetLogSource()); int rv = callback_.GetResult(transport->Connect(callback_.callback())); if (rv != OK) { LOG(ERROR) << "Could not connect to test server"; @@ -1125,10 +1125,10 @@ std::unique_ptr<SSLClientSocket>* out_sock) { CHECK(embedded_test_server()); - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); int rv = callback->GetResult(transport->Connect(callback->callback())); EXPECT_THAT(rv, IsOk()); @@ -1318,8 +1318,8 @@ real_transport_ = std::make_unique<TCPClientSocket>( addr(), nullptr, nullptr, nullptr, NetLogSource()); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport_))); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport_)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback_.GetResult(transport->Connect(callback_.callback())); @@ -1452,8 +1452,8 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr(), nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, NetLog::Get(), NetLogSource()); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -1652,8 +1652,8 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>(addr(), nullptr, nullptr, + nullptr, NetLogSource()); EXPECT_EQ(0, transport->GetTotalReceivedBytes()); int rv = callback.GetResult(transport->Connect(callback.callback())); @@ -1709,10 +1709,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<SynchronousErrorStreamSocket> transport( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -1736,10 +1736,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<SynchronousErrorStreamSocket> transport( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -1786,15 +1786,15 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); // Note: |error_socket|'s ownership is handed to |transport|, but a pointer // is retained in order to configure additional errors. - std::unique_ptr<SynchronousErrorStreamSocket> error_socket( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto error_socket = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(error_socket))); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(error_socket)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -1851,15 +1851,15 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); // Note: intermediate sockets' ownership are handed to |sock|, but a pointer // is retained in order to query them. - std::unique_ptr<SynchronousErrorStreamSocket> error_socket( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto error_socket = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); - std::unique_ptr<CountingStreamSocket> counting_socket( - new CountingStreamSocket(std::move(error_socket))); + auto counting_socket = + std::make_unique<CountingStreamSocket>(std::move(error_socket)); CountingStreamSocket* raw_counting_socket = counting_socket.get(); int rv = callback.GetResult(counting_socket->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -1953,15 +1953,15 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); // Note: |error_socket|'s ownership is handed to |transport|, but a pointer // is retained in order to configure additional errors. - std::unique_ptr<SynchronousErrorStreamSocket> error_socket( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto error_socket = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(error_socket))); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(error_socket)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); @@ -2037,15 +2037,15 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); // Note: |error_socket|'s ownership is handed to |transport|, but a pointer // is retained in order to configure additional errors. - std::unique_ptr<SynchronousErrorStreamSocket> error_socket( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto error_socket = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(error_socket))); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(error_socket)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); @@ -2126,10 +2126,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<SynchronousErrorStreamSocket> transport( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2152,10 +2152,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<SynchronousErrorStreamSocket> transport( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2183,13 +2183,13 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<SynchronousErrorStreamSocket> error_socket( - new SynchronousErrorStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto error_socket = + std::make_unique<SynchronousErrorStreamSocket>(std::move(real_transport)); SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(error_socket))); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(error_socket)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2266,10 +2266,10 @@ TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<ReadBufferingStreamSocket> transport( - new ReadBufferingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<ReadBufferingStreamSocket>(std::move(real_transport)); ReadBufferingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -2341,8 +2341,8 @@ TestCompletionCallback callback; log_observer_.SetObserverCaptureMode(NetLogCaptureMode::kEverything); - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr(), nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, NetLog::Get(), NetLogSource()); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2410,7 +2410,7 @@ TestCompletionCallback callback; std::unique_ptr<StreamSocket> transport( - new MockTCPClientSocket(addr(), nullptr, &data)); + std::make_unique<MockTCPClientSocket>(addr(), nullptr, &data)); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2470,8 +2470,8 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>(addr(), nullptr, nullptr, + nullptr, NetLogSource()); int rv = callback.GetResult(transport->Connect(callback.callback())); EXPECT_THAT(rv, IsOk()); @@ -2959,10 +2959,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, GetServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); ASSERT_THAT(callback.GetResult(transport->Connect(callback.callback())), IsOk()); @@ -3021,8 +3021,8 @@ sock_.reset(); // Using a different HostPortPair uses a different session cache key. - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr(), nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, NetLog::Get(), NetLogSource()); TestCompletionCallback callback; ASSERT_THAT(callback.GetResult(transport->Connect(callback.callback())), IsOk()); @@ -3080,8 +3080,8 @@ for (int i = 0; i < 3; i++) { SCOPED_TRACE(i); - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr(), nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, NetLog::Get(), NetLogSource()); TestCompletionCallback callback; ASSERT_THAT(callback.GetResult(transport->Connect(callback.callback())), IsOk()); @@ -4218,10 +4218,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4253,10 +4253,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, server_config)); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4302,10 +4302,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, server_config)); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4352,10 +4352,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, server_config)); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4404,10 +4404,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, server_config)); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4451,10 +4451,10 @@ StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, server_config)); TestCompletionCallback callback; - std::unique_ptr<StreamSocket> real_transport( - new TCPClientSocket(addr(), nullptr, nullptr, nullptr, NetLogSource())); - std::unique_ptr<FakeBlockingStreamSocket> transport( - new FakeBlockingStreamSocket(std::move(real_transport))); + auto real_transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, nullptr, NetLogSource()); + auto transport = + std::make_unique<FakeBlockingStreamSocket>(std::move(real_transport)); FakeBlockingStreamSocket* raw_transport = transport.get(); int rv = callback.GetResult(transport->Connect(callback.callback())); ASSERT_THAT(rv, IsOk()); @@ -4932,8 +4932,8 @@ server_listener.Accept(&server_transport, server_callback.callback()); TestCompletionCallback client_callback; - std::unique_ptr<TCPClientSocket> client_transport(new TCPClientSocket( - AddressList(server_address), nullptr, nullptr, nullptr, NetLogSource())); + auto client_transport = std::make_unique<TCPClientSocket>( + AddressList(server_address), nullptr, nullptr, nullptr, NetLogSource()); int client_rv = client_transport->Connect(client_callback.callback()); EXPECT_THAT(server_callback.GetResult(server_rv), IsOk()); @@ -5087,23 +5087,23 @@ ASSERT_TRUE( StartEmbeddedTestServer(EmbeddedTestServer::CERT_OK, SSLServerConfig())); - std::unique_ptr<StreamSocket> transport(new TCPClientSocket( - addr(), nullptr, nullptr, NetLog::Get(), NetLogSource())); + auto transport = std::make_unique<TCPClientSocket>( + addr(), nullptr, nullptr, NetLog::Get(), NetLogSource()); - MockTaggingStreamSocket* tagging_sock = - new MockTaggingStreamSocket(std::move(transport)); + auto tagging_sock = + std::make_unique<MockTaggingStreamSocket>(std::move(transport)); + MockTaggingStreamSocket* raw_tagging_sock = tagging_sock.get(); // |sock| takes ownership of |tagging_sock|, but keep a // non-owning pointer to it. - std::unique_ptr<SSLClientSocket> sock( - CreateSSLClientSocket(std::unique_ptr<StreamSocket>(tagging_sock), - host_port_pair(), SSLConfig())); + std::unique_ptr<SSLClientSocket> sock(CreateSSLClientSocket( + std::move(tagging_sock), host_port_pair(), SSLConfig())); - EXPECT_EQ(tagging_sock->tag(), SocketTag()); + EXPECT_EQ(raw_tagging_sock->tag(), SocketTag()); #if BUILDFLAG(IS_ANDROID) SocketTag tag(0x12345678, 0x87654321); sock->ApplySocketTag(tag); - EXPECT_EQ(tagging_sock->tag(), tag); + EXPECT_EQ(raw_tagging_sock->tag(), tag); #endif // BUILDFLAG(IS_ANDROID) }
diff --git a/net/socket/ssl_connect_job_unittest.cc b/net/socket/ssl_connect_job_unittest.cc index 8decba5..3d15325 100644 --- a/net/socket/ssl_connect_job_unittest.cc +++ b/net/socket/ssl_connect_job_unittest.cc
@@ -97,35 +97,38 @@ : WithTaskEnvironment(base::test::TaskEnvironment::TimeSource::MOCK_TIME), proxy_resolution_service_( ConfiguredProxyResolutionService::CreateDirect()), - ssl_config_service_(new SSLConfigServiceDefaults), + ssl_config_service_(std::make_unique<SSLConfigServiceDefaults>()), http_auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()), session_(CreateNetworkSession()), - direct_transport_socket_params_(new TransportSocketParams( - url::SchemeHostPort(url::kHttpsScheme, "host", 443), - NetworkIsolationKey(), - SecureDnsPolicy::kAllow, - OnHostResolutionCallback(), - /*supported_alpns=*/{"h2", "http/1.1"})), + direct_transport_socket_params_( + base::MakeRefCounted<TransportSocketParams>( + url::SchemeHostPort(url::kHttpsScheme, "host", 443), + NetworkIsolationKey(), + SecureDnsPolicy::kAllow, + OnHostResolutionCallback(), + /*supported_alpns=*/ + base::flat_set<std::string>({"h2", "http/1.1"}))), proxy_transport_socket_params_( - new TransportSocketParams(HostPortPair("proxy", 443), - NetworkIsolationKey(), - SecureDnsPolicy::kAllow, - OnHostResolutionCallback(), - /*supported_alpns=*/{})), - socks_socket_params_( - new SOCKSSocketParams(proxy_transport_socket_params_, - true, - HostPortPair("sockshost", 443), - NetworkIsolationKey(), - TRAFFIC_ANNOTATION_FOR_TESTS)), - http_proxy_socket_params_( - new HttpProxySocketParams(proxy_transport_socket_params_, - nullptr /* ssl_params */, - false /* is_quic */, - HostPortPair("host", 80), - /*tunnel=*/true, - TRAFFIC_ANNOTATION_FOR_TESTS, - NetworkIsolationKey())), + base::MakeRefCounted<TransportSocketParams>( + HostPortPair("proxy", 443), + NetworkIsolationKey(), + SecureDnsPolicy::kAllow, + OnHostResolutionCallback(), + /*supported_alpns=*/base::flat_set<std::string>({}))), + socks_socket_params_(base::MakeRefCounted<SOCKSSocketParams>( + proxy_transport_socket_params_, + true, + HostPortPair("sockshost", 443), + NetworkIsolationKey(), + TRAFFIC_ANNOTATION_FOR_TESTS)), + http_proxy_socket_params_(base::MakeRefCounted<HttpProxySocketParams>( + proxy_transport_socket_params_, + nullptr /* ssl_params */, + false /* is_quic */, + HostPortPair("host", 80), + /*tunnel=*/true, + TRAFFIC_ANNOTATION_FOR_TESTS, + NetworkIsolationKey())), common_connect_job_params_(session_->CreateCommonConnectJobParams()) {} ~SSLConnectJobTest() override = default; @@ -158,7 +161,7 @@ "Basic realm=MyRealm1", AuthCredentials(kFoo, kBar), "/"); } - HttpNetworkSession* CreateNetworkSession() { + std::unique_ptr<HttpNetworkSession> CreateNetworkSession() { HttpNetworkSessionContext session_context; session_context.host_resolver = &host_resolver_; session_context.cert_verifier = &cert_verifier_; @@ -171,7 +174,8 @@ http_auth_handler_factory_.get(); session_context.http_server_properties = &http_server_properties_; session_context.quic_context = &quic_context_; - return new HttpNetworkSession(HttpNetworkSessionParams(), session_context); + return std::make_unique<HttpNetworkSession>(HttpNetworkSessionParams(), + session_context); } protected:
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc index 7323b9b..71b37bf 100644 --- a/net/socket/ssl_server_socket_unittest.cc +++ b/net/socket/ssl_server_socket_unittest.cc
@@ -349,13 +349,14 @@ class SSLServerSocketTest : public PlatformTest, public WithTaskEnvironment { public: SSLServerSocketTest() - : ssl_config_service_(new TestSSLConfigService(SSLContextConfig())), - cert_verifier_(new MockCertVerifier()), - client_cert_verifier_(new MockClientCertVerifier()), - transport_security_state_(new TransportSecurityState), - ct_policy_enforcer_(new MockCTPolicyEnforcer), - ssl_client_session_cache_( - new SSLClientSessionCache(SSLClientSessionCache::Config())) {} + : ssl_config_service_( + std::make_unique<TestSSLConfigService>(SSLContextConfig())), + cert_verifier_(std::make_unique<MockCertVerifier>()), + client_cert_verifier_(std::make_unique<MockClientCertVerifier>()), + transport_security_state_(std::make_unique<TransportSecurityState>()), + ct_policy_enforcer_(std::make_unique<MockCTPolicyEnforcer>()), + ssl_client_session_cache_(std::make_unique<SSLClientSessionCache>( + SSLClientSessionCache::Config())) {} void SetUp() override { PlatformTest::SetUp();
diff --git a/net/socket/tcp_client_socket_unittest.cc b/net/socket/tcp_client_socket_unittest.cc index 4d5d3f1b..0dd88c4 100644 --- a/net/socket/tcp_client_socket_unittest.cc +++ b/net/socket/tcp_client_socket_unittest.cc
@@ -330,8 +330,7 @@ for (size_t i = 0; i < kNumIPs; ++i) ip_list.push_back(IPAddress(72, 14, 213, i)); - std::unique_ptr<TestSocketPerformanceWatcher> watcher( - new TestSocketPerformanceWatcher()); + auto watcher = std::make_unique<TestSocketPerformanceWatcher>(); TestSocketPerformanceWatcher* watcher_ptr = watcher.get(); std::vector<std::string> aliases({"example.com"});
diff --git a/net/socket/tcp_socket_unittest.cc b/net/socket/tcp_socket_unittest.cc index 28264b4..19f345d 100644 --- a/net/socket/tcp_socket_unittest.cc +++ b/net/socket/tcp_socket_unittest.cc
@@ -178,8 +178,8 @@ TestCompletionCallback connect_callback; - std::unique_ptr<TestSocketPerformanceWatcher> watcher( - new TestSocketPerformanceWatcher(should_notify_updated_rtt)); + auto watcher = std::make_unique<TestSocketPerformanceWatcher>( + should_notify_updated_rtt); TestSocketPerformanceWatcher* watcher_ptr = watcher.get(); TCPSocket connecting_socket(std::move(watcher), nullptr, NetLogSource());
diff --git a/net/socket/tcp_socket_win.cc b/net/socket/tcp_socket_win.cc index 6c36411b..0950280 100644 --- a/net/socket/tcp_socket_win.cc +++ b/net/socket/tcp_socket_win.cc
@@ -307,7 +307,7 @@ return result; } - core_ = new Core(this); + core_ = base::MakeRefCounted<Core>(this); peer_address_ = std::make_unique<IPEndPoint>(peer_address); return OK; @@ -804,8 +804,8 @@ net_log_.EndEventWithNetErrorCode(NetLogEventType::TCP_ACCEPT, net_error); return net_error; } - std::unique_ptr<TCPSocketWin> tcp_socket( - new TCPSocketWin(nullptr, net_log_.net_log(), net_log_.source())); + auto tcp_socket = std::make_unique<TCPSocketWin>(nullptr, net_log_.net_log(), + net_log_.source()); int adopt_result = tcp_socket->AdoptConnectedSocket(new_socket, ip_end_point); if (adopt_result != OK) { net_log_.EndEventWithNetErrorCode(NetLogEventType::TCP_ACCEPT, @@ -853,7 +853,7 @@ return CreateNetLogIPEndPointParams(peer_address_.get()); }); - core_ = new Core(this); + core_ = base::MakeRefCounted<Core>(this); // WSAEventSelect sets the socket to non-blocking mode as a side effect. // Our connect() and recv() calls require that the socket be non-blocking.
diff --git a/net/socket/udp_socket_perftest.cc b/net/socket/udp_socket_perftest.cc index 7ad78a9e..2a878e3 100644 --- a/net/socket/udp_socket_perftest.cc +++ b/net/socket/udp_socket_perftest.cc
@@ -112,8 +112,7 @@ // Setup the server to listen. IPEndPoint bind_address; CreateUDPAddress("127.0.0.1", kPort, &bind_address); - std::unique_ptr<UDPServerSocket> server( - new UDPServerSocket(nullptr, NetLogSource())); + auto server = std::make_unique<UDPServerSocket>(nullptr, NetLogSource()); if (use_nonblocking_io) server->UseNonBlockingIO(); int rv = server->Listen(bind_address); @@ -122,8 +121,8 @@ // Setup the client. IPEndPoint server_address; CreateUDPAddress("127.0.0.1", kPort, &server_address); - std::unique_ptr<UDPClientSocket> client(new UDPClientSocket( - DatagramSocket::DEFAULT_BIND, nullptr, NetLogSource())); + auto client = std::make_unique<UDPClientSocket>(DatagramSocket::DEFAULT_BIND, + nullptr, NetLogSource()); if (use_nonblocking_io) client->UseNonBlockingIO(); rv = client->Connect(server_address);
diff --git a/net/socket/udp_socket_posix.cc b/net/socket/udp_socket_posix.cc index 01fe429..57b2fa5 100644 --- a/net/socket/udp_socket_posix.cc +++ b/net/socket/udp_socket_posix.cc
@@ -131,7 +131,7 @@ net::NetLog* net_log, const net::NetLogSource& source) : write_async_watcher_(std::make_unique<WriteAsyncWatcher>(this)), - sender_(new UDPSocketPosixSender()), + sender_(base::MakeRefCounted<UDPSocketPosixSender>()), socket_(kInvalidSocket), bind_type_(bind_type), read_socket_watcher_(FROM_HERE), @@ -299,7 +299,7 @@ SockaddrStorage storage; if (getpeername(socket_, storage.addr, &storage.addr_len)) return MapSystemError(errno); - std::unique_ptr<IPEndPoint> address(new IPEndPoint()); + auto address = std::make_unique<IPEndPoint>(); if (!address->FromSockAddr(storage.addr, storage.addr_len)) return ERR_ADDRESS_INVALID; remote_address_ = std::move(address); @@ -319,7 +319,7 @@ SockaddrStorage storage; if (getsockname(socket_, storage.addr, &storage.addr_len)) return MapSystemError(errno); - std::unique_ptr<IPEndPoint> address(new IPEndPoint()); + auto address = std::make_unique<IPEndPoint>(); if (!address->FromSockAddr(storage.addr, storage.addr_len)) return ERR_ADDRESS_INVALID; local_address_ = std::move(address);
diff --git a/net/socket/udp_socket_posix_unittest.cc b/net/socket/udp_socket_posix_unittest.cc index a9ad3fe..0dc6170d 100644 --- a/net/socket/udp_socket_posix_unittest.cc +++ b/net/socket/udp_socket_posix_unittest.cc
@@ -89,7 +89,7 @@ net::NetLog* net_log, const net::NetLogSource& source) : UDPSocketPosix(bind_type, net_log, source) { - sender_ = new MockUDPSocketPosixSender(); + sender_ = base::MakeRefCounted<MockUDPSocketPosixSender>(); } MockUDPSocketPosixSender* sender() {
diff --git a/net/socket/udp_socket_unittest.cc b/net/socket/udp_socket_unittest.cc index d1e981a..f2ed2dd 100644 --- a/net/socket/udp_socket_unittest.cc +++ b/net/socket/udp_socket_unittest.cc
@@ -145,7 +145,7 @@ int SendToSocket(UDPSocket* socket, std::string msg, const IPEndPoint& address) { - scoped_refptr<StringIOBuffer> io_buffer = new StringIOBuffer(msg); + auto io_buffer = base::MakeRefCounted<StringIOBuffer>(msg); TestCompletionCallback callback; int rv = socket->SendTo(io_buffer.get(), io_buffer->size(), address, callback.callback()); @@ -177,8 +177,8 @@ RecordingNetLogObserver net_log_observer; // Setup the server to listen. IPEndPoint server_address(IPAddress::IPv4Localhost(), 0 /* port */); - std::unique_ptr<UDPServerSocket> server( - new UDPServerSocket(NetLog::Get(), NetLogSource())); + auto server = + std::make_unique<UDPServerSocket>(NetLog::Get(), NetLogSource()); if (use_nonblocking_io) server->UseNonBlockingIO(); server->AllowAddressReuse(); @@ -343,10 +343,10 @@ IPEndPoint listen_address; ASSERT_TRUE(CreateUDPAddress("0.0.0.0", 0 /* port */, &listen_address)); - std::unique_ptr<UDPServerSocket> server1( - new UDPServerSocket(NetLog::Get(), NetLogSource())); - std::unique_ptr<UDPServerSocket> server2( - new UDPServerSocket(NetLog::Get(), NetLogSource())); + auto server1 = + std::make_unique<UDPServerSocket>(NetLog::Get(), NetLogSource()); + auto server2 = + std::make_unique<UDPServerSocket>(NetLog::Get(), NetLogSource()); server1->AllowAddressReuse(); server1->AllowBroadcast(); server2->AllowAddressReuse();
diff --git a/net/socket/udp_socket_win.cc b/net/socket/udp_socket_win.cc index 3ff2b87..554d7fe9 100644 --- a/net/socket/udp_socket_win.cc +++ b/net/socket/udp_socket_win.cc
@@ -268,7 +268,7 @@ if (socket_ == INVALID_SOCKET) return MapSystemError(WSAGetLastError()); if (!use_non_blocking_io_) { - core_ = new Core(this); + core_ = base::MakeRefCounted<Core>(this); } else { read_write_event_.Set(WSACreateEvent()); WSAEventSelect(socket_, read_write_event_.Get(), FD_READ | FD_WRITE);
diff --git a/net/socket/unix_domain_client_socket_posix_unittest.cc b/net/socket/unix_domain_client_socket_posix_unittest.cc index 5d17b7a..756fa04 100644 --- a/net/socket/unix_domain_client_socket_posix_unittest.cc +++ b/net/socket/unix_domain_client_socket_posix_unittest.cc
@@ -194,7 +194,7 @@ // to be sure it hasn't gotten accidentally closed. SockaddrStorage addr; ASSERT_TRUE(FillUnixAddress(socket_path_, false, &addr)); - std::unique_ptr<SocketPosix> adopter(new SocketPosix); + auto adopter = std::make_unique<SocketPosix>(); adopter->AdoptConnectedSocket(client_socket_fd, addr); UnixDomainClientSocket rewrapped_socket(std::move(adopter)); EXPECT_TRUE(rewrapped_socket.IsConnected());
diff --git a/net/socket/unix_domain_server_socket_posix.cc b/net/socket/unix_domain_server_socket_posix.cc index c579b467..9e69fa9 100644 --- a/net/socket/unix_domain_server_socket_posix.cc +++ b/net/socket/unix_domain_server_socket_posix.cc
@@ -72,7 +72,7 @@ return ERR_ADDRESS_INVALID; } - std::unique_ptr<SocketPosix> socket(new SocketPosix); + auto socket = std::make_unique<SocketPosix>(); int rv = socket->Open(AF_UNIX); DCHECK_NE(ERR_IO_PENDING, rv); if (rv != OK)
diff --git a/net/socket/websocket_transport_client_socket_pool_unittest.cc b/net/socket/websocket_transport_client_socket_pool_unittest.cc index 679e5d3c..2ec79710 100644 --- a/net/socket/websocket_transport_client_socket_pool_unittest.cc +++ b/net/socket/websocket_transport_client_socket_pool_unittest.cc
@@ -546,7 +546,7 @@ // The lock on the endpoint is released when a ClientSocketHandle is deleted. TEST_F(WebSocketTransportClientSocketPoolTest, LockReleasedOnHandleDelete) { TestCompletionCallback callback; - std::unique_ptr<ClientSocketHandle> handle(new ClientSocketHandle); + auto handle = std::make_unique<ClientSocketHandle>(); int rv = handle->Init(group_id_, params_, absl::nullopt /* proxy_annotation_tag */, LOW, SocketTag(), ClientSocketPool::RespectLimits::ENABLED,
diff --git a/net/spdy/spdy_buffer.cc b/net/spdy/spdy_buffer.cc index aaf447e..319a8bc 100644 --- a/net/spdy/spdy_buffer.cc +++ b/net/spdy/spdy_buffer.cc
@@ -60,12 +60,12 @@ }; SpdyBuffer::SpdyBuffer(std::unique_ptr<spdy::SpdySerializedFrame> frame) - : shared_frame_(new SharedFrame(std::move(frame))) {} + : shared_frame_(base::MakeRefCounted<SharedFrame>(std::move(frame))) {} // The given data may not be strictly a SPDY frame; we (ab)use // |frame_| just as a container. SpdyBuffer::SpdyBuffer(const char* data, size_t size) - : shared_frame_(new SharedFrame()) { + : shared_frame_(base::MakeRefCounted<SharedFrame>()) { CHECK_GT(size, 0u); CHECK_LE(size, kMaxSpdyFrameSize); shared_frame_->data = MakeSpdySerializedFrame(data, size);
diff --git a/net/spdy/spdy_http_utils.cc b/net/spdy/spdy_http_utils.cc index 30e0be4..147d9fc 100644 --- a/net/spdy/spdy_http_utils.cc +++ b/net/spdy/spdy_http_utils.cc
@@ -83,7 +83,7 @@ } while (end != value.npos); } - response->headers = new HttpResponseHeaders(raw_headers); + response->headers = base::MakeRefCounted<HttpResponseHeaders>(raw_headers); // When there are multiple location headers the response is a potential // response smuggling attack.
diff --git a/net/ssl/client_cert_store_nss_unittest.cc b/net/ssl/client_cert_store_nss_unittest.cc index 9339ad0..54d13f0 100644 --- a/net/ssl/client_cert_store_nss_unittest.cc +++ b/net/ssl/client_cert_store_nss_unittest.cc
@@ -91,8 +91,8 @@ ASSERT_TRUE(base::ReadFileToString( GetTestCertsDirectory().AppendASCII("client_1.pk8"), &pkcs8_key)); - std::unique_ptr<ClientCertStoreNSS> store( - new ClientCertStoreNSS(ClientCertStoreNSS::PasswordDelegateFactory())); + auto store = std::make_unique<ClientCertStoreNSS>( + ClientCertStoreNSS::PasswordDelegateFactory()); // These test keys are RSA keys. std::vector<uint16_t> expected = SSLPrivateKey::DefaultAlgorithmPreferences( @@ -200,8 +200,8 @@ ASSERT_TRUE(ImportClientCertToSlot(cert.get(), test_db.slot())); - std::unique_ptr<ClientCertStoreNSS> store( - new ClientCertStoreNSS(ClientCertStoreNSS::PasswordDelegateFactory())); + auto store = std::make_unique<ClientCertStoreNSS>( + ClientCertStoreNSS::PasswordDelegateFactory()); // These test keys are RSA keys. std::vector<uint16_t> expected = SSLPrivateKey::DefaultAlgorithmPreferences(
diff --git a/net/ssl/threaded_ssl_private_key.cc b/net/ssl/threaded_ssl_private_key.cc index cc2ac529..01030b0d 100644 --- a/net/ssl/threaded_ssl_private_key.cc +++ b/net/ssl/threaded_ssl_private_key.cc
@@ -52,7 +52,7 @@ ThreadedSSLPrivateKey::ThreadedSSLPrivateKey( std::unique_ptr<ThreadedSSLPrivateKey::Delegate> delegate, scoped_refptr<base::SingleThreadTaskRunner> task_runner) - : core_(new Core(std::move(delegate))), + : core_(base::MakeRefCounted<Core>(std::move(delegate))), task_runner_(std::move(task_runner)) {} std::string ThreadedSSLPrivateKey::GetProviderName() {
diff --git a/net/test/ct_test_util.cc b/net/test/ct_test_util.cc index 299aee2..ea6da8a 100644 --- a/net/test/ct_test_util.cc +++ b/net/test/ct_test_util.cc
@@ -209,7 +209,7 @@ void GetX509CertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { CHECK(sct_ref != nullptr); - *sct_ref = new SignedCertificateTimestamp(); + *sct_ref = base::MakeRefCounted<SignedCertificateTimestamp>(); SignedCertificateTimestamp *const sct(sct_ref->get()); sct->version = ct::SignedCertificateTimestamp::V1; sct->log_id = HexDecode(kTestKeyId); @@ -226,7 +226,7 @@ void GetPrecertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) { CHECK(sct_ref != nullptr); - *sct_ref = new SignedCertificateTimestamp(); + *sct_ref = base::MakeRefCounted<SignedCertificateTimestamp>(); SignedCertificateTimestamp *const sct(sct_ref->get()); sct->version = ct::SignedCertificateTimestamp::V1; sct->log_id = HexDecode(kTestKeyId);
diff --git a/net/test/embedded_test_server/http2_connection.cc b/net/test/embedded_test_server/http2_connection.cc index 6622b96..12632bdb 100644 --- a/net/test/embedded_test_server/http2_connection.cc +++ b/net/test/embedded_test_server/http2_connection.cc
@@ -373,7 +373,7 @@ bool Http2Connection::OnEndHeadersForStream( http2::adapter::Http2StreamId stream_id) { HttpRequest::HeaderMap header_map = header_map_[stream_id]; - std::unique_ptr<HttpRequest> request(new HttpRequest()); + auto request = std::make_unique<HttpRequest>(); request->relative_url = header_map[":path"]; request->base_url = GURL(header_map[":authority"]); request->method_string = header_map[":method"];
diff --git a/net/test/net_test_suite.cc b/net/test/net_test_suite.cc index e702a26..b27889a 100644 --- a/net/test/net_test_suite.cc +++ b/net/test/net_test_suite.cc
@@ -67,7 +67,8 @@ } void NetTestSuite::InitializeTestThreadNoNetworkChangeNotifier() { - host_resolver_proc_ = new net::RuleBasedHostResolverProc(nullptr); + host_resolver_proc_ = + base::MakeRefCounted<net::RuleBasedHostResolverProc>(nullptr); scoped_host_resolver_proc_.Init(host_resolver_proc_.get()); // In case any attempts are made to resolve host names, force them all to // be mapped to localhost. This prevents DNS queries from being sent in
diff --git a/net/test/quic_simple_test_server.cc b/net/test/quic_simple_test_server.cc index 9cf1c13..e18c59e2 100644 --- a/net/test/quic_simple_test_server.cc +++ b/net/test/quic_simple_test_server.cc
@@ -167,7 +167,7 @@ // Set up server certs. base::FilePath directory; directory = test_files_root; - std::unique_ptr<ProofSourceChromium> proof_source(new ProofSourceChromium()); + auto proof_source = std::make_unique<ProofSourceChromium>(); CHECK(proof_source->Initialize(directory.AppendASCII("quic-chain.pem"), directory.AppendASCII("quic-leaf-cert.key"), base::FilePath()));
diff --git a/net/test/spawned_test_server/remote_test_server_spawner_request.cc b/net/test/spawned_test_server/remote_test_server_spawner_request.cc index 78daf75..f56dd4c 100644 --- a/net/test/spawned_test_server/remote_test_server_spawner_request.cc +++ b/net/test/spawned_test_server/remote_test_server_spawner_request.cc
@@ -196,8 +196,9 @@ const GURL& url, const std::string& post_data) : io_task_runner_(io_task_runner), - core_(new Core()), - allowed_port_(new ScopedPortException(url.EffectiveIntPort())) { + core_(std::make_unique<Core>()), + allowed_port_( + std::make_unique<ScopedPortException>(url.EffectiveIntPort())) { io_task_runner_->PostTask( FROM_HERE, base::BindOnce(&Core::SendRequest, base::Unretained(core_.get()), url, post_data));
diff --git a/net/test/url_request/ssl_certificate_error_job.cc b/net/test/url_request/ssl_certificate_error_job.cc index 635c237..216eb90 100644 --- a/net/test/url_request/ssl_certificate_error_job.cc +++ b/net/test/url_request/ssl_certificate_error_job.cc
@@ -51,9 +51,8 @@ void SSLCertificateErrorJob::AddUrlHandler() { URLRequestFilter* filter = URLRequestFilter::GetInstance(); - filter->AddHostnameInterceptor( - "https", kMockHostname, - std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor())); + filter->AddHostnameInterceptor("https", kMockHostname, + std::make_unique<MockJobInterceptor>()); } GURL SSLCertificateErrorJob::GetMockUrl() {
diff --git a/net/test/url_request/url_request_failed_job.cc b/net/test/url_request/url_request_failed_job.cc index ec93428..4bc5769b 100644 --- a/net/test/url_request/url_request_failed_job.cc +++ b/net/test/url_request/url_request_failed_job.cc
@@ -135,12 +135,10 @@ const std::string& hostname) { URLRequestFilter* filter = URLRequestFilter::GetInstance(); // Add |hostname| to URLRequestFilter for HTTP and HTTPS. - filter->AddHostnameInterceptor( - "http", hostname, - std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor())); - filter->AddHostnameInterceptor( - "https", hostname, - std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor())); + filter->AddHostnameInterceptor("http", hostname, + std::make_unique<MockJobInterceptor>()); + filter->AddHostnameInterceptor("https", hostname, + std::make_unique<MockJobInterceptor>()); } // static @@ -182,7 +180,8 @@ return; } const std::string headers = "HTTP/1.1 200 OK"; - response_info_.headers = new net::HttpResponseHeaders(headers); + response_info_.headers = + base::MakeRefCounted<net::HttpResponseHeaders>(headers); total_received_bytes_ = headers.size(); NotifyHeadersComplete(); }
diff --git a/net/test/url_request/url_request_mock_http_job.cc b/net/test/url_request/url_request_mock_http_job.cc index 5fff646f..dd726cef 100644 --- a/net/test/url_request/url_request_mock_http_job.cc +++ b/net/test/url_request/url_request_mock_http_job.cc
@@ -112,16 +112,14 @@ // static std::unique_ptr<URLRequestInterceptor> URLRequestMockHTTPJob::CreateInterceptor( const base::FilePath& base_path) { - return std::unique_ptr<URLRequestInterceptor>( - new MockJobInterceptor(base_path, false)); + return std::make_unique<MockJobInterceptor>(base_path, false); } // static std::unique_ptr<URLRequestInterceptor> URLRequestMockHTTPJob::CreateInterceptorForSingleFile( const base::FilePath& file) { - return std::unique_ptr<URLRequestInterceptor>( - new MockJobInterceptor(file, true)); + return std::make_unique<MockJobInterceptor>(file, true); } URLRequestMockHTTPJob::URLRequestMockHTTPJob(URLRequest* request, @@ -175,7 +173,7 @@ // Private const version. void URLRequestMockHTTPJob::GetResponseInfoConst(HttpResponseInfo* info) const { - info->headers = new HttpResponseHeaders(raw_headers_); + info->headers = base::MakeRefCounted<HttpResponseHeaders>(raw_headers_); } int64_t URLRequestMockHTTPJob::GetTotalReceivedBytes() const {
diff --git a/net/test/url_request/url_request_test_job_backed_by_file.cc b/net/test/url_request/url_request_test_job_backed_by_file.cc index 8e906a1..2972c08 100644 --- a/net/test/url_request/url_request_test_job_backed_by_file.cc +++ b/net/test/url_request/url_request_test_job_backed_by_file.cc
@@ -53,7 +53,7 @@ const scoped_refptr<base::TaskRunner>& file_task_runner) : URLRequestJob(request), file_path_(file_path), - stream_(new FileStream(file_task_runner)), + stream_(std::make_unique<FileStream>(file_task_runner)), file_task_runner_(file_task_runner) {} void URLRequestTestJobBackedByFile::Start() {
diff --git a/net/tools/cachetool/cachetool.cc b/net/tools/cachetool/cachetool.cc index aa8f4440..1735d87 100644 --- a/net/tools/cachetool/cachetool.cc +++ b/net/tools/cachetool/cachetool.cc
@@ -605,7 +605,8 @@ if (truncated_response_info) std::cerr << "WARNING: Truncated HTTP response." << std::endl; - response_info.headers = new net::HttpResponseHeaders(raw_headers); + response_info.headers = + base::MakeRefCounted<net::HttpResponseHeaders>(raw_headers); PersistResponseInfo(command_marshal, key, response_info); }
diff --git a/net/tools/content_decoder_tool/content_decoder_tool_unittest.cc b/net/tools/content_decoder_tool/content_decoder_tool_unittest.cc index 24cc0c4..83656cf 100644 --- a/net/tools/content_decoder_tool/content_decoder_tool_unittest.cc +++ b/net/tools/content_decoder_tool/content_decoder_tool_unittest.cc
@@ -88,7 +88,7 @@ TEST_F(ContentDecoderToolTest, TestBrotli) { // In Cronet build, brotli sources are excluded due to binary size concern. // In such cases, skip the test. - std::unique_ptr<MockSourceStream> mock_source_stream(new MockSourceStream()); + auto mock_source_stream = std::make_unique<MockSourceStream>(); bool brotli_disabled = CreateBrotliSourceStream(std::move(mock_source_stream)) == nullptr; if (brotli_disabled)
diff --git a/net/tools/dump_cache/dump_files.cc b/net/tools/dump_cache/dump_files.cc index bf5862c..6aa77c5 100644 --- a/net/tools/dump_cache/dump_files.cc +++ b/net/tools/dump_cache/dump_files.cc
@@ -82,7 +82,7 @@ size_t offset = address.start_block() * address.BlockSize() + disk_cache::kBlockHeaderSize; - std::unique_ptr<int32_t[]> buffer(new int32_t[length]); + auto buffer = std::make_unique<int32_t[]>(length); if (!file->Read(buffer.get(), length, offset)) return; @@ -196,7 +196,7 @@ } base::FilePath index_name(path_.Append(kIndexName)); - index_file_ = new disk_cache::MappedFile; + index_file_ = base::MakeRefCounted<disk_cache::MappedFile>(); index_ = reinterpret_cast<disk_cache::Index*>( index_file_->Init(index_name, 0)); if (!index_) { @@ -294,7 +294,7 @@ return false; size_t size = address.num_blocks() * address.BlockSize(); - std::unique_ptr<char[]> buffer(new char[size]); + auto buffer = std::make_unique<char[]>(size); size_t offset = address.start_block() * address.BlockSize() + disk_cache::kBlockHeaderSize;
diff --git a/net/tools/huffman_trie/huffman/huffman_builder.cc b/net/tools/huffman_trie/huffman/huffman_builder.cc index ac32ce95..cc7945a 100644 --- a/net/tools/huffman_trie/huffman/huffman_builder.cc +++ b/net/tools/huffman_trie/huffman/huffman_builder.cc
@@ -147,8 +147,8 @@ uint32_t count_a = a->count(); uint32_t count_b = b->count(); - std::unique_ptr<HuffmanNode> parent( - new HuffmanNode(0, count_a + count_b, std::move(a), std::move(b))); + auto parent = std::make_unique<HuffmanNode>(0, count_a + count_b, + std::move(a), std::move(b)); nodes.erase(nodes.begin()); nodes[0] = std::move(parent);
diff --git a/net/tools/huffman_trie/trie/trie_writer.cc b/net/tools/huffman_trie/trie/trie_writer.cc index 3d3af921..6121705 100644 --- a/net/tools/huffman_trie/trie/trie_writer.cc +++ b/net/tools/huffman_trie/trie/trie_writer.cc
@@ -105,8 +105,8 @@ ReversedEntries reversed_entries; for (auto* const entry : entries) { - std::unique_ptr<ReversedEntry> reversed_entry( - new ReversedEntry(ReverseName(entry->name()), entry)); + auto reversed_entry = + std::make_unique<ReversedEntry>(ReverseName(entry->name()), entry); reversed_entries.push_back(std::move(reversed_entry)); }
diff --git a/net/tools/net_watcher/net_watcher.cc b/net/tools/net_watcher/net_watcher.cc index 7c75c37b7..733aa14 100644 --- a/net/tools/net_watcher/net_watcher.cc +++ b/net/tools/net_watcher/net_watcher.cc
@@ -180,8 +180,8 @@ ignored_interfaces.insert(ignored_netif); } } - std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier( - new net::NetworkChangeNotifierLinux(ignored_interfaces)); + auto network_change_notifier = + std::make_unique<net::NetworkChangeNotifierLinux>(ignored_interfaces); #else std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier( net::NetworkChangeNotifier::CreateIfNeeded());
diff --git a/net/tools/quic/quic_simple_client.cc b/net/tools/quic/quic_simple_client.cc index e355be1..726fccc 100644 --- a/net/tools/quic/quic_simple_client.cc +++ b/net/tools/quic/quic_simple_client.cc
@@ -45,8 +45,7 @@ config, CreateQuicConnectionHelper(), CreateQuicAlarmFactory(), - base::WrapUnique( - new QuicClientMessageLooplNetworkHelper(&clock_, this)), + std::make_unique<QuicClientMessageLooplNetworkHelper>(&clock_, this), std::move(proof_verifier), nullptr) { set_server_address(server_address);
diff --git a/net/tools/quic/quic_simple_server.cc b/net/tools/quic/quic_simple_server.cc index 7d993f9..e3fe4489 100644 --- a/net/tools/quic/quic_simple_server.cc +++ b/net/tools/quic/quic_simple_server.cc
@@ -111,8 +111,8 @@ dispatcher_ = std::make_unique<quic::QuicSimpleDispatcher>( &config_, &crypto_config_, &version_manager_, std::unique_ptr<quic::QuicConnectionHelperInterface>(helper_), - std::unique_ptr<quic::QuicCryptoServerStreamBase::Helper>( - new QuicSimpleServerSessionHelper(quic::QuicRandom::GetInstance())), + std::make_unique<QuicSimpleServerSessionHelper>( + quic::QuicRandom::GetInstance()), std::unique_ptr<quic::QuicAlarmFactory>(alarm_factory_), quic_simple_server_backend_, quic::kQuicDefaultConnectionIdLength); QuicSimpleServerPacketWriter* writer =
diff --git a/net/tools/quic/quic_simple_server_test.cc b/net/tools/quic/quic_simple_server_test.cc index d46fbdf..9681310e 100644 --- a/net/tools/quic/quic_simple_server_test.cc +++ b/net/tools/quic/quic_simple_server_test.cc
@@ -35,9 +35,8 @@ &crypto_config_, &version_manager_, std::make_unique<quic::test::MockQuicConnectionHelper>(), - std::unique_ptr<quic::QuicCryptoServerStreamBase::Helper>( - new QuicSimpleServerSessionHelper( - quic::QuicRandom::GetInstance())), + std::make_unique<QuicSimpleServerSessionHelper>( + quic::QuicRandom::GetInstance()), std::make_unique<quic::test::MockAlarmFactory>(), &memory_cache_backend_) { dispatcher_.InitializeWithWriter(nullptr);
diff --git a/net/tools/transport_security_state_generator/input_file_parsers.cc b/net/tools/transport_security_state_generator/input_file_parsers.cc index 8442610..1edd25a 100644 --- a/net/tools/transport_security_state_generator/input_file_parsers.cc +++ b/net/tools/transport_security_state_generator/input_file_parsers.cc
@@ -355,8 +355,7 @@ return false; } - std::unique_ptr<TransportSecurityStateEntry> entry( - new TransportSecurityStateEntry()); + auto entry = std::make_unique<TransportSecurityStateEntry>(); const std::string* maybe_hostname = parsed.FindStringKey(kNameJSONKey); if (!maybe_hostname) { LOG(ERROR) << "Could not extract the hostname for entry " @@ -439,7 +438,7 @@ std::string report_uri = maybe_report_uri ? *maybe_report_uri : std::string(); - std::unique_ptr<Pinset> pinset(new Pinset(name, report_uri)); + auto pinset = std::make_unique<Pinset>(name, report_uri); const base::Value* pinset_static_hashes_list = parsed.FindListKey("static_spki_hashes");
diff --git a/net/tools/transport_security_state_generator/preloaded_state_generator.cc b/net/tools/transport_security_state_generator/preloaded_state_generator.cc index 25de947..4023b18 100644 --- a/net/tools/transport_security_state_generator/preloaded_state_generator.cc +++ b/net/tools/transport_security_state_generator/preloaded_state_generator.cc
@@ -144,9 +144,8 @@ std::vector<std::unique_ptr<TransportSecurityStateTrieEntry>> trie_entries; std::vector<huffman_trie::TrieEntry*> raw_trie_entries; for (const auto& entry : entries) { - std::unique_ptr<TransportSecurityStateTrieEntry> trie_entry( - new TransportSecurityStateTrieEntry(expect_ct_report_uri_map, - pinsets_map, entry.get())); + auto trie_entry = std::make_unique<TransportSecurityStateTrieEntry>( + expect_ct_report_uri_map, pinsets_map, entry.get()); raw_trie_entries.push_back(trie_entry.get()); trie_entries.push_back(std::move(trie_entry)); }
diff --git a/net/url_request/http_with_dns_over_https_unittest.cc b/net/url_request/http_with_dns_over_https_unittest.cc index 43c94da..7f09ac2 100644 --- a/net/url_request/http_with_dns_over_https_unittest.cc +++ b/net/url_request/http_with_dns_over_https_unittest.cc
@@ -206,8 +206,7 @@ std::unique_ptr<test_server::HttpResponse> HandleDefaultRequest( const test_server::HttpRequest& request) { - std::unique_ptr<test_server::BasicHttpResponse> http_response( - new test_server::BasicHttpResponse); + auto http_response = std::make_unique<test_server::BasicHttpResponse>(); test_https_requests_served_++; http_response->set_content(kTestBody); http_response->set_content_type("text/html");
diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc index 269658b..e2deec5 100644 --- a/net/url_request/report_sender.cc +++ b/net/url_request/report_sender.cc
@@ -80,8 +80,7 @@ url_request->set_method("POST"); std::vector<char> report_data(report.begin(), report.end()); - std::unique_ptr<UploadElementReader> reader( - new UploadOwnedBytesElementReader(&report_data)); + auto reader = std::make_unique<UploadOwnedBytesElementReader>(&report_data); url_request->set_upload( ElementsUploadDataStream::CreateWithReader(std::move(reader), 0));
diff --git a/net/url_request/report_sender_unittest.cc b/net/url_request/report_sender_unittest.cc index e1f5d81..56eec03a 100644 --- a/net/url_request/report_sender_unittest.cc +++ b/net/url_request/report_sender_unittest.cc
@@ -91,7 +91,7 @@ protected: void GetResponseInfo(HttpResponseInfo* info) override { - info->headers = new HttpResponseHeaders( + info->headers = base::MakeRefCounted<HttpResponseHeaders>( "HTTP/1.1 500 Internal Server Error\n" "Content-type: text/plain\n" "Content-Length: 0\n"); @@ -215,8 +215,7 @@ URLRequestMockDataJob::AddUrlHandler(); URLRequestFilter::GetInstance()->AddHostnameInterceptor( "http", kServerErrorHostname, - std::unique_ptr<URLRequestInterceptor>( - new MockServerErrorJobInterceptor())); + std::make_unique<MockServerErrorJobInterceptor>()); } void TearDown() override { URLRequestFilter::GetInstance()->ClearHandlers(); } @@ -334,8 +333,8 @@ EXPECT_EQ(0u, network_delegate().num_requests()); - std::unique_ptr<ReportSender> reporter( - new ReportSender(context(), TRAFFIC_ANNOTATION_FOR_TESTS)); + auto reporter = + std::make_unique<ReportSender>(context(), TRAFFIC_ANNOTATION_FOR_TESTS); reporter->Send(url, "application/foobar", kDummyReport, NetworkIsolationKey(), base::OnceCallback<void()>(), base::OnceCallback<void(const GURL&, int, int)>());
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc index dc41e47e..fee9b78 100644 --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc
@@ -444,8 +444,8 @@ if (cookie_store_set_by_client_) { storage->set_cookie_store(std::move(cookie_store_)); } else { - std::unique_ptr<CookieStore> cookie_store(new CookieMonster( - nullptr /* store */, context->net_log(), first_party_sets_enabled_)); + auto cookie_store = std::make_unique<CookieMonster>( + nullptr /* store */, context->net_log(), first_party_sets_enabled_); storage->set_cookie_store(std::move(cookie_store)); }
diff --git a/net/url_request/url_request_filter_unittest.cc b/net/url_request/url_request_filter_unittest.cc index c330f61..953f6a7 100644 --- a/net/url_request/url_request_filter_unittest.cc +++ b/net/url_request/url_request_filter_unittest.cc
@@ -67,8 +67,7 @@ // Check AddUrlInterceptor checks for invalid URLs. EXPECT_FALSE(filter->AddUrlInterceptor( - GURL(), - std::unique_ptr<URLRequestInterceptor>(new TestURLRequestInterceptor()))); + GURL(), std::make_unique<TestURLRequestInterceptor>())); // Check URLRequestInterceptor URL matching. filter->ClearHandlers();
diff --git a/net/url_request/url_request_quic_perftest.cc b/net/url_request/url_request_quic_perftest.cc index 32289022..56f9a4c 100644 --- a/net/url_request/url_request_quic_perftest.cc +++ b/net/url_request/url_request_quic_perftest.cc
@@ -83,8 +83,7 @@ std::unique_ptr<test_server::HttpResponse> HandleRequest( const test_server::HttpRequest& request) { - std::unique_ptr<test_server::BasicHttpResponse> http_response( - new test_server::BasicHttpResponse()); + auto http_response = std::make_unique<test_server::BasicHttpResponse>(); std::string alpn = quic::AlpnForVersion(DefaultSupportedQuicVersions().front()); http_response->AddCustomHeader( @@ -112,7 +111,7 @@ StartQuicServer(); // Host mapping. - std::unique_ptr<MockHostResolver> resolver(new MockHostResolver()); + auto resolver = std::make_unique<MockHostResolver>(); resolver->rules()->AddRule(kAltSvcHost, "127.0.0.1"); auto host_resolver = std::make_unique<MappedHostResolver>(std::move(resolver));
diff --git a/net/url_request/url_request_quic_unittest.cc b/net/url_request/url_request_quic_unittest.cc index f15604b8..ad623f2 100644 --- a/net/url_request/url_request_quic_unittest.cc +++ b/net/url_request/url_request_quic_unittest.cc
@@ -247,7 +247,7 @@ server_->Listen(net::IPEndPoint(net::IPAddress::IPv4AllZeros(), 0)); EXPECT_GE(rv, 0) << "Quic server fails to start"; - std::unique_ptr<MockHostResolver> resolver(new MockHostResolver()); + auto resolver = std::make_unique<MockHostResolver>(); resolver->rules()->AddRule("test.example.com", "127.0.0.1"); host_resolver_ = std::make_unique<MappedHostResolver>(std::move(resolver)); // Use a mapped host resolver so that request for test.example.com
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc index 32d681e..7e1bd7ea 100644 --- a/net/url_request/url_request_test_util.cc +++ b/net/url_request/url_request_test_util.cc
@@ -390,8 +390,8 @@ next_states_[req_id] |= kStageBeforeStartTransaction; if (!redirect_on_headers_received_url_.is_empty()) { - *override_response_headers = - new HttpResponseHeaders(original_response_headers->raw_headers()); + *override_response_headers = base::MakeRefCounted<HttpResponseHeaders>( + original_response_headers->raw_headers()); (*override_response_headers)->ReplaceStatusLine("HTTP/1.1 302 Found"); (*override_response_headers)->RemoveHeader("Location"); (*override_response_headers) @@ -402,8 +402,8 @@ // Since both values are absl::optionals, can just copy this over. *preserve_fragment_on_redirect_url = preserve_fragment_on_redirect_url_; } else if (add_header_to_first_response_ && is_first_response) { - *override_response_headers = - new HttpResponseHeaders(original_response_headers->raw_headers()); + *override_response_headers = base::MakeRefCounted<HttpResponseHeaders>( + original_response_headers->raw_headers()); (*override_response_headers) ->AddHeader("X-Network-Delegate", "Greetings, planet"); }
diff --git a/net/url_request/url_request_throttler_manager.cc b/net/url_request/url_request_throttler_manager.cc index 5927ee91..c5d4911 100644 --- a/net/url_request/url_request_throttler_manager.cc +++ b/net/url_request/url_request_throttler_manager.cc
@@ -68,7 +68,7 @@ // Create the entry if needed. if (entry.get() == nullptr) { - entry = new URLRequestThrottlerEntry(this, url_id); + entry = base::MakeRefCounted<URLRequestThrottlerEntry>(this, url_id); // We only disable back-off throttling on an entry that we have // just constructed. This is to allow unit tests to explicitly override
diff --git a/net/url_request/url_request_throttler_simulation_unittest.cc b/net/url_request/url_request_throttler_simulation_unittest.cc index bcf37963..9d79f695 100644 --- a/net/url_request/url_request_throttler_simulation_unittest.cc +++ b/net/url_request/url_request_throttler_simulation_unittest.cc
@@ -225,7 +225,7 @@ if (num_ticks % ticks_per_column) ++num_columns; DCHECK_LE(num_columns, terminal_width); - std::unique_ptr<int[]> columns(new int[num_columns]); + auto columns = std::make_unique<int[]>(num_columns); for (int tx = 0; tx < num_ticks; ++tx) { int cx = tx / ticks_per_column; if (tx % ticks_per_column == 0) @@ -488,27 +488,26 @@ for (size_t i = 0; i < kNumAttackers; ++i) { // Use a tiny time_between_requests so the attackers will ping the // server at every tick of the simulation. - scoped_refptr<MockURLRequestThrottlerEntry> throttler_entry( - new MockURLRequestThrottlerEntry(&manager)); + auto throttler_entry = + base::MakeRefCounted<MockURLRequestThrottlerEntry>(&manager); if (!enable_throttling) throttler_entry->DisableBackoffThrottling(); - std::unique_ptr<Requester> attacker( - new Requester(throttler_entry.get(), base::Milliseconds(1), server, - attacker_results)); + auto attacker = std::make_unique<Requester>( + throttler_entry.get(), base::Milliseconds(1), server, attacker_results); attacker->SetStartupJitter(base::Seconds(120)); simulation.AddActor(attacker.get()); requesters.push_back(std::move(attacker)); } for (size_t i = 0; i < kNumClients; ++i) { // Normal clients only make requests every 2 minutes, plus/minus 1 minute. - scoped_refptr<MockURLRequestThrottlerEntry> throttler_entry( - new MockURLRequestThrottlerEntry(&manager)); + auto throttler_entry = + base::MakeRefCounted<MockURLRequestThrottlerEntry>(&manager); if (!enable_throttling) throttler_entry->DisableBackoffThrottling(); - std::unique_ptr<Requester> client(new Requester( - throttler_entry.get(), base::Minutes(2), server, client_results)); + auto client = std::make_unique<Requester>( + throttler_entry.get(), base::Minutes(2), server, client_results); client->SetStartupJitter(base::Seconds(120)); client->SetRequestJitter(base::Minutes(1)); simulation.AddActor(client.get()); @@ -585,8 +584,8 @@ server.SetDowntime(start_downtime, duration); URLRequestThrottlerManager manager; - scoped_refptr<MockURLRequestThrottlerEntry> throttler_entry( - new MockURLRequestThrottlerEntry(&manager)); + auto throttler_entry = + base::MakeRefCounted<MockURLRequestThrottlerEntry>(&manager); if (!enable_throttling) throttler_entry->DisableBackoffThrottling();
diff --git a/net/url_request/url_request_throttler_unittest.cc b/net/url_request/url_request_throttler_unittest.cc index 98c2aea..49fa1a21 100644 --- a/net/url_request/url_request_throttler_unittest.cc +++ b/net/url_request/url_request_throttler_unittest.cc
@@ -181,7 +181,7 @@ request_->SetLoadFlags(0); now_ = TimeTicks::Now(); - entry_ = new MockURLRequestThrottlerEntry(&manager_); + entry_ = base::MakeRefCounted<MockURLRequestThrottlerEntry>(&manager_); entry_->ResetToBlank(now_); }
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index 10bfbf4..95a20fcc 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc
@@ -335,8 +335,7 @@ } std::unique_ptr<UploadDataStream> CreateSimpleUploadData(const char* data) { - std::unique_ptr<UploadElementReader> reader( - new UploadBytesElementReader(data, strlen(data))); + auto reader = std::make_unique<UploadBytesElementReader>(data, strlen(data)); return ElementsUploadDataStream::CreateWithReader(std::move(reader), 0); } @@ -3732,12 +3731,11 @@ scoped_refptr<HttpResponseHeaders>* override_response_headers, const IPEndPoint& endpoint, absl::optional<GURL>* preserve_fragment_on_redirect_url) { - HttpResponseHeaders* new_response_headers = - new HttpResponseHeaders(original_response_headers->raw_headers()); + *override_response_headers = base::MakeRefCounted<HttpResponseHeaders>( + original_response_headers->raw_headers()); - new_response_headers->SetHeader("Date", fixed_date_); + (*override_response_headers)->SetHeader("Date", fixed_date_); - *override_response_headers = new_response_headers; return TestNetworkDelegate::OnHeadersReceived( request, std::move(callback), original_response_headers, override_response_headers, endpoint, preserve_fragment_on_redirect_url); @@ -4044,8 +4042,7 @@ return nullptr; } - std::unique_ptr<test_server::BasicHttpResponse> http_response( - new test_server::BasicHttpResponse); + auto http_response = std::make_unique<test_server::BasicHttpResponse>(); http_response->set_code(HTTP_FOUND); http_response->AddCustomHeader("Location", "http://www.destination.com/foo.js"); @@ -4676,12 +4673,11 @@ return nullptr; } - std::unique_ptr<test_server::BasicHttpResponse> http_response( - new test_server::BasicHttpResponse); + auto http_response = std::make_unique<test_server::BasicHttpResponse>(); http_response->set_code(HTTP_UNAUTHORIZED); http_response->AddCustomHeader("WWW-Authenticate", "Basic realm=\"WallyWorld\""); - return std::move(http_response); + return http_response; } } // namespace @@ -5919,7 +5915,7 @@ ASSERT_EQ(true, base::GetFileSize(path, &size64)); ASSERT_LE(size64, std::numeric_limits<int>::max()); int size = static_cast<int>(size64); - std::unique_ptr<char[]> buf(new char[size]); + auto buf = std::make_unique<char[]>(size); ASSERT_EQ(size, base::ReadFile(path, buf.get(), size)); @@ -6004,8 +6000,7 @@ std::unique_ptr<URLRequest> r(default_context().CreateRequest( http_test_server()->GetURL("/echo"), DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS)); - std::unique_ptr<ChunkedUploadDataStream> upload_data_stream( - new ChunkedUploadDataStream(0)); + auto upload_data_stream = std::make_unique<ChunkedUploadDataStream>(0); std::unique_ptr<ChunkedUploadDataStream::Writer> writer = upload_data_stream->CreateWriter(); r->set_upload(std::move(upload_data_stream)); @@ -6028,8 +6023,7 @@ std::unique_ptr<URLRequest> r(default_context().CreateRequest( http_test_server()->GetURL("/echo"), DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS)); - std::unique_ptr<ChunkedUploadDataStream> upload_data_stream( - new ChunkedUploadDataStream(0)); + auto upload_data_stream = std::make_unique<ChunkedUploadDataStream>(0); std::unique_ptr<ChunkedUploadDataStream::Writer> writer = upload_data_stream->CreateWriter(); r->set_upload(std::move(upload_data_stream)); @@ -6051,8 +6045,7 @@ std::unique_ptr<URLRequest> r(default_context().CreateRequest( http_test_server()->GetURL("/echo"), DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS)); - std::unique_ptr<ChunkedUploadDataStream> upload_data_stream( - new ChunkedUploadDataStream(0)); + auto upload_data_stream = std::make_unique<ChunkedUploadDataStream>(0); std::unique_ptr<ChunkedUploadDataStream::Writer> writer = upload_data_stream->CreateWriter(); r->set_upload(std::move(upload_data_stream));
diff --git a/net/websockets/websocket_basic_stream_test.cc b/net/websockets/websocket_basic_stream_test.cc index 83318aa..1786a4e 100644 --- a/net/websockets/websocket_basic_stream_test.cc +++ b/net/websockets/websocket_basic_stream_test.cc
@@ -842,7 +842,7 @@ const size_t kWireSize = kPayloadSize + kLargeFrameHeaderSize; const size_t kExpectedFrameCount = (kWireSize + kReadBufferSize - 1) / kReadBufferSize; - std::unique_ptr<char[]> big_frame(new char[kWireSize]); + auto big_frame = std::make_unique<char[]>(kWireSize); memcpy(big_frame.get(), "\x81\x7F", 2); base::WriteBigEndian(big_frame.get() + 2, kPayloadSize); memset(big_frame.get() + kLargeFrameHeaderSize, 'A', kPayloadSize);
diff --git a/net/websockets/websocket_channel_test.cc b/net/websockets/websocket_channel_test.cc index e9976dd2d..8c3e9ad 100644 --- a/net/websockets/websocket_channel_test.cc +++ b/net/websockets/websocket_channel_test.cc
@@ -2655,7 +2655,7 @@ connect_data_.socket_url = wss_url; AuthChallengeInfo auth_info; absl::optional<AuthCredentials> credentials; - scoped_refptr<HttpResponseHeaders> response_headers = + auto response_headers = base::MakeRefCounted<HttpResponseHeaders>("HTTP/1.1 200 OK"); IPEndPoint remote_endpoint(net::IPAddress(127, 0, 0, 1), 80);
diff --git a/services/metrics/ukm_api.md b/services/metrics/ukm_api.md index 1a8feee..bd959a30 100644 --- a/services/metrics/ukm_api.md +++ b/services/metrics/ukm_api.md
@@ -171,7 +171,37 @@ .Record(ukm_recorder.get()); ``` -3) Within blink/renderer, use `blink::Document::UkmRecorder()`. +3) Within blink/renderer, use one of the following methods: + +* `blink::Document::UkmRecorder()` +* `blink::ExecutionContext::UkmRecorder()` +* `blink::ResourceFetcher::UkmRecorder()` + +4) If you do not have access to any of the methods in 3), establish a remote +connection to a UkmRecorderInterface and use a MojoUkmRecorder to get a +UkmRecorder. + +```cpp +mojo::PendingRemote<ukm::mojom::UkmRecorderInterface> recorder; + +// This step depends on how the Metrics service is embedded in the application. +BindUkmRecorderSomewhere(recorder.InitWithNewPipeAndPassReceiver()); + +ukm_recorder = std::make_unique<ukm::MojoUkmRecorder>(std::move(recorder)); +ukm::builders::MyEvent(source_id) + .SetMyMetric(metric_value) + .Record(ukm_recorder.get()); +``` +Depending on which directory you are getting the UkmRecorder from, you need the +correct interface binder to replace the `BindUkmRecorderSomewhere()` part above. +Some options are: + +* blink/renderer: `Platform::Current()->GetBrowserInterfaceBroker()->GetInterface()` +* content/renderer: `content::RenderThread::Get()->BindHostReceiver()` + +Note: Establishing a new remote connection each time (i.e. per frame, etc.) has +overhead, so try to avoid opening a new one each time. + ### Get A ukm::SourceId
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc index 26e34d9a..a48e9c59 100644 --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc
@@ -258,7 +258,8 @@ const net::IsolationInfo& isolation_info, mojo::PendingRemote<mojom::DevToolsObserver> devtools_observer, const mojom::ClientSecurityState* factory_client_security_state, - NetworkServiceMemoryCache* memory_cache) + NetworkServiceMemoryCache* memory_cache, + const CrossOriginEmbedderPolicy& cross_origin_embedder_policy) : receiver_(this, std::move(loader_receiver)), process_id_(process_id), request_id_(request_id), @@ -279,6 +280,7 @@ isolation_info_(isolation_info), factory_client_security_state_(factory_client_security_state), memory_cache_(memory_cache), + cross_origin_embedder_policy_(cross_origin_embedder_policy), devtools_observer_(std::move(devtools_observer)), // CORS preflight related events are logged in a series of URL_REQUEST // logs. @@ -845,8 +847,9 @@ // Check whether a fresh entry exists in the in-memory cache. absl::optional<std::string> cache_key; if (memory_cache_) { - cache_key = memory_cache_->CanServe( - request_, isolation_info_.network_isolation_key()); + cache_key = memory_cache_->CanServe(request_, + isolation_info_.network_isolation_key(), + cross_origin_embedder_policy_); } if (cache_key.has_value()) {
diff --git a/services/network/cors/cors_url_loader.h b/services/network/cors/cors_url_loader.h index 8d7be465..55d3685f 100644 --- a/services/network/cors/cors_url_loader.h +++ b/services/network/cors/cors_url_loader.h
@@ -15,6 +15,7 @@ #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/network/cors/preflight_controller.h" #include "services/network/public/cpp/cors/cors_error_status.h" +#include "services/network/public/cpp/cross_origin_embedder_policy.h" #include "services/network/public/mojom/client_security_state.mojom-forward.h" #include "services/network/public/mojom/devtools_observer.mojom.h" #include "services/network/public/mojom/fetch_api.mojom.h" @@ -67,7 +68,8 @@ const net::IsolationInfo& isolation_info, mojo::PendingRemote<mojom::DevToolsObserver> devtools_observer, const mojom::ClientSecurityState* factory_client_security_state, - NetworkServiceMemoryCache* memory_cache); + NetworkServiceMemoryCache* memory_cache, + const CrossOriginEmbedderPolicy& cross_origin_embedder_policy); CorsURLLoader(const CorsURLLoader&) = delete; CorsURLLoader& operator=(const CorsURLLoader&) = delete; @@ -274,6 +276,8 @@ // Outlives `this`, or nullptr when the in-memory cache is disabled. const raw_ptr<NetworkServiceMemoryCache> memory_cache_; + const CrossOriginEmbedderPolicy cross_origin_embedder_policy_; + bool has_authorization_covered_by_wildcard_ = false; // Whether the current preflight request is 1) solely sent for PNA, not for
diff --git a/services/network/cors/cors_url_loader_factory.cc b/services/network/cors/cors_url_loader_factory.cc index 8d40fc5..c1fbc63 100644 --- a/services/network/cors/cors_url_loader_factory.cc +++ b/services/network/cors/cors_url_loader_factory.cc
@@ -304,7 +304,7 @@ GetAllowAnyCorsExemptHeaderForBrowser(), context_->cors_non_wildcard_request_headers_support(), isolation_info_, std::move(devtools_observer), client_security_state_.get(), - context_->GetMemoryCache()); + context_->GetMemoryCache(), cross_origin_embedder_policy_); auto* raw_loader = loader.get(); OnCorsURLLoaderCreated(std::move(loader)); raw_loader->Start();
diff --git a/services/network/network_service_memory_cache.cc b/services/network/network_service_memory_cache.cc index 495794b1..0de7034c 100644 --- a/services/network/network_service_memory_cache.cc +++ b/services/network/network_service_memory_cache.cc
@@ -17,6 +17,7 @@ #include "services/network/network_context.h" #include "services/network/network_service_memory_cache_url_loader.h" #include "services/network/network_service_memory_cache_writer.h" +#include "services/network/public/cpp/cross_origin_resource_policy.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/url_loader.h" @@ -172,7 +173,8 @@ absl::optional<std::string> NetworkServiceMemoryCache::CanServe( const ResourceRequest& resource_request, - const net::NetworkIsolationKey& network_isolation_key) { + const net::NetworkIsolationKey& network_isolation_key, + const CrossOriginEmbedderPolicy& cross_origin_embedder_policy) { // TODO(https://crbug.com/1339708): Support automatically assigned network // isolation key for request from browsers. See comments in // CorsURLLoaderFactory::CorsURLLoaderFactory. @@ -192,8 +194,6 @@ return absl::nullopt; } - // TODO(https://crbug.com/1339708): Perform CORP checks. - std::string cache_key = GenerateCacheKeyForResourceRequest( resource_request, network_isolation_key); @@ -202,6 +202,16 @@ return absl::nullopt; const mojom::URLResponseHeadPtr& response = it->second->response_head; + + absl::optional<mojom::BlockedByResponseReason> blocked_reason = + CrossOriginResourcePolicy::IsBlocked( + /*request_url=*/url, /*original_url=*/url, + resource_request.request_initiator, *response, resource_request.mode, + resource_request.destination, cross_origin_embedder_policy, + /*reporter=*/nullptr); + if (blocked_reason.has_value()) + return absl::nullopt; + net::ValidationType validation_type = response->headers->RequiresValidation( response->request_time, response->response_time, GetCurrentTime()); if (validation_type != net::VALIDATION_NONE) {
diff --git a/services/network/network_service_memory_cache.h b/services/network/network_service_memory_cache.h index 8f32596..19b9d720 100644 --- a/services/network/network_service_memory_cache.h +++ b/services/network/network_service_memory_cache.h
@@ -31,6 +31,7 @@ class NetworkServiceMemoryCacheURLLoader; class NetworkServiceMemoryCacheWriter; +struct CrossOriginEmbedderPolicy; struct ResourceRequest; // An in-memory HTTP cache. NetworkContext owns the in-memory cache. @@ -69,7 +70,8 @@ // used synchronously. absl::optional<std::string> CanServe( const ResourceRequest& resource_request, - const net::NetworkIsolationKey& network_isolation_key); + const net::NetworkIsolationKey& network_isolation_key, + const CrossOriginEmbedderPolicy& cross_origin_embedder_policy); // Creates and starts a custom URLLoader that serves a response from the // in-memory cache, instead of creating a network::URLLoader. Must be called
diff --git a/services/network/network_service_memory_cache_unittest.cc b/services/network/network_service_memory_cache_unittest.cc index 1f12bdb..6a53701 100644 --- a/services/network/network_service_memory_cache_unittest.cc +++ b/services/network/network_service_memory_cache_unittest.cc
@@ -24,6 +24,7 @@ #include "services/network/network_service.h" #include "services/network/network_service_memory_cache_writer.h" #include "services/network/public/cpp/cors/origin_access_list.h" +#include "services/network/public/cpp/cross_origin_embedder_policy.h" #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/url_loader.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" @@ -196,13 +197,23 @@ net::SchemefulSite site(request.url); net::NetworkIsolationKey network_isolation_key(/*top_frame_site=*/site, /*frame_site=*/site); - return memory_cache().CanServe(request, network_isolation_key).has_value(); + return CanServeFromMemoryCache(request, network_isolation_key); } bool CanServeFromMemoryCache( const ResourceRequest& request, net::NetworkIsolationKey& network_isolation_key) { - return memory_cache().CanServe(request, network_isolation_key).has_value(); + return CanServeFromMemoryCache(request, network_isolation_key, + CrossOriginEmbedderPolicy()); + } + + bool CanServeFromMemoryCache( + const ResourceRequest& request, + net::NetworkIsolationKey& network_isolation_key, + const CrossOriginEmbedderPolicy& cross_origin_embedder_policy) { + return memory_cache() + .CanServe(request, network_isolation_key, cross_origin_embedder_policy) + .has_value(); } private: @@ -408,6 +419,26 @@ CanServeFromMemoryCache(request, other_site_network_isolation_key)); } +TEST_F(NetworkServiceMemoryCacheTest, CanServe_CorpBlocked) { + ResourceRequest request = CreateRequest("/cacheable"); + StoreResponseToMemoryCache(request); + + request.mode = mojom::RequestMode::kNoCors; + request.request_initiator = + url::Origin::Create(GURL("https://other-origin.test/")); + + net::SchemefulSite site(request.url); + net::NetworkIsolationKey network_isolation_key(/*top_frame_site=*/site, + /*frame_site=*/site); + + CrossOriginEmbedderPolicy cross_origin_embedder_policy; + cross_origin_embedder_policy.value = + mojom::CrossOriginEmbedderPolicyValue::kRequireCorp; + + ASSERT_FALSE(CanServeFromMemoryCache(request, network_isolation_key, + cross_origin_embedder_policy)); +} + TEST_F(NetworkServiceMemoryCacheTest, UpdateStoredCache) { ResourceRequest request = CreateRequest("/cacheable"); @@ -417,8 +448,8 @@ net::NetworkIsolationKey network_isolation_key(/*top_frame_site=*/site, /*frame_site=*/site); - absl::optional<std::string> cache_key = - memory_cache().CanServe(request, network_isolation_key); + absl::optional<std::string> cache_key = memory_cache().CanServe( + request, network_isolation_key, CrossOriginEmbedderPolicy()); ASSERT_TRUE(cache_key.has_value()); mojom::URLResponseHeadPtr response = memory_cache().GetResponseHeadForTesting(*cache_key);
diff --git a/services/network/sct_auditing/sct_auditing_handler_unittest.cc b/services/network/sct_auditing/sct_auditing_handler_unittest.cc index 6a40cd03..c922285 100644 --- a/services/network/sct_auditing/sct_auditing_handler_unittest.cc +++ b/services/network/sct_auditing/sct_auditing_handler_unittest.cc
@@ -221,7 +221,8 @@ } // Tests that if reporting is disabled, reports are not created. -TEST_F(SCTAuditingHandlerTest, DisableReporting) { +// crbug.com/1341847 Disable the test due to flakiness +TEST_F(SCTAuditingHandlerTest, DISABLED_DisableReporting) { // Create a report which would normally trigger a send. const net::HostPortPair host_port_pair("example.com", 443); net::SignedCertificateTimestampAndStatusList sct_list;
diff --git a/styleguide/c++/c++-features.md b/styleguide/c++/c++-features.md index eb739f4..0cc3dcc 100644 --- a/styleguide/c++/c++-features.md +++ b/styleguide/c++/c++-features.md
@@ -1719,6 +1719,39 @@ [discussion thread](https://groups.google.com/a/chromium.org/g/cxx/c/ZspmuJPpv6s/m/wYYTCiRwAAAJ). *** +### FunctionRef <sup>[allowed]</sup> + +```c++ +absl::FunctionRef +``` + +**Description:** Type for holding a non-owning reference to an object of any +invocable type. + +**Documentation:** +[function_ref.h](https://source.chromium.org/chromium/chromium/src/+/main:third_party/abseil-cpp/absl/functional/function_ref.h) + +**Notes:** +*** promo +- Unlike `base::OnceCallback` and `base::RepeatingCallback`, `absl::FunctionRef` + supports capturing lambdas. +- Use when passing an invocable object to a function that synchronously calls + the invocable object, e.g. `ForEachFrame(absl::FunctionRef<void(Frame&)>)`. + This can often result in clearer code than code that is templated to accept + lambdas, e.g. with `template <typename Invocable> void + ForEachFrame(Invocable invocable)`, it is much less obvious what arguments + will be passed to `invocable`. +- For now, `base::OnceCallback` and `base::RepeatingCallback` intentionally + disallow conversions to `absl::FunctionRef`, under the theory that the + callback should be a capturing lambda instead. Attempting to use this + conversion will trigger a `static_assert` requesting additional feedback for + use cases where this conversion would be valuable. +- *Important:* `absl::FunctionRef` must not outlive the function call. Like + `base::StringPiece`, `absl::FunctionRef` is a *non-owning* reference. Using a + `absl::FunctionRef` as a class field is highly suspicious. +- [Discussion thread](https://groups.google.com/a/chromium.org/g/cxx/c/JVN4E4IIYA0/m/V0EVUVLiBwAJ) +*** + ## Abseil Banned Library Features {#absl-blocklist} The following Abseil library features are not allowed in the Chromium codebase. @@ -1893,23 +1926,6 @@ Overlaps with `base/ranges/algorithm.h`. *** -### FunctionRef <sup>[tbd]</sup> - -```c++ -absl::FunctionRef -``` - -**Description:** Type for holding a non-owning reference to an object of any -invocable type. - -**Documentation:** -[function_ref.h](https://source.chromium.org/chromium/chromium/src/+/main:third_party/abseil-cpp/absl/functional/function_ref.h) - -**Notes:** -*** promo -None -*** - ### Random <sup>[tbd]</sup> ```c++
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index a284e8c..8d19e54 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -8331,15 +8331,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8365,7 +8365,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8416,15 +8416,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M104/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M104/out/Release", "--client-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8450,7 +8450,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8841,15 +8841,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8875,7 +8875,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8926,15 +8926,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M104/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8960,7 +8960,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index 18df060..341aa34 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -46508,15 +46508,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46542,7 +46542,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46593,15 +46593,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M104/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M104/out/Release", "--client-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46627,7 +46627,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47018,15 +47018,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47052,7 +47052,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47103,15 +47103,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M104/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47137,7 +47137,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47532,15 +47532,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47566,7 +47566,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47617,15 +47617,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M104/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M104/out/Release", "--client-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47651,7 +47651,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48042,15 +48042,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48076,7 +48076,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48127,15 +48127,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M104/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48161,7 +48161,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48624,15 +48624,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48658,7 +48658,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48709,15 +48709,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M104/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M104/out/Release", "--client-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48743,7 +48743,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49134,15 +49134,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49168,7 +49168,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49219,15 +49219,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M104/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49253,7 +49253,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49716,15 +49716,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49750,7 +49750,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49801,15 +49801,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M104/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M104/out/Release", "--client-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49835,7 +49835,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -50226,15 +50226,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -50260,7 +50260,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.117" + "revision": "version:103.0.5060.118" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -50311,15 +50311,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M104/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=104", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -50345,7 +50345,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M104", - "revision": "version:104.0.5112.35" + "revision": "version:104.0.5112.36" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 99a9983f..d1019984 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5688,21 +5688,21 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -5715,7 +5715,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true, @@ -5853,21 +5853,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -5879,7 +5879,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "args": [ @@ -5999,21 +5999,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -6025,7 +6025,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true,
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 83f0964..d1d66f0 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -92974,21 +92974,21 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -92996,7 +92996,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true, @@ -93109,28 +93109,28 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "args": [ @@ -93230,28 +93230,28 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true, @@ -94589,20 +94589,20 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -94616,7 +94616,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "merge": { @@ -94754,20 +94754,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -94780,7 +94780,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "args": [ @@ -94900,20 +94900,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -94926,7 +94926,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "merge": { @@ -96422,20 +96422,20 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -96449,7 +96449,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "merge": { @@ -96587,20 +96587,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -96613,7 +96613,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "args": [ @@ -96733,20 +96733,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -96759,7 +96759,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "merge": { @@ -97494,20 +97494,20 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -97520,7 +97520,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" } ] },
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index ecdf29d..1998bea 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -20874,21 +20874,21 @@ { "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_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5162.0", + "name": "interactive_ui_tests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -20901,7 +20901,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true, @@ -21039,21 +21039,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -21065,7 +21065,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "args": [ @@ -21185,21 +21185,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5162.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 105.0.5163.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v105.0.5162.0", - "revision": "version:105.0.5162.0" + "location": "lacros_version_skew_tests_v105.0.5163.0", + "revision": "version:105.0.5163.0" } ], "dimension_sets": [ @@ -21211,7 +21211,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 105.0.5162.0" + "variant_id": "Lacros version skew testing ash 105.0.5163.0" }, { "isolate_profile_data": true,
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 4e2f598..0ae7d6e9 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,15 +22,15 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5162.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v105.0.5163.0/test_ash_chrome', ], - 'identifier': 'Lacros version skew testing ash 105.0.5162.0', + 'identifier': 'Lacros version skew testing ash 105.0.5163.0', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v105.0.5162.0', - 'revision': 'version:105.0.5162.0', + 'location': 'lacros_version_skew_tests_v105.0.5163.0', + 'revision': 'version:105.0.5163.0', }, ], }, @@ -529,16 +529,16 @@ }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M104/out/Release', - '--impl-version=104' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=104', ], 'identifier': 'with_impl_from_104', 'swarming': { @@ -546,23 +546,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M104', - 'revision': 'version:104.0.5112.35' + 'revision': 'version:104.0.5112.36', } - ] - } + ], + }, }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M103/out/Release', - '--impl-version=103' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=103', ], 'identifier': 'with_impl_from_103', 'swarming': { @@ -570,10 +570,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.117' + 'revision': 'version:103.0.5060.118', } - ] - } + ], + }, }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [ @@ -673,16 +673,16 @@ }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M104/out/Release', - '--impl-version=104' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=104', ], 'identifier': 'with_impl_from_104', 'swarming': { @@ -690,23 +690,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M104', - 'revision': 'version:104.0.5112.35' + 'revision': 'version:104.0.5112.36', } - ] - } + ], + }, }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M103/out/Release', - '--impl-version=103' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=103', ], 'identifier': 'with_impl_from_103', 'swarming': { @@ -714,10 +714,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.117' + 'revision': 'version:103.0.5060.118', } - ] - } + ], + }, }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [ @@ -817,16 +817,16 @@ }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M104/out/Release', '--implementation-outdir', '.', '--test-expectations', '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', - '--client-outdir', - '../../weblayer_instrumentation_test_M104/out/Release', - '--client-version=104' + '--client-version=104', ], 'identifier': 'with_client_from_104', 'swarming': { @@ -834,23 +834,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M104', - 'revision': 'version:104.0.5112.35' + 'revision': 'version:104.0.5112.36', } - ] - } + ], + }, }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M103/out/Release', '--implementation-outdir', '.', '--test-expectations', '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', - '--client-outdir', - '../../weblayer_instrumentation_test_M103/out/Release', - '--client-version=103' + '--client-version=103', ], 'identifier': 'with_client_from_103', 'swarming': { @@ -858,10 +858,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.117' + 'revision': 'version:103.0.5060.118', } - ] - } + ], + }, }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 003560e..79b722d 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -3104,7 +3104,10 @@ ], "experiments": [ { - "name": "Preperiod_Enabled" + "name": "Enabled", + "enable_features": [ + "DeferredShaping" + ] } ] }
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 5bde2b4e..0fdc844 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
@@ -108,18 +108,12 @@ show_reason_bfcache_restore)); } -void ContentToVisibleTimeReporter::TabMeasurementWasInterrupted( - TabSwitchResult result) { - DCHECK_NE(result, TabSwitchResult::kSuccess); - if (result == TabSwitchResult::kUnhandled && - !IsTabSwitchMetric2FeatureEnabled()) { - // Unhandled was not reported for the legacy metric. - return; - } +void ContentToVisibleTimeReporter::TabWasHidden() { if (tab_switch_start_state_ && (!IsTabSwitchMetric2FeatureEnabled() || tab_switch_start_state_->show_reason_tab_switching)) { - RecordHistogramsAndTraceEvents(result, true /* show_reason_tab_switching */, + RecordHistogramsAndTraceEvents(TabSwitchResult::kIncomplete, + true /* show_reason_tab_switching */, false /* show_reason_bfcache_restore */, gfx::PresentationFeedback::Failure()); }
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 fb4333d..0d9fcb0 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
@@ -34,9 +34,8 @@ // TabWasShown called twice for a frame without TabWasHidden between. Treat // the first TabWasShown as an incomplete tab switch. kMissedTabHide = 3, - // The tab switch couldn't be measured because of an unhandled path in the - // compositor. (For example, on Mac the BrowserCompositorMac that owns a - // DelegatedFrameHost entered the UseParentCompositor state.) + // DEPRECATED: The tab switch couldn't be measured because of an unhandled + // path in the compositor. kUnhandled = 4, kMaxValue = kUnhandled, }; @@ -62,15 +61,7 @@ // Indicates that the tab associated with this recorder was hidden. If no // frame was presented since the last tab switch, failure is reported to UMA. - void TabWasHidden() { - TabMeasurementWasInterrupted(TabSwitchResult::kIncomplete); - } - - // Indicates that the tab switch measurement associated with this recorder was - // interrupted before a frame was presented. `result` is reported to UMA in - // TabSwitchResult, and the time since the measurement started is reported in - // IncompleteSwitchDuration. Does nothing if no measurement is in progress. - void TabMeasurementWasInterrupted(TabSwitchResult result); + void TabWasHidden(); private: bool IsTabSwitchMetric2FeatureEnabled();
diff --git a/third_party/blink/renderer/core/frame/browser_controls_test.cc b/third_party/blink/renderer/core/frame/browser_controls_test.cc index eb2843f..c792a03 100644 --- a/third_party/blink/renderer/core/frame/browser_controls_test.cc +++ b/third_party/blink/renderer/core/frame/browser_controls_test.cc
@@ -57,9 +57,18 @@ namespace blink { -// These tests cover browser controls scrolling on main-thread. -// The animation for completing a partial show/hide is done in compositor so -// it is not covered here. +namespace { + +// From browser_controls_offset_manager.cc. +const int64_t kShowHideMaxDurationMs = 200; + +}; // namespace + +// These tests cover interactions between scrolling and browser controls, with a +// focus on Blink-observable side effects. Scrolling happens in the compositor, +// but browser controls state is propagated into blink::BrowserControls through +// LayerTreeHost::ApplyCompositorChanges. Additional tests relating to cc state +// can be found under LayerTreeHostImplBrowserControlsTest. class BrowserControlsTest : public testing::Test, public ScopedMockOverlayScrollbars { public: @@ -89,7 +98,7 @@ helper_.InitializeAndLoad(base_url_ + page_name, nullptr, nullptr, &ConfigureSettings); - GetWebView()->MainFrameViewWidget()->Resize(gfx::Size(400, 400)); + helper_.Resize(gfx::Size(400, 400)); return GetWebView(); } @@ -109,9 +118,9 @@ WebString::FromUTF8(file_name)); } - WebCoalescedInputEvent GenerateEvent(WebInputEvent::Type type, - int delta_x = 0, - int delta_y = 0) { + WebGestureEvent GenerateEvent(WebInputEvent::Type type, + int delta_x = 0, + int delta_y = 0) { WebGestureEvent event(type, WebInputEvent::kNoModifiers, WebInputEvent::GetStaticTimeStampForTests(), WebGestureDevice::kTouchscreen); @@ -123,16 +132,20 @@ event.data.scroll_begin.delta_x_hint = delta_x; event.data.scroll_begin.delta_y_hint = delta_y; } - return WebCoalescedInputEvent(event, ui::LatencyInfo()); + return event; } void VerticalScroll(float delta_y) { - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, delta_y)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, delta_y)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + + // Runs LayerTreeHost::ApplyCompositorChanges, which sends scroll deltas etc + // back to Blink. + CompositeForTest(); } Element* GetElementById(const WebString& id) { @@ -145,16 +158,35 @@ VisualViewport& GetVisualViewport() const { return helper_.GetWebView()->GetPage()->GetVisualViewport(); } + frame_test_helpers::TestWebFrameWidget* GetWebFrameWidget() const { + return helper_.GetMainFrameWidget(); + } void UpdateAllLifecyclePhases() { GetWebView()->MainFrameViewWidget()->UpdateAllLifecyclePhases( DocumentUpdateReason::kTest); } + void CompositeForTest(base::TimeDelta animation_delay = base::TimeDelta()) { + accumulated_animation_delay_ += animation_delay; + helper_.GetLayerTreeHost()->CompositeForTest( + base::TimeTicks::Now() + accumulated_animation_delay_, false); + } + + void FinishAnimation() { + // First tick (through LTHI::Animate), to initialize + // BrowserControlsOffsetManager::Animation::start_time_. + CompositeForTest(); + + // Second tick to set final value. + CompositeForTest(base::Milliseconds(kShowHideMaxDurationMs)); + } + private: ScopedTestingPlatformSupport<TestingPlatformSupport> platform_; std::string base_url_; frame_test_helpers::WebViewHelper helper_; + base::TimeDelta accumulated_animation_delay_; }; class BrowserControlsSimTest : public SimTest { @@ -178,9 +210,9 @@ WebView().ResizeWithBrowserControls(gfx::Size(412, 604), 56.f, 50.f, true); } - WebCoalescedInputEvent GenerateEvent(WebInputEvent::Type type, - int delta_x = 0, - int delta_y = 0) { + WebGestureEvent GenerateEvent(WebInputEvent::Type type, + int delta_x = 0, + int delta_y = 0) { WebGestureEvent event(type, WebInputEvent::kNoModifiers, WebInputEvent::GetStaticTimeStampForTests(), WebGestureDevice::kTouchscreen); @@ -192,16 +224,20 @@ event.data.scroll_begin.delta_x_hint = delta_x; event.data.scroll_begin.delta_y_hint = delta_y; } - return WebCoalescedInputEvent(event, ui::LatencyInfo()); + return event; } void VerticalScroll(float delta_y) { - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, delta_y)); - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, delta_y)); - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + + // Runs LayerTreeHost::ApplyCompositorChanges, which sends scroll deltas etc + // back to Blink. + Compositor().BeginFrame(); } }; @@ -234,14 +270,16 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 50.f, 0, true); web_view->GetBrowserControls().SetShownRatio(1, 1); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); // Browser controls should be scrolled partially and page should not scroll. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -25.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(25.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 0), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -249,15 +287,17 @@ // Browser controls should consume 25px and become hidden. Excess scroll // should be // consumed by the page. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 15), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Only page should consume scroll - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -20.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 35), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -270,27 +310,30 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 0, 50.f, true); web_view->GetBrowserControls().SetShownRatio(0.0, 1); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); // Bottom controls and page content should both scroll and there should be // no content offset. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -25.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_FLOAT_EQ(0.5f, web_view->GetBrowserControls().BottomShownRatio()); EXPECT_EQ(ScrollOffset(0, 25.f), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Browser controls should become completely hidden. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().BottomShownRatio()); EXPECT_EQ(ScrollOffset(0, 65.f), @@ -304,19 +347,22 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 50.f, 0, false); web_view->GetBrowserControls().SetShownRatio(0, 0); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 10.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(10.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 0), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 50.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 0), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -329,27 +375,31 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 0, 50.f, false); web_view->GetBrowserControls().SetShownRatio(0, 0); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); // Allow some space to scroll up. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -50.f)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 25.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.5f, web_view->GetBrowserControls().BottomShownRatio()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + FinishAnimation(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_FLOAT_EQ(1.f, web_view->GetBrowserControls().BottomShownRatio()); EXPECT_EQ(ScrollOffset(0, 25), @@ -366,44 +416,50 @@ web_view->GetBrowserControls().SetShownRatio(1, 1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset( ScrollOffset(0, 100), mojom::blink::ScrollType::kProgrammatic); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); // Scroll down to completely hide browser controls. Excess deltaY (100px) // should be consumed by the page. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -150.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 200), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Scroll up and ensure the browser controls does not move until we recover // 100px previously scrolled. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 160), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 60.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 100), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Now we have hit the threshold so further scroll up should be consumed by // browser controls. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 30.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(30.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 100), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Once top control is fully shown then page should consume any excess scroll. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 70.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -419,28 +475,32 @@ web_view->GetBrowserControls().SetShownRatio(0, 0); GetFrame()->View()->GetScrollableArea()->SetScrollOffset( ScrollOffset(0, 100), mojom::blink::ScrollType::kProgrammatic); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); // Scroll up to completely show browser controls. Excess deltaY (50px) should // be consumed by the page. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 100.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Scroll down and ensure only browser controls is scrolled - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(10.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -60.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 100), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -453,20 +513,23 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 50.f, 0, true); web_view->GetBrowserControls().SetShownRatio(1, 1); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); // Browser controls should not consume horizontal scroll. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, -110.f, -100.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(110, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, -40.f, 0)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(150, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -482,47 +545,53 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 50.f, 0, true); web_view->GetBrowserControls().SetShownRatio(1, 1); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); // Browser controls should be scrolled partially and page should not scroll. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -20.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(30.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 0), GetFrame()->View()->GetScrollableArea()->GetScrollOffset()); // Browser controls should consume 30px and become hidden. Excess scroll // should be consumed by the page at 2x scale. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -70.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 20), GetFrame()->View()->GetScrollableArea()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); // Change page scale and test. web_view->SetPageScaleFactor(0.5); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 20), GetFrame()->View()->GetScrollableArea()->GetScrollOffset()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 50.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 20), GetFrame()->View()->GetScrollableArea()->GetScrollOffset()); // At 0.5x scale scrolling 10px should take us to the top of the page. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 10.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 0), GetFrame()->View()->GetScrollableArea()->GetScrollOffset()); @@ -561,6 +630,7 @@ web_view->GetBrowserControls().SetShownRatio(1, 1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset( ScrollOffset(0, 50), mojom::blink::ScrollType::kProgrammatic); + CompositeForTest(); // Test scroll down // A full scroll down should scroll the overflow div first but browser @@ -572,19 +642,21 @@ // Now scroll down should start hiding browser controls but main frame // should not scroll. - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, -40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(10.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Continued scroll down should scroll down the main frame - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 80), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -598,19 +670,21 @@ // Now scroll up should start showing browser controls but main frame // should not scroll. - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, 40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(40.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 80), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Continued scroll up scroll up the main frame - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -624,6 +698,7 @@ web_view->GetBrowserControls().SetShownRatio(1, 1); GetFrame()->View()->GetScrollableArea()->SetScrollOffset( ScrollOffset(0, 50), mojom::blink::ScrollType::kProgrammatic); + CompositeForTest(); // Test scroll down // A full scroll down should scroll the iframe first but browser controls and @@ -635,19 +710,21 @@ // Now scroll down should start hiding browser controls but main frame // should not scroll. - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, -40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(10.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Continued scroll down should scroll down the main frame - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 80), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -661,19 +738,21 @@ // Now scroll up should start showing browser controls but main frame // should not scroll. - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, 40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 40.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(40.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 80), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); // Continued scroll up scroll up the main frame - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 40.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); EXPECT_FLOAT_EQ(50.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(ScrollOffset(0, 50), GetFrame()->View()->LayoutViewport()->GetScrollOffset()); @@ -693,6 +772,7 @@ web_view->ResizeWithBrowserControls(web_view->MainFrameViewWidget()->Size(), 40.f, 0, false); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); + CompositeForTest(); // Scroll up to show browser controls. VerticalScroll(40.f); @@ -713,6 +793,7 @@ web_view->GetBrowserControls().SetShownRatio(0, 0); GetFrame()->View()->GetScrollableArea()->SetScrollOffset( ScrollOffset(0, 100), mojom::blink::ScrollType::kProgrammatic); + CompositeForTest(); EXPECT_FLOAT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); @@ -743,34 +824,40 @@ // Fully scroll frameview but visualviewport remains scrollable web_view->MainFrameImpl()->SetScrollOffset(gfx::PointF(0, 10000)); GetVisualViewport().SetLocation(gfx::PointF(0, 0)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + CompositeForTest(); + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, -10.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -10.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(40, web_view->GetBrowserControls().ContentOffset()); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + FinishAnimation(); EXPECT_FLOAT_EQ(50, web_view->GetBrowserControls().ContentOffset()); web_view->GetBrowserControls().SetShownRatio(1, 1); // Fully scroll visual veiwport but frameview remains scrollable web_view->MainFrameImpl()->SetScrollOffset(gfx::PointF(0, 0)); GetVisualViewport().SetLocation(gfx::PointF(0, 10000)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, -20.f)); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -20.f)); + CompositeForTest(); EXPECT_FLOAT_EQ(30, web_view->GetBrowserControls().ContentOffset()); - GetWebView()->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + FinishAnimation(); EXPECT_FLOAT_EQ(50, web_view->GetBrowserControls().ContentOffset()); web_view->GetBrowserControls().SetShownRatio(1, 1); // Fully scroll both frameview and visual viewport web_view->MainFrameImpl()->SetScrollOffset(gfx::PointF(0, 10000)); GetVisualViewport().SetLocation(gfx::PointF(0, 10000)); + CompositeForTest(); VerticalScroll(-30.f); // Browser controls should not move because neither frameview nor visual // viewport @@ -850,14 +937,18 @@ GetDocument().View()->LayoutViewport()->GetScrollOffset()); // Setting permitted state to "both" should not change an in-flight offset. - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin, 0, 20.f)); - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 20.f)); + Compositor().BeginFrame(); EXPECT_FLOAT_EQ(20, WebView().GetBrowserControls().ContentOffset()); - WebView().MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget().DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + Compositor().BeginFrame(); + Compositor().BeginFrame(kShowHideMaxDurationMs / 1000.0); + EXPECT_FLOAT_EQ(0, WebView().GetBrowserControls().ContentOffset()); Compositor().LayerTreeHost()->UpdateBrowserControlsState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kBoth, false); @@ -886,7 +977,7 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); ASSERT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); @@ -1050,7 +1141,7 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); ASSERT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); @@ -1113,7 +1204,7 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); ASSERT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); @@ -1181,7 +1272,7 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); ASSERT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); @@ -1256,9 +1347,9 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); - ASSERT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); + EXPECT_FLOAT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); // 'vh' units should be based on the viewport when the browser controls are // hidden. However, the viewport height will be limited by the min-height @@ -1279,7 +1370,7 @@ {100, 20, 0, 0, false, false}); UpdateAllLifecyclePhases(); - ASSERT_EQ(20.f, web_view->GetBrowserControls().ContentOffset()); + EXPECT_FLOAT_EQ(20.f, web_view->GetBrowserControls().ContentOffset()); // vh units should be static with respect to the browser controls so neither // <div> should change size are a result of the browser controls hiding. @@ -1303,7 +1394,7 @@ web_view->GetBrowserControls().UpdateConstraintsAndState( cc::BrowserControlsState::kBoth, cc::BrowserControlsState::kShown); web_view->GetBrowserControls().SetShownRatio(1, 1); - UpdateAllLifecyclePhases(); + CompositeForTest(); EXPECT_FLOAT_EQ(100.f, web_view->GetBrowserControls().ContentOffset()); @@ -1385,7 +1476,7 @@ // so we're testing that the viewport anchoring logic is working to keep the // view unchanged. TEST_F(BrowserControlsTest, - MAYBE(AnchorViewportDuringbrowserControlsAdjustment)) { + MAYBE(AnchorViewportDuringBrowserControlsAdjustment)) { int content_height = 1016; int layout_viewport_height = 500; int visual_viewport_height = 500; @@ -1418,11 +1509,13 @@ // Zoom in to 2X and fully scroll both viewports. web_view->SetPageScaleFactor(page_scale); + CompositeForTest(); { - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -10000)); + CompositeForTest(); ASSERT_EQ(0.f, web_view->GetBrowserControls().ContentOffset()); @@ -1432,7 +1525,7 @@ view->LayoutViewport()->GetScrollOffset().y()); EXPECT_EQ(expected_root_offset, root_viewport->GetScrollOffset().y()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); } @@ -1454,10 +1547,11 @@ // account for this and keep the visual viewport at the same location relative // to the document (i.e. the user shouldn't see a movement). { - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 80)); + CompositeForTest(); GetVisualViewport().ClampToBoundaries(); view->LayoutViewport()->SetScrollOffset( @@ -1467,7 +1561,7 @@ ASSERT_EQ(80.f, web_view->GetBrowserControls().ContentOffset()); EXPECT_EQ(expected_root_offset, root_viewport->GetScrollOffset().y()); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); } } @@ -1659,11 +1753,13 @@ web_view->GetBrowserControls().SetShownRatio(1.f, 1.f); web_view->GetBrowserControls().SetParams( {top_height, 20, bottom_height, 0, false, true}); + CompositeForTest(); // Scroll down to hide the controls. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -100)); + CompositeForTest(); // The bottom controls should be completely hidden while the top controls are // at the minimum height. @@ -1672,8 +1768,9 @@ EXPECT_EQ(20, web_view->GetBrowserControls().ContentOffset()); // Scrolling back up should bring the browser controls shown ratios back to 1. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 100)); + CompositeForTest(); EXPECT_EQ(1.f, web_view->GetBrowserControls().BottomShownRatio()); EXPECT_EQ(1.f, web_view->GetBrowserControls().TopShownRatio()); EXPECT_EQ(top_height, web_view->GetBrowserControls().ContentOffset()); @@ -1689,37 +1786,41 @@ web_view->GetBrowserControls().SetShownRatio(1.f, 1.f); web_view->GetBrowserControls().SetParams( {top_height, 20, bottom_height, 10, false, true}); + CompositeForTest(); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -100)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); + CompositeForTest(); // Browser controls don't scroll off completely, and stop scrolling at the min // height. - EXPECT_EQ(20, web_view->GetBrowserControls().ContentOffset()); - EXPECT_EQ(10, web_view->GetBrowserControls().BottomContentOffset()); + EXPECT_FLOAT_EQ(20, web_view->GetBrowserControls().ContentOffset()); + EXPECT_FLOAT_EQ(10, web_view->GetBrowserControls().BottomContentOffset()); // Ending the scroll then scrolling again shouldn't make any difference. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, -50)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollEnd)); - EXPECT_EQ(20, web_view->GetBrowserControls().ContentOffset()); - EXPECT_EQ(10, web_view->GetBrowserControls().BottomContentOffset()); + CompositeForTest(); + EXPECT_FLOAT_EQ(20, web_view->GetBrowserControls().ContentOffset()); + EXPECT_FLOAT_EQ(10, web_view->GetBrowserControls().BottomContentOffset()); // Finally, scroll back up to show the controls completely. - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollBegin)); - web_view->MainFrameViewWidget()->HandleInputEvent( + GetWebFrameWidget()->DispatchThroughCcInputHandler( GenerateEvent(WebInputEvent::Type::kGestureScrollUpdate, 0, 100)); - EXPECT_EQ(top_height, web_view->GetBrowserControls().ContentOffset()); - EXPECT_EQ(bottom_height, - web_view->GetBrowserControls().BottomContentOffset()); + CompositeForTest(); + EXPECT_FLOAT_EQ(top_height, web_view->GetBrowserControls().ContentOffset()); + EXPECT_FLOAT_EQ(bottom_height, + web_view->GetBrowserControls().BottomContentOffset()); } #undef MAYBE
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 c35cc11..4c887ca 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -47,6 +47,7 @@ #include "cc/tiles/frame_viewer_instrumentation.h" #include "cc/trees/layer_tree_host.h" #include "components/paint_preview/common/paint_preview_tracker.h" +#include "third_party/abseil-cpp/absl/functional/function_ref.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h" #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h" @@ -343,8 +344,8 @@ visitor->Trace(fullscreen_video_elements_); } -template <typename Function> -void LocalFrameView::ForAllChildViewsAndPlugins(const Function& function) { +void LocalFrameView::ForAllChildViewsAndPlugins( + absl::FunctionRef<void(EmbeddedContentView&)> function) { for (Frame* child = frame_->Tree().FirstChild(); child; child = child->Tree().NextSibling()) { if (child->View()) @@ -373,8 +374,8 @@ } } -template <typename Function> -void LocalFrameView::ForAllChildLocalFrameViews(const Function& function) { +void LocalFrameView::ForAllChildLocalFrameViews( + absl::FunctionRef<void(LocalFrameView&)> function) { for (Frame* child = frame_->Tree().FirstChild(); child; child = child->Tree().NextSibling()) { auto* child_local_frame = DynamicTo<LocalFrame>(child); @@ -385,12 +386,11 @@ } } -// Call function for each non-throttled frame view in pre-order (by default) or -// post-order. If this logic is updated, consider updating -// |ForAllThrottledLocalFrameViews| too. -template <typename Function> -void LocalFrameView::ForAllNonThrottledLocalFrameViews(const Function& function, - TraversalOrder order) { +// Note: if this logic is updated, `ForAllThrottledLocalFrameViews()` may +// need to be updated as well. +void LocalFrameView::ForAllNonThrottledLocalFrameViews( + absl::FunctionRef<void(LocalFrameView&)> function, + TraversalOrder order) { if (ShouldThrottleRendering()) return; @@ -405,10 +405,10 @@ function(*this); } -// Call function for each throttled frame view in pre-order. If this logic is -// updated, consider updating |ForAllNonThrottledLocalFrameViews| too. -template <typename Function> -void LocalFrameView::ForAllThrottledLocalFrameViews(const Function& function) { +// Note: if this logic is updated, `ForAllNonThrottledLocalFrameViews()` may +// need to be updated as well. +void LocalFrameView::ForAllThrottledLocalFrameViews( + absl::FunctionRef<void(LocalFrameView&)> function) { if (ShouldThrottleRendering()) function(*this); @@ -417,15 +417,8 @@ }); } -void LocalFrameView::ForAllThrottledLocalFrameViewsForTesting( - base::RepeatingCallback<void(LocalFrameView&)> callback) { - AllowThrottlingScope allow_throttling(*this); - ForAllThrottledLocalFrameViews( - [&callback](LocalFrameView& view) { callback.Run(view); }); -} - -template <typename Function> -void LocalFrameView::ForAllRemoteFrameViews(const Function& function) { +void LocalFrameView::ForAllRemoteFrameViews( + absl::FunctionRef<void(RemoteFrameView&)> function) { for (Frame* child = frame_->Tree().FirstChild(); child; child = child->Tree().NextSibling()) { if (child->IsLocalFrame()) { @@ -865,6 +858,10 @@ default_allow_deferred_shaping_ && RuntimeEnabledFeatures::DeferredShapingEnabled() && !frame_->PagePopupOwner() && + // Avoid a DCEHCK failure in |NavigatingExtensionPopupInteractiveTest. + // PageInOtherExtension_Get| on linux-lacros-rel. + // TODO(tkent): Investigate the failure. + !document->Url().Protocol().StartsWith("chrome-error") && !FirstMeaningfulPaintDetector::From(*frame_->GetDocument()) .SeenFirstMeaningfulPaint(); base::AutoReset<bool> deferred_shaping(
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 ffda6ea..97c52d6 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.h +++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -33,6 +33,7 @@ #include "base/dcheck_is_on.h" #include "base/gtest_prod_util.h" #include "base/time/time.h" +#include "third_party/abseil-cpp/absl/functional/function_ref.h" #include "third_party/blink/public/common/metrics/document_update_reason.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h" #include "third_party/blink/public/mojom/frame/viewport_intersection_state.mojom-blink-forward.h" @@ -109,6 +110,7 @@ class PaintLayer; class PaintLayerScrollableArea; class PaintTimingDetector; +class RemoteFrameView; class RootFrameViewport; class ScrollableArea; class Scrollbar; @@ -825,7 +827,7 @@ // throttling (e.g., during BeginMainFrame). If a script needs to run inside // this scope, DisallowThrottlingScope should be used to let the script // perform a synchronous layout if necessary. - class AllowThrottlingScope { + class CORE_EXPORT AllowThrottlingScope { STACK_ALLOCATED(); public: @@ -963,25 +965,17 @@ void CollectAnnotatedRegions(LayoutObject&, Vector<AnnotatedRegionValue>&) const; - template <typename Function> - void ForAllChildViewsAndPlugins(const Function&); - - template <typename Function> - void ForAllChildLocalFrameViews(const Function&); + void ForAllChildViewsAndPlugins( + absl::FunctionRef<void(EmbeddedContentView&)>); + void ForAllChildLocalFrameViews(absl::FunctionRef<void(LocalFrameView&)>); enum TraversalOrder { kPreOrder, kPostOrder }; - template <typename Function> - void ForAllNonThrottledLocalFrameViews(const Function&, - TraversalOrder = kPreOrder); + void ForAllNonThrottledLocalFrameViews( + absl::FunctionRef<void(LocalFrameView&)>, + TraversalOrder = kPreOrder); + void ForAllThrottledLocalFrameViews(absl::FunctionRef<void(LocalFrameView&)>); - template <typename Function> - void ForAllThrottledLocalFrameViews(const Function&); - - void ForAllThrottledLocalFrameViewsForTesting( - base::RepeatingCallback<void(LocalFrameView&)>); - - template <typename Function> - void ForAllRemoteFrameViews(const Function&); + void ForAllRemoteFrameViews(absl::FunctionRef<void(RemoteFrameView&)>); bool UpdateViewportIntersectionsForSubtree( unsigned parent_flags,
diff --git a/third_party/blink/renderer/core/resize_observer/resize_observation.cc b/third_party/blink/renderer/core/resize_observer/resize_observation.cc index 2786608..65ebb930 100644 --- a/third_party/blink/renderer/core/resize_observer/resize_observation.cc +++ b/third_party/blink/renderer/core/resize_observer/resize_observation.cc
@@ -3,7 +3,9 @@ // found in the LICENSE file. #include "third_party/blink/renderer/core/resize_observer/resize_observation.h" + #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h" +#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h" #include "third_party/blink/renderer/core/layout/adjust_for_absolute_zoom.h" #include "third_party/blink/renderer/core/layout/layout_box.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer.h" @@ -43,9 +45,14 @@ observation_size_ = observation_size; } +// https://drafts.csswg.org/resize-observer/#calculate-depth-for-node +// 1. Let p be the parent-traversal path from node to a root Element of this +// element’s flattened DOM tree. +// 2. Return number of nodes in p. size_t ResizeObservation::TargetDepth() { unsigned depth = 0; - for (Element* parent = target_; parent; parent = parent->parentElement()) + for (Element* parent = target_; parent; + parent = FlatTreeTraversal::ParentElement(*parent)) ++depth; return depth; }
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 44b6aa0..8d20f3d0 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
@@ -393,11 +393,10 @@ // Main frame is not throttled. EXPECT_FALSE(GetDocument().View()->ShouldThrottleRenderingForTest()); + LocalFrameView::AllowThrottlingScope allow_throttling(*GetDocument().View()); unsigned throttled_count = 0; - auto throttled_callback = base::BindLambdaForTesting( + GetDocument().View()->ForAllThrottledLocalFrameViews( [&throttled_count](LocalFrameView&) { throttled_count++; }); - GetDocument().View()->ForAllThrottledLocalFrameViewsForTesting( - throttled_callback); EXPECT_EQ(1u, throttled_count); }
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock.cc index 497fc704..bb4515e58 100644 --- a/third_party/blink/renderer/modules/wake_lock/wake_lock.cc +++ b/third_party/blink/renderer/modules/wake_lock/wake_lock.cc
@@ -251,7 +251,7 @@ } void WakeLock::Trace(Visitor* visitor) const { - for (const WakeLockManager* manager : managers_) + for (const Member<WakeLockManager>& manager : managers_) visitor->Trace(manager); visitor->Trace(permission_service_); Supplement<NavigatorBase>::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc index cfed8b2..f930f6d 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -221,11 +221,6 @@ case AutoplayPolicy::Type::kUserGestureRequired: // kUserGestureRequire policy only applies to cross-origin iframes for Web // Audio. - // TODO(crbug.com/1318055): With MPArch there may be multiple main frames - // so we should use IsCrossOriginToOutermostMainFrame when we intend to - // check if any embedded frame (eg, iframe or fenced frame) is - // cross-origin with respect to the outermost main frame. Follow up to - // confirm correctness. if (document.GetFrame() && document.GetFrame()->IsCrossOriginToOutermostMainFrame()) { autoplay_status_ = AutoplayStatus::kFailed; @@ -667,10 +662,6 @@ // Record autoplay_status_ value. base::UmaHistogramEnumeration("WebAudio.Autoplay", autoplay_status_.value()); - // TODO(crbug.com/1318055): With MPArch there may be multiple main frames so - // we should use IsCrossOriginToOutermostMainFrame when we intend to check if - // any embedded frame (eg, iframe or fenced frame) is cross-origin with - // respect to the outermost main frame. Follow up to confirm correctness. if (GetDocument()->GetFrame() && GetDocument()->GetFrame()->IsCrossOriginToOutermostMainFrame()) { base::UmaHistogramEnumeration("WebAudio.Autoplay.CrossOrigin",
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 7fd3cafd8..bfa833c3 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
@@ -10,7 +10,6 @@ #include "base/callback.h" #include "base/containers/queue.h" #include "base/feature_list.h" -#include "base/metrics/histogram_macros.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/web_url_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/web_url_loader.cc index daf2621..5ee674fe 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
@@ -18,7 +18,6 @@ #include "base/command_line.h" #include "base/feature_list.h" #include "base/files/file_path.h" -#include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "base/sequence_checker.h" #include "base/strings/string_number_conversions.h"
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index 02e7778..e66a68c0 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -37,9 +37,22 @@ 'gfx::ICCProfile', 'gfx::RadToDeg', - # absl optional constructs. - 'absl::optional', + # absl + 'absl::FunctionRef', + 'absl::MakeInt128', + 'absl::MakeUint128', + 'absl::get', + 'absl::get_if', + 'absl::holds_alternative', 'absl::in_place', + 'absl::int128', + 'absl::make_optional', + 'absl::nullopt', + 'absl::nullopt_t', + 'absl::optional', + 'absl::uint128', + 'absl::variant', + 'absl::visit', # //base constructs that are allowed everywhere 'base::AdoptRef', @@ -76,6 +89,7 @@ 'base::Nanoseconds', 'base::OptionalFromPtr', 'base::OptionalOrNullptr', + 'base::PassKey', 'base::PlatformThread', 'base::PlatformThreadId', 'base::RefCountedData', @@ -112,17 +126,12 @@ 'base::WritableSharedMemoryMapping', 'base::as_bytes', 'base::bit_cast', - 'absl::in_place', - 'absl::make_optional', 'base::make_span', - 'absl::nullopt', - 'absl::nullopt_t', 'base::ranges::.+', 'base::sequence_manager::TaskTimeObserver', 'base::span', 'logging::GetVlogLevel', 'logging::SetLogItems', - 'base::PassKey', # //base/allocator/partition_allocator/partition_alloc_constants.h 'partition_alloc::internal::kAlignment', @@ -681,19 +690,6 @@ 'base::mac::(CFToNSCast|NSToCFCast)', 'base::mac::Is(AtMost|AtLeast)?OS.+', 'base::(scoped_nsobject|ScopedCFTypeRef)', - - # absl::variant and getters: - 'absl::get', - 'absl::get_if', - 'absl::holds_alternative', - 'absl::variant', - 'absl::visit', - - # 128-bit absl types - 'absl::MakeInt128', - 'absl::MakeUint128', - 'absl::int128', - 'absl::uint128', ], 'disallowed': [ ('base::Bind(|Once|Repeating)',
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 43a4832..a59307d 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -3365,6 +3365,9 @@ crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/shadow-dom/shadow-style-invalidation-vw-units.html [ Failure ] +crbug.com/626703 virtual/offsetparent-old-behavior/external/wpt/shadow-dom/shadow-style-invalidation-vw-units.html [ Failure ] +crbug.com/626703 [ Mac10.15 ] virtual/third-party-storage-partitioning/external/wpt/IndexedDB/idb-partitioned-persistence.tentative.sub.html [ Timeout ] crbug.com/626703 external/wpt/css/css-color/currentcolor-003.html [ Failure ] crbug.com/626703 [ Mac11 ] virtual/document-transition/wpt_internal/document-transition/commit-timeout-crash.html [ Timeout ] crbug.com/626703 [ Win11 ] virtual/conversions-debug-mode/wpt_internal/attribution-reporting/source-registration.sub.https.html?method=a [ Timeout ] @@ -4813,10 +4816,7 @@ # Tests using testRunner.useUnfortunateSynchronousResizeMode occasionally timeout, # but the test coverage is still good. -crbug.com/919789 fast/dom/viewport/resize-event-fired-window-resized.html [ Pass Timeout ] crbug.com/919789 fast/dom/Window/window-resize-contents.html [ Pass Timeout ] -crbug.com/919789 [ Linux ] paint/invalidation/resize-iframe-text.html [ Pass Timeout ] -crbug.com/919789 paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html [ Pass Timeout ] crbug.com/1021627 fast/dom/rtl-scroll-to-leftmost-and-resize.html [ Failure Pass Timeout ] crbug.com/1130876 fast/dynamic/window-resize-scrollbars-test.html [ Failure Pass ] @@ -7160,3 +7160,6 @@ # Sheriff 2022-07-05 crbug.com/1321217 [ Mac11-arm64 ] http/tests/devtools/layers/layer-canvas-log.js [ Failure Pass ] crbug.com/1342050 [ Mac10.15 ] virtual/prerender/wpt_internal/prerender/activate-from-iframe.html [ Failure Pass ] +crbug.com/1340763 external/wpt/pointerevents/pointerevent_capture_mouse.html [ Failure Pass ] +crbug.com/1341090 external/wpt/webmessaging/with-ports/021.html [ Failure Pass ] +crbug.com/1341090 external/wpt/webmessaging/without-ports/021.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/Version b/third_party/blink/web_tests/external/Version index f61d201..a4e0023a 100644 --- a/third_party/blink/web_tests/external/Version +++ b/third_party/blink/web_tests/external/Version
@@ -1 +1 @@ -Version: 95d4bd97e123a54e8c7171b639d3e4fab89e68be +Version: 4b5034d8896742de5e6881caf581406264dbdc78
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 91ddd71..cc04ce0 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -242504,6 +242504,19 @@ {} ] ], + "shadow-style-invalidation-vw-units.html": [ + "98c69e19fe9dcb95c7df0895dbe0becf2a54b992", + [ + null, + [ + [ + "/shadow-dom/imperative-slot-layout-invalidation-001-ref.html", + "==" + ] + ], + {} + ] + ], "untriaged": { "shadow-trees": { "nested-shadow-trees": { @@ -253921,7 +253934,7 @@ ], "support": { "README.md": [ - "886faa84579adb65a62105f6f010a149143ff976", + "2825092248cd61c0d5da2325ce3eabc53d2224e6", [] ], "accounts.py": [ @@ -253945,31 +253958,27 @@ [] ], "fedcm-iframe.html": [ - "546f66aa38106e0fb3a6d27849047ee47af12796", + "cc584bfdaa95596d795bc96afd9906b923297b2c", [] ], "fedcm-manifest-not-in-list": { "fedcm.json": [ - "c044a7fd5eb8365d15ee29a2cec50856692b2c05", + "c29126e183b0ec06f80e60aefa5970793c547ffa", [] ] }, "fedcm-mock.js": [ - "9923e898419df99cc57c36ce09058f76590d3bf2", + "53257099a18cd8ecbe44e9c62622a7376ec738dc", [] ], "fedcm.json": [ - "fc1c7394754b9dd131ed339dc10d52198707073a", + "b4901f538c239dc4c994d233d4349e92016be6f7", [] ], "federatedcredential-get.html": [ "476f32688f91cede949edf2a1e650ef573525bd7", [] ], - "id_token.py": [ - "f6faad4deabe7266e3350c731baf1f24649cda66", - [] - ], "otpcredential-helper.js": [ "e07e9f5be359e9173b6c916d91d8ce1f87260885", [] @@ -253989,6 +253998,10 @@ "set_cookie.headers": [ "8c233d14cfb9c9d2cce7e0173434bf604b4b4c3d", [] + ], + "token.py": [ + "e9b07767c8d9cb430a77e34f2a7669117fa24fa2", + [] ] } }, @@ -318792,7 +318805,7 @@ [] ], "FedCM.idl": [ - "af48621038c02cb1e4875d5722c8c4aa5c4bb7b9", + "832b54a684aa74ee9e67f534bcfb89d43fcad040", [] ], "FileAPI.idl": [ @@ -329695,6 +329708,10 @@ [] ] }, + "shadow-style-invalidation-vw-units-ref.html": [ + "d86fd234ca321a762fff5017b4adc68301124bcd", + [] + ], "untriaged": { "README": [ "5b7572bda4e2c2b2477a151345de3441265a8ca8", @@ -370509,7 +370526,7 @@ ] ], "fedcm-network-requests.sub.https.html": [ - "a19cf6a4ac6eba8be96fd432ffa1d0bc7725706a", + "eed87d09765e4034b09d5679f700709082a54106", [ null, {} @@ -401009,7 +401026,7 @@ ] ], "has-specificity.html": [ - "b33e3a0eb3663266d7806ea9d243428684d673fd", + "69fcb5b1fbe5b1256192d70e7d3262baa03661e5", [ null, {} @@ -517247,6 +517264,13 @@ ] }, "resize-observer": { + "calculate-depth-for-node.html": [ + "339e52bb79cbd1fc20d1059993ae8ee3b0591b3f", + [ + null, + {} + ] + ], "change-layout-in-error.html": [ "9083fb48f94efe2a4d402fda2e452d72f94b1e17", [
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/has-specificity.html b/third_party/blink/web_tests/external/wpt/css/selectors/has-specificity.html index b33e3a0e..69fcb5b 100644 --- a/third_party/blink/web_tests/external/wpt/css/selectors/has-specificity.html +++ b/third_party/blink/web_tests/external/wpt/css/selectors/has-specificity.html
@@ -21,9 +21,15 @@ main :has(span, li, #foo) { --t5:PASS; } main :has(span, li, p) { --t5:FAIL; } + + main div:has(.foo) { --t6:FAIL; } + main div.baz { --t6:PASS; } + + main div.baz { --t7:FAIL; } + main div:has(.foo) { --t7:PASS; } </style> <main id=main> - <div id=div><p><span id=foo class=foo></span><span class=bar></span><li></li></p></div> + <div id=div class=baz><p><span id=foo class=foo></span><span class=bar></span><li></li></p></div> </main> <script> function test_value(name, description) { @@ -39,4 +45,6 @@ test_value('--t3', ':has(.bar, #foo) wins over :has(.foo, .bar)'); test_value('--t4', ':has(span + span) wins over :has(span)'); test_value('--t5', ':has(span, li, p) wins over :has(span, lo, p)'); + test_value('--t6', 'latter .baz wins over :has(.foo)'); + test_value('--t7', 'latter :has(.foo) wins over .baz'); </script>
diff --git a/third_party/blink/web_tests/external/wpt/resize-observer/calculate-depth-for-node.html b/third_party/blink/web_tests/external/wpt/resize-observer/calculate-depth-for-node.html new file mode 100644 index 0000000..339e52bb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/resize-observer/calculate-depth-for-node.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://drafts.csswg.org/resize-observer/#calculate-depth-for-node"> +<body> +<div id="host"></div> +<script> +let didSeeError = false; +window.onerror = (message, source, lineno, colno, error) => { + didSeeError = true; +} + +async_test(t => { + let host = document.querySelector('#host'); + let observer = new ResizeObserver(t.step_func(() => { + let root = host.attachShadow({mode:'open'}); + let child = root.appendChild(document.createElement('div')); + new ResizeObserver(() => {}).observe(child); + requestAnimationFrame(t.step_func_done(() => { assert_false(didSeeError); })); + })); + observer.observe(host); +}, '"Calculate depth for node" algorithm with Shadow DOM'); + + +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units-ref.html b/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units-ref.html new file mode 100644 index 0000000..d86fd23 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units-ref.html
@@ -0,0 +1,6 @@ +<!DOCTYPE html> +<html> +<body> +<div style="width: 100px; height: 100px; background: green;"></div> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units.html b/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units.html new file mode 100644 index 0000000..98c69e1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/shadow-dom/shadow-style-invalidation-vw-units.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> +<link rel=match href="imperative-slot-layout-invalidation-001-ref.html"> +<meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"> +</head> +<body> +<script> + +const iframe = document.createElement('iframe'); +iframe.scrolling = 'no'; +iframe.style = 'border: none; width: 50px; height: 50px; overflow: hidden'; +iframe.src = `data:text/html,<!DOCTYPE html><style>head,html,body { padding: 0; margin: 0; }</style> +<div style="width: 100vw; height: 50vw; background: green"></div> +<div style="width: 100px; height: 100px; background: red;"><div id="host"></div></div> +<script>host.attachShadow({mode: 'closed'}).innerHTML = + '<style> div { width: 100vw; height: 50vw; background: green; }</style><div></div>'; +host.getBoundingClientRect(); +</sc` + `ript>`; +iframe.onload = () => { + iframe.style.width = '100px'; + iframe.style.height = '100px'; +} +document.body.appendChild(iframe); + +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createAnswer.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createAnswer.html index ceb01e54..1970db0 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createAnswer.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createAnswer.html
@@ -5,102 +5,37 @@ <script src="/resources/testharnessreport.js"></script> <script src="RTCPeerConnection-helper.js"></script> <script> - 'use strict'; +'use strict'; - // Test is based on the following editor draft: - // https://w3c.github.io/webrtc-pc/archives/20170515/webrtc.html +promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); - // The following helper functions are called from RTCPeerConnection-helper.js: - // generateDataChannelOffer() + await promise_rejects_dom(t, 'InvalidStateError', pc.createAnswer()); +}, 'createAnswer() with null remoteDescription should reject with InvalidStateError'); - /* - * 4.3.2. createAnswer() - */ +promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); - /* - * 4.1. If connection's remoteDescription is null return a promise rejected with a - * newly created InvalidStateError. - */ - promise_test(t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - return promise_rejects_dom(t, 'InvalidStateError', - pc.createAnswer()); - }, 'createAnswer() with null remoteDescription should reject with InvalidStateError'); + const offer = await generateVideoReceiveOnlyOffer(pc); + await pc.setRemoteDescription(offer); + const answer = await pc.createAnswer(); + assert_equals(typeof answer, 'object', + 'Expect answer to be plain object dictionary RTCSessionDescriptionInit'); + assert_false(answer instanceof RTCSessionDescription, + 'Expect answer to not be instance of RTCSessionDescription'); +}, 'createAnswer() after setting remote description should succeed'); - /* - * Final steps to create an answer - * 4. Let answer be a newly created RTCSessionDescriptionInit dictionary with its - * type member initialized to the string "answer" and its sdp member initialized to sdpString. - */ - promise_test(t => { - const pc = new RTCPeerConnection(); +promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); - t.add_cleanup(() => pc.close()); - - return generateVideoReceiveOnlyOffer(pc) - .then(offer => pc.setRemoteDescription(offer)) - .then(() => pc.createAnswer()) - .then(answer => { - assert_equals(typeof answer, 'object', - 'Expect answer to be plain object dictionary RTCSessionDescriptionInit'); - - assert_false(answer instanceof RTCSessionDescription, - 'Expect answer to not be instance of RTCSessionDescription') - }); - }, 'createAnswer() after setting remote description should succeed'); - - promise_test(t => { - const pc = new RTCPeerConnection(); - - t.add_cleanup(() => pc.close()); - - return generateDataChannelOffer(pc) - .then(offer => pc.setRemoteDescription(offer)) - .then(() => { - pc.close(); - return promise_rejects_dom(t, 'InvalidStateError', - pc.createAnswer()); - }); - }, 'createAnswer() when connection is closed reject with InvalidStateError'); - - /* - * TODO - * 4.3.2 createAnswer - * 3. If connection is configured with an identity provider, and an - * identity assertion has not yet been generated using said - * identity provider, then begin the identity assertion request - * process if it has not already begun. - * - * Steps to create an answer - * 1. If the need for an identity assertion was identified when - * createAnswer was invoked, wait for the identity assertion - * request process to complete. - * 2. If the identity provider was unable to produce an identity - * assertion, reject p with a newly created NotReadableError - * and abort these steps. - * 3. If connection was not constructed with a set of certificates, - * and one has not yet been generated, wait for it to be generated. - * - * Final steps to create an answer - * 2. If connection was modified in such a way that additional - * inspection of the system state is necessary, then in - * parallel begin the steps to create an answer again, given p, - * and abort these steps. - * - * Non-Testable - * 4.3.2 createAnswer - * Steps to create an answer - * 4. Inspect the system state to determine the currently - * available resources as necessary for generating the answer, - * as described in [JSEP] (section 4.1.7.). - * 5. If this inspection failed for any reason, reject p with a - * newly created OperationError and abort these steps. - * - * Final steps to create an answer - * 3. Given the information that was obtained from previous inspection - * and the current state of connection and its RTCRtpTransceivers, - * generate an SDP answer, sdpString, as described in [JSEP] (section 5.3.). - */ + // generateDataChannelOffer() is defined in RTCPeerConnection-helper.js. + const offer = await generateDataChannelOffer(pc); + await pc.setRemoteDescription(offer); + pc.close(); + await promise_rejects_dom(t, 'InvalidStateError', pc.createAnswer()); +}, 'createAnswer() when connection is closed should reject with InvalidStateError'); </script>
diff --git a/third_party/blink/web_tests/fast/dom/viewport/resize-event-fired-window-resized.html b/third_party/blink/web_tests/fast/dom/viewport/resize-event-fired-window-resized.html index 03732d1..4a051e9 100644 --- a/third_party/blink/web_tests/fast/dom/viewport/resize-event-fired-window-resized.html +++ b/third_party/blink/web_tests/fast/dom/viewport/resize-event-fired-window-resized.html
@@ -5,11 +5,7 @@ var numCallsScroll = 0; var numCallsResize = 0; - var t = async_test('verify that the resize events get fired when the window is resized.'); - - window.onload = t.step_func(function() { - testRunner.useUnfortunateSynchronousResizeMode(); - + promise_test(async () => { // Turn off smooth scrolling. internals.settings.setScrollAnimatorEnabled(false); @@ -21,20 +17,22 @@ numCallsResize++; }); + // Request resize, and then wait for an animation frame to ensure + // there was only one resize event. + var resizePromise = new Promise(resolve => window.onresize = resolve); window.resizeTo(window.outerWidth - 24, window.outerHeight - 24); - requestAnimationFrame(function() { - t.step(function() { - assert_equals(numCallsScroll, 0, "resize 1 doesn't fire scroll event"); - assert_equals(numCallsResize, 1, "resize 1 fires resize event"); - }); - window.resizeTo(window.outerWidth + 24, window.outerHeight + 24); - requestAnimationFrame(function() { - t.step(function() { - assert_equals(numCallsScroll, 0, "resize 2 doesn't fire scroll event"); - assert_equals(numCallsResize, 2, "resize 2 fires resize event"); - t.done(); - }); - }); - }); + await resizePromise; + + await new Promise(resolve => requestAnimationFrame(resolve)); + assert_equals(numCallsScroll, 0, "resize 1 doesn't fire scroll event"); + assert_equals(numCallsResize, 1, "resize 1 fires resize event"); + + var resizePromise = new Promise(resolve => window.onresize = resolve); + window.resizeTo(window.outerWidth + 24, window.outerHeight + 24); + await resizePromise; + + await new Promise(resolve => requestAnimationFrame(resolve)); + assert_equals(numCallsScroll, 0, "resize 2 doesn't fire scroll event"); + assert_equals(numCallsResize, 2, "resize 2 fires resize event"); }); </script>
diff --git a/third_party/blink/web_tests/paint/invalidation/resize-iframe-text.html b/third_party/blink/web_tests/paint/invalidation/resize-iframe-text.html index 5359dda..8ddb76f7 100644 --- a/third_party/blink/web_tests/paint/invalidation/resize-iframe-text.html +++ b/third_party/blink/web_tests/paint/invalidation/resize-iframe-text.html
@@ -6,19 +6,23 @@ // otherwise be promoted to rootScroller which changes painting and // invalidation. if (window.internals) - internals.runtimeFlags.implicitRootScrollerEnabled = false; -if (window.testRunner) - testRunner.useUnfortunateSynchronousResizeMode(); + internals.runtimeFlags.implicitRootScrollerEnabled = false; +window.testIsAsync = true; onload = function() { - runAfterLayoutAndPaint(function() { + runAfterLayoutAndPaint(async function() { // Use smaller size because window.resizeTo/By() will fail if the size is // bigger than the screen size. + var resizePromise = new Promise(resolve => window.onresize = resolve); window.resizeTo(500, 200); + await resizePromise; runRepaintAndPixelTest(); }); }; -function repaintTest() { +async function repaintTest() { + var resizePromise = new Promise(resolve => window.onresize = resolve); window.resizeBy(0, 200); + await resizePromise; + finishRepaintTest(); } </script> Test passes if you see "Success" after window resizes.
diff --git a/third_party/blink/web_tests/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html b/third_party/blink/web_tests/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html index fd8242f..f224f47f 100644 --- a/third_party/blink/web_tests/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html +++ b/third_party/blink/web_tests/paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html
@@ -19,17 +19,16 @@ </style> <script src="../resources/text-based-repaint.js" type="text/javascript"></script> <script> -if (window.testRunner) { - testRunner.useUnfortunateSynchronousResizeMode(); -} function repaintTest() { // Invalidation of horizontal scrollbar should be tracked. document.getElementById('child').style.width = '2000px'; } -window.onload = function() { +window.onload = async function() { // Trigger a full viewport repaint to test if scrollbar damages are cleared // even if we shortcut children invalidations. + var resizePromise = new Promise(resolve => window.onresize = resolve); window.resizeTo(1000, 600); + await resizePromise; // Invalidation of vertical scrollbar before the repaint test should not be tracked during repaintTest(). document.getElementById('child').style.height = '2000px'; runRepaintAndPixelTest();
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/webrtc/RTCPeerConnection-createAnswer-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/webrtc/RTCPeerConnection-createAnswer-expected.txt index 96fba15..427284c 100644 --- a/third_party/blink/web_tests/platform/generic/external/wpt/webrtc/RTCPeerConnection-createAnswer-expected.txt +++ b/third_party/blink/web_tests/platform/generic/external/wpt/webrtc/RTCPeerConnection-createAnswer-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. PASS createAnswer() with null remoteDescription should reject with InvalidStateError FAIL createAnswer() after setting remote description should succeed assert_false: Expect answer to not be instance of RTCSessionDescription expected false got true -PASS createAnswer() when connection is closed reject with InvalidStateError +PASS createAnswer() when connection is closed should reject with InvalidStateError Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt deleted file mode 100644 index 1f067a86..0000000 --- a/third_party/blink/web_tests/platform/mac-mac11-arm64/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -PASS Navigation on the main frame initiated by window opened by an iframe opening via window.parent.location should not activate a prerendered page -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt b/third_party/blink/web_tests/platform/mac-mac12-arm64/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt similarity index 100% rename from third_party/blink/web_tests/platform/mac/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt rename to third_party/blink/web_tests/platform/mac-mac12-arm64/virtual/prerender/wpt_internal/prerender/activate-from-iframe-expected.txt
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/autoplay.https.html b/third_party/blink/web_tests/wpt_internal/fenced_frame/autoplay.https.html new file mode 100644 index 0000000..92ba299 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/autoplay.https.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<title>Verify that autoplaying Web Audio from a fenced frame is blocked</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> + +<body></body> +<script> +promise_test(async () => { + const frame = attachFencedFrameContext(); + + let audioSuspended = await frame.execute(async () => { + internals.settings.setAutoplayPolicy('user-gesture-required'); + internals.runtimeFlags.autoplayIgnoresWebAudioEnabled = false; + + let audioContext = new AudioContext(); + return audioContext.state == 'suspended'; + }); + assert_true(audioSuspended, 'autoplay should be blocked'); +}, 'If Autoplay plocy is set to \'user-gesture-required\', '+ + 'autoplaying should be blocked in a fenced frame '+ + 'as it\'s treated like a cross-origin subframe.'); +</script>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index afabee54..11fc30ec 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -59224,6 +59224,7 @@ <int value="520738365" label="OmniboxPedalsBatch2NonEnglish:enabled"/> <int value="520982116" label="BuiltInModuleAll:enabled"/> <int value="521992655" label="LauncherPlayStoreSearch:disabled"/> + <int value="522013077" label="LinkCapturingAutoDisplayIntentPicker:disabled"/> <int value="529235584" label="PhoneHub:enabled"/> <int value="529665808" label="AutofillEnableVirtualCardManagementInDesktopSettingsPage:disabled"/> @@ -59924,6 +59925,7 @@ <int value="988781221" label="SyncSetupFriendlySettings:disabled"/> <int value="988981463" label="ImageCaptureAPI:enabled"/> <int value="989062160" label="ModuleScriptsImportMetaUrl:enabled"/> + <int value="989740984" label="BorealisStorageBallooning:enabled"/> <int value="990380525" label="AutofillRationalizeStreetAddressAndAddressLine:enabled"/> <int value="991462028" @@ -60213,6 +60215,7 @@ <int value="1168226627" label="OmniboxMaxZeroSuggestMatches:enabled"/> <int value="1169418814" label="ManualFallbacksFilling:enabled"/> <int value="1170030686" label="BookmarkBottomSheet:enabled"/> + <int value="1172226600" label="BorealisStorageBallooning:disabled"/> <int value="1173244409" label="AutofillUseMobileLabelDisambiguation:enabled"/> <int value="1174088940" label="enable-wasm"/> <int value="1176183341" label="SearchHistoryLink:enabled"/> @@ -60591,6 +60594,7 @@ <int value="1413158119" label="WebRtcRemoteEventLog:disabled"/> <int value="1413334779" label="WebPaymentsMinimalUI:enabled"/> <int value="1413948819" label="NupPrinting:enabled"/> + <int value="1414652547" label="LinkCapturingAutoDisplayIntentPicker:enabled"/> <int value="1414918327" label="enable-accelerated-video-decode"/> <int value="1416592483" label="ash-enable-mirrored-screen"/> <int value="1416970206" label="ArcGameModeFeature:disabled"/> @@ -92804,7 +92808,7 @@ <int value="1" label="Tab hidden before a frame is presented"/> <int value="2" label="Presentation failure"/> <int value="3" label="Tab shown twice without being hidden"/> - <int value="4" label="Unhandled compositor state"/> + <int value="4" label="Unhandled compositor state (deprecated)"/> </enum> <enum name="TabUnderAction">
diff --git a/tools/metrics/histograms/metadata/compositing/histograms.xml b/tools/metrics/histograms/metadata/compositing/histograms.xml index 280384d..6f95a0a 100644 --- a/tools/metrics/histograms/metadata/compositing/histograms.xml +++ b/tools/metrics/histograms/metadata/compositing/histograms.xml
@@ -1409,21 +1409,6 @@ </summary> </histogram> -<histogram name="Graphics.Smoothness.PerSession.AveragePercentDroppedFrames" - units="%" expires_after="2022-06-05"> - <owner>sadrul@chromium.org</owner> - <owner>graphics-dev@chromium.org</owner> - <summary> - Tracks the percent of dropped frames. The metric is reported once per - page-load when the page closes. - - AveragePercentDroppedFrames is measured by tracking the number of frames - which were not displayed on screen out of the total number of frames - expected to be produced and displayed. In other words, the lower this number - is, the smoother experience. - </summary> -</histogram> - <histogram name="Graphics.Smoothness.PerSession.MaxPercentDroppedFrames_1sWindow" units="%" expires_after="2022-12-04">
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 524dcca..1e2f2506 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": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "win": { - "hash": "b079db252b8dd239324cc0724c21b72d72fe7775", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/b6fc104b800da83157d1e45eb87f94efe82f0022/trace_processor_shell.exe" + "hash": "188228882b53dc6e7ed37b8781159cdcea646b93", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/b1989b0ff009c79d1d9e3f6b13b2e017ba2e5c9d/trace_processor_shell.exe" }, "linux_arm": { "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893", "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "mac": { - "hash": "7db84be27e17cdc421d71c50746795bc47ccc0af", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/80dd4d929a592772a530e67c30d9f76bb63f5219/trace_processor_shell" + "hash": "183837742259a7c55bf182c1b5a43fb16c4a4a10", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/b1989b0ff009c79d1d9e3f6b13b2e017ba2e5c9d/trace_processor_shell" }, "mac_arm64": { "hash": "e1ad4861384b06d911a65f035317914b8cc975c6", "full_remote_path": "perfetto-luci-artifacts/v25.0/mac-arm64/trace_processor_shell" }, "linux": { - "hash": "922ada21ed15c13ca9d48eecf738da8d9f9812bb", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/d94e4dc359a4d002a2fbf4bd11d22b7ecd1b2466/trace_processor_shell" + "hash": "0fc5f521a0d6d38630e7ef3549b42ed07dab4e40", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/b1989b0ff009c79d1d9e3f6b13b2e017ba2e5c9d/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/file_manager/BUILD.gn b/ui/file_manager/BUILD.gn index 46dfcaa..ec59114 100644 --- a/ui/file_manager/BUILD.gn +++ b/ui/file_manager/BUILD.gn
@@ -278,17 +278,22 @@ outputs = [ "$preprocess_folder/{{source_target_relative}}" ] } +copy("copy_ts_test") { + sources = ts_test_files + outputs = [ "$preprocess_folder/{{source_target_relative}}" ] +} + html_to_wrapper("html_wrapper_files") { in_files = ts_templates } ts_library("test_build_ts") { testonly = true - root_dir = "." - out_dir = "$target_gen_dir/tsc_test" + root_dir = preprocess_folder + out_dir = "$target_gen_dir/tsc" tsconfig_base = "tsconfig_base.json" - in_files = [ "file_manager/widgets/xf_breadcrumbs_unittest.ts" ] + in_files = ts_test_files path_mappings = [ # for chai_assert.js. @@ -298,6 +303,7 @@ ] deps = [ ":build_ts" ] + extra_deps = [ ":copy_ts_test" ] } # GRD for test files.
diff --git a/ui/file_manager/file_manager/background/js/test_util.js b/ui/file_manager/file_manager/background/js/test_util.js index 3d10e11..7d71bb5 100644 --- a/ui/file_manager/file_manager/background/js/test_util.js +++ b/ui/file_manager/file_manager/background/js/test_util.js
@@ -474,7 +474,7 @@ test.util.sync.getBreadcrumbPath = contentWindow => { const doc = contentWindow.document; const breadcrumb = doc.querySelector('#location-breadcrumbs bread-crumb') || - doc.querySelector('#location-breadcrumbs xf-breadcrumbs'); + doc.querySelector('#location-breadcrumbs xf-breadcrumb'); if (!breadcrumb) { return '';
diff --git a/ui/file_manager/file_manager/common/js/util.js b/ui/file_manager/file_manager/common/js/util.js index 774b431..aac66e98 100644 --- a/ui/file_manager/file_manager/common/js/util.js +++ b/ui/file_manager/file_manager/common/js/util.js
@@ -1735,5 +1735,11 @@ */ class UserCanceledError extends Error {} +/** + * Returns whether the given value is null or undefined. + * @param {*} value + * @returns {boolean} + */ +util.isNullOrUndefined = (value) => value === null || value === undefined; export {util, UserCanceledError};
diff --git a/ui/file_manager/file_manager/containers/breadcrumbs_container.ts b/ui/file_manager/file_manager/containers/breadcrumb_container.ts similarity index 76% rename from ui/file_manager/file_manager/containers/breadcrumbs_container.ts rename to ui/file_manager/file_manager/containers/breadcrumb_container.ts index 413ad09c..fdd267d 100644 --- a/ui/file_manager/file_manager/containers/breadcrumbs_container.ts +++ b/ui/file_manager/file_manager/containers/breadcrumb_container.ts
@@ -2,21 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import '../widgets/breadcrumbs.js'; +import '../widgets/xf_breadcrumb.js'; import {metrics} from '../common/js/metrics.js'; import {CurrentDirectory, PropStatus, State} from '../externs/ts/state.js'; import {changeDirectory} from '../state/actions.js'; import {FileKey} from '../state/file_key.js'; import {getStore, Store} from '../state/store.js'; -import {BREADCRUMB_CLICKED, BreadcrumbClickedEvent} from '../widgets/breadcrumbs.js'; +import {BREADCRUMB_CLICKED, BreadcrumbClickedEvent} from '../widgets/xf_breadcrumb.js'; /** * The controller of breadcrumb. The Breadcrumb element only renders a given * path. This controller component is responsible for constructing the path * and passing it to the Breadcrumb element. */ -export class BreadcrumbsContainer { +export class BreadcrumbContainer { private store_: Store; private currentFileKey_: FileKey|null; private container_: HTMLElement; @@ -45,32 +45,31 @@ } private hide_() { - const breadcrumbs = document.querySelector('xf-breadcrumbs'); - if (breadcrumbs) { - breadcrumbs.hidden = true; + const breadcrumb = document.querySelector('xf-breadcrumb'); + if (breadcrumb) { + breadcrumb.hidden = true; } } private show_(currentDir?: CurrentDirectory) { - let breadcrumbs = document.querySelector('xf-breadcrumbs'); - if (!breadcrumbs) { - breadcrumbs = document.createElement('xf-breadcrumbs'); - breadcrumbs.id = 'breadcrumbs'; - breadcrumbs.addEventListener( - BREADCRUMB_CLICKED, this.breadcrumbsClick_.bind(this)); - this.container_.appendChild(breadcrumbs); + let breadcrumb = document.querySelector('xf-breadcrumb'); + if (!breadcrumb) { + breadcrumb = document.createElement('xf-breadcrumb'); + breadcrumb.addEventListener( + BREADCRUMB_CLICKED, this.breadcrumbClick_.bind(this)); + this.container_.appendChild(breadcrumb); } const path = !currentDir ? '' : currentDir.pathComponents.map(p => p.label).join('/'); - breadcrumbs!.path = path; + breadcrumb!.path = path; this.currentFileKey_ = currentDir ? currentDir.key : null; this.pathKeys_ = currentDir ? currentDir.pathComponents.map(p => p.key) : []; } - private breadcrumbsClick_(event: BreadcrumbClickedEvent) { + private breadcrumbClick_(event: BreadcrumbClickedEvent) { const index = Number(event.detail.partIndex); if (isNaN(index) || index < 0) { return;
diff --git a/ui/file_manager/file_manager/foreground/js/banner_controller.js b/ui/file_manager/file_manager/foreground/js/banner_controller.js index f5c6b847..b3715fd 100644 --- a/ui/file_manager/file_manager/foreground/js/banner_controller.js +++ b/ui/file_manager/file_manager/foreground/js/banner_controller.js
@@ -6,6 +6,7 @@ import {getSizeStats} from '../../common/js/api.js'; import {AsyncUtil} from '../../common/js/async_util.js'; +import {util} from '../../common/js/util.js'; import {VolumeManagerCommon} from '../../common/js/volume_manager_types.js'; import {xfm} from '../../common/js/xfm.js'; import {Crostini} from '../../externs/background/crostini.js'; @@ -902,7 +903,8 @@ if (!threshold || !sizeStats) { return false; } - if (!sizeStats.remainingSize || !sizeStats.totalSize) { + if (util.isNullOrUndefined(sizeStats.remainingSize) || + util.isNullOrUndefined(sizeStats.totalSize)) { return false; } if (threshold.minSize < sizeStats.remainingSize) {
diff --git a/ui/file_manager/file_manager/foreground/js/banner_util_unittest.js b/ui/file_manager/file_manager/foreground/js/banner_util_unittest.js index e4f181a9..d2c81218 100644 --- a/ui/file_manager/file_manager/foreground/js/banner_util_unittest.js +++ b/ui/file_manager/file_manager/foreground/js/banner_util_unittest.js
@@ -337,11 +337,16 @@ totalSize: 20 * 1024 * 1024 * 1024, // 20 GB remainingSize: 1 * 1024 * 1024 * 1024, // 1 GB }; + const testSizeStatsFull = { + totalSize: 20 * 1024 * 1024 * 1024, // 20 GB + remainingSize: 0, // full + }; assertFalse(isBelowThreshold(undefined, undefined)); assertFalse(isBelowThreshold(testMinSizeThreshold, undefined)); assertFalse(isBelowThreshold(testMinRatioThreshold, undefined)); assertFalse(isBelowThreshold(undefined, testSizeStats)); + assertTrue(isBelowThreshold(testMinRatioThreshold, testSizeStatsFull)); } /**
diff --git a/ui/file_manager/file_manager/foreground/js/file_watcher.js b/ui/file_manager/file_manager/foreground/js/file_watcher.js index af711d3..b5053e7e 100644 --- a/ui/file_manager/file_manager/foreground/js/file_watcher.js +++ b/ui/file_manager/file_manager/foreground/js/file_watcher.js
@@ -55,7 +55,7 @@ if (eventURL === watchedDirURL) { fireWatcherDirectoryChanged(event.changedFiles); - } else if (watchedDirURL.match(new RegExp('^' + eventURL))) { + } else if (watchedDirURL.startsWith(eventURL)) { // When watched directory is deleted by the change in parent directory, // notify it as watcher directory changed. this.watchedDirectoryEntry_.getDirectory(
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js index 9855fff..7354a20 100644 --- a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js +++ b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js
@@ -12,7 +12,7 @@ import {DialogType} from '../../../common/js/dialog_type.js'; import {str, strf, util} from '../../../common/js/util.js'; import {AllowedPaths} from '../../../common/js/volume_manager_types.js'; -import {BreadcrumbsContainer} from '../../../containers/breadcrumbs_container.js'; +import {BreadcrumbContainer} from '../../../containers/breadcrumb_container.js'; import {VolumeManager} from '../../../externs/volume_manager.js'; import {FilesPasswordDialog} from '../../elements/files_password_dialog.js'; import {FilesToast} from '../../elements/files_toast.js'; @@ -171,7 +171,7 @@ /** * Breadcrumb controller. - * @type {BreadcrumbController|BreadcrumbsContainer} + * @type {BreadcrumbController|BreadcrumbContainer} */ this.breadcrumbController = null; @@ -444,7 +444,8 @@ // Breadcrumb controller. if (util.isFilesAppExperimental()) { - this.breadcrumbController = new BreadcrumbsContainer( + // TODO: Rename location-breadcrumbs to location-breadcrumb. + this.breadcrumbController = new BreadcrumbContainer( queryRequiredElement('#location-breadcrumbs', this.element)); } else { this.breadcrumbController = new BreadcrumbController(
diff --git a/ui/file_manager/file_manager/widgets/breadcrumbs.html b/ui/file_manager/file_manager/widgets/xf_breadcrumb.html similarity index 100% rename from ui/file_manager/file_manager/widgets/breadcrumbs.html rename to ui/file_manager/file_manager/widgets/xf_breadcrumb.html
diff --git a/ui/file_manager/file_manager/widgets/breadcrumbs.ts b/ui/file_manager/file_manager/widgets/xf_breadcrumb.ts similarity index 96% rename from ui/file_manager/file_manager/widgets/breadcrumbs.ts rename to ui/file_manager/file_manager/widgets/xf_breadcrumb.ts index 0ad67aa..a29d14e 100644 --- a/ui/file_manager/file_manager/widgets/breadcrumbs.ts +++ b/ui/file_manager/file_manager/widgets/xf_breadcrumb.ts
@@ -4,16 +4,16 @@ import {CrActionMenuElement} from 'chrome://resources/cr_elements/cr_action_menu/cr_action_menu.js'; -import {getTemplate} from './breadcrumbs.html.js'; +import {getTemplate} from './xf_breadcrumb.html.js'; /** - * Breadcrumbs displays the current directory path. + * Breadcrumb displays the current directory path. * - * It emits the `BREADCRUMB_CLICKED` event when any part of the breadcrumbs is + * It emits the `BREADCRUMB_CLICKED` event when any part of the breadcrumb is * clicked. */ -export class Breadcrumbs extends HTMLElement { - /** BreadCrumb path parts. */ +export class XfBreadcrumb extends HTMLElement { + /** Breadcrumb path parts. */ private parts_: string[]; constructor() { @@ -290,7 +290,7 @@ export const BREADCRUMB_CLICKED = 'breadcrumb_clicked'; /** - * `partIndex` is the index of the breadcrumbs path e.g.: + * `partIndex` is the index of the breadcrumb path e.g.: * "/My files/Downloads/sub-folder" indexes: * 0 1 2 */ @@ -302,8 +302,8 @@ } interface HTMLElementTagNameMap { - 'xf-breadcrumbs': Breadcrumbs; + 'xf-breadcrumb': XfBreadcrumb; } } -customElements.define('xf-breadcrumbs', Breadcrumbs); +customElements.define('xf-breadcrumb', XfBreadcrumb);
diff --git a/ui/file_manager/file_manager/widgets/xf_breadcrumb_unittest.ts b/ui/file_manager/file_manager/widgets/xf_breadcrumb_unittest.ts new file mode 100644 index 0000000..26842c2 --- /dev/null +++ b/ui/file_manager/file_manager/widgets/xf_breadcrumb_unittest.ts
@@ -0,0 +1,854 @@ +// Copyright 2022 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. + +import {assert} from 'chrome://resources/js/assert_ts.js'; +import {assertEquals, assertFalse, assertGE, assertGT, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; + +import {waitUntil} from '../common/js/test_error_reporting.js'; + +import {BREADCRUMB_CLICKED, BreadcrumbClickedEvent, XfBreadcrumb} from './xf_breadcrumb.js'; + +/** + * Creates new <xf-breadcrumb> element for each test. Asserts it has no initial + * path using the element.path getter. + */ +export function setUp() { + document.body.innerHTML = '<xf-breadcrumb></xf-breadcrumb>'; + const breadcrumb = document.querySelector('xf-breadcrumb'); + assertEquals('', breadcrumb!.path); +} + +/** Returns the <xf-breadcrumb> element. */ +function getBreadcrumb(): XfBreadcrumb { + const element = document.querySelector('xf-breadcrumb'); + assertNotEquals('none', window.getComputedStyle(element!).display); + assertFalse(element!.hasAttribute('hidden')); + return element!; +} + +/** + * Returns the <xf-breadcrumb> child button elements. There are 4 main buttons + * and one elider button (so at least 5) plus optional drop-down menu buttons. + */ +function getAllBreadcrumbButtons(): HTMLButtonElement[] { + const buttons = getBreadcrumb().shadowRoot!.querySelectorAll('button'); + assertGE(buttons.length, 5, 'too few buttons'); + return Array.from(buttons) as HTMLButtonElement[]; +} + +/** + * Returns the not-hidden <xf-breadcrumb> main button elements. The breadcrumb + * main buttons have an id, all other breadcrumb buttons do not. + */ +function getVisibleBreadcrumbMainButtons(): HTMLButtonElement[] { + const notHiddenMain = 'button[id]:not([hidden])'; + const buttons = getBreadcrumb().shadowRoot!.querySelectorAll(notHiddenMain); + return Array.from(buttons) as HTMLButtonElement[]; +} + +/** Returns the last not-hidden <xf-breadcrumb> main button element. */ +function getLastVisibleBreadcrumbMainButton(): HTMLButtonElement { + return getVisibleBreadcrumbMainButtons().pop() as HTMLButtonElement; +} + +/** Returns the <xf-breadcrumb> elider button element. */ +function getBreadcrumbEliderButton(): HTMLButtonElement { + const elider = 'button[elider]'; + const button = getBreadcrumb().shadowRoot!.querySelectorAll(elider); + assertEquals(1, button.length, 'invalid elider button'); + return button[0] as HTMLButtonElement; +} + +/** Returns the <xf-breadcrumb> drop-down menu button elements. */ +function getBreadcrumbMenuButtons(): HTMLButtonElement[] { + const menuButton = 'cr-action-menu button'; + const buttons = getBreadcrumb().shadowRoot!.querySelectorAll(menuButton); + return Array.from(buttons) as HTMLButtonElement[]; +} + +/** + * Returns <xf-breadcrumb> main button visual state. + * @param button Main button (these have an id). + * @param i Number to assign to the button. + */ +function getMainButtonState(button: HTMLButtonElement, i: number): string { + const display = window.getComputedStyle(button).display; + + let result = i + ': display:' + display + ' id=' + button.id; + if (!button.hasAttribute('hidden')) { + result += ' text=[' + button.textContent + ']'; + } else { + assertEquals('none', display); + result += ' hidden'; + } + + assertTrue(!!(button.id)); + return result; +} + +/** + * Returns <xf-breadcrumb> elider button visual state. + * @param button Elider button. + * @param i Number to assign to the button. + */ +function getEliderButtonState(button: HTMLButtonElement, i: number): string { + const display = window.getComputedStyle(button).display; + + const result = i + ': display:' + display; + const attributes: string[] = []; + for (const value of button.getAttributeNames().values()) { + if (value === 'aria-expanded') { // drop-down menu: opened || closed + attributes.push(value + '=' + button.getAttribute('aria-expanded')); + } else if (value === 'hidden') { + assertEquals('none', display); + attributes.push(value); + } else if (value !== 'elider') { + attributes.push(value); + } + } + + assertFalse(!!button.id, 'elider button should not have an id'); + assertTrue(button.hasAttribute('elider')); + return result + ' elider[' + attributes.sort() + ']'; +} + +/** + * Returns <xf-breadcrumb> drop-down menu button visual state. + * @param button Drop-down menu button. + */ +function getDropDownMenuButtonState(button: HTMLButtonElement): string { + const display = window.getComputedStyle(button).display; + + let result = `${button.classList.toString()}: display:` + display; + if (!button.hasAttribute('hidden')) { + result += ' text=[' + button.textContent + ']'; + } else { + assertEquals('none', display); + result += ' hidden'; + } + + assertFalse(!!button.id, 'drop-down buttons should not have an id'); + assertTrue(button.classList.contains('dropdown-item')); + return result; +} + +/** Returns the <xf-breadcrumb> buttons visual state. */ +function getBreadcrumbButtonState(): string { + const parts: string[] = []; + const menus: string[] = []; + + const buttons = getAllBreadcrumbButtons(); + let number = 0; + buttons.forEach((button) => { + if (button.id) { // Main buttons have an id. + parts.push(getMainButtonState(button, ++number)); + } else if (button.hasAttribute('elider')) { // Elider button. + parts.push(getEliderButtonState(button, ++number)); + } else { // A drop-down menu button. + menus.push(getDropDownMenuButtonState(button)); + } + }); + + // Elider should only display for paths with more than 4 parts. + if (!getBreadcrumbEliderButton().hasAttribute('hidden')) { + assertGT(getBreadcrumb().parts.length, 4); + } + + // The 'last' main button displayed should always be [disabled]. + const last = getLastVisibleBreadcrumbMainButton(); + if (getBreadcrumb().path !== '') { + assertTrue(last.hasAttribute('disabled')); + } + + if (menus.length) { + return [parts[0], parts[1]].concat(menus, parts.slice(2)).join(' '); + } + + return parts.join(' '); +} + +/** Sets and Waits for the path to updated in the DOM. */ +async function setAndWaitPath(path: string): Promise<void> { + const element = getBreadcrumb(); + element.path = path; + return waitUntil(() => element.getAttribute('path')! === path); +} + +/** + * Tests rendering an empty path. + */ +export async function testBreadcrumbEmptyPath(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath(''); + + // clang-format off + const expect = element.path + + ' 1: display:none id=first hidden' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:none id=third hidden' + + ' 5: display:none id=fourth hidden'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests rendering a one element path. + */ +export async function testBreadcrumbOnePartPath(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:none id=third hidden' + + ' 5: display:none id=fourth hidden'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** Tests rendering a two element path. */ +export async function testBreadcrumbTwoPartPath(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:none id=third hidden' + + ' 5: display:block id=fourth text=[B]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** Tests rendering a three element path. */ +export async function testBreadcrumbThreePartPath(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[B]' + + ' 5: display:block id=fourth text=[C]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests rendering a four element path. + */ +export async function testBreadcrumbFourPartPath(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:block id=second text=[B]' + + ' 4: display:block id=third text=[C]' + + ' 5: display:block id=fourth text=[D]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests rendering a path of more than four parts. The elider button should be + * visible (not hidden and have display). + * + * The drop-down menu button should contain the elided path parts and can have + * display, but are invisible because the elider drop-down menu is closed. + */ +export async function testBreadcrumbMoreThanFourElementPathsElide( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E/F'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=false,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' dropdown-item: display:block text=[D]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[E]' + + ' 5: display:block id=fourth text=[F]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests rendering a path where the path parts have escaped characters. Again, + * the elider should be visible (not hidden and have display) because the path + * has more than four parts. + * + * The drop-down menu button should contain the elided path parts and can have + * display, but are invisible because the elider drop-down menu is closed. + */ +export async function testBreadcrumbRendersEscapedPathParts(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath( + 'A%2FA/B%2FB/C %2F/%2FD /%2F%2FE/Nexus%2FPixel %28MTP%29'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A/A]' + + ' 2: display:flex elider[aria-expanded=false,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B/B]' + + ' dropdown-item: display:block text=[C /]' + + ' dropdown-item: display:block text=[/D ]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[//E]' + + ' 5: display:block id=fourth text=[Nexus/Pixel (MTP)]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests rendering a path of more than four parts. The elider button should be + * visible and clicking it should 'open' and 'close' its drop-down menu. + */ +export async function +testBreadcrumbElidedPathEliderButtonClicksOpenDropDownMenu(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // Clicking the elider button should 'open' its drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('true', elider.getAttribute('aria-expanded')); + + // clang-format off + const opened = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=true,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[D]' + + ' 5: display:block id=fourth text=[E]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(opened, path + ' ' + getBreadcrumbButtonState()); + + // Clicking the elider again should 'close' the drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // clang-format off + const closed = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=false,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[D]' + + ' 5: display:block id=fourth text=[E]'; + // clang-format on + + assertEquals(closed, path + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests that clicking on the main buttons emits a signal that indicates which + * part of the breadcrumb path was clicked. + */ +export async function testBreadcrumbMainButtonClicksEmitNumberSignal( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E/F'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + // 1st main button + ' 2: display:flex elider[aria-expanded=false,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' dropdown-item: display:block text=[D]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[E]' + // 2nd main button + ' 5: display:block id=fourth text=[F]'; // 3rd main button + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + let signal: number|null = null; + element.addEventListener( + BREADCRUMB_CLICKED, (event: BreadcrumbClickedEvent) => { + const index = Number(event.detail.partIndex); + assertEquals(typeof index, 'number'); + signal = index; + }); + + const buttons = getVisibleBreadcrumbMainButtons(); + assertEquals(3, buttons.length, 'three main buttons should be visible'); + + assert(buttons[0]); + assert(buttons[1]); + assert(buttons[2]); + + signal = null; + assertEquals('A', buttons[0].textContent); + assertFalse(buttons[0].hasAttribute('disabled')); + buttons[0].click(); + assertEquals(element.parts.indexOf('A'), signal); + + signal = null; + assertEquals('E', buttons[1].textContent); + assertFalse(buttons[1].hasAttribute('disabled')); + buttons[1].click(); + assertEquals(element.parts.indexOf('E'), signal); + + signal = null; + assertEquals('F', buttons[2].textContent); + assertTrue(buttons[2].hasAttribute('disabled')); + buttons[2].click(); // Ignored: the last main button is always disabled. + assertEquals(null, signal); + + done(); +} + +/** + * Tests that clicking on the menu buttons emits a signal that indicates which + * part of the breadcrumb path was clicked. + */ +export async function testBreadcrumbMenuButtonClicksEmitNumberSignal( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // Clicking the elider button should 'open' its drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('true', elider.getAttribute('aria-expanded')); + + // clang-format off + const opened = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=true,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[D]' + + ' 5: display:block id=fourth text=[E]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(opened, path + ' ' + getBreadcrumbButtonState()); + + let signal: number|null = null; + element.addEventListener( + BREADCRUMB_CLICKED, (event: BreadcrumbClickedEvent) => { + const index = Number(event.detail.partIndex); + assertEquals(typeof index, 'number'); + signal = index; + }); + + const buttons = getBreadcrumbMenuButtons(); + assertEquals(2, buttons.length, 'there should be two drop-down items'); + + assert(buttons[0]); + assert(buttons[1]); + + signal = null; + assertEquals('B', buttons[0].textContent); + assertFalse(buttons[0].hasAttribute('disabled')); + buttons[0].click(); + assertEquals(element.parts.indexOf('B'), signal); + + signal = null; + assertEquals('C', buttons[1].textContent); + assertFalse(buttons[1].hasAttribute('disabled')); + buttons[1].click(); + assertEquals(element.parts.indexOf('C'), signal); + + done(); +} + +/** + * Tests that setting the path closes the the drop-down menu. + */ +export async function testBreadcrumbSetPathClosesEliderButtonDropDownMenu( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // Clicking the elider button should 'open' its drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('true', elider.getAttribute('aria-expanded')); + + // clang-format off + const opened = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=true,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block text=[C]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[D]' + + ' 5: display:block id=fourth text=[E]'; + // clang-format on + + const first = element.parts.join('/'); + assertEquals(opened, first + ' ' + getBreadcrumbButtonState()); + + // Changing the path should 'close' the drop-down menu. + await setAndWaitPath('F/G/H'); + + assertEquals('false', elider.getAttribute('aria-expanded')); + + // clang-format off + const closed = element.path + + ' 1: display:block id=first text=[F]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[G]' + + ' 5: display:block id=fourth text=[H]'; + // clang-format on + + const second = element.parts.join('/'); + assertEquals(closed, second + ' ' + getBreadcrumbButtonState()); + + done(); +} + +/** + * Tests that setting the path updates the <xf-breadcrumb path> attribute. + */ +export async function testBreadcrumbSetPathChangesElementPath( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E/F'); + assertEquals(element.path, element.getAttribute('path')); + + // Change path. + await setAndWaitPath('G/H/I'); + assertEquals(element.path, element.getAttribute('path')); + + done(); +} + +/** + * Tests that opening and closing the elider button drop-down menu adds and + * removes <xf-breadcrumb checked> attribute. + */ +export async function testBreadcrumbEliderButtonOpenCloseChangesElementChecked( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E/F'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + assertFalse(element.hasAttribute('checked')); + + // Clicking the elider button should 'open' its drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('true', elider.getAttribute('aria-expanded')); + assertTrue(element.hasAttribute('checked')); + + // Change path. + await setAndWaitPath('G/H/I/J/K'); + + // Changing the path should 'close' the drop-down menu. + assertEquals('false', elider.getAttribute('aria-expanded')); + assertFalse(element.hasAttribute('checked')); + + done(); +} + +/** + * Tests that opening and closing the elider button drop-down menu adds and + * removes global <html> element state. + */ +export async function testBreadcrumbEliderButtonOpenCloseChangesGlobalState( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E/F'); + + // Elider button drop-down menu should be in the 'closed' state. + const elider = getBreadcrumbEliderButton(); + assertEquals('false', elider.getAttribute('aria-expanded')); + + // Clicking the elider button should 'open' its drop-down menu. + assertFalse(elider.hasAttribute('hidden')); + elider.click(); + assertEquals('true', elider.getAttribute('aria-expanded')); + + // And also change the global element state. + const root = document.documentElement; + assertTrue(root.classList.contains('breadcrumb-elider-expanded')); + + // Change path. + await setAndWaitPath('G/H/I/J/K'); + + // Changing the path should 'close' the drop-down menu. + assertEquals('false', elider.getAttribute('aria-expanded')); + assertFalse(element.hasAttribute('checked')); + + // And clear the global element state. + assertFalse(root.classList.contains('breadcrumb-elider-expanded')); + + done(); +} + +/** + * Tests that wide text path components are rendered elided with ellipsis ... + * an opportunity for adding a tooltip. + */ +export async function testBreadcrumbPartPartsEllipsisElide(done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/VERYVERYVERYVERYWIDEPATHPART'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:none elider[aria-expanded=false,aria-haspopup,aria-label,hidden]' + + ' 3: display:none id=second hidden' + + ' 4: display:none id=third hidden' + + ' 5: display:block id=fourth text=[VERYVERYVERYVERYWIDEPATHPART]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + // The wide part should render its text with ellipsis. + let ellipsis = element.getEllipsisButtons(); + const parts = element.parts; + assert(ellipsis[0]); + assert(parts[1]); + + assertEquals(1, ellipsis.length); + assertEquals(element.parts[1], ellipsis[0].textContent); + + // Add has-tooltip attribute to this ellipsis button. + ellipsis[0].setAttribute('has-tooltip', ''); + const tooltip = element.getToolTipButtons(); + assert(tooltip[0]); + assertEquals(ellipsis[0], tooltip[0]); + + // getEllipsisButtons() should ignore [has-tooltip] buttons. + ellipsis = element.getEllipsisButtons(); + assertEquals(0, ellipsis.length); + + done(); +} + +/** + * Tests that wide text path components in the drop-down menu are rendered + * elided with ellipsis ... an opportunity for adding a tooltip. + */ +export async function testBreadcrumbDropDownMenuPathPartsEllipsisElide( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/VERYVERYVERYVERYWIDEPATHPARTINDEED/C/D'); + + // clang-format off + const expect = element.path + + ' 1: display:block id=first text=[A]' + + ' 2: display:flex elider[aria-expanded=false,aria-haspopup,aria-label]' + + ' dropdown-item: display:block text=[B]' + + ' dropdown-item: display:block' + + ' text=[VERYVERYVERYVERYWIDEPATHPARTINDEED]' + + ' 3: display:none id=second hidden' + + ' 4: display:block id=third text=[C]' + + ' 5: display:block id=fourth text=[D]'; + // clang-format on + + const path = element.parts.join('/'); + assertEquals(expect, path + ' ' + getBreadcrumbButtonState()); + + // Display the dropdown menu. + const elider = getBreadcrumbEliderButton(); + elider.click(); + + const parts = element.parts; + assert(parts[2]); + + // The wide part button should render its text with ellipsis. + let ellipsis = element.getEllipsisButtons(); + assertEquals(1, ellipsis.length); + assert(ellipsis[0]); + assertEquals(parts[2], ellipsis[0].textContent); + + // Add a has-tooltip attribute to the ellipsis button. + ellipsis[0].setAttribute('has-tooltip', ''); + const tooltip = element.getToolTipButtons(); + assertEquals(1, tooltip.length); + assert(tooltip[0]); + assertEquals(ellipsis[0], tooltip[0]); + + // getEllipsisButtons() should ignore [has-tooltip] buttons. + ellipsis = element.getEllipsisButtons(); + assertEquals(0, ellipsis.length); + + done(); +} + +/** + * Tests that breadcrumb getToolTipButtons() service returns all buttons that + * have a [has-tooltip] attribute. + */ +export async function testBreadcrumbButtonHasToolTipAttribute( + done: () => void) { + const element = getBreadcrumb(); + + // Set path. + await setAndWaitPath('A/B/C/D/E'); + + // Add a tool tip to the visible main buttons. + getVisibleBreadcrumbMainButtons().forEach((button) => { + button.setAttribute('has-tooltip', ''); + }); + + // getToolTipButtons() should return those main buttons. + let tooltips = element.getToolTipButtons(); + + assertEquals(3, tooltips.length); + assert(tooltips[0]); + assert(tooltips[1]); + assert(tooltips[2]); + assertEquals('A', tooltips[0].textContent); + assertEquals('D', tooltips[1].textContent); + assertEquals('E', tooltips[2].textContent); + + // Changing the path should clear all tool tips. + await setAndWaitPath('G/H/I/J/K'); + assertEquals(0, element.getToolTipButtons().length); + + // Add tool tips to the drop-down menu buttons. + getBreadcrumbMenuButtons().forEach((button) => { + button.setAttribute('has-tooltip', ''); + }); + + // getToolTipButtons() should return those menu buttons. + tooltips = element.getToolTipButtons(); + assertEquals(2, tooltips.length); + assert(tooltips[0]); + assert(tooltips[1]); + assertEquals('H', tooltips[0].textContent); + assertEquals('I', tooltips[1].textContent); + + // Note: tool tips can be enabled for the elider button. + const elider = getBreadcrumbEliderButton(); + elider.setAttribute('has-tooltip', ''); + + // But getToolTipButtons() must exclude the elider (i18n). + tooltips = element.getToolTipButtons(); + assertEquals(2, tooltips.length); + assert(tooltips[0]); + assert(tooltips[1]); + assertEquals('H', tooltips[0].textContent); + assertEquals('I', tooltips[1].textContent); + + // And changing path should not clear its tool tip (i18n). + await setAndWaitPath('since/the/elider/has/an/i18n/tooltip/aria-label'); + assertEquals(0, element.getToolTipButtons().length); + assertTrue(elider.hasAttribute('has-tooltip')); + + // getEllipsisButtons() must exclude the elider button. + await setAndWaitPath(elider.getAttribute('aria-label')!); + const ellipsis = element.getEllipsisButtons(); + assertEquals(getVisibleBreadcrumbMainButtons()[0], ellipsis[0]); + assertEquals(1, ellipsis.length); + assert(ellipsis[0]); + assertNotEquals(elider, ellipsis[0]); + + done(); +}
diff --git a/ui/file_manager/file_manager/widgets/xf_breadcrumbs_unittest.ts b/ui/file_manager/file_manager/widgets/xf_breadcrumbs_unittest.ts deleted file mode 100644 index 4ee631e..0000000 --- a/ui/file_manager/file_manager/widgets/xf_breadcrumbs_unittest.ts +++ /dev/null
@@ -1,10 +0,0 @@ -// Copyright 2022 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. - -import {assertEquals} from 'chrome://webui-test/chai_assert.js'; - -export function testBla() { - console.log('ITs time!'); - assertEquals(1, 1); -}
diff --git a/ui/file_manager/file_names.gni b/ui/file_manager/file_names.gni index 92d2d2c..b63936e3 100644 --- a/ui/file_manager/file_names.gni +++ b/ui/file_manager/file_names.gni
@@ -270,12 +270,14 @@ "file_manager/state/reducers.ts", "file_manager/state/actions.ts", "file_manager/state/file_key.ts", - "file_manager/widgets/breadcrumbs.ts", - "file_manager/containers/breadcrumbs_container.ts", + "file_manager/widgets/xf_breadcrumb.ts", + "file_manager/containers/breadcrumb_container.ts", ] # HTML template files that are used to generate the ".html.ts" -ts_templates = [ "file_manager/widgets/breadcrumbs.html" ] +ts_templates = [ "file_manager/widgets/xf_breadcrumb.html" ] + +ts_test_files = [ "file_manager/widgets/xf_breadcrumb_unittest.ts" ] ts_generated_templates = [] foreach(_t, ts_templates) {
diff --git a/ui/file_manager/integration_tests/file_manager/breadcrumbs.js b/ui/file_manager/integration_tests/file_manager/breadcrumbs.js index 0703ca1..6e39610b 100644 --- a/ui/file_manager/integration_tests/file_manager/breadcrumbs.js +++ b/ui/file_manager/integration_tests/file_manager/breadcrumbs.js
@@ -14,7 +14,7 @@ const isFilesAppExperimental = await sendTestMessage({name: 'isFilesAppExperimental'}) === 'true'; - return isFilesAppExperimental ? 'xf-breadcrumbs' : 'bread-crumb'; + return isFilesAppExperimental ? 'xf-breadcrumb' : 'bread-crumb'; } testcase.breadcrumbsNavigate = async () => {
diff --git a/ui/file_manager/integration_tests/file_manager/recents.js b/ui/file_manager/integration_tests/file_manager/recents.js index a54cdb5..1a327c7 100644 --- a/ui/file_manager/integration_tests/file_manager/recents.js +++ b/ui/file_manager/integration_tests/file_manager/recents.js
@@ -2,31 +2,34 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {addEntries, ENTRIES, getCaller, getDateWithinLastMonth, pending, repeatUntil, RootPath, sendTestMessage, TestEntryInfo, wait} from '../test_util.js'; +import {addEntries, ENTRIES, getCaller, getDateWithDayDiff, pending, repeatUntil, RootPath, sendTestMessage, TestEntryInfo} from '../test_util.js'; import {testcase} from '../testcase.js'; import {mountCrostini, navigateWithDirectoryTree, openNewWindow, remoteCall, setupAndWaitUntilReady} from './background.js'; import {BASIC_CROSTINI_ENTRY_SET, BASIC_DRIVE_ENTRY_SET, BASIC_LOCAL_ENTRY_SET, NESTED_ENTRY_SET, RECENT_ENTRY_SET} from './test_data.js'; +// Mock files with recently modified dates, be aware the days passed in should +// be larger than 3 to prevent file list from showing "Today/Yesterday", which +// will break the waitForFiles() function. // Test entry for a recently-modified video file. const RECENTLY_MODIFIED_VIDEO = - ENTRIES.world.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.world.cloneWithModifiedDate(getDateWithDayDiff(7)); const RECENTLY_MODIFIED_MOV_VIDEO = - ENTRIES.movFile.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.movFile.cloneWithModifiedDate(getDateWithDayDiff(10)); // Test entry for a recently-modified document file. const RECENTLY_MODIFIED_DOCUMENT = - ENTRIES.docxFile.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.docxFile.cloneWithModifiedDate(getDateWithDayDiff(12)); // Test entries for recent-modified android files. const RECENT_MODIFIED_ANDROID_DOCUMENT = - ENTRIES.documentsText.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.documentsText.cloneWithModifiedDate(getDateWithDayDiff(15)); const RECENT_MODIFIED_ANDROID_IMAGE = - ENTRIES.picturesImage.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.picturesImage.cloneWithModifiedDate(getDateWithDayDiff(20)); const RECENT_MODIFIED_ANDROID_AUDIO = - ENTRIES.musicAudio.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.musicAudio.cloneWithModifiedDate(getDateWithDayDiff(21)); const RECENT_MODIFIED_ANDROID_VIDEO = - ENTRIES.moviesVideo.cloneWithModifiedDate(getDateWithinLastMonth()); + ENTRIES.moviesVideo.cloneWithModifiedDate(getDateWithDayDiff(25)); /** * Enum for supported recent filter types. @@ -955,3 +958,49 @@ await remoteCall.waitForFiles(appId, filesInNewDir); await verifyBreadcrumbsPath(appId, newFolderBreadcrumb); }; + +/** + * Tests the time-period group heading can be displayed in Recents. + */ +testcase.recentsTimePeriodHeadings = async () => { + const todayFile = ENTRIES.hello.cloneWithModifiedDate(getDateWithDayDiff(0)); + const yesterdayFile = + ENTRIES.desktop.cloneWithModifiedDate(getDateWithDayDiff(1)); + const appId = await setupAndWaitUntilReady( + RootPath.DOWNLOADS, [todayFile, yesterdayFile], []); + await navigateToRecent(appId); + await remoteCall.waitForFiles( + appId, TestEntryInfo.getExpectedRows([todayFile, yesterdayFile]), { + // Ignore last modified time because it will show Today/Yesterday + // instead + // of the actual date. + ignoreLastModifiedTime: true, + }); + // Check headings in list view mode. + const todayListItem = + await remoteCall.waitForElement(appId, 'li[group-heading="Today"]'); + chrome.test.assertEq( + todayFile.nameText, todayListItem.attributes['file-name']); + const yesterdayListItem = + await remoteCall.waitForElement(appId, 'li[group-heading="Yesterday"]'); + chrome.test.assertEq( + yesterdayFile.nameText, yesterdayListItem.attributes['file-name']); + + // Switch to grid view. + await remoteCall.waitAndClickElement(appId, '#view-button'); + await remoteCall.waitForElementsCount(appId, ['.grid-title'], 2); + // Check headings in grid view mode. + const groupTitles = await remoteCall.callRemoteTestUtil( + 'deepQueryAllElements', appId, ['.grid-title']); + chrome.test.assertEq(2, groupTitles.length); + const gridItems = await remoteCall.callRemoteTestUtil( + 'deepQueryAllElements', appId, ['.grid-title + .thumbnail-item']); + chrome.test.assertEq(2, gridItems.length); + + chrome.test.assertEq('Today', groupTitles[0].text); + chrome.test.assertEq( + todayFile.nameText, gridItems[0].attributes['file-name']); + chrome.test.assertEq('Yesterday', groupTitles[1].text); + chrome.test.assertEq( + yesterdayFile.nameText, gridItems[1].attributes['file-name']); +};
diff --git a/ui/file_manager/integration_tests/remote_call.js b/ui/file_manager/integration_tests/remote_call.js index fa64b0d..4d396b58 100644 --- a/ui/file_manager/integration_tests/remote_call.js +++ b/ui/file_manager/integration_tests/remote_call.js
@@ -626,11 +626,11 @@ * Waits for the file list turns to the given contents. * @param {string} appId App window Id. * @param {Array<Array<string>>} expected Expected contents of file list. - * @param {{orderCheck:(?boolean|undefined), - * ignoreLastModifiedTime:(?boolean|undefined)}=} opt_options Options of - * the comparison. If orderCheck is true, it also compares the order of - * files. If ignoreLastModifiedTime is true, it compares the file without - * its last modified time. + * @param {{orderCheck:(?boolean|undefined), ignoreFileSize: + * (?boolean|undefined), ignoreLastModifiedTime:(?boolean|undefined)}=} + * opt_options Options of the comparison. If orderCheck is true, it also + * compares the order of files. If ignoreLastModifiedTime is true, it + * compares the file without its last modified time. * @return {Promise} Promise to be fulfilled when the file list turns to the * given contents. */
diff --git a/ui/file_manager/integration_tests/test_util.js b/ui/file_manager/integration_tests/test_util.js index b770297..c2878c2f 100644 --- a/ui/file_manager/integration_tests/test_util.js +++ b/ui/file_manager/integration_tests/test_util.js
@@ -1664,16 +1664,15 @@ } /** - * Returns a date time string within last month. This can be used as the + * Returns a date time string with diff days. This can be used as the * lastModifiedTime field of TestEntryInfo object, which is useful to construct * a recent file. + * @param {number} diffDays how many days in diff * @return {string} */ -export function getDateWithinLastMonth() { +export function getDateWithDayDiff(diffDays) { const nowDate = new Date(); - // At least 3 days ago to prevent file list from showing "Today/Yesterday". - const randomDayDiff = 3 + Math.floor(Math.random() * 23); - nowDate.setDate(nowDate.getDate() - randomDayDiff); + nowDate.setDate(nowDate.getDate() - diffDays); // Format: "May 2, 2021, 11:25 AM" return nowDate.toLocaleString('default', { month: 'short',
diff --git a/ui/gl/gl_surface.cc b/ui/gl/gl_surface.cc index a7bf3f5..b4f6d1c6 100644 --- a/ui/gl/gl_surface.cc +++ b/ui/gl/gl_surface.cc
@@ -16,7 +16,6 @@ #include "ui/gfx/swap_result.h" #include "ui/gl/dc_renderer_layer_params.h" #include "ui/gl/gl_context.h" -#include "ui/gl/gl_image.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_surface_format.h" #include "ui/gl/gl_switches.h"
diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h index 877818d8..ee970d63 100644 --- a/ui/gl/gl_surface.h +++ b/ui/gl/gl_surface.h
@@ -26,7 +26,6 @@ #include "ui/gfx/swap_result.h" #include "ui/gl/gl_display.h" #include "ui/gl/gl_export.h" -#include "ui/gl/gl_image.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_surface_format.h" #include "ui/gl/gpu_preference.h" @@ -36,6 +35,7 @@ class DelegatedInkPointRenderer; } // namespace mojom class ColorSpace; +struct OverlayPlaneData; class GpuFence; class VSyncProvider; } // namespace gfx @@ -48,6 +48,7 @@ namespace gl { class GLContext; +class GLImage; class EGLTimestampClient; // Encapsulates a surface that can be rendered to with GL, hiding platform
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc index b362ea0..ba56996c 100644 --- a/ui/gl/gl_surface_egl.cc +++ b/ui/gl/gl_surface_egl.cc
@@ -27,7 +27,6 @@ #include "ui/gl/gl_context.h" #include "ui/gl/gl_display_egl_util.h" #include "ui/gl/gl_display_manager.h" -#include "ui/gl/gl_image.h" #include "ui/gl/gl_surface_presentation_helper.h" #include "ui/gl/gl_surface_stub.h" #include "ui/gl/gl_utils.h"
diff --git a/ui/ozone/demo/gl_renderer.cc b/ui/ozone/demo/gl_renderer.cc index 72672c58..d814a6c 100644 --- a/ui/ozone/demo/gl_renderer.cc +++ b/ui/ozone/demo/gl_renderer.cc
@@ -11,6 +11,7 @@ #include "base/location.h" #include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_event.h" +#include "ui/gfx/color_space.h" #include "ui/gfx/gpu_fence.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h"
diff --git a/ui/ozone/demo/skia/skia_gl_renderer.cc b/ui/ozone/demo/skia/skia_gl_renderer.cc index 3c464fe..5681231 100644 --- a/ui/ozone/demo/skia/skia_gl_renderer.cc +++ b/ui/ozone/demo/skia/skia_gl_renderer.cc
@@ -19,6 +19,7 @@ #include "third_party/skia/include/gpu/GrBackendSurface.h" #include "third_party/skia/include/gpu/gl/GrGLAssembleInterface.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h" +#include "ui/gfx/color_space.h" #include "ui/gfx/gpu_fence.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h"
diff --git a/ui/ozone/demo/surfaceless_gl_renderer.cc b/ui/ozone/demo/surfaceless_gl_renderer.cc index 0c8db95..d44e70b 100644 --- a/ui/ozone/demo/surfaceless_gl_renderer.cc +++ b/ui/ozone/demo/surfaceless_gl_renderer.cc
@@ -21,7 +21,6 @@ #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_fence.h" -#include "ui/gl/gl_image.h" #include "ui/gl/gl_image_native_pixmap.h" #include "ui/gl/gl_surface.h" #include "ui/gl/init/gl_factory.h"
diff --git a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc index 0bd8223..0cd79d3 100644 --- a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc +++ b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
@@ -89,15 +89,7 @@ GLImageNativePixmapTestDelegate<gfx::BufferUsage::SCANOUT, gfx::BufferFormat::BGRA_8888>>; -#if BUILDFLAG(IS_CHROMEOS) -// Disabled due to failures on ChromeOS MSan builder. -// TODO(crbug.com/1314304) Reenable the test. -#define MAYBE_GLImageNativePixmapScanoutBGRA \ - DISABLED_GLImageNativePixmapScanoutBGRA -#else -#define MAYBE_GLImageNativePixmapScanoutBGRA GLImageNativePixmapScanoutBGRA -#endif -INSTANTIATE_TYPED_TEST_SUITE_P(MAYBE_GLImageNativePixmapScanoutBGRA, +INSTANTIATE_TYPED_TEST_SUITE_P(GLImageNativePixmapScanoutBGRA, GLImageTest, GLImageScanoutType);
diff --git a/ui/ozone/platform/cast/gl_surface_cast.h b/ui/ozone/platform/cast/gl_surface_cast.h index c5339ba..4727050 100644 --- a/ui/ozone/platform/cast/gl_surface_cast.h +++ b/ui/ozone/platform/cast/gl_surface_cast.h
@@ -12,7 +12,6 @@ #include "ui/gfx/native_widget_types.h" #include "ui/gfx/overlay_transform.h" #include "ui/gfx/swap_result.h" -#include "ui/gl/gl_image.h" #include "ui/gl/gl_surface_egl.h" namespace ui {
diff --git a/ui/ozone/platform/headless/headless_surface_factory.cc b/ui/ozone/platform/headless/headless_surface_factory.cc index 8f360e4..fbcf7a52 100644 --- a/ui/ozone/platform/headless/headless_surface_factory.cc +++ b/ui/ozone/platform/headless/headless_surface_factory.cc
@@ -229,8 +229,8 @@ std::vector<gl::GLImplementationParts> HeadlessSurfaceFactory::GetAllowedGLImplementations() { return std::vector<gl::GLImplementationParts>{ - gl::GLImplementationParts(gl::kGLImplementationEGLGLES2), gl::GLImplementationParts(gl::ANGLEImplementation::kSwiftShader), + gl::GLImplementationParts(gl::kGLImplementationEGLGLES2), gl::GLImplementationParts(gl::ANGLEImplementation::kDefault), }; }
diff --git a/ui/wm/BUILD.gn b/ui/wm/BUILD.gn index 0671f48..5ced3cfb 100644 --- a/ui/wm/BUILD.gn +++ b/ui/wm/BUILD.gn
@@ -6,6 +6,8 @@ import("//build/config/ui.gni") import("//testing/test.gni") +assert(use_aura) + component("wm") { output_name = "ui_wm" sources = [
diff --git a/ui/wm/public/BUILD.gn b/ui/wm/public/BUILD.gn index b4ae939..16ae597 100644 --- a/ui/wm/public/BUILD.gn +++ b/ui/wm/public/BUILD.gn
@@ -2,6 +2,10 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/ui.gni") + +assert(use_aura) + component("public") { output_name = "wm_public"