• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_PUBLIC_BROWSER_SCREEN_ORIENTATION_PROVIDER_H_
6 #define CONTENT_PUBLIC_BROWSER_SCREEN_ORIENTATION_PROVIDER_H_
7 
8 #include "base/macros.h"
9 #include "content/common/content_export.h"
10 #include "third_party/WebKit/public/platform/WebScreenOrientationLockType.h"
11 
12 namespace content {
13 
14 class ScreenOrientationDispatcherHost;
15 class WebContents;
16 
17 // Interface that needs to be implemented by any backend that wants to handle
18 // screen orientation lock/unlock.
19 class CONTENT_EXPORT ScreenOrientationProvider {
20  public:
21   // Lock the screen orientation to |orientations|.
22   virtual void LockOrientation(
23       int request_id,
24       blink::WebScreenOrientationLockType orientations) = 0;
25 
26   // Unlock the screen orientation.
27   virtual void UnlockOrientation() = 0;
28 
29   // Inform about a screen orientation update. It is called to let the provider
30   // know if a lock has been resolved.
31   virtual void OnOrientationChange() = 0;
32 
~ScreenOrientationProvider()33   virtual ~ScreenOrientationProvider() {}
34 
35  protected:
36   friend class ScreenOrientationDispatcherHostImpl;
37 
38   static ScreenOrientationProvider* Create(
39       ScreenOrientationDispatcherHost* dispatcher_host,
40       WebContents* web_contents);
41 
ScreenOrientationProvider()42   ScreenOrientationProvider() {}
43 
44   DISALLOW_COPY_AND_ASSIGN(ScreenOrientationProvider);
45 };
46 
47 #if !defined(OS_ANDROID)
48 // static
Create(ScreenOrientationDispatcherHost * dispatcher_host,WebContents * web_contents)49 ScreenOrientationProvider* ScreenOrientationProvider::Create(
50     ScreenOrientationDispatcherHost* dispatcher_host,
51     WebContents* web_contents) {
52   return NULL;
53 }
54 #endif // !defined(OS_ANDROID)
55 
56 } // namespace content
57 
58 #endif // CONTENT_PUBLIC_BROWSER_SCREEN_ORIENTATION_PROVIDER_H_
59