OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stdio.h> | 5 #include <stdio.h> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/at_exit.h" | 8 #include "base/at_exit.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 url_receiver_->OnURLEntered(url.spec()); | 181 url_receiver_->OnURLEntered(url.spec()); |
182 } | 182 } |
183 return false; | 183 return false; |
184 } | 184 } |
185 | 185 |
186 URLReceiver* url_receiver_; | 186 URLReceiver* url_receiver_; |
187 | 187 |
188 DISALLOW_COPY_AND_ASSIGN(LauncherController); | 188 DISALLOW_COPY_AND_ASSIGN(LauncherController); |
189 }; | 189 }; |
190 | 190 |
191 class LauncherImpl : public ServiceConnection<Launcher, LauncherImpl>, | 191 class LauncherImpl : public InterfaceImpl<Launcher>, |
192 public URLReceiver { | 192 public URLReceiver { |
193 public: | 193 public: |
194 LauncherImpl() | 194 explicit LauncherImpl(Application* app) |
195 : launcher_controller_(this), | 195 : app_(app), |
| 196 launcher_controller_(this), |
196 pending_show_(false) { | 197 pending_show_(false) { |
197 } | |
198 | |
199 void Initialize() { | |
200 screen_.reset(ScreenMojo::Create()); | 198 screen_.reset(ScreenMojo::Create()); |
201 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get()); | 199 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get()); |
202 | 200 |
203 NativeViewportPtr viewport; | 201 NativeViewportPtr viewport; |
204 ConnectTo(shell(), "mojo:mojo_native_viewport_service", &viewport); | 202 app_->ConnectTo("mojo:mojo_native_viewport_service", &viewport); |
205 | 203 |
206 window_tree_host_.reset(new WindowTreeHostMojo( | 204 window_tree_host_.reset(new WindowTreeHostMojo( |
207 viewport.Pass(), gfx::Rect(50, 50, 450, 60), | 205 viewport.Pass(), gfx::Rect(50, 50, 450, 60), |
208 base::Bind(&LauncherImpl::HostContextCreated, base::Unretained(this)))); | 206 base::Bind(&LauncherImpl::HostContextCreated, base::Unretained(this)))); |
209 } | 207 } |
210 | 208 |
211 private: | 209 private: |
212 // Overridden from Launcher: | 210 // Overridden from Launcher: |
213 virtual void Show() OVERRIDE { | 211 virtual void Show() OVERRIDE { |
214 if (!window_tree_host_.get()) { | 212 if (!window_tree_host_.get()) { |
(...skipping 28 matching lines...) Expand all Loading... |
243 new LauncherWindowTreeClient(window_tree_host_->window())); | 241 new LauncherWindowTreeClient(window_tree_host_->window())); |
244 | 242 |
245 launcher_controller_.InitInWindow(window_tree_host_->window()); | 243 launcher_controller_.InitInWindow(window_tree_host_->window()); |
246 | 244 |
247 if (pending_show_) { | 245 if (pending_show_) { |
248 pending_show_ = false; | 246 pending_show_ = false; |
249 Show(); | 247 Show(); |
250 } | 248 } |
251 } | 249 } |
252 | 250 |
| 251 Application* app_; |
253 scoped_ptr<ScreenMojo> screen_; | 252 scoped_ptr<ScreenMojo> screen_; |
254 scoped_ptr<LauncherWindowTreeClient> window_tree_client_; | 253 scoped_ptr<LauncherWindowTreeClient> window_tree_client_; |
255 scoped_ptr<aura::client::FocusClient> focus_client_; | 254 scoped_ptr<aura::client::FocusClient> focus_client_; |
256 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; | 255 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; |
257 scoped_ptr<ui::EventHandler> ime_filter_; | 256 scoped_ptr<ui::EventHandler> ime_filter_; |
258 | 257 |
259 LauncherController launcher_controller_; | 258 LauncherController launcher_controller_; |
260 | 259 |
261 scoped_ptr<aura::WindowTreeHost> window_tree_host_; | 260 scoped_ptr<aura::WindowTreeHost> window_tree_host_; |
262 | 261 |
(...skipping 17 matching lines...) Expand all Loading... |
280 | 279 |
281 base::MessageLoop loop; | 280 base::MessageLoop loop; |
282 mojo::GLES2Initializer gles2; | 281 mojo::GLES2Initializer gles2; |
283 | 282 |
284 // TODO(beng): This crashes in a DCHECK on X11 because this thread's | 283 // TODO(beng): This crashes in a DCHECK on X11 because this thread's |
285 // MessageLoop is not of TYPE_UI. I think we need a way to build | 284 // MessageLoop is not of TYPE_UI. I think we need a way to build |
286 // Aura that doesn't define platform-specific stuff. | 285 // Aura that doesn't define platform-specific stuff. |
287 aura::Env::CreateInstance(true); | 286 aura::Env::CreateInstance(true); |
288 | 287 |
289 mojo::Application app(shell_handle); | 288 mojo::Application app(shell_handle); |
290 app.AddServiceConnector( | 289 app.AddService<mojo::examples::LauncherImpl>(&app); |
291 new mojo::ServiceConnector<mojo::examples::LauncherImpl>()); | |
292 | 290 |
293 loop.Run(); | 291 loop.Run(); |
294 return MOJO_RESULT_OK; | 292 return MOJO_RESULT_OK; |
295 } | 293 } |
OLD | NEW |