Commit b9e50952 authored by Ken Rockot's avatar Ken Rockot Committed by Commit Bot

Convert preferences manifests to C++

JSON manifests are deprecated.

This also removes an unnecessary test catalog in favor of defining test
service manifests inline.

Bug: 895616
Change-Id: I5bd634654bdef124b61e97bb232eeb29114073a1
Reviewed-on: https://chromium-review.googlesource.com/c/1436875Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#626111}
parent 93f298a4
...@@ -424,7 +424,7 @@ source_set("chrome_content_browser_overlay_manifest") { ...@@ -424,7 +424,7 @@ source_set("chrome_content_browser_overlay_manifest") {
"//components/translate/content/common", "//components/translate/content/common",
"//extensions/buildflags", "//extensions/buildflags",
"//services/identity:manifest", "//services/identity:manifest",
"//services/preferences:manifest", "//services/preferences/public/cpp:manifest",
"//services/service_manager/public/cpp", "//services/service_manager/public/cpp",
"//services/ws/common", "//services/ws/common",
"//third_party/blink/public/common", "//third_party/blink/public/common",
...@@ -550,7 +550,7 @@ source_set("chrome_packaged_service_manifests") { ...@@ -550,7 +550,7 @@ source_set("chrome_packaged_service_manifests") {
"//device/vr/buildflags", "//device/vr/buildflags",
"//extensions/buildflags", "//extensions/buildflags",
"//printing/buildflags", "//printing/buildflags",
"//services/preferences:local_state_manifest", "//services/preferences/public/cpp:local_state_manifest",
"//services/proxy_resolver:proxy_resolver_manifest", "//services/proxy_resolver:proxy_resolver_manifest",
"//services/service_manager/public/cpp", "//services/service_manager/public/cpp",
] ]
......
...@@ -34,6 +34,7 @@ include_rules = [ ...@@ -34,6 +34,7 @@ include_rules = [
"+pdf/pdf_ppapi.h", "+pdf/pdf_ppapi.h",
"+remoting/client/plugin", "+remoting/client/plugin",
"+sandbox", "+sandbox",
"+services/preferences/public",
"+services/service_manager/public", "+services/service_manager/public",
"+services/ws/public", "+services/ws/public",
"+third_party/breakpad/breakpad", "+third_party/breakpad/breakpad",
...@@ -59,7 +60,6 @@ specific_include_rules = { ...@@ -59,7 +60,6 @@ specific_include_rules = {
"+extensions/buildflags", "+extensions/buildflags",
"+extensions/common", "+extensions/common",
"+services/identity", "+services/identity",
"+services/preferences",
"+services/resource_coordinator/public", "+services/resource_coordinator/public",
"+services/ws/common", "+services/ws/common",
], ],
...@@ -102,7 +102,6 @@ specific_include_rules = { ...@@ -102,7 +102,6 @@ specific_include_rules = {
"+extensions/buildflags", "+extensions/buildflags",
"+mash/public", "+mash/public",
"+services/content/simple_browser", "+services/content/simple_browser",
"+services/preferences",
"+services/proxy_resolver", "+services/proxy_resolver",
], ],
"chrome_renderer_manifest\.cc": [ "chrome_renderer_manifest\.cc": [
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
#include "components/translate/content/common/translate.mojom.h" #include "components/translate/content/common/translate.mojom.h"
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "services/identity/manifest.h" #include "services/identity/manifest.h"
#include "services/preferences/manifest.h" #include "services/preferences/public/cpp/manifest.h"
#include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/manifest_builder.h"
#include "third_party/blink/public/platform/input_host.mojom.h" #include "third_party/blink/public/platform/input_host.mojom.h"
#include "third_party/blink/public/platform/media_download_in_product_help.mojom.h" #include "third_party/blink/public/platform/media_download_in_product_help.mojom.h"
...@@ -238,7 +238,7 @@ const service_manager::Manifest& GetChromeContentBrowserOverlayManifest() { ...@@ -238,7 +238,7 @@ const service_manager::Manifest& GetChromeContentBrowserOverlayManifest() {
snippets_internals::mojom::PageHandlerFactory, snippets_internals::mojom::PageHandlerFactory,
web_ui_test::mojom::TestRunner>()) web_ui_test::mojom::TestRunner>())
.PackageService(identity::GetManifest()) .PackageService(identity::GetManifest())
.PackageService(preferences::GetManifest()) .PackageService(prefs::GetManifest())
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
.PackageService(device_sync::GetManifest()) .PackageService(device_sync::GetManifest())
.PackageService(multidevice_setup::GetManifest()) .PackageService(multidevice_setup::GetManifest())
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "device/vr/buildflags/buildflags.h" #include "device/vr/buildflags/buildflags.h"
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "printing/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h"
#include "services/preferences/local_state_manifest.h" #include "services/preferences/public/cpp/local_state_manifest.h"
#include "services/proxy_resolver/proxy_resolver_manifest.h" #include "services/proxy_resolver/proxy_resolver_manifest.h"
#include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/manifest_builder.h"
...@@ -137,7 +137,7 @@ GetChromePackagedServiceManifests() { ...@@ -137,7 +137,7 @@ GetChromePackagedServiceManifests() {
unzip_service::GetManifest(), unzip_service::GetManifest(),
file_util::GetManifest(), file_util::GetManifest(),
proxy_resolver::GetManifest(), proxy_resolver::GetManifest(),
local_state::GetManifest(), prefs::GetLocalStateManifest(),
noop::GetManifest(), noop::GetManifest(),
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
removable_storage_writer::GetManifest(), removable_storage_writer::GetManifest(),
......
...@@ -2,20 +2,8 @@ ...@@ -2,20 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//services/catalog/public/tools/catalog.gni")
import("//services/service_manager/public/service_manifest.gni")
import("//testing/test.gni") import("//testing/test.gni")
service_manifest("manifest") {
name = "preferences"
source = "manifest.json"
}
service_manifest("local_state_manifest") {
name = "local_state"
source = "local_state_manifest.json"
}
source_set("preferences") { source_set("preferences") {
visibility = [ visibility = [
":*", ":*",
...@@ -70,33 +58,9 @@ source_set("tests") { ...@@ -70,33 +58,9 @@ source_set("tests") {
if (!is_ios) { if (!is_ios) {
sources += [ "pref_service_factory_unittest.cc" ] sources += [ "pref_service_factory_unittest.cc" ]
deps += [ deps += [
":tests_catalog_source", "//services/preferences/public/cpp:manifest",
"//services/service_manager/public/cpp/test:test_support", "//services/service_manager/public/cpp/test:test_support",
"//services/service_manager/public/mojom",
] ]
} }
} }
service_manifest("unittest_manifest") {
name = "prefs_unittests"
source = "unittest_manifest.json"
packaged_services = [
":manifest",
":unittest_helper_manifest",
]
}
service_manifest("unittest_helper_manifest") {
name = "prefs_unittest_helper"
source = "unittest_helper_manifest.json"
}
catalog("tests_catalog") {
testonly = true
embedded_services = [ ":unittest_manifest" ]
}
catalog_cpp_source("tests_catalog_source") {
testonly = true
catalog = ":tests_catalog"
generated_function_name = "prefs::CreateServiceTestCatalog"
}
jonross@chromium.org jonross@chromium.org
sammc@chromium.org sammc@chromium.org
tibell@chromium.org
per-file local_state_manifest.json=set noparent
per-file local_state_manifest.json=file://ipc/SECURITY_OWNERS
per-file manifest.json=set noparent
per-file manifest.json=file://ipc/SECURITY_OWNERS
per-file unittest_helper_manifest.json=set noparent
per-file unittest_helper_manifest.json=file://ipc/SECURITY_OWNERS
per-file unittest_manifest.json=set noparent
per-file unittest_manifest.json=file://ipc/SECURITY_OWNERS
{
"name": "local_state",
"display_name": "Local state preferences",
"interface_provider_specs": {
"service_manager:connector": {
"provides": {
"pref_client": [
"prefs.mojom.PrefStoreConnector"
]
},
"requires": {
}
}
}
}
{
"name": "preferences",
"display_name": "Preferences",
"interface_provider_specs": {
"service_manager:connector": {
"provides": {
"pref_client": [
"prefs.mojom.PrefStoreConnector"
]
},
"requires": {
}
}
}
}
...@@ -23,13 +23,15 @@ ...@@ -23,13 +23,15 @@
#include "services/preferences/pref_store_impl.h" #include "services/preferences/pref_store_impl.h"
#include "services/preferences/public/cpp/dictionary_value_update.h" #include "services/preferences/public/cpp/dictionary_value_update.h"
#include "services/preferences/public/cpp/in_process_service_factory.h" #include "services/preferences/public/cpp/in_process_service_factory.h"
#include "services/preferences/public/cpp/manifest.h"
#include "services/preferences/public/cpp/pref_service_main.h" #include "services/preferences/public/cpp/pref_service_main.h"
#include "services/preferences/public/cpp/scoped_pref_update.h" #include "services/preferences/public/cpp/scoped_pref_update.h"
#include "services/preferences/public/mojom/preferences.mojom.h" #include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/preferences/tests_catalog_source.h"
#include "services/preferences/unittest_common.h" #include "services/preferences/unittest_common.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
#include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/service_binding.h"
#include "services/service_manager/public/cpp/test/test_service_manager.h" #include "services/service_manager/public/cpp/test/test_service_manager.h"
#include "services/service_manager/public/mojom/constants.mojom.h"
#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "services/service_manager/public/mojom/service_factory.mojom.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -103,7 +105,22 @@ constexpr int kUpdatedValue = 2; ...@@ -103,7 +105,22 @@ constexpr int kUpdatedValue = 2;
class PrefServiceFactoryTest : public testing::Test { class PrefServiceFactoryTest : public testing::Test {
public: public:
PrefServiceFactoryTest() PrefServiceFactoryTest()
: test_service_manager_(CreateServiceTestCatalog()) {} : test_service_manager_(
{service_manager::ManifestBuilder()
.WithServiceName(kTestServiceName)
.ExposeCapability(
"service_manager:service_factory",
service_manager::Manifest::InterfaceList<
service_manager::mojom::ServiceFactory>())
.RequireCapability(mojom::kServiceName, "pref_client")
.RequireCapability(kTestHelperServiceName, "")
.PackageService(GetManifest())
.PackageService(
service_manager::ManifestBuilder()
.WithServiceName(kTestHelperServiceName)
.RequireCapability(mojom::kServiceName, "pref_client")
.Build())
.Build()}) {}
protected: protected:
void SetUp() override { void SetUp() override {
......
...@@ -35,6 +35,30 @@ source_set("cpp") { ...@@ -35,6 +35,30 @@ source_set("cpp") {
] ]
} }
source_set("manifest") {
sources = [
"manifest.cc",
"manifest.h",
]
deps = [
"//base",
"//services/preferences/public/mojom",
"//services/service_manager/public/cpp",
]
}
source_set("local_state_manifest") {
sources = [
"local_state_manifest.cc",
"local_state_manifest.h",
]
deps = [
"//base",
"//services/preferences/public/mojom",
"//services/service_manager/public/cpp",
]
}
source_set("service_main") { source_set("service_main") {
deps = [ deps = [
"//base", "//base",
......
per-file local_state_manifest.cc=set noparent
per-file local_state_manifest.cc=file://ipc/SECURITY_OWNERS
per-file local_state_manifest.h=set noparent
per-file local_state_manifest.h=file://ipc/SECURITY_OWNERS
per-file manifest.cc=set noparent
per-file manifest.cc=file://ipc/SECURITY_OWNERS
per-file manifest.h=set noparent
per-file manifest.h=file://ipc/SECURITY_OWNERS
per-file *_mojom_traits*.*=set noparent per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
per-file *.typemap=set noparent per-file *.typemap=set noparent
......
// Copyright 2019 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 "services/preferences/public/cpp/local_state_manifest.h"
#include "base/no_destructor.h"
#include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
namespace prefs {
const service_manager::Manifest& GetLocalStateManifest() {
static base::NoDestructor<service_manager::Manifest> manifest{
service_manager::ManifestBuilder()
.WithServiceName(mojom::kLocalStateServiceName)
.WithDisplayName("Local state preferences")
.ExposeCapability("pref_client",
service_manager::Manifest::InterfaceList<
mojom::PrefStoreConnector>())
.Build()};
return *manifest;
}
} // namespace prefs
// Copyright 2019 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 SERVICES_PREFERENCES_PUBLIC_CPP_LOCAL_STATE_MANIFEST_H_
#define SERVICES_PREFERENCES_PUBLIC_CPP_LOCAL_STATE_MANIFEST_H_
#include "services/service_manager/public/cpp/manifest.h"
namespace prefs {
const service_manager::Manifest& GetLocalStateManifest();
} // namespace prefs
#endif // SERVICES_PREFERENCES_PUBLIC_CPP_LOCAL_STATE_MANIFEST_H_
// Copyright 2019 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 "services/preferences/public/cpp/manifest.h"
#include "base/no_destructor.h"
#include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
namespace prefs {
const service_manager::Manifest& GetManifest() {
static base::NoDestructor<service_manager::Manifest> manifest{
service_manager::ManifestBuilder()
.WithServiceName(mojom::kServiceName)
.WithDisplayName("Preferences")
.ExposeCapability("pref_client",
service_manager::Manifest::InterfaceList<
mojom::PrefStoreConnector>())
.Build()};
return *manifest;
}
} // namespace prefs
// Copyright 2019 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 SERVICES_PREFERENCES_PUBLIC_CPP_MANIFEST_H_
#define SERVICES_PREFERENCES_PUBLIC_CPP_MANIFEST_H_
#include "services/service_manager/public/cpp/manifest.h"
namespace prefs {
const service_manager::Manifest& GetManifest();
} // namespace prefs
#endif // SERVICES_PREFERENCES_PUBLIC_CPP_MANIFEST_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment