Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / device_orientation / DeviceOrientationInspectorAgent.cpp
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/device_orientation/DeviceOrientationInspectorAgent.h"
7
8 #include "core/frame/LocalFrame.h"
9 #include "core/inspector/InspectorController.h"
10 #include "core/inspector/InspectorState.h"
11 #include "core/page/Page.h"
12
13 #include "modules/device_orientation/DeviceOrientationController.h"
14 #include "modules/device_orientation/DeviceOrientationData.h"
15
16 namespace blink {
17
18 namespace DeviceOrientationInspectorAgentState {
19 static const char alpha[] = "alpha";
20 static const char beta[] = "beta";
21 static const char gamma[] = "gamma";
22 static const char overrideEnabled[] = "overrideEnabled";
23 }
24
25 void DeviceOrientationInspectorAgent::provideTo(Page& page)
26 {
27     OwnPtrWillBeRawPtr<DeviceOrientationInspectorAgent> deviceOrientationAgent(adoptPtrWillBeNoop(new DeviceOrientationInspectorAgent(page)));
28     page.inspectorController().registerModuleAgent(deviceOrientationAgent.release());
29 }
30
31 DeviceOrientationInspectorAgent::~DeviceOrientationInspectorAgent()
32 {
33 }
34
35 DeviceOrientationInspectorAgent::DeviceOrientationInspectorAgent(Page& page)
36     : InspectorBaseAgent<DeviceOrientationInspectorAgent>("DeviceOrientation")
37     , m_page(page)
38 {
39 }
40
41 DeviceOrientationController& DeviceOrientationInspectorAgent::controller()
42 {
43     ASSERT(toLocalFrame(m_page.mainFrame())->document());
44     return DeviceOrientationController::from(*m_page.deprecatedLocalMainFrame()->document());
45 }
46
47 void DeviceOrientationInspectorAgent::setDeviceOrientationOverride(ErrorString* error, double alpha, double beta, double gamma)
48 {
49     m_state->setBoolean(DeviceOrientationInspectorAgentState::overrideEnabled, true);
50     m_state->setDouble(DeviceOrientationInspectorAgentState::alpha, alpha);
51     m_state->setDouble(DeviceOrientationInspectorAgentState::beta, beta);
52     m_state->setDouble(DeviceOrientationInspectorAgentState::gamma, gamma);
53     controller().setOverride(DeviceOrientationData::create(true, alpha, true, beta, true, gamma));
54 }
55
56 void DeviceOrientationInspectorAgent::clearDeviceOrientationOverride(ErrorString* error)
57 {
58     m_state->setBoolean(DeviceOrientationInspectorAgentState::overrideEnabled, false);
59     controller().clearOverride();
60 }
61
62 void DeviceOrientationInspectorAgent::clearFrontend()
63 {
64     m_state->setBoolean(DeviceOrientationInspectorAgentState::overrideEnabled, false);
65     controller().clearOverride();
66 }
67
68 void DeviceOrientationInspectorAgent::restore()
69 {
70     if (m_state->getBoolean(DeviceOrientationInspectorAgentState::overrideEnabled)) {
71         double alpha = m_state->getDouble(DeviceOrientationInspectorAgentState::alpha);
72         double beta = m_state->getDouble(DeviceOrientationInspectorAgentState::beta);
73         double gamma = m_state->getDouble(DeviceOrientationInspectorAgentState::gamma);
74         controller().setOverride(DeviceOrientationData::create(true, alpha, true, beta, true, gamma));
75     }
76 }
77
78 void DeviceOrientationInspectorAgent::didCommitLoadForMainFrame()
79 {
80     // New document in main frame - apply override there.
81     // No need to cleanup previous one, as it's already gone.
82     restore();
83 }
84
85 } // namespace blink