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 e038d2bc1108721538e3841aff4aa289a18a7e2b..7af1ecad6867a4a63ae7c59429ee82ecd149375d 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" |
@@ -1154,7 +1155,7 @@ void RendererBlinkPlatformImpl::SetMockDeviceOrientationDataForTesting( |
//------------------------------------------------------------------------------ |
// static |
-PlatformEventObserverBase* |
+std::unique_ptr<PlatformEventObserverBase> |
RendererBlinkPlatformImpl::CreatePlatformEventObserverFromType( |
blink::WebPlatformEventType type) { |
RenderThread* thread = RenderThreadImpl::current(); |
@@ -1167,17 +1168,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. |
@@ -1193,7 +1194,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() { |
@@ -1205,10 +1206,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); |