| 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 for (var i = 0; i < contextTypes.length; ++i) { |
| 75 var contextType = /** @type {!Function} */ (window.eval(contextTypes[i])
); |
| 76 var isMatching = predicate(contextType); |
| 77 if (isMatching) |
| 78 return true; |
| 79 } |
| 80 return false; |
| 81 } |
| 82 |
| 83 /** |
| 84 * @param {!WebInspector.ModuleManager.Extension} extension |
| 85 * @param {?Object} context |
| 86 * @return {boolean} |
| 87 */ |
| 88 WebInspector.ModuleManager.isExtensionApplicableToContext = function(extension,
context) |
| 89 { |
| 90 if (!context) |
| 91 return true; |
| 92 return WebInspector.ModuleManager._checkExtensionApplicability(extension, is
InstanceOf); |
| 93 |
| 94 /** |
| 95 * @param {!Function} targetType |
| 96 * @return {boolean} |
| 97 */ |
| 98 function isInstanceOf(targetType) |
| 99 { |
| 100 return context instanceof targetType; |
| 101 } |
| 102 } |
| 103 |
| 104 /** |
| 105 * @param {!WebInspector.ModuleManager.Extension} extension |
| 106 * @param {!Set.<!Function>=} currentContextTypes |
| 107 * @return {boolean} |
| 108 */ |
| 109 WebInspector.ModuleManager.isExtensionApplicableToContextTypes = function(extens
ion, currentContextTypes) |
| 110 { |
| 111 if (!extension.descriptor().contextTypes) |
| 112 return true; |
| 113 |
| 114 return WebInspector.ModuleManager._checkExtensionApplicability(extension, cu
rrentContextTypes ? isContextTypeKnown : null); |
| 115 |
| 116 /** |
| 117 * @param {!Function} targetType |
| 118 * @return {boolean} |
| 119 */ |
| 120 function isContextTypeKnown(targetType) |
| 121 { |
| 122 return currentContextTypes.contains(targetType); |
| 123 } |
| 124 } |
| 125 |
| 63 WebInspector.ModuleManager.prototype = { | 126 WebInspector.ModuleManager.prototype = { |
| 64 /** | 127 /** |
| 65 * @param {!Array.<string>} configuration | 128 * @param {!Array.<string>} configuration |
| 66 */ | 129 */ |
| 67 registerModules: function(configuration) | 130 registerModules: function(configuration) |
| 68 { | 131 { |
| 69 for (var i = 0; i < configuration.length; ++i) | 132 for (var i = 0; i < configuration.length; ++i) |
| 70 this.registerModule(configuration[i]); | 133 this.registerModule(configuration[i]); |
| 71 }, | 134 }, |
| 72 | 135 |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 return null; | 394 return null; |
| 332 return this._module._manager.resolve(this._type); | 395 return this._module._manager.resolve(this._type); |
| 333 }, | 396 }, |
| 334 | 397 |
| 335 /** | 398 /** |
| 336 * @param {?Object} context | 399 * @param {?Object} context |
| 337 * @return {boolean} | 400 * @return {boolean} |
| 338 */ | 401 */ |
| 339 isApplicable: function(context) | 402 isApplicable: function(context) |
| 340 { | 403 { |
| 341 var contextTypes = /** @type {!Array.<string>|undefined} */ (this._descr
iptor.contextTypes); | 404 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 }, | 405 }, |
| 351 | 406 |
| 352 /** | 407 /** |
| 353 * @return {?Object} | 408 * @return {?Object} |
| 354 */ | 409 */ |
| 355 instance: function() | 410 instance: function() |
| 356 { | 411 { |
| 357 if (!this._className) | 412 if (!this._className) |
| 358 return null; | 413 return null; |
| 359 | 414 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 revealer.reveal(revealable, lineNumber); | 460 revealer.reveal(revealable, lineNumber); |
| 406 } | 461 } |
| 407 | 462 |
| 408 WebInspector.Revealer.prototype = { | 463 WebInspector.Revealer.prototype = { |
| 409 /** | 464 /** |
| 410 * @param {!Object} object | 465 * @param {!Object} object |
| 411 */ | 466 */ |
| 412 reveal: function(object) {} | 467 reveal: function(object) {} |
| 413 } | 468 } |
| 414 | 469 |
| 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); | 470 WebInspector.moduleManager = new WebInspector.ModuleManager(allDescriptors); |
| OLD | NEW |