Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| index 2275b7510298cf99521c8868deb7d08444726a3f..f8c7e9e1d88e554c078c55edeb2efbfc0d0d1519 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| @@ -490,9 +490,29 @@ SDK.ChildTargetManager = class { |
| if (targetInfo.type !== 'node') |
| return; |
| if (Runtime.queryParam('nodeFrontend')) { |
| - this._targetAgent.attachToTarget(targetInfo.targetId); |
| - } else { |
| - this._targetManager._nodeTargetIds.add(targetInfo.targetId); |
| + if (!targetInfo.attached) |
|
caseq
2017/06/29 20:36:17
This is still prone to races. So perhaps try attac
dgozman
2017/06/29 21:31:23
Acknowledged.
|
| + this._targetAgent.attachToTarget(targetInfo.targetId); |
| + return; |
| + } |
| + if (targetInfo.attached) |
| + return; |
| + this._targetManager._nodeTargetIds.add(targetInfo.targetId); |
| + this._targetManager.dispatchEventToListeners(SDK.TargetManager.Events.AvailableNodeTargetsChanged); |
| + } |
| + |
| + /** |
| + * @override |
| + * @param {!Protocol.Target.TargetInfo} targetInfo |
| + */ |
| + targetInfoChanged(targetInfo) { |
| + if (targetInfo.type !== 'node' || Runtime.queryParam('nodeFrontend')) |
| + return; |
| + var availableIds = this._targetManager._nodeTargetIds; |
| + if (!availableIds.has(targetInfo.targetId) && !targetInfo.attached) { |
| + availableIds.add(targetInfo.targetId); |
| + this._targetManager.dispatchEventToListeners(SDK.TargetManager.Events.AvailableNodeTargetsChanged); |
| + } else if (availableIds.has(targetInfo.targetId) && targetInfo.attached) { |
| + availableIds.delete(targetInfo.targetId); |
| this._targetManager.dispatchEventToListeners(SDK.TargetManager.Events.AvailableNodeTargetsChanged); |
| } |
| } |