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

Side by Side Diff: Source/modules/screen_orientation/ScreenOrientation.cpp

Issue 366853008: [screen-orientation] Expose orientation info in OrientationInformation interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: review comments Created 6 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "modules/screen_orientation/ScreenOrientation.h" 6 #include "modules/screen_orientation/ScreenOrientation.h"
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "core/dom/DOMException.h" 10 #include "core/dom/DOMException.h"
11 #include "core/dom/Document.h" 11 #include "core/dom/Document.h"
12 #include "core/dom/ExceptionCode.h" 12 #include "core/dom/ExceptionCode.h"
13 #include "core/frame/LocalDOMWindow.h" 13 #include "core/frame/LocalDOMWindow.h"
14 #include "core/frame/LocalFrame.h" 14 #include "core/frame/LocalFrame.h"
15 #include "core/frame/Screen.h" 15 #include "core/frame/Screen.h"
16 #include "modules/screen_orientation/LockOrientationCallback.h" 16 #include "modules/screen_orientation/LockOrientationCallback.h"
17 #include "modules/screen_orientation/OrientationInformation.h"
17 #include "modules/screen_orientation/ScreenOrientationController.h" 18 #include "modules/screen_orientation/ScreenOrientationController.h"
18 #include "public/platform/WebScreenOrientationType.h" 19 #include "public/platform/WebScreenOrientationType.h"
19 20
20 // This code assumes that WebScreenOrientationType values are included in WebScr eenOrientationLockType. 21 // This code assumes that WebScreenOrientationType values are included in WebScr eenOrientationLockType.
21 #define COMPILE_ASSERT_MATCHING_ENUM(enum1, enum2) \ 22 #define COMPILE_ASSERT_MATCHING_ENUM(enum1, enum2) \
22 COMPILE_ASSERT(static_cast<unsigned>(blink::enum1) == static_cast<unsigned>( blink::enum2), mismatching_types) 23 COMPILE_ASSERT(static_cast<unsigned>(blink::enum1) == static_cast<unsigned>( blink::enum2), mismatching_types)
23 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationPortraitPrimary, WebScreenOrien tationLockPortraitPrimary); 24 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationPortraitPrimary, WebScreenOrien tationLockPortraitPrimary);
24 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationPortraitSecondary, WebScreenOri entationLockPortraitSecondary); 25 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationPortraitSecondary, WebScreenOri entationLockPortraitSecondary);
25 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationLandscapePrimary, WebScreenOrie ntationLockLandscapePrimary); 26 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationLandscapePrimary, WebScreenOrie ntationLockLandscapePrimary);
26 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationLandscapeSecondary, WebScreenOr ientationLockLandscapeSecondary); 27 COMPILE_ASSERT_MATCHING_ENUM(WebScreenOrientationLandscapeSecondary, WebScreenOr ientationLockLandscapeSecondary);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 supplement = new ScreenOrientation(screen); 110 supplement = new ScreenOrientation(screen);
110 provideTo(screen, supplementName(), adoptPtrWillBeNoop(supplement)); 111 provideTo(screen, supplementName(), adoptPtrWillBeNoop(supplement));
111 } 112 }
112 return *supplement; 113 return *supplement;
113 } 114 }
114 115
115 ScreenOrientation::~ScreenOrientation() 116 ScreenOrientation::~ScreenOrientation()
116 { 117 {
117 } 118 }
118 119
119 const AtomicString& ScreenOrientation::orientation(Screen& screen) 120 OrientationInformation* ScreenOrientation::orientation(Screen& screen)
120 { 121 {
121 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen); 122 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen);
122 if (!screenOrientation.frame()) { 123 if (!screenOrientation.frame()) {
123 // FIXME: we should try to return a better guess, like the latest known value. 124 return OrientationInformation::createFake();
abarth-chromium 2014/07/02 18:25:10 Why not just return 0? That's what we usually do
mlamouri (slow - plz ping) 2014/07/02 19:18:12 Because we are usually not throwing and if we retu
124 return orientationTypeToString(blink::WebScreenOrientationPortraitPrimar y);
125 } 125 }
126 ScreenOrientationController& controller = ScreenOrientationController::from( *screenOrientation.frame()); 126 return ScreenOrientationController::from(*screenOrientation.frame()).orienta tion();
127 return orientationTypeToString(controller.orientation());
128 } 127 }
129 128
130 ScriptPromise ScreenOrientation::lockOrientation(ScriptState* state, Screen& scr een, const AtomicString& lockString) 129 ScriptPromise ScreenOrientation::lockOrientation(ScriptState* state, Screen& scr een, const AtomicString& lockString)
131 { 130 {
132 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(state ); 131 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(state );
133 ScriptPromise promise = resolver->promise(); 132 ScriptPromise promise = resolver->promise();
134 133
135 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen); 134 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen);
136 Document* document = screenOrientation.document(); 135 Document* document = screenOrientation.document();
137 136
(...skipping 16 matching lines...) Expand all
154 void ScreenOrientation::unlockOrientation(Screen& screen) 153 void ScreenOrientation::unlockOrientation(Screen& screen)
155 { 154 {
156 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen); 155 ScreenOrientation& screenOrientation = ScreenOrientation::from(screen);
157 if (!screenOrientation.frame()) 156 if (!screenOrientation.frame())
158 return; 157 return;
159 158
160 ScreenOrientationController::from(*screenOrientation.frame()).unlockOrientat ion(); 159 ScreenOrientationController::from(*screenOrientation.frame()).unlockOrientat ion();
161 } 160 }
162 161
163 } // namespace WebCore 162 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698