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

Unified Diff: blimp/client/app/linux/blimp_display_manager.cc

Issue 2363153002: Migrate Linux Blimp client to use BlimpClientContext (Closed)
Patch Set: Fix dependency issue found by gn check Created 4 years, 3 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/app/linux/blimp_display_manager.cc
diff --git a/blimp/client/app/linux/blimp_display_manager.cc b/blimp/client/app/linux/blimp_display_manager.cc
index 5997c4d967aeb835cdcf124de341991e4b649801..1f1f10911bcec221aabb1ac6d3411f2b8e6b054f 100644
--- a/blimp/client/app/linux/blimp_display_manager.cc
+++ b/blimp/client/app/linux/blimp_display_manager.cc
@@ -4,22 +4,22 @@
#include "blimp/client/app/linux/blimp_display_manager.h"
+#include "base/memory/ptr_util.h"
#include "blimp/client/app/compositor/browser_compositor.h"
-#include "blimp/client/core/compositor/blimp_compositor_dependencies.h"
-#include "blimp/client/core/compositor/blimp_compositor_manager.h"
-#include "blimp/client/core/contents/tab_control_feature.h"
-#include "blimp/client/core/render_widget/render_widget_feature.h"
-#include "blimp/client/support/compositor/compositor_dependencies_impl.h"
+#include "blimp/client/public/compositor/compositor_dependencies.h"
+#include "blimp/client/public/contents/blimp_contents.h"
+#include "blimp/client/public/contents/blimp_contents_view.h"
+#include "blimp/client/public/contents/blimp_navigation_controller.h"
#include "ui/events/event.h"
#include "ui/events/gesture_detection/motion_event_generic.h"
#include "ui/events/gestures/motion_event_aura.h"
+#include "ui/events/platform/platform_event_source.h"
#include "ui/gfx/geometry/size.h"
#include "ui/platform_window/platform_window.h"
#include "ui/platform_window/x11/x11_window.h"
namespace blimp {
namespace {
-constexpr int kDummyBlimpContentsId = 0;
constexpr int kPointer1Id = 0;
constexpr int kPointer2Id = 1;
constexpr int kZoomOffsetMultiplier = 4;
@@ -28,40 +28,34 @@ constexpr int kZoomOffsetMultiplier = 4;
namespace client {
BlimpDisplayManager::BlimpDisplayManager(
- const gfx::Size& window_size,
BlimpDisplayManagerDelegate* delegate,
- RenderWidgetFeature* render_widget_feature,
- TabControlFeature* tab_control_feature)
+ CompositorDependencies* compositor_dependencies)
: device_pixel_ratio_(1.f),
delegate_(delegate),
- tab_control_feature_(tab_control_feature),
+ platform_event_source_(ui::PlatformEventSource::CreateDefault()),
platform_window_(new ui::X11Window(this)) {
- platform_window_->SetBounds(gfx::Rect(window_size));
-
- compositor_dependencies_ = base::MakeUnique<BlimpCompositorDependencies>(
- base::MakeUnique<CompositorDependenciesImpl>());
-
- compositor_ = base::MakeUnique<BrowserCompositor>(
- compositor_dependencies_->GetEmbedderDependencies());
- compositor_->SetSize(platform_window_->GetBounds().size());
+ compositor_ = base::MakeUnique<BrowserCompositor>(compositor_dependencies);
+}
- compositor_manager_ = base::MakeUnique<BlimpCompositorManager>(
- kDummyBlimpContentsId, render_widget_feature,
- compositor_dependencies_.get());
+BlimpDisplayManager::~BlimpDisplayManager() = default;
- compositor_->SetContentLayer(compositor_manager_->layer());
+void BlimpDisplayManager::SetWindowSize(const gfx::Size& window_size) {
+ platform_window_->SetBounds(gfx::Rect(window_size));
+}
+void BlimpDisplayManager::SetBlimpContents(
+ std::unique_ptr<BlimpContents> contents) {
+ contents_ = std::move(contents);
+ compositor_->SetContentLayer(contents_->GetView()->GetLayer());
platform_window_->Show();
-
- tab_control_feature_->SetSizeAndScale(platform_window_->GetBounds().size(),
- device_pixel_ratio_);
}
-BlimpDisplayManager::~BlimpDisplayManager() {}
-
void BlimpDisplayManager::OnBoundsChanged(const gfx::Rect& new_bounds) {
compositor_->SetSize(new_bounds.size());
- tab_control_feature_->SetSizeAndScale(new_bounds.size(), device_pixel_ratio_);
+ if (contents_) {
+ contents_->GetView()->SetSizeAndScale(new_bounds.size(),
+ device_pixel_ratio_);
+ }
}
void BlimpDisplayManager::DispatchEvent(ui::Event* event) {
@@ -78,10 +72,12 @@ void BlimpDisplayManager::DispatchMotionEventAura(
int pointer_id,
int pointer_x,
int pointer_y) {
+ DCHECK(contents_);
+
touch_event_stream->OnTouch(
ui::TouchEvent(event_type, gfx::Point(pointer_x, pointer_y), pointer_id,
base::TimeTicks::Now()));
- compositor_manager_->OnTouchEvent(*touch_event_stream);
+ contents_->GetView()->OnTouchEvent(*touch_event_stream);
}
void BlimpDisplayManager::DispatchMouseWheelEvent(
@@ -144,16 +140,20 @@ void BlimpDisplayManager::DispatchMouseEvent(ui::MouseEvent* mouse_event) {
if (action != ui::MotionEvent::ACTION_NONE &&
mouse_event->IsOnlyLeftMouseButton()) {
+ DCHECK(contents_);
+
ui::PointerProperties mouse_properties(mouse_event->x(), mouse_event->y(),
0);
ui::MotionEventGeneric motion_event(action, mouse_event->time_stamp(),
mouse_properties);
- compositor_manager_->OnTouchEvent(motion_event);
+ contents_->GetView()->OnTouchEvent(motion_event);
}
}
void BlimpDisplayManager::OnCloseRequest() {
- compositor_manager_->SetVisible(false);
+ DCHECK(contents_);
+
+ contents_->Hide();
compositor_->SetAcceleratedWidget(gfx::kNullAcceleratedWidget);
platform_window_->Close();
}
@@ -166,18 +166,21 @@ void BlimpDisplayManager::OnClosed() {
void BlimpDisplayManager::OnAcceleratedWidgetAvailable(
gfx::AcceleratedWidget widget,
float device_pixel_ratio) {
+ DCHECK(contents_);
+
device_pixel_ratio_ = device_pixel_ratio;
- tab_control_feature_->SetSizeAndScale(platform_window_->GetBounds().size(),
+ contents_->GetView()->SetSizeAndScale(platform_window_->GetBounds().size(),
device_pixel_ratio_);
if (widget != gfx::kNullAcceleratedWidget) {
- compositor_manager_->SetVisible(true);
+ contents_->Show();
compositor_->SetAcceleratedWidget(widget);
}
}
void BlimpDisplayManager::OnAcceleratedWidgetDestroyed() {
- compositor_manager_->SetVisible(false);
+ DCHECK(contents_);
+ contents_->Hide();
compositor_->SetAcceleratedWidget(gfx::kNullAcceleratedWidget);
}
« no previous file with comments | « blimp/client/app/linux/blimp_display_manager.h ('k') | blimp/client/app/linux/blimp_display_manager_delegate_main.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698