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 |