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

Unified Diff: components/window_manager/window_manager_app.cc

Issue 1138073007: Nukes the windowmanager interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 5 years, 7 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 | « components/window_manager/window_manager_app.h ('k') | components/window_manager/window_manager_apptest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/window_manager/window_manager_app.cc
diff --git a/components/window_manager/window_manager_app.cc b/components/window_manager/window_manager_app.cc
deleted file mode 100644
index 57a4fecf9a329fe5a0d160145bf97591593956ec..0000000000000000000000000000000000000000
--- a/components/window_manager/window_manager_app.cc
+++ /dev/null
@@ -1,208 +0,0 @@
-// Copyright 2014 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 "components/window_manager/window_manager_app.h"
-
-#include "base/message_loop/message_loop.h"
-#include "base/stl_util.h"
-#include "components/view_manager/public/cpp/view.h"
-#include "components/view_manager/public/cpp/view_manager.h"
-#include "components/window_manager/window_manager_delegate.h"
-#include "mojo/application/public/cpp/application_connection.h"
-#include "mojo/application/public/cpp/application_impl.h"
-#include "mojo/application/public/interfaces/shell.mojom.h"
-#include "mojo/converters/geometry/geometry_type_converters.h"
-
-using mojo::ApplicationConnection;
-using mojo::Id;
-using mojo::ServiceProvider;
-using mojo::View;
-using mojo::WindowManager;
-
-namespace window_manager {
-
-// Used for calls to Embed() that occur before we've connected to the
-// ViewManager.
-struct WindowManagerApp::PendingEmbed {
- mojo::String url;
- mojo::InterfaceRequest<ServiceProvider> services;
- mojo::ServiceProviderPtr exposed_services;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowManagerApp, public:
-
-WindowManagerApp::WindowManagerApp(
- ViewManagerDelegate* view_manager_delegate,
- WindowManagerDelegate* window_manager_delegate)
- : shell_(nullptr),
- wrapped_view_manager_delegate_(view_manager_delegate),
- window_manager_delegate_(window_manager_delegate),
- root_(nullptr) {
-}
-
-WindowManagerApp::~WindowManagerApp() {
- // TODO(msw|sky): Should this destructor explicitly delete the ViewManager?
- if (root_)
- root_->RemoveObserver(this);
-
- STLDeleteElements(&connections_);
-}
-
-void WindowManagerApp::AddConnection(WindowManagerImpl* connection) {
- DCHECK(connections_.find(connection) == connections_.end());
- connections_.insert(connection);
-}
-
-void WindowManagerApp::RemoveConnection(WindowManagerImpl* connection) {
- DCHECK(connections_.find(connection) != connections_.end());
- connections_.erase(connection);
-}
-
-bool WindowManagerApp::IsReady() const {
- return !!root_;
-}
-
-void WindowManagerApp::AddAccelerator(mojo::KeyboardCode keyboard_code,
- mojo::EventFlags flags) {
- window_manager_client_->AddAccelerator(keyboard_code, flags);
-}
-
-void WindowManagerApp::Embed(
- const mojo::String& url,
- mojo::InterfaceRequest<mojo::ServiceProvider> services,
- mojo::ServiceProviderPtr exposed_services) {
- if (view_manager()) {
- window_manager_delegate_->Embed(url, services.Pass(),
- exposed_services.Pass());
- return;
- }
- scoped_ptr<PendingEmbed> pending_embed(new PendingEmbed);
- pending_embed->url = url;
- pending_embed->services = services.Pass();
- pending_embed->exposed_services = exposed_services.Pass();
- pending_embeds_.push_back(pending_embed.release());
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowManagerApp, ApplicationDelegate implementation:
-
-void WindowManagerApp::Initialize(mojo::ApplicationImpl* impl) {
- shell_ = impl->shell();
- LaunchViewManager(impl);
-}
-
-bool WindowManagerApp::ConfigureIncomingConnection(
- ApplicationConnection* connection) {
- connection->AddService<WindowManager>(this);
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowManagerApp, ViewManagerDelegate implementation:
-
-void WindowManagerApp::OnEmbed(
- View* root,
- mojo::InterfaceRequest<mojo::ServiceProvider> services,
- mojo::ServiceProviderPtr exposed_services) {
- DCHECK(!root_);
- root_ = root;
-
- root_->AddObserver(this);
-
- if (wrapped_view_manager_delegate_) {
- wrapped_view_manager_delegate_->OnEmbed(root, services.Pass(),
- exposed_services.Pass());
- }
-
- for (PendingEmbed* pending_embed : pending_embeds_) {
- Embed(pending_embed->url, pending_embed->services.Pass(),
- pending_embed->exposed_services.Pass());
- }
- pending_embeds_.clear();
-}
-
-void WindowManagerApp::OnViewManagerDisconnected(
- mojo::ViewManager* view_manager) {
- if (wrapped_view_manager_delegate_)
- wrapped_view_manager_delegate_->OnViewManagerDisconnected(view_manager);
-
- base::MessageLoop* message_loop = base::MessageLoop::current();
- if (message_loop && message_loop->is_running())
- message_loop->Quit();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowManagerApp, ViewObserver implementation:
-
-void WindowManagerApp::OnViewDestroying(View* view) {
- DCHECK_EQ(root_, view);
- root_->RemoveObserver(this);
- root_ = nullptr;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowManagerApp, private:
-
-void WindowManagerApp::DispatchInputEventToViewDEPRECATED(
- View* view,
- mojo::EventPtr event) {
- window_manager_client_->DispatchInputEventToViewDEPRECATED(view->id(),
- event.Pass());
-}
-
-void WindowManagerApp::SetViewportSize(const gfx::Size& size) {
- window_manager_client_->SetViewportSize(mojo::Size::From(size));
-}
-
-void WindowManagerApp::LaunchViewManager(mojo::ApplicationImpl* app) {
- // TODO(sky): figure out logic if this connection goes away.
- view_manager_client_factory_.reset(
- new mojo::ViewManagerClientFactory(shell_, this));
-
- ApplicationConnection* view_manager_app =
- app->ConnectToApplication("mojo:view_manager");
- view_manager_app->ConnectToService(&view_manager_service_);
-
- view_manager_app->AddService<WindowManagerInternal>(this);
-
- view_manager_app->ConnectToService(&window_manager_client_);
-}
-
-void WindowManagerApp::Create(
- ApplicationConnection* connection,
- mojo::InterfaceRequest<WindowManagerInternal> request) {
- if (wm_internal_binding_.get()) {
- VLOG(1) <<
- "WindowManager allows only one WindowManagerInternal connection.";
- return;
- }
- wm_internal_binding_.reset(
- new mojo::Binding<WindowManagerInternal>(this, request.Pass()));
-}
-
-void WindowManagerApp::Create(ApplicationConnection* connection,
- mojo::InterfaceRequest<WindowManager> request) {
- WindowManagerImpl* wm = new WindowManagerImpl(this, false);
- wm->Bind(request.PassMessagePipe());
- // WindowManagerImpl is deleted when the connection has an error, or from our
- // destructor.
-}
-
-void WindowManagerApp::SetViewManagerClient(
- mojo::ScopedMessagePipeHandle view_manager_client_request) {
- view_manager_client_.reset(
- mojo::ViewManagerClientFactory::WeakBindViewManagerToPipe(
- mojo::MakeRequest<mojo::ViewManagerClient>(
- view_manager_client_request.Pass()),
- view_manager_service_.Pass(), shell_, this));
-}
-
-void WindowManagerApp::OnAccelerator(mojo::EventPtr event) {
- window_manager_delegate_->OnAcceleratorPressed(
- root_->view_manager()->GetFocusedView(),
- event->key_data->windows_key_code, event->flags);
-}
-
-} // namespace window_manager
« no previous file with comments | « components/window_manager/window_manager_app.h ('k') | components/window_manager/window_manager_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698