Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Unified Diff: chrome/browser/resources/inspect/inspect.js

Issue 9724038: DevTools: convert about:workers into about:inspect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review comments addressed. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/inspect/inspect.html ('k') | chrome/browser/resources/workers/index.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/inspect/inspect.js
diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f05a2dc11e1fdcdcb965a200e1ec3242c34ce3d
--- /dev/null
+++ b/chrome/browser/resources/inspect/inspect.js
@@ -0,0 +1,133 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function requestData() {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', 'targets-data.json', false);
+ xhr.send(null);
+ if (xhr.status === 200)
+ return JSON.parse(xhr.responseText);
+ return [];
+}
+
+function inspect(data) {
+ chrome.send('inspect',
+ [String(data.processId), String(data.routeId)]);
+}
+
+function terminate(data) {
+ chrome.send('terminate',
+ [String(data.processId), String(data.routeId)]);
+}
+
+function removeChildren(element_id) {
+ var element = document.getElementById(element_id);
+ element.textContent = '';
+}
+
+function populateLists() {
+ var data = requestData();
+
+ removeChildren('pages');
+ removeChildren('extensions');
+ removeChildren('workers');
+ removeChildren('others');
+
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].type === 'page')
+ addToPagesList(data[i]);
+ else if (data[i].type === 'worker')
+ addToWorkersList(data[i]);
+ else if (data[i].type === 'extension')
+ addToExtensionsList(data[i]);
+ else
+ addToOthersList(data[i]);
+ }
+}
+
+function addToPagesList(data) {
+ addTargetToList(data, 'pages', ['favicon_url', 'name', 'url']);
+}
+
+function addToExtensionsList(data) {
+ addTargetToList(data, 'extensions', ['name', 'url']);
+}
+
+function addToWorkersList(data) {
+ addTargetToList(data,
+ 'workers',
+ ['name', 'url', 'pid'],
+ true);
+}
+
+function addToOthersList(data) {
+ addTargetToList(data, 'others', ['url']);
+}
+
+function formatValue(data, property) {
+ var value = data[property];
+
+ if (property == 'favicon_url') {
+ var faviconElement = document.createElement('img');
+ if (value)
+ faviconElement.src = value;
+ return faviconElement;
+ }
+
+ var text = value ? String(value) : '';
+ if (text.length > 100)
+ text = text.substring(0, 100) + '\u2026';
+
+ if (property == 'pid')
+ text = 'Pid:' + text;
+
+ var span = document.createElement('span');
+ span.textContent = ' ' + text + ' ';
+ span.className = property;
+ return span;
+}
+
+function addTargetToList(data, listId, properties, canTerminate) {
+ var list = document.getElementById(listId);
+ var row = document.createElement('div');
+ row.className = 'row';
+ for (var j = 0; j < properties.length; j++)
+ row.appendChild(formatValue(data, properties[j]));
+
+ row.appendChild(createInspectElement(data));
+ if (canTerminate)
+ row.appendChild(createTerminateElement(data));
+
+ row.processId = data.processId;
+ row.routeId = data.routeId;
+
+ list.appendChild(row);
+}
+
+function createInspectElement(data) {
+ var link = document.createElement('a');
+ link.setAttribute('href', '#');
+ link.textContent = ' inspect ';
+ link.addEventListener(
+ 'click',
+ inspect.bind(this, data),
+ true);
+ return link;
+}
+
+function createTerminateElement(data) {
+ var link = document.createElement('a');
+ if (data.attached)
+ link.disabled = true;
+
+ link.setAttribute('href', '#');
+ link.textContent = ' terminate ';
+ link.addEventListener(
+ 'click',
+ terminate.bind(this, data),
+ true);
+ return link;
+}
+
+document.addEventListener('DOMContentLoaded', populateLists);
« no previous file with comments | « chrome/browser/resources/inspect/inspect.html ('k') | chrome/browser/resources/workers/index.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698