From 585cb1a4347c3563b6e35cbc6d41377212c59eba Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Wed, 27 Dec 2017 17:11:10 -0500 Subject: [PATCH] Fix proxy service initialization (issue #2066) --- BUILD.gn | 42 +++++++++++++++++++ libcef/browser/content_browser_client.cc | 8 ++++ .../browser_manifest_overlay.json | 3 ++ .../packaged_services_manifest_overlay.json | 5 +++ .../renderer_manifest_overlay.json | 0 .../utility_manifest_overlay.json | 0 libcef/resources/cef_resources.grd | 9 ++-- 7 files changed, 64 insertions(+), 3 deletions(-) rename libcef/common/{extensions/api => service_manifests}/browser_manifest_overlay.json (90%) create mode 100644 libcef/common/service_manifests/packaged_services_manifest_overlay.json rename libcef/common/{extensions/api => service_manifests}/renderer_manifest_overlay.json (100%) rename libcef/common/{extensions/api => service_manifests}/utility_manifest_overlay.json (100%) diff --git a/BUILD.gn b/BUILD.gn index 3afe3b78f..c5f142845 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -105,6 +105,8 @@ import("//media/media_options.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//ppapi/features/features.gni") import("//printing/features/features.gni") +import("//services/catalog/public/tools/catalog.gni") +import("//services/service_manager/public/service_manifest.gni") import("//third_party/icu/config.gni") import("//third_party/widevine/cdm/widevine.gni") import("//tools/grit/repack.gni") @@ -1022,6 +1024,41 @@ if (is_win) { } +# +# Service manifests. +# + +cef_packaged_services = [ + "//services/proxy_resolver:proxy_resolver_manifest", +] + +service_manifest("cef_packaged_services_manifest_overlay") { + source = "libcef/common/service_manifests/packaged_services_manifest_overlay.json" + packaged_services = cef_packaged_services +} + +service_manifest("cef_browser_manifest_overlay") { + source = "libcef/common/service_manifests/browser_manifest_overlay.json" +} + +service_manifest("cef_renderer_manifest_overlay") { + source = "libcef/common/service_manifests/renderer_manifest_overlay.json" +} + +service_manifest("cef_utility_manifest_overlay") { + source = "libcef/common/service_manifests/utility_manifest_overlay.json" +} + +group("cef_manifest_overlays") { + deps = [ + ":cef_packaged_services_manifest_overlay", + ":cef_browser_manifest_overlay", + ":cef_renderer_manifest_overlay", + ":cef_utility_manifest_overlay", + ] +} + + # # Resource grit/pack targets. # @@ -1160,6 +1197,11 @@ grit("cef_resources") { "grit/cef_resources.h", "cef_resources.pak", ] + grit_flags = [ + "-E", + "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), + ] + deps = [ ":cef_manifest_overlays" ] } # Generate cef.pak. diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index de5f4dccd..62707effa 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -47,6 +47,7 @@ #include "chrome/browser/spellchecker/spell_check_host_impl.h" #include "chrome/common/chrome_switches.h" #include "chrome/grit/browser_resources.h" +#include "chrome/grit/generated_resources.h" #include "components/navigation_interception/intercept_navigation_throttle.h" #include "components/navigation_interception/navigation_params.h" #include "components/printing/service/public/interfaces/pdf_compositor.mojom.h" @@ -81,8 +82,10 @@ #include "extensions/common/switches.h" #include "net/ssl/ssl_cert_request_info.h" #include "ppapi/host/ppapi_host.h" +#include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h" #include "storage/browser/quota/quota_settings.h" #include "third_party/WebKit/public/web/WebWindowFeatures.h" +#include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" #include "url/gurl.h" @@ -591,6 +594,9 @@ void CefContentBrowserClient::RegisterOutOfProcessServices( OutOfProcessServiceMap* services) { (*services)[printing::mojom::kServiceName] = base::ASCIIToUTF16("PDF Compositor Service"); + + (*services)[proxy_resolver::mojom::kProxyResolverServiceName] = + l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME); } std::unique_ptr CefContentBrowserClient::GetServiceManifestOverlay( @@ -598,6 +604,8 @@ std::unique_ptr CefContentBrowserClient::GetServiceManifestOverlay( int id = -1; if (name == content::mojom::kBrowserServiceName) id = IDR_CEF_BROWSER_MANIFEST_OVERLAY; + else if (name == content::mojom::kPackagedServicesServiceName) + id = IDR_CEF_PACKAGED_SERVICES_MANIFEST_OVERLAY; else if (name == content::mojom::kRendererServiceName) id = IDR_CEF_RENDERER_MANIFEST_OVERLAY; else if (name == content::mojom::kUtilityServiceName) diff --git a/libcef/common/extensions/api/browser_manifest_overlay.json b/libcef/common/service_manifests/browser_manifest_overlay.json similarity index 90% rename from libcef/common/extensions/api/browser_manifest_overlay.json rename to libcef/common/service_manifests/browser_manifest_overlay.json index 3ec4cfa42..43b409d61 100644 --- a/libcef/common/extensions/api/browser_manifest_overlay.json +++ b/libcef/common/service_manifests/browser_manifest_overlay.json @@ -11,6 +11,9 @@ "spellcheck::mojom::SpellCheckHost", "startup_metric_utils::mojom::StartupMetricHost" ] + }, + "requires": { + "proxy_resolver": [ "factory" ] } }, "navigation:frame": { diff --git a/libcef/common/service_manifests/packaged_services_manifest_overlay.json b/libcef/common/service_manifests/packaged_services_manifest_overlay.json new file mode 100644 index 000000000..33fc4cdfb --- /dev/null +++ b/libcef/common/service_manifests/packaged_services_manifest_overlay.json @@ -0,0 +1,5 @@ +{ + "name": "content_packaged_services", + "display_name": "CEF Packaged Services", + "interface_provider_specs": {} +} \ No newline at end of file diff --git a/libcef/common/extensions/api/renderer_manifest_overlay.json b/libcef/common/service_manifests/renderer_manifest_overlay.json similarity index 100% rename from libcef/common/extensions/api/renderer_manifest_overlay.json rename to libcef/common/service_manifests/renderer_manifest_overlay.json diff --git a/libcef/common/extensions/api/utility_manifest_overlay.json b/libcef/common/service_manifests/utility_manifest_overlay.json similarity index 100% rename from libcef/common/extensions/api/utility_manifest_overlay.json rename to libcef/common/service_manifests/utility_manifest_overlay.json diff --git a/libcef/resources/cef_resources.grd b/libcef/resources/cef_resources.grd index 166a145d5..b4dd992a4 100644 --- a/libcef/resources/cef_resources.grd +++ b/libcef/resources/cef_resources.grd @@ -15,9 +15,12 @@ - - - + + + + + +