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

Side by Side Diff: content/browser/resources/service_worker/serviceworker_internals.js

Issue 298993003: Show ServiceWorkers in chrome://inspect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove service-workers-list when no worker. Created 6 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 cr.define('serviceworker', function() { 5 cr.define('serviceworker', function() {
6 'use strict'; 6 'use strict';
7 7
8 function initialize() {
9 if (window.location.hash == "#iframe") {
10 // This page is loaded from chrome://inspect.
11 window.addEventListener('message', onMessage.bind(this), false);
12 }
13 update();
14 }
15
16 function onMessage(event) {
17 if (event.origin != 'chrome://inspect') {
18 return;
19 }
20 chrome.send(event.data.action,
21 [event.data.partition_path, event.data.scope]);
22 }
23
8 function update() { 24 function update() {
9 chrome.send('getAllRegistrations'); 25 chrome.send('getAllRegistrations');
10 } 26 }
11 27
12 function progressNodeFor(link) { 28 function progressNodeFor(link) {
13 return link.parentNode.querySelector('.operation-status'); 29 return link.parentNode.querySelector('.operation-status');
14 } 30 }
15 31
16 // All commands are sent with the partition_path and scope, and 32 // All commands are sent with the partition_path and scope, and
17 // are all completed with 'onOperationComplete'. 33 // are all completed with 'onOperationComplete'.
(...skipping 23 matching lines...) Expand all
41 function onOperationComplete(status, path, scope) { 57 function onOperationComplete(status, path, scope) {
42 // refreshes the ui, displaying any relevant buttons 58 // refreshes the ui, displaying any relevant buttons
43 withNode('button', path, scope, function(link) { 59 withNode('button', path, scope, function(link) {
44 progressNodeFor(link).style.display = 'none'; 60 progressNodeFor(link).style.display = 'none';
45 }); 61 });
46 update(); 62 update();
47 } 63 }
48 64
49 var allLogMessages = {}; 65 var allLogMessages = {};
50 66
67 // Send the active ServiceWorker information to chrome://inspect.
68 function sendToInspectPage(registrations, partition_id, partition_path) {
69 var workers = [];
70 for (var i = 0; i < registrations.length; i++) {
71 var registration = registrations[i];
72 if (!registration.active ||
73 registration.active.running_status != 'RUNNING') {
kinuko 2014/05/23 14:19:33 How are we going to do for inspecting pending (in-
horo 2014/05/23 14:37:09 I'm planing to make another cl to support inspecti
74 continue;
75 }
76 workers.push({
77 'partition_path': partition_path,
78 'scope': registration['scope'],
79 'url': registration['script_url']
kinuko 2014/05/23 14:19:33 nit: mixing up registration.foo and registration['
horo 2014/05/23 14:37:09 Done.
80 })
81 }
82 window.parent.postMessage({
83 'partition_id': partition_id,
84 'workers': workers,
85 }, 'chrome://inspect')
86 }
87
51 // Fired once per partition from the backend. 88 // Fired once per partition from the backend.
52 function onPartitionData(registrations, partition_id, partition_path) { 89 function onPartitionData(registrations, partition_id, partition_path) {
90 if (window.location.hash == "#iframe") {
91 // This page is loaded from chrome://inspect.
92 sendToInspectPage(registrations, partition_id, partition_path);
93 return;
94 }
53 var template; 95 var template;
54 var container = $('serviceworker-list'); 96 var container = $('serviceworker-list');
55 97
56 // Existing templates are keyed by partition_path. This allows 98 // Existing templates are keyed by partition_path. This allows
57 // the UI to be updated in-place rather than refreshing the 99 // the UI to be updated in-place rather than refreshing the
58 // whole page. 100 // whole page.
59 for (var i = 0; i < container.childNodes.length; ++i) { 101 for (var i = 0; i < container.childNodes.length; ++i) {
60 if (container.childNodes[i].partition_path == partition_path) { 102 if (container.childNodes[i].partition_path == partition_path) {
61 template = container.childNodes[i]; 103 template = container.childNodes[i];
62 } 104 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 for (var i = 0; i < logAreas.length; ++i) { 199 for (var i = 0; i < logAreas.length; ++i) {
158 var logArea = logAreas[i]; 200 var logArea = logAreas[i];
159 if (logArea.partition_id == partition_id && 201 if (logArea.partition_id == partition_id &&
160 logArea.version_id == version_id) { 202 logArea.version_id == version_id) {
161 logArea.value += message; 203 logArea.value += message;
162 } 204 }
163 } 205 }
164 } 206 }
165 207
166 return { 208 return {
209 initialize: initialize,
167 update: update, 210 update: update,
168 onOperationComplete: onOperationComplete, 211 onOperationComplete: onOperationComplete,
169 onPartitionData: onPartitionData, 212 onPartitionData: onPartitionData,
170 onWorkerStarted: onWorkerStarted, 213 onWorkerStarted: onWorkerStarted,
171 onWorkerStopped: onWorkerStopped, 214 onWorkerStopped: onWorkerStopped,
172 onErrorReported: onErrorReported, 215 onErrorReported: onErrorReported,
173 onConsoleMessageReported: onConsoleMessageReported, 216 onConsoleMessageReported: onConsoleMessageReported,
174 onVersionStateChanged: onVersionStateChanged, 217 onVersionStateChanged: onVersionStateChanged,
175 onRegistrationStored: onRegistrationStored, 218 onRegistrationStored: onRegistrationStored,
176 onRegistrationDeleted: onRegistrationDeleted, 219 onRegistrationDeleted: onRegistrationDeleted,
177 }; 220 };
178 }); 221 });
179 222
180 document.addEventListener('DOMContentLoaded', serviceworker.update); 223 document.addEventListener('DOMContentLoaded', serviceworker.initialize);
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/inspect_ui.cc ('k') | content/browser/service_worker/service_worker_internals_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698