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

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

Issue 2400923002: Move BlimpInputManager to BlimpDocument from BlimpCompositor. (Closed)
Patch Set: Fixes based on review. 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..5c6a9b8ba13b11f52cd8d56d170f9e1e9c53da08 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"
@@ -15,17 +18,42 @@ BlimpDocument::BlimpDocument(int document_id,
BlimpDocumentManager* document_manager)
David Trainor- moved to gerrit 2016/10/10 21:12:20 Can you just call the other constructor with the a
xingliu 2016/10/10 21:48:00 Done.
: document_id_(document_id), manager_(document_manager) {
compositor_ = base::MakeUnique<BlimpCompositor>(compositor_deps, this);
+ CreateInputManager(compositor_deps);
}
-BlimpDocument::~BlimpDocument() = default;
+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) {
+ CreateInputManager(compositor_deps);
+}
+
+BlimpDocument::~BlimpDocument() {
+ compositor_.reset();
+
+ // 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();
+}
BlimpCompositor* BlimpDocument::GetCompositor() {
return compositor_.get();
}
-void BlimpDocument::SetCompositorForTest(
- std::unique_ptr<BlimpCompositor> compositor) {
- compositor_ = std::move(compositor);
+bool BlimpDocument::OnTouchEvent(const ui::MotionEvent& motion_event) {
+ if (input_manager_)
+ return input_manager_->OnTouchEvent(motion_event);
+ return false;
+}
+
+void BlimpDocument::SendCompositorMessage(
+ const cc::proto::CompositorMessage& message) {
+ manager_->SendCompositorMessage(document_id_, message);
}
void BlimpDocument::SendWebGestureEvent(
@@ -33,9 +61,13 @@ void BlimpDocument::SendWebGestureEvent(
manager_->SendWebGestureEvent(document_id_, gesture_event);
}
-void BlimpDocument::SendCompositorMessage(
- const cc::proto::CompositorMessage& message) {
- manager_->SendCompositorMessage(document_id_, message);
+void BlimpDocument::CreateInputManager(
+ BlimpCompositorDependencies* compositor_deps) {
+ DCHECK(!input_manager_);
+ input_manager_ =
+ BlimpInputManager::Create(this, base::ThreadTaskRunnerHandle::Get(),
+ compositor_deps->GetCompositorTaskRunner(),
+ compositor_->GetInputHandler());
}
} // namespace client
« 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