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 |