Index: content/renderer/screen_orientation/screen_orientation_dispatcher.h |
diff --git a/content/renderer/screen_orientation/screen_orientation_dispatcher.h b/content/renderer/screen_orientation/screen_orientation_dispatcher.h |
index 9d108d27668a028efb5cddb8d47a82e34edb1367..6eab22d2d8709009c244d5a2ee32ad155a821e33 100644 |
--- a/content/renderer/screen_orientation/screen_orientation_dispatcher.h |
+++ b/content/renderer/screen_orientation/screen_orientation_dispatcher.h |
@@ -8,6 +8,7 @@ |
#include "base/compiler_specific.h" |
#include "base/id_map.h" |
#include "base/macros.h" |
+#include "content/common/screen_orientation_interface.mojom.h" |
#include "content/public/renderer/render_frame_observer.h" |
#include "third_party/WebKit/public/platform/modules/screen_orientation/WebLockOrientationCallback.h" |
#include "third_party/WebKit/public/platform/modules/screen_orientation/WebScreenOrientationClient.h" |
@@ -16,37 +17,42 @@ |
namespace content { |
-class RenderFrame; |
+using mojom::ScreenOrientationAssociatedPtr; |
+using ::blink::mojom::ScreenOrientationLockResult; |
// ScreenOrientationDispatcher implements the WebScreenOrientationClient API |
// which handles screen lock. It sends lock (or unlock) requests to the browser |
// process and listens for responses and let Blink know about the result of the |
// request via WebLockOrientationCallback. |
class CONTENT_EXPORT ScreenOrientationDispatcher : |
- public RenderFrameObserver, |
NON_EXPORTED_BASE(public blink::WebScreenOrientationClient) { |
public: |
explicit ScreenOrientationDispatcher(RenderFrame* render_frame); |
~ScreenOrientationDispatcher() override; |
+ // This should only be called by ScreenOrientationDispatcherTest |
+ void setScreenOrientationForTests( |
+ ScreenOrientationAssociatedPtr& screen_orientation_for_tests) { |
+ screen_orientation_ = std::move(screen_orientation_for_tests); |
+ } |
+ |
private: |
friend class ScreenOrientationDispatcherTest; |
- // RenderFrameObserver implementation. |
- bool OnMessageReceived(const IPC::Message& message) override; |
- void OnDestruct() override; |
- |
// blink::WebScreenOrientationClient implementation. |
void lockOrientation(blink::WebScreenOrientationLockType orientation, |
blink::WebLockOrientationCallback* callback) override; |
void unlockOrientation() override; |
- void OnLockSuccess(int request_id); |
- void OnLockError(int request_id, |
- blink::WebLockOrientationError error); |
+ void OnLockOrientationResult(int request_id, |
+ ScreenOrientationLockResult result); |
void CancelPendingLocks(); |
+ int getRequestIdForTests(); |
+ |
+ void setScreenOrientationInterface(); |
+ |
// The pending_callbacks_ map is mostly meant to have a unique ID to associate |
// with every callback going trough the dispatcher. The map will own the |
// pointer in the sense that it will destroy it when Remove() will be called. |
@@ -55,6 +61,10 @@ class CONTENT_EXPORT ScreenOrientationDispatcher : |
typedef IDMap<blink::WebLockOrientationCallback, IDMapOwnPointer> CallbackMap; |
CallbackMap pending_callbacks_; |
+ RenderFrame* render_frame_; |
+ |
+ ScreenOrientationAssociatedPtr screen_orientation_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ScreenOrientationDispatcher); |
}; |