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 #ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_SCREEN_ORIENTATION_CLIENT_H_ 6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_SCREEN_ORIENTATION_CLIENT_H_ 7 8 #include "base/macros.h" 9 #include "third_party/WebKit/public/platform/WebLockOrientationCallback.h" 10 #include "third_party/WebKit/public/platform/WebScreenOrientationClient.h" 11 #include "third_party/WebKit/public/platform/WebScreenOrientationLockType.h" 12 #include "third_party/WebKit/public/platform/WebScreenOrientationType.h" 13 14 namespace blink { 15 class WebLocalFrame; 16 } 17 18 namespace content { 19 20 class MockScreenOrientationClient : public blink::WebScreenOrientationClient { 21 public: 22 explicit MockScreenOrientationClient(); 23 virtual ~MockScreenOrientationClient(); 24 25 void ResetData(); 26 void UpdateDeviceOrientation(blink::WebLocalFrame* main_frame, 27 blink::WebScreenOrientationType orientation); 28 29 blink::WebScreenOrientationType CurrentOrientationType() const; 30 unsigned CurrentOrientationAngle() const; 31 32 private: 33 // From blink::WebScreenOrientationClient. 34 virtual void lockOrientation(blink::WebScreenOrientationLockType orientation, 35 blink::WebLockOrientationCallback* callback); 36 virtual void unlockOrientation(); 37 38 void UpdateLockSync(blink::WebScreenOrientationLockType, 39 blink::WebLockOrientationCallback*); 40 void ResetLockSync(); 41 42 void UpdateScreenOrientation(blink::WebScreenOrientationType); 43 bool IsOrientationAllowedByCurrentLock(blink::WebScreenOrientationType); 44 blink::WebScreenOrientationType SuitableOrientationForCurrentLock(); 45 static unsigned OrientationTypeToAngle(blink::WebScreenOrientationType); 46 47 blink::WebLocalFrame* main_frame_; 48 blink::WebScreenOrientationLockType current_lock_; 49 blink::WebScreenOrientationType device_orientation_; 50 blink::WebScreenOrientationType current_orientation_; 51 52 DISALLOW_COPY_AND_ASSIGN(MockScreenOrientationClient); 53 }; 54 55 } // namespace content 56 57 #endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_SCREEN_ORIENTATION_CONTROLLER_H_ 58