| 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() |
| 11 { | 11 { |
| 12 WebInspector.VBox.call(this, true); | 12 WebInspector.VBox.call(this, true); |
| 13 this.registerRequiredCSS("resources/serviceWorkersView.css"); | 13 this.registerRequiredCSS("resources/serviceWorkersView.css"); |
| 14 this.contentElement.classList.add("service-workers-view"); | 14 this.contentElement.classList.add("service-workers-view"); |
| 15 | 15 |
| 16 |
| 17 /** @type {boolean} */ |
| 18 this._showAll = false; |
| 16 /** @type {!Set.<string>} */ | 19 /** @type {!Set.<string>} */ |
| 17 this._securityOriginHosts = new Set(); | 20 this._securityOriginHosts = new Set(); |
| 18 /** @type {!Map.<string, !WebInspector.ServiceWorkerOriginWidget>} */ | 21 /** @type {!Map.<string, !WebInspector.ServiceWorkerOriginWidget>} */ |
| 19 this._originHostToOriginWidgetMap = new Map(); | 22 this._originHostToOriginWidgetMap = new Map(); |
| 20 /** @type {!Map.<string, !WebInspector.ServiceWorkerOriginWidget>} */ | 23 /** @type {!Map.<string, !WebInspector.ServiceWorkerOriginWidget>} */ |
| 21 this._registrationIdToOriginWidgetMap = new Map(); | 24 this._registrationIdToOriginWidgetMap = new Map(); |
| 22 | 25 |
| 23 this._toolbar = new WebInspector.Toolbar("", this.contentElement); | 26 this._toolbar = new WebInspector.Toolbar("", this.contentElement); |
| 24 | 27 |
| 25 this._root = this.contentElement.createChild("div"); | 28 this._root = this.contentElement.createChild("div"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 36 targetAdded: function(target) | 39 targetAdded: function(target) |
| 37 { | 40 { |
| 38 if (this._target) | 41 if (this._target) |
| 39 return; | 42 return; |
| 40 this._target = target; | 43 this._target = target; |
| 41 this._manager = this._target.serviceWorkerManager; | 44 this._manager = this._target.serviceWorkerManager; |
| 42 | 45 |
| 43 var forceUpdate = new WebInspector.ToolbarCheckbox(WebInspector.UIString
("Update on reload"), WebInspector.UIString("Update Service Worker on page reloa
d"), this._manager.forceUpdateOnReloadSetting()); | 46 var forceUpdate = new WebInspector.ToolbarCheckbox(WebInspector.UIString
("Update on reload"), WebInspector.UIString("Update Service Worker on page reloa
d"), this._manager.forceUpdateOnReloadSetting()); |
| 44 this._toolbar.appendToolbarItem(forceUpdate); | 47 this._toolbar.appendToolbarItem(forceUpdate); |
| 45 | 48 |
| 49 this._showAllCheckbox = new WebInspector.ToolbarCheckbox(WebInspector.UI
String("Show all"), WebInspector.UIString("Show all Service Workers")); |
| 50 this._showAllCheckbox.inputElement.addEventListener("change", this._onSh
owAllCheckboxChanged.bind(this), false); |
| 51 this._toolbar.appendToolbarItem(this._showAllCheckbox); |
| 52 |
| 46 for (var registration of this._manager.registrations().values()) | 53 for (var registration of this._manager.registrations().values()) |
| 47 this._updateRegistration(registration); | 54 this._updateRegistration(registration); |
| 48 | 55 |
| 49 this._manager.addEventListener(WebInspector.ServiceWorkerManager.Events.
RegistrationUpdated, this._registrationUpdated, this); | 56 this._manager.addEventListener(WebInspector.ServiceWorkerManager.Events.
RegistrationUpdated, this._registrationUpdated, this); |
| 50 this._manager.addEventListener(WebInspector.ServiceWorkerManager.Events.
RegistrationDeleted, this._registrationDeleted, this); | 57 this._manager.addEventListener(WebInspector.ServiceWorkerManager.Events.
RegistrationDeleted, this._registrationDeleted, this); |
| 51 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre
eModel.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this); | 58 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre
eModel.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this); |
| 52 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre
eModel.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this); | 59 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre
eModel.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this); |
| 53 var securityOrigins = this._target.resourceTreeModel.securityOrigins(); | 60 var securityOrigins = this._target.resourceTreeModel.securityOrigins(); |
| 54 for (var i = 0; i < securityOrigins.length; ++i) | 61 for (var i = 0; i < securityOrigins.length; ++i) |
| 55 this._addOrigin(securityOrigins[i]); | 62 this._addOrigin(securityOrigins[i]); |
| 56 }, | 63 }, |
| 57 | 64 |
| 58 /** | 65 /** |
| 59 * @override | 66 * @override |
| 60 * @param {!WebInspector.Target} target | 67 * @param {!WebInspector.Target} target |
| 61 */ | 68 */ |
| 62 targetRemoved: function(target) | 69 targetRemoved: function(target) |
| 63 { | 70 { |
| 64 if (target !== this._target) | 71 if (target !== this._target) |
| 65 return; | 72 return; |
| 66 delete this._target; | 73 delete this._target; |
| 67 }, | 74 }, |
| 68 | 75 |
| 69 /** | 76 /** |
| 77 * @param {!Event} event |
| 78 */ |
| 79 _onShowAllCheckboxChanged: function(event) |
| 80 { |
| 81 this._showAll = this._showAllCheckbox.checked(); |
| 82 if (this._showAll) { |
| 83 for (var originWidget of this._originHostToOriginWidgetMap.values())
{ |
| 84 if (!originWidget.parentWidget()) |
| 85 originWidget.show(this._root); |
| 86 } |
| 87 } else { |
| 88 for (var originWidget of this._originHostToOriginWidgetMap.values())
{ |
| 89 if (originWidget.parentWidget() && !this._securityOriginHosts.ha
s(originWidget._originHost)) |
| 90 originWidget.detach(); |
| 91 } |
| 92 } |
| 93 }, |
| 94 |
| 95 /** |
| 70 * @param {!WebInspector.Event} event | 96 * @param {!WebInspector.Event} event |
| 71 */ | 97 */ |
| 72 _registrationUpdated: function(event) | 98 _registrationUpdated: function(event) |
| 73 { | 99 { |
| 74 var registration = /** @type {!WebInspector.ServiceWorkerRegistration} *
/ (event.data); | 100 var registration = /** @type {!WebInspector.ServiceWorkerRegistration} *
/ (event.data); |
| 75 this._updateRegistration(registration); | 101 this._updateRegistration(registration); |
| 76 }, | 102 }, |
| 77 | 103 |
| 78 /** | 104 /** |
| 79 * @param {!WebInspector.ServiceWorkerRegistration} registration | 105 * @param {!WebInspector.ServiceWorkerRegistration} registration |
| 80 */ | 106 */ |
| 81 _updateRegistration: function(registration) | 107 _updateRegistration: function(registration) |
| 82 { | 108 { |
| 83 var parsedURL = registration.scopeURL.asParsedURL(); | 109 var parsedURL = registration.scopeURL.asParsedURL(); |
| 84 if (!parsedURL) | 110 if (!parsedURL) |
| 85 return; | 111 return; |
| 86 var originHost = parsedURL.host; | 112 var originHost = parsedURL.host; |
| 87 var originWidget = this._originHostToOriginWidgetMap.get(originHost); | 113 var originWidget = this._originHostToOriginWidgetMap.get(originHost); |
| 88 if (!originWidget) { | 114 if (!originWidget) { |
| 89 originWidget = new WebInspector.ServiceWorkerOriginWidget(this._mana
ger, originHost); | 115 originWidget = new WebInspector.ServiceWorkerOriginWidget(this._mana
ger, originHost); |
| 90 if (this._securityOriginHosts.has(originHost)) | 116 if (this._securityOriginHosts.has(originHost) || this._showAll) |
| 91 originWidget.show(this._root); | 117 originWidget.show(this._root); |
| 92 this._originHostToOriginWidgetMap.set(originHost, originWidget); | 118 this._originHostToOriginWidgetMap.set(originHost, originWidget); |
| 93 } | 119 } |
| 94 this._registrationIdToOriginWidgetMap.set(registration.id, originWidget)
; | 120 this._registrationIdToOriginWidgetMap.set(registration.id, originWidget)
; |
| 95 originWidget._updateRegistration(registration); | 121 originWidget._updateRegistration(registration); |
| 96 }, | 122 }, |
| 97 | 123 |
| 98 /** | 124 /** |
| 99 * @param {!WebInspector.Event} event | 125 * @param {!WebInspector.Event} event |
| 100 */ | 126 */ |
| 101 _registrationDeleted: function(event) | 127 _registrationDeleted: function(event) |
| 102 { | 128 { |
| 103 var registration = /** @type {!WebInspector.ServiceWorkerRegistration} *
/ (event.data); | 129 var registration = /** @type {!WebInspector.ServiceWorkerRegistration} *
/ (event.data); |
| 104 var registrationId = registration.id; | 130 var registrationId = registration.id; |
| 105 var originWidget = this._registrationIdToOriginWidgetMap.get(registratio
nId); | 131 var originWidget = this._registrationIdToOriginWidgetMap.get(registratio
nId); |
| 106 if (!originWidget) | 132 if (!originWidget) |
| 107 return; | 133 return; |
| 108 this._registrationIdToOriginWidgetMap.delete(registrationId); | 134 this._registrationIdToOriginWidgetMap.delete(registrationId); |
| 109 originWidget._deleteRegistration(registrationId); | 135 originWidget._deleteRegistration(registrationId); |
| 110 if (originWidget._hasRegistration()) | 136 if (originWidget._hasRegistration()) |
| 111 return; | 137 return; |
| 112 if (this._securityOriginHosts.has(originWidget._originHost)) | 138 if (originWidget.parentWidget()) |
| 113 originWidget.detach(); | 139 originWidget.detach(); |
| 114 this._originHostToOriginWidgetMap.delete(originWidget._originHost); | 140 this._originHostToOriginWidgetMap.delete(originWidget._originHost); |
| 115 }, | 141 }, |
| 116 | 142 |
| 117 /** | 143 /** |
| 118 * @param {!WebInspector.Event} event | 144 * @param {!WebInspector.Event} event |
| 119 */ | 145 */ |
| 120 _securityOriginAdded: function(event) | 146 _securityOriginAdded: function(event) |
| 121 { | 147 { |
| 122 this._addOrigin(/** @type {string} */ (event.data)); | 148 this._addOrigin(/** @type {string} */ (event.data)); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 146 _securityOriginRemoved: function(event) | 172 _securityOriginRemoved: function(event) |
| 147 { | 173 { |
| 148 var securityOrigin = /** @type {string} */ (event.data); | 174 var securityOrigin = /** @type {string} */ (event.data); |
| 149 var parsedURL = securityOrigin.asParsedURL(); | 175 var parsedURL = securityOrigin.asParsedURL(); |
| 150 if (!parsedURL) | 176 if (!parsedURL) |
| 151 return; | 177 return; |
| 152 var originHost = parsedURL.host; | 178 var originHost = parsedURL.host; |
| 153 if (!this._securityOriginHosts.has(originHost)) | 179 if (!this._securityOriginHosts.has(originHost)) |
| 154 return; | 180 return; |
| 155 this._securityOriginHosts.delete(originHost); | 181 this._securityOriginHosts.delete(originHost); |
| 182 if (this._showAll) |
| 183 return; |
| 156 var originWidget = this._originHostToOriginWidgetMap.get(originHost); | 184 var originWidget = this._originHostToOriginWidgetMap.get(originHost); |
| 157 if (!originWidget) | 185 if (!originWidget) |
| 158 return; | 186 return; |
| 159 originWidget.detach(); | 187 originWidget.detach(); |
| 160 }, | 188 }, |
| 161 | 189 |
| 162 __proto__: WebInspector.VBox.prototype | 190 __proto__: WebInspector.VBox.prototype |
| 163 } | 191 } |
| 164 | 192 |
| 165 /** | 193 /** |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 * @param {string} versionId | 573 * @param {string} versionId |
| 546 * @param {!Event} event | 574 * @param {!Event} event |
| 547 */ | 575 */ |
| 548 _inspectButtonClicked: function(versionId, event) | 576 _inspectButtonClicked: function(versionId, event) |
| 549 { | 577 { |
| 550 this._manager.inspectWorker(versionId); | 578 this._manager.inspectWorker(versionId); |
| 551 }, | 579 }, |
| 552 | 580 |
| 553 __proto__: WebInspector.VBox.prototype | 581 __proto__: WebInspector.VBox.prototype |
| 554 } | 582 } |
| OLD | NEW |