Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2502)

Unified Diff: content/renderer/screen_orientation/screen_orientation_dispatcher.h

Issue 2391883006: Mojo-ify implementation of screen orientation locking/unlocking. (Closed)
Patch Set: Codereview update Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698