Index: content/renderer/renderer_webkitplatformsupport_impl.cc |
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc |
index 91906df8dbfc6a5ea5e8767a53602f41fe9c0f80..4645f9562ef00280cb7946b108b7472969b8a5cc 100644 |
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc |
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc |
@@ -50,6 +50,7 @@ |
#include "content/renderer/media/webcontentdecryptionmodule_impl.h" |
#include "content/renderer/render_thread_impl.h" |
#include "content/renderer/renderer_clipboard_client.h" |
+#include "content/renderer/screen_orientation/mock_screen_orientation_controller.h" |
#include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" |
#include "content/renderer/webclipboard_impl.h" |
#include "content/renderer/webgraphicscontext3d_provider_impl.h" |
@@ -137,6 +138,8 @@ using blink::WebVector; |
namespace content { |
+namespace { |
+ |
static bool g_sandbox_enabled = true; |
static blink::WebGamepadListener* web_gamepad_listener = NULL; |
base::LazyInstance<WebGamepads>::Leaky g_test_gamepads = |
@@ -145,8 +148,10 @@ base::LazyInstance<blink::WebDeviceMotionData>::Leaky |
g_test_device_motion_data = LAZY_INSTANCE_INITIALIZER; |
base::LazyInstance<blink::WebDeviceOrientationData>::Leaky |
g_test_device_orientation_data = LAZY_INSTANCE_INITIALIZER; |
-static blink::WebScreenOrientationListener* |
- g_test_screen_orientation_listener = NULL; |
+base::LazyInstance<MockScreenOrientationController>::Leaky |
+ g_test_screen_orientation_controller = LAZY_INSTANCE_INITIALIZER; |
+ |
+} // namespace |
//------------------------------------------------------------------------------ |
@@ -1081,6 +1086,12 @@ void RendererWebKitPlatformSupportImpl::SetMockDeviceMotionDataForTesting( |
g_test_device_motion_data.Get() = data; |
} |
+// static |
+void RendererWebKitPlatformSupportImpl::ResetMockScreenOrientationForTesting() |
+{ |
+ g_test_screen_orientation_controller.Get().ResetData(); |
+} |
+ |
//------------------------------------------------------------------------------ |
void RendererWebKitPlatformSupportImpl::setDeviceOrientationListener( |
@@ -1129,7 +1140,7 @@ void RendererWebKitPlatformSupportImpl::setScreenOrientationListener( |
// backend in order to let Blink get tested properly, That means that screen |
// orientation updates have to be done manually instead of from signals sent |
// by the browser process. |
- g_test_screen_orientation_listener = listener; |
+ g_test_screen_orientation_controller.Get().SetListener(listener); |
return; |
} |
@@ -1145,6 +1156,7 @@ void RendererWebKitPlatformSupportImpl::lockOrientation( |
blink::WebScreenOrientationLockType orientation) { |
if (RenderThreadImpl::current() && |
RenderThreadImpl::current()->layout_test_mode()) { |
+ g_test_screen_orientation_controller.Get().UpdateLock(orientation); |
return; |
} |
RenderThread::Get()->Send(new ScreenOrientationHostMsg_Lock(orientation)); |
@@ -1153,6 +1165,7 @@ void RendererWebKitPlatformSupportImpl::lockOrientation( |
void RendererWebKitPlatformSupportImpl::unlockOrientation() { |
if (RenderThreadImpl::current() && |
RenderThreadImpl::current()->layout_test_mode()) { |
+ g_test_screen_orientation_controller.Get().ResetLock(); |
return; |
} |
RenderThread::Get()->Send(new ScreenOrientationHostMsg_Unlock); |
@@ -1161,9 +1174,8 @@ void RendererWebKitPlatformSupportImpl::unlockOrientation() { |
// static |
void RendererWebKitPlatformSupportImpl::SetMockScreenOrientationForTesting( |
blink::WebScreenOrientationType orientation) { |
- if (!g_test_screen_orientation_listener) |
- return; |
- g_test_screen_orientation_listener->didChangeScreenOrientation(orientation); |
+ g_test_screen_orientation_controller.Get() |
+ .UpdateDeviceOrientation(orientation); |
} |
//------------------------------------------------------------------------------ |