Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: chrome/renderer/resources/extensions/declarative_webrequest_custom_bindings.js

Issue 12313142: Revert 184837 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Custom binding for the declarativeWebRequest API. 5 // Custom bindings for the declarativeWebRequest API.
6
7 var binding = require('binding').Binding.create('declarativeWebRequest');
8 6
9 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); 7 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
10 var chrome = requireNative('chrome').GetChrome();
11 var utils = require('utils'); 8 var utils = require('utils');
12 var validate = require('schemaUtils').validate; 9 var validate = require('schemaUtils').validate;
13 10
14 binding.registerCustomHook(function(api) { 11 chromeHidden.registerCustomHook('declarativeWebRequest', function(api) {
15 var declarativeWebRequest = api.compiledApi;
16
17 // Returns the schema definition of type |typeId| defined in |namespace|. 12 // Returns the schema definition of type |typeId| defined in |namespace|.
18 function getSchema(typeId) { 13 function getSchema(namespace, typeId) {
19 return utils.lookup(api.schema.types, 14 var apiSchema = utils.lookup(api.apiDefinitions, 'namespace', namespace);
20 'id', 15 var resultSchema = utils.lookup(
21 'declarativeWebRequest.' + typeId); 16 apiSchema.types, 'id', namespace + '.' + typeId);
17 return resultSchema;
22 } 18 }
23 19
24 // Helper function for the constructor of concrete datatypes of the 20 // Helper function for the constructor of concrete datatypes of the
25 // declarative webRequest API. 21 // declarative webRequest API.
26 // Makes sure that |this| contains the union of parameters and 22 // Makes sure that |this| contains the union of parameters and
27 // {'instanceType': 'declarativeWebRequest.' + typeId} and validates the 23 // {'instanceType': 'declarativeWebRequest.' + typeId} and validates the
28 // generated union dictionary against the schema for |typeId|. 24 // generated union dictionary against the schema for |typeId|.
29 function setupInstance(instance, parameters, typeId) { 25 function setupInstance(instance, parameters, typeId) {
30 for (var key in parameters) { 26 for (var key in parameters) {
31 if (parameters.hasOwnProperty(key)) { 27 if (parameters.hasOwnProperty(key)) {
32 instance[key] = parameters[key]; 28 instance[key] = parameters[key];
33 } 29 }
34 } 30 }
35 instance.instanceType = 'declarativeWebRequest.' + typeId; 31 instance.instanceType = 'declarativeWebRequest.' + typeId;
36 var schema = getSchema(typeId); 32 var schema = getSchema('declarativeWebRequest', typeId);
37 validate([instance], [schema]); 33 validate([instance], [schema]);
38 } 34 }
39 35
40 // Setup all data types for the declarative webRequest API. 36 // Setup all data types for the declarative webRequest API.
41 declarativeWebRequest.RequestMatcher = function(parameters) { 37 chrome.declarativeWebRequest.RequestMatcher = function(parameters) {
42 setupInstance(this, parameters, 'RequestMatcher'); 38 setupInstance(this, parameters, 'RequestMatcher');
43 }; 39 };
44 declarativeWebRequest.CancelRequest = function(parameters) { 40 chrome.declarativeWebRequest.CancelRequest = function(parameters) {
45 setupInstance(this, parameters, 'CancelRequest'); 41 setupInstance(this, parameters, 'CancelRequest');
46 }; 42 };
47 declarativeWebRequest.RedirectRequest = function(parameters) { 43 chrome.declarativeWebRequest.RedirectRequest = function(parameters) {
48 setupInstance(this, parameters, 'RedirectRequest'); 44 setupInstance(this, parameters, 'RedirectRequest');
49 }; 45 };
50 declarativeWebRequest.SetRequestHeader = function(parameters) { 46 chrome.declarativeWebRequest.SetRequestHeader = function(parameters) {
51 setupInstance(this, parameters, 'SetRequestHeader'); 47 setupInstance(this, parameters, 'SetRequestHeader');
52 }; 48 };
53 declarativeWebRequest.RemoveRequestHeader = function(parameters) { 49 chrome.declarativeWebRequest.RemoveRequestHeader = function(parameters) {
54 setupInstance(this, parameters, 'RemoveRequestHeader'); 50 setupInstance(this, parameters, 'RemoveRequestHeader');
55 }; 51 };
56 declarativeWebRequest.AddResponseHeader = function(parameters) { 52 chrome.declarativeWebRequest.AddResponseHeader = function(parameters) {
57 setupInstance(this, parameters, 'AddResponseHeader'); 53 setupInstance(this, parameters, 'AddResponseHeader');
58 }; 54 };
59 declarativeWebRequest.RemoveResponseHeader = function(parameters) { 55 chrome.declarativeWebRequest.RemoveResponseHeader = function(parameters) {
60 setupInstance(this, parameters, 'RemoveResponseHeader'); 56 setupInstance(this, parameters, 'RemoveResponseHeader');
61 }; 57 };
62 declarativeWebRequest.RedirectToTransparentImage = 58 chrome.declarativeWebRequest.RedirectToTransparentImage =
63 function(parameters) { 59 function(parameters) {
64 setupInstance(this, parameters, 'RedirectToTransparentImage'); 60 setupInstance(this, parameters, 'RedirectToTransparentImage');
65 }; 61 };
66 declarativeWebRequest.RedirectToEmptyDocument = function(parameters) { 62 chrome.declarativeWebRequest.RedirectToEmptyDocument = function(parameters) {
67 setupInstance(this, parameters, 'RedirectToEmptyDocument'); 63 setupInstance(this, parameters, 'RedirectToEmptyDocument');
68 }; 64 };
69 declarativeWebRequest.RedirectByRegEx = function(parameters) { 65 chrome.declarativeWebRequest.RedirectByRegEx = function(parameters) {
70 setupInstance(this, parameters, 'RedirectByRegEx'); 66 setupInstance(this, parameters, 'RedirectByRegEx');
71 }; 67 };
72 declarativeWebRequest.IgnoreRules = function(parameters) { 68 chrome.declarativeWebRequest.IgnoreRules = function(parameters) {
73 setupInstance(this, parameters, 'IgnoreRules'); 69 setupInstance(this, parameters, 'IgnoreRules');
74 }; 70 };
75 declarativeWebRequest.AddRequestCookie = function(parameters) { 71 chrome.declarativeWebRequest.AddRequestCookie = function(parameters) {
76 setupInstance(this, parameters, 'AddRequestCookie'); 72 setupInstance(this, parameters, 'AddRequestCookie');
77 }; 73 };
78 declarativeWebRequest.AddResponseCookie = function(parameters) { 74 chrome.declarativeWebRequest.AddResponseCookie = function(parameters) {
79 setupInstance(this, parameters, 'AddResponseCookie'); 75 setupInstance(this, parameters, 'AddResponseCookie');
80 }; 76 };
81 declarativeWebRequest.EditRequestCookie = function(parameters) { 77 chrome.declarativeWebRequest.EditRequestCookie = function(parameters) {
82 setupInstance(this, parameters, 'EditRequestCookie'); 78 setupInstance(this, parameters, 'EditRequestCookie');
83 }; 79 };
84 declarativeWebRequest.EditResponseCookie = function(parameters) { 80 chrome.declarativeWebRequest.EditResponseCookie = function(parameters) {
85 setupInstance(this, parameters, 'EditResponseCookie'); 81 setupInstance(this, parameters, 'EditResponseCookie');
86 }; 82 };
87 declarativeWebRequest.RemoveRequestCookie = function(parameters) { 83 chrome.declarativeWebRequest.RemoveRequestCookie = function(parameters) {
88 setupInstance(this, parameters, 'RemoveRequestCookie'); 84 setupInstance(this, parameters, 'RemoveRequestCookie');
89 }; 85 };
90 declarativeWebRequest.RemoveResponseCookie = function(parameters) { 86 chrome.declarativeWebRequest.RemoveResponseCookie = function(parameters) {
91 setupInstance(this, parameters, 'RemoveResponseCookie'); 87 setupInstance(this, parameters, 'RemoveResponseCookie');
92 }; 88 };
93 declarativeWebRequest.SendMessageToExtension = function(parameters) { 89 chrome.declarativeWebRequest.SendMessageToExtension = function(parameters) {
94 setupInstance(this, parameters, 'SendMessageToExtension'); 90 setupInstance(this, parameters, 'SendMessageToExtension');
95 }; 91 };
96 }); 92 });
97
98 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698