diff options
author | dcheng <dcheng@chromium.org> | 2014-09-30 12:04:22 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-30 19:04:45 +0000 |
commit | e650b32b0453a45e0bdcb248f93092f1bd1f817f (patch) | |
tree | 78dd88c77647aaf6c35bb81526fde7fbea789a32 /extensions/renderer | |
parent | dbcbacdda074a8281df82fb547c6e2453a61e55b (diff) | |
download | chromium_src-e650b32b0453a45e0bdcb248f93092f1bd1f817f.zip chromium_src-e650b32b0453a45e0bdcb248f93092f1bd1f817f.tar.gz chromium_src-e650b32b0453a45e0bdcb248f93092f1bd1f817f.tar.bz2 |
Revert "Allow declarative webrequest and webrequest in extensions."
Causing compile failures on Linux GN trybots.
> - Update _api_features.json and _permissions.json to allow the following features in extensions:
> - declarativeWebrequest,
> - events
> - webRequest
> - webViewRequest
>
> - Move web_view_request_custom_bindings.js and web_view_request.json to extensions.
>
> - Remove ExtensionsAPIClient::GetRuleRegistry() since RuleRegisteryService has been moved to extension.
>
> - Clean up extensions/extensions.gyp.
>
> TBR=sky@chromium.org
> BUG=352293
NOTREECHECKS=true
NOTRY=true
TBR=fsamuel@chromium.org,rockot@chromium.org,sky@chromium.org
Review URL: https://codereview.chromium.org/620623002
Cr-Commit-Position: refs/heads/master@{#297471}
Diffstat (limited to 'extensions/renderer')
-rw-r--r-- | extensions/renderer/BUILD.gn | 3 | ||||
-rw-r--r-- | extensions/renderer/dispatcher.cc | 3 | ||||
-rw-r--r-- | extensions/renderer/resources/extensions_renderer_resources.grd | 1 | ||||
-rw-r--r-- | extensions/renderer/resources/web_view.js | 6 | ||||
-rw-r--r-- | extensions/renderer/resources/web_view_events.js | 92 | ||||
-rw-r--r-- | extensions/renderer/resources/web_view_request_custom_bindings.js | 55 |
6 files changed, 7 insertions, 153 deletions
diff --git a/extensions/renderer/BUILD.gn b/extensions/renderer/BUILD.gn index 01577ea2..a0092c1 100644 --- a/extensions/renderer/BUILD.gn +++ b/extensions/renderer/BUILD.gn @@ -107,9 +107,6 @@ source_set("renderer") { "resources/uncaught_exception_handler.js", "resources/unload_event.js", "resources/utils.js", - "resources/web_view.js", - "resources/web_view_events.js", - "resources/web_view_experimental.js", "resources/web_request_custom_bindings.js", "resources/web_request_internal_custom_bindings.js", "runtime_custom_bindings.cc", diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index efa95bb..278066c 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -579,9 +579,6 @@ std::vector<std::pair<std::string, int> > Dispatcher::GetJsResources() { resources.push_back( std::make_pair("runtime", IDR_RUNTIME_CUSTOM_BINDINGS_JS)); resources.push_back(std::make_pair("windowControls", IDR_WINDOW_CONTROLS_JS)); - resources.push_back( - std::make_pair("webViewRequest", - IDR_WEB_VIEW_REQUEST_CUSTOM_BINDINGS_JS)); resources.push_back(std::make_pair("binding", IDR_BINDING_JS)); // Custom types sources. diff --git a/extensions/renderer/resources/extensions_renderer_resources.grd b/extensions/renderer/resources/extensions_renderer_resources.grd index 82aee00..3a5bf11 100644 --- a/extensions/renderer/resources/extensions_renderer_resources.grd +++ b/extensions/renderer/resources/extensions_renderer_resources.grd @@ -53,7 +53,6 @@ <include name="IDR_WEB_REQUEST_INTERNAL_CUSTOM_BINDINGS_JS" file="web_request_internal_custom_bindings.js" type="BINDATA" /> <include name="IDR_WINDOW_CONTROLS_JS" file="window_controls.js" type="BINDATA" /> <include name="IDR_WINDOW_CONTROLS_TEMPLATE_HTML" file="window_controls_template.html" type="BINDATA" /> - <include name="IDR_WEB_VIEW_REQUEST_CUSTOM_BINDINGS_JS" file="web_view_request_custom_bindings.js" type="BINDATA" /> <!-- Custom types for APIs. --> <include name="IDR_STORAGE_AREA_JS" file="storage_area.js" type="BINDATA" /> diff --git a/extensions/renderer/resources/web_view.js b/extensions/renderer/resources/web_view.js index 3cf20f9..98c80b9 100644 --- a/extensions/renderer/resources/web_view.js +++ b/extensions/renderer/resources/web_view.js @@ -985,6 +985,12 @@ window.addEventListener('readystatechange', function listener(event) { WebViewInternal.prototype.maybeGetChromeWebViewEvents = function() {}; /** + * Implemented when the ChromeWebView API is available. + * @private + */ +WebViewInternal.prototype.maybeSetupChromeWebViewEvents = function() {}; + +/** * Implemented when the experimental API is available. * @private */ diff --git a/extensions/renderer/resources/web_view_events.js b/extensions/renderer/resources/web_view_events.js index f02069b..13af04c 100644 --- a/extensions/renderer/resources/web_view_events.js +++ b/extensions/renderer/resources/web_view_events.js @@ -4,14 +4,8 @@ // Event management for WebViewInternal. -var DeclarativeWebRequestSchema = - requireNative('schema_registry').GetSchema('declarativeWebRequest'); var EventBindings = require('event_bindings'); -var IdGenerator = requireNative('id_generator'); var MessagingNatives = requireNative('messaging_natives'); -var WebRequestEvent = require('webRequestInternal').WebRequestEvent; -var WebRequestSchema = - requireNative('schema_registry').GetSchema('webRequest'); var WebView = require('webViewInternal').WebView; var CreateEvent = function(name) { @@ -21,7 +15,6 @@ var CreateEvent = function(name) { var FrameNameChangedEvent = CreateEvent('webViewInternal.onFrameNameChanged'); var PluginDestroyedEvent = CreateEvent('webViewInternal.onPluginDestroyed'); -var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage'); // WEB_VIEW_EVENTS is a map of stable <webview> DOM event names to their // associated extension event descriptor objects. @@ -155,25 +148,6 @@ var WEB_VIEW_EVENTS = { } }; -function DeclarativeWebRequestEvent(opt_eventName, - opt_argSchemas, - opt_eventOptions, - opt_webViewInstanceId) { - var subEventName = opt_eventName + '/' + IdGenerator.GetNextId(); - EventBindings.Event.call(this, subEventName, opt_argSchemas, opt_eventOptions, - opt_webViewInstanceId); - - // TODO(lazyboy): When do we dispose this listener? - WebRequestMessageEvent.addListener(function() { - // Re-dispatch to subEvent's listeners. - $Function.apply(this.dispatch, this, $Array.slice(arguments)); - }.bind(this), {instanceId: opt_webViewInstanceId || 0}); -} - -DeclarativeWebRequestEvent.prototype = { - __proto__: EventBindings.Event.prototype -}; - // Constructor. function WebViewEvents(webViewInternal, viewInstanceId) { this.webViewInternal = webViewInternal; @@ -185,7 +159,7 @@ function WebViewEvents(webViewInternal, viewInstanceId) { WebViewEvents.prototype.setup = function() { this.setupFrameNameChangedEvent(); this.setupPluginDestroyedEvent(); - this.setupWebRequestEvents(); + this.webViewInternal.maybeSetupChromeWebViewEvents(); this.webViewInternal.setupExperimentalContextMenus(); var events = this.getEvents(); @@ -206,70 +180,6 @@ WebViewEvents.prototype.setupPluginDestroyedEvent = function() { }.bind(this), {instanceId: this.viewInstanceId}); }; -WebViewEvents.prototype.setupWebRequestEvents = function() { - var request = {}; - var createWebRequestEvent = function(webRequestEvent) { - return function() { - if (!this[webRequestEvent.name]) { - this[webRequestEvent.name] = - new WebRequestEvent( - 'webViewInternal.' + webRequestEvent.name, - webRequestEvent.parameters, - webRequestEvent.extraParameters, webRequestEvent.options, - this.viewInstanceId); - } - return this[webRequestEvent.name]; - }.bind(this); - }.bind(this); - - var createDeclarativeWebRequestEvent = function(webRequestEvent) { - return function() { - if (!this[webRequestEvent.name]) { - // The onMessage event gets a special event type because we want - // the listener to fire only for messages targeted for this particular - // <webview>. - var EventClass = webRequestEvent.name === 'onMessage' ? - DeclarativeWebRequestEvent : EventBindings.Event; - this[webRequestEvent.name] = - new EventClass( - 'webViewInternal.' + webRequestEvent.name, - webRequestEvent.parameters, - webRequestEvent.options, - this.viewInstanceId); - } - return this[webRequestEvent.name]; - }.bind(this); - }.bind(this); - - for (var i = 0; i < DeclarativeWebRequestSchema.events.length; ++i) { - var eventSchema = DeclarativeWebRequestSchema.events[i]; - var webRequestEvent = createDeclarativeWebRequestEvent(eventSchema); - Object.defineProperty( - request, - eventSchema.name, - { - get: webRequestEvent, - enumerable: true - } - ); - } - - // Populate the WebRequest events from the API definition. - for (var i = 0; i < WebRequestSchema.events.length; ++i) { - var webRequestEvent = createWebRequestEvent(WebRequestSchema.events[i]); - Object.defineProperty( - request, - WebRequestSchema.events[i].name, - { - get: webRequestEvent, - enumerable: true - } - ); - } - - this.webViewInternal.setRequestPropertyOnWebViewNode(request); -}; - WebViewEvents.prototype.getEvents = function() { var experimentalEvents = this.webViewInternal.maybeGetExperimentalEvents(); for (var eventName in experimentalEvents) { diff --git a/extensions/renderer/resources/web_view_request_custom_bindings.js b/extensions/renderer/resources/web_view_request_custom_bindings.js deleted file mode 100644 index 62f7459..0000000 --- a/extensions/renderer/resources/web_view_request_custom_bindings.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 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. - -// Custom binding for the webViewRequest API. - -var binding = require('binding').Binding.create('webViewRequest'); - -var declarativeWebRequestSchema = - requireNative('schema_registry').GetSchema('declarativeWebRequest'); -var utils = require('utils'); -var validate = require('schemaUtils').validate; - -binding.registerCustomHook(function(api) { - var webViewRequest = api.compiledApi; - - // Returns the schema definition of type |typeId| defined in - // |declarativeWebRequestScheme.types|. - function getSchema(typeId) { - return utils.lookup(declarativeWebRequestSchema.types, - 'id', - 'declarativeWebRequest.' + typeId); - } - - // Helper function for the constructor of concrete datatypes of the - // declarative webRequest API. - // Makes sure that |this| contains the union of parameters and - // {'instanceType': 'declarativeWebRequest.' + typeId} and validates the - // generated union dictionary against the schema for |typeId|. - function setupInstance(instance, parameters, typeId) { - for (var key in parameters) { - if ($Object.hasOwnProperty(parameters, key)) { - instance[key] = parameters[key]; - } - } - - instance.instanceType = 'declarativeWebRequest.' + typeId; - var schema = getSchema(typeId); - validate([instance], [schema]); - } - - // Setup all data types for the declarative webRequest API from the schema. - for (var i = 0; i < declarativeWebRequestSchema.types.length; ++i) { - var typeSchema = declarativeWebRequestSchema.types[i]; - var typeId = typeSchema.id.replace('declarativeWebRequest.', ''); - var action = function(typeId) { - return function(parameters) { - setupInstance(this, parameters, typeId); - }; - }(typeId); - webViewRequest[typeId] = action; - } -}); - -exports.binding = binding.generate(); |