diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-15 03:16:55 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-15 03:16:55 +0000 |
commit | e5844eb68a30ef1095358d9a07fb87fee679e919 (patch) | |
tree | a5d235980ddb7a7fba42e076e6c75d60ab37cbc6 /mojo/shell | |
parent | 3a73473578cabeda52d8573ca2f07bfced69c003 (diff) | |
download | chromium_src-e5844eb68a30ef1095358d9a07fb87fee679e919.zip chromium_src-e5844eb68a30ef1095358d9a07fb87fee679e919.tar.gz chromium_src-e5844eb68a30ef1095358d9a07fb87fee679e919.tar.bz2 |
Load the nvs directly in the shell
BUG=
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/238103002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263772 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo/shell')
-rw-r--r-- | mojo/shell/context.cc | 27 | ||||
-rw-r--r-- | mojo/shell/context.h | 3 |
2 files changed, 29 insertions, 1 deletions
diff --git a/mojo/shell/context.cc b/mojo/shell/context.cc index d6bfb4b..2ba4aef 100644 --- a/mojo/shell/context.cc +++ b/mojo/shell/context.cc @@ -7,6 +7,9 @@ #include "base/command_line.h" #include "mojo/embedder/embedder.h" #include "mojo/gles2/gles2_support_impl.h" +#include "mojo/service_manager/service_loader.h" +#include "mojo/service_manager/service_manager.h" +#include "mojo/services/native_viewport/native_viewport_service.h" #include "mojo/shell/dynamic_service_loader.h" #include "mojo/shell/in_process_dynamic_service_runner.h" #include "mojo/shell/network_delegate.h" @@ -17,6 +20,27 @@ namespace mojo { namespace shell { +class Context::NativeViewportServiceLoader : public ServiceLoader { + public: + explicit NativeViewportServiceLoader(Context* context) : context_(context) {} + virtual ~NativeViewportServiceLoader() {} + + private: + virtual void LoadService(ServiceManager* manager, + const GURL& url, + ScopedShellHandle service_handle) OVERRIDE { + app_.reset(::CreateNativeViewportService(context_, service_handle.Pass())); + } + + virtual void OnServiceError(ServiceManager* manager, + const GURL& url) OVERRIDE { + } + + Context* context_; + scoped_ptr<Application> app_; + DISALLOW_COPY_AND_ASSIGN(NativeViewportServiceLoader); +}; + Context::Context() : task_runners_(base::MessageLoop::current()->message_loop_proxy()), storage_(), @@ -38,6 +62,9 @@ Context::Context() dynamic_service_loader_.reset( new DynamicServiceLoader(this, runner_factory.Pass())); service_manager_.set_default_loader(dynamic_service_loader_.get()); + native_viewport_service_loader_.reset(new NativeViewportServiceLoader(this)); + service_manager_.SetLoaderForURL(native_viewport_service_loader_.get(), + GURL("mojo:mojo_native_viewport_service")); if (cmdline->HasSwitch(switches::kSpy)) { spy_.reset(new mojo::Spy(&service_manager_, diff --git a/mojo/shell/context.h b/mojo/shell/context.h index 28f1f69..57ed5d5 100644 --- a/mojo/shell/context.h +++ b/mojo/shell/context.h @@ -41,13 +41,14 @@ class Context { #endif // defined(OS_ANDROID) private: + class NativeViewportServiceLoader; TaskRunners task_runners_; Storage storage_; Loader loader_; ServiceManager service_manager_; scoped_ptr<DynamicServiceLoader> dynamic_service_loader_; scoped_ptr<Spy> spy_; - + scoped_ptr<NativeViewportServiceLoader> native_viewport_service_loader_; #if defined(OS_ANDROID) base::android::ScopedJavaGlobalRef<jobject> activity_; #endif // defined(OS_ANDROID) |