| Index: chrome/renderer/resources/extensions/declarative_custom_bindings.js
|
| diff --git a/chrome/renderer/resources/extensions/declarative_custom_bindings.js b/chrome/renderer/resources/extensions/declarative_custom_bindings.js
|
| deleted file mode 100644
|
| index 0342775b51df7009166f0ba4f951683fe9043286..0000000000000000000000000000000000000000
|
| --- a/chrome/renderer/resources/extensions/declarative_custom_bindings.js
|
| +++ /dev/null
|
| @@ -1,76 +0,0 @@
|
| -// Copyright (c) 2012 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 bindings for the declarative API.
|
| -
|
| -var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
|
| -var sendRequest = require('sendRequest').sendRequest;
|
| -
|
| -chromeHidden.registerCustomHook('declarative',
|
| - function(bindingsAPI) {
|
| - var apiFunctions = bindingsAPI.apiFunctions;
|
| - var apiDefinitions = bindingsAPI.apiDefinitions;
|
| - var cachedEventOptions = {};
|
| -
|
| - function getEventOptions(qualifiedEventName) {
|
| - if (cachedEventOptions[qualifiedEventName])
|
| - return cachedEventOptions[qualifiedEventName];
|
| -
|
| - // Parse qualifiedEventName into namespace and event name.
|
| - var lastSeparator = qualifiedEventName.lastIndexOf('.');
|
| - var eventName = qualifiedEventName.substr(lastSeparator + 1);
|
| - var namespace = qualifiedEventName.substr(0, lastSeparator);
|
| -
|
| - // Lookup schema definition.
|
| - var filterNamespace = function(val) {return val.namespace === namespace;};
|
| - var apiSchema = apiDefinitions.filter(filterNamespace)[0];
|
| - var filterEventName = function (val) {return val.name === eventName;};
|
| - var eventSchema = apiSchema.events.filter(filterEventName)[0];
|
| -
|
| - cachedEventOptions[qualifiedEventName] = eventSchema.options;
|
| - return eventSchema.options;
|
| - }
|
| -
|
| - // Takes a list of JSON datatype identifiers and returns a schema fragment
|
| - // that verifies that a JSON object corresponds to an array of only these
|
| - // data types.
|
| - function buildArrayOfChoicesSchema(typesList) {
|
| - return {
|
| - 'type': 'array',
|
| - 'items': {
|
| - 'choices': typesList.map(function(el) {return {'$ref': el};})
|
| - }
|
| - };
|
| - }
|
| -
|
| - // Validate conditions and actions against specific schemas of this
|
| - // event object type.
|
| - // |rules| is an array of JSON objects that follow the Rule type of the
|
| - // declarative extension APIs. |conditions| is an array of JSON type
|
| - // identifiers that are allowed to occur in the conditions attribute of each
|
| - // rule. Likewise, |actions| is an array of JSON type identifiers that are
|
| - // allowed to occur in the actions attribute of each rule.
|
| - function validateRules(rules, conditions, actions) {
|
| - var conditionsSchema = buildArrayOfChoicesSchema(conditions);
|
| - var actionsSchema = buildArrayOfChoicesSchema(actions);
|
| - rules.forEach(function(rule) {
|
| - chromeHidden.validate([rule.conditions], [conditionsSchema]);
|
| - chromeHidden.validate([rule.actions], [actionsSchema]);
|
| - })
|
| - }
|
| -
|
| - apiFunctions.setHandleRequest('addRules',
|
| - function(eventName, rules, opt_callback) {
|
| - var eventOptions = getEventOptions(eventName);
|
| - if (!eventOptions.conditions || !eventOptions.actions) {
|
| - throw new Error('Event ' + eventName + ' misses conditions or ' +
|
| - 'actions in the API specification.');
|
| - }
|
| - validateRules(rules,
|
| - eventOptions.conditions,
|
| - eventOptions.actions);
|
| - sendRequest(this.name, [eventName, rules, opt_callback],
|
| - this.definition.parameters);
|
| - });
|
| -});
|
|
|