diff options
author | sky <sky@chromium.org> | 2016-02-18 20:56:45 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-19 04:58:13 +0000 |
commit | 8e9b580709b381c47bed0d091afe610a9e45e8fe (patch) | |
tree | 73db21776bedbf98baaffb22ba68d126013f695e | |
parent | 6ee2be06467613d8770c041a30e123cc23d8e752 (diff) | |
download | chromium_src-8e9b580709b381c47bed0d091afe610a9e45e8fe.zip chromium_src-8e9b580709b381c47bed0d091afe610a9e45e8fe.tar.gz chromium_src-8e9b580709b381c47bed0d091afe610a9e45e8fe.tar.bz2 |
Separates out registering mojo schemes into a function
This way I can register the schemes early on without having to create
the shell yet.
BUG=581539
TEST=none
R=ben@chromium.org
Review URL: https://codereview.chromium.org/1712543003
Cr-Commit-Position: refs/heads/master@{#376386}
-rw-r--r-- | mojo/common/BUILD.gn | 11 | ||||
-rw-r--r-- | mojo/common/mojo_scheme_register.cc | 23 | ||||
-rw-r--r-- | mojo/common/mojo_scheme_register.h | 15 | ||||
-rw-r--r-- | mojo/mojo_shell.gyp | 2 | ||||
-rw-r--r-- | mojo/services/package_manager/BUILD.gn | 1 | ||||
-rw-r--r-- | mojo/services/package_manager/package_manager.cc | 7 |
6 files changed, 55 insertions, 4 deletions
diff --git a/mojo/common/BUILD.gn b/mojo/common/BUILD.gn index 6a12118..ad49a59 100644 --- a/mojo/common/BUILD.gn +++ b/mojo/common/BUILD.gn @@ -113,3 +113,14 @@ test("mojo_common_perftests") { configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] } } + +source_set("mojo_scheme_register") { + sources = [ + "mojo_scheme_register.cc", + "mojo_scheme_register.h", + ] + + deps = [ + "//url", + ] +} diff --git a/mojo/common/mojo_scheme_register.cc b/mojo/common/mojo_scheme_register.cc new file mode 100644 index 0000000..db1224b --- /dev/null +++ b/mojo/common/mojo_scheme_register.cc @@ -0,0 +1,23 @@ +// Copyright 2016 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. + +#include "mojo/common/mojo_scheme_register.h" + +#include "url/gurl.h" +#include "url/url_util.h" + +namespace mojo { + +void RegisterMojoSchemes() { + static bool registered = false; + + if (registered) + return; + + registered = true; + url::AddStandardScheme("mojo", url::SCHEME_WITHOUT_AUTHORITY); + url::AddStandardScheme("exe", url::SCHEME_WITHOUT_AUTHORITY); +} + +} // namespace mojo diff --git a/mojo/common/mojo_scheme_register.h b/mojo/common/mojo_scheme_register.h new file mode 100644 index 0000000..7ca4981 --- /dev/null +++ b/mojo/common/mojo_scheme_register.h @@ -0,0 +1,15 @@ +// Copyright 2016 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_COMMON_MOJO_SCHEME_REGISTER_H_ +#define MOJO_COMMON_MOJO_SCHEME_REGISTER_H_ + +namespace mojo { + +// Registers the schemes as used by mojo. +void RegisterMojoSchemes(); + +} // namespace mojo + +#endif // MOJO_COMMON_MOJO_SCHEME_REGISTER_H_ diff --git a/mojo/mojo_shell.gyp b/mojo/mojo_shell.gyp index dcbfc53..4151d2e 100644 --- a/mojo/mojo_shell.gyp +++ b/mojo/mojo_shell.gyp @@ -7,6 +7,8 @@ 'target_name': 'mojo_shell_lib', 'type': 'static_library', 'sources': [ + 'common/mojo_scheme_register.cc', + 'common/mojo_scheme_register.h', 'services/package_manager/loader.cc', 'services/package_manager/loader.h', 'services/package_manager/package_manager.cc', diff --git a/mojo/services/package_manager/BUILD.gn b/mojo/services/package_manager/BUILD.gn index c9ae84e..d88f1b6 100644 --- a/mojo/services/package_manager/BUILD.gn +++ b/mojo/services/package_manager/BUILD.gn @@ -36,6 +36,7 @@ source_set("lib") { deps = [ "//base", + "//mojo/common:mojo_scheme_register", "//mojo/common:url_type_converters", "//mojo/services/package_manager/public/interfaces", "//mojo/shell/public/cpp", diff --git a/mojo/services/package_manager/package_manager.cc b/mojo/services/package_manager/package_manager.cc index 744ec0d..572c4e8 100644 --- a/mojo/services/package_manager/package_manager.cc +++ b/mojo/services/package_manager/package_manager.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/json/json_file_value_serializer.h" #include "base/task_runner_util.h" +#include "mojo/common/mojo_scheme_register.h" #include "mojo/common/url_type_converters.h" #include "mojo/util/filename_util.h" #include "net/base/filename_util.h" @@ -70,10 +71,8 @@ ApplicationCatalogStore::~ApplicationCatalogStore() {} PackageManager::PackageManager(base::TaskRunner* blocking_pool, bool register_schemes) : blocking_pool_(blocking_pool), catalog_store_(nullptr) { - if (register_schemes) { - url::AddStandardScheme("mojo", url::SCHEME_WITHOUT_AUTHORITY); - url::AddStandardScheme("exe", url::SCHEME_WITHOUT_AUTHORITY); - } + if (register_schemes) + mojo::RegisterMojoSchemes(); base::FilePath shell_dir; PathService::Get(base::DIR_MODULE, &shell_dir); |