shell_devtools_discovery_page.html revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
19682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<html>
29682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<head>
39682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<title>Cast shell remote debugging</title>
49682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<style>
59682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall</style>
69682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
79682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<script>
89682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallfunction onLoad() {
99682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  var tabs_list_request = new XMLHttpRequest();
109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  tabs_list_request.open("GET", "/json/list?t=" + new Date().getTime(), true);
119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  tabs_list_request.onreadystatechange = onReady;
129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  tabs_list_request.send();
139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall}
149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallfunction onReady() {
169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  if(this.readyState == 4 && this.status == 200) {
179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    if(this.response != null) {
189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall      var responseJSON = JSON.parse(this.response);
199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall      for (var i = 0; i < responseJSON.length; ++i) {
209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        appendItem(responseJSON[i]);
219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall      }
229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    }
239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  }
249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall}
259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallfunction appendItem(item_object) {
279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  var frontend_ref;
289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  if (item_object.devtoolsFrontendUrl) {
299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    frontend_ref = document.createElement("a");
309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    frontend_ref.href = item_object.devtoolsFrontendUrl;
319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    frontend_ref.title = item_object.title;
329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  } else {
339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    frontend_ref = document.createElement("div");
349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    frontend_ref.title = "The tab already has active debugging session";
359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  }
369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  var text = document.createElement("div");
389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  if (item_object.title)
399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    text.innerText = item_object.title;
409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  else
419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    text.innerText = "(untitled tab)";
429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  text.style.cssText = "background-image:url(" + item_object.faviconUrl + ")";
439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  frontend_ref.appendChild(text);
449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  var item = document.createElement("p");
469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  item.appendChild(frontend_ref);
479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  document.getElementById("items").appendChild(item);
499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall}
509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall</script>
519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall</head>
529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall<body onload='onLoad()'>
539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  <div id='caption'>Inspectable WebContents</div>
549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall  <div id='items'></div>
559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall</body>
569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall</html>
579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall