Index: third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js |
index 80095851c8de7638e651bcc4674cf86009698e85..2c425989014a98ad8bdac4e3fdb29cc485090a8e 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js |
@@ -14,7 +14,14 @@ |
this._list = new UI.ListControl(this, UI.ListMode.NonViewport); |
this.contentElement.appendChild(this._list.element); |
+ this._availableNodeTargetsElement = this.contentElement.createChild('div', 'hidden available-node-targets'); |
+ |
UI.context.addFlavorChangeListener(SDK.Target, this._targetFlavorChanged, this); |
+ |
+ SDK.targetManager.addEventListener( |
+ SDK.TargetManager.Events.AvailableNodeTargetsChanged, this._availableNodeTargetsChanged, this); |
+ this._availableNodeTargetsChanged(); |
+ |
SDK.targetManager.observeModels(SDK.DebuggerModel, this); |
} |
@@ -23,7 +30,27 @@ |
*/ |
static shouldBeShown() { |
var minJSTargets = Runtime.queryParam('nodeFrontend') ? 1 : 2; |
- return SDK.targetManager.models(SDK.DebuggerModel).length >= minJSTargets; |
+ if (SDK.targetManager.models(SDK.DebuggerModel).length >= minJSTargets) |
+ return true; |
+ return !!SDK.targetManager.availableNodeTargetsCount(); |
+ } |
+ |
+ _availableNodeTargetsChanged() { |
+ var count = SDK.targetManager.availableNodeTargetsCount(); |
+ if (!count) { |
+ this._availableNodeTargetsElement.classList.add('hidden'); |
+ return; |
+ } |
+ this._availableNodeTargetsElement.removeChildren(); |
+ this._availableNodeTargetsElement.createTextChild( |
+ count === 1 ? Common.UIString('Node instance available.') : |
+ Common.UIString('%d Node instances available.', count)); |
+ var link = this._availableNodeTargetsElement.createChild('span', 'link'); |
+ link.textContent = Common.UIString('Connect'); |
+ link.addEventListener('click', () => { |
+ InspectorFrontendHost.openNodeFrontend(); |
+ }, false); |
+ this._availableNodeTargetsElement.classList.remove('hidden'); |
} |
/** |