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 |