OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 function requestData() { | |
6 var xhr = new XMLHttpRequest(); | |
7 xhr.open('GET', 'workers_data.json', false); | |
8 xhr.send(null); | |
9 if (xhr.status === 200) | |
10 return JSON.parse(xhr.responseText); | |
11 return []; | |
12 } | |
13 | |
14 function addColumn(row, value) { | |
15 var column = document.createElement("td"); | |
16 column.textContent = value; | |
17 row.appendChild(column); | |
18 } | |
19 | |
20 function openDevTools(workerProcessHostId, workerRouteId) { | |
21 chrome.send("openDevTools", | |
22 [String(workerProcessHostId), String(workerRouteId)]); | |
23 } | |
24 | |
25 function reloadWorker(workerProcessHostId, workerRouteId) { | |
26 chrome.send("terminateWorker", | |
27 [String(workerProcessHostId), String(workerRouteId)]); | |
28 } | |
29 | |
30 function populateWorkerList() { | |
31 var data = requestData(); | |
32 var list = document.getElementById("workers-table"); | |
33 for (var i = 0; i < data.length; i++) | |
34 addWorkerInfoToList(data[i], list); | |
35 } | |
36 | |
37 function addWorkerInfoToList(workerData, list) { | |
38 var row = document.createElement("tr"); | |
39 var workerProperties = ["workerRouteId", "url", "name", "pid"]; | |
40 for (var j = 0; j < workerProperties.length; j++) | |
41 addColumn(row, workerData[workerProperties[j]]); | |
42 | |
43 var column = document.createElement("td"); | |
44 var link = document.createElement("a"); | |
45 link.setAttribute("href", "#"); | |
46 link.textContent = "inspect"; | |
47 link.addEventListener( | |
48 "click", | |
49 openDevTools.bind(this, | |
50 workerData.workerProcessHostId, | |
51 workerData.workerRouteId), | |
52 true); | |
53 column.appendChild(link); | |
54 row.appendChild(column); | |
55 | |
56 var link = document.createElement("a"); | |
57 link.setAttribute("href", "#"); | |
58 link.textContent = "terminate"; | |
59 link.addEventListener( | |
60 "click", | |
61 reloadWorker.bind(this, | |
62 workerData.workerProcessHostId, | |
63 workerData.workerRouteId), | |
64 true); | |
65 column.appendChild(link); | |
66 row.appendChild(column); | |
67 | |
68 row.workerProcessHostId = workerData.workerProcessHostId; | |
69 row.workerRouteId = workerData.workerRouteId; | |
70 | |
71 list.appendChild(row); | |
72 } | |
73 | |
74 function workerCreated(workerData) { | |
75 var list = document.getElementById("workers-table"); | |
76 addWorkerInfoToList(workerData, list); | |
77 } | |
78 | |
79 function workerDestroyed(workerData) { | |
80 var list = document.getElementById("workers-table"); | |
81 for (var row = list.firstChild; row; row = row.nextSibling) { | |
82 if (row.workerProcessHostId === workerData.workerProcessHostId && | |
83 row.workerRouteId === workerData.workerRouteId) { | |
84 list.removeChild(row); | |
85 return; | |
86 } | |
87 } | |
88 } | |
89 | |
90 document.addEventListener('DOMContentLoaded', populateWorkerList); | |
OLD | NEW |