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.
6 #include "modules/device_orientation/DeviceOrientationInspectorAgent.h"
8 #include "core/frame/LocalFrame.h"
9 #include "core/inspector/InspectorController.h"
10 #include "core/inspector/InspectorState.h"
11 #include "core/page/Page.h"
13 #include "modules/device_orientation/DeviceOrientationController.h"
14 #include "modules/device_orientation/DeviceOrientationData.h"
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";
25 void DeviceOrientationInspectorAgent::provideTo(Page& page)
27 OwnPtrWillBeRawPtr<DeviceOrientationInspectorAgent> deviceOrientationAgent(adoptPtrWillBeNoop(new DeviceOrientationInspectorAgent(page)));
28 page.inspectorController().registerModuleAgent(deviceOrientationAgent.release());
31 DeviceOrientationInspectorAgent::~DeviceOrientationInspectorAgent()
35 DeviceOrientationInspectorAgent::DeviceOrientationInspectorAgent(Page& page)
36 : InspectorBaseAgent<DeviceOrientationInspectorAgent>("DeviceOrientation")
41 DeviceOrientationController& DeviceOrientationInspectorAgent::controller()
43 ASSERT(toLocalFrame(m_page.mainFrame())->document());
44 return DeviceOrientationController::from(*m_page.deprecatedLocalMainFrame()->document());
47 void DeviceOrientationInspectorAgent::setDeviceOrientationOverride(ErrorString* error, double alpha, double beta, double gamma)
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));
56 void DeviceOrientationInspectorAgent::clearDeviceOrientationOverride(ErrorString* error)
58 m_state->setBoolean(DeviceOrientationInspectorAgentState::overrideEnabled, false);
59 controller().clearOverride();
62 void DeviceOrientationInspectorAgent::clearFrontend()
64 m_state->setBoolean(DeviceOrientationInspectorAgentState::overrideEnabled, false);
65 controller().clearOverride();
68 void DeviceOrientationInspectorAgent::restore()
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));
78 void DeviceOrientationInspectorAgent::didCommitLoadForMainFrame()
80 // New document in main frame - apply override there.
81 // No need to cleanup previous one, as it's already gone.