Fix proxy service initialization (issue #2066)

This commit is contained in:
Marshall Greenblatt
2017-12-27 17:11:10 -05:00
parent 1728ce6627
commit 585cb1a434
7 changed files with 64 additions and 3 deletions

View File

@@ -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.

View File

@@ -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<base::Value> CefContentBrowserClient::GetServiceManifestOverlay(
@@ -598,6 +604,8 @@ std::unique_ptr<base::Value> 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)

View File

@@ -11,6 +11,9 @@
"spellcheck::mojom::SpellCheckHost",
"startup_metric_utils::mojom::StartupMetricHost"
]
},
"requires": {
"proxy_resolver": [ "factory" ]
}
},
"navigation:frame": {

View File

@@ -0,0 +1,5 @@
{
"name": "content_packaged_services",
"display_name": "CEF Packaged Services",
"interface_provider_specs": {}
}

View File

@@ -15,9 +15,12 @@
<!-- Extension features supported by CEF. -->
<include name="IDR_CEF_EXTENSION_API_FEATURES" file="..\common\extensions\api\_api_features.json" type="BINDATA" />
<include name="IDR_CEF_BROWSER_MANIFEST_OVERLAY" file="..\common\extensions\api\browser_manifest_overlay.json" type="BINDATA" />
<include name="IDR_CEF_RENDERER_MANIFEST_OVERLAY" file="..\common\extensions\api\renderer_manifest_overlay.json" type="BINDATA" />
<include name="IDR_CEF_UTILITY_MANIFEST_OVERLAY" file="..\common\extensions\api\utility_manifest_overlay.json" type="BINDATA" />
<!-- Service manifests. -->
<include name="IDR_CEF_BROWSER_MANIFEST_OVERLAY" file="${root_gen_dir}\cef\cef_browser_manifest_overlay.json" use_base_dir="false" type="BINDATA" />
<include name="IDR_CEF_PACKAGED_SERVICES_MANIFEST_OVERLAY" file="${root_gen_dir}\cef\cef_packaged_services_manifest_overlay.json" use_base_dir="false" type="BINDATA" />
<include name="IDR_CEF_RENDERER_MANIFEST_OVERLAY" file="${root_gen_dir}\cef\cef_renderer_manifest_overlay.json" use_base_dir="false" type="BINDATA" />
<include name="IDR_CEF_UTILITY_MANIFEST_OVERLAY" file="${root_gen_dir}\cef\cef_utility_manifest_overlay.json" use_base_dir="false" type="BINDATA" />
</includes>
</release>
</grit>