blob: cf93966c72eec8a1355cdc82b2dcaeb8e2e2ab86 [file] [log] [blame]
<html>
<head>
<title>Inspectable pages</title>
<style>
body {
color: #222;
font-family: Helvetica, Arial, sans-serif;
margin: 0;
text-shadow: rgba(255, 255, 255, 0.496094) 0px 1px 0px;
}
#caption {
font-size: 16px;
margin-top: 15px;
margin-bottom: 10px;
margin-left: 20px;
height: 20px;
text-align: left;
}
#items {
display: flex;
flex-direction: column;
margin: 10px;
}
.item {
color: #222;
display: flex;
flex-direction: row;
text-decoration: none;
padding: 10px;
-webkit-transition-property: background-color, border-color;
-webkit-transition: background-color 0.15s, 0.15s;
-webkit-transition-delay: 0ms, 0ms;
}
.thumbnail {
background-attachment: scroll;
background-origin: padding-box;
background-repeat: no-repeat;
border: 1px solid rgba(184, 184, 184, 1);
flex: none;
height: 132px;
width: 212px;
}
.item:not(.connected):hover {
background-color: rgba(242, 242, 242, 1);
border-color: rgba(110, 116, 128, 1);
color: black;
}
.item.connected .thumbnail {
opacity: 0.5;
}
.item.connected:hover {
border-color: rgba(184, 184, 184, 1);
color: rgb(110, 116, 128);
}
.description {
display: flex;
flex-direction: column;
}
.title, .subtitle {
font-size: 13px;
margin: 4px 0px 0px 6px;
overflow: hidden;
padding-left: 20px;
}
.title {
background-repeat: no-repeat;
background-size: 16px;
font-size: 15px;
}
</style>
<script>
function onLoad() {
var tabsListRequest = new XMLHttpRequest();
tabsListRequest.open('GET', '/json/list', true);
tabsListRequest.onreadystatechange = onReady;
tabsListRequest.send();
}
function onReady() {
if(this.readyState == 4 && this.status == 200) {
if(this.response != null)
var responseJSON = JSON.parse(this.response);
for (var i = 0; i < responseJSON.length; ++i)
appendItem(responseJSON[i]);
}
}
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;
}
function appendItem(item_object) {
var item_element;
if (item_object.devtoolsFrontendUrl) {
item_element = document.createElement('a');
item_element.href = overrideFrontendUrl(item_object);
item_element.title = item_object.title;
} else {
item_element = document.createElement('div');
item_element.className = 'connected';
item_element.title = 'The tab already has an active debug session';
}
item_element.classList.add('item');
var thumbnail = document.createElement('div');
thumbnail.className = 'thumbnail';
thumbnail.style.cssText = 'background-image:url(' +
item_object.thumbnailUrl + ')';
item_element.appendChild(thumbnail);
var description = document.createElement('div');
description.className = 'description';
var title = document.createElement('div');
title.className = 'title';
title.textContent = item_object.description || item_object.title;
title.style.cssText = 'background-image:url(' +
item_object.faviconUrl + ')';
description.appendChild(title);
var subtitle = document.createElement('div');
subtitle.className = 'subtitle';
subtitle.textContent = (item_object.url || '').substring(0, 300);
description.appendChild(subtitle);
item_element.appendChild(description);
document.getElementById('items').appendChild(item_element);
}
</script>
</head>
<body onload='onLoad()'>
<div id='caption'>Inspectable pages</div>
<hr>
<div id='items'>
</div>
</body>
</html>