summaryrefslogtreecommitdiffstats
path: root/mojo/shell
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-15 03:16:55 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-15 03:16:55 +0000
commite5844eb68a30ef1095358d9a07fb87fee679e919 (patch)
treea5d235980ddb7a7fba42e076e6c75d60ab37cbc6 /mojo/shell
parent3a73473578cabeda52d8573ca2f07bfced69c003 (diff)
downloadchromium_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.cc27
-rw-r--r--mojo/shell/context.h3
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)