Index: content/renderer/renderer_blink_platform_impl.cc |
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc |
index 6bdaa6c4e881e57086e69eaf641f650e636447f5..2155b6fe23efe6bff2e992fb1c45616e5c3f3a90 100644 |
--- a/content/renderer/renderer_blink_platform_impl.cc |
+++ b/content/renderer/renderer_blink_platform_impl.cc |
@@ -4,6 +4,7 @@ |
#include "content/renderer/renderer_blink_platform_impl.h" |
+#include <memory> |
#include <utility> |
#include "base/command_line.h" |
@@ -1159,7 +1160,7 @@ void RendererBlinkPlatformImpl::SetMockDeviceOrientationDataForTesting( |
//------------------------------------------------------------------------------ |
// static |
-PlatformEventObserverBase* |
+std::unique_ptr<PlatformEventObserverBase> |
RendererBlinkPlatformImpl::CreatePlatformEventObserverFromType( |
blink::WebPlatformEventType type) { |
RenderThread* thread = RenderThreadImpl::current(); |
@@ -1172,17 +1173,17 @@ RendererBlinkPlatformImpl::CreatePlatformEventObserverFromType( |
switch (type) { |
case blink::WebPlatformEventTypeDeviceMotion: |
- return new DeviceMotionEventPump(thread); |
+ return base::MakeUnique<DeviceMotionEventPump>(thread); |
case blink::WebPlatformEventTypeDeviceOrientation: |
- return new DeviceOrientationEventPump(thread); |
+ return base::MakeUnique<DeviceOrientationEventPump>(thread); |
case blink::WebPlatformEventTypeDeviceOrientationAbsolute: |
- return new DeviceOrientationAbsoluteEventPump(thread); |
+ return base::MakeUnique<DeviceOrientationAbsoluteEventPump>(thread); |
case blink::WebPlatformEventTypeDeviceLight: |
- return new DeviceLightEventPump(thread); |
+ return base::MakeUnique<DeviceLightEventPump>(thread); |
case blink::WebPlatformEventTypeGamepad: |
- return new GamepadSharedMemoryReader(thread); |
+ return base::MakeUnique<GamepadSharedMemoryReader>(thread); |
case blink::WebPlatformEventTypeScreenOrientation: |
- return new ScreenOrientationObserver(); |
+ return base::MakeUnique<ScreenOrientationObserver>(); |
default: |
// A default statement is required to prevent compilation errors when |
// Blink adds a new type. |
@@ -1198,7 +1199,7 @@ void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting( |
std::unique_ptr<PlatformEventObserverBase> observer) { |
if (platform_event_observers_.Lookup(type)) |
platform_event_observers_.Remove(type); |
- platform_event_observers_.AddWithID(observer.release(), type); |
+ platform_event_observers_.AddWithID(std::move(observer), type); |
} |
blink::InterfaceProvider* RendererBlinkPlatformImpl::interfaceProvider() { |
@@ -1210,10 +1211,13 @@ void RendererBlinkPlatformImpl::startListening( |
blink::WebPlatformEventListener* listener) { |
PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
if (!observer) { |
- observer = CreatePlatformEventObserverFromType(type); |
- if (!observer) |
+ std::unique_ptr<PlatformEventObserverBase> new_observer = |
+ CreatePlatformEventObserverFromType(type); |
+ if (!new_observer) |
return; |
- platform_event_observers_.AddWithID(observer, static_cast<int32_t>(type)); |
+ observer = new_observer.get(); |
+ platform_event_observers_.AddWithID(std::move(new_observer), |
+ static_cast<int32_t>(type)); |
} |
observer->Start(listener); |