OLD | NEW |
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 // 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 // TODO(battre): cleanup the usage of packages everywhere, as described here | 8 // TODO(battre): cleanup the usage of packages everywhere, as described here |
9 // http://codereview.chromium.org/10392008/diff/38/chrome/renderer/resources/e
xtensions/schema_generated_bindings.js | 9 // http://codereview.chromium.org/10392008/diff/38/chrome/renderer/resources/e
xtensions/schema_generated_bindings.js |
10 | 10 |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 } | 335 } |
336 if (!isSchemaNodeSupported(eventDef, platform, manifestVersion)) | 336 if (!isSchemaNodeSupported(eventDef, platform, manifestVersion)) |
337 return; | 337 return; |
338 if (!isSchemaAccessAllowed(eventDef)) { | 338 if (!isSchemaAccessAllowed(eventDef)) { |
339 addUnprivilegedAccessGetter(mod, eventDef.name); | 339 addUnprivilegedAccessGetter(mod, eventDef.name); |
340 return; | 340 return; |
341 } | 341 } |
342 | 342 |
343 var eventName = apiDef.namespace + "." + eventDef.name; | 343 var eventName = apiDef.namespace + "." + eventDef.name; |
344 var customEvent = customEvents[apiDef.namespace]; | 344 var customEvent = customEvents[apiDef.namespace]; |
| 345 var options = eventDef.options || {}; |
| 346 |
| 347 if (eventDef.filters && eventDef.filters.length > 0) |
| 348 options.supportsFilters = true; |
| 349 |
345 if (customEvent) { | 350 if (customEvent) { |
346 mod[eventDef.name] = new customEvent( | 351 mod[eventDef.name] = new customEvent( |
347 eventName, eventDef.parameters, eventDef.extraParameters, | 352 eventName, eventDef.parameters, eventDef.extraParameters, |
348 eventDef.options); | 353 options); |
349 } else if (eventDef.anonymous) { | 354 } else if (eventDef.anonymous) { |
350 mod[eventDef.name] = new chrome.Event(); | 355 mod[eventDef.name] = new chrome.Event(); |
351 } else { | 356 } else { |
352 mod[eventDef.name] = new chrome.Event( | 357 mod[eventDef.name] = new chrome.Event( |
353 eventName, eventDef.parameters, eventDef.options); | 358 eventName, eventDef.parameters, options); |
354 } | 359 } |
355 }); | 360 }); |
356 } | 361 } |
357 | 362 |
358 function addProperties(m, parentDef) { | 363 function addProperties(m, parentDef) { |
359 var properties = parentDef.properties; | 364 var properties = parentDef.properties; |
360 if (!properties) | 365 if (!properties) |
361 return; | 366 return; |
362 | 367 |
363 utils.forEach(properties, function(propertyName, propertyDef) { | 368 utils.forEach(properties, function(propertyName, propertyDef) { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 // beginInstallWithManifest2. | 438 // beginInstallWithManifest2. |
434 // See http://crbug.com/100242 | 439 // See http://crbug.com/100242 |
435 if (chrome.webstorePrivate) { | 440 if (chrome.webstorePrivate) { |
436 chrome.webstorePrivate.beginInstallWithManifest2 = | 441 chrome.webstorePrivate.beginInstallWithManifest2 = |
437 chrome.webstorePrivate.beginInstallWithManifest3; | 442 chrome.webstorePrivate.beginInstallWithManifest3; |
438 } | 443 } |
439 | 444 |
440 if (chrome.test) | 445 if (chrome.test) |
441 chrome.test.getApiDefinitions = GetExtensionAPIDefinition; | 446 chrome.test.getApiDefinitions = GetExtensionAPIDefinition; |
442 }); | 447 }); |
OLD | NEW |