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") {
"//components/translate/content/common",
"//extensions/buildflags",
"//services/identity:manifest",
"//services/preferences:manifest",
"//services/preferences/public/cpp:manifest",
"//services/service_manager/public/cpp",
"//services/ws/common",
"//third_party/blink/public/common",
......@@ -550,7 +550,7 @@ source_set("chrome_packaged_service_manifests") {
"//device/vr/buildflags",
"//extensions/buildflags",
"//printing/buildflags",
"//services/preferences:local_state_manifest",
"//services/preferences/public/cpp:local_state_manifest",
"//services/proxy_resolver:proxy_resolver_manifest",
"//services/service_manager/public/cpp",
]
......
......@@ -34,6 +34,7 @@ include_rules = [
"+pdf/pdf_ppapi.h",
"+remoting/client/plugin",
"+sandbox",
"+services/preferences/public",
"+services/service_manager/public",
"+services/ws/public",
"+third_party/breakpad/breakpad",
......@@ -59,7 +60,6 @@ specific_include_rules = {
"+extensions/buildflags",
"+extensions/common",
"+services/identity",
"+services/preferences",
"+services/resource_coordinator/public",
"+services/ws/common",
],
......@@ -102,7 +102,6 @@ specific_include_rules = {
"+extensions/buildflags",
"+mash/public",
"+services/content/simple_browser",
"+services/preferences",
"+services/proxy_resolver",
],
"chrome_renderer_manifest\.cc": [
......
......@@ -37,7 +37,7 @@
#include "components/translate/content/common/translate.mojom.h"
#include "extensions/buildflags/buildflags.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 "third_party/blink/public/platform/input_host.mojom.h"
#include "third_party/blink/public/platform/media_download_in_product_help.mojom.h"
......@@ -238,7 +238,7 @@ const service_manager::Manifest& GetChromeContentBrowserOverlayManifest() {
snippets_internals::mojom::PageHandlerFactory,
web_ui_test::mojom::TestRunner>())
.PackageService(identity::GetManifest())
.PackageService(preferences::GetManifest())
.PackageService(prefs::GetManifest())
#if defined(OS_CHROMEOS)
.PackageService(device_sync::GetManifest())
.PackageService(multidevice_setup::GetManifest())
......
......@@ -17,7 +17,7 @@
#include "device/vr/buildflags/buildflags.h"
#include "extensions/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/service_manager/public/cpp/manifest_builder.h"
......@@ -137,7 +137,7 @@ GetChromePackagedServiceManifests() {
unzip_service::GetManifest(),
file_util::GetManifest(),
proxy_resolver::GetManifest(),
local_state::GetManifest(),
prefs::GetLocalStateManifest(),
noop::GetManifest(),
#if BUILDFLAG(ENABLE_EXTENSIONS)
removable_storage_writer::GetManifest(),
......
......@@ -2,20 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//services/catalog/public/tools/catalog.gni")
import("//services/service_manager/public/service_manifest.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") {
visibility = [
":*",
......@@ -70,33 +58,9 @@ source_set("tests") {
if (!is_ios) {
sources += [ "pref_service_factory_unittest.cc" ]
deps += [
":tests_catalog_source",
"//services/preferences/public/cpp:manifest",
"//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
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 @@
#include "services/preferences/pref_store_impl.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/manifest.h"
#include "services/preferences/public/cpp/pref_service_main.h"
#include "services/preferences/public/cpp/scoped_pref_update.h"
#include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/preferences/tests_catalog_source.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/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 "testing/gtest/include/gtest/gtest.h"
......@@ -103,7 +105,22 @@ constexpr int kUpdatedValue = 2;
class PrefServiceFactoryTest : public testing::Test {
public:
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:
void SetUp() override {
......
......@@ -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") {
deps = [
"//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*.*=file://ipc/SECURITY_OWNERS
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