Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 * @implements {SDK.TargetManager.Observer} | 5 * @implements {SDK.TargetManager.Observer} |
| 6 * @unrestricted | 6 * @unrestricted |
| 7 */ | 7 */ |
| 8 Bindings.BlackboxManager = class { | 8 Bindings.BlackboxManager = class { |
| 9 /** | 9 /** |
| 10 * @param {!Bindings.DebuggerWorkspaceBinding} debuggerWorkspaceBinding | 10 * @param {!Bindings.DebuggerWorkspaceBinding} debuggerWorkspaceBinding |
| 11 */ | 11 */ |
| 12 constructor(debuggerWorkspaceBinding) { | 12 constructor(debuggerWorkspaceBinding) { |
| 13 this._debuggerWorkspaceBinding = debuggerWorkspaceBinding; | 13 this._debuggerWorkspaceBinding = debuggerWorkspaceBinding; |
| 14 | 14 |
| 15 SDK.targetManager.addModelListener( | 15 SDK.targetManager.addModelListener( |
| 16 SDK.DebuggerModel, SDK.DebuggerModel.Events.ParsedScriptSource, this._pa rsedScriptSource, this); | 16 SDK.DebuggerModel, SDK.DebuggerModel.Events.ParsedScriptSource, this._pa rsedScriptSource, this); |
| 17 SDK.targetManager.addModelListener( | 17 SDK.targetManager.addModelListener( |
| 18 SDK.DebuggerModel, SDK.DebuggerModel.Events.GlobalObjectCleared, this._g lobalObjectCleared, this); | 18 SDK.DebuggerModel, SDK.DebuggerModel.Events.GlobalObjectCleared, this._g lobalObjectCleared, this); |
| 19 Common.moduleSetting('skipStackFramesPattern').addChangeListener(this._patte rnChanged.bind(this)); | 19 Common.moduleSetting('skipStackFramesPattern').addChangeListener(this._patte rnChanged.bind(this)); |
| 20 Common.moduleSetting('skipContentScripts').addChangeListener(this._patternCh anged.bind(this)); | 20 Common.moduleSetting('skipContentScripts').addChangeListener(this._patternCh anged.bind(this)); |
| 21 | 21 |
| 22 /** @type {!Array<function()>} */ | |
|
kozy
2017/01/18 23:42:51
Set?
dgozman
2017/01/20 02:04:58
Done.
| |
| 23 this._listeners = []; | |
| 24 | |
| 22 /** @type {!Map<!SDK.DebuggerModel, !Map<string, !Array<!Protocol.Debugger.S criptPosition>>>} */ | 25 /** @type {!Map<!SDK.DebuggerModel, !Map<string, !Array<!Protocol.Debugger.S criptPosition>>>} */ |
| 23 this._debuggerModelData = new Map(); | 26 this._debuggerModelData = new Map(); |
| 24 /** @type {!Map<string, boolean>} */ | 27 /** @type {!Map<string, boolean>} */ |
| 25 this._isBlackboxedURLCache = new Map(); | 28 this._isBlackboxedURLCache = new Map(); |
| 26 | 29 |
| 27 SDK.targetManager.observeTargets(this); | 30 SDK.targetManager.observeTargets(this); |
| 28 } | 31 } |
| 29 | 32 |
| 30 /** | 33 /** |
| 31 * @param {function(!Common.Event)} listener | 34 * @param {function()} listener |
| 32 * @param {!Object=} thisObject | |
| 33 */ | 35 */ |
| 34 addChangeListener(listener, thisObject) { | 36 addChangeListener(listener) { |
| 35 Common.moduleSetting('skipStackFramesPattern').addChangeListener(listener, t hisObject); | 37 this._listeners.push(listener); |
| 36 } | 38 } |
| 37 | 39 |
| 38 /** | 40 /** |
| 39 * @param {function(!Common.Event)} listener | 41 * @param {function()} listener |
| 40 * @param {!Object=} thisObject | |
| 41 */ | 42 */ |
| 42 removeChangeListener(listener, thisObject) { | 43 removeChangeListener(listener) { |
| 43 Common.moduleSetting('skipStackFramesPattern').removeChangeListener(listener , thisObject); | 44 this._listeners.remove(listener); |
| 44 } | 45 } |
| 45 | 46 |
| 46 /** | 47 /** |
| 47 * @override | 48 * @override |
| 48 * @param {!SDK.Target} target | 49 * @param {!SDK.Target} target |
| 49 */ | 50 */ |
| 50 targetAdded(target) { | 51 targetAdded(target) { |
| 51 var debuggerModel = SDK.DebuggerModel.fromTarget(target); | 52 var debuggerModel = SDK.DebuggerModel.fromTarget(target); |
| 52 if (debuggerModel) | 53 if (debuggerModel) |
| 53 this._setBlackboxPatterns(debuggerModel); | 54 this._setBlackboxPatterns(debuggerModel); |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 278 | 279 |
| 279 /** @type {!Array<!Promise>} */ | 280 /** @type {!Array<!Promise>} */ |
| 280 var promises = []; | 281 var promises = []; |
| 281 for (var debuggerModel of SDK.DebuggerModel.instances()) { | 282 for (var debuggerModel of SDK.DebuggerModel.instances()) { |
| 282 promises.push(this._setBlackboxPatterns(debuggerModel)); | 283 promises.push(this._setBlackboxPatterns(debuggerModel)); |
| 283 for (var scriptId in debuggerModel.scripts) { | 284 for (var scriptId in debuggerModel.scripts) { |
| 284 var script = debuggerModel.scripts[scriptId]; | 285 var script = debuggerModel.scripts[scriptId]; |
| 285 promises.push(this._addScript(script).then(loadSourceMap.bind(this, scri pt))); | 286 promises.push(this._addScript(script).then(loadSourceMap.bind(this, scri pt))); |
| 286 } | 287 } |
| 287 } | 288 } |
| 288 Promise.all(promises).then(this._patternChangeFinishedForTests.bind(this)); | 289 Promise.all(promises).then(() => { |
| 290 var listeners = this._listeners.slice(); | |
| 291 for (var listener of listeners) | |
| 292 listener(); | |
| 293 this._patternChangeFinishedForTests(); | |
| 294 }); | |
| 289 | 295 |
| 290 /** | 296 /** |
| 291 * @param {!SDK.Script} script | 297 * @param {!SDK.Script} script |
| 292 * @return {!Promise<undefined>} | 298 * @return {!Promise<undefined>} |
| 293 * @this {Bindings.BlackboxManager} | 299 * @this {Bindings.BlackboxManager} |
| 294 */ | 300 */ |
| 295 function loadSourceMap(script) { | 301 function loadSourceMap(script) { |
| 296 return this.sourceMapLoaded(script, this._debuggerWorkspaceBinding.sourceM apForScript(script)); | 302 return this.sourceMapLoaded(script, this._debuggerWorkspaceBinding.sourceM apForScript(script)); |
| 297 } | 303 } |
| 298 } | 304 } |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 426 if (scheme === 'chrome-extension') | 432 if (scheme === 'chrome-extension') |
| 427 prefix += parsedURL.host + '\\b'; | 433 prefix += parsedURL.host + '\\b'; |
| 428 prefix += '.*'; | 434 prefix += '.*'; |
| 429 } | 435 } |
| 430 return prefix + name.escapeForRegExp() + (url.endsWith(name) ? '$' : '\\b'); | 436 return prefix + name.escapeForRegExp() + (url.endsWith(name) ? '$' : '\\b'); |
| 431 } | 437 } |
| 432 }; | 438 }; |
| 433 | 439 |
| 434 /** @type {!Bindings.BlackboxManager} */ | 440 /** @type {!Bindings.BlackboxManager} */ |
| 435 Bindings.blackboxManager; | 441 Bindings.blackboxManager; |
| OLD | NEW |