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

Unified Diff: ui/views/mus/window_manager_connection.cc

Issue 2611773002: Removes code using mus client lib (Closed)
Patch Set: dont run on linux Created 3 years, 12 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
« no previous file with comments | « ui/views/mus/window_manager_connection.h ('k') | ui/views/mus/window_manager_connection_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/mus/window_manager_connection.cc
diff --git a/ui/views/mus/window_manager_connection.cc b/ui/views/mus/window_manager_connection.cc
deleted file mode 100644
index 16fae1a900501bb28349dd8ef4321c4f08417164..0000000000000000000000000000000000000000
--- a/ui/views/mus/window_manager_connection.cc
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/views/mus/window_manager_connection.h"
-
-#include <algorithm>
-#include <set>
-#include <utility>
-
-#include "base/lazy_instance.h"
-#include "base/memory/ptr_util.h"
-#include "base/threading/thread_local.h"
-#include "services/service_manager/public/cpp/connection.h"
-#include "services/service_manager/public/cpp/connector.h"
-#include "services/ui/public/cpp/gpu/gpu.h"
-#include "services/ui/public/cpp/property_type_converters.h"
-#include "services/ui/public/cpp/window.h"
-#include "services/ui/public/cpp/window_property.h"
-#include "services/ui/public/cpp/window_tree_client.h"
-#include "services/ui/public/interfaces/event_matcher.mojom.h"
-#include "services/ui/public/interfaces/window_tree.mojom.h"
-#include "ui/aura/env.h"
-#include "ui/aura/mus/os_exchange_data_provider_mus.h"
-#include "ui/views/mus/clipboard_mus.h"
-#include "ui/views/mus/native_widget_mus.h"
-#include "ui/views/mus/pointer_watcher_event_router.h"
-#include "ui/views/mus/screen_mus.h"
-#include "ui/views/mus/surface_context_factory.h"
-#include "ui/views/pointer_watcher.h"
-#include "ui/views/views_delegate.h"
-
-namespace views {
-namespace {
-
-using WindowManagerConnectionPtr =
- base::ThreadLocalPointer<views::WindowManagerConnection>;
-
-// Env is thread local so that aura may be used on multiple threads.
-base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr =
- LAZY_INSTANCE_INITIALIZER;
-
-// Recursively finds the deepest visible window from |windows| that contains
-// |screen_point|, when offsetting by the display origins from
-// |display_origins|.
-ui::Window* GetWindowFrom(const std::map<int64_t, gfx::Point>& display_origins,
- const std::vector<ui::Window*>& windows,
- const gfx::Point& screen_point) {
- for (ui::Window* window : windows) {
- if (!window->visible())
- continue;
-
- auto it = display_origins.find(window->display_id());
- if (it == display_origins.end())
- continue;
-
- gfx::Rect bounds_in_screen = window->GetBoundsInRoot();
- bounds_in_screen.Offset(it->second.x(), it->second.y());
-
- if (bounds_in_screen.Contains(screen_point)) {
- if (!window->children().empty()) {
- ui::Window* child =
- GetWindowFrom(display_origins, window->children(), screen_point);
- if (child)
- return child;
- }
-
- return window;
- }
- }
- return nullptr;
-}
-
-aura::Window* GetAuraWindowFromUiWindow(ui::Window* window) {
- if (!window)
- return nullptr;
- NativeWidgetMus* nw_mus = NativeWidgetMus::GetForWindow(window);
- return nw_mus
- ? static_cast<internal::NativeWidgetPrivate*>(nw_mus)
- ->GetNativeView()
- : nullptr;
-}
-
-} // namespace
-
-WindowManagerConnection::~WindowManagerConnection() {
- // ~WindowTreeClient calls back to us (we're its delegate), destroy it while
- // we are still valid.
- client_.reset();
- ui::OSExchangeDataProviderFactory::SetFactory(nullptr);
- ui::Clipboard::DestroyClipboardForCurrentThread();
- gpu_.reset();
- lazy_tls_ptr.Pointer()->Set(nullptr);
-
- if (ViewsDelegate::GetInstance()) {
- ViewsDelegate::GetInstance()->set_native_widget_factory(
- ViewsDelegate::NativeWidgetFactory());
- }
-}
-
-// static
-std::unique_ptr<WindowManagerConnection> WindowManagerConnection::Create(
- service_manager::Connector* connector,
- const service_manager::Identity& identity,
- scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
- DCHECK(!lazy_tls_ptr.Pointer()->Get());
- WindowManagerConnection* connection =
- new WindowManagerConnection(connector, identity, std::move(task_runner));
- DCHECK(lazy_tls_ptr.Pointer()->Get());
- return base::WrapUnique(connection);
-}
-
-// static
-WindowManagerConnection* WindowManagerConnection::Get() {
- WindowManagerConnection* connection = lazy_tls_ptr.Pointer()->Get();
- DCHECK(connection);
- return connection;
-}
-
-// static
-bool WindowManagerConnection::Exists() {
- return !!lazy_tls_ptr.Pointer()->Get();
-}
-
-ui::Window* WindowManagerConnection::NewTopLevelWindow(
- const std::map<std::string, std::vector<uint8_t>>& properties) {
- return client_->NewTopLevelWindow(&properties);
-}
-
-NativeWidget* WindowManagerConnection::CreateNativeWidgetMus(
- const std::map<std::string, std::vector<uint8_t>>& props,
- const Widget::InitParams& init_params,
- internal::NativeWidgetDelegate* delegate) {
- // TYPE_CONTROL widgets require a NativeWidgetAura. So we let this fall
- // through, so that the default NativeWidgetPrivate::CreateNativeWidget() is
- // used instead.
- if (init_params.type == Widget::InitParams::TYPE_CONTROL)
- return nullptr;
- std::map<std::string, std::vector<uint8_t>> properties = props;
- NativeWidgetMus::ConfigurePropertiesForNewWindow(init_params, &properties);
- properties[ui::mojom::WindowManager::kAppID_Property] =
- mojo::ConvertTo<std::vector<uint8_t>>(identity_.name());
- return new NativeWidgetMus(delegate, NewTopLevelWindow(properties),
- ui::mojom::CompositorFrameSinkType::DEFAULT);
-}
-
-const std::set<ui::Window*>& WindowManagerConnection::GetRoots() const {
- return client_->GetRoots();
-}
-
-WindowManagerConnection::WindowManagerConnection(
- service_manager::Connector* connector,
- const service_manager::Identity& identity,
- scoped_refptr<base::SingleThreadTaskRunner> task_runner)
- : connector_(connector), identity_(identity) {
- lazy_tls_ptr.Pointer()->Set(this);
-
- gpu_ = ui::Gpu::Create(connector, std::move(task_runner));
- compositor_context_factory_ =
- base::MakeUnique<views::SurfaceContextFactory>(gpu_.get());
- aura::Env::GetInstance()->set_context_factory(
- compositor_context_factory_.get());
- client_ = base::MakeUnique<ui::WindowTreeClient>(this, nullptr, nullptr);
- client_->ConnectViaWindowTreeFactory(connector_);
-
- pointer_watcher_event_router_ =
- base::MakeUnique<PointerWatcherEventRouter>(client_.get());
-
- screen_ = base::MakeUnique<ScreenMus>(this);
- screen_->Init(connector);
-
- std::unique_ptr<ClipboardMus> clipboard = base::MakeUnique<ClipboardMus>();
- clipboard->Init(connector);
- ui::Clipboard::SetClipboardForCurrentThread(std::move(clipboard));
-
- ui::OSExchangeDataProviderFactory::SetFactory(this);
-
- ViewsDelegate::GetInstance()->set_native_widget_factory(base::Bind(
- &WindowManagerConnection::CreateNativeWidgetMus,
- base::Unretained(this),
- std::map<std::string, std::vector<uint8_t>>()));
-}
-
-ui::Window* WindowManagerConnection::GetUiWindowAtScreenPoint(
- const gfx::Point& point) {
- std::map<int64_t, gfx::Point> display_origins;
- for (const display::Display& d :
- display::Screen::GetScreen()->GetAllDisplays())
- display_origins[d.id()] = d.bounds().origin();
-
- const std::set<ui::Window*>& roots = GetRoots();
- std::vector<ui::Window*> windows;
- std::copy(roots.begin(), roots.end(), std::back_inserter(windows));
- return GetWindowFrom(display_origins, windows, point);
-}
-
-void WindowManagerConnection::OnEmbed(ui::Window* root) {}
-
-void WindowManagerConnection::OnLostConnection(ui::WindowTreeClient* client) {
- DCHECK_EQ(client, client_.get());
- client_.reset();
-}
-
-void WindowManagerConnection::OnEmbedRootDestroyed(ui::Window* root) {
- // Not called for WindowManagerConnection as WindowTreeClient isn't created by
- // way of an Embed().
- NOTREACHED();
-}
-
-void WindowManagerConnection::OnPointerEventObserved(
- const ui::PointerEvent& event,
- ui::Window* target) {
- pointer_watcher_event_router_->OnPointerEventObserved(event, target);
-}
-
-void WindowManagerConnection::OnWindowManagerFrameValuesChanged() {
- if (client_)
- NativeWidgetMus::NotifyFrameChanged(client_.get());
-}
-
-gfx::Point WindowManagerConnection::GetCursorScreenPoint() {
- return client_->GetCursorScreenPoint();
-}
-
-aura::Window* WindowManagerConnection::GetWindowAtScreenPoint(
- const gfx::Point& point) {
- return GetAuraWindowFromUiWindow(GetUiWindowAtScreenPoint(point));
-}
-
-std::unique_ptr<OSExchangeData::Provider>
-WindowManagerConnection::BuildProvider() {
- return base::MakeUnique<aura::OSExchangeDataProviderMus>();
-}
-
-} // namespace views
« no previous file with comments | « ui/views/mus/window_manager_connection.h ('k') | ui/views/mus/window_manager_connection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698