OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // This script contains privileged chrome extension related javascript APIs. | 5 // This script contains privileged chrome extension related javascript APIs. |
6 // It is loaded by pages whose URL has the chrome-extension protocol. | 6 // It is loaded by pages whose URL has the chrome-extension protocol. |
7 | 7 |
8 var chrome = chrome || {}; | 8 var chrome = chrome || {}; |
9 (function() { | 9 (function() { |
10 native function GetExtensionAPIDefinition(); | 10 native function GetExtensionAPIDefinition(); |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 // opt_filter is specified, then the callback is only called for events that | 224 // opt_filter is specified, then the callback is only called for events that |
225 // match the given filters. If opt_extraInfo is specified, the given optional | 225 // match the given filters. If opt_extraInfo is specified, the given optional |
226 // info is sent to the callback. | 226 // info is sent to the callback. |
227 chrome.WebRequestEvent.prototype.addListener = | 227 chrome.WebRequestEvent.prototype.addListener = |
228 function(cb, opt_filter, opt_extraInfo) { | 228 function(cb, opt_filter, opt_extraInfo) { |
229 var subEventName = GetUniqueSubEventName(this.eventName_); | 229 var subEventName = GetUniqueSubEventName(this.eventName_); |
230 // Note: this could fail to validate, in which case we would not add the | 230 // Note: this could fail to validate, in which case we would not add the |
231 // subEvent listener. | 231 // subEvent listener. |
232 chromeHidden.validate(Array.prototype.slice.call(arguments, 1), | 232 chromeHidden.validate(Array.prototype.slice.call(arguments, 1), |
233 this.extraArgSchemas_); | 233 this.extraArgSchemas_); |
234 chrome.experimental.webRequest.addEventListener( | 234 chrome.webRequest.addEventListener( |
235 cb, opt_filter, opt_extraInfo, this.eventName_, subEventName); | 235 cb, opt_filter, opt_extraInfo, this.eventName_, subEventName); |
236 | 236 |
237 var subEvent = new chrome.Event(subEventName, this.argSchemas_); | 237 var subEvent = new chrome.Event(subEventName, this.argSchemas_); |
238 var subEventCallback = cb; | 238 var subEventCallback = cb; |
239 if (opt_extraInfo && opt_extraInfo.indexOf("blocking") >= 0) { | 239 if (opt_extraInfo && opt_extraInfo.indexOf("blocking") >= 0) { |
240 var eventName = this.eventName_; | 240 var eventName = this.eventName_; |
241 subEventCallback = function() { | 241 subEventCallback = function() { |
242 var requestId = arguments[0].requestId; | 242 var requestId = arguments[0].requestId; |
243 try { | 243 try { |
244 var result = cb.apply(null, arguments); | 244 var result = cb.apply(null, arguments); |
245 chrome.experimental.webRequest.eventHandled( | 245 chrome.webRequest.eventHandled( |
246 eventName, subEventName, requestId, result); | 246 eventName, subEventName, requestId, result); |
247 } catch (e) { | 247 } catch (e) { |
248 chrome.experimental.webRequest.eventHandled( | 248 chrome.webRequest.eventHandled( |
249 eventName, subEventName, requestId); | 249 eventName, subEventName, requestId); |
250 throw e; | 250 throw e; |
251 } | 251 } |
252 }; | 252 }; |
253 } else if (opt_extraInfo && opt_extraInfo.indexOf("asyncBlocking") >= 0) { | 253 } else if (opt_extraInfo && opt_extraInfo.indexOf("asyncBlocking") >= 0) { |
254 var eventName = this.eventName_; | 254 var eventName = this.eventName_; |
255 subEventCallback = function() { | 255 subEventCallback = function() { |
256 var details = arguments[0]; | 256 var details = arguments[0]; |
257 var requestId = details.requestId; | 257 var requestId = details.requestId; |
258 var handledCallback = function(response) { | 258 var handledCallback = function(response) { |
259 chrome.experimental.webRequest.eventHandled( | 259 chrome.webRequest.eventHandled( |
260 eventName, subEventName, requestId, response); | 260 eventName, subEventName, requestId, response); |
261 }; | 261 }; |
262 cb.apply(null, [details, handledCallback]); | 262 cb.apply(null, [details, handledCallback]); |
263 }; | 263 }; |
264 } | 264 } |
265 this.subEvents_.push( | 265 this.subEvents_.push( |
266 {subEvent: subEvent, callback: cb, subEventCallback: subEventCallback}); | 266 {subEvent: subEvent, callback: cb, subEventCallback: subEventCallback}); |
267 subEvent.addListener(subEventCallback); | 267 subEvent.addListener(subEventCallback); |
268 }; | 268 }; |
269 | 269 |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 // Setup Events | 683 // Setup Events |
684 if (apiDef.events) { | 684 if (apiDef.events) { |
685 apiDef.events.forEach(function(eventDef) { | 685 apiDef.events.forEach(function(eventDef) { |
686 if (eventDef.name in module || | 686 if (eventDef.name in module || |
687 addUnprivilegedAccessGetter(module, eventDef.name, | 687 addUnprivilegedAccessGetter(module, eventDef.name, |
688 eventDef.unprivileged)) { | 688 eventDef.unprivileged)) { |
689 return; | 689 return; |
690 } | 690 } |
691 | 691 |
692 var eventName = apiDef.namespace + "." + eventDef.name; | 692 var eventName = apiDef.namespace + "." + eventDef.name; |
693 if (apiDef.namespace == "experimental.webRequest") { | 693 if (apiDef.namespace == "webRequest") { |
694 module[eventDef.name] = new chrome.WebRequestEvent(eventName, | 694 module[eventDef.name] = new chrome.WebRequestEvent(eventName, |
695 eventDef.parameters, eventDef.extraParameters); | 695 eventDef.parameters, eventDef.extraParameters); |
696 } else { | 696 } else { |
697 module[eventDef.name] = new chrome.Event(eventName, | 697 module[eventDef.name] = new chrome.Event(eventName, |
698 eventDef.parameters); | 698 eventDef.parameters); |
699 } | 699 } |
700 }); | 700 }); |
701 } | 701 } |
702 | 702 |
703 function addProperties(m, def) { | 703 function addProperties(m, def) { |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 {customCallback: this.customCallback}); | 946 {customCallback: this.customCallback}); |
947 return id; | 947 return id; |
948 }; | 948 }; |
949 | 949 |
950 apiFunctions["omnibox.setDefaultSuggestion"].handleRequest = | 950 apiFunctions["omnibox.setDefaultSuggestion"].handleRequest = |
951 function(details) { | 951 function(details) { |
952 var parseResult = parseOmniboxDescription(details.description); | 952 var parseResult = parseOmniboxDescription(details.description); |
953 sendRequest(this.name, [parseResult], this.definition.parameters); | 953 sendRequest(this.name, [parseResult], this.definition.parameters); |
954 }; | 954 }; |
955 | 955 |
956 apiFunctions["experimental.webRequest.addEventListener"].handleRequest = | 956 apiFunctions["webRequest.addEventListener"].handleRequest = |
957 function() { | 957 function() { |
958 var args = Array.prototype.slice.call(arguments); | 958 var args = Array.prototype.slice.call(arguments); |
959 sendRequest(this.name, args, this.definition.parameters, | 959 sendRequest(this.name, args, this.definition.parameters, |
960 {forIOThread: true}); | 960 {forIOThread: true}); |
961 }; | 961 }; |
962 | 962 |
963 apiFunctions["experimental.webRequest.eventHandled"].handleRequest = | 963 apiFunctions["webRequest.eventHandled"].handleRequest = |
964 function() { | 964 function() { |
965 var args = Array.prototype.slice.call(arguments); | 965 var args = Array.prototype.slice.call(arguments); |
966 sendRequest(this.name, args, this.definition.parameters, | 966 sendRequest(this.name, args, this.definition.parameters, |
967 {forIOThread: true}); | 967 {forIOThread: true}); |
968 }; | 968 }; |
969 | 969 |
970 apiFunctions["experimental.webRequest.handlerBehaviorChanged"]. | 970 apiFunctions["webRequest.handlerBehaviorChanged"]. |
971 handleRequest = function() { | 971 handleRequest = function() { |
972 var args = Array.prototype.slice.call(arguments); | 972 var args = Array.prototype.slice.call(arguments); |
973 sendRequest(this.name, args, this.definition.parameters, | 973 sendRequest(this.name, args, this.definition.parameters, |
974 {forIOThread: true}); | 974 {forIOThread: true}); |
975 }; | 975 }; |
976 | 976 |
977 apiFunctions["contextMenus.create"].customCallback = | 977 apiFunctions["contextMenus.create"].customCallback = |
978 function(name, request, response) { | 978 function(name, request, response) { |
979 if (chrome.extension.lastError) { | 979 if (chrome.extension.lastError) { |
980 return; | 980 return; |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1083 | 1083 |
1084 if (!chrome.tts) | 1084 if (!chrome.tts) |
1085 chrome.tts = {}; | 1085 chrome.tts = {}; |
1086 | 1086 |
1087 if (!chrome.ttsEngine) | 1087 if (!chrome.ttsEngine) |
1088 chrome.ttsEngine = {}; | 1088 chrome.ttsEngine = {}; |
1089 | 1089 |
1090 if (!chrome.experimental.downloads) | 1090 if (!chrome.experimental.downloads) |
1091 chrome.experimental.downloads = {}; | 1091 chrome.experimental.downloads = {}; |
1092 })(); | 1092 })(); |
OLD | NEW |