| Index: device/usb/mojo/device_manager_impl.cc
|
| diff --git a/device/usb/mojo/device_manager_impl.cc b/device/usb/mojo/device_manager_impl.cc
|
| index 1f6625db8c0fb980feefaf51880c3fc3038689a2..767d63310e713b9e5b1b24b42c834c0c9b05dc8c 100644
|
| --- a/device/usb/mojo/device_manager_impl.cc
|
| +++ b/device/usb/mojo/device_manager_impl.cc
|
| @@ -21,6 +21,7 @@
|
| #include "mojo/common/common_type_converters.h"
|
| #include "mojo/public/cpp/bindings/array.h"
|
| #include "mojo/public/cpp/bindings/interface_request.h"
|
| +#include "mojo/public/cpp/bindings/strong_binding.h"
|
|
|
| namespace device {
|
| namespace usb {
|
| @@ -32,18 +33,18 @@ void DeviceManagerImpl::Create(
|
| DCHECK(DeviceClient::Get());
|
| UsbService* usb_service = DeviceClient::Get()->GetUsbService();
|
| if (usb_service) {
|
| - new DeviceManagerImpl(permission_provider, usb_service, std::move(request));
|
| + mojo::MakeStrongBinding(
|
| + base::MakeUnique<DeviceManagerImpl>(permission_provider, usb_service),
|
| + std::move(request));
|
| }
|
| }
|
|
|
| DeviceManagerImpl::DeviceManagerImpl(
|
| base::WeakPtr<PermissionProvider> permission_provider,
|
| - UsbService* usb_service,
|
| - mojo::InterfaceRequest<DeviceManager> request)
|
| + UsbService* usb_service)
|
| : permission_provider_(permission_provider),
|
| usb_service_(usb_service),
|
| observer_(this),
|
| - binding_(this, std::move(request)),
|
| weak_factory_(this) {
|
| // This object owns itself and will be destroyed if the message pipe it is
|
| // bound to is closed, the message loop is destructed, or the UsbService is
|
| @@ -72,6 +73,7 @@ void DeviceManagerImpl::GetDevice(
|
|
|
| if (permission_provider_ &&
|
| permission_provider_->HasDevicePermission(device)) {
|
| + // Owns itself.
|
| new DeviceImpl(device, DeviceInfo::From(*device), permission_provider_,
|
| std::move(device_request));
|
| }
|
|
|