Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1393)

Unified Diff: Source/modules/screen_orientation/ScreenOrientation.cpp

Issue 315693002: Use WebViewClient instead of BlinkPlatform for screen lock. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/screen_orientation/ScreenOrientation.cpp
diff --git a/Source/modules/screen_orientation/ScreenOrientation.cpp b/Source/modules/screen_orientation/ScreenOrientation.cpp
index 504fda15eaa2df75458e48db0fe92d019ee14df8..d16efd4523ade3db22ccb8c6b65e61d42b21d01a 100644
--- a/Source/modules/screen_orientation/ScreenOrientation.cpp
+++ b/Source/modules/screen_orientation/ScreenOrientation.cpp
@@ -13,9 +13,9 @@
#include "core/frame/DOMWindow.h"
#include "core/frame/LocalFrame.h"
#include "core/frame/Screen.h"
+#include "core/page/Page.h"
#include "modules/screen_orientation/LockOrientationCallback.h"
#include "modules/screen_orientation/ScreenOrientationController.h"
-#include "public/platform/Platform.h"
#include "public/platform/WebScreenOrientationType.h"
// This code assumes that WebScreenOrientationType values are included in WebScreenOrientationLockType.
@@ -101,6 +101,12 @@ Document* ScreenOrientation::document() const
return m_associatedDOMWindow->document();
}
+Page* ScreenOrientation::page() const
+{
+ ASSERT(document()->page());
Inactive 2014/06/03 18:04:53 This seems unsafe. We should probably return 0 if
mlamouri (slow - plz ping) 2014/06/03 19:49:30 Done.
+ return document()->page();
Inactive 2014/06/03 18:04:53 We should be able to use frame()->page() since thi
mlamouri (slow - plz ping) 2014/06/03 19:49:30 Done.
+}
+
ScreenOrientation& ScreenOrientation::from(Screen& screen)
{
ScreenOrientation* supplement = static_cast<ScreenOrientation*>(WillBeHeapSupplement<Screen>::from(screen, supplementName()));
@@ -122,7 +128,7 @@ const AtomicString& ScreenOrientation::orientation(Screen& screen)
// FIXME: we should try to return a better guess, like the latest known value.
return orientationTypeToString(blink::WebScreenOrientationPortraitPrimary);
}
- ScreenOrientationController& controller = ScreenOrientationController::from(*screenOrientation.document());
+ ScreenOrientationController& controller = ScreenOrientationController::from(*screenOrientation.page());
return orientationTypeToString(controller.orientation());
}
@@ -146,13 +152,17 @@ ScriptPromise ScreenOrientation::lockOrientation(ScriptState* state, Screen& scr
return promise;
}
- blink::Platform::current()->lockOrientation(stringToOrientationLock(lockString), new LockOrientationCallback(resolver));
+ ScreenOrientationController::from(*document->page()).lockOrientation(stringToOrientationLock(lockString), new LockOrientationCallback(resolver));
Inactive 2014/06/03 18:04:53 I think it is possible for page() to return null i
mlamouri (slow - plz ping) 2014/06/03 19:49:30 Done.
return promise;
}
void ScreenOrientation::unlockOrientation(Screen& screen)
{
- blink::Platform::current()->unlockOrientation();
+ ScreenOrientation& screenOrientation = ScreenOrientation::from(screen);
+ if (!screenOrientation.page())
Inactive 2014/06/03 18:04:53 That method currently has an assertion making sure
mlamouri (slow - plz ping) 2014/06/03 19:49:30 Done.
+ return;
+
+ ScreenOrientationController::from(*screenOrientation.page()).unlockOrientation();
}
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698