Index: chrome/browser/devtools/frontend/devtools_discovery_page.html |
diff --git a/chrome/browser/devtools/frontend/devtools_discovery_page.html b/chrome/browser/devtools/frontend/devtools_discovery_page.html |
index d6d9fb01ce793c36d1c340f1adc5139924a9c84b..081d0d386d0984ef1183cc2e79098d9b81f52554 100644 |
--- a/chrome/browser/devtools/frontend/devtools_discovery_page.html |
+++ b/chrome/browser/devtools/frontend/devtools_discovery_page.html |
@@ -85,15 +85,21 @@ function onReady() { |
} |
function overrideFrontendUrl(item) { |
- if (window.location.hash) { |
- var overridden_url = window.location.hash.substr(1); |
- var ws_suffix = item.webSocketDebuggerUrl.replace('ws://', 'ws='); |
- if (overridden_url.indexOf('?') == -1) |
- return overridden_url + '?' + ws_suffix; |
- else |
- return overridden_url + '&' + ws_suffix; |
- } |
- return item.devtoolsFrontendUrl; |
+ if (!window.location.hash) |
+ return item.devtoolsFrontendUrl; |
+ |
+ var hashParams = new URLSearchParams(location.hash.substring(1)); |
+ if (!hashParams.get("custom")) |
+ return item.devtoolsFrontendUrl; |
+ |
+ var searchIndex = item.devtoolsFrontendUrl.indexOf("?"); |
+ if (searchIndex === -1) |
+ return item.devtoolsFrontendUrl; |
+ originalParams = new URLSearchParams(item.devtoolsFrontendUrl.substring(searchIndex + 1)); |
+ if (hashParams.get("experiments")) |
+ originalParams.set("experiments", true); |
+ |
+ return "chrome-devtools://devtools/custom/inspector.html?" + originalParams.toString(); |
} |
function appendItem(item_object) { |
@@ -102,6 +108,7 @@ function appendItem(item_object) { |
item_element = document.createElement('a'); |
item_element.href = overrideFrontendUrl(item_object); |
item_element.title = item_object.title; |
+ item_element.addEventListener('click', maybeHandleClick.bind(null, item_element)); |
} else { |
item_element = document.createElement('div'); |
item_element.className = 'connected'; |
@@ -128,6 +135,15 @@ function appendItem(item_object) { |
document.getElementById('items').appendChild(item_element); |
} |
+ |
+function maybeHandleClick(anchor, event) |
+{ |
+ if (!anchor.href.startsWith("chrome-devtools://")) |
+ return; |
+ fetch("/json/new?" + anchor.href); |
dgozman
2016/10/31 23:11:32
Just do a preselected copy-paste.
lushnikov
2016/11/01 00:19:39
Done. Screenshot: https://goo.gl/Xx4kdr
|
+ event.preventDefault(); |
+ event.stopPropagation(); |
+} |
</script> |
</head> |
<body onload='onLoad()'> |