Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.VBox} | 7 * @extends {WebInspector.VBox} |
| 8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
| 9 */ | 9 */ |
| 10 WebInspector.ServiceWorkersView = function() | 10 WebInspector.ServiceWorkersView = function() |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration | 78 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration |
| 79 */ | 79 */ |
| 80 _updateRegistration: function(registration) | 80 _updateRegistration: function(registration) |
| 81 { | 81 { |
| 82 var parsedURL = registration.scopeURL.asParsedURL(); | 82 var parsedURL = registration.scopeURL.asParsedURL(); |
| 83 if (!parsedURL) | 83 if (!parsedURL) |
| 84 return; | 84 return; |
| 85 var originHost = parsedURL.host; | 85 var originHost = parsedURL.host; |
| 86 var originElement = this._originHostToOriginElementMap.get(originHost); | 86 var originElement = this._originHostToOriginElementMap.get(originHost); |
| 87 if (!originElement) { | 87 if (!originElement) { |
| 88 originElement = new WebInspector.ServiceWorkerOriginElement(originHo st); | 88 originElement = new WebInspector.ServiceWorkerOriginElement(this._ma nager, originHost); |
| 89 if (this._securityOriginHosts.has(originHost)) | 89 if (this._securityOriginHosts.has(originHost)) |
| 90 this._appendOriginNode(originElement); | 90 this._appendOriginNode(originElement); |
| 91 this._originHostToOriginElementMap.set(originHost, originElement); | 91 this._originHostToOriginElementMap.set(originHost, originElement); |
| 92 } | 92 } |
| 93 this._registrationIdToOriginElementMap.set(registration.registrationId, originElement); | 93 this._registrationIdToOriginElementMap.set(registration.registrationId, originElement); |
| 94 originElement._updateRegistration(registration); | 94 originElement._updateRegistration(registration); |
| 95 }, | 95 }, |
| 96 | 96 |
| 97 /** | 97 /** |
| 98 * @param {!WebInspector.Event} event | 98 * @param {!WebInspector.Event} event |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 200 _removeOriginNode: function(originElement) | 200 _removeOriginNode: function(originElement) |
| 201 { | 201 { |
| 202 this.root.removeChild(originElement.element); | 202 this.root.removeChild(originElement.element); |
| 203 }, | 203 }, |
| 204 | 204 |
| 205 __proto__: WebInspector.VBox.prototype | 205 __proto__: WebInspector.VBox.prototype |
| 206 } | 206 } |
| 207 | 207 |
| 208 /** | 208 /** |
| 209 * @constructor | 209 * @constructor |
| 210 * @param {!WebInspector.ServiceWorkerManager} manager | |
| 210 * @param {string} originHost | 211 * @param {string} originHost |
| 211 */ | 212 */ |
| 212 WebInspector.ServiceWorkerOriginElement = function(originHost) | 213 WebInspector.ServiceWorkerOriginElement = function(manager, originHost) |
| 213 { | 214 { |
| 215 this._manager = manager; | |
| 214 /** @type {!Map.<string, !WebInspector.SWRegistrationElement>} */ | 216 /** @type {!Map.<string, !WebInspector.SWRegistrationElement>} */ |
| 215 this._registrationElements = new Map(); | 217 this._registrationElements = new Map(); |
| 216 this.originHost = originHost; | 218 this.originHost = originHost; |
| 217 this.element = createElementWithClass("div", "service-workers-origin"); | 219 this.element = createElementWithClass("div", "service-workers-origin"); |
| 218 this._listItemNode = this.element.createChild("li", "service-workers-origin- title"); | 220 this._listItemNode = this.element.createChild("li", "service-workers-origin- title"); |
| 219 this._listItemNode.createChild("div").createTextChild(originHost); | 221 this._listItemNode.createChild("div").createTextChild(originHost); |
| 220 this._childrenListNode = this.element.createChild("ol"); | 222 this._childrenListNode = this.element.createChild("ol"); |
| 221 } | 223 } |
| 222 | 224 |
| 223 WebInspector.ServiceWorkerOriginElement.prototype = { | 225 WebInspector.ServiceWorkerOriginElement.prototype = { |
| 224 /** | 226 /** |
| 225 * @return {boolean} | 227 * @return {boolean} |
| 226 */ | 228 */ |
| 227 _hasRegistration: function() | 229 _hasRegistration: function() |
| 228 { | 230 { |
| 229 return this._registrationElements.size != 0; | 231 return this._registrationElements.size != 0; |
| 230 }, | 232 }, |
| 231 | 233 |
| 232 /** | 234 /** |
| 233 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration | 235 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration |
| 234 */ | 236 */ |
| 235 _updateRegistration: function(registration) | 237 _updateRegistration: function(registration) |
| 236 { | 238 { |
| 237 var swRegistrationElement = this._registrationElements.get(registration. registrationId); | 239 var swRegistrationElement = this._registrationElements.get(registration. registrationId); |
| 238 if (swRegistrationElement) { | 240 if (swRegistrationElement) { |
| 239 swRegistrationElement._updateRegistration(registration); | 241 swRegistrationElement._updateRegistration(registration); |
| 240 return; | 242 return; |
| 241 } | 243 } |
| 242 swRegistrationElement = new WebInspector.SWRegistrationElement(registrat ion); | 244 swRegistrationElement = new WebInspector.SWRegistrationElement(this._man ager, registration); |
| 243 this._registrationElements.set(registration.registrationId, swRegistrati onElement); | 245 this._registrationElements.set(registration.registrationId, swRegistrati onElement); |
| 244 this._childrenListNode.appendChild(swRegistrationElement.element); | 246 this._childrenListNode.appendChild(swRegistrationElement.element); |
| 245 }, | 247 }, |
| 246 | 248 |
| 247 /** | 249 /** |
| 248 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration | 250 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration |
| 249 */ | 251 */ |
| 250 _deleteRegistration: function(registration) | 252 _deleteRegistration: function(registration) |
| 251 { | 253 { |
| 252 var swRegistrationElement = this._registrationElements.get(registration. registrationId); | 254 var swRegistrationElement = this._registrationElements.get(registration. registrationId); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 274 { | 276 { |
| 275 var swRegistrationElement = this._registrationElements.get(version.regis trationId); | 277 var swRegistrationElement = this._registrationElements.get(version.regis trationId); |
| 276 if (!swRegistrationElement) | 278 if (!swRegistrationElement) |
| 277 return; | 279 return; |
| 278 swRegistrationElement._deleteVersion(version); | 280 swRegistrationElement._deleteVersion(version); |
| 279 } | 281 } |
| 280 } | 282 } |
| 281 | 283 |
| 282 /** | 284 /** |
| 283 * @constructor | 285 * @constructor |
| 286 * @param {!WebInspector.ServiceWorkerManager} manager | |
| 284 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration | 287 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration |
| 285 */ | 288 */ |
| 286 WebInspector.SWRegistrationElement = function(registration) | 289 WebInspector.SWRegistrationElement = function(manager, registration) |
| 287 { | 290 { |
| 291 this._manager = manager; | |
| 288 /** @type {!ServiceWorkerAgent.ServiceWorkerRegistration} */ | 292 /** @type {!ServiceWorkerAgent.ServiceWorkerRegistration} */ |
| 289 this._registration = registration; | 293 this._registration = registration; |
| 290 /** @type {!Map.<string, !ServiceWorkerAgent.ServiceWorkerVersion>} */ | 294 /** @type {!Map.<string, !ServiceWorkerAgent.ServiceWorkerVersion>} */ |
| 291 this._versions = new Map(); | 295 this._versions = new Map(); |
| 292 this.element = createElementWithClass("div", "service-workers-registration") ; | 296 this.element = createElementWithClass("div", "service-workers-registration") ; |
| 293 this._titleNode = this.element.createChild("li").createChild("div", "service -workers-registration-title"); | 297 var headerNode = this.element.createChild("li").createChild("div", "service- workers-registration-header"); |
| 298 this._titleNode = headerNode.createChild("div", "service-workers-registratio n-title"); | |
| 299 this._unregisterButton = headerNode.createChild("button", "service-workers-b utton service-workers-unregister-button"); | |
| 300 this._unregisterButton.addEventListener("click", this._unregisterButtonClick ed.bind(this), false); | |
| 301 this._unregisterButton.title = WebInspector.UIString("Unregister"); | |
| 294 this._childrenListNode = this.element.createChild("ol"); | 302 this._childrenListNode = this.element.createChild("ol"); |
| 295 this._updateRegistration(registration); | 303 this._updateRegistration(registration); |
| 296 } | 304 } |
| 297 | 305 |
| 298 /** @enum {string} */ | 306 /** @enum {string} */ |
| 299 WebInspector.SWRegistrationElement.VersionMode = { | 307 WebInspector.SWRegistrationElement.VersionMode = { |
| 300 Installing: "installing", | 308 Installing: "installing", |
| 301 Waiting: "waiting", | 309 Waiting: "waiting", |
| 302 Active: "active", | 310 Active: "active", |
| 303 Redundant: "redundant", | 311 Redundant: "redundant", |
| 304 } | 312 } |
| 305 | 313 |
| 306 /** @type {!Map.<string, string>} */ | 314 /** @type {!Map.<string, string>} */ |
| 307 WebInspector.SWRegistrationElement.VersionStausToModeMap = new Map([ | 315 WebInspector.SWRegistrationElement.VersionStausToModeMap = new Map([ |
| 308 [ServiceWorkerAgent.ServiceWorkerVersionStatus.New, WebInspector.SWRegistrat ionElement.VersionMode.Installing], | 316 [ServiceWorkerAgent.ServiceWorkerVersionStatus.New, WebInspector.SWRegistrat ionElement.VersionMode.Installing], |
| 309 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Installing, WebInspector.SWRe gistrationElement.VersionMode.Installing], | 317 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Installing, WebInspector.SWRe gistrationElement.VersionMode.Installing], |
| 310 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Installed, WebInspector.SWReg istrationElement.VersionMode.Waiting], | 318 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Installed, WebInspector.SWReg istrationElement.VersionMode.Waiting], |
| 311 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Activating, WebInspector.SWRe gistrationElement.VersionMode.Active], | 319 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Activating, WebInspector.SWRe gistrationElement.VersionMode.Active], |
| 312 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Activated, WebInspector.SWReg istrationElement.VersionMode.Active], | 320 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Activated, WebInspector.SWReg istrationElement.VersionMode.Active], |
| 313 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Redundant, WebInspector.SWReg istrationElement.VersionMode.Redundant]]); | 321 [ServiceWorkerAgent.ServiceWorkerVersionStatus.Redundant, WebInspector.SWReg istrationElement.VersionMode.Redundant]]); |
| 314 | 322 |
| 315 WebInspector.SWRegistrationElement.prototype = { | 323 WebInspector.SWRegistrationElement.prototype = { |
| 316 /** | 324 /** |
| 317 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration | 325 * @param {!ServiceWorkerAgent.ServiceWorkerRegistration} registration |
| 318 */ | 326 */ |
| 319 _updateRegistration: function(registration) | 327 _updateRegistration: function(registration) |
| 320 { | 328 { |
| 321 this._registration = registration; | 329 this._registration = registration; |
| 322 var text = WebInspector.UIString("Scope: ") + registration.scopeURL.asPa rsedURL().path; | 330 var text = WebInspector.UIString("Scope: ") + registration.scopeURL.asPa rsedURL().path; |
| 323 if (registration.isDeleted) | 331 if (registration.isDeleted) { |
| 324 text += " - deleted"; | 332 this._unregisterButton.style.display = "none"; |
| 333 text += " - deleted"; | |
|
pfeldman
2015/03/23 10:51:09
WebInspector.UIString supports message format %s,
horo
2015/03/23 11:22:24
Done.
| |
| 334 } else { | |
| 335 this._unregisterButton.style.display = "block"; | |
| 336 } | |
| 325 this._titleNode.textContent = text; | 337 this._titleNode.textContent = text; |
| 338 this._updateVersionList(); | |
| 326 }, | 339 }, |
| 327 | 340 |
| 328 /** | 341 /** |
| 329 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} version | 342 * @param {!ServiceWorkerAgent.ServiceWorkerVersion} version |
| 330 */ | 343 */ |
| 331 _updateVersion: function(version) | 344 _updateVersion: function(version) |
| 332 { | 345 { |
| 333 this._versions.set(version.versionId, version); | 346 this._versions.set(version.versionId, version); |
| 334 this._updateVersionList(); | 347 this._updateVersionList(); |
| 335 }, | 348 }, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 374 this._childrenListNode.appendChild(fragment); | 387 this._childrenListNode.appendChild(fragment); |
| 375 }, | 388 }, |
| 376 | 389 |
| 377 /** | 390 /** |
| 378 * @param {!Map.<string, !Array.<!ServiceWorkerAgent.ServiceWorkerVersion>>} modeVersionArrayMap | 391 * @param {!Map.<string, !Array.<!ServiceWorkerAgent.ServiceWorkerVersion>>} modeVersionArrayMap |
| 379 * @param {string} mode | 392 * @param {string} mode |
| 380 */ | 393 */ |
| 381 _createVersionModeRow: function(modeVersionArrayMap, mode) { | 394 _createVersionModeRow: function(modeVersionArrayMap, mode) { |
| 382 var versionList = /** @type {!Array.<!ServiceWorkerAgent.ServiceWorkerVe rsion>} */(modeVersionArrayMap.get(mode)); | 395 var versionList = /** @type {!Array.<!ServiceWorkerAgent.ServiceWorkerVe rsion>} */(modeVersionArrayMap.get(mode)); |
| 383 var modeRowElement = createElementWithClass("div", "service-workers-vers ion-mode-row service-workers-version-mode-row-" + mode); | 396 var modeRowElement = createElementWithClass("div", "service-workers-vers ion-mode-row service-workers-version-mode-row-" + mode); |
| 384 modeRowElement.createChild("div", "service-workers-version-mode").create TextChild(mode); | 397 modeRowElement.createChild("div", "service-workers-version-mode").create Child("div", "service-workers-version-mode-text").createTextChild(mode); |
| 385 var versionsElement = modeRowElement.createChild("div", "service-workers -versions" + mode); | 398 var versionsElement = modeRowElement.createChild("div", "service-workers -versions"); |
| 386 for (var version of versionList) { | 399 for (var version of versionList) { |
| 387 var stateRowElement = versionsElement.createChild("div", "service-wo rkers-version-row"); | 400 var stateRowElement = versionsElement.createChild("div", "service-wo rkers-version-row"); |
| 388 stateRowElement.createChild("div", "service-workers-version-status") .createTextChild(version.status); | 401 var statusDiv = stateRowElement.createChild("div", "service-workers- version-status"); |
| 389 stateRowElement.createChild("div", "service-workers-version-running- status").createTextChild(version.runningStatus); | 402 statusDiv.createChild("div", "service-workers-version-status-text"). createTextChild(version.status); |
| 390 stateRowElement.createChild("div", "service-workers-version-script-u rl").createTextChild(version.scriptURL.asParsedURL().path); | 403 var runningStatusDiv = stateRowElement.createChild("div", "service-w orkers-version-running-status"); |
| 404 if (version.runningStatus == ServiceWorkerAgent.ServiceWorkerVersion RunningStatus.Running || version.runningStatus == ServiceWorkerAgent.ServiceWork erVersionRunningStatus.Starting) { | |
| 405 var stopButton = runningStatusDiv.createChild("button", "service -workers-button service-workers-stop-button service-workers-version-running-stat us-button"); | |
| 406 stopButton.addEventListener("click", this._stopButtonClicked.bin d(this, version.versionId), false); | |
| 407 stopButton.title = WebInspector.UIString("Stop"); | |
| 408 } else if (version.runningStatus == ServiceWorkerAgent.ServiceWorker VersionRunningStatus.Stopped && !this._registration.isDeleted) { | |
| 409 var startButton = runningStatusDiv.createChild("button", "servic e-workers-button service-workers-start-button service-workers-version-running-st atus-button"); | |
| 410 startButton.addEventListener("click", this._startButtonClicked.b ind(this), false); | |
| 411 startButton.title = WebInspector.UIString("Start"); | |
| 412 } | |
| 413 runningStatusDiv.createChild("div", "service-workers-version-running -status-text").createTextChild(version.runningStatus); | |
| 414 var scriptURLDiv = stateRowElement.createChild("div", "service-worke rs-version-script-url"); | |
| 415 scriptURLDiv.createChild("div", "service-workers-version-script-url- text").createTextChild(version.scriptURL.asParsedURL().path); | |
| 416 if (version.runningStatus == ServiceWorkerAgent.ServiceWorkerVersion RunningStatus.Running || version.runningStatus == ServiceWorkerAgent.ServiceWork erVersionRunningStatus.Starting) { | |
| 417 var inspectButton = scriptURLDiv.createChild("span", "service-wo rkers-version-inspect"); | |
| 418 inspectButton.createTextChild(WebInspector.UIString("inspect")); | |
| 419 inspectButton.addEventListener("click", this._inspectButtonClick ed.bind(this, version.versionId), false); | |
| 420 } | |
| 391 } | 421 } |
| 392 if (versionList.length == 0) { | 422 if (versionList.length == 0) { |
| 393 var stateRowElement = versionsElement.createChild("div", "service-wo rkers-version-row"); | 423 var stateRowElement = versionsElement.createChild("div", "service-wo rkers-version-row"); |
| 394 stateRowElement.createChild("div", "service-workers-version-status") ; | 424 stateRowElement.createChild("div", "service-workers-version-status") ; |
| 395 stateRowElement.createChild("div", "service-workers-version-running- status"); | 425 stateRowElement.createChild("div", "service-workers-version-running- status"); |
| 396 stateRowElement.createChild("div", "service-workers-version-script-u rl"); | 426 stateRowElement.createChild("div", "service-workers-version-script-u rl"); |
| 397 } | 427 } |
| 398 return modeRowElement; | 428 return modeRowElement; |
| 429 }, | |
| 430 | |
| 431 /** | |
| 432 * @param {!Event} event | |
| 433 */ | |
| 434 _unregisterButtonClicked: function(event) { | |
|
pfeldman
2015/03/23 10:51:09
{ goes to the next line.
horo
2015/03/23 11:22:24
Done.
| |
| 435 this._manager.target().serviceWorkerAgent().unregister(this._registratio n.scopeURL); | |
|
pfeldman
2015/03/23 10:51:09
You should not talk to the agent from here, all ag
horo
2015/03/23 11:22:24
Done.
| |
| 436 }, | |
| 437 | |
| 438 /** | |
| 439 * @param {!Event} event | |
| 440 */ | |
| 441 _startButtonClicked: function(event) { | |
| 442 this._manager.target().serviceWorkerAgent().startWorker(this._registrati on.scopeURL); | |
| 443 }, | |
| 444 | |
| 445 /** | |
| 446 * @param {string} versionId | |
| 447 * @param {!Event} event | |
| 448 */ | |
| 449 _stopButtonClicked: function(versionId, event) { | |
| 450 this._manager.target().serviceWorkerAgent().stopWorker(versionId); | |
| 451 }, | |
| 452 | |
| 453 /** | |
| 454 * @param {string} versionId | |
| 455 * @param {!Event} event | |
| 456 */ | |
| 457 _inspectButtonClicked: function(versionId, event) { | |
| 458 this._manager.target().serviceWorkerAgent().inspectWorker(versionId); | |
| 399 } | 459 } |
| 400 } | 460 } |
| OLD | NEW |