Update to Chromium revision 3a87aecc (#433059)

This commit is contained in:
Marshall Greenblatt
2016-11-23 15:54:29 -05:00
parent c6881fe145
commit 12aeeb13f7
126 changed files with 1643 additions and 1436 deletions

View File

@@ -2,8 +2,8 @@
# 2014 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.
import("//build/json_schema_api.gni")
import("//tools/json_schema_compiler/json_features.gni")
#import("//tools/json_schema_compiler/json_schema_api.gni")
# TODO(cef): Enable if/when CEF exposes its own Mojo APIs. See README.txt for
# details.

View File

@@ -10,20 +10,22 @@ To add a new extension API implemented only in CEF ***:
API.
2. Add <api>.idl or .json to the 'schema_sources' list in
libcef/common/extensions/api/BUILD.gn. Serialization code will be
generated based on this list in step 5.
3. Add an entry in the libcef/common/extensions/api/_*_features.json files if
necessary [1].
4. Add libcef/browser/extensions/api/<api>/<api>_api.[h|cc] class implementation
generated based on this list in step 4.
3. Add libcef/browser/extensions/api/<api>/<api>_api.[h|cc] class implementation
files and associated entries to the 'libcef_static' target in BUILD.gn.
5. Run the cef_create_projects script and build to generate the
4. Run the cef_create_projects script and build to generate the
cef/libcef/common/extensions/api/<api>.h file and other serialization code
required by the extensions system.
6. Call `<class>::GetInstance();` or `<class>Factory::GetFactoryInstance();` [2]
5. Add an entry in the libcef/common/extensions/api/_*_features.json files if
necessary [1].
6. Add an entry in the libcef/common/extensions/api/*_manifest_overlay.json
files if necessary [2].
7. Call `<class>::GetInstance();` or `<class>Factory::GetFactoryInstance();` [3]
from EnsureBrowserContextKeyedServiceFactoriesBuilt in
libcef/browser/extensions/browser_context_keyed_service_factories.cc.
7. Call `DependsOn(<class>Factory::GetInstance());` from
8. Call `DependsOn(<class>Factory::GetInstance());` from
CefExtensionSystemFactory::CefExtensionSystemFactory in
libcef/browser/extensions/extension_system_factory.cc if necessary [2].
libcef/browser/extensions/extension_system_factory.cc if necessary [3].
*** Note that CEF does not currently expose its own Mojo APIs. Related code is
commented out in:
@@ -36,7 +38,7 @@ commented out in:
To add a new extension API implemented in Chrome:
1. Register the API in libcef/browser/extensions/chrome_api_registration.cc
2. Perform steps 3, 6 and 7 above.
2. Perform steps 5 through 8 above.
See https://www.chromium.org/developers/design-documents/mojo for more
information.
@@ -46,7 +48,17 @@ information.
additional details. For Chrome extensions this should match the definitions
in the chrome/common/extensions/api/_*_features.json files.
[2] Some Mojo APIs use singleton Factory objects that create a one-to-one
[2] Service Manifest InterfaceProviderSpecs control interfaces exposed between
processes. Mojo interfaces exposed at the frame level are controlled by the
"navigation:frame" dictionary. Those exposed at the process level are
controlled by the "service_manager:connector" dictionary. Failure to specify
this correctly may result in a console error like the following:
InterfaceProviderSpec "navigation:frame" prevented service:
service:content_renderer from binding interface:
mojom::Foo exposed by: service:content_browser
[3] Some Mojo APIs use singleton Factory objects that create a one-to-one
relationship between a service and a BrowserContext. This is used primarily
to control shutdown/destruction order and implementors must explicitly state
which services are depended on. See comments in

View File

@@ -0,0 +1,14 @@
{
"name": "content_browser",
"display_name": "CEF",
"interface_provider_specs": {
"navigation:frame": {
"provides": {
"renderer": [
"extensions::KeepAlive",
"extensions::mime_handler::MimeHandlerService"
]
}
}
}
}

View File

@@ -0,0 +1,5 @@
{
"display_name": "Chrome Render Process",
"interface_provider_specs": {
}
}

View File

@@ -0,0 +1,12 @@
{
"name": "content_utility",
"interface_provider_specs": {
"service_manager:connector": {
"provides": {
"browser": [
"net::interfaces::ProxyResolverFactory"
]
}
}
}
}