| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| 11 * copyright notice, this list of conditions and the following disclaimer | 11 * copyright notice, this list of conditions and the following disclaimer |
| 12 * in the documentation and/or other materials provided with the | 12 * in the documentation and/or other materials provided with the |
| 13 * distribution. | 13 * distribution. |
| 14 * * Neither the name of Google Inc. nor the names of its | 14 * * Neither the name of Google Inc. nor the names of its |
| 15 * contributors may be used to endorse or promote products derived from | 15 * contributors may be used to endorse or promote products derived from |
| 16 * this software without specific prior written permission. | 16 * this software without specific prior written permission. |
| 17 * | 17 * |
| 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | |
| 31 /** | 30 /** |
| 32 * @constructor | 31 * @unrestricted |
| 33 * @extends {WebInspector.SDKObject} | 32 */ |
| 34 * @param {!WebInspector.Target} target | 33 WebInspector.ServiceWorkerManager = class extends WebInspector.SDKObject { |
| 35 * @param {!WebInspector.SubTargetsManager} subTargetsManager | 34 /** |
| 36 */ | 35 * @param {!WebInspector.Target} target |
| 37 WebInspector.ServiceWorkerManager = function(target, subTargetsManager) | 36 * @param {!WebInspector.SubTargetsManager} subTargetsManager |
| 38 { | 37 */ |
| 39 WebInspector.SDKObject.call(this, target); | 38 constructor(target, subTargetsManager) { |
| 39 super(target); |
| 40 target.registerServiceWorkerDispatcher(new WebInspector.ServiceWorkerDispatc
her(this)); | 40 target.registerServiceWorkerDispatcher(new WebInspector.ServiceWorkerDispatc
her(this)); |
| 41 this._lastAnonymousTargetId = 0; | 41 this._lastAnonymousTargetId = 0; |
| 42 this._agent = target.serviceWorkerAgent(); | 42 this._agent = target.serviceWorkerAgent(); |
| 43 /** @type {!Map.<string, !WebInspector.ServiceWorkerRegistration>} */ | 43 /** @type {!Map.<string, !WebInspector.ServiceWorkerRegistration>} */ |
| 44 this._registrations = new Map(); | 44 this._registrations = new Map(); |
| 45 this.enable(); | 45 this.enable(); |
| 46 this._forceUpdateSetting = WebInspector.settings.createSetting("serviceWorke
rUpdateOnReload", false); | 46 this._forceUpdateSetting = WebInspector.settings.createSetting('serviceWorke
rUpdateOnReload', false); |
| 47 if (this._forceUpdateSetting.get()) | 47 if (this._forceUpdateSetting.get()) |
| 48 this._forceUpdateSettingChanged(); | 48 this._forceUpdateSettingChanged(); |
| 49 this._forceUpdateSetting.addChangeListener(this._forceUpdateSettingChanged,
this); | 49 this._forceUpdateSetting.addChangeListener(this._forceUpdateSettingChanged,
this); |
| 50 new WebInspector.ServiceWorkerContextNamer(target, this, subTargetsManager); | 50 new WebInspector.ServiceWorkerContextNamer(target, this, subTargetsManager); |
| 51 } |
| 52 |
| 53 enable() { |
| 54 if (this._enabled) |
| 55 return; |
| 56 this._enabled = true; |
| 57 this._agent.enable(); |
| 58 } |
| 59 |
| 60 disable() { |
| 61 if (!this._enabled) |
| 62 return; |
| 63 this._enabled = false; |
| 64 this._registrations.clear(); |
| 65 this._agent.disable(); |
| 66 } |
| 67 |
| 68 /** |
| 69 * @return {!Map.<string, !WebInspector.ServiceWorkerRegistration>} |
| 70 */ |
| 71 registrations() { |
| 72 return this._registrations; |
| 73 } |
| 74 |
| 75 /** |
| 76 * @param {string} versionId |
| 77 * @return {?WebInspector.ServiceWorkerVersion} |
| 78 */ |
| 79 findVersion(versionId) { |
| 80 for (var registration of this.registrations().values()) { |
| 81 var version = registration.versions.get(versionId); |
| 82 if (version) |
| 83 return version; |
| 84 } |
| 85 return null; |
| 86 } |
| 87 |
| 88 /** |
| 89 * @param {string} registrationId |
| 90 */ |
| 91 deleteRegistration(registrationId) { |
| 92 var registration = this._registrations.get(registrationId); |
| 93 if (!registration) |
| 94 return; |
| 95 if (registration._isRedundant()) { |
| 96 this._registrations.delete(registrationId); |
| 97 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.Reg
istrationDeleted, registration); |
| 98 return; |
| 99 } |
| 100 registration._deleting = true; |
| 101 for (var version of registration.versions.values()) |
| 102 this.stopWorker(version.id); |
| 103 this._unregister(registration.scopeURL); |
| 104 } |
| 105 |
| 106 /** |
| 107 * @param {string} registrationId |
| 108 */ |
| 109 updateRegistration(registrationId) { |
| 110 var registration = this._registrations.get(registrationId); |
| 111 if (!registration) |
| 112 return; |
| 113 this._agent.updateRegistration(registration.scopeURL); |
| 114 } |
| 115 |
| 116 /** |
| 117 * @param {string} registrationId |
| 118 * @param {string} data |
| 119 */ |
| 120 deliverPushMessage(registrationId, data) { |
| 121 var registration = this._registrations.get(registrationId); |
| 122 if (!registration) |
| 123 return; |
| 124 var origin = WebInspector.ParsedURL.extractOrigin(registration.scopeURL); |
| 125 this._agent.deliverPushMessage(origin, registrationId, data); |
| 126 } |
| 127 |
| 128 /** |
| 129 * @param {string} registrationId |
| 130 * @param {string} tag |
| 131 * @param {boolean} lastChance |
| 132 */ |
| 133 dispatchSyncEvent(registrationId, tag, lastChance) { |
| 134 var registration = this._registrations.get(registrationId); |
| 135 if (!registration) |
| 136 return; |
| 137 var origin = WebInspector.ParsedURL.extractOrigin(registration.scopeURL); |
| 138 this._agent.dispatchSyncEvent(origin, registrationId, tag, lastChance); |
| 139 } |
| 140 |
| 141 /** |
| 142 * @param {string} scope |
| 143 */ |
| 144 _unregister(scope) { |
| 145 this._agent.unregister(scope); |
| 146 } |
| 147 |
| 148 /** |
| 149 * @param {string} scope |
| 150 */ |
| 151 startWorker(scope) { |
| 152 this._agent.startWorker(scope); |
| 153 } |
| 154 |
| 155 /** |
| 156 * @param {string} scope |
| 157 */ |
| 158 skipWaiting(scope) { |
| 159 this._agent.skipWaiting(scope); |
| 160 } |
| 161 |
| 162 /** |
| 163 * @param {string} versionId |
| 164 */ |
| 165 stopWorker(versionId) { |
| 166 this._agent.stopWorker(versionId); |
| 167 } |
| 168 |
| 169 /** |
| 170 * @param {string} versionId |
| 171 */ |
| 172 inspectWorker(versionId) { |
| 173 this._agent.inspectWorker(versionId); |
| 174 } |
| 175 |
| 176 /** |
| 177 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerRegistration>} registratio
ns |
| 178 */ |
| 179 _workerRegistrationUpdated(registrations) { |
| 180 for (var payload of registrations) { |
| 181 var registration = this._registrations.get(payload.registrationId); |
| 182 if (!registration) { |
| 183 registration = new WebInspector.ServiceWorkerRegistration(payload); |
| 184 this._registrations.set(payload.registrationId, registration); |
| 185 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationUpdated, registration); |
| 186 continue; |
| 187 } |
| 188 registration._update(payload); |
| 189 |
| 190 if (registration._shouldBeRemoved()) { |
| 191 this._registrations.delete(registration.id); |
| 192 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationDeleted, registration); |
| 193 } else { |
| 194 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationUpdated, registration); |
| 195 } |
| 196 } |
| 197 } |
| 198 |
| 199 /** |
| 200 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerVersion>} versions |
| 201 */ |
| 202 _workerVersionUpdated(versions) { |
| 203 /** @type {!Set.<!WebInspector.ServiceWorkerRegistration>} */ |
| 204 var registrations = new Set(); |
| 205 for (var payload of versions) { |
| 206 var registration = this._registrations.get(payload.registrationId); |
| 207 if (!registration) |
| 208 continue; |
| 209 registration._updateVersion(payload); |
| 210 registrations.add(registration); |
| 211 } |
| 212 for (var registration of registrations) { |
| 213 if (registration._shouldBeRemoved()) { |
| 214 this._registrations.delete(registration.id); |
| 215 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationDeleted, registration); |
| 216 } else { |
| 217 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationUpdated, registration); |
| 218 } |
| 219 } |
| 220 } |
| 221 |
| 222 /** |
| 223 * @param {!ServiceWorkerAgent.ServiceWorkerErrorMessage} payload |
| 224 */ |
| 225 _workerErrorReported(payload) { |
| 226 var registration = this._registrations.get(payload.registrationId); |
| 227 if (!registration) |
| 228 return; |
| 229 registration.errors.push(payload); |
| 230 this.dispatchEventToListeners( |
| 231 WebInspector.ServiceWorkerManager.Events.RegistrationErrorAdded, {regist
ration: registration, error: payload}); |
| 232 } |
| 233 |
| 234 /** |
| 235 * @return {!WebInspector.Setting} |
| 236 */ |
| 237 forceUpdateOnReloadSetting() { |
| 238 return this._forceUpdateSetting; |
| 239 } |
| 240 |
| 241 _forceUpdateSettingChanged() { |
| 242 this._agent.setForceUpdateOnPageLoad(this._forceUpdateSetting.get()); |
| 243 } |
| 51 }; | 244 }; |
| 52 | 245 |
| 53 /** @enum {symbol} */ | 246 /** @enum {symbol} */ |
| 54 WebInspector.ServiceWorkerManager.Events = { | 247 WebInspector.ServiceWorkerManager.Events = { |
| 55 RegistrationUpdated: Symbol("RegistrationUpdated"), | 248 RegistrationUpdated: Symbol('RegistrationUpdated'), |
| 56 RegistrationErrorAdded: Symbol("RegistrationErrorAdded"), | 249 RegistrationErrorAdded: Symbol('RegistrationErrorAdded'), |
| 57 RegistrationDeleted: Symbol("RegistrationDeleted") | 250 RegistrationDeleted: Symbol('RegistrationDeleted') |
| 58 }; | |
| 59 | |
| 60 WebInspector.ServiceWorkerManager.prototype = { | |
| 61 enable: function() | |
| 62 { | |
| 63 if (this._enabled) | |
| 64 return; | |
| 65 this._enabled = true; | |
| 66 this._agent.enable(); | |
| 67 }, | |
| 68 | |
| 69 disable: function() | |
| 70 { | |
| 71 if (!this._enabled) | |
| 72 return; | |
| 73 this._enabled = false; | |
| 74 this._registrations.clear(); | |
| 75 this._agent.disable(); | |
| 76 }, | |
| 77 | |
| 78 /** | |
| 79 * @return {!Map.<string, !WebInspector.ServiceWorkerRegistration>} | |
| 80 */ | |
| 81 registrations: function() | |
| 82 { | |
| 83 return this._registrations; | |
| 84 }, | |
| 85 | |
| 86 /** | |
| 87 * @param {string} versionId | |
| 88 * @return {?WebInspector.ServiceWorkerVersion} | |
| 89 */ | |
| 90 findVersion: function(versionId) | |
| 91 { | |
| 92 for (var registration of this.registrations().values()) { | |
| 93 var version = registration.versions.get(versionId); | |
| 94 if (version) | |
| 95 return version; | |
| 96 } | |
| 97 return null; | |
| 98 }, | |
| 99 | |
| 100 /** | |
| 101 * @param {string} registrationId | |
| 102 */ | |
| 103 deleteRegistration: function(registrationId) | |
| 104 { | |
| 105 var registration = this._registrations.get(registrationId); | |
| 106 if (!registration) | |
| 107 return; | |
| 108 if (registration._isRedundant()) { | |
| 109 this._registrations.delete(registrationId); | |
| 110 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Even
ts.RegistrationDeleted, registration); | |
| 111 return; | |
| 112 } | |
| 113 registration._deleting = true; | |
| 114 for (var version of registration.versions.values()) | |
| 115 this.stopWorker(version.id); | |
| 116 this._unregister(registration.scopeURL); | |
| 117 }, | |
| 118 | |
| 119 /** | |
| 120 * @param {string} registrationId | |
| 121 */ | |
| 122 updateRegistration: function(registrationId) | |
| 123 { | |
| 124 var registration = this._registrations.get(registrationId); | |
| 125 if (!registration) | |
| 126 return; | |
| 127 this._agent.updateRegistration(registration.scopeURL); | |
| 128 }, | |
| 129 | |
| 130 /** | |
| 131 * @param {string} registrationId | |
| 132 * @param {string} data | |
| 133 */ | |
| 134 deliverPushMessage: function(registrationId, data) | |
| 135 { | |
| 136 var registration = this._registrations.get(registrationId); | |
| 137 if (!registration) | |
| 138 return; | |
| 139 var origin = WebInspector.ParsedURL.extractOrigin(registration.scopeURL)
; | |
| 140 this._agent.deliverPushMessage(origin, registrationId, data); | |
| 141 }, | |
| 142 | |
| 143 /** | |
| 144 * @param {string} registrationId | |
| 145 * @param {string} tag | |
| 146 * @param {boolean} lastChance | |
| 147 */ | |
| 148 dispatchSyncEvent: function(registrationId, tag, lastChance) | |
| 149 { | |
| 150 var registration = this._registrations.get(registrationId); | |
| 151 if (!registration) | |
| 152 return; | |
| 153 var origin = WebInspector.ParsedURL.extractOrigin(registration.scopeURL)
; | |
| 154 this._agent.dispatchSyncEvent(origin, registrationId, tag, lastChance); | |
| 155 }, | |
| 156 | |
| 157 /** | |
| 158 * @param {string} scope | |
| 159 */ | |
| 160 _unregister: function(scope) | |
| 161 { | |
| 162 this._agent.unregister(scope); | |
| 163 }, | |
| 164 | |
| 165 /** | |
| 166 * @param {string} scope | |
| 167 */ | |
| 168 startWorker: function(scope) | |
| 169 { | |
| 170 this._agent.startWorker(scope); | |
| 171 }, | |
| 172 | |
| 173 /** | |
| 174 * @param {string} scope | |
| 175 */ | |
| 176 skipWaiting: function(scope) | |
| 177 { | |
| 178 this._agent.skipWaiting(scope); | |
| 179 }, | |
| 180 | |
| 181 /** | |
| 182 * @param {string} versionId | |
| 183 */ | |
| 184 stopWorker: function(versionId) | |
| 185 { | |
| 186 this._agent.stopWorker(versionId); | |
| 187 }, | |
| 188 | |
| 189 /** | |
| 190 * @param {string} versionId | |
| 191 */ | |
| 192 inspectWorker: function(versionId) | |
| 193 { | |
| 194 this._agent.inspectWorker(versionId); | |
| 195 }, | |
| 196 | |
| 197 /** | |
| 198 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerRegistration>} registrat
ions | |
| 199 */ | |
| 200 _workerRegistrationUpdated: function(registrations) | |
| 201 { | |
| 202 for (var payload of registrations) { | |
| 203 var registration = this._registrations.get(payload.registrationId); | |
| 204 if (!registration) { | |
| 205 registration = new WebInspector.ServiceWorkerRegistration(payloa
d); | |
| 206 this._registrations.set(payload.registrationId, registration); | |
| 207 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.
Events.RegistrationUpdated, registration); | |
| 208 continue; | |
| 209 } | |
| 210 registration._update(payload); | |
| 211 | |
| 212 if (registration._shouldBeRemoved()) { | |
| 213 this._registrations.delete(registration.id); | |
| 214 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.
Events.RegistrationDeleted, registration); | |
| 215 } else { | |
| 216 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.
Events.RegistrationUpdated, registration); | |
| 217 } | |
| 218 } | |
| 219 }, | |
| 220 | |
| 221 /** | |
| 222 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerVersion>} versions | |
| 223 */ | |
| 224 _workerVersionUpdated: function(versions) | |
| 225 { | |
| 226 /** @type {!Set.<!WebInspector.ServiceWorkerRegistration>} */ | |
| 227 var registrations = new Set(); | |
| 228 for (var payload of versions) { | |
| 229 var registration = this._registrations.get(payload.registrationId); | |
| 230 if (!registration) | |
| 231 continue; | |
| 232 registration._updateVersion(payload); | |
| 233 registrations.add(registration); | |
| 234 } | |
| 235 for (var registration of registrations) { | |
| 236 if (registration._shouldBeRemoved()) { | |
| 237 this._registrations.delete(registration.id); | |
| 238 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.
Events.RegistrationDeleted, registration); | |
| 239 } else { | |
| 240 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.
Events.RegistrationUpdated, registration); | |
| 241 } | |
| 242 } | |
| 243 }, | |
| 244 | |
| 245 /** | |
| 246 * @param {!ServiceWorkerAgent.ServiceWorkerErrorMessage} payload | |
| 247 */ | |
| 248 _workerErrorReported: function(payload) | |
| 249 { | |
| 250 var registration = this._registrations.get(payload.registrationId); | |
| 251 if (!registration) | |
| 252 return; | |
| 253 registration.errors.push(payload); | |
| 254 this.dispatchEventToListeners(WebInspector.ServiceWorkerManager.Events.R
egistrationErrorAdded, { registration: registration, error: payload }); | |
| 255 }, | |
| 256 | |
| 257 /** | |
| 258 * @return {!WebInspector.Setting} | |
| 259 */ | |
| 260 forceUpdateOnReloadSetting: function() | |
| 261 { | |
| 262 return this._forceUpdateSetting; | |
| 263 }, | |
| 264 | |
| 265 _forceUpdateSettingChanged: function() | |
| 266 { | |
| 267 this._agent.setForceUpdateOnPageLoad(this._forceUpdateSetting.get()); | |
| 268 }, | |
| 269 | |
| 270 __proto__: WebInspector.SDKObject.prototype | |
| 271 }; | 251 }; |
| 272 | 252 |
| 273 /** | 253 /** |
| 274 * @constructor | |
| 275 * @implements {ServiceWorkerAgent.Dispatcher} | 254 * @implements {ServiceWorkerAgent.Dispatcher} |
| 276 * @param {!WebInspector.ServiceWorkerManager} manager | 255 * @unrestricted |
| 277 */ | 256 */ |
| 278 WebInspector.ServiceWorkerDispatcher = function(manager) | 257 WebInspector.ServiceWorkerDispatcher = class { |
| 279 { | 258 /** |
| 259 * @param {!WebInspector.ServiceWorkerManager} manager |
| 260 */ |
| 261 constructor(manager) { |
| 280 this._manager = manager; | 262 this._manager = manager; |
| 281 }; | 263 } |
| 282 | 264 |
| 283 WebInspector.ServiceWorkerDispatcher.prototype = { | 265 /** |
| 284 /** | 266 * @override |
| 285 * @override | 267 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerRegistration>} registratio
ns |
| 286 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerRegistration>} registrat
ions | 268 */ |
| 287 */ | 269 workerRegistrationUpdated(registrations) { |
| 288 workerRegistrationUpdated: function(registrations) | 270 this._manager._workerRegistrationUpdated(registrations); |
| 289 { | 271 } |
| 290 this._manager._workerRegistrationUpdated(registrations); | 272 |
| 291 }, | 273 /** |
| 292 | 274 * @override |
| 293 /** | 275 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerVersion>} versions |
| 294 * @override | 276 */ |
| 295 * @param {!Array.<!ServiceWorkerAgent.ServiceWorkerVersion>} versions | 277 workerVersionUpdated(versions) { |
| 296 */ | 278 this._manager._workerVersionUpdated(versions); |
| 297 workerVersionUpdated: function(versions) | 279 } |
| 298 { | 280 |
| 299 this._manager._workerVersionUpdated(versions); | 281 /** |
| 300 }, | 282 * @override |
| 301 | 283 * @param {!ServiceWorkerAgent.ServiceWorkerErrorMessage} errorMessage |
| 302 /** | 284 */ |
| 303 * @override | 285 workerErrorReported(errorMessage) { |
| 304 * @param {!ServiceWorkerAgent.ServiceWorkerErrorMessage} errorMessage | 286 this._manager._workerErrorReported(errorMessage); |
| 305 */ | 287 } |
| 306 workerErrorReported: function(errorMessage) | |
| 307 { | |
| 308 this._manager._workerErrorReported(errorMessage); | |
| 309 } | |
| 310 }; | 288 }; |
| 311 | 289 |
| 312 /** | 290 /** |
| 313 * @constructor | 291 * @unrestricted |
| 314 * @param {!WebInspector.ServiceWorkerRegistration} registration | 292 */ |
| 315 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload | 293 WebInspector.ServiceWorkerVersion = class { |
| 316 */ | 294 /** |
| 317 WebInspector.ServiceWorkerVersion = function(registration, payload) | 295 * @param {!WebInspector.ServiceWorkerRegistration} registration |
| 318 { | 296 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload |
| 297 */ |
| 298 constructor(registration, payload) { |
| 319 this.registration = registration; | 299 this.registration = registration; |
| 320 this._update(payload); | 300 this._update(payload); |
| 301 } |
| 302 |
| 303 /** |
| 304 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload |
| 305 */ |
| 306 _update(payload) { |
| 307 this.id = payload.versionId; |
| 308 this.scriptURL = payload.scriptURL; |
| 309 var parsedURL = new WebInspector.ParsedURL(payload.scriptURL); |
| 310 this.securityOrigin = parsedURL.securityOrigin(); |
| 311 this.runningStatus = payload.runningStatus; |
| 312 this.status = payload.status; |
| 313 this.scriptLastModified = payload.scriptLastModified; |
| 314 this.scriptResponseTime = payload.scriptResponseTime; |
| 315 this.controlledClients = []; |
| 316 for (var i = 0; i < payload.controlledClients.length; ++i) |
| 317 this.controlledClients.push(payload.controlledClients[i]); |
| 318 this.targetId = payload.targetId || null; |
| 319 } |
| 320 |
| 321 /** |
| 322 * @return {boolean} |
| 323 */ |
| 324 isStartable() { |
| 325 return !this.registration.isDeleted && this.isActivated() && this.isStopped(
); |
| 326 } |
| 327 |
| 328 /** |
| 329 * @return {boolean} |
| 330 */ |
| 331 isStoppedAndRedundant() { |
| 332 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRunning
Status.Stopped && |
| 333 this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Redundant; |
| 334 } |
| 335 |
| 336 /** |
| 337 * @return {boolean} |
| 338 */ |
| 339 isStopped() { |
| 340 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRunning
Status.Stopped; |
| 341 } |
| 342 |
| 343 /** |
| 344 * @return {boolean} |
| 345 */ |
| 346 isStarting() { |
| 347 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRunning
Status.Starting; |
| 348 } |
| 349 |
| 350 /** |
| 351 * @return {boolean} |
| 352 */ |
| 353 isRunning() { |
| 354 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRunning
Status.Running; |
| 355 } |
| 356 |
| 357 /** |
| 358 * @return {boolean} |
| 359 */ |
| 360 isStopping() { |
| 361 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRunning
Status.Stopping; |
| 362 } |
| 363 |
| 364 /** |
| 365 * @return {boolean} |
| 366 */ |
| 367 isNew() { |
| 368 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.New; |
| 369 } |
| 370 |
| 371 /** |
| 372 * @return {boolean} |
| 373 */ |
| 374 isInstalling() { |
| 375 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Install
ing; |
| 376 } |
| 377 |
| 378 /** |
| 379 * @return {boolean} |
| 380 */ |
| 381 isInstalled() { |
| 382 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Install
ed; |
| 383 } |
| 384 |
| 385 /** |
| 386 * @return {boolean} |
| 387 */ |
| 388 isActivating() { |
| 389 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Activat
ing; |
| 390 } |
| 391 |
| 392 /** |
| 393 * @return {boolean} |
| 394 */ |
| 395 isActivated() { |
| 396 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Activat
ed; |
| 397 } |
| 398 |
| 399 /** |
| 400 * @return {boolean} |
| 401 */ |
| 402 isRedundant() { |
| 403 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Redunda
nt; |
| 404 } |
| 405 |
| 406 /** |
| 407 * @return {string} |
| 408 */ |
| 409 mode() { |
| 410 if (this.isNew() || this.isInstalling()) |
| 411 return WebInspector.ServiceWorkerVersion.Modes.Installing; |
| 412 else if (this.isInstalled()) |
| 413 return WebInspector.ServiceWorkerVersion.Modes.Waiting; |
| 414 else if (this.isActivating() || this.isActivated()) |
| 415 return WebInspector.ServiceWorkerVersion.Modes.Active; |
| 416 return WebInspector.ServiceWorkerVersion.Modes.Redundant; |
| 417 } |
| 321 }; | 418 }; |
| 322 | 419 |
| 323 /** | 420 /** |
| 324 * @enum {string} | 421 * @enum {string} |
| 325 */ | 422 */ |
| 326 WebInspector.ServiceWorkerVersion.Modes = { | 423 WebInspector.ServiceWorkerVersion.Modes = { |
| 327 Installing: "installing", | 424 Installing: 'installing', |
| 328 Waiting: "waiting", | 425 Waiting: 'waiting', |
| 329 Active: "active", | 426 Active: 'active', |
| 330 Redundant: "redundant" | 427 Redundant: 'redundant' |
| 331 }; | |
| 332 | |
| 333 WebInspector.ServiceWorkerVersion.prototype = { | |
| 334 /** | |
| 335 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload | |
| 336 */ | |
| 337 _update: function(payload) | |
| 338 { | |
| 339 this.id = payload.versionId; | |
| 340 this.scriptURL = payload.scriptURL; | |
| 341 var parsedURL = new WebInspector.ParsedURL(payload.scriptURL); | |
| 342 this.securityOrigin = parsedURL.securityOrigin(); | |
| 343 this.runningStatus = payload.runningStatus; | |
| 344 this.status = payload.status; | |
| 345 this.scriptLastModified = payload.scriptLastModified; | |
| 346 this.scriptResponseTime = payload.scriptResponseTime; | |
| 347 this.controlledClients = []; | |
| 348 for (var i = 0; i < payload.controlledClients.length; ++i) | |
| 349 this.controlledClients.push(payload.controlledClients[i]); | |
| 350 this.targetId = payload.targetId || null; | |
| 351 }, | |
| 352 | |
| 353 /** | |
| 354 * @return {boolean} | |
| 355 */ | |
| 356 isStartable: function() | |
| 357 { | |
| 358 return !this.registration.isDeleted && this.isActivated() && this.isStop
ped(); | |
| 359 }, | |
| 360 | |
| 361 /** | |
| 362 * @return {boolean} | |
| 363 */ | |
| 364 isStoppedAndRedundant: function() | |
| 365 { | |
| 366 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRun
ningStatus.Stopped && this.status === ServiceWorkerAgent.ServiceWorkerVersionSta
tus.Redundant; | |
| 367 }, | |
| 368 | |
| 369 /** | |
| 370 * @return {boolean} | |
| 371 */ | |
| 372 isStopped: function() | |
| 373 { | |
| 374 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRun
ningStatus.Stopped; | |
| 375 }, | |
| 376 | |
| 377 /** | |
| 378 * @return {boolean} | |
| 379 */ | |
| 380 isStarting: function() | |
| 381 { | |
| 382 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRun
ningStatus.Starting; | |
| 383 }, | |
| 384 | |
| 385 /** | |
| 386 * @return {boolean} | |
| 387 */ | |
| 388 isRunning: function() | |
| 389 { | |
| 390 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRun
ningStatus.Running; | |
| 391 }, | |
| 392 | |
| 393 /** | |
| 394 * @return {boolean} | |
| 395 */ | |
| 396 isStopping: function() | |
| 397 { | |
| 398 return this.runningStatus === ServiceWorkerAgent.ServiceWorkerVersionRun
ningStatus.Stopping; | |
| 399 }, | |
| 400 | |
| 401 /** | |
| 402 * @return {boolean} | |
| 403 */ | |
| 404 isNew: function() | |
| 405 { | |
| 406 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.New
; | |
| 407 }, | |
| 408 | |
| 409 /** | |
| 410 * @return {boolean} | |
| 411 */ | |
| 412 isInstalling: function() | |
| 413 { | |
| 414 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Ins
talling; | |
| 415 }, | |
| 416 | |
| 417 /** | |
| 418 * @return {boolean} | |
| 419 */ | |
| 420 isInstalled: function() | |
| 421 { | |
| 422 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Ins
talled; | |
| 423 }, | |
| 424 | |
| 425 /** | |
| 426 * @return {boolean} | |
| 427 */ | |
| 428 isActivating: function() | |
| 429 { | |
| 430 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Act
ivating; | |
| 431 }, | |
| 432 | |
| 433 /** | |
| 434 * @return {boolean} | |
| 435 */ | |
| 436 isActivated: function() | |
| 437 { | |
| 438 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Act
ivated; | |
| 439 }, | |
| 440 | |
| 441 /** | |
| 442 * @return {boolean} | |
| 443 */ | |
| 444 isRedundant: function() | |
| 445 { | |
| 446 return this.status === ServiceWorkerAgent.ServiceWorkerVersionStatus.Red
undant; | |
| 447 }, | |
| 448 | |
| 449 /** | |
| 450 * @return {string} | |
| 451 */ | |
| 452 mode: function() | |
| 453 { | |
| 454 if (this.isNew() || this.isInstalling()) | |
| 455 return WebInspector.ServiceWorkerVersion.Modes.Installing; | |
| 456 else if (this.isInstalled()) | |
| 457 return WebInspector.ServiceWorkerVersion.Modes.Waiting; | |
| 458 else if (this.isActivating() || this.isActivated()) | |
| 459 return WebInspector.ServiceWorkerVersion.Modes.Active; | |
| 460 return WebInspector.ServiceWorkerVersion.Modes.Redundant; | |
| 461 } | |
| 462 }; | 428 }; |
| 463 | 429 |
| 464 /** | 430 /** |
| 465 * @constructor | 431 * @unrestricted |
| 466 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} payload | 432 */ |
| 467 */ | 433 WebInspector.ServiceWorkerRegistration = class { |
| 468 WebInspector.ServiceWorkerRegistration = function(payload) | 434 /** |
| 469 { | 435 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} payload |
| 436 */ |
| 437 constructor(payload) { |
| 470 this._update(payload); | 438 this._update(payload); |
| 471 /** @type {!Map.<string, !WebInspector.ServiceWorkerVersion>} */ | 439 /** @type {!Map.<string, !WebInspector.ServiceWorkerVersion>} */ |
| 472 this.versions = new Map(); | 440 this.versions = new Map(); |
| 473 this._deleting = false; | 441 this._deleting = false; |
| 474 /** @type {!Array<!ServiceWorkerAgent.ServiceWorkerErrorMessage>} */ | 442 /** @type {!Array<!ServiceWorkerAgent.ServiceWorkerErrorMessage>} */ |
| 475 this.errors = []; | 443 this.errors = []; |
| 476 }; | 444 } |
| 477 | 445 |
| 478 WebInspector.ServiceWorkerRegistration.prototype = { | 446 /** |
| 479 /** | 447 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} payload |
| 480 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} payload | 448 */ |
| 481 */ | 449 _update(payload) { |
| 482 _update: function(payload) | 450 this._fingerprint = Symbol('fingerprint'); |
| 483 { | 451 this.id = payload.registrationId; |
| 484 this._fingerprint = Symbol("fingerprint"); | 452 this.scopeURL = payload.scopeURL; |
| 485 this.id = payload.registrationId; | 453 var parsedURL = new WebInspector.ParsedURL(payload.scopeURL); |
| 486 this.scopeURL = payload.scopeURL; | 454 this.securityOrigin = parsedURL.securityOrigin(); |
| 487 var parsedURL = new WebInspector.ParsedURL(payload.scopeURL); | 455 this.isDeleted = payload.isDeleted; |
| 488 this.securityOrigin = parsedURL.securityOrigin(); | 456 this.forceUpdateOnPageLoad = payload.forceUpdateOnPageLoad; |
| 489 this.isDeleted = payload.isDeleted; | 457 } |
| 490 this.forceUpdateOnPageLoad = payload.forceUpdateOnPageLoad; | 458 |
| 491 }, | 459 /** |
| 492 | 460 * @return {symbol} |
| 493 /** | 461 */ |
| 494 * @return {symbol} | 462 fingerprint() { |
| 495 */ | 463 return this._fingerprint; |
| 496 fingerprint: function() | 464 } |
| 497 { | 465 |
| 498 return this._fingerprint; | 466 /** |
| 499 }, | 467 * @return {!Map<string, !WebInspector.ServiceWorkerVersion>} |
| 500 | 468 */ |
| 501 /** | 469 versionsByMode() { |
| 502 * @return {!Map<string, !WebInspector.ServiceWorkerVersion>} | 470 /** @type {!Map<string, !WebInspector.ServiceWorkerVersion>} */ |
| 503 */ | 471 var result = new Map(); |
| 504 versionsByMode: function() | 472 for (var version of this.versions.values()) |
| 505 { | 473 result.set(version.mode(), version); |
| 506 /** @type {!Map<string, !WebInspector.ServiceWorkerVersion>} */ | 474 return result; |
| 507 var result = new Map(); | 475 } |
| 508 for (var version of this.versions.values()) | 476 |
| 509 result.set(version.mode(), version); | 477 /** |
| 510 return result; | 478 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload |
| 511 }, | 479 * @return {!WebInspector.ServiceWorkerVersion} |
| 512 | 480 */ |
| 513 /** | 481 _updateVersion(payload) { |
| 514 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} payload | 482 this._fingerprint = Symbol('fingerprint'); |
| 515 * @return {!WebInspector.ServiceWorkerVersion} | 483 var version = this.versions.get(payload.versionId); |
| 516 */ | 484 if (!version) { |
| 517 _updateVersion: function(payload) | 485 version = new WebInspector.ServiceWorkerVersion(this, payload); |
| 518 { | 486 this.versions.set(payload.versionId, version); |
| 519 this._fingerprint = Symbol("fingerprint"); | 487 return version; |
| 520 var version = this.versions.get(payload.versionId); | 488 } |
| 521 if (!version) { | 489 version._update(payload); |
| 522 version = new WebInspector.ServiceWorkerVersion(this, payload); | 490 return version; |
| 523 this.versions.set(payload.versionId, version); | 491 } |
| 524 return version; | 492 |
| 525 } | 493 /** |
| 526 version._update(payload); | 494 * @return {boolean} |
| 527 return version; | 495 */ |
| 528 }, | 496 _isRedundant() { |
| 529 | 497 for (var version of this.versions.values()) { |
| 530 /** | 498 if (!version.isStoppedAndRedundant()) |
| 531 * @return {boolean} | 499 return false; |
| 532 */ | 500 } |
| 533 _isRedundant: function() | 501 return true; |
| 534 { | 502 } |
| 535 for (var version of this.versions.values()) { | 503 |
| 536 if (!version.isStoppedAndRedundant()) | 504 /** |
| 537 return false; | 505 * @return {boolean} |
| 538 } | 506 */ |
| 539 return true; | 507 _shouldBeRemoved() { |
| 540 }, | 508 return this._isRedundant() && (!this.errors.length || this._deleting); |
| 541 | 509 } |
| 542 /** | 510 |
| 543 * @return {boolean} | 511 clearErrors() { |
| 544 */ | 512 this._fingerprint = Symbol('fingerprint'); |
| 545 _shouldBeRemoved: function() | 513 this.errors = []; |
| 546 { | 514 } |
| 547 return this._isRedundant() && (!this.errors.length || this._deleting); | |
| 548 }, | |
| 549 | |
| 550 clearErrors: function() | |
| 551 { | |
| 552 this._fingerprint = Symbol("fingerprint"); | |
| 553 this.errors = []; | |
| 554 } | |
| 555 }; | 515 }; |
| 556 | 516 |
| 557 /** | 517 /** |
| 558 * @constructor | 518 * @unrestricted |
| 559 * @param {!WebInspector.Target} target | 519 */ |
| 560 * @param {!WebInspector.ServiceWorkerManager} serviceWorkerManager | 520 WebInspector.ServiceWorkerContextNamer = class { |
| 561 * @param {!WebInspector.SubTargetsManager} subTargetsManager | 521 /** |
| 562 */ | 522 * @param {!WebInspector.Target} target |
| 563 WebInspector.ServiceWorkerContextNamer = function(target, serviceWorkerManager,
subTargetsManager) | 523 * @param {!WebInspector.ServiceWorkerManager} serviceWorkerManager |
| 564 { | 524 * @param {!WebInspector.SubTargetsManager} subTargetsManager |
| 525 */ |
| 526 constructor(target, serviceWorkerManager, subTargetsManager) { |
| 565 this._target = target; | 527 this._target = target; |
| 566 this._serviceWorkerManager = serviceWorkerManager; | 528 this._serviceWorkerManager = serviceWorkerManager; |
| 567 this._subTargetsManager = subTargetsManager; | 529 this._subTargetsManager = subTargetsManager; |
| 568 /** @type {!Map<string, !WebInspector.ServiceWorkerVersion>} */ | 530 /** @type {!Map<string, !WebInspector.ServiceWorkerVersion>} */ |
| 569 this._versionByTargetId = new Map(); | 531 this._versionByTargetId = new Map(); |
| 570 serviceWorkerManager.addEventListener(WebInspector.ServiceWorkerManager.Even
ts.RegistrationUpdated, this._registrationsUpdated, this); | 532 serviceWorkerManager.addEventListener( |
| 571 serviceWorkerManager.addEventListener(WebInspector.ServiceWorkerManager.Even
ts.RegistrationDeleted, this._registrationsUpdated, this); | 533 WebInspector.ServiceWorkerManager.Events.RegistrationUpdated, this._regi
strationsUpdated, this); |
| 572 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebIn
spector.RuntimeModel.Events.ExecutionContextCreated, this._executionContextCreat
ed, this); | 534 serviceWorkerManager.addEventListener( |
| 573 }; | 535 WebInspector.ServiceWorkerManager.Events.RegistrationDeleted, this._regi
strationsUpdated, this); |
| 574 | 536 WebInspector.targetManager.addModelListener( |
| 575 WebInspector.ServiceWorkerContextNamer.prototype = { | 537 WebInspector.RuntimeModel, WebInspector.RuntimeModel.Events.ExecutionCon
textCreated, |
| 576 /** | 538 this._executionContextCreated, this); |
| 577 * @param {!WebInspector.Event} event | 539 } |
| 578 */ | 540 |
| 579 _registrationsUpdated: function(event) | 541 /** |
| 580 { | 542 * @param {!WebInspector.Event} event |
| 581 this._versionByTargetId.clear(); | 543 */ |
| 582 var registrations = this._serviceWorkerManager.registrations().valuesArr
ay(); | 544 _registrationsUpdated(event) { |
| 583 for (var registration of registrations) { | 545 this._versionByTargetId.clear(); |
| 584 var versions = registration.versions.valuesArray(); | 546 var registrations = this._serviceWorkerManager.registrations().valuesArray()
; |
| 585 for (var version of versions) { | 547 for (var registration of registrations) { |
| 586 if (version.targetId) | 548 var versions = registration.versions.valuesArray(); |
| 587 this._versionByTargetId.set(version.targetId, version); | 549 for (var version of versions) { |
| 588 } | 550 if (version.targetId) |
| 589 } | 551 this._versionByTargetId.set(version.targetId, version); |
| 590 this._updateAllContextLabels(); | 552 } |
| 591 }, | 553 } |
| 592 | 554 this._updateAllContextLabels(); |
| 593 /** | 555 } |
| 594 * @param {!WebInspector.Event} event | 556 |
| 595 */ | 557 /** |
| 596 _executionContextCreated: function(event) | 558 * @param {!WebInspector.Event} event |
| 597 { | 559 */ |
| 598 var executionContext = /** @type {!WebInspector.ExecutionContext} */ (ev
ent.data); | 560 _executionContextCreated(event) { |
| 599 var serviceWorkerTargetId = this._serviceWorkerTargetIdForWorker(executi
onContext.target()); | 561 var executionContext = /** @type {!WebInspector.ExecutionContext} */ (event.
data); |
| 600 if (!serviceWorkerTargetId) | 562 var serviceWorkerTargetId = this._serviceWorkerTargetIdForWorker(executionCo
ntext.target()); |
| 601 return; | 563 if (!serviceWorkerTargetId) |
| 602 this._updateContextLabel(executionContext, this._versionByTargetId.get(s
erviceWorkerTargetId) || null); | 564 return; |
| 603 }, | 565 this._updateContextLabel(executionContext, this._versionByTargetId.get(servi
ceWorkerTargetId) || null); |
| 604 | 566 } |
| 605 /** | 567 |
| 606 * @param {!WebInspector.Target} target | 568 /** |
| 607 * @return {?string} | 569 * @param {!WebInspector.Target} target |
| 608 */ | 570 * @return {?string} |
| 609 _serviceWorkerTargetIdForWorker: function(target) | 571 */ |
| 610 { | 572 _serviceWorkerTargetIdForWorker(target) { |
| 611 var parent = target.parentTarget(); | 573 var parent = target.parentTarget(); |
| 612 if (!parent || parent.parentTarget() !== this._target) | 574 if (!parent || parent.parentTarget() !== this._target) |
| 613 return null; | 575 return null; |
| 614 var targetInfo = this._subTargetsManager.targetInfo(parent); | 576 var targetInfo = this._subTargetsManager.targetInfo(parent); |
| 615 if (!targetInfo || targetInfo.type !== "service_worker") | 577 if (!targetInfo || targetInfo.type !== 'service_worker') |
| 616 return null; | 578 return null; |
| 617 return targetInfo.id; | 579 return targetInfo.id; |
| 618 }, | 580 } |
| 619 | 581 |
| 620 _updateAllContextLabels: function() | 582 _updateAllContextLabels() { |
| 621 { | 583 for (var target of WebInspector.targetManager.targets()) { |
| 622 for (var target of WebInspector.targetManager.targets()) { | 584 var serviceWorkerTargetId = this._serviceWorkerTargetIdForWorker(target); |
| 623 var serviceWorkerTargetId = this._serviceWorkerTargetIdForWorker(tar
get); | 585 if (!serviceWorkerTargetId) |
| 624 if (!serviceWorkerTargetId) | 586 continue; |
| 625 continue; | 587 var version = this._versionByTargetId.get(serviceWorkerTargetId) || null; |
| 626 var version = this._versionByTargetId.get(serviceWorkerTargetId) ||
null; | 588 for (var context of target.runtimeModel.executionContexts()) |
| 627 for (var context of target.runtimeModel.executionContexts()) | 589 this._updateContextLabel(context, version); |
| 628 this._updateContextLabel(context, version); | 590 } |
| 629 } | 591 } |
| 630 }, | 592 |
| 631 | 593 /** |
| 632 /** | 594 * @param {!WebInspector.ExecutionContext} context |
| 633 * @param {!WebInspector.ExecutionContext} context | 595 * @param {?WebInspector.ServiceWorkerVersion} version |
| 634 * @param {?WebInspector.ServiceWorkerVersion} version | 596 */ |
| 635 */ | 597 _updateContextLabel(context, version) { |
| 636 _updateContextLabel: function(context, version) | 598 var parsedUrl = context.origin.asParsedURL(); |
| 637 { | 599 var label = parsedUrl ? parsedUrl.lastPathComponentWithFragment() : context.
name; |
| 638 var parsedUrl = context.origin.asParsedURL(); | 600 if (version) |
| 639 var label = parsedUrl ? parsedUrl.lastPathComponentWithFragment() : cont
ext.name; | 601 context.setLabel(label + ' #' + version.id + ' (' + version.status + ')'); |
| 640 if (version) | 602 else |
| 641 context.setLabel(label + " #" + version.id + " (" + version.status +
")"); | 603 context.setLabel(label); |
| 642 else | 604 } |
| 643 context.setLabel(label); | 605 }; |
| 644 }, | |
| 645 }; | |
| OLD | NEW |