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

Side by Side Diff: chrome/browser/resources/inspect/inspect.js

Issue 568403002: Unify shared and service workers in chrome://inspect, remove service workers iframe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed review comments Created 6 years, 3 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/resources/inspect/inspect.html ('k') | chrome/browser/ui/webui/inspect_ui.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var MIN_VERSION_TAB_CLOSE = 25; 5 var MIN_VERSION_TAB_CLOSE = 25;
6 var MIN_VERSION_TARGET_ID = 26; 6 var MIN_VERSION_TARGET_ID = 26;
7 var MIN_VERSION_NEW_TAB = 29; 7 var MIN_VERSION_NEW_TAB = 29;
8 var MIN_VERSION_TAB_ACTIVATE = 30; 8 var MIN_VERSION_TAB_ACTIVATE = 30;
9 9
10 var queryParamsObject = {}; 10 var queryParamsObject = {};
(...skipping 11 matching lines...) Expand all
22 })(); 22 })();
23 23
24 function sendCommand(command, args) { 24 function sendCommand(command, args) {
25 chrome.send(command, Array.prototype.slice.call(arguments, 1)); 25 chrome.send(command, Array.prototype.slice.call(arguments, 1));
26 } 26 }
27 27
28 function sendTargetCommand(command, target) { 28 function sendTargetCommand(command, target) {
29 sendCommand(command, target.source, target.id); 29 sendCommand(command, target.source, target.id);
30 } 30 }
31 31
32 function sendServiceWorkerCommand(action, worker) {
33 $('serviceworker-internals').contentWindow.postMessage({
34 'action': action,
35 'worker': worker
36 },'chrome://serviceworker-internals');
37 }
38
39 function removeChildren(element_id) { 32 function removeChildren(element_id) {
40 var element = $(element_id); 33 var element = $(element_id);
41 element.textContent = ''; 34 element.textContent = '';
42 } 35 }
43 36
44 function onload() { 37 function onload() {
45 var tabContents = document.querySelectorAll('#content > div'); 38 var tabContents = document.querySelectorAll('#content > div');
46 for (var i = 0; i != tabContents.length; i++) { 39 for (var i = 0; i != tabContents.length; i++) {
47 var tabContent = tabContents[i]; 40 var tabContent = tabContents[i];
48 var tabName = tabContent.querySelector('.content-header').textContent; 41 var tabName = tabContent.querySelector('.content-header').textContent;
49 42
50 var tabHeader = document.createElement('div'); 43 var tabHeader = document.createElement('div');
51 tabHeader.className = 'tab-header'; 44 tabHeader.className = 'tab-header';
52 var button = document.createElement('button'); 45 var button = document.createElement('button');
53 button.textContent = tabName; 46 button.textContent = tabName;
54 tabHeader.appendChild(button); 47 tabHeader.appendChild(button);
55 tabHeader.addEventListener('click', selectTab.bind(null, tabContent.id)); 48 tabHeader.addEventListener('click', selectTab.bind(null, tabContent.id));
56 $('navigation').appendChild(tabHeader); 49 $('navigation').appendChild(tabHeader);
57 } 50 }
58 onHashChange(); 51 onHashChange();
59 initSettings(); 52 initSettings();
60 sendCommand('init-ui'); 53 sendCommand('init-ui');
61 window.addEventListener('message', onMessage.bind(this), false);
62 }
63
64 function onMessage(event) {
65 if (event.origin != 'chrome://serviceworker-internals') {
66 return;
67 }
68 populateServiceWorkers(event.data.partition_id,
69 event.data.workers);
70 } 54 }
71 55
72 function onHashChange() { 56 function onHashChange() {
73 var hash = window.location.hash.slice(1).toLowerCase(); 57 var hash = window.location.hash.slice(1).toLowerCase();
74 if (!selectTab(hash)) 58 if (!selectTab(hash))
75 selectTab('devices'); 59 selectTab('devices');
76 } 60 }
77 61
78 /** 62 /**
79 * @param {string} id Tab id. 63 * @param {string} id Tab id.
(...skipping 16 matching lines...) Expand all
96 tabContent.classList.remove('selected'); 80 tabContent.classList.remove('selected');
97 tabHeader.classList.remove('selected'); 81 tabHeader.classList.remove('selected');
98 } 82 }
99 } 83 }
100 if (!found) 84 if (!found)
101 return false; 85 return false;
102 window.location.hash = id; 86 window.location.hash = id;
103 return true; 87 return true;
104 } 88 }
105 89
106 function populateServiceWorkers(partition_id, workers) {
107 var list = $('service-workers-list-' + partition_id);
108 if (workers.length == 0) {
109 if (list) {
110 list.parentNode.removeChild(list);
111 }
112 return;
113 }
114 if (list) {
115 list.textContent = '';
116 } else {
117 list = document.createElement('div');
118 list.id = 'service-workers-list-' + partition_id;
119 list.className = 'list';
120 $('service-workers-list').appendChild(list);
121 }
122 for (var i = 0; i < workers.length; i++) {
123 var worker = workers[i];
124 worker.hasCustomInspectAction = true;
125 var row = addTargetToList(worker, list, ['scope', 'url']);
126 addActionLink(
127 row,
128 'inspect',
129 sendServiceWorkerCommand.bind(null, 'inspect', worker),
130 false);
131 addActionLink(
132 row,
133 'terminate',
134 sendServiceWorkerCommand.bind(null, 'stop', worker),
135 false);
136 }
137 }
138
139 function populateTargets(source, data) { 90 function populateTargets(source, data) {
140 if (source == 'local') 91 if (source == 'local')
141 populateLocalTargets(data); 92 populateLocalTargets(data);
142 else if (source == 'remote') 93 else if (source == 'remote')
143 populateRemoteTargets(data); 94 populateRemoteTargets(data);
144 else 95 else
145 console.error('Unknown source type: ' + source); 96 console.error('Unknown source type: ' + source);
146 } 97 }
147 98
148 function populateLocalTargets(data) { 99 function populateLocalTargets(data) {
149 removeChildren('pages-list'); 100 removeChildren('pages-list');
150 removeChildren('extensions-list'); 101 removeChildren('extensions-list');
151 removeChildren('apps-list'); 102 removeChildren('apps-list');
152 removeChildren('others-list'); 103 removeChildren('others-list');
153 removeChildren('workers-list'); 104 removeChildren('workers-list');
105 removeChildren('service-workers-list');
154 106
155 for (var i = 0; i < data.length; i++) { 107 for (var i = 0; i < data.length; i++) {
156 if (data[i].type === 'page') 108 if (data[i].type === 'page')
157 addToPagesList(data[i]); 109 addToPagesList(data[i]);
158 else if (data[i].type === 'background_page') 110 else if (data[i].type === 'background_page')
159 addToExtensionsList(data[i]); 111 addToExtensionsList(data[i]);
160 else if (data[i].type === 'app') 112 else if (data[i].type === 'app')
161 addToAppsList(data[i]); 113 addToAppsList(data[i]);
162 else if (data[i].type === 'worker') 114 else if (data[i].type === 'worker')
163 addToWorkersList(data[i]); 115 addToWorkersList(data[i]);
116 else if (data[i].type === 'service_worker')
117 addToServiceWorkersList(data[i]);
164 else 118 else
165 addToOthersList(data[i]); 119 addToOthersList(data[i]);
166 } 120 }
167 } 121 }
168 122
169 function showIncognitoWarning() { 123 function showIncognitoWarning() {
170 $('devices-incognito').hidden = false; 124 $('devices-incognito').hidden = false;
171 } 125 }
172 126
173 function populateRemoteTargets(devices) { 127 function populateRemoteTargets(devices) {
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 }); 369 });
416 } 370 }
417 371
418 function addToWorkersList(data) { 372 function addToWorkersList(data) {
419 var row = 373 var row =
420 addTargetToList(data, $('workers-list'), ['name', 'description', 'url']); 374 addTargetToList(data, $('workers-list'), ['name', 'description', 'url']);
421 addActionLink(row, 'terminate', 375 addActionLink(row, 'terminate',
422 sendTargetCommand.bind(null, 'close', data), false); 376 sendTargetCommand.bind(null, 'close', data), false);
423 } 377 }
424 378
379 function addToServiceWorkersList(data) {
380 var row = addTargetToList(
381 data, $('service-workers-list'), ['name', 'description', 'url']);
382 addActionLink(row, 'terminate',
383 sendTargetCommand.bind(null, 'close', data), false);
384 }
385
425 function addToOthersList(data) { 386 function addToOthersList(data) {
426 addTargetToList(data, $('others-list'), ['url']); 387 addTargetToList(data, $('others-list'), ['url']);
427 } 388 }
428 389
429 function formatValue(data, property) { 390 function formatValue(data, property) {
430 var value = data[property]; 391 var value = data[property];
431 392
432 if (property == 'name' && value == '') { 393 if (property == 'name' && value == '') {
433 value = 'untitled'; 394 value = 'untitled';
434 } 395 }
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 deviceSection.querySelector('.device-ports').textContent = ''; 894 deviceSection.querySelector('.device-ports').textContent = '';
934 } 895 }
935 896
936 Array.prototype.forEach.call( 897 Array.prototype.forEach.call(
937 document.querySelectorAll('.device'), clearPorts); 898 document.querySelectorAll('.device'), clearPorts);
938 } 899 }
939 900
940 document.addEventListener('DOMContentLoaded', onload); 901 document.addEventListener('DOMContentLoaded', onload);
941 902
942 window.addEventListener('hashchange', onHashChange); 903 window.addEventListener('hashchange', onHashChange);
OLDNEW
« no previous file with comments | « chrome/browser/resources/inspect/inspect.html ('k') | chrome/browser/ui/webui/inspect_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698