summaryrefslogtreecommitdiffstats
path: root/extensions/renderer
diff options
context:
space:
mode:
authordcheng <dcheng@chromium.org>2014-09-30 12:04:22 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-30 19:04:45 +0000
commite650b32b0453a45e0bdcb248f93092f1bd1f817f (patch)
tree78dd88c77647aaf6c35bb81526fde7fbea789a32 /extensions/renderer
parentdbcbacdda074a8281df82fb547c6e2453a61e55b (diff)
downloadchromium_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.gn3
-rw-r--r--extensions/renderer/dispatcher.cc3
-rw-r--r--extensions/renderer/resources/extensions_renderer_resources.grd1
-rw-r--r--extensions/renderer/resources/web_view.js6
-rw-r--r--extensions/renderer/resources/web_view_events.js92
-rw-r--r--extensions/renderer/resources/web_view_request_custom_bindings.js55
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();