Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 53 this._cachedTypeClasses = {}; | 53 this._cachedTypeClasses = {}; |
| 54 | 54 |
| 55 /** | 55 /** |
| 56 * @type {!Object.<string, !WebInspector.ModuleManager.ModuleDescriptor>} | 56 * @type {!Object.<string, !WebInspector.ModuleManager.ModuleDescriptor>} |
| 57 */ | 57 */ |
| 58 this._descriptorsMap = {}; | 58 this._descriptorsMap = {}; |
| 59 for (var i = 0; i < descriptors.length; ++i) | 59 for (var i = 0; i < descriptors.length; ++i) |
| 60 this._descriptorsMap[descriptors[i]["name"]] = descriptors[i]; | 60 this._descriptorsMap[descriptors[i]["name"]] = descriptors[i]; |
| 61 } | 61 } |
| 62 | 62 |
| 63 /** | |
| 64 * @param {!WebInspector.ModuleManager.Extension} extension | |
| 65 * @param {?function(!Function):boolean} predicate | |
| 66 */ | |
| 67 WebInspector.ModuleManager._checkExtensionApplicability = function(extension, pr edicate) | |
| 68 { | |
| 69 if (!predicate) | |
| 70 return false; | |
| 71 var contextTypes = /** @type {!Array.<string>|undefined} */ (extension.descr iptor().contextTypes); | |
| 72 if (!contextTypes) | |
| 73 return true; | |
| 74 var conjunction = !!extension.descriptor()["contextTypeConjunction"]; | |
|
pfeldman
2014/04/17 10:40:25
I don't see it used. Lets not add it for now.
apavlov
2014/04/17 12:42:22
Done.
| |
| 75 for (var i = 0; i < contextTypes.length; ++i) { | |
| 76 var contextType = /** @type {!Function} */ (window.eval(contextTypes[i]) ); | |
| 77 var isMatching = predicate(contextType); | |
| 78 if (conjunction && !isMatching) | |
| 79 return false; | |
| 80 if (!conjunction && isMatching) | |
| 81 return true; | |
| 82 } | |
| 83 return conjunction; | |
| 84 } | |
| 85 | |
| 86 /** | |
| 87 * @param {!WebInspector.ModuleManager.Extension} extension | |
| 88 * @param {?Object} context | |
| 89 * @return {boolean} | |
| 90 */ | |
| 91 WebInspector.ModuleManager.isExtensionApplicableToContext = function(extension, context) | |
| 92 { | |
| 93 if (!context) | |
| 94 return true; | |
| 95 return WebInspector.ModuleManager._checkExtensionApplicability(extension, is InstanceOf); | |
| 96 | |
| 97 /** | |
| 98 * @param {!Function} targetType | |
| 99 * @return {boolean} | |
| 100 */ | |
| 101 function isInstanceOf(targetType) | |
| 102 { | |
| 103 return context instanceof targetType; | |
| 104 } | |
| 105 } | |
| 106 | |
| 107 /** | |
| 108 * @param {!WebInspector.ModuleManager.Extension} extension | |
| 109 * @param {!Set.<!Function>=} currentContextTypes | |
| 110 * @return {boolean} | |
| 111 */ | |
| 112 WebInspector.ModuleManager.isExtensionApplicableToContextTypes = function(extens ion, currentContextTypes) | |
| 113 { | |
| 114 if (!extension.descriptor().contextTypes) | |
| 115 return true; | |
| 116 | |
| 117 return WebInspector.ModuleManager._checkExtensionApplicability(extension, cu rrentContextTypes ? isContextTypeKnown : null); | |
| 118 | |
| 119 /** | |
| 120 * @param {!Function} targetType | |
| 121 * @return {boolean} | |
| 122 */ | |
| 123 function isContextTypeKnown(targetType) | |
| 124 { | |
| 125 return currentContextTypes.contains(targetType); | |
| 126 } | |
| 127 } | |
| 128 | |
| 63 WebInspector.ModuleManager.prototype = { | 129 WebInspector.ModuleManager.prototype = { |
| 64 /** | 130 /** |
| 65 * @param {!Array.<string>} configuration | 131 * @param {!Array.<string>} configuration |
| 66 */ | 132 */ |
| 67 registerModules: function(configuration) | 133 registerModules: function(configuration) |
| 68 { | 134 { |
| 69 for (var i = 0; i < configuration.length; ++i) | 135 for (var i = 0; i < configuration.length; ++i) |
| 70 this.registerModule(configuration[i]); | 136 this.registerModule(configuration[i]); |
| 71 }, | 137 }, |
| 72 | 138 |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 331 return null; | 397 return null; |
| 332 return this._module._manager.resolve(this._type); | 398 return this._module._manager.resolve(this._type); |
| 333 }, | 399 }, |
| 334 | 400 |
| 335 /** | 401 /** |
| 336 * @param {?Object} context | 402 * @param {?Object} context |
| 337 * @return {boolean} | 403 * @return {boolean} |
| 338 */ | 404 */ |
| 339 isApplicable: function(context) | 405 isApplicable: function(context) |
| 340 { | 406 { |
| 341 var contextTypes = /** @type {!Array.<string>|undefined} */ (this._descr iptor.contextTypes); | 407 return WebInspector.ModuleManager.isExtensionApplicableToContext(this, c ontext); |
| 342 if (!contextTypes) | |
| 343 return true; | |
| 344 for (var i = 0; i < contextTypes.length; ++i) { | |
| 345 var contextType = /** @type {!Function} */ (window.eval(contextTypes [i])); | |
| 346 if (context instanceof contextType) | |
| 347 return true; | |
| 348 } | |
| 349 return false; | |
| 350 }, | 408 }, |
| 351 | 409 |
| 352 /** | 410 /** |
| 353 * @return {?Object} | 411 * @return {?Object} |
| 354 */ | 412 */ |
| 355 instance: function() | 413 instance: function() |
| 356 { | 414 { |
| 357 if (!this._className) | 415 if (!this._className) |
| 358 return null; | 416 return null; |
| 359 | 417 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 405 revealer.reveal(revealable, lineNumber); | 463 revealer.reveal(revealable, lineNumber); |
| 406 } | 464 } |
| 407 | 465 |
| 408 WebInspector.Revealer.prototype = { | 466 WebInspector.Revealer.prototype = { |
| 409 /** | 467 /** |
| 410 * @param {!Object} object | 468 * @param {!Object} object |
| 411 */ | 469 */ |
| 412 reveal: function(object) {} | 470 reveal: function(object) {} |
| 413 } | 471 } |
| 414 | 472 |
| 415 /** | |
| 416 * @interface | |
| 417 */ | |
| 418 WebInspector.ActionDelegate = function() | |
| 419 { | |
| 420 } | |
| 421 | |
| 422 WebInspector.ActionDelegate.prototype = { | |
| 423 /** | |
| 424 * @param {!Event} event | |
| 425 * @return {boolean} | |
| 426 */ | |
| 427 handleAction: function(event) {} | |
| 428 } | |
| 429 | |
| 430 WebInspector.moduleManager = new WebInspector.ModuleManager(allDescriptors); | 473 WebInspector.moduleManager = new WebInspector.ModuleManager(allDescriptors); |
| OLD | NEW |