| Index: mojo/examples/launcher/launcher.cc
|
| diff --git a/mojo/examples/launcher/launcher.cc b/mojo/examples/launcher/launcher.cc
|
| index a02effc5452d1e9f9a08d97d8b7dc52b269fcf04..cbee9d712cfaf1fb4bf9c3997221aaf745b3b074 100644
|
| --- a/mojo/examples/launcher/launcher.cc
|
| +++ b/mojo/examples/launcher/launcher.cc
|
| @@ -16,7 +16,6 @@
|
| #include "mojo/aura/window_tree_host_mojo.h"
|
| #include "mojo/examples/launcher/launcher.mojom.h"
|
| #include "mojo/public/cpp/bindings/allocation_scope.h"
|
| -#include "mojo/public/cpp/bindings/remote_ptr.h"
|
| #include "mojo/public/cpp/gles2/gles2.h"
|
| #include "mojo/public/cpp/shell/application.h"
|
| #include "mojo/public/cpp/system/core.h"
|
| @@ -189,38 +188,32 @@ class LauncherController : public views::TextfieldController {
|
| DISALLOW_COPY_AND_ASSIGN(LauncherController);
|
| };
|
|
|
| -class LauncherImpl : public Application,
|
| - public Launcher,
|
| +class LauncherImpl : public ServiceConnection<Launcher, LauncherImpl>,
|
| public URLReceiver {
|
| public:
|
| - explicit LauncherImpl(MojoHandle shell_handle)
|
| - : Application(shell_handle),
|
| - launcher_controller_(this),
|
| + LauncherImpl()
|
| + : launcher_controller_(this),
|
| + launcher_client_(NULL),
|
| pending_show_(false) {
|
| + }
|
| +
|
| + void Initialize() {
|
| screen_.reset(ScreenMojo::Create());
|
| gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get());
|
|
|
| - InterfacePipe<NativeViewport, AnyInterface> pipe;
|
| -
|
| - AllocationScope scope;
|
| - shell()->Connect("mojo:mojo_native_viewport_service",
|
| - pipe.handle_to_peer.Pass());
|
| + NativeViewportPtr viewport;
|
| + ConnectTo(shell(), "mojo:mojo_native_viewport_service", &viewport);
|
|
|
| window_tree_host_.reset(new WindowTreeHostMojo(
|
| - pipe.handle_to_self.Pass(), gfx::Rect(50, 50, 450, 60),
|
| + viewport.Pass(), gfx::Rect(50, 50, 450, 60),
|
| base::Bind(&LauncherImpl::HostContextCreated, base::Unretained(this))));
|
| }
|
|
|
| private:
|
| - // Overridden from Application:
|
| - virtual void AcceptConnection(const mojo::String& url,
|
| - ScopedMessagePipeHandle handle) OVERRIDE {
|
| - launcher_client_.reset(
|
| - MakeScopedHandle(LauncherClientHandle(handle.release().value())).Pass(),
|
| - this);
|
| - }
|
| -
|
| // Overridden from Launcher:
|
| + virtual void SetClient(LauncherClient* client) OVERRIDE {
|
| + launcher_client_ = client;
|
| + }
|
| virtual void Show() OVERRIDE {
|
| if (!window_tree_host_.get()) {
|
| pending_show_ = true;
|
| @@ -269,7 +262,7 @@ class LauncherImpl : public Application,
|
|
|
| LauncherController launcher_controller_;
|
|
|
| - RemotePtr<LauncherClient> launcher_client_;
|
| + LauncherClient* launcher_client_;
|
| scoped_ptr<aura::WindowTreeHost> window_tree_host_;
|
|
|
| bool pending_show_;
|
| @@ -297,8 +290,11 @@ extern "C" LAUNCHER_EXPORT MojoResult CDECL MojoMain(
|
| // MessageLoop is not of TYPE_UI. I think we need a way to build
|
| // Aura that doesn't define platform-specific stuff.
|
| aura::Env::CreateInstance(true);
|
| - mojo::examples::LauncherImpl launcher(shell_handle);
|
| - loop.Run();
|
|
|
| + mojo::Application app(shell_handle);
|
| + app.AddServiceConnector(
|
| + new mojo::ServiceConnector<mojo::examples::LauncherImpl>());
|
| +
|
| + loop.Run();
|
| return MOJO_RESULT_OK;
|
| }
|
|
|