diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-20 22:26:12 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-20 22:26:12 +0000 |
commit | 053baf3bdcf52ee85a8d1fa795777df374bdbac8 (patch) | |
tree | cf986b67404c9883d5ddba6adc7d0709dc537ff5 /mojo/service_manager | |
parent | 10f1b3a61e6a5cb41ea442c4922eb896622d35d9 (diff) | |
download | chromium_src-053baf3bdcf52ee85a8d1fa795777df374bdbac8.zip chromium_src-053baf3bdcf52ee85a8d1fa795777df374bdbac8.tar.gz chromium_src-053baf3bdcf52ee85a8d1fa795777df374bdbac8.tar.bz2 |
Add creation of ServiceManager to Content
BUG=None
TEST=Mojo.Init
R=jam@chromium.org, sky@chromium.org, jam
Review URL: https://codereview.chromium.org/187183002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258438 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo/service_manager')
-rw-r--r-- | mojo/service_manager/service_loader.h | 3 | ||||
-rw-r--r-- | mojo/service_manager/service_manager.cc | 15 | ||||
-rw-r--r-- | mojo/service_manager/service_manager.h | 14 | ||||
-rw-r--r-- | mojo/service_manager/service_manager_export.h | 32 |
4 files changed, 60 insertions, 4 deletions
diff --git a/mojo/service_manager/service_loader.h b/mojo/service_manager/service_loader.h index 7da0540..76aaac7 100644 --- a/mojo/service_manager/service_loader.h +++ b/mojo/service_manager/service_loader.h @@ -6,6 +6,7 @@ #define MOJO_SERVICE_MANAGER_SERVICE_LOADER_H_ #include "mojo/public/shell/shell.mojom.h" +#include "mojo/service_manager/service_manager_export.h" #include "url/gurl.h" namespace mojo { @@ -14,7 +15,7 @@ class ServiceManager; // Interface to allowing default loading behavior to be overridden for a // specific url. -class ServiceLoader { +class MOJO_SERVICE_MANAGER_EXPORT ServiceLoader { public: virtual ~ServiceLoader() {}; virtual void LoadService(ServiceManager* manager, diff --git a/mojo/service_manager/service_manager.cc b/mojo/service_manager/service_manager.cc index b5843cf4..05b570b 100644 --- a/mojo/service_manager/service_manager.cc +++ b/mojo/service_manager/service_manager.cc @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <stdio.h> + #include "mojo/service_manager/service_manager.h" #include "base/lazy_instance.h" @@ -14,6 +16,11 @@ namespace mojo { +namespace { +// Used by TestAPI. +bool has_created_instance = false; +} + class ServiceManager::ServiceFactory : public Shell, public ErrorHandler { public: ServiceFactory(ServiceManager* manager, const GURL& url) @@ -52,6 +59,11 @@ class ServiceManager::ServiceFactory : public Shell, public ErrorHandler { DISALLOW_COPY_AND_ASSIGN(ServiceFactory); }; +// static +bool ServiceManager::TestAPI::HasCreatedInstance() { + return has_created_instance; +} + bool ServiceManager::TestAPI::HasFactoryForURL(const GURL& url) const { return manager_->url_to_service_factory_.find(url) != manager_->url_to_service_factory_.end(); @@ -69,9 +81,10 @@ ServiceManager::~ServiceManager() { } // static -ServiceManager* GetInstance() { +ServiceManager* ServiceManager::GetInstance() { static base::LazyInstance<ServiceManager> instance = LAZY_INSTANCE_INITIALIZER; + has_created_instance = true; return &instance.Get(); } diff --git a/mojo/service_manager/service_manager.h b/mojo/service_manager/service_manager.h index c05e177..b91e73c 100644 --- a/mojo/service_manager/service_manager.h +++ b/mojo/service_manager/service_manager.h @@ -9,20 +9,30 @@ #include "base/basictypes.h" #include "base/callback.h" +#include "base/gtest_prod_util.h" #include "mojo/public/shell/shell.mojom.h" +#include "mojo/service_manager/service_manager_export.h" #include "url/gurl.h" +namespace content { + class MojoTest; +} + namespace mojo { class ServiceLoader; -class ServiceManager { +class MOJO_SERVICE_MANAGER_EXPORT ServiceManager { public: // API for testing. - class TestAPI { + class MOJO_SERVICE_MANAGER_EXPORT TestAPI { private: friend class ServiceManagerTest; + friend class content::MojoTest; + explicit TestAPI(ServiceManager* manager) : manager_(manager) {} + // Returns true if the shared instance has been created. + static bool HasCreatedInstance(); // Returns true if there is a ServiceFactory for this URL. bool HasFactoryForURL(const GURL& url) const; diff --git a/mojo/service_manager/service_manager_export.h b/mojo/service_manager/service_manager_export.h new file mode 100644 index 0000000..251aad9 --- /dev/null +++ b/mojo/service_manager/service_manager_export.h @@ -0,0 +1,32 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MOJO_SERVICE_MANAGER_SERVICE_MANAGER_EXPORT_H_ +#define MOJO_SERVICE_MANAGER_SERVICE_MANAGER_EXPORT_H_ + +#if defined(COMPONENT_BUILD) + +#if defined(WIN32) + +#if defined(MOJO_SERVICE_MANAGER_IMPLEMENTATION) +#define MOJO_SERVICE_MANAGER_EXPORT __declspec(dllexport) +#else +#define MOJO_SERVICE_MANAGER_EXPORT __declspec(dllimport) +#endif + +#else // !defined(WIN32) + +#if defined(MOJO_SERVICE_MANAGER_IMPLEMENTATION) +#define MOJO_SERVICE_MANAGER_EXPORT __attribute__((visibility("default"))) +#else +#define MOJO_SERVICE_MANAGER_EXPORT +#endif + +#endif // defined(WIN32) + +#else // !defined(COMPONENT_BUILD) +#define MOJO_SERVICE_MANAGER_EXPORT +#endif + +#endif // MOJO_SERVICE_MANAGER_SERVICE_MANAGER_EXPORT_H_ |