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

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

Issue 169403006: Screen Orientation API: screen.orientation & orientationchange event (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "modules/screen_orientation/ScreenOrientationController.h"
7
8 #include "core/page/Page.h"
9
10 namespace WebCore {
11
12 PassOwnPtr<ScreenOrientationController> ScreenOrientationController::create()
13 {
14 return adoptPtr(new ScreenOrientationController());
15 }
16
17 ScreenOrientationController::~ScreenOrientationController()
18 {
19 }
abarth-chromium 2014/02/18 01:34:27 Please ASSERT(m_observers.isEmpty()) here.
Inactive 2014/02/18 20:52:47 observers are now in the Dispatcher class, which i
20
21 void ScreenOrientationController::addObserver(ScreenOrientation* observer)
22 {
23 m_observers.add(observer);
24 }
25
26 void ScreenOrientationController::removeObserver(ScreenOrientation* observer)
27 {
28 m_observers.remove(observer);
29 }
30
31 const char* ScreenOrientationController::supplementName()
32 {
33 return "ScreenOrientationController";
34 }
35
36 ScreenOrientationController::ScreenOrientationController()
37 // FIXME: This orientation is not necessary the right one until the first or ientationchange
38 // event is fired.
39 : m_orientation(OrientationPortraitPrimary)
40 {
41 }
42
43 ScreenOrientationController* ScreenOrientationController::from(Page* page)
44 {
45 return static_cast<ScreenOrientationController*>(Supplement<Page>::from(page , supplementName()));
46 }
47
48 void ScreenOrientationController::orientationChanged(ScreenOrientationValue orie ntation)
49 {
50 if (m_orientation == orientation)
51 return;
52
53 m_orientation = orientation;
54 for (ObserversSet::iterator it = m_observers.begin(); it != m_observers.end( ); ++it)
55 (*it)->orientationChanged();
abarth-chromium 2014/02/18 01:34:27 This is a weak iteration pattern. What if m_obser
Inactive 2014/02/18 20:52:47 Done, used the same code as DeviceOrientation.
56 }
57
58 void provideScreenOrientationTo(Page* page)
59 {
60 ScreenOrientationController::provideTo(page, ScreenOrientationController::su pplementName(), ScreenOrientationController::create());
61 }
62
63 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698