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

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

Issue 12440030: Use utils.forEach everywhere rather than Array.prototype.forEach to guard (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: make foreach of an array give numbers 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 var DCHECK = requireNative('logging').DCHECK; 5 var DCHECK = requireNative('logging').DCHECK;
6 // TODO(cduvall/kalman): json_schema shouldn't put things on chromeHidden. 6 // TODO(cduvall/kalman): json_schema shouldn't put things on chromeHidden.
7 require('json_schema'); 7 require('json_schema');
8 var eventBindingsNatives = requireNative('event_bindings'); 8 var eventBindingsNatives = requireNative('event_bindings');
9 var AttachEvent = eventBindingsNatives.AttachEvent; 9 var AttachEvent = eventBindingsNatives.AttachEvent;
10 var DetachEvent = eventBindingsNatives.DetachEvent; 10 var DetachEvent = eventBindingsNatives.DetachEvent;
11 var AttachFilteredEvent = eventBindingsNatives.AttachFilteredEvent; 11 var AttachFilteredEvent = eventBindingsNatives.AttachFilteredEvent;
12 var DetachFilteredEvent = eventBindingsNatives.DetachFilteredEvent; 12 var DetachFilteredEvent = eventBindingsNatives.DetachFilteredEvent;
13 var MatchAgainstEventFilter = eventBindingsNatives.MatchAgainstEventFilter; 13 var MatchAgainstEventFilter = eventBindingsNatives.MatchAgainstEventFilter;
14 var forEach = require('utils').forEach;
14 var sendRequest = require('sendRequest').sendRequest; 15 var sendRequest = require('sendRequest').sendRequest;
15 var utils = require('utils'); 16 var utils = require('utils');
16 var validate = require('schemaUtils').validate; 17 var validate = require('schemaUtils').validate;
17 18
18 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); 19 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
19 var chrome = requireNative('chrome').GetChrome(); 20 var chrome = requireNative('chrome').GetChrome();
20 var schemaRegistry = requireNative('schema_registry'); 21 var schemaRegistry = requireNative('schema_registry');
21 22
22 // Schemas for the rule-style functions on the events API that 23 // Schemas for the rule-style functions on the events API that
23 // only need to be generated occasionally, so populate them lazily. 24 // only need to be generated occasionally, so populate them lazily.
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 // Validate conditions and actions against specific schemas of this 392 // Validate conditions and actions against specific schemas of this
392 // event object type. 393 // event object type.
393 // |rules| is an array of JSON objects that follow the Rule type of the 394 // |rules| is an array of JSON objects that follow the Rule type of the
394 // declarative extension APIs. |conditions| is an array of JSON type 395 // declarative extension APIs. |conditions| is an array of JSON type
395 // identifiers that are allowed to occur in the conditions attribute of each 396 // identifiers that are allowed to occur in the conditions attribute of each
396 // rule. Likewise, |actions| is an array of JSON type identifiers that are 397 // rule. Likewise, |actions| is an array of JSON type identifiers that are
397 // allowed to occur in the actions attribute of each rule. 398 // allowed to occur in the actions attribute of each rule.
398 function validateRules(rules, conditions, actions) { 399 function validateRules(rules, conditions, actions) {
399 var conditionsSchema = buildArrayOfChoicesSchema(conditions); 400 var conditionsSchema = buildArrayOfChoicesSchema(conditions);
400 var actionsSchema = buildArrayOfChoicesSchema(actions); 401 var actionsSchema = buildArrayOfChoicesSchema(actions);
401 rules.forEach(function(rule) { 402 forEach(rules, function(i, rule) {
402 validate([rule.conditions], [conditionsSchema]); 403 validate([rule.conditions], [conditionsSchema]);
403 validate([rule.actions], [actionsSchema]); 404 validate([rule.actions], [actionsSchema]);
404 }) 405 })
405 }; 406 };
406 407
407 if (!this.eventOptions_.conditions || !this.eventOptions_.actions) { 408 if (!this.eventOptions_.conditions || !this.eventOptions_.actions) {
408 throw new Error('Event ' + this.eventName_ + ' misses conditions or ' + 409 throw new Error('Event ' + this.eventName_ + ' misses conditions or ' +
409 'actions in the API specification.'); 410 'actions in the API specification.');
410 } 411 }
411 412
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 if (event) 468 if (event)
468 event.detach_(); 469 event.detach_();
469 } 470 }
470 }; 471 };
471 472
472 chromeHidden.dispatchError = function(msg) { 473 chromeHidden.dispatchError = function(msg) {
473 console.error(msg); 474 console.error(msg);
474 }; 475 };
475 476
476 chrome.Event = Event; 477 chrome.Event = Event;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698