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

Unified Diff: blimp/client/core/render_widget/blimp_document.cc

Issue 2400923002: Move BlimpInputManager to BlimpDocument from BlimpCompositor. (Closed)
Patch Set: Removed unnecessary DCHECK. 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: blimp/client/core/render_widget/blimp_document.cc
diff --git a/blimp/client/core/render_widget/blimp_document.cc b/blimp/client/core/render_widget/blimp_document.cc
index 072ca4a5f8530c0063e614e60a4f425d1c1f09c4..0718098cfb3637edafbefe2aa9c012315d9c69e1 100644
--- a/blimp/client/core/render_widget/blimp_document.cc
+++ b/blimp/client/core/render_widget/blimp_document.cc
@@ -4,6 +4,9 @@
#include "blimp/client/core/render_widget/blimp_document.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "blimp/client/core/compositor/blimp_compositor_dependencies.h"
+#include "blimp/client/core/input/blimp_input_manager.h"
#include "blimp/client/core/render_widget/blimp_document_manager.h"
#include "cc/layers/layer.h"
@@ -13,24 +16,42 @@ namespace client {
BlimpDocument::BlimpDocument(int document_id,
BlimpCompositorDependencies* compositor_deps,
BlimpDocumentManager* document_manager)
- : document_id_(document_id), manager_(document_manager) {
- compositor_ = base::MakeUnique<BlimpCompositor>(compositor_deps, this);
+ : BlimpDocument(document_id,
+ base::MakeUnique<BlimpCompositor>(compositor_deps, this),
+ compositor_deps,
+ document_manager) {}
+
+BlimpDocument::BlimpDocument(int document_id,
+ std::unique_ptr<BlimpCompositor> compositor,
+ BlimpCompositorDependencies* compositor_deps,
+ BlimpDocumentManager* document_manager)
+ : document_id_(document_id),
+ compositor_(std::move(compositor)),
+ manager_(document_manager) {
+ input_manager_ =
+ BlimpInputManager::Create(this, base::ThreadTaskRunnerHandle::Get(),
+ compositor_deps->GetCompositorTaskRunner(),
+ compositor_->GetInputHandler());
}
-BlimpDocument::~BlimpDocument() = default;
+BlimpDocument::~BlimpDocument() {
+ compositor_.reset();
-BlimpCompositor* BlimpDocument::GetCompositor() {
- return compositor_.get();
+ // Destroy the old input manager state.
+ // It is important to destroy the LayerTreeHost before destroying the input
+ // manager as it has a reference to the cc::InputHandlerClient owned by the
+ // BlimpInputManager.
+ input_manager_.reset();
}
-void BlimpDocument::SetCompositorForTest(
- std::unique_ptr<BlimpCompositor> compositor) {
- compositor_ = std::move(compositor);
+BlimpCompositor* BlimpDocument::GetCompositor() {
+ return compositor_.get();
}
-void BlimpDocument::SendWebGestureEvent(
- const blink::WebGestureEvent& gesture_event) {
- manager_->SendWebGestureEvent(document_id_, gesture_event);
+bool BlimpDocument::OnTouchEvent(const ui::MotionEvent& motion_event) {
+ if (input_manager_)
+ return input_manager_->OnTouchEvent(motion_event);
+ return false;
}
void BlimpDocument::SendCompositorMessage(
@@ -38,5 +59,10 @@ void BlimpDocument::SendCompositorMessage(
manager_->SendCompositorMessage(document_id_, message);
}
+void BlimpDocument::SendWebGestureEvent(
+ const blink::WebGestureEvent& gesture_event) {
+ manager_->SendWebGestureEvent(document_id_, gesture_event);
+}
+
} // namespace client
} // namespace blimp
« no previous file with comments | « blimp/client/core/render_widget/blimp_document.h ('k') | blimp/client/core/render_widget/blimp_document_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698