| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/memory/scoped_vector.h" | 6 #include "base/memory/scoped_vector.h" |
| 7 #include "mojo/application_manager/application_manager.h" | 7 #include "mojo/application_manager/application_manager.h" |
| 8 #include "mojo/public/cpp/application/application_delegate.h" | 8 #include "mojo/public/cpp/application/application_delegate.h" |
| 9 #include "mojo/public/cpp/application/application_impl.h" | 9 #include "mojo/public/cpp/application/application_impl.h" |
| 10 #include "mojo/public/cpp/application/service_provider_impl.h" | 10 #include "mojo/public/cpp/application/service_provider_impl.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 return result; | 47 return result; |
| 48 } | 48 } |
| 49 | 49 |
| 50 class TestWindowManagerClient : public WindowManagerClient2 { | 50 class TestWindowManagerClient : public WindowManagerClient2 { |
| 51 public: | 51 public: |
| 52 typedef base::Callback<void(Id, Id)> | 52 typedef base::Callback<void(Id, Id)> |
| 53 TwoNodeCallback; | 53 TwoNodeCallback; |
| 54 | 54 |
| 55 explicit TestWindowManagerClient(base::RunLoop* run_loop) | 55 explicit TestWindowManagerClient(base::RunLoop* run_loop) |
| 56 : run_loop_(run_loop) {} | 56 : run_loop_(run_loop) {} |
| 57 virtual ~TestWindowManagerClient() {} | 57 ~TestWindowManagerClient() override {} |
| 58 | 58 |
| 59 void set_focus_changed_callback(const TwoNodeCallback& callback) { | 59 void set_focus_changed_callback(const TwoNodeCallback& callback) { |
| 60 focus_changed_callback_ = callback; | 60 focus_changed_callback_ = callback; |
| 61 } | 61 } |
| 62 void set_active_window_changed_callback(const TwoNodeCallback& callback) { | 62 void set_active_window_changed_callback(const TwoNodeCallback& callback) { |
| 63 active_window_changed_callback_ = callback; | 63 active_window_changed_callback_ = callback; |
| 64 } | 64 } |
| 65 | 65 |
| 66 private: | 66 private: |
| 67 // Overridden from WindowManagerClient: | 67 // Overridden from WindowManagerClient: |
| 68 virtual void OnWindowManagerReady() override { run_loop_->Quit(); } | 68 void OnWindowManagerReady() override { run_loop_->Quit(); } |
| 69 virtual void OnCaptureChanged(Id old_capture_node_id, | 69 void OnCaptureChanged(Id old_capture_node_id, |
| 70 Id new_capture_node_id) override {} | 70 Id new_capture_node_id) override {} |
| 71 virtual void OnFocusChanged(Id old_focused_node_id, | 71 void OnFocusChanged(Id old_focused_node_id, Id new_focused_node_id) override { |
| 72 Id new_focused_node_id) override { | |
| 73 if (!focus_changed_callback_.is_null()) | 72 if (!focus_changed_callback_.is_null()) |
| 74 focus_changed_callback_.Run(old_focused_node_id, new_focused_node_id); | 73 focus_changed_callback_.Run(old_focused_node_id, new_focused_node_id); |
| 75 } | 74 } |
| 76 virtual void OnActiveWindowChanged(Id old_active_window, | 75 void OnActiveWindowChanged(Id old_active_window, |
| 77 Id new_active_window) override { | 76 Id new_active_window) override { |
| 78 if (!active_window_changed_callback_.is_null()) | 77 if (!active_window_changed_callback_.is_null()) |
| 79 active_window_changed_callback_.Run(old_active_window, new_active_window); | 78 active_window_changed_callback_.Run(old_active_window, new_active_window); |
| 80 } | 79 } |
| 81 | 80 |
| 82 base::RunLoop* run_loop_; | 81 base::RunLoop* run_loop_; |
| 83 TwoNodeCallback focus_changed_callback_; | 82 TwoNodeCallback focus_changed_callback_; |
| 84 TwoNodeCallback active_window_changed_callback_; | 83 TwoNodeCallback active_window_changed_callback_; |
| 85 | 84 |
| 86 DISALLOW_COPY_AND_ASSIGN(TestWindowManagerClient); | 85 DISALLOW_COPY_AND_ASSIGN(TestWindowManagerClient); |
| 87 }; | 86 }; |
| 88 | 87 |
| 89 class TestApplicationLoader : public ApplicationLoader, | 88 class TestApplicationLoader : public ApplicationLoader, |
| 90 public ApplicationDelegate, | 89 public ApplicationDelegate, |
| 91 public ViewManagerDelegate { | 90 public ViewManagerDelegate { |
| 92 public: | 91 public: |
| 93 typedef base::Callback<void(View*)> RootAddedCallback; | 92 typedef base::Callback<void(View*)> RootAddedCallback; |
| 94 | 93 |
| 95 explicit TestApplicationLoader(const RootAddedCallback& root_added_callback) | 94 explicit TestApplicationLoader(const RootAddedCallback& root_added_callback) |
| 96 : root_added_callback_(root_added_callback) {} | 95 : root_added_callback_(root_added_callback) {} |
| 97 virtual ~TestApplicationLoader() {} | 96 ~TestApplicationLoader() override {} |
| 98 | 97 |
| 99 private: | 98 private: |
| 100 // Overridden from ApplicationLoader: | 99 // Overridden from ApplicationLoader: |
| 101 virtual void Load(ApplicationManager* application_manager, | 100 void Load(ApplicationManager* application_manager, |
| 102 const GURL& url, | 101 const GURL& url, |
| 103 scoped_refptr<LoadCallbacks> callbacks) override { | 102 scoped_refptr<LoadCallbacks> callbacks) override { |
| 104 ScopedMessagePipeHandle shell_handle = callbacks->RegisterApplication(); | 103 ScopedMessagePipeHandle shell_handle = callbacks->RegisterApplication(); |
| 105 if (!shell_handle.is_valid()) | 104 if (!shell_handle.is_valid()) |
| 106 return; | 105 return; |
| 107 scoped_ptr<ApplicationImpl> app( | 106 scoped_ptr<ApplicationImpl> app( |
| 108 new ApplicationImpl(this, shell_handle.Pass())); | 107 new ApplicationImpl(this, shell_handle.Pass())); |
| 109 apps_.push_back(app.release()); | 108 apps_.push_back(app.release()); |
| 110 } | 109 } |
| 111 virtual void OnApplicationError(ApplicationManager* application_manager, | 110 void OnApplicationError(ApplicationManager* application_manager, |
| 112 const GURL& url) override {} | 111 const GURL& url) override {} |
| 113 | 112 |
| 114 // Overridden from ApplicationDelegate: | 113 // Overridden from ApplicationDelegate: |
| 115 virtual void Initialize(ApplicationImpl* app) override { | 114 void Initialize(ApplicationImpl* app) override { |
| 116 view_manager_client_factory_.reset( | 115 view_manager_client_factory_.reset( |
| 117 new ViewManagerClientFactory(app->shell(), this)); | 116 new ViewManagerClientFactory(app->shell(), this)); |
| 118 } | 117 } |
| 119 | 118 |
| 120 virtual bool ConfigureIncomingConnection( | 119 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { |
| 121 ApplicationConnection* connection) override { | |
| 122 connection->AddService(view_manager_client_factory_.get()); | 120 connection->AddService(view_manager_client_factory_.get()); |
| 123 return true; | 121 return true; |
| 124 } | 122 } |
| 125 | 123 |
| 126 // Overridden from ViewManagerDelegate: | 124 // Overridden from ViewManagerDelegate: |
| 127 virtual void OnEmbed(ViewManager* view_manager, | 125 void OnEmbed(ViewManager* view_manager, |
| 128 View* root, | 126 View* root, |
| 129 ServiceProviderImpl* exported_services, | 127 ServiceProviderImpl* exported_services, |
| 130 scoped_ptr<ServiceProvider> imported_services) override { | 128 scoped_ptr<ServiceProvider> imported_services) override { |
| 131 root_added_callback_.Run(root); | 129 root_added_callback_.Run(root); |
| 132 } | 130 } |
| 133 virtual void OnViewManagerDisconnected(ViewManager* view_manager) override {} | 131 void OnViewManagerDisconnected(ViewManager* view_manager) override {} |
| 134 | 132 |
| 135 RootAddedCallback root_added_callback_; | 133 RootAddedCallback root_added_callback_; |
| 136 | 134 |
| 137 ScopedVector<ApplicationImpl> apps_; | 135 ScopedVector<ApplicationImpl> apps_; |
| 138 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; | 136 scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; |
| 139 | 137 |
| 140 DISALLOW_COPY_AND_ASSIGN(TestApplicationLoader); | 138 DISALLOW_COPY_AND_ASSIGN(TestApplicationLoader); |
| 141 }; | 139 }; |
| 142 | 140 |
| 143 } // namespace | 141 } // namespace |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 | 267 |
| 270 Id second_window = OpenWindow(); | 268 Id second_window = OpenWindow(); |
| 271 window_manager_->ActivateWindow(second_window, | 269 window_manager_->ActivateWindow(second_window, |
| 272 base::Bind(&EmptyResultCallback)); | 270 base::Bind(&EmptyResultCallback)); |
| 273 ids = WaitForActiveWindowChange(); | 271 ids = WaitForActiveWindowChange(); |
| 274 EXPECT_EQ(ids.first, first_window); | 272 EXPECT_EQ(ids.first, first_window); |
| 275 EXPECT_EQ(ids.second, second_window); | 273 EXPECT_EQ(ids.second, second_window); |
| 276 } | 274 } |
| 277 | 275 |
| 278 } // namespace mojo | 276 } // namespace mojo |
| OLD | NEW |