diff --git a/device/bluetooth/dbus/bluetooth_adapter_client.cc b/device/bluetooth/dbus/bluetooth_adapter_client.cc index f5959ef39073ae..9f7288e9fec3ea 100644 --- a/device/bluetooth/dbus/bluetooth_adapter_client.cc +++ b/device/bluetooth/dbus/bluetooth_adapter_client.cc @@ -328,7 +328,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, // BluetoothAdapterClient override. void RemoveDevice(const dbus::ObjectPath& object_path, const dbus::ObjectPath& device_path, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { dbus::MethodCall method_call(bluetooth_adapter::kBluetoothAdapterInterface, bluetooth_adapter::kRemoveDevice); @@ -346,7 +346,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, object_proxy->CallMethodWithErrorCallback( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, base::BindOnce(&BluetoothAdapterClientImpl::OnSuccess, - weak_ptr_factory_.GetWeakPtr(), callback), + weak_ptr_factory_.GetWeakPtr(), std::move(callback)), base::BindOnce(&BluetoothAdapterClientImpl::OnError, weak_ptr_factory_.GetWeakPtr(), std::move(error_callback))); @@ -355,7 +355,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, // BluetoothAdapterClient override. void SetDiscoveryFilter(const dbus::ObjectPath& object_path, const DiscoveryFilter& discovery_filter, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { dbus::MethodCall method_call(bluetooth_adapter::kBluetoothAdapterInterface, bluetooth_adapter::kSetDiscoveryFilter); @@ -426,7 +426,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, object_proxy->CallMethodWithErrorCallback( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, base::BindOnce(&BluetoothAdapterClientImpl::OnSuccess, - weak_ptr_factory_.GetWeakPtr(), callback), + weak_ptr_factory_.GetWeakPtr(), std::move(callback)), base::BindOnce(&BluetoothAdapterClientImpl::OnError, weak_ptr_factory_.GetWeakPtr(), std::move(error_callback))); @@ -435,7 +435,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, // BluetoothAdapterClient override. void CreateServiceRecord(const dbus::ObjectPath& object_path, const bluez::BluetoothServiceRecordBlueZ& record, - const ServiceRecordCallback& callback, + ServiceRecordCallback callback, ErrorCallback error_callback) override { dbus::MethodCall method_call(bluetooth_adapter::kBluetoothAdapterInterface, bluetooth_adapter::kCreateServiceRecord); @@ -464,7 +464,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, object_proxy->CallMethodWithErrorCallback( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, base::BindOnce(&BluetoothAdapterClientImpl::OnCreateServiceRecord, - weak_ptr_factory_.GetWeakPtr(), callback), + weak_ptr_factory_.GetWeakPtr(), std::move(callback)), base::BindOnce(&BluetoothAdapterClientImpl::OnError, weak_ptr_factory_.GetWeakPtr(), std::move(error_callback))); @@ -473,7 +473,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, // BluetoothAdapterClient override. void RemoveServiceRecord(const dbus::ObjectPath& object_path, uint32_t handle, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { dbus::MethodCall method_call(bluetooth_adapter::kBluetoothAdapterInterface, bluetooth_adapter::kRemoveServiceRecord); @@ -490,7 +490,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, object_proxy->CallMethodWithErrorCallback( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, base::BindOnce(&BluetoothAdapterClientImpl::OnSuccess, - weak_ptr_factory_.GetWeakPtr(), callback), + weak_ptr_factory_.GetWeakPtr(), std::move(callback)), base::BindOnce(&BluetoothAdapterClientImpl::OnError, weak_ptr_factory_.GetWeakPtr(), std::move(error_callback))); @@ -564,14 +564,14 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, } // Called when a response for successful method call is received. - void OnCreateServiceRecord(const ServiceRecordCallback& callback, + void OnCreateServiceRecord(ServiceRecordCallback callback, dbus::Response* response) { DCHECK(response); dbus::MessageReader reader(response); uint32_t handle = 0; if (!reader.PopUint32(&handle)) LOG(ERROR) << "Invalid response from CreateServiceRecord."; - callback.Run(handle); + std::move(callback).Run(handle); } // Called when a response for successful method call is received. diff --git a/device/bluetooth/dbus/bluetooth_adapter_client.h b/device/bluetooth/dbus/bluetooth_adapter_client.h index f9e91dfc053eda..859f3b62a2b797 100644 --- a/device/bluetooth/dbus/bluetooth_adapter_client.h +++ b/device/bluetooth/dbus/bluetooth_adapter_client.h @@ -147,7 +147,7 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterClient : public BluezDBusClient { virtual Properties* GetProperties(const dbus::ObjectPath& object_path) = 0; // Callback used to send back the handle of a created service record. - using ServiceRecordCallback = base::Callback; + using ServiceRecordCallback = base::OnceCallback; // The ErrorCallback is used by adapter methods to indicate failure. // It receives two arguments: the name of the error in |error_name| and @@ -193,7 +193,7 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterClient : public BluezDBusClient { // and discards any pairing information. virtual void RemoveDevice(const dbus::ObjectPath& object_path, const dbus::ObjectPath& device_path, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) = 0; // Sets the device discovery filter on the adapter with object path @@ -204,21 +204,21 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterClient : public BluezDBusClient { // will be started right after call to StartDiscovery. virtual void SetDiscoveryFilter(const dbus::ObjectPath& object_path, const DiscoveryFilter& discovery_filter, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) = 0; // Creates the service record |record| on the adapter with the object path // |object_path|. virtual void CreateServiceRecord(const dbus::ObjectPath& object_path, const BluetoothServiceRecordBlueZ& record, - const ServiceRecordCallback& callback, + ServiceRecordCallback callback, ErrorCallback error_callback) = 0; // Removes the service record with the uuid |uuid| on the adapter with the // object path |object_path|. virtual void RemoveServiceRecord(const dbus::ObjectPath& object_path, uint32_t handle, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) = 0; virtual void SetLongTermKeys( diff --git a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc index 832c7aed057af1..571fea1b444624 100644 --- a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc +++ b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc @@ -220,7 +220,7 @@ void FakeBluetoothAdapterClient::UnpauseDiscovery( void FakeBluetoothAdapterClient::RemoveDevice( const dbus::ObjectPath& object_path, const dbus::ObjectPath& device_path, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) { if (object_path != dbus::ObjectPath(kAdapterPath)) { std::move(error_callback).Run(kNoResponseError, ""); @@ -229,7 +229,7 @@ void FakeBluetoothAdapterClient::RemoveDevice( VLOG(1) << "RemoveDevice: " << object_path.value() << " " << device_path.value(); - callback.Run(); + std::move(callback).Run(); FakeBluetoothDeviceClient* device_client = static_cast( @@ -248,7 +248,7 @@ void FakeBluetoothAdapterClient::MakeStartDiscoveryFail() { void FakeBluetoothAdapterClient::SetDiscoveryFilter( const dbus::ObjectPath& object_path, const DiscoveryFilter& discovery_filter, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) { if (object_path != dbus::ObjectPath(kAdapterPath)) { PostDelayedTask( @@ -266,24 +266,24 @@ void FakeBluetoothAdapterClient::SetDiscoveryFilter( discovery_filter_.reset(new DiscoveryFilter()); discovery_filter_->CopyFrom(discovery_filter); - PostDelayedTask(callback); + PostDelayedTask(std::move(callback)); } void FakeBluetoothAdapterClient::CreateServiceRecord( const dbus::ObjectPath& object_path, const bluez::BluetoothServiceRecordBlueZ& record, - const ServiceRecordCallback& callback, + ServiceRecordCallback callback, ErrorCallback error_callback) { ++last_handle_; records_.insert( std::pair(last_handle_, record)); - callback.Run(last_handle_); + std::move(callback).Run(last_handle_); } void FakeBluetoothAdapterClient::RemoveServiceRecord( const dbus::ObjectPath& object_path, uint32_t handle, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) { auto it = records_.find(handle); if (it == records_.end()) { @@ -293,7 +293,7 @@ void FakeBluetoothAdapterClient::RemoveServiceRecord( return; } records_.erase(it); - callback.Run(); + std::move(callback).Run(); } void FakeBluetoothAdapterClient::SetLongTermKeys( diff --git a/device/bluetooth/dbus/fake_bluetooth_adapter_client.h b/device/bluetooth/dbus/fake_bluetooth_adapter_client.h index 53fdfbd19b972a..e3b554886c1f01 100644 --- a/device/bluetooth/dbus/fake_bluetooth_adapter_client.h +++ b/device/bluetooth/dbus/fake_bluetooth_adapter_client.h @@ -64,19 +64,19 @@ class DEVICE_BLUETOOTH_EXPORT FakeBluetoothAdapterClient ErrorCallback error_callback) override; void RemoveDevice(const dbus::ObjectPath& object_path, const dbus::ObjectPath& device_path, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override; void SetDiscoveryFilter(const dbus::ObjectPath& object_path, const DiscoveryFilter& discovery_filter, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override; void CreateServiceRecord(const dbus::ObjectPath& object_path, const bluez::BluetoothServiceRecordBlueZ& record, - const ServiceRecordCallback& callback, + ServiceRecordCallback callback, ErrorCallback error_callback) override; void RemoveServiceRecord(const dbus::ObjectPath& object_path, uint32_t handle, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override; void SetLongTermKeys(const dbus::ObjectPath& object_path, const std::vector>& long_term_keys, diff --git a/services/data_decoder/image_decoder_impl_unittest.cc b/services/data_decoder/image_decoder_impl_unittest.cc index 08669eed7333ae..ffa4445b51d6cf 100644 --- a/services/data_decoder/image_decoder_impl_unittest.cc +++ b/services/data_decoder/image_decoder_impl_unittest.cc @@ -62,7 +62,7 @@ class Request { decoder_->DecodeImage( image, mojom::ImageCodec::DEFAULT, shrink, kTestMaxImageSize, gfx::Size(), // Take the smallest frame (there's only one frame). - base::Bind(&Request::OnRequestDone, base::Unretained(this))); + base::BindOnce(&Request::OnRequestDone, base::Unretained(this))); } const SkBitmap& bitmap() const { return bitmap_; } diff --git a/services/data_decoder/public/cpp/decode_image.cc b/services/data_decoder/public/cpp/decode_image.cc index 5707600c8c4aee..fe18c25893829c 100644 --- a/services/data_decoder/public/cpp/decode_image.cc +++ b/services/data_decoder/public/cpp/decode_image.cc @@ -104,8 +104,8 @@ void DecodeAnimation(DataDecoder* data_decoder, // |call_once| runs |callback| on its first invocation. auto call_once = base::AdaptCallbackForRepeating(std::move(callback)); - decoder.set_disconnect_handler(base::BindOnce( - call_once, base::Passed(std::vector()))); + decoder.set_disconnect_handler( + base::BindOnce(call_once, std::vector())); mojom::ImageDecoder* raw_decoder = decoder.get(); raw_decoder->DecodeAnimation( diff --git a/services/data_decoder/public/cpp/safe_web_bundle_parser_unittest.cc b/services/data_decoder/public/cpp/safe_web_bundle_parser_unittest.cc index 5310b30b7811d6..8709166d18b7e4 100644 --- a/services/data_decoder/public/cpp/safe_web_bundle_parser_unittest.cc +++ b/services/data_decoder/public/cpp/safe_web_bundle_parser_unittest.cc @@ -139,7 +139,7 @@ TEST_F(SafeWebBundleParserTest, ParseGoldenFile) { { base::RunLoop run_loop; parser.ParseMetadata(base::BindOnce( - [](base::Closure quit_closure, + [](base::OnceClosure quit_closure, mojom::BundleMetadataPtr* metadata_result, mojom::BundleMetadataPtr metadata, mojom::BundleMetadataParseErrorPtr error) { @@ -163,7 +163,7 @@ TEST_F(SafeWebBundleParserTest, ParseGoldenFile) { entry.second->response_locations[0]->offset, entry.second->response_locations[0]->length, base::BindOnce( - [](base::Closure quit_closure, const std::string url, + [](base::OnceClosure quit_closure, const std::string url, std::map* responses, mojom::BundleResponsePtr response, mojom::BundleResponseParseErrorPtr error) { @@ -259,7 +259,7 @@ TEST_F(SafeWebBundleParserTest, ConnectionError) { base::RunLoop run_loop; bool parsed = false; parser.ParseMetadata(base::BindOnce( - [](base::Closure quit_closure, bool* parsed, + [](base::OnceClosure quit_closure, bool* parsed, mojom::BundleMetadataPtr metadata, mojom::BundleMetadataParseErrorPtr error) { EXPECT_FALSE(metadata); diff --git a/services/data_decoder/web_bundle_parser_fuzzer.cc b/services/data_decoder/web_bundle_parser_fuzzer.cc index 457b4e0c207e4d..df56a878f86a2c 100644 --- a/services/data_decoder/web_bundle_parser_fuzzer.cc +++ b/services/data_decoder/web_bundle_parser_fuzzer.cc @@ -61,8 +61,8 @@ class WebBundleParserFuzzer { std::move(data_source_remote)); quit_loop_ = run_loop->QuitClosure(); - parser_->ParseMetadata(base::Bind(&WebBundleParserFuzzer::OnParseMetadata, - base::Unretained(this))); + parser_->ParseMetadata(base::BindOnce( + &WebBundleParserFuzzer::OnParseMetadata, base::Unretained(this))); } void OnParseMetadata(data_decoder::mojom::BundleMetadataPtr metadata, @@ -84,9 +84,10 @@ class WebBundleParserFuzzer { return; } - parser_->ParseResponse(locations_[index]->offset, locations_[index]->length, - base::Bind(&WebBundleParserFuzzer::OnParseResponse, - base::Unretained(this), index)); + parser_->ParseResponse( + locations_[index]->offset, locations_[index]->length, + base::BindOnce(&WebBundleParserFuzzer::OnParseResponse, + base::Unretained(this), index)); } void OnParseResponse(size_t index, @@ -98,7 +99,7 @@ class WebBundleParserFuzzer { private: mojo::Remote parser_; DataSource data_source_; - base::Closure quit_loop_; + base::OnceClosure quit_loop_; std::vector locations_; }; diff --git a/services/data_decoder/xml_parser_fuzzer.cc b/services/data_decoder/xml_parser_fuzzer.cc index 8cd6f62dba4acc..7b23ff63a503c0 100644 --- a/services/data_decoder/xml_parser_fuzzer.cc +++ b/services/data_decoder/xml_parser_fuzzer.cc @@ -15,7 +15,7 @@ namespace { -void OnParseXml(base::Closure quit_loop, +void OnParseXml(base::OnceClosure quit_loop, base::Optional value, const base::Optional& error) { std::move(quit_loop).Run(); @@ -38,7 +38,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { base::SingleThreadTaskExecutor main_thread_task_executor; base::RunLoop run_loop; xml_parser.Parse(std::string(data_ptr, size), - base::Bind(&OnParseXml, run_loop.QuitClosure())); + base::BindOnce(&OnParseXml, run_loop.QuitClosure())); run_loop.Run(); return 0; diff --git a/services/data_decoder/xml_parser_unittest.cc b/services/data_decoder/xml_parser_unittest.cc index f0d7868e406e26..561826d2b5227b 100644 --- a/services/data_decoder/xml_parser_unittest.cc +++ b/services/data_decoder/xml_parser_unittest.cc @@ -35,7 +35,8 @@ void TestParseXml(const std::string& xml, const std::string& json) { std::unique_ptr actual_value; base::Optional error; - parser.Parse(xml, base::Bind(&TestParseXmlCallback, &actual_value, &error)); + parser.Parse(xml, + base::BindOnce(&TestParseXmlCallback, &actual_value, &error)); if (json.empty()) { EXPECT_TRUE(error); EXPECT_FALSE(actual_value) diff --git a/services/device/battery/battery_monitor_impl.cc b/services/device/battery/battery_monitor_impl.cc index 0fb7d8c5988d1e..d537667bc3740b 100644 --- a/services/device/battery/battery_monitor_impl.cc +++ b/services/device/battery/battery_monitor_impl.cc @@ -24,8 +24,9 @@ void BatteryMonitorImpl::Create( BatteryMonitorImpl::BatteryMonitorImpl() : status_to_report_(false) { // NOTE: DidChange may be called before AddCallback returns. This is done to // report current status. - subscription_ = BatteryStatusService::GetInstance()->AddCallback( - base::Bind(&BatteryMonitorImpl::DidChange, base::Unretained(this))); + subscription_ = + BatteryStatusService::GetInstance()->AddCallback(base::BindRepeating( + &BatteryMonitorImpl::DidChange, base::Unretained(this))); } BatteryMonitorImpl::~BatteryMonitorImpl() {} diff --git a/services/device/battery/battery_monitor_impl_unittest.cc b/services/device/battery/battery_monitor_impl_unittest.cc index 56bd27e003e5f8..2c9782ed6cd7c9 100644 --- a/services/device/battery/battery_monitor_impl_unittest.cc +++ b/services/device/battery/battery_monitor_impl_unittest.cc @@ -28,7 +28,7 @@ namespace { void ExpectBatteryStatus(bool* out_called, const mojom::BatteryStatus& expected, - const base::Closure& quit_closure, + base::OnceClosure quit_closure, mojom::BatteryStatusPtr status) { if (out_called) *out_called = true; @@ -36,7 +36,7 @@ void ExpectBatteryStatus(bool* out_called, EXPECT_EQ(expected.charging_time, status->charging_time); EXPECT_EQ(expected.discharging_time, status->discharging_time); EXPECT_EQ(expected.level, status->level); - quit_closure.Run(); + std::move(quit_closure).Run(); } class FakeBatteryStatusManager : public BatteryStatusManager { @@ -130,7 +130,7 @@ TEST_F(BatteryMonitorImplTest, BatteryManagerDefaultValues) { default_status.discharging_time = std::numeric_limits::infinity(); default_status.level = 1.0; base::RunLoop run_loop; - battery_monitor_->QueryNextStatus(base::Bind( + battery_monitor_->QueryNextStatus(base::BindOnce( &ExpectBatteryStatus, nullptr, default_status, run_loop.QuitClosure())); run_loop.Run(); EXPECT_TRUE(battery_manager()->started()); @@ -148,8 +148,8 @@ TEST_F(BatteryMonitorImplTest, BatteryManagerPredefinedValues) { battery_manager()->set_battery_status(status); base::RunLoop run_loop; - battery_monitor_->QueryNextStatus(base::Bind(&ExpectBatteryStatus, nullptr, - status, run_loop.QuitClosure())); + battery_monitor_->QueryNextStatus(base::BindOnce( + &ExpectBatteryStatus, nullptr, status, run_loop.QuitClosure())); run_loop.Run(); EXPECT_TRUE(battery_manager()->started()); } @@ -168,7 +168,7 @@ TEST_F(BatteryMonitorImplTest, BatteryManagerInvokeUpdate) { // The first time query should succeed. base::RunLoop run_loop1; - battery_monitor_->QueryNextStatus(base::Bind( + battery_monitor_->QueryNextStatus(base::BindOnce( &ExpectBatteryStatus, nullptr, status, run_loop1.QuitClosure())); run_loop1.Run(); EXPECT_TRUE(battery_manager()->started()); @@ -177,7 +177,7 @@ TEST_F(BatteryMonitorImplTest, BatteryManagerInvokeUpdate) { bool called = false; status.level = 0.6; base::RunLoop run_loop2; - battery_monitor_->QueryNextStatus(base::Bind( + battery_monitor_->QueryNextStatus(base::BindOnce( &ExpectBatteryStatus, &called, status, run_loop2.QuitClosure())); base::RunLoop().RunUntilIdle(); EXPECT_FALSE(called); diff --git a/services/device/battery/battery_status_manager_linux.cc b/services/device/battery/battery_status_manager_linux.cc index 3811cc680d3d5a..1a5cbf7895bb6f 100644 --- a/services/device/battery/battery_status_manager_linux.cc +++ b/services/device/battery/battery_status_manager_linux.cc @@ -304,7 +304,9 @@ mojom::BatteryStatus ComputeWebBatteryStatus(BatteryProperties* properties) { case UPOWER_DEVICE_STATE_FULL: { break; } - default: { status.charging_time = std::numeric_limits::infinity(); } + default: { + status.charging_time = std::numeric_limits::infinity(); + } } return status; } @@ -345,13 +347,13 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread system_bus_.get(), UPowerObject::PropertyChangedCallback()); upower_->proxy()->ConnectToSignal( kUPowerServiceName, kUPowerSignalDeviceAdded, - base::Bind(&BatteryStatusNotificationThread::DeviceAdded, - base::Unretained(this)), + base::BindRepeating(&BatteryStatusNotificationThread::DeviceAdded, + base::Unretained(this)), base::DoNothing()); upower_->proxy()->ConnectToSignal( kUPowerServiceName, kUPowerSignalDeviceRemoved, - base::Bind(&BatteryStatusNotificationThread::DeviceRemoved, - base::Unretained(this)), + base::BindRepeating(&BatteryStatusNotificationThread::DeviceRemoved, + base::Unretained(this)), base::DoNothing()); FindBatteryDevice(); @@ -460,8 +462,8 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread // to the Changed signal. battery_->proxy()->ConnectToSignal( kUPowerDeviceInterfaceName, kUPowerDeviceSignalChanged, - base::Bind(&BatteryStatusNotificationThread::BatteryChanged, - base::Unretained(this)), + base::BindRepeating(&BatteryStatusNotificationThread::BatteryChanged, + base::Unretained(this)), base::DoNothing()); } } @@ -486,8 +488,9 @@ class BatteryStatusManagerLinux::BatteryStatusNotificationThread const dbus::ObjectPath& device_path) { return std::make_unique( system_bus_.get(), device_path, - base::Bind(&BatteryStatusNotificationThread::BatteryPropertyChanged, - base::Unretained(this))); + base::BindRepeating( + &BatteryStatusNotificationThread::BatteryPropertyChanged, + base::Unretained(this))); } void DeviceAdded(dbus::Signal* /* signal */) { diff --git a/services/device/battery/battery_status_manager_linux_unittest.cc b/services/device/battery/battery_status_manager_linux_unittest.cc index b4c7abfed8a4cf..6c8b578d7697a6 100644 --- a/services/device/battery/battery_status_manager_linux_unittest.cc +++ b/services/device/battery/battery_status_manager_linux_unittest.cc @@ -504,8 +504,8 @@ void BatteryStatusManagerLinuxTest::UPowerSignalDeviceRemoved( void BatteryStatusManagerLinuxTest::StartBatteryStatusManagerLinux() { manager_ = BatteryStatusManagerLinux::CreateForTesting( - base::Bind(&BatteryStatusManagerLinuxTest::BatteryUpdateCallback, - base::Unretained(this)), + base::BindRepeating(&BatteryStatusManagerLinuxTest::BatteryUpdateCallback, + base::Unretained(this)), mock_bus_.get()); manager_->StartListeningBatteryChange(); SyncWithNotifierThread(); diff --git a/services/device/battery/battery_status_manager_win.cc b/services/device/battery/battery_status_manager_win.cc index 3c8d9735ba4ce1..3e8ba408e51ba9 100644 --- a/services/device/battery/battery_status_manager_win.cc +++ b/services/device/battery/battery_status_manager_win.cc @@ -130,9 +130,10 @@ class BatteryStatusObserver { bool CreateMessageWindow() { // TODO(timvolodine): consider reusing the message window of PowerMonitor. window_ = std::make_unique(); - if (!window_->CreateNamed(base::Bind(&BatteryStatusObserver::HandleMessage, - base::Unretained(this)), - base::string16(kWindowClassName))) { + if (!window_->CreateNamed( + base::BindRepeating(&BatteryStatusObserver::HandleMessage, + base::Unretained(this)), + base::string16(kWindowClassName))) { LOG(ERROR) << "Failed to create message window: " << kWindowClassName; window_.reset(); return false; diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc index 366fbd0a74bc08..67f6c9f7136e95 100644 --- a/services/device/battery/battery_status_service.cc +++ b/services/device/battery/battery_status_service.cc @@ -19,11 +19,12 @@ namespace device { BatteryStatusService::BatteryStatusService() : main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()), - update_callback_(base::Bind(&BatteryStatusService::NotifyConsumers, - base::Unretained(this))), + update_callback_( + base::BindRepeating(&BatteryStatusService::NotifyConsumers, + base::Unretained(this))), status_updated_(false), is_shutdown_(false) { - callback_list_.set_removal_callback(base::Bind( + callback_list_.set_removal_callback(base::BindRepeating( &BatteryStatusService::ConsumersChanged, base::Unretained(this))); } diff --git a/services/device/battery/battery_status_service.h b/services/device/battery/battery_status_service.h index 4992788fadaaaf..619e256a05354a 100644 --- a/services/device/battery/battery_status_service.h +++ b/services/device/battery/battery_status_service.h @@ -20,7 +20,7 @@ class BatteryStatusManager; class BatteryStatusService { public: - typedef base::Callback + typedef base::RepeatingCallback BatteryUpdateCallback; typedef base::CallbackList BatteryUpdateCallbackList; diff --git a/services/device/battery/battery_status_service_unittest.cc b/services/device/battery/battery_status_service_unittest.cc index 58b37ae27dd8ab..67fcdbb01e3ea8 100644 --- a/services/device/battery/battery_status_service_unittest.cc +++ b/services/device/battery/battery_status_service_unittest.cc @@ -62,10 +62,10 @@ class BatteryStatusServiceTest : public testing::Test { typedef BatteryStatusService::BatteryUpdateSubscription BatterySubscription; void SetUp() override { - callback1_ = base::Bind(&BatteryStatusServiceTest::Callback1, - base::Unretained(this)); - callback2_ = base::Bind(&BatteryStatusServiceTest::Callback2, - base::Unretained(this)); + callback1_ = base::BindRepeating(&BatteryStatusServiceTest::Callback1, + base::Unretained(this)); + callback2_ = base::BindRepeating(&BatteryStatusServiceTest::Callback2, + base::Unretained(this)); // We keep a raw pointer to the FakeBatteryManager, which we expect to // remain valid for the lifetime of the BatteryStatusService. diff --git a/services/device/bluetooth/bluetooth_system_unittest.cc b/services/device/bluetooth/bluetooth_system_unittest.cc index b7aaf18df86561..885f4c99268d9f 100644 --- a/services/device/bluetooth/bluetooth_system_unittest.cc +++ b/services/device/bluetooth/bluetooth_system_unittest.cc @@ -391,28 +391,28 @@ class DEVICE_BLUETOOTH_EXPORT TestBluetoothAdapterClient void RemoveDevice(const dbus::ObjectPath& object_path, const dbus::ObjectPath& device_path, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { NOTIMPLEMENTED(); } void SetDiscoveryFilter(const dbus::ObjectPath& object_path, const DiscoveryFilter& discovery_filter, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { NOTIMPLEMENTED(); } void CreateServiceRecord(const dbus::ObjectPath& object_path, const bluez::BluetoothServiceRecordBlueZ& record, - const ServiceRecordCallback& callback, + ServiceRecordCallback callback, ErrorCallback error_callback) override { NOTIMPLEMENTED(); } void RemoveServiceRecord(const dbus::ObjectPath& object_path, uint32_t handle, - const base::Closure& callback, + base::OnceClosure callback, ErrorCallback error_callback) override { NOTIMPLEMENTED(); } diff --git a/services/device/fingerprint/fingerprint_chromeos.cc b/services/device/fingerprint/fingerprint_chromeos.cc index d70726cdcbe225..29cf0d812eab17 100644 --- a/services/device/fingerprint/fingerprint_chromeos.cc +++ b/services/device/fingerprint/fingerprint_chromeos.cc @@ -107,8 +107,8 @@ void FingerprintChromeOS::StartEnrollSession(const std::string& user_id, return; GetBiodClient()->EndAuthSession( - base::Bind(&FingerprintChromeOS::OnCloseAuthSessionForEnroll, - weak_ptr_factory_.GetWeakPtr(), user_id, label)); + base::BindOnce(&FingerprintChromeOS::OnCloseAuthSessionForEnroll, + weak_ptr_factory_.GetWeakPtr(), user_id, label)); } void FingerprintChromeOS::OnCloseAuthSessionForEnroll( @@ -120,8 +120,8 @@ void FingerprintChromeOS::OnCloseAuthSessionForEnroll( GetBiodClient()->StartEnrollSession( user_id, label, - base::Bind(&FingerprintChromeOS::OnStartEnrollSession, - weak_ptr_factory_.GetWeakPtr())); + base::BindOnce(&FingerprintChromeOS::OnStartEnrollSession, + weak_ptr_factory_.GetWeakPtr())); } void FingerprintChromeOS::CancelCurrentEnrollSession( @@ -165,8 +165,8 @@ void FingerprintChromeOS::StartAuthSession() { weak_ptr_factory_.GetWeakPtr())); } else { GetBiodClient()->StartAuthSession( - base::Bind(&FingerprintChromeOS::OnStartAuthSession, - weak_ptr_factory_.GetWeakPtr())); + base::BindOnce(&FingerprintChromeOS::OnStartAuthSession, + weak_ptr_factory_.GetWeakPtr())); } } @@ -175,8 +175,8 @@ void FingerprintChromeOS::OnCloseEnrollSessionForAuth(bool result) { return; GetBiodClient()->StartAuthSession( - base::Bind(&FingerprintChromeOS::OnStartAuthSession, - weak_ptr_factory_.GetWeakPtr())); + base::BindOnce(&FingerprintChromeOS::OnStartAuthSession, + weak_ptr_factory_.GetWeakPtr())); } void FingerprintChromeOS::EndCurrentAuthSession( @@ -207,8 +207,8 @@ void FingerprintChromeOS::AddFingerprintObserver( mojo::Remote observer( std::move(pending_observer)); observer.set_disconnect_handler( - base::Bind(&FingerprintChromeOS::OnFingerprintObserverDisconnected, - base::Unretained(this), observer.get())); + base::BindOnce(&FingerprintChromeOS::OnFingerprintObserverDisconnected, + base::Unretained(this), observer.get())); observers_.push_back(std::move(observer)); } diff --git a/services/device/fingerprint/fingerprint_chromeos_unittest.cc b/services/device/fingerprint/fingerprint_chromeos_unittest.cc index 988538867f1b34..23e49682aea402 100644 --- a/services/device/fingerprint/fingerprint_chromeos_unittest.cc +++ b/services/device/fingerprint/fingerprint_chromeos_unittest.cc @@ -149,14 +149,14 @@ TEST_F(FingerprintChromeOSTest, FingerprintObserverTest) { std::string label; chromeos::FakeBiodClient::Get()->StartEnrollSession( user_id, label, - base::Bind(&FingerprintChromeOSTest::onStartSession, - base::Unretained(this))); + base::BindOnce(&FingerprintChromeOSTest::onStartSession, + base::Unretained(this))); base::RunLoop().RunUntilIdle(); GenerateEnrollScanDoneSignal(); base::RunLoop().RunUntilIdle(); EXPECT_EQ(observer.enroll_scan_dones(), 1); - chromeos::FakeBiodClient::Get()->StartAuthSession(base::Bind( + chromeos::FakeBiodClient::Get()->StartAuthSession(base::BindOnce( &FingerprintChromeOSTest::onStartSession, base::Unretained(this))); base::RunLoop().RunUntilIdle(); GenerateAuthScanDoneSignal(); diff --git a/services/device/generic_sensor/fake_platform_sensor_and_provider.cc b/services/device/generic_sensor/fake_platform_sensor_and_provider.cc index a9badf7ad8ff7e..60d210d55bbe67 100644 --- a/services/device/generic_sensor/fake_platform_sensor_and_provider.cc +++ b/services/device/generic_sensor/fake_platform_sensor_and_provider.cc @@ -6,9 +6,9 @@ #include +using ::testing::_; using ::testing::Invoke; using ::testing::Return; -using ::testing::_; namespace device { @@ -60,10 +60,10 @@ double FakePlatformSensor::GetMinimumSupportedFrequency() { FakePlatformSensorProvider::FakePlatformSensorProvider() { ON_CALL(*this, DoCreateSensorInternal(_, _, _)) - .WillByDefault(Invoke( - [](mojom::SensorType, scoped_refptr sensor, - const PlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(std::move(sensor)); + .WillByDefault( + Invoke([](mojom::SensorType, scoped_refptr sensor, + PlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(std::move(sensor)); })); } @@ -79,12 +79,12 @@ SensorReadingSharedBuffer* FakePlatformSensorProvider::GetSensorReadingBuffer( void FakePlatformSensorProvider::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { DCHECK(type >= mojom::SensorType::kMinValue && type <= mojom::SensorType::kMaxValue); auto sensor = base::MakeRefCounted(type, reading_buffer, this); - DoCreateSensorInternal(type, std::move(sensor), callback); + DoCreateSensorInternal(type, std::move(sensor), std::move(callback)); } MockPlatformSensorClient::MockPlatformSensorClient() { diff --git a/services/device/generic_sensor/fake_platform_sensor_and_provider.h b/services/device/generic_sensor/fake_platform_sensor_and_provider.h index eeaac4f02f3415..c9e7aba123aff3 100644 --- a/services/device/generic_sensor/fake_platform_sensor_and_provider.h +++ b/services/device/generic_sensor/fake_platform_sensor_and_provider.h @@ -55,14 +55,14 @@ class FakePlatformSensorProvider : public PlatformSensorProvider { MOCK_METHOD3(DoCreateSensorInternal, void(mojom::SensorType, scoped_refptr, - const CreateSensorCallback&)); + CreateSensorCallback)); SensorReadingSharedBuffer* GetSensorReadingBuffer(mojom::SensorType type); private: void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; DISALLOW_COPY_AND_ASSIGN(FakePlatformSensorProvider); }; diff --git a/services/device/generic_sensor/linux/sensor_data_linux.cc b/services/device/generic_sensor/linux/sensor_data_linux.cc index b541b660c755c9..af15f85dbf96ef 100644 --- a/services/device/generic_sensor/linux/sensor_data_linux.cc +++ b/services/device/generic_sensor/linux/sensor_data_linux.cc @@ -31,7 +31,7 @@ void InitAmbientLightSensorData(SensorPathsLinux* data) { data->sensor_file_names.push_back(std::move(file_names)); data->sensor_frequency_file_name = "in_intensity_sampling_frequency"; data->sensor_scale_name = "in_intensity_scale"; - data->apply_scaling_func = base::Bind( + data->apply_scaling_func = base::BindRepeating( [](double scaling_value, double offset, SensorReading& reading) { reading.als.value = scaling_value * (reading.als.value + offset); }); @@ -79,7 +79,7 @@ void InitAccelerometerSensorData(SensorPathsLinux* data) { #if defined(OS_CHROMEOS) data->sensor_scale_name = "in_accel_base_scale"; data->sensor_frequency_file_name = "in_accel_base_sampling_frequency"; - data->apply_scaling_func = base::Bind( + data->apply_scaling_func = base::BindRepeating( [](double scaling_value, double offset, SensorReading& reading) { double scaling = base::kMeanGravityDouble / scaling_value; reading.accel.x = scaling * (reading.accel.x + offset); @@ -90,7 +90,7 @@ void InitAccelerometerSensorData(SensorPathsLinux* data) { data->sensor_scale_name = "in_accel_scale"; data->sensor_offset_file_name = "in_accel_offset"; data->sensor_frequency_file_name = "in_accel_sampling_frequency"; - data->apply_scaling_func = base::Bind( + data->apply_scaling_func = base::BindRepeating( [](double scaling_value, double offset, SensorReading& reading) { // Adapt Linux reading values to generic sensor api specs. reading.accel.x = -scaling_value * (reading.accel.x + offset); @@ -115,19 +115,20 @@ void InitGyroscopeSensorData(SensorPathsLinux* data) { #if defined(OS_CHROMEOS) data->sensor_scale_name = "in_anglvel_base_scale"; data->sensor_frequency_file_name = "in_anglvel_base_frequency"; - data->apply_scaling_func = base::Bind([](double scaling_value, double offset, - SensorReading& reading) { - double scaling = gfx::DegToRad(base::kMeanGravityDouble) / scaling_value; - // Adapt CrOS reading values to generic sensor api specs. - reading.gyro.x = -scaling * (reading.gyro.x + offset); - reading.gyro.y = -scaling * (reading.gyro.y + offset); - reading.gyro.z = -scaling * (reading.gyro.z + offset); - }); + data->apply_scaling_func = base::BindRepeating( + [](double scaling_value, double offset, SensorReading& reading) { + double scaling = + gfx::DegToRad(base::kMeanGravityDouble) / scaling_value; + // Adapt CrOS reading values to generic sensor api specs. + reading.gyro.x = -scaling * (reading.gyro.x + offset); + reading.gyro.y = -scaling * (reading.gyro.y + offset); + reading.gyro.z = -scaling * (reading.gyro.z + offset); + }); #else data->sensor_scale_name = "in_anglvel_scale"; data->sensor_offset_file_name = "in_anglvel_offset"; data->sensor_frequency_file_name = "in_anglvel_sampling_frequency"; - data->apply_scaling_func = base::Bind( + data->apply_scaling_func = base::BindRepeating( [](double scaling_value, double offset, SensorReading& reading) { reading.gyro.x = scaling_value * (reading.gyro.x + offset); reading.gyro.y = scaling_value * (reading.gyro.y + offset); @@ -151,7 +152,7 @@ void InitMagnetometerSensorData(SensorPathsLinux* data) { data->sensor_scale_name = "in_magn_scale"; data->sensor_offset_file_name = "in_magn_offset"; data->sensor_frequency_file_name = "in_magn_sampling_frequency"; - data->apply_scaling_func = base::Bind( + data->apply_scaling_func = base::BindRepeating( [](double scaling_value, double offset, SensorReading& reading) { double scaling = scaling_value * kMicroteslaInGauss; reading.magn.x = scaling * (reading.magn.x + offset); diff --git a/services/device/generic_sensor/linux/sensor_data_linux.h b/services/device/generic_sensor/linux/sensor_data_linux.h index 93d9984ad2ec2a..8a03fc2d6b5845 100644 --- a/services/device/generic_sensor/linux/sensor_data_linux.h +++ b/services/device/generic_sensor/linux/sensor_data_linux.h @@ -19,7 +19,7 @@ union SensorReading; // identify what type of sensor that is and creates a SensorInfoLinux structure // that holds all the necessary information to create a PlatformSensorLinux. struct SensorPathsLinux { - using ReaderFunctor = base::Callback< + using ReaderFunctor = base::RepeatingCallback< void(double scaling, double offset, SensorReading& reading)>; SensorPathsLinux(); diff --git a/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc b/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc index 9032e1f83f4bb7..5218e2df79655a 100644 --- a/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc +++ b/services/device/generic_sensor/platform_sensor_and_provider_unittest.cc @@ -35,35 +35,34 @@ TEST_F(PlatformSensorProviderTest, ResourcesAreFreed) { EXPECT_CALL(*provider_, FreeResources()).Times(2); provider_->CreateSensor( mojom::SensorType::AMBIENT_LIGHT, - base::Bind([](scoped_refptr s) { EXPECT_TRUE(s); })); + base::BindOnce([](scoped_refptr s) { EXPECT_TRUE(s); })); // Failure. EXPECT_CALL(*provider_, DoCreateSensorInternal(_, _, _)) - .WillOnce(Invoke( - [](mojom::SensorType, scoped_refptr, - const PlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(nullptr); + .WillOnce( + Invoke([](mojom::SensorType, scoped_refptr, + PlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(nullptr); })); provider_->CreateSensor( mojom::SensorType::AMBIENT_LIGHT, - base::Bind([](scoped_refptr s) { EXPECT_FALSE(s); })); + base::BindOnce([](scoped_refptr s) { EXPECT_FALSE(s); })); } TEST_F(PlatformSensorProviderTest, ResourcesAreNotFreedOnPendingRequest) { EXPECT_CALL(*provider_, FreeResources()).Times(0); // Suspend. EXPECT_CALL(*provider_, DoCreateSensorInternal(_, _, _)) - .WillOnce( - Invoke([](mojom::SensorType, scoped_refptr, - const PlatformSensorProvider::CreateSensorCallback&) {})); + .WillOnce(Invoke([](mojom::SensorType, scoped_refptr, + PlatformSensorProvider::CreateSensorCallback) {})); provider_->CreateSensor( mojom::SensorType::AMBIENT_LIGHT, - base::Bind([](scoped_refptr s) { NOTREACHED(); })); + base::BindOnce([](scoped_refptr s) { NOTREACHED(); })); provider_->CreateSensor( mojom::SensorType::AMBIENT_LIGHT, - base::Bind([](scoped_refptr s) { NOTREACHED(); })); + base::BindOnce([](scoped_refptr s) { NOTREACHED(); })); } // This test verifies that the shared buffer's default values are 0. @@ -83,7 +82,7 @@ TEST_F(PlatformSensorProviderTest, SharedBufferDefaultValue) { TEST_F(PlatformSensorProviderTest, SharedBufferCleared) { provider_->CreateSensor( mojom::SensorType::AMBIENT_LIGHT, - base::Bind([](scoped_refptr sensor) { + base::BindOnce([](scoped_refptr sensor) { auto client = std::make_unique>(sensor); auto config = PlatformSensorConfiguration(10); diff --git a/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc b/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc index 957b077924601c..459fd42d0d9968 100644 --- a/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc +++ b/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc @@ -212,8 +212,8 @@ class PlatformSensorAndProviderTestWin : public ::testing::Test { scoped_refptr CreateSensor(mojom::SensorType type) { run_loop_ = std::make_unique(); provider_->CreateSensor( - type, base::Bind(&PlatformSensorAndProviderTestWin::SensorCreated, - base::Unretained(this))); + type, base::BindOnce(&PlatformSensorAndProviderTestWin::SensorCreated, + base::Unretained(this))); run_loop_->Run(); scoped_refptr sensor; sensor.swap(platform_sensor_); diff --git a/services/device/generic_sensor/platform_sensor_fusion.cc b/services/device/generic_sensor/platform_sensor_fusion.cc index 23c6e3ee743e02..56b337bdf71c92 100644 --- a/services/device/generic_sensor/platform_sensor_fusion.cc +++ b/services/device/generic_sensor/platform_sensor_fusion.cc @@ -19,7 +19,7 @@ class PlatformSensorFusion::Factory : public base::RefCounted { static void CreateSensorFusion( SensorReadingSharedBuffer* reading_buffer, std::unique_ptr fusion_algorithm, - const PlatformSensorProviderBase::CreateSensorCallback& callback, + PlatformSensorProviderBase::CreateSensorCallback callback, PlatformSensorProvider* provider) { scoped_refptr factory(new Factory(reading_buffer, std::move(fusion_algorithm), @@ -32,7 +32,7 @@ class PlatformSensorFusion::Factory : public base::RefCounted { Factory(SensorReadingSharedBuffer* reading_buffer, std::unique_ptr fusion_algorithm, - const PlatformSensorProviderBase::CreateSensorCallback& callback, + PlatformSensorProviderBase::CreateSensorCallback callback, PlatformSensorProvider* provider) : fusion_algorithm_(std::move(fusion_algorithm)), result_callback_(std::move(callback)), @@ -56,7 +56,7 @@ class PlatformSensorFusion::Factory : public base::RefCounted { SensorCreated(std::move(sensor)); } else { provider_->CreateSensor(type, - base::Bind(&Factory::SensorCreated, this)); + base::BindOnce(&Factory::SensorCreated, this)); } } } @@ -95,9 +95,9 @@ void PlatformSensorFusion::Create( SensorReadingSharedBuffer* reading_buffer, PlatformSensorProvider* provider, std::unique_ptr fusion_algorithm, - const PlatformSensorProviderBase::CreateSensorCallback& callback) { + PlatformSensorProviderBase::CreateSensorCallback callback) { Factory::CreateSensorFusion(reading_buffer, std::move(fusion_algorithm), - callback, provider); + std::move(callback), provider); } PlatformSensorFusion::PlatformSensorFusion( diff --git a/services/device/generic_sensor/platform_sensor_fusion.h b/services/device/generic_sensor/platform_sensor_fusion.h index d25a5abde5d978..902fbc42c84b63 100644 --- a/services/device/generic_sensor/platform_sensor_fusion.h +++ b/services/device/generic_sensor/platform_sensor_fusion.h @@ -41,7 +41,7 @@ class PlatformSensorFusion : public PlatformSensor, SensorReadingSharedBuffer* reading_buffer, PlatformSensorProvider* provider, std::unique_ptr fusion_algorithm, - const PlatformSensorProviderBase::CreateSensorCallback& callback); + PlatformSensorProviderBase::CreateSensorCallback callback); // PlatformSensor: mojom::ReportingMode GetReportingMode() override; diff --git a/services/device/generic_sensor/platform_sensor_fusion_unittest.cc b/services/device/generic_sensor/platform_sensor_fusion_unittest.cc index 63e92b288f2367..b3bd493d4ff703 100644 --- a/services/device/generic_sensor/platform_sensor_fusion_unittest.cc +++ b/services/device/generic_sensor/platform_sensor_fusion_unittest.cc @@ -49,18 +49,20 @@ class PlatformSensorFusionTest : public testing::Test { } void CreateAccelerometer() { - auto callback = base::Bind(&PlatformSensorFusionTest::AccelerometerCallback, - base::Unretained(this)); - provider_->CreateSensor(SensorType::ACCELEROMETER, callback); + auto callback = + base::BindOnce(&PlatformSensorFusionTest::AccelerometerCallback, + base::Unretained(this)); + provider_->CreateSensor(SensorType::ACCELEROMETER, std::move(callback)); EXPECT_TRUE(accelerometer_callback_called_); EXPECT_TRUE(accelerometer_); EXPECT_EQ(SensorType::ACCELEROMETER, accelerometer_->GetType()); } void CreateMagnetometer() { - auto callback = base::Bind(&PlatformSensorFusionTest::MagnetometerCallback, - base::Unretained(this)); - provider_->CreateSensor(SensorType::MAGNETOMETER, callback); + auto callback = + base::BindOnce(&PlatformSensorFusionTest::MagnetometerCallback, + base::Unretained(this)); + provider_->CreateSensor(SensorType::MAGNETOMETER, std::move(callback)); EXPECT_TRUE(magnetometer_callback_called_); EXPECT_TRUE(magnetometer_); EXPECT_EQ(SensorType::MAGNETOMETER, magnetometer_->GetType()); @@ -81,12 +83,12 @@ class PlatformSensorFusionTest : public testing::Test { void CreateFusionSensor( std::unique_ptr fusion_algorithm) { auto callback = - base::Bind(&PlatformSensorFusionTest::PlatformSensorFusionCallback, - base::Unretained(this)); + base::BindOnce(&PlatformSensorFusionTest::PlatformSensorFusionCallback, + base::Unretained(this)); SensorType type = fusion_algorithm->fused_type(); PlatformSensorFusion::Create(provider_->GetSensorReadingBuffer(type), provider_.get(), std::move(fusion_algorithm), - callback); + std::move(callback)); EXPECT_TRUE(platform_sensor_fusion_callback_called_); } @@ -231,10 +233,10 @@ TEST_F(PlatformSensorFusionTest, SourceSensorNeedsToBeCreated) { TEST_F(PlatformSensorFusionTest, SourceSensorIsNotAvailable) { // Accelerometer is not available. ON_CALL(*provider_, DoCreateSensorInternal(SensorType::ACCELEROMETER, _, _)) - .WillByDefault(Invoke( - [](mojom::SensorType, scoped_refptr, - const FakePlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(nullptr); + .WillByDefault( + Invoke([](mojom::SensorType, scoped_refptr, + FakePlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(nullptr); })); CreateLinearAccelerationFusionSensor(); @@ -272,10 +274,10 @@ TEST_F(PlatformSensorFusionTest, BothSourceSensorsNeedToBeCreated) { TEST_F(PlatformSensorFusionTest, BothSourceSensorsAreNotAvailable) { // Failure. ON_CALL(*provider_, DoCreateSensorInternal(_, _, _)) - .WillByDefault(Invoke( - [](mojom::SensorType, scoped_refptr, - const FakePlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(nullptr); + .WillByDefault( + Invoke([](mojom::SensorType, scoped_refptr, + FakePlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(nullptr); })); CreateAbsoluteOrientationEulerAnglesFusionSensor(); @@ -303,10 +305,10 @@ TEST_F(PlatformSensorFusionTest, // Magnetometer is not available. ON_CALL(*provider_, DoCreateSensorInternal(SensorType::MAGNETOMETER, _, _)) - .WillByDefault(Invoke( - [](mojom::SensorType, scoped_refptr, - const FakePlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(nullptr); + .WillByDefault( + Invoke([](mojom::SensorType, scoped_refptr, + FakePlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(nullptr); })); CreateAbsoluteOrientationEulerAnglesFusionSensor(); @@ -318,10 +320,10 @@ TEST_F(PlatformSensorFusionTest, EXPECT_FALSE(provider_->GetSensor(SensorType::ACCELEROMETER)); // Magnetometer is not available. ON_CALL(*provider_, DoCreateSensorInternal(SensorType::MAGNETOMETER, _, _)) - .WillByDefault(Invoke( - [](mojom::SensorType, scoped_refptr, - const FakePlatformSensorProvider::CreateSensorCallback& callback) { - callback.Run(nullptr); + .WillByDefault( + Invoke([](mojom::SensorType, scoped_refptr, + FakePlatformSensorProvider::CreateSensorCallback callback) { + std::move(callback).Run(nullptr); })); CreateAbsoluteOrientationEulerAnglesFusionSensor(); diff --git a/services/device/generic_sensor/platform_sensor_provider_android.cc b/services/device/generic_sensor/platform_sensor_provider_android.cc index 2980627c5dab25..5966016de4f752 100644 --- a/services/device/generic_sensor/platform_sensor_provider_android.cc +++ b/services/device/generic_sensor/platform_sensor_provider_android.cc @@ -38,7 +38,7 @@ void PlatformSensorProviderAndroid::SetSensorManagerToNullForTesting() { void PlatformSensorProviderAndroid::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { JNIEnv* env = AttachCurrentThread(); // Some of the sensors may not be available depending on the device and @@ -46,16 +46,19 @@ void PlatformSensorProviderAndroid::CreateSensorInternal( // option. switch (type) { case mojom::SensorType::LINEAR_ACCELERATION: - CreateLinearAccelerationSensor(env, reading_buffer, callback); + CreateLinearAccelerationSensor(env, reading_buffer, std::move(callback)); break; case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES: - CreateAbsoluteOrientationEulerAnglesSensor(env, reading_buffer, callback); + CreateAbsoluteOrientationEulerAnglesSensor(env, reading_buffer, + std::move(callback)); break; case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION: - CreateAbsoluteOrientationQuaternionSensor(env, reading_buffer, callback); + CreateAbsoluteOrientationQuaternionSensor(env, reading_buffer, + std::move(callback)); break; case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: - CreateRelativeOrientationEulerAnglesSensor(env, reading_buffer, callback); + CreateRelativeOrientationEulerAnglesSensor(env, reading_buffer, + std::move(callback)); break; default: { ScopedJavaLocalRef sensor = @@ -63,13 +66,13 @@ void PlatformSensorProviderAndroid::CreateSensorInternal( static_cast(type)); if (!sensor.obj()) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } auto concrete_sensor = base::MakeRefCounted( type, reading_buffer, this, sensor); - callback.Run(concrete_sensor); + std::move(callback).Run(concrete_sensor); break; } } @@ -81,7 +84,7 @@ void PlatformSensorProviderAndroid::CreateSensorInternal( void PlatformSensorProviderAndroid::CreateLinearAccelerationSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { ScopedJavaLocalRef sensor = Java_PlatformSensorProvider_createSensor( env, j_object_, static_cast(mojom::SensorType::LINEAR_ACCELERATION)); @@ -90,7 +93,7 @@ void PlatformSensorProviderAndroid::CreateLinearAccelerationSensor( auto concrete_sensor = base::MakeRefCounted( mojom::SensorType::LINEAR_ACCELERATION, reading_buffer, this, sensor); - callback.Run(concrete_sensor); + std::move(callback).Run(concrete_sensor); } else { auto sensor_fusion_algorithm = std::make_unique(); @@ -98,7 +101,8 @@ void PlatformSensorProviderAndroid::CreateLinearAccelerationSensor( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(sensor_fusion_algorithm), callback); + std::move(sensor_fusion_algorithm), + std::move(callback)); } } @@ -113,7 +117,7 @@ void PlatformSensorProviderAndroid::CreateLinearAccelerationSensor( void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { if (static_cast(Java_PlatformSensorProvider_hasSensorType( env, j_object_, static_cast( @@ -125,7 +129,8 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(sensor_fusion_algorithm), callback); + std::move(sensor_fusion_algorithm), + std::move(callback)); } else { auto sensor_fusion_algorithm = std::make_unique< AbsoluteOrientationEulerAnglesFusionAlgorithmUsingAccelerometerAndMagnetometer>(); @@ -133,7 +138,8 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(sensor_fusion_algorithm), callback); + std::move(sensor_fusion_algorithm), + std::move(callback)); } } @@ -145,7 +151,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor( void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { ScopedJavaLocalRef sensor = Java_PlatformSensorProvider_createSensor( env, j_object_, static_cast(mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION)); @@ -155,7 +161,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor( mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION, reading_buffer, this, sensor); - callback.Run(concrete_sensor); + std::move(callback).Run(concrete_sensor); } else { auto sensor_fusion_algorithm = std::make_unique( @@ -164,7 +170,8 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(sensor_fusion_algorithm), callback); + std::move(sensor_fusion_algorithm), + std::move(callback)); } } @@ -173,7 +180,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor( void PlatformSensorProviderAndroid::CreateRelativeOrientationEulerAnglesSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { if (static_cast(Java_PlatformSensorProvider_hasSensorType( env, j_object_, static_cast( @@ -185,9 +192,10 @@ void PlatformSensorProviderAndroid::CreateRelativeOrientationEulerAnglesSensor( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(sensor_fusion_algorithm), callback); + std::move(sensor_fusion_algorithm), + std::move(callback)); } else { - callback.Run(nullptr); + std::move(callback).Run(nullptr); } } diff --git a/services/device/generic_sensor/platform_sensor_provider_android.h b/services/device/generic_sensor/platform_sensor_provider_android.h index 70aa11911e778e..506c4c165041c0 100644 --- a/services/device/generic_sensor/platform_sensor_provider_android.h +++ b/services/device/generic_sensor/platform_sensor_provider_android.h @@ -21,24 +21,24 @@ class PlatformSensorProviderAndroid : public PlatformSensorProvider { protected: void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; private: void CreateLinearAccelerationSensor(JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); void CreateAbsoluteOrientationEulerAnglesSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); void CreateAbsoluteOrientationQuaternionSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); void CreateRelativeOrientationEulerAnglesSensor( JNIEnv* env, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); // Java object org.chromium.device.sensors.PlatformSensorProvider base::android::ScopedJavaGlobalRef j_object_; diff --git a/services/device/generic_sensor/platform_sensor_provider_base.cc b/services/device/generic_sensor/platform_sensor_provider_base.cc index 4c08a28f6200df..f77f40fad38bb6 100644 --- a/services/device/generic_sensor/platform_sensor_provider_base.cc +++ b/services/device/generic_sensor/platform_sensor_provider_base.cc @@ -27,33 +27,34 @@ PlatformSensorProviderBase::~PlatformSensorProviderBase() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); } -void PlatformSensorProviderBase::CreateSensor( - mojom::SensorType type, - const CreateSensorCallback& callback) { +void PlatformSensorProviderBase::CreateSensor(mojom::SensorType type, + CreateSensorCallback callback) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!CreateSharedBufferIfNeeded()) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } SensorReadingSharedBuffer* reading_buffer = GetSensorReadingSharedBufferForType(type); if (!reading_buffer) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } auto it = requests_map_.find(type); if (it != requests_map_.end()) { - it->second.push_back(callback); + it->second.push_back(std::move(callback)); } else { // This is the first CreateSensor call. - requests_map_[type] = CallbackQueue({callback}); + auto& requests = requests_map_[type]; + requests.clear(); + requests.push_back(std::move(callback)); CreateSensorInternal( type, reading_buffer, - base::Bind(&PlatformSensorProviderBase::NotifySensorCreated, - base::Unretained(this), type)); + base::BindOnce(&PlatformSensorProviderBase::NotifySensorCreated, + base::Unretained(this), type)); } } @@ -143,15 +144,15 @@ void PlatformSensorProviderBase::NotifySensorCreated( sensor_map_[type] = sensor.get(); auto it = requests_map_.find(type); - CallbackQueue callback_queue = it->second; - requests_map_.erase(type); + CallbackQueue callback_queue = std::move(it->second); + requests_map_.erase(it); FreeResourcesIfNeeded(); // Inform subscribers about the sensor. // |sensor| can be nullptr here. for (auto& callback : callback_queue) - callback.Run(sensor); + std::move(callback).Run(sensor); } std::vector diff --git a/services/device/generic_sensor/platform_sensor_provider_base.h b/services/device/generic_sensor/platform_sensor_provider_base.h index ba7d7c1cc17909..c59bc0191aacc8 100644 --- a/services/device/generic_sensor/platform_sensor_provider_base.h +++ b/services/device/generic_sensor/platform_sensor_provider_base.h @@ -18,11 +18,10 @@ namespace device { class PlatformSensorProviderBase { public: using CreateSensorCallback = - base::Callback)>; + base::OnceCallback)>; // Creates new instance of PlatformSensor. - void CreateSensor(mojom::SensorType type, - const CreateSensorCallback& callback); + void CreateSensor(mojom::SensorType type, CreateSensorCallback callback); // Gets previously created instance of PlatformSensor by sensor type |type|. scoped_refptr GetSensor(mojom::SensorType type); @@ -41,7 +40,7 @@ class PlatformSensorProviderBase { // Method that must be implemented by platform specific classes. virtual void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) = 0; + CreateSensorCallback callback) = 0; // Implementations might override this method to free resources when there // are no sensors left. diff --git a/services/device/generic_sensor/platform_sensor_provider_linux.cc b/services/device/generic_sensor/platform_sensor_provider_linux.cc index cd72ab2341509d..2ff9afc830397a 100644 --- a/services/device/generic_sensor/platform_sensor_provider_linux.cc +++ b/services/device/generic_sensor/platform_sensor_provider_linux.cc @@ -58,7 +58,7 @@ PlatformSensorProviderLinux::~PlatformSensorProviderLinux() = default; void PlatformSensorProviderLinux::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { if (!sensor_nodes_enumerated_) { if (!sensor_nodes_enumeration_started_) { // Unretained() is safe because the deletion of |sensor_device_manager_| @@ -73,30 +73,30 @@ void PlatformSensorProviderLinux::CreateSensorInternal( } if (IsFusionSensorType(type)) { - CreateFusionSensor(type, reading_buffer, callback); + CreateFusionSensor(type, reading_buffer, std::move(callback)); return; } SensorInfoLinux* sensor_device = GetSensorDevice(type); if (!sensor_device) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } - SensorDeviceFound(type, reading_buffer, callback, sensor_device); + SensorDeviceFound(type, reading_buffer, std::move(callback), sensor_device); } void PlatformSensorProviderLinux::SensorDeviceFound( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const PlatformSensorProviderBase::CreateSensorCallback& callback, + PlatformSensorProviderBase::CreateSensorCallback callback, const SensorInfoLinux* sensor_device) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(sensor_device); scoped_refptr sensor = new PlatformSensorLinux(type, reading_buffer, this, sensor_device); - callback.Run(sensor); + std::move(callback).Run(sensor); } void PlatformSensorProviderLinux::FreeResources() { @@ -136,8 +136,8 @@ void PlatformSensorProviderLinux::ProcessStoredRequests() { GetSensorReadingSharedBufferForType(type); CreateFusionSensor( type, reading_buffer, - base::Bind(&PlatformSensorProviderLinux::NotifySensorCreated, - base::Unretained(this), type)); + base::BindOnce(&PlatformSensorProviderLinux::NotifySensorCreated, + base::Unretained(this), type)); continue; } @@ -196,7 +196,7 @@ void PlatformSensorProviderLinux::OnDeviceRemoved( void PlatformSensorProviderLinux::CreateFusionSensor( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { DCHECK(IsFusionSensorType(type)); std::unique_ptr fusion_algorithm; switch (type) { @@ -232,8 +232,8 @@ void PlatformSensorProviderLinux::CreateFusionSensor( } DCHECK(fusion_algorithm); - PlatformSensorFusion::Create(reading_buffer, this, - std::move(fusion_algorithm), callback); + PlatformSensorFusion::Create( + reading_buffer, this, std::move(fusion_algorithm), std::move(callback)); } } // namespace device diff --git a/services/device/generic_sensor/platform_sensor_provider_linux.h b/services/device/generic_sensor/platform_sensor_provider_linux.h index 9f1b686cb9b369..4a564385269336 100644 --- a/services/device/generic_sensor/platform_sensor_provider_linux.h +++ b/services/device/generic_sensor/platform_sensor_provider_linux.h @@ -28,7 +28,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider, protected: void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; void FreeResources() override; @@ -45,7 +45,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider, void SensorDeviceFound( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const PlatformSensorProviderBase::CreateSensorCallback& callback, + PlatformSensorProviderBase::CreateSensorCallback callback, const SensorInfoLinux* sensor_device); // Returns SensorInfoLinux structure of a requested type. @@ -73,7 +73,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider, void CreateFusionSensor(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); // Set to true when enumeration is ready. bool sensor_nodes_enumerated_; diff --git a/services/device/generic_sensor/platform_sensor_provider_mac.cc b/services/device/generic_sensor/platform_sensor_provider_mac.cc index 9954e880143f78..5395a98cfff616 100644 --- a/services/device/generic_sensor/platform_sensor_provider_mac.cc +++ b/services/device/generic_sensor/platform_sensor_provider_mac.cc @@ -19,18 +19,19 @@ PlatformSensorProviderMac::~PlatformSensorProviderMac() = default; void PlatformSensorProviderMac::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { // Create Sensors here. switch (type) { case mojom::SensorType::AMBIENT_LIGHT: { scoped_refptr sensor = new PlatformSensorAmbientLightMac(reading_buffer, this); - callback.Run(std::move(sensor)); + std::move(callback).Run(std::move(sensor)); break; } case mojom::SensorType::ACCELEROMETER: { - callback.Run(base::MakeRefCounted( - reading_buffer, this)); + std::move(callback).Run( + base::MakeRefCounted(reading_buffer, + this)); break; } case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: { @@ -39,7 +40,8 @@ void PlatformSensorProviderMac::CreateSensorInternal( // If this PlatformSensorFusion object is successfully initialized, // |callback| will be run with a reference to this object. PlatformSensorFusion::Create(reading_buffer, this, - std::move(fusion_algorithm), callback); + std::move(fusion_algorithm), + std::move(callback)); break; } case mojom::SensorType::RELATIVE_ORIENTATION_QUATERNION: { @@ -52,11 +54,11 @@ void PlatformSensorProviderMac::CreateSensorInternal( PlatformSensorFusion::Create( reading_buffer, this, std::move(orientation_quaternion_fusion_algorithm_using_euler_angles), - callback); + std::move(callback)); break; } default: - callback.Run(nullptr); + std::move(callback).Run(nullptr); } } diff --git a/services/device/generic_sensor/platform_sensor_provider_mac.h b/services/device/generic_sensor/platform_sensor_provider_mac.h index 89520ac9787fb6..1a7282d8c9783f 100644 --- a/services/device/generic_sensor/platform_sensor_provider_mac.h +++ b/services/device/generic_sensor/platform_sensor_provider_mac.h @@ -17,7 +17,7 @@ class PlatformSensorProviderMac : public PlatformSensorProvider { protected: void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; private: DISALLOW_COPY_AND_ASSIGN(PlatformSensorProviderMac); diff --git a/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc b/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc index 7e81e158db6446..6f14fa153a1cf3 100644 --- a/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc +++ b/services/device/generic_sensor/platform_sensor_provider_unittest_android.cc @@ -35,8 +35,8 @@ TEST_F(PlatformSensorProviderTestAndroid, SensorManagerIsNull) { provider_->SetSensorManagerToNullForTesting(); provider_->CreateSensor( device::mojom::SensorType::AMBIENT_LIGHT, - base::Bind(&PlatformSensorProviderTestAndroid::CreateSensorCallback, - base::Unretained(this))); + base::BindOnce(&PlatformSensorProviderTestAndroid::CreateSensorCallback, + base::Unretained(this))); } } // namespace device diff --git a/services/device/generic_sensor/platform_sensor_provider_win.cc b/services/device/generic_sensor/platform_sensor_provider_win.cc index 8440063bdec45c..88678f6e892350 100644 --- a/services/device/generic_sensor/platform_sensor_provider_win.cc +++ b/services/device/generic_sensor/platform_sensor_provider_win.cc @@ -40,17 +40,18 @@ PlatformSensorProviderWin::GetComStaTaskRunnerForTesting() { void PlatformSensorProviderWin::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (sensor_manager_) { - OnInitSensorManager(type, reading_buffer, callback); + OnInitSensorManager(type, reading_buffer, std::move(callback)); } else { com_sta_task_runner_->PostTaskAndReply( FROM_HERE, - base::Bind(&PlatformSensorProviderWin::InitSensorManager, - base::Unretained(this)), - base::Bind(&PlatformSensorProviderWin::OnInitSensorManager, - base::Unretained(this), type, reading_buffer, callback)); + base::BindOnce(&PlatformSensorProviderWin::InitSensorManager, + base::Unretained(this)), + base::BindOnce(&PlatformSensorProviderWin::OnInitSensorManager, + base::Unretained(this), type, reading_buffer, + std::move(callback))); } } @@ -75,11 +76,11 @@ void PlatformSensorProviderWin::InitSensorManager() { void PlatformSensorProviderWin::OnInitSensorManager( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!sensor_manager_) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } @@ -92,7 +93,7 @@ void PlatformSensorProviderWin::OnInitSensorManager( // |callback| will be run with a reference to this object. PlatformSensorFusion::Create( reading_buffer, this, std::move(linear_acceleration_fusion_algorithm), - callback); + std::move(callback)); break; } @@ -100,10 +101,11 @@ void PlatformSensorProviderWin::OnInitSensorManager( default: { base::PostTaskAndReplyWithResult( com_sta_task_runner_.get(), FROM_HERE, - base::Bind(&PlatformSensorProviderWin::CreateSensorReader, - base::Unretained(this), type), - base::Bind(&PlatformSensorProviderWin::SensorReaderCreated, - base::Unretained(this), type, reading_buffer, callback)); + base::BindOnce(&PlatformSensorProviderWin::CreateSensorReader, + base::Unretained(this), type), + base::BindOnce(&PlatformSensorProviderWin::SensorReaderCreated, + base::Unretained(this), type, reading_buffer, + std::move(callback))); break; } } @@ -112,7 +114,7 @@ void PlatformSensorProviderWin::OnInitSensorManager( void PlatformSensorProviderWin::SensorReaderCreated( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback, + CreateSensorCallback callback, std::unique_ptr sensor_reader) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!sensor_reader) { @@ -129,7 +131,7 @@ void PlatformSensorProviderWin::SensorReaderCreated( return; } default: - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } } @@ -137,7 +139,7 @@ void PlatformSensorProviderWin::SensorReaderCreated( scoped_refptr sensor = new PlatformSensorWin(type, reading_buffer, this, com_sta_task_runner_, std::move(sensor_reader)); - callback.Run(sensor); + std::move(callback).Run(sensor); } std::unique_ptr diff --git a/services/device/generic_sensor/platform_sensor_provider_win.h b/services/device/generic_sensor/platform_sensor_provider_win.h index 95ca3097ccd380..d4a1c951334cf0 100644 --- a/services/device/generic_sensor/platform_sensor_provider_win.h +++ b/services/device/generic_sensor/platform_sensor_provider_win.h @@ -35,19 +35,19 @@ class PlatformSensorProviderWin final : public PlatformSensorProvider { // PlatformSensorProvider interface implementation. void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; private: void InitSensorManager(); void OnInitSensorManager(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback); + CreateSensorCallback callback); std::unique_ptr CreateSensorReader( mojom::SensorType type); void SensorReaderCreated( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback, + CreateSensorCallback callback, std::unique_ptr sensor_reader); scoped_refptr com_sta_task_runner_; diff --git a/services/device/generic_sensor/platform_sensor_provider_winrt.cc b/services/device/generic_sensor/platform_sensor_provider_winrt.cc index 7d38cb44fcf0a5..9ffbc1f986c484 100644 --- a/services/device/generic_sensor/platform_sensor_provider_winrt.cc +++ b/services/device/generic_sensor/platform_sensor_provider_winrt.cc @@ -36,7 +36,7 @@ void PlatformSensorProviderWinrt::SetSensorReaderFactoryForTesting( void PlatformSensorProviderWinrt::CreateSensorInternal( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) { + CreateSensorCallback callback) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); switch (type) { @@ -48,7 +48,7 @@ void PlatformSensorProviderWinrt::CreateSensorInternal( // |callback| will be run with a reference to this object. PlatformSensorFusion::Create( reading_buffer, this, std::move(linear_acceleration_fusion_algorithm), - callback); + std::move(callback)); break; } @@ -56,10 +56,11 @@ void PlatformSensorProviderWinrt::CreateSensorInternal( default: { base::PostTaskAndReplyWithResult( com_sta_task_runner_.get(), FROM_HERE, - base::Bind(&PlatformSensorProviderWinrt::CreateSensorReader, - base::Unretained(this), type), - base::Bind(&PlatformSensorProviderWinrt::SensorReaderCreated, - base::Unretained(this), type, reading_buffer, callback)); + base::BindOnce(&PlatformSensorProviderWinrt::CreateSensorReader, + base::Unretained(this), type), + base::BindOnce(&PlatformSensorProviderWinrt::SensorReaderCreated, + base::Unretained(this), type, reading_buffer, + std::move(callback))); break; } } @@ -68,7 +69,7 @@ void PlatformSensorProviderWinrt::CreateSensorInternal( void PlatformSensorProviderWinrt::SensorReaderCreated( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback, + CreateSensorCallback callback, std::unique_ptr sensor_reader) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!sensor_reader) { @@ -85,7 +86,7 @@ void PlatformSensorProviderWinrt::SensorReaderCreated( return; } default: - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } } @@ -93,7 +94,7 @@ void PlatformSensorProviderWinrt::SensorReaderCreated( base::MakeRefCounted(type, reading_buffer, this, com_sta_task_runner_, std::move(sensor_reader)); - callback.Run(std::move(sensor)); + std::move(callback).Run(std::move(sensor)); } std::unique_ptr diff --git a/services/device/generic_sensor/platform_sensor_provider_winrt.h b/services/device/generic_sensor/platform_sensor_provider_winrt.h index 795127181eb5b4..78737b4f8a73eb 100644 --- a/services/device/generic_sensor/platform_sensor_provider_winrt.h +++ b/services/device/generic_sensor/platform_sensor_provider_winrt.h @@ -37,7 +37,7 @@ class PlatformSensorProviderWinrt final : public PlatformSensorProvider { // PlatformSensorProvider interface implementation. void CreateSensorInternal(mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback) override; + CreateSensorCallback callback) override; private: std::unique_ptr CreateSensorReader( @@ -46,7 +46,7 @@ class PlatformSensorProviderWinrt final : public PlatformSensorProvider { void SensorReaderCreated( mojom::SensorType type, SensorReadingSharedBuffer* reading_buffer, - const CreateSensorCallback& callback, + CreateSensorCallback callback, std::unique_ptr sensor_reader); // The Windows.Devices.Sensors WinRT API supports both STA and MTA @@ -62,4 +62,4 @@ class PlatformSensorProviderWinrt final : public PlatformSensorProvider { } // namespace device -#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_WINRT_H_ \ No newline at end of file +#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_PROVIDER_WINRT_H_ diff --git a/services/device/generic_sensor/platform_sensor_provider_winrt_unittest.cc b/services/device/generic_sensor/platform_sensor_provider_winrt_unittest.cc index e5ab0317012523..228ca68ce6d13b 100644 --- a/services/device/generic_sensor/platform_sensor_provider_winrt_unittest.cc +++ b/services/device/generic_sensor/platform_sensor_provider_winrt_unittest.cc @@ -74,7 +74,7 @@ TEST(PlatformSensorProviderTestWinrt, SensorCreationReturnCheck) { base::Optional run_loop; bool expect_sensor_valid = false; - base::Callback sensor)> + base::RepeatingCallback sensor)> create_sensor_callback = base::BindLambdaForTesting([&](scoped_refptr sensor) { if (expect_sensor_valid) @@ -86,12 +86,13 @@ TEST(PlatformSensorProviderTestWinrt, SensorCreationReturnCheck) { run_loop.emplace(); provider->CreateSensor(mojom::SensorType::AMBIENT_LIGHT, - create_sensor_callback); + base::BindOnce(create_sensor_callback)); run_loop->Run(); expect_sensor_valid = true; run_loop.emplace(); - provider->CreateSensor(mojom::SensorType::GYROSCOPE, create_sensor_callback); + provider->CreateSensor(mojom::SensorType::GYROSCOPE, + base::BindOnce(create_sensor_callback)); run_loop->Run(); // Linear acceleration is a fusion sensor built on top of accelerometer, @@ -99,7 +100,7 @@ TEST(PlatformSensorProviderTestWinrt, SensorCreationReturnCheck) { expect_sensor_valid = true; run_loop.emplace(); provider->CreateSensor(mojom::SensorType::LINEAR_ACCELERATION, - create_sensor_callback); + base::BindOnce(create_sensor_callback)); run_loop->Run(); } diff --git a/services/device/generic_sensor/platform_sensor_reader_winrt.cc b/services/device/generic_sensor/platform_sensor_reader_winrt.cc index 0741f043281924..185e3fb25ea74d 100644 --- a/services/device/generic_sensor/platform_sensor_reader_winrt.cc +++ b/services/device/generic_sensor/platform_sensor_reader_winrt.cc @@ -105,7 +105,7 @@ PlatformSensorReaderWinrtBase< ISensorReadingChangedHandler, ISensorReadingChangedEventArgs>::PlatformSensorReaderWinrtBase() { get_sensor_factory_callback_ = - base::Bind([](ISensorWinrtStatics** sensor_factory) -> HRESULT { + base::BindRepeating([](ISensorWinrtStatics** sensor_factory) -> HRESULT { return base::win::GetActivationFactory( sensor_factory); diff --git a/services/device/generic_sensor/platform_sensor_reader_winrt.h b/services/device/generic_sensor/platform_sensor_reader_winrt.h index 84c0b8515dcc4b..cae0f6504be4ff 100644 --- a/services/device/generic_sensor/platform_sensor_reader_winrt.h +++ b/services/device/generic_sensor/platform_sensor_reader_winrt.h @@ -49,7 +49,7 @@ template ; + base::RepeatingCallback; // Sets the client to notify changes about. The consumer should always // ensure the lifetime of the client surpasses the lifetime of this class. @@ -344,4 +344,4 @@ class PlatformSensorReaderWinrtAbsOrientationQuaternion final } // namespace device -#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_READER_WINRT_H_ \ No newline at end of file +#endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_READER_WINRT_H_ diff --git a/services/device/generic_sensor/sensor_provider_impl.cc b/services/device/generic_sensor/sensor_provider_impl.cc index 0a866e388d0994..298b5314c05d73 100644 --- a/services/device/generic_sensor/sensor_provider_impl.cc +++ b/services/device/generic_sensor/sensor_provider_impl.cc @@ -67,10 +67,10 @@ void SensorProviderImpl::GetSensor(mojom::SensorType type, scoped_refptr sensor = provider_->GetSensor(type); if (!sensor) { - PlatformSensorProviderBase::CreateSensorCallback cb = base::Bind( - &SensorProviderImpl::SensorCreated, weak_ptr_factory_.GetWeakPtr(), - type, base::Passed(&cloned_handle), base::Passed(&callback)); - provider_->CreateSensor(type, cb); + provider_->CreateSensor( + type, base::BindOnce(&SensorProviderImpl::SensorCreated, + weak_ptr_factory_.GetWeakPtr(), type, + std::move(cloned_handle), std::move(callback))); return; } diff --git a/services/device/geolocation/geolocation_impl.cc b/services/device/geolocation/geolocation_impl.cc index c439c0eee0d888..15d1afe62613b3 100644 --- a/services/device/geolocation/geolocation_impl.cc +++ b/services/device/geolocation/geolocation_impl.cc @@ -98,8 +98,8 @@ void GeolocationImpl::ResumeUpdates() { void GeolocationImpl::StartListeningForUpdates() { geolocation_subscription_ = GeolocationProvider::GetInstance()->AddLocationUpdateCallback( - base::Bind(&GeolocationImpl::OnLocationUpdate, - base::Unretained(this)), + base::BindRepeating(&GeolocationImpl::OnLocationUpdate, + base::Unretained(this)), high_accuracy_); } diff --git a/services/device/geolocation/geolocation_provider.h b/services/device/geolocation/geolocation_provider.h index 04ce5a14e291d4..26596a1375e20c 100644 --- a/services/device/geolocation/geolocation_provider.h +++ b/services/device/geolocation/geolocation_provider.h @@ -32,7 +32,7 @@ class GeolocationProvider { public: static GeolocationProvider* GetInstance(); - typedef base::Callback + typedef base::RepeatingCallback LocationUpdateCallback; typedef base::CallbackList::Subscription Subscription; diff --git a/services/device/geolocation/geolocation_provider_impl.cc b/services/device/geolocation/geolocation_provider_impl.cc index 3e8986a1a7b0e2..41f5b82fdaff26 100644 --- a/services/device/geolocation/geolocation_provider_impl.cc +++ b/services/device/geolocation/geolocation_provider_impl.cc @@ -136,9 +136,9 @@ GeolocationProviderImpl::GeolocationProviderImpl() ignore_location_updates_(false), main_task_runner_(base::ThreadTaskRunnerHandle::Get()) { DCHECK(main_task_runner_->BelongsToCurrentThread()); - high_accuracy_callbacks_.set_removal_callback(base::Bind( + high_accuracy_callbacks_.set_removal_callback(base::BindRepeating( &GeolocationProviderImpl::OnClientsChanged, base::Unretained(this))); - low_accuracy_callbacks_.set_removal_callback(base::Bind( + low_accuracy_callbacks_.set_removal_callback(base::BindRepeating( &GeolocationProviderImpl::OnClientsChanged, base::Unretained(this))); } @@ -158,7 +158,7 @@ bool GeolocationProviderImpl::OnGeolocationThread() const { void GeolocationProviderImpl::OnClientsChanged() { DCHECK(main_task_runner_->BelongsToCurrentThread()); - base::Closure task; + base::OnceClosure task; if (high_accuracy_callbacks_.empty() && low_accuracy_callbacks_.empty()) { DCHECK(IsRunning()); if (!ignore_location_updates_) { @@ -166,8 +166,8 @@ void GeolocationProviderImpl::OnClientsChanged() { // when the next observer is added we will not provide a stale position. position_ = mojom::Geoposition(); } - task = base::Bind(&GeolocationProviderImpl::StopProviders, - base::Unretained(this)); + task = base::BindOnce(&GeolocationProviderImpl::StopProviders, + base::Unretained(this)); } else { if (!IsRunning()) { Start(); @@ -178,11 +178,11 @@ void GeolocationProviderImpl::OnClientsChanged() { bool enable_high_accuracy = !high_accuracy_callbacks_.empty(); // Send the current options to the providers as they may have changed. - task = base::Bind(&GeolocationProviderImpl::StartProviders, - base::Unretained(this), enable_high_accuracy); + task = base::BindOnce(&GeolocationProviderImpl::StartProviders, + base::Unretained(this), enable_high_accuracy); } - task_runner()->PostTask(FROM_HERE, task); + task_runner()->PostTask(FROM_HERE, std::move(task)); } void GeolocationProviderImpl::StopProviders() { @@ -228,8 +228,9 @@ void GeolocationProviderImpl::Init() { if (arbitrator_) return; - LocationProvider::LocationProviderUpdateCallback callback = base::Bind( - &GeolocationProviderImpl::OnLocationUpdate, base::Unretained(this)); + LocationProvider::LocationProviderUpdateCallback callback = + base::BindRepeating(&GeolocationProviderImpl::OnLocationUpdate, + base::Unretained(this)); scoped_refptr url_loader_factory; if (g_pending_url_loader_factory.Get()) { diff --git a/services/device/geolocation/geolocation_provider_impl.h b/services/device/geolocation/geolocation_provider_impl.h index 45716d24b804b2..baf8925fce6fe6 100644 --- a/services/device/geolocation/geolocation_provider_impl.h +++ b/services/device/geolocation/geolocation_provider_impl.h @@ -37,7 +37,7 @@ namespace device { // Callback that returns the embedder's custom location provider. This callback // is provided to the Device Service by its embedder. using CustomLocationProviderCallback = - base::Callback()>; + base::RepeatingCallback()>; class GeolocationProviderImpl : public GeolocationProvider, public mojom::GeolocationControl, diff --git a/services/device/geolocation/geolocation_provider_impl_unittest.cc b/services/device/geolocation/geolocation_provider_impl_unittest.cc index 454b6302a5efe9..4413f964df71ec 100644 --- a/services/device/geolocation/geolocation_provider_impl_unittest.cc +++ b/services/device/geolocation/geolocation_provider_impl_unittest.cc @@ -185,7 +185,7 @@ TEST_F(GeolocationProviderTest, StartStop) { EXPECT_FALSE(provider()->IsRunning()); std::unique_ptr subscription = provider()->AddLocationUpdateCallback( - base::Bind(&DummyFunction, arbitrator()), false); + base::BindRepeating(&DummyFunction, arbitrator()), false); EXPECT_TRUE(provider()->IsRunning()); EXPECT_TRUE(ProvidersStarted()); @@ -204,8 +204,8 @@ TEST_F(GeolocationProviderTest, StalePositionNotSent) { AsyncMockGeolocationObserver first_observer; GeolocationProviderImpl::LocationUpdateCallback first_callback = - base::Bind(&MockGeolocationObserver::OnLocationUpdate, - base::Unretained(&first_observer)); + base::BindRepeating(&MockGeolocationObserver::OnLocationUpdate, + base::Unretained(&first_observer)); EXPECT_CALL(first_observer, OnLocationUpdate(GeopositionEq(first_position))); std::unique_ptr subscription = provider()->AddLocationUpdateCallback(first_callback, false); @@ -226,8 +226,8 @@ TEST_F(GeolocationProviderTest, StalePositionNotSent) { // is sent. EXPECT_CALL(second_observer, OnLocationUpdate(testing::_)).Times(0); GeolocationProviderImpl::LocationUpdateCallback second_callback = - base::Bind(&MockGeolocationObserver::OnLocationUpdate, - base::Unretained(&second_observer)); + base::BindRepeating(&MockGeolocationObserver::OnLocationUpdate, + base::Unretained(&second_observer)); std::unique_ptr subscription2 = provider()->AddLocationUpdateCallback(second_callback, false); base::RunLoop().RunUntilIdle(); @@ -251,8 +251,8 @@ TEST_F(GeolocationProviderTest, OverrideLocationForTesting) { MockGeolocationObserver mock_observer; EXPECT_CALL(mock_observer, OnLocationUpdate(GeopositionEq(position))); GeolocationProviderImpl::LocationUpdateCallback callback = - base::Bind(&MockGeolocationObserver::OnLocationUpdate, - base::Unretained(&mock_observer)); + base::BindRepeating(&MockGeolocationObserver::OnLocationUpdate, + base::Unretained(&mock_observer)); std::unique_ptr subscription = provider()->AddLocationUpdateCallback(callback, false); subscription.reset(); diff --git a/services/device/geolocation/location_api_adapter_android.h b/services/device/geolocation/location_api_adapter_android.h index 545ccb5286bd76..25f218c7018045 100644 --- a/services/device/geolocation/location_api_adapter_android.h +++ b/services/device/geolocation/location_api_adapter_android.h @@ -32,7 +32,8 @@ namespace device { // one call to Start(). class LocationApiAdapterAndroid { public: - using OnGeopositionCB = base::Callback; + using OnGeopositionCB = + base::RepeatingCallback; // Starts the underlying location provider. // Called on |task_runner_|. diff --git a/services/device/geolocation/location_arbitrator.cc b/services/device/geolocation/location_arbitrator.cc index 2efd7564547786..d399293cdce4b0 100644 --- a/services/device/geolocation/location_arbitrator.cc +++ b/services/device/geolocation/location_arbitrator.cc @@ -91,8 +91,8 @@ void LocationArbitrator::RegisterProvider( std::unique_ptr provider) { if (!provider) return; - provider->SetUpdateCallback(base::Bind(&LocationArbitrator::OnLocationUpdate, - base::Unretained(this))); + provider->SetUpdateCallback(base::BindRepeating( + &LocationArbitrator::OnLocationUpdate, base::Unretained(this))); if (is_permission_granted_) provider->OnPermissionGranted(); providers_.push_back(std::move(provider)); diff --git a/services/device/geolocation/location_provider_android.cc b/services/device/geolocation/location_provider_android.cc index afa485cc33f616..9d198e17696984 100644 --- a/services/device/geolocation/location_provider_android.cc +++ b/services/device/geolocation/location_provider_android.cc @@ -37,8 +37,8 @@ void LocationProviderAndroid::SetUpdateCallback( void LocationProviderAndroid::StartProvider(bool high_accuracy) { DCHECK(thread_checker_.CalledOnValidThread()); LocationApiAdapterAndroid::GetInstance()->Start( - base::Bind(&LocationProviderAndroid::NotifyNewGeoposition, - weak_ptr_factory_.GetWeakPtr()), + base::BindRepeating(&LocationProviderAndroid::NotifyNewGeoposition, + weak_ptr_factory_.GetWeakPtr()), high_accuracy); } diff --git a/services/device/geolocation/network_location_provider.cc b/services/device/geolocation/network_location_provider.cc index 6d1656c8425c82..331c9144f1125f 100644 --- a/services/device/geolocation/network_location_provider.cc +++ b/services/device/geolocation/network_location_provider.cc @@ -38,8 +38,8 @@ NetworkLocationProvider::NetworkLocationProvider( PositionCache* position_cache) : wifi_data_provider_manager_(nullptr), wifi_data_update_callback_( - base::Bind(&NetworkLocationProvider::OnWifiDataUpdate, - base::Unretained(this))), + base::BindRepeating(&NetworkLocationProvider::OnWifiDataUpdate, + base::Unretained(this))), is_wifi_data_complete_(false), position_cache_(position_cache), is_permission_granted_(false), @@ -47,8 +47,8 @@ NetworkLocationProvider::NetworkLocationProvider( request_(new NetworkLocationRequest( std::move(url_loader_factory), api_key, - base::Bind(&NetworkLocationProvider::OnLocationResponse, - base::Unretained(this)))) { + base::BindRepeating(&NetworkLocationProvider::OnLocationResponse, + base::Unretained(this)))) { DCHECK(position_cache_); } diff --git a/services/device/geolocation/public_ip_address_geolocation_provider.cc b/services/device/geolocation/public_ip_address_geolocation_provider.cc index 84fd0f9407639b..b7b66a20d5327b 100644 --- a/services/device/geolocation/public_ip_address_geolocation_provider.cc +++ b/services/device/geolocation/public_ip_address_geolocation_provider.cc @@ -40,7 +40,7 @@ void PublicIpAddressGeolocationProvider::CreateGeolocation( std::make_unique( static_cast(tag), public_ip_address_location_notifier_.get(), - base::Bind( + base::BindRepeating( &mojo::UniqueReceiverSet::ReportBadMessage, base::Unretained(&geolocation_receiver_set_))), std::move(receiver)); diff --git a/services/device/geolocation/public_ip_address_geolocator.h b/services/device/geolocation/public_ip_address_geolocator.h index ab74b888645b0c..3bdc13ddcd3477 100644 --- a/services/device/geolocation/public_ip_address_geolocator.h +++ b/services/device/geolocation/public_ip_address_geolocator.h @@ -23,7 +23,8 @@ class PublicIpAddressLocationNotifier; // geolocation. class PublicIpAddressGeolocator : public mojom::Geolocation { public: - using BadMessageCallback = base::Callback; + using BadMessageCallback = + base::RepeatingCallback; // Creates a PublicIpAddressGeolocatorsubscribed to the specified |notifier|. // This object will unbind and destroy itself if |notifier| is destroyed. diff --git a/services/device/geolocation/public_ip_address_geolocator_unittest.cc b/services/device/geolocation/public_ip_address_geolocator_unittest.cc index 51d412f95fdce1..a53cef473d9e7c 100644 --- a/services/device/geolocation/public_ip_address_geolocator_unittest.cc +++ b/services/device/geolocation/public_ip_address_geolocator_unittest.cc @@ -42,14 +42,15 @@ class PublicIpAddressGeolocatorTest : public testing::Test { void SetUp() override { // Intercept Mojo bad-message errors. mojo::core::SetDefaultProcessErrorCallback( - base::Bind(&PublicIpAddressGeolocatorTest::OnMojoBadMessage, - base::Unretained(this))); + base::BindRepeating(&PublicIpAddressGeolocatorTest::OnMojoBadMessage, + base::Unretained(this))); receiver_set_.Add( std::make_unique( PARTIAL_TRAFFIC_ANNOTATION_FOR_TESTS, notifier_.get(), - base::Bind(&PublicIpAddressGeolocatorTest::OnGeolocatorBadMessage, - base::Unretained(this))), + base::BindRepeating( + &PublicIpAddressGeolocatorTest::OnGeolocatorBadMessage, + base::Unretained(this))), public_ip_address_geolocator_.BindNewPipeAndPassReceiver()); } @@ -71,18 +72,18 @@ class PublicIpAddressGeolocatorTest : public testing::Test { // Invokes QueryNextPosition on |public_ip_address_geolocator_|, and runs // |done_closure| when the response comes back. - void QueryNextPosition(base::Closure done_closure) { + void QueryNextPosition(base::OnceClosure done_closure) { public_ip_address_geolocator_->QueryNextPosition(base::BindOnce( &PublicIpAddressGeolocatorTest::OnQueryNextPositionResponse, - base::Unretained(this), done_closure)); + base::Unretained(this), std::move(done_closure))); } // Callback for QueryNextPosition() that records the result in |position_| and // then invokes |done_closure|. - void OnQueryNextPositionResponse(base::Closure done_closure, + void OnQueryNextPositionResponse(base::OnceClosure done_closure, mojom::GeopositionPtr position) { position_ = std::move(position); - done_closure.Run(); + std::move(done_closure).Run(); } // Result of the latest completed call to QueryNextPosition. @@ -133,7 +134,8 @@ TEST_F(PublicIpAddressGeolocatorTest, BindAndQuery) { "lat": 10.0, "lng": 20.0 } - })", net::HTTP_OK); + })", + net::HTTP_OK); // Wait for QueryNextPosition to return. loop.Run(); @@ -151,8 +153,8 @@ TEST_F(PublicIpAddressGeolocatorTest, ProhibitedOverlappingCalls) { public_ip_address_geolocator_.set_disconnect_handler(loop.QuitClosure()); // Issue two overlapping calls to QueryNextPosition. - QueryNextPosition(base::Closure()); - QueryNextPosition(base::Closure()); + QueryNextPosition(base::NullCallback()); + QueryNextPosition(base::NullCallback()); // This terminates only in case of connection error, which we expect. loop.Run(); diff --git a/services/device/geolocation/public_ip_address_location_notifier.cc b/services/device/geolocation/public_ip_address_location_notifier.cc index 1e25f5b4057a0e..60dc1ec8914467 100644 --- a/services/device/geolocation/public_ip_address_location_notifier.cc +++ b/services/device/geolocation/public_ip_address_location_notifier.cc @@ -78,8 +78,8 @@ void PublicIpAddressLocationNotifier::OnConnectionChanged( // delay, so that we only react once if multiple network changes occur in a // short span of time. react_to_network_change_closure_.Reset( - base::Bind(&PublicIpAddressLocationNotifier::ReactToNetworkChange, - base::Unretained(this))); + base::BindOnce(&PublicIpAddressLocationNotifier::ReactToNetworkChange, + base::Unretained(this))); base::SequencedTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, react_to_network_change_closure_.callback(), kNetworkChangeReactionDelay); diff --git a/services/device/geolocation/public_ip_address_location_notifier.h b/services/device/geolocation/public_ip_address_location_notifier.h index b0312fb44a50ff..a51ebd072d5f08 100644 --- a/services/device/geolocation/public_ip_address_location_notifier.h +++ b/services/device/geolocation/public_ip_address_location_notifier.h @@ -79,7 +79,7 @@ class PublicIpAddressLocationNotifier // Cancelable closure to absorb overlapping delayed calls to // ReactToNetworkChange. - base::CancelableClosure react_to_network_change_closure_; + base::CancelableOnceClosure react_to_network_change_closure_; // Whether we have been notified of a network change since the last network // location request was sent. diff --git a/services/device/geolocation/wifi_data_provider.h b/services/device/geolocation/wifi_data_provider.h index 38f5f9d62065c8..cc5a6455846edd 100644 --- a/services/device/geolocation/wifi_data_provider.h +++ b/services/device/geolocation/wifi_data_provider.h @@ -35,7 +35,7 @@ class WifiDataProvider : public base::RefCountedThreadSafe { // obtain. virtual bool GetData(WifiData* data) = 0; - typedef base::Closure WifiDataUpdateCallback; + typedef base::RepeatingClosure WifiDataUpdateCallback; void AddCallback(WifiDataUpdateCallback* callback); diff --git a/services/device/geolocation/wifi_data_provider_manager.h b/services/device/geolocation/wifi_data_provider_manager.h index b5e5d482350b97..22e8fb092a9dee 100644 --- a/services/device/geolocation/wifi_data_provider_manager.h +++ b/services/device/geolocation/wifi_data_provider_manager.h @@ -47,7 +47,7 @@ class WifiDataProviderManager { // Resets the factory function to the default. static void ResetFactoryForTesting(); - typedef base::Closure WifiDataUpdateCallback; + typedef base::RepeatingClosure WifiDataUpdateCallback; // Registers a callback, which will be run whenever new data is available. // Instantiates the singleton if necessary, and always returns it. diff --git a/services/device/hid/hid_connection_unittest.cc b/services/device/hid/hid_connection_unittest.cc index 05c6db2e897aaf..f02574a3f9bf7f 100644 --- a/services/device/hid/hid_connection_unittest.cc +++ b/services/device/hid/hid_connection_unittest.cc @@ -93,8 +93,8 @@ class TestConnectCallback { } HidService::ConnectCallback GetCallback() { - return base::Bind(&TestConnectCallback::SetConnection, - base::Unretained(this)); + return base::BindRepeating(&TestConnectCallback::SetConnection, + base::Unretained(this)); } private: diff --git a/services/device/hid/hid_service.h b/services/device/hid/hid_service.h index f5f40e0756e972..209a66dbc94af9 100644 --- a/services/device/hid/hid_service.h +++ b/services/device/hid/hid_service.h @@ -45,7 +45,7 @@ class HidService { using GetDevicesCallback = base::OnceCallback)>; using ConnectCallback = - base::Callback connection)>; + base::OnceCallback connection)>; static constexpr base::TaskTraits kBlockingTaskTraits = { base::ThreadPool(), base::MayBlock(), base::TaskPriority::USER_VISIBLE, @@ -66,7 +66,7 @@ class HidService { // Opens a connection to a device. The callback will be run with null on // failure. virtual void Connect(const std::string& device_guid, - const ConnectCallback& callback) = 0; + ConnectCallback callback) = 0; protected: friend class HidConnectionTest; diff --git a/services/device/hid/hid_service_linux.cc b/services/device/hid/hid_service_linux.cc index 92b57f08173611..61157bfe3a68d9 100644 --- a/services/device/hid/hid_service_linux.cc +++ b/services/device/hid/hid_service_linux.cc @@ -51,9 +51,9 @@ const char kSysfsReportDescriptorKey[] = "report_descriptor"; struct HidServiceLinux::ConnectParams { ConnectParams(scoped_refptr device_info, - const ConnectCallback& callback) + ConnectCallback callback) : device_info(std::move(device_info)), - callback(callback), + callback(std::move(callback)), task_runner(base::SequencedTaskRunnerHandle::Get()), blocking_task_runner( base::CreateSequencedTaskRunner(kBlockingTaskTraits)) {} @@ -211,23 +211,25 @@ base::WeakPtr HidServiceLinux::GetWeakPtr() { } void HidServiceLinux::Connect(const std::string& device_guid, - const ConnectCallback& callback) { + ConnectCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); const auto& map_entry = devices().find(device_guid); if (map_entry == devices().end()) { base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(callback, nullptr)); + FROM_HERE, base::BindOnce(std::move(callback), nullptr)); return; } scoped_refptr device_info = map_entry->second; - auto params = std::make_unique(device_info, callback); + auto params = + std::make_unique(device_info, std::move(callback)); #if defined(OS_CHROMEOS) chromeos::PermissionBrokerClient::ErrorCallback error_callback = base::BindOnce(&HidServiceLinux::OnPathOpenError, - params->device_info->device_node(), params->callback); + params->device_info->device_node(), + std::move(params->callback)); chromeos::PermissionBrokerClient::Get()->OpenPath( device_info->device_node(), base::BindOnce(&HidServiceLinux::OnPathOpenComplete, std::move(params)), @@ -252,12 +254,12 @@ void HidServiceLinux::OnPathOpenComplete(std::unique_ptr params, // static void HidServiceLinux::OnPathOpenError(const std::string& device_path, - const ConnectCallback& callback, + ConnectCallback callback, const std::string& error_name, const std::string& error_message) { HID_LOG(EVENT) << "Permission broker failed to open '" << device_path << "': " << error_name << ": " << error_message; - callback.Run(nullptr); + std::move(callback).Run(nullptr); } #else @@ -288,7 +290,8 @@ void HidServiceLinux::OpenOnBlockingThread( HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() << "': " << base::File::ErrorToString(device_file.error_details()); - task_runner->PostTask(FROM_HERE, base::BindOnce(params->callback, nullptr)); + task_runner->PostTask(FROM_HERE, + base::BindOnce(std::move(params->callback), nullptr)); return; } params->fd.reset(device_file.TakePlatformFile()); diff --git a/services/device/hid/hid_service_linux.h b/services/device/hid/hid_service_linux.h index da82d6bf8b1437..132de1e5218978 100644 --- a/services/device/hid/hid_service_linux.h +++ b/services/device/hid/hid_service_linux.h @@ -24,8 +24,7 @@ class HidServiceLinux : public HidService { ~HidServiceLinux() override; // HidService: - void Connect(const std::string& device_id, - const ConnectCallback& callback) override; + void Connect(const std::string& device_id, ConnectCallback callback) override; base::WeakPtr GetWeakPtr() override; private: @@ -40,7 +39,7 @@ class HidServiceLinux : public HidService { static void OnPathOpenComplete(std::unique_ptr params, base::ScopedFD fd); static void OnPathOpenError(const std::string& device_path, - const ConnectCallback& callback, + ConnectCallback callback, const std::string& error_name, const std::string& error_message); #else diff --git a/services/device/hid/hid_service_mac.cc b/services/device/hid/hid_service_mac.cc index f83c76a345931f..bb16f5af220412 100644 --- a/services/device/hid/hid_service_mac.cc +++ b/services/device/hid/hid_service_mac.cc @@ -126,13 +126,13 @@ HidServiceMac::HidServiceMac() : weak_factory_(this) { HidServiceMac::~HidServiceMac() {} void HidServiceMac::Connect(const std::string& device_guid, - const ConnectCallback& callback) { + ConnectCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); const auto& map_entry = devices().find(device_guid); if (map_entry == devices().end()) { base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(callback, nullptr)); + FROM_HERE, base::BindOnce(std::move(callback), nullptr)); return; } @@ -140,7 +140,7 @@ void HidServiceMac::Connect(const std::string& device_guid, FROM_HERE, kBlockingTaskTraits, base::BindOnce(&HidServiceMac::OpenOnBlockingThread, map_entry->second), base::BindOnce(&HidServiceMac::DeviceOpened, weak_factory_.GetWeakPtr(), - map_entry->second, callback)); + map_entry->second, std::move(callback))); } base::WeakPtr HidServiceMac::GetWeakPtr() { @@ -186,13 +186,13 @@ base::ScopedCFTypeRef HidServiceMac::OpenOnBlockingThread( void HidServiceMac::DeviceOpened( scoped_refptr device_info, - const ConnectCallback& callback, + ConnectCallback callback, base::ScopedCFTypeRef hid_device) { if (hid_device) { - callback.Run(base::MakeRefCounted( + std::move(callback).Run(base::MakeRefCounted( std::move(hid_device), std::move(device_info))); } else { - callback.Run(nullptr); + std::move(callback).Run(nullptr); } } diff --git a/services/device/hid/hid_service_mac.h b/services/device/hid/hid_service_mac.h index 8d56f8f68c7e53..abe4e33369e65f 100644 --- a/services/device/hid/hid_service_mac.h +++ b/services/device/hid/hid_service_mac.h @@ -26,15 +26,14 @@ class HidServiceMac : public HidService { HidServiceMac(); ~HidServiceMac() override; - void Connect(const std::string& device_id, - const ConnectCallback& connect) override; + void Connect(const std::string& device_id, ConnectCallback connect) override; base::WeakPtr GetWeakPtr() override; private: static base::ScopedCFTypeRef OpenOnBlockingThread( scoped_refptr device_info); void DeviceOpened(scoped_refptr device_info, - const ConnectCallback& callback, + ConnectCallback callback, base::ScopedCFTypeRef hid_device); // IOService matching callbacks. diff --git a/services/device/hid/hid_service_unittest.cc b/services/device/hid/hid_service_unittest.cc index 6494e966e3ba36..855ea06532d2e1 100644 --- a/services/device/hid/hid_service_unittest.cc +++ b/services/device/hid/hid_service_unittest.cc @@ -24,12 +24,12 @@ class HidServiceTest : public ::testing::Test { std::unique_ptr service_; }; -void OnGetDevices(const base::Closure& quit_closure, +void OnGetDevices(base::OnceClosure quit_closure, std::vector devices) { // Since there's no guarantee that any devices are connected at the moment // this test doesn't assume anything about the result but it at least verifies // that devices can be enumerated without the application crashing. - quit_closure.Run(); + std::move(quit_closure).Run(); } } // namespace diff --git a/services/device/hid/hid_service_win.cc b/services/device/hid/hid_service_win.cc index 7caf1b7080dec1..ec12d060767966 100644 --- a/services/device/hid/hid_service_win.cc +++ b/services/device/hid/hid_service_win.cc @@ -49,11 +49,12 @@ HidServiceWin::HidServiceWin() HidServiceWin::~HidServiceWin() {} void HidServiceWin::Connect(const std::string& device_guid, - const ConnectCallback& callback) { + ConnectCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); const auto& map_entry = devices().find(device_guid); if (map_entry == devices().end()) { - task_runner_->PostTask(FROM_HERE, base::BindOnce(callback, nullptr)); + task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), nullptr)); return; } scoped_refptr device_info = map_entry->second; @@ -61,13 +62,15 @@ void HidServiceWin::Connect(const std::string& device_guid, base::win::ScopedHandle file(OpenDevice(device_info->platform_device_id())); if (!file.IsValid()) { HID_PLOG(EVENT) << "Failed to open device"; - task_runner_->PostTask(FROM_HERE, base::BindOnce(callback, nullptr)); + task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), nullptr)); return; } task_runner_->PostTask( - FROM_HERE, base::BindOnce(callback, HidConnectionWin::Create( - device_info, std::move(file)))); + FROM_HERE, + base::BindOnce(std::move(callback), + HidConnectionWin::Create(device_info, std::move(file)))); } base::WeakPtr HidServiceWin::GetWeakPtr() { diff --git a/services/device/hid/hid_service_win.h b/services/device/hid/hid_service_win.h index a7e67cd73fec34..9c11639f8eb337 100644 --- a/services/device/hid/hid_service_win.h +++ b/services/device/hid/hid_service_win.h @@ -10,10 +10,14 @@ // Must be after windows.h. #include +// NOTE: must be included beore . clang-format will want to +// reorder them. +// clang-format off extern "C" { #include #include } +// clang-format on #include "base/macros.h" #include "base/memory/weak_ptr.h" @@ -34,8 +38,7 @@ class HidServiceWin : public HidService, public DeviceMonitorWin::Observer { HidServiceWin(); ~HidServiceWin() override; - void Connect(const std::string& device_id, - const ConnectCallback& callback) override; + void Connect(const std::string& device_id, ConnectCallback callback) override; base::WeakPtr GetWeakPtr() override; private: diff --git a/services/device/hid/input_service_linux.cc b/services/device/hid/input_service_linux.cc index ed6c68ef13a366..508c081241894f 100644 --- a/services/device/hid/input_service_linux.cc +++ b/services/device/hid/input_service_linux.cc @@ -103,8 +103,8 @@ class InputServiceLinuxImpl : public InputServiceLinux, InputServiceLinuxImpl::InputServiceLinuxImpl() : observer_(this) { DeviceMonitorLinux* monitor = DeviceMonitorLinux::GetInstance(); observer_.Add(monitor); - monitor->Enumerate(base::Bind(&InputServiceLinuxImpl::OnDeviceAdded, - base::Unretained(this))); + monitor->Enumerate(base::BindRepeating(&InputServiceLinuxImpl::OnDeviceAdded, + base::Unretained(this))); } InputServiceLinuxImpl::~InputServiceLinuxImpl() { diff --git a/services/device/hid/mock_hid_service.cc b/services/device/hid/mock_hid_service.cc index c0f0939ce23a32..364fc822020ba7 100644 --- a/services/device/hid/mock_hid_service.cc +++ b/services/device/hid/mock_hid_service.cc @@ -32,10 +32,10 @@ void MockHidService::FirstEnumerationComplete() { } void MockHidService::Connect(const std::string& device_id, - const ConnectCallback& callback) { + ConnectCallback callback) { const auto& map_entry = devices().find(device_id); if (map_entry == devices().end()) { - callback.Run(nullptr); + std::move(callback).Run(nullptr); return; } @@ -48,7 +48,7 @@ void MockHidService::Connect(const std::string& device_id, base::MakeRefCounted(data, sizeof(data) - 1); connection->MockInputReport(std::move(buffer)); - callback.Run(connection); + std::move(callback).Run(connection); } const std::map>& diff --git a/services/device/hid/mock_hid_service.h b/services/device/hid/mock_hid_service.h index 99f0eab4f30d01..1f35cfbfd2eca2 100644 --- a/services/device/hid/mock_hid_service.h +++ b/services/device/hid/mock_hid_service.h @@ -20,8 +20,7 @@ class MockHidService : public HidService { void FirstEnumerationComplete(); const std::map>& devices() const; - void Connect(const std::string& device_id, - const ConnectCallback& callback) override; + void Connect(const std::string& device_id, ConnectCallback callback) override; private: base::WeakPtr GetWeakPtr() override; diff --git a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc index 0d006a6d55213e..7c6f76a212d215 100644 --- a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc +++ b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc @@ -13,8 +13,8 @@ #include "dbus/message.h" #include "dbus/object_path.h" #include "dbus/object_proxy.h" -#include "services/device/media_transfer_protocol/mtp_storage_info.pb.h" #include "services/device/media_transfer_protocol/mtp_file_entry.pb.h" +#include "services/device/media_transfer_protocol/mtp_storage_info.pb.h" #include "third_party/cros_system_api/dbus/service_constants.h" namespace device { @@ -24,13 +24,9 @@ namespace { const char kInvalidResponseMsg[] = "Invalid Response: "; uint32_t kMaxChunkSize = 1024 * 1024; // D-Bus has message size limits. -mojom::MtpFileEntry GetMojoMtpFileEntryFromProtobuf( - const MtpFileEntry& entry) { +mojom::MtpFileEntry GetMojoMtpFileEntryFromProtobuf(const MtpFileEntry& entry) { return mojom::MtpFileEntry( - entry.item_id(), - entry.parent_id(), - entry.file_name(), - entry.file_size(), + entry.item_id(), entry.parent_id(), entry.file_name(), entry.file_size(), entry.modification_time(), static_cast(entry.file_type())); } @@ -38,20 +34,12 @@ mojom::MtpFileEntry GetMojoMtpFileEntryFromProtobuf( mojom::MtpStorageInfo GetMojoMtpStorageInfoFromProtobuf( const MtpStorageInfo& protobuf) { return mojom::MtpStorageInfo( - protobuf.storage_name(), - protobuf.vendor(), - protobuf.vendor_id(), - protobuf.product(), - protobuf.product_id(), - protobuf.device_flags(), - protobuf.storage_type(), - protobuf.filesystem_type(), - protobuf.access_capability(), - protobuf.max_capacity(), - protobuf.free_space_in_bytes(), - protobuf.free_space_in_objects(), - protobuf.storage_description(), - protobuf.volume_identifier()); + protobuf.storage_name(), protobuf.vendor(), protobuf.vendor_id(), + protobuf.product(), protobuf.product_id(), protobuf.device_flags(), + protobuf.storage_type(), protobuf.filesystem_type(), + protobuf.access_capability(), protobuf.max_capacity(), + protobuf.free_space_in_bytes(), protobuf.free_space_in_objects(), + protobuf.storage_description(), protobuf.volume_identifier()); } // The MediaTransferProtocolDaemonClient implementation. @@ -274,16 +262,18 @@ class MediaTransferProtocolDaemonClientImpl listen_for_changes_called_ = true; static const SignalEventTuple kSignalEventTuples[] = { - { mtpd::kMTPStorageAttached, true }, - { mtpd::kMTPStorageDetached, false }, + {mtpd::kMTPStorageAttached, true}, + {mtpd::kMTPStorageDetached, false}, }; for (const auto& event : kSignalEventTuples) { proxy_->ConnectToSignal( mtpd::kMtpdInterface, event.signal_name, - base::Bind(&MediaTransferProtocolDaemonClientImpl::OnMTPStorageSignal, - weak_ptr_factory_.GetWeakPtr(), handler, event.is_attach), - base::Bind(&MediaTransferProtocolDaemonClientImpl::OnSignalConnected, - weak_ptr_factory_.GetWeakPtr())); + base::BindRepeating( + &MediaTransferProtocolDaemonClientImpl::OnMTPStorageSignal, + weak_ptr_factory_.GetWeakPtr(), handler, event.is_attach), + base::BindOnce( + &MediaTransferProtocolDaemonClientImpl::OnSignalConnected, + weak_ptr_factory_.GetWeakPtr())); } } @@ -427,8 +417,7 @@ class MediaTransferProtocolDaemonClientImpl file_entries.reserve(entries_protobuf.file_entries_size()); for (int i = 0; i < entries_protobuf.file_entries_size(); ++i) { const auto& entry = entries_protobuf.file_entries(i); - file_entries.push_back( - GetMojoMtpFileEntryFromProtobuf(entry)); + file_entries.push_back(GetMojoMtpFileEntryFromProtobuf(entry)); } std::move(callback).Run(file_entries); } @@ -501,13 +490,12 @@ class MediaTransferProtocolDaemonClientImpl handler.Run(is_attach, storage_name); } - // Handles the result of signal connection setup. void OnSignalConnected(const std::string& interface, const std::string& signal, bool succeeded) { - LOG_IF(ERROR, !succeeded) << "Connect to " << interface << " " - << signal << " failed."; + LOG_IF(ERROR, !succeeded) + << "Connect to " << interface << " " << signal << " failed."; } dbus::ObjectProxy* const proxy_; diff --git a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h index 0bc724606e5fc1..9266787b00cb12 100644 --- a/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h +++ b/services/device/media_transfer_protocol/media_transfer_protocol_daemon_client.h @@ -88,7 +88,8 @@ class MediaTransferProtocolDaemonClient { // The first argument is true for attach, false for detach. // The second argument is the storage name. using MTPStorageEventHandler = - base::Callback; + base::RepeatingCallback; virtual ~MediaTransferProtocolDaemonClient(); diff --git a/services/device/media_transfer_protocol/mtp_device_manager.cc b/services/device/media_transfer_protocol/mtp_device_manager.cc index 1155f5d06a853b..18eda92e9ef028 100644 --- a/services/device/media_transfer_protocol/mtp_device_manager.cc +++ b/services/device/media_transfer_protocol/mtp_device_manager.cc @@ -43,8 +43,8 @@ MtpDeviceManager::~MtpDeviceManager() { if (bus_) { bus_->UnlistenForServiceOwnerChange( mtpd::kMtpdServiceName, - base::Bind(&MtpDeviceManager::FinishSetupOnOriginThread, - weak_ptr_factory_.GetWeakPtr())); + base::BindRepeating(&MtpDeviceManager::FinishSetupOnOriginThread, + weak_ptr_factory_.GetWeakPtr())); } VLOG(1) << "MtpDeviceManager Shutdown completed"; @@ -507,8 +507,8 @@ void MtpDeviceManager::FinishSetupOnOriginThread( mtp_client_ = MediaTransferProtocolDaemonClient::Create(bus_.get()); // Set up signals and start initializing |storage_info_map_|. - mtp_client_->ListenForChanges(base::Bind(&MtpDeviceManager::OnStorageChanged, - weak_ptr_factory_.GetWeakPtr())); + mtp_client_->ListenForChanges(base::BindRepeating( + &MtpDeviceManager::OnStorageChanged, weak_ptr_factory_.GetWeakPtr())); mtp_client_->EnumerateStorages( base::BindOnce(&MtpDeviceManager::OnEnumerateStorages, weak_ptr_factory_.GetWeakPtr()), diff --git a/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc b/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc index 784f8ad877cfb0..0f6d10f759208e 100644 --- a/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc +++ b/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc @@ -19,14 +19,15 @@ namespace device { class MockClient : public PowerMonitorBroadcastSource::Client { public: - MockClient(base::Closure service_connected) - : service_connected_(service_connected) {} + MockClient(base::OnceClosure service_connected) + : service_connected_(std::move(service_connected)) {} ~MockClient() override = default; // Implement device::mojom::PowerMonitorClient void PowerStateChange(bool on_battery_power) override { power_state_changes_++; - service_connected_.Run(); + if (service_connected_) + std::move(service_connected_).Run(); } void Suspend() override { suspends_++; } void Resume() override { resumes_++; } @@ -40,7 +41,7 @@ class MockClient : public PowerMonitorBroadcastSource::Client { int power_state_changes_ = 0; // Count of OnPowerStateChange notifications. int suspends_ = 0; // Count of OnSuspend notifications. int resumes_ = 0; // Count of OnResume notifications. - base::Closure service_connected_; + base::OnceClosure service_connected_; }; class PowerMonitorMessageBroadcasterTest : public DeviceServiceTestBase { diff --git a/services/device/public/cpp/geolocation/location_provider.h b/services/device/public/cpp/geolocation/location_provider.h index 66c9fa09c9bfd2..108a2f3d718bc3 100644 --- a/services/device/public/cpp/geolocation/location_provider.h +++ b/services/device/public/cpp/geolocation/location_provider.h @@ -16,8 +16,8 @@ class LocationProvider { public: virtual ~LocationProvider() {} - typedef base::Callback + typedef base::RepeatingCallback LocationProviderUpdateCallback; // This callback will be used to notify when a new Geoposition becomes diff --git a/services/device/test/usb_test_gadget_impl.cc b/services/device/test/usb_test_gadget_impl.cc index 7a3582fbaa09fd..84095a417a4a27 100644 --- a/services/device/test/usb_test_gadget_impl.cc +++ b/services/device/test/usb_test_gadget_impl.cc @@ -231,7 +231,7 @@ class UsbGadgetFactory : public UsbService::Observer, private: void EnumerateDevices() { if (!device_) { - usb_service_->GetDevices(base::Bind( + usb_service_->GetDevices(base::BindOnce( &UsbGadgetFactory::OnDevicesEnumerated, weak_factory_.GetWeakPtr())); } } @@ -420,8 +420,8 @@ class DeviceAddListener : public UsbService::Observer { ~DeviceAddListener() override = default; scoped_refptr WaitForAdd() { - usb_service_->GetDevices(base::Bind(&DeviceAddListener::OnDevicesEnumerated, - weak_factory_.GetWeakPtr())); + usb_service_->GetDevices(base::BindOnce( + &DeviceAddListener::OnDevicesEnumerated, weak_factory_.GetWeakPtr())); run_loop_.Run(); return device_; } @@ -484,8 +484,8 @@ class DeviceRemoveListener : public UsbService::Observer { void WaitForRemove() { usb_service_->GetDevices( - base::Bind(&DeviceRemoveListener::OnDevicesEnumerated, - weak_factory_.GetWeakPtr())); + base::BindOnce(&DeviceRemoveListener::OnDevicesEnumerated, + weak_factory_.GetWeakPtr())); run_loop_.Run(); } diff --git a/services/device/time_zone_monitor/time_zone_monitor_win.cc b/services/device/time_zone_monitor/time_zone_monitor_win.cc index 2d45a394e69c7a..c48164e5a2947d 100644 --- a/services/device/time_zone_monitor/time_zone_monitor_win.cc +++ b/services/device/time_zone_monitor/time_zone_monitor_win.cc @@ -21,8 +21,8 @@ class TimeZoneMonitorWin : public TimeZoneMonitor { TimeZoneMonitorWin() : TimeZoneMonitor(), singleton_hwnd_observer_(new gfx::SingletonHwndObserver( - base::Bind(&TimeZoneMonitorWin::OnWndProc, - base::Unretained(this)))) {} + base::BindRepeating(&TimeZoneMonitorWin::OnWndProc, + base::Unretained(this)))) {} ~TimeZoneMonitorWin() override {} diff --git a/services/device/usb/mojo/device_impl_unittest.cc b/services/device/usb/mojo/device_impl_unittest.cc index 838921f3798b22..d8dc579b31aa2a 100644 --- a/services/device/usb/mojo/device_impl_unittest.cc +++ b/services/device/usb/mojo/device_impl_unittest.cc @@ -75,22 +75,22 @@ class ConfigBuilder { }; void ExpectOpenAndThen(mojom::UsbOpenDeviceError expected, - const base::Closure& continuation, + base::OnceClosure continuation, mojom::UsbOpenDeviceError error) { EXPECT_EQ(expected, error); - continuation.Run(); + std::move(continuation).Run(); } void ExpectResultAndThen(bool expected_result, - const base::Closure& continuation, + base::OnceClosure continuation, bool actual_result) { EXPECT_EQ(expected_result, actual_result); - continuation.Run(); + std::move(continuation).Run(); } void ExpectTransferInAndThen(mojom::UsbTransferStatus expected_status, const std::vector& expected_bytes, - const base::Closure& continuation, + base::OnceClosure continuation, mojom::UsbTransferStatus actual_status, const std::vector& actual_bytes) { EXPECT_EQ(expected_status, actual_status); @@ -99,12 +99,12 @@ void ExpectTransferInAndThen(mojom::UsbTransferStatus expected_status, EXPECT_EQ(expected_bytes[i], actual_bytes[i]) << "Contents differ at index: " << i; } - continuation.Run(); + std::move(continuation).Run(); } void ExpectPacketsOutAndThen( const std::vector& expected_packets, - const base::Closure& continuation, + base::OnceClosure continuation, std::vector actual_packets) { ASSERT_EQ(expected_packets.size(), actual_packets.size()); for (size_t i = 0; i < expected_packets.size(); ++i) { @@ -113,13 +113,13 @@ void ExpectPacketsOutAndThen( EXPECT_EQ(mojom::UsbTransferStatus::COMPLETED, actual_packets[i]->status) << "Packet at index " << i << " not completed."; } - continuation.Run(); + std::move(continuation).Run(); } void ExpectPacketsInAndThen( const std::vector& expected_bytes, const std::vector& expected_packets, - const base::Closure& continuation, + base::OnceClosure continuation, const std::vector& actual_bytes, std::vector actual_packets) { ASSERT_EQ(expected_packets.size(), actual_packets.size()); @@ -134,14 +134,14 @@ void ExpectPacketsInAndThen( EXPECT_EQ(expected_bytes[i], actual_bytes[i]) << "Contents differ at index: " << i; } - continuation.Run(); + std::move(continuation).Run(); } void ExpectTransferStatusAndThen(mojom::UsbTransferStatus expected_status, - const base::Closure& continuation, + base::OnceClosure continuation, mojom::UsbTransferStatus actual_status) { EXPECT_EQ(expected_status, actual_status); - continuation.Run(); + std::move(continuation).Run(); } class MockUsbDeviceClient : public mojom::UsbDeviceClient { diff --git a/services/device/usb/mojo/device_manager_impl.cc b/services/device/usb/mojo/device_manager_impl.cc index 751f4483440a57..b41fa6e1d8ae5d 100644 --- a/services/device/usb/mojo/device_manager_impl.cc +++ b/services/device/usb/mojo/device_manager_impl.cc @@ -50,17 +50,16 @@ void DeviceManagerImpl::AddReceiver( void DeviceManagerImpl::EnumerateDevicesAndSetClient( mojo::PendingAssociatedRemote client, EnumerateDevicesAndSetClientCallback callback) { - usb_service_->GetDevices(base::Bind( + usb_service_->GetDevices(base::BindOnce( &DeviceManagerImpl::OnGetDevices, weak_factory_.GetWeakPtr(), - /*options=*/nullptr, base::Passed(&client), base::Passed(&callback))); + /*options=*/nullptr, std::move(client), std::move(callback))); } void DeviceManagerImpl::GetDevices(mojom::UsbEnumerationOptionsPtr options, GetDevicesCallback callback) { - usb_service_->GetDevices( - base::Bind(&DeviceManagerImpl::OnGetDevices, weak_factory_.GetWeakPtr(), - base::Passed(&options), mojo::NullAssociatedRemote(), - base::Passed(&callback))); + usb_service_->GetDevices(base::BindOnce( + &DeviceManagerImpl::OnGetDevices, weak_factory_.GetWeakPtr(), + std::move(options), mojo::NullAssociatedRemote(), std::move(callback))); } void DeviceManagerImpl::GetDevice( diff --git a/services/device/usb/mojo/device_manager_impl_unittest.cc b/services/device/usb/mojo/device_manager_impl_unittest.cc index a8fb5c45594eba..b2869d0c9b6ab0 100644 --- a/services/device/usb/mojo/device_manager_impl_unittest.cc +++ b/services/device/usb/mojo/device_manager_impl_unittest.cc @@ -90,14 +90,14 @@ class MockDeviceManagerClient : public mojom::UsbDeviceManagerClient { }; void ExpectDevicesAndThen(const std::set& expected_guids, - const base::Closure& continuation, + base::OnceClosure continuation, std::vector results) { EXPECT_EQ(expected_guids.size(), results.size()); std::set actual_guids; for (size_t i = 0; i < results.size(); ++i) actual_guids.insert(results[i]->guid); EXPECT_EQ(expected_guids, actual_guids); - continuation.Run(); + std::move(continuation).Run(); } } // namespace @@ -214,7 +214,8 @@ TEST_F(USBDeviceManagerImplTest, Client) { { base::RunLoop loop; - base::Closure barrier = base::BarrierClosure(6, loop.QuitClosure()); + base::RepeatingClosure barrier = + base::BarrierClosure(/*num_closures=*/6, loop.QuitClosure()); testing::InSequence s; EXPECT_CALL(mock_client, DoOnDeviceAdded(_)) .WillOnce(ExpectGuidAndThen(device1->guid(), barrier)) diff --git a/services/device/usb/usb_descriptors.cc b/services/device/usb/usb_descriptors.cc index b1bda07270e362..65b28e9c4b4469 100644 --- a/services/device/usb/usb_descriptors.cc +++ b/services/device/usb/usb_descriptors.cc @@ -105,7 +105,7 @@ void OnDoneReadingConfigDescriptors( } void OnReadConfigDescriptor(UsbDeviceDescriptor* desc, - base::Closure closure, + base::OnceClosure closure, UsbTransferStatus status, scoped_refptr buffer, size_t length) { @@ -123,7 +123,7 @@ void OnReadConfigDescriptor(UsbDeviceDescriptor* desc, void OnReadConfigDescriptorHeader(scoped_refptr device_handle, UsbDeviceDescriptor* desc, uint8_t index, - base::Closure closure, + base::OnceClosure closure, UsbTransferStatus status, scoped_refptr header, size_t length) { @@ -171,7 +171,7 @@ void OnReadDeviceDescriptor( uint8_t num_configurations = desc->num_configurations; UsbDeviceDescriptor* desc_ptr = desc.get(); - base::Closure closure = base::BarrierClosure( + base::RepeatingClosure closure = base::BarrierClosure( num_configurations, base::BindOnce(OnDoneReadingConfigDescriptors, device_handle, std::move(desc), std::move(callback))); @@ -188,7 +188,7 @@ void OnReadDeviceDescriptor( } void StoreStringDescriptor(IndexMap::iterator it, - base::Closure callback, + base::OnceClosure callback, const base::string16& string) { it->second = string; std::move(callback).Run(); @@ -236,7 +236,7 @@ void OnReadLanguageIds(scoped_refptr device_handle, for (auto it = index_map->begin(); it != index_map->end(); ++it) iterator_map[it->first] = it; - base::Closure barrier = base::BarrierClosure( + base::RepeatingClosure barrier = base::BarrierClosure( static_cast(iterator_map.size()), base::BindOnce(std::move(callback), std::move(index_map))); for (const auto& map_entry : iterator_map) { diff --git a/services/device/usb/usb_device_handle_unittest.cc b/services/device/usb/usb_device_handle_unittest.cc index 94cc662573edc9..5b9edaeff82fa8 100644 --- a/services/device/usb/usb_device_handle_unittest.cc +++ b/services/device/usb/usb_device_handle_unittest.cc @@ -116,13 +116,13 @@ class TestCompletionCallback { }; void ExpectTimeoutAndClose(scoped_refptr handle, - const base::Closure& quit_closure, + base::OnceClosure quit_closure, UsbTransferStatus status, scoped_refptr buffer, size_t transferred) { EXPECT_EQ(UsbTransferStatus::TIMEOUT, status); handle->Close(); - quit_closure.Run(); + std::move(quit_closure).Run(); } TEST_F(UsbDeviceHandleTest, InterruptTransfer) { diff --git a/services/device/usb/usb_device_handle_usbfs.cc b/services/device/usb/usb_device_handle_usbfs.cc index 4c6f6f398926bd..52aa9a7366f39f 100644 --- a/services/device/usb/usb_device_handle_usbfs.cc +++ b/services/device/usb/usb_device_handle_usbfs.cc @@ -183,7 +183,7 @@ struct UsbDeviceHandleUsbfs::Transfer { scoped_refptr control_transfer_buffer; scoped_refptr buffer; - base::CancelableClosure timeout_closure; + base::CancelableOnceClosure timeout_closure; bool cancelled = false; // When the URB is |cancelled| these two flags track whether the URB has both @@ -914,7 +914,7 @@ void UsbDeviceHandleUsbfs::SetUpTimeoutCallback(Transfer* transfer, return; transfer->timeout_closure.Reset( - base::Bind(&UsbDeviceHandleUsbfs::OnTimeout, this, transfer)); + base::BindOnce(&UsbDeviceHandleUsbfs::OnTimeout, this, transfer)); task_runner_->PostDelayedTask(FROM_HERE, transfer->timeout_closure.callback(), base::TimeDelta::FromMilliseconds(timeout)); } diff --git a/services/device/usb/usb_service.cc b/services/device/usb/usb_service.cc index 664ab0e7eeec7f..0a9d16d3a5bc1f 100644 --- a/services/device/usb/usb_service.cc +++ b/services/device/usb/usb_service.cc @@ -81,13 +81,13 @@ scoped_refptr UsbService::GetDevice(const std::string& guid) { return it->second; } -void UsbService::GetDevices(const GetDevicesCallback& callback) { +void UsbService::GetDevices(GetDevicesCallback callback) { std::vector> devices; devices.reserve(devices_.size()); for (const auto& map_entry : devices_) devices.push_back(map_entry.second); base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(callback, devices)); + FROM_HERE, base::BindOnce(std::move(callback), devices)); } void UsbService::AddObserver(Observer* observer) { diff --git a/services/device/usb/usb_service.h b/services/device/usb/usb_service.h index 9436f3bb938b3d..35e7ac48e89bed 100644 --- a/services/device/usb/usb_service.h +++ b/services/device/usb/usb_service.h @@ -32,7 +32,7 @@ class UsbDevice; class UsbService { public: using GetDevicesCallback = - base::Callback>&)>; + base::OnceCallback>&)>; class Observer { public: @@ -67,7 +67,7 @@ class UsbService { scoped_refptr GetDevice(const std::string& guid); // Enumerates available devices. - virtual void GetDevices(const GetDevicesCallback& callback); + virtual void GetDevices(GetDevicesCallback callback); void AddObserver(Observer* observer); void RemoveObserver(Observer* observer); diff --git a/services/device/usb/usb_service_impl.cc b/services/device/usb/usb_service_impl.cc index 907286aad05942..a42b0f7543de41 100644 --- a/services/device/usb/usb_service_impl.cc +++ b/services/device/usb/usb_service_impl.cc @@ -144,7 +144,7 @@ void SaveStringsAndRunContinuation( uint8_t manufacturer, uint8_t product, uint8_t serial_number, - const base::Closure& continuation, + base::OnceClosure continuation, std::unique_ptr> string_map) { if (manufacturer != 0) device->set_manufacturer_string((*string_map)[manufacturer]); @@ -152,11 +152,11 @@ void SaveStringsAndRunContinuation( device->set_product_string((*string_map)[product]); if (serial_number != 0) device->set_serial_number((*string_map)[serial_number]); - continuation.Run(); + std::move(continuation).Run(); } void OnReadBosDescriptor(scoped_refptr device_handle, - const base::Closure& barrier, + base::OnceClosure barrier, const GURL& landing_page) { scoped_refptr device = static_cast(device_handle->GetDevice().get()); @@ -164,7 +164,7 @@ void OnReadBosDescriptor(scoped_refptr device_handle, if (landing_page.is_valid()) device->set_webusb_landing_page(landing_page); - barrier.Run(); + std::move(barrier).Run(); } void OnDeviceOpenedReadDescriptors( @@ -234,21 +234,21 @@ UsbServiceImpl::~UsbServiceImpl() { libusb_hotplug_deregister_callback(context_->context(), hotplug_handle_); } -void UsbServiceImpl::GetDevices(const GetDevicesCallback& callback) { +void UsbServiceImpl::GetDevices(GetDevicesCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (usb_unavailable_) { task_runner_->PostTask( - FROM_HERE, - base::BindOnce(callback, std::vector>())); + FROM_HERE, base::BindOnce(std::move(callback), + std::vector>())); return; } if (hotplug_enabled_ && !enumeration_in_progress_) { // The device list is updated live when hotplug events are supported. - UsbService::GetDevices(callback); + UsbService::GetDevices(std::move(callback)); } else { - pending_enumeration_callbacks_.push_back(callback); + pending_enumeration_callbacks_.push_back(std::move(callback)); RefreshDevices(); } } @@ -401,8 +401,8 @@ void UsbServiceImpl::RefreshDevicesComplete() { std::vector callbacks; callbacks.swap(pending_enumeration_callbacks_); - for (const GetDevicesCallback& callback : callbacks) - callback.Run(result); + for (GetDevicesCallback& callback : callbacks) + std::move(callback).Run(result); } if (!pending_path_enumerations_.empty()) { @@ -411,7 +411,7 @@ void UsbServiceImpl::RefreshDevicesComplete() { } void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device, - const base::Closure& refresh_complete) { + base::OnceClosure refresh_complete) { DCHECK(context_); libusb_device_descriptor descriptor; @@ -419,13 +419,13 @@ void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device, if (rv != LIBUSB_SUCCESS) { USB_LOG(EVENT) << "Failed to get device descriptor: " << ConvertPlatformUsbErrorToString(rv); - EnumerationFailed(std::move(platform_device), refresh_complete); + EnumerationFailed(std::move(platform_device), std::move(refresh_complete)); return; } if (descriptor.bDeviceClass == LIBUSB_CLASS_HUB) { // Don't try to enumerate hubs. We never want to connect to a hub. - EnumerationFailed(std::move(platform_device), refresh_complete); + EnumerationFailed(std::move(platform_device), std::move(refresh_complete)); return; } @@ -435,7 +435,7 @@ void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device, descriptor); base::OnceClosure add_device = base::BindOnce(&UsbServiceImpl::AddDevice, weak_factory_.GetWeakPtr(), - refresh_complete, device); + std::move(refresh_complete), device); bool read_bos_descriptors = descriptor.bcdUSB >= kUsbVersion2_1; if (descriptor.iManufacturer == 0 && descriptor.iProduct == 0 && @@ -449,7 +449,7 @@ void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device, base::OnceClosure enumeration_failed = base::BindOnce( &UsbServiceImpl::EnumerationFailed, weak_factory_.GetWeakPtr(), ScopedLibusbDeviceRef(device->platform_device(), context_), - refresh_complete); + std::move(refresh_complete)); device->Open(base::BindOnce( &OnDeviceOpenedReadDescriptors, descriptor.iManufacturer, @@ -458,11 +458,11 @@ void UsbServiceImpl::EnumerateDevice(ScopedLibusbDeviceRef platform_device, } } -void UsbServiceImpl::AddDevice(const base::Closure& refresh_complete, +void UsbServiceImpl::AddDevice(base::OnceClosure refresh_complete, scoped_refptr device) { if (!base::Contains(devices_being_enumerated_, device->platform_device())) { // Device was removed while being enumerated. - refresh_complete.Run(); + std::move(refresh_complete).Run(); return; } @@ -480,7 +480,7 @@ void UsbServiceImpl::AddDevice(const base::Closure& refresh_complete, if (enumeration_ready_) NotifyDeviceAdded(device); - refresh_complete.Run(); + std::move(refresh_complete).Run(); } void UsbServiceImpl::RemoveDevice(scoped_refptr device) { @@ -545,9 +545,9 @@ void UsbServiceImpl::OnPlatformDeviceRemoved( } void UsbServiceImpl::EnumerationFailed(ScopedLibusbDeviceRef platform_device, - const base::Closure& refresh_complete) { + base::OnceClosure refresh_complete) { ignored_devices_.push_back(std::move(platform_device)); - refresh_complete.Run(); + std::move(refresh_complete).Run(); } } // namespace device diff --git a/services/device/usb/usb_service_impl.h b/services/device/usb/usb_service_impl.h index 918be7d344ab04..25cf477cfb18c6 100644 --- a/services/device/usb/usb_service_impl.h +++ b/services/device/usb/usb_service_impl.h @@ -47,7 +47,7 @@ class UsbServiceImpl final : private: // device::UsbService implementation - void GetDevices(const GetDevicesCallback& callback) override; + void GetDevices(GetDevicesCallback callback) override; #if defined(OS_WIN) // device::DeviceMonitorWin::Observer implementation @@ -67,9 +67,9 @@ class UsbServiceImpl final : // Creates a new UsbDevice based on the given libusb device. void EnumerateDevice(ScopedLibusbDeviceRef platform_device, - const base::Closure& refresh_complete); + base::OnceClosure refresh_complete); - void AddDevice(const base::Closure& refresh_complete, + void AddDevice(base::OnceClosure refresh_complete, scoped_refptr device); void RemoveDevice(scoped_refptr device); @@ -85,7 +85,7 @@ class UsbServiceImpl final : // Add |platform_device| to the |ignored_devices_| and // run |refresh_complete|. void EnumerationFailed(ScopedLibusbDeviceRef platform_device, - const base::Closure& refresh_complete); + base::OnceClosure refresh_complete); scoped_refptr task_runner_; diff --git a/services/device/usb/usb_service_linux.cc b/services/device/usb/usb_service_linux.cc index 122278fc562c24..d5cef63fe30238 100644 --- a/services/device/usb/usb_service_linux.cc +++ b/services/device/usb/usb_service_linux.cc @@ -219,12 +219,12 @@ UsbServiceLinux::~UsbServiceLinux() { NotifyWillDestroyUsbService(); } -void UsbServiceLinux::GetDevices(const GetDevicesCallback& callback) { +void UsbServiceLinux::GetDevices(GetDevicesCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (enumeration_ready()) - UsbService::GetDevices(callback); + UsbService::GetDevices(std::move(callback)); else - enumeration_callbacks_.push_back(callback); + enumeration_callbacks_.push_back(std::move(callback)); } void UsbServiceLinux::OnDeviceAdded( @@ -292,8 +292,8 @@ void UsbServiceLinux::DeviceReady(scoped_refptr device, result.reserve(devices().size()); for (const auto& map_entry : devices()) result.push_back(map_entry.second); - for (const auto& callback : enumeration_callbacks_) - callback.Run(result); + for (auto& callback : enumeration_callbacks_) + std::move(callback).Run(result); enumeration_callbacks_.clear(); } else if (success && enumeration_ready()) { NotifyDeviceAdded(device); @@ -328,8 +328,8 @@ void UsbServiceLinux::HelperStarted() { result.reserve(devices().size()); for (const auto& map_entry : devices()) result.push_back(map_entry.second); - for (const auto& callback : enumeration_callbacks_) - callback.Run(result); + for (auto& callback : enumeration_callbacks_) + std::move(callback).Run(result); enumeration_callbacks_.clear(); } } diff --git a/services/device/usb/usb_service_linux.h b/services/device/usb/usb_service_linux.h index f13ebbd1f1a466..d23c10b835557c 100644 --- a/services/device/usb/usb_service_linux.h +++ b/services/device/usb/usb_service_linux.h @@ -26,7 +26,7 @@ class UsbServiceLinux final : public UsbService { ~UsbServiceLinux() override; // device::UsbService implementation - void GetDevices(const GetDevicesCallback& callback) override; + void GetDevices(GetDevicesCallback callback) override; private: using DeviceMap = diff --git a/services/device/usb/usb_service_unittest.cc b/services/device/usb/usb_service_unittest.cc index 5f47d48d2b8a43..25196259231240 100644 --- a/services/device/usb/usb_service_unittest.cc +++ b/services/device/usb/usb_service_unittest.cc @@ -35,12 +35,12 @@ class UsbServiceTest : public ::testing::Test { base::TestIOThread io_thread_; }; -void OnGetDevices(const base::Closure& quit_closure, +void OnGetDevices(base::OnceClosure quit_closure, const std::vector>& devices) { // Since there's no guarantee that any devices are connected at the moment // this test doesn't assume anything about the result but it at least verifies // that devices can be enumerated without the application crashing. - quit_closure.Run(); + std::move(quit_closure).Run(); } } // namespace diff --git a/services/device/usb/usb_service_win.cc b/services/device/usb/usb_service_win.cc index febfba98b7ac8e..bb14c14f840cec 100644 --- a/services/device/usb/usb_service_win.cc +++ b/services/device/usb/usb_service_win.cc @@ -309,12 +309,12 @@ UsbServiceWin::~UsbServiceWin() { NotifyWillDestroyUsbService(); } -void UsbServiceWin::GetDevices(const GetDevicesCallback& callback) { +void UsbServiceWin::GetDevices(GetDevicesCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (enumeration_ready()) - UsbService::GetDevices(callback); + UsbService::GetDevices(std::move(callback)); else - enumeration_callbacks_.push_back(callback); + enumeration_callbacks_.push_back(std::move(callback)); } void UsbServiceWin::OnDeviceAdded(const GUID& class_guid, @@ -353,8 +353,8 @@ void UsbServiceWin::HelperStarted() { result.reserve(devices().size()); for (const auto& map_entry : devices()) result.push_back(map_entry.second); - for (const auto& callback : enumeration_callbacks_) - callback.Run(result); + for (auto& callback : enumeration_callbacks_) + std::move(callback).Run(result); enumeration_callbacks_.clear(); } } @@ -373,8 +373,8 @@ void UsbServiceWin::CreateDeviceObject(const std::string& device_path, scoped_refptr device(new UsbDeviceWin( device_path, hub_path, bus_number, port_number, driver_name)); devices_by_path_[device->device_path()] = device; - device->ReadDescriptors(base::Bind(&UsbServiceWin::DeviceReady, - weak_factory_.GetWeakPtr(), device)); + device->ReadDescriptors(base::BindOnce(&UsbServiceWin::DeviceReady, + weak_factory_.GetWeakPtr(), device)); } void UsbServiceWin::DeviceReady(scoped_refptr device, @@ -414,8 +414,8 @@ void UsbServiceWin::DeviceReady(scoped_refptr device, result.reserve(devices().size()); for (const auto& map_entry : devices()) result.push_back(map_entry.second); - for (const auto& callback : enumeration_callbacks_) - callback.Run(result); + for (auto& callback : enumeration_callbacks_) + std::move(callback).Run(result); enumeration_callbacks_.clear(); } else if (success && enumeration_ready()) { NotifyDeviceAdded(device); diff --git a/services/device/usb/usb_service_win.h b/services/device/usb/usb_service_win.h index dab582f2dcd1ab..3b531584070663 100644 --- a/services/device/usb/usb_service_win.h +++ b/services/device/usb/usb_service_win.h @@ -29,7 +29,7 @@ class UsbServiceWin final : public DeviceMonitorWin::Observer, class BlockingTaskRunnerHelper; // device::UsbService implementation - void GetDevices(const GetDevicesCallback& callback) override; + void GetDevices(GetDevicesCallback callback) override; // device::DeviceMonitorWin::Observer implementation void OnDeviceAdded(const GUID& class_guid, diff --git a/services/device/wake_lock/wake_lock.cc b/services/device/wake_lock/wake_lock.cc index 6f4be353a3b2a4..c41602ec9fc654 100644 --- a/services/device/wake_lock/wake_lock.cc +++ b/services/device/wake_lock/wake_lock.cc @@ -32,8 +32,8 @@ WakeLock::WakeLock(mojo::PendingReceiver receiver, observer_(observer) { DCHECK(observer_); AddClient(std::move(receiver)); - receiver_set_.set_disconnect_handler( - base::Bind(&WakeLock::OnConnectionError, base::Unretained(this))); + receiver_set_.set_disconnect_handler(base::BindRepeating( + &WakeLock::OnConnectionError, base::Unretained(this))); } WakeLock::~WakeLock() {} diff --git a/services/device/wake_lock/wake_lock.h b/services/device/wake_lock/wake_lock.h index 41d4325fd9d540..c2af1aa16df98b 100644 --- a/services/device/wake_lock/wake_lock.h +++ b/services/device/wake_lock/wake_lock.h @@ -24,7 +24,7 @@ namespace device { // Callback that maps a context ID to the NativeView associated with // that context. This callback is provided to the Device Service by its // embedder. -using WakeLockContextCallback = base::Callback; +using WakeLockContextCallback = base::RepeatingCallback; class WakeLock : public mojom::WakeLock { public: diff --git a/services/device/wake_lock/wake_lock_unittest.cc b/services/device/wake_lock/wake_lock_unittest.cc index d72af77d8f585d..e7eec1bab17d59 100644 --- a/services/device/wake_lock/wake_lock_unittest.cc +++ b/services/device/wake_lock/wake_lock_unittest.cc @@ -82,14 +82,14 @@ class WakeLockTest : public DeviceServiceTestBase { wake_lock_.BindNewPipeAndPassReceiver()); } - void OnChangeType(base::Closure quit_closure, bool result) { + void OnChangeType(base::OnceClosure quit_closure, bool result) { result_ = result; - quit_closure.Run(); + std::move(quit_closure).Run(); } - void OnHasWakeLock(base::Closure quit_closure, bool has_wakelock) { + void OnHasWakeLock(base::OnceClosure quit_closure, bool has_wakelock) { has_wakelock_ = has_wakelock; - quit_closure.Run(); + std::move(quit_closure).Run(); } bool ChangeType(mojom::WakeLockType type) { @@ -97,8 +97,8 @@ class WakeLockTest : public DeviceServiceTestBase { base::RunLoop run_loop; wake_lock_->ChangeType( - type, base::Bind(&WakeLockTest::OnChangeType, base::Unretained(this), - run_loop.QuitClosure())); + type, base::BindOnce(&WakeLockTest::OnChangeType, + base::Unretained(this), run_loop.QuitClosure())); run_loop.Run(); return result_; @@ -108,9 +108,9 @@ class WakeLockTest : public DeviceServiceTestBase { has_wakelock_ = false; base::RunLoop run_loop; - wake_lock_->HasWakeLockForTests(base::Bind(&WakeLockTest::OnHasWakeLock, - base::Unretained(this), - run_loop.QuitClosure())); + wake_lock_->HasWakeLockForTests(base::BindOnce(&WakeLockTest::OnHasWakeLock, + base::Unretained(this), + run_loop.QuitClosure())); run_loop.Run(); return has_wakelock_;