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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/ServiceWorkerCacheModel.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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
5 /** 4 /**
6 * Invariant: This model can only be constructed on a ServiceWorker target. 5 * @unrestricted
7 * @constructor
8 * @extends {WebInspector.SDKModel}
9 * @param {!WebInspector.Target} target
10 * @param {!WebInspector.SecurityOriginManager} securityOriginManager
11 */ 6 */
12 WebInspector.ServiceWorkerCacheModel = function(target, securityOriginManager) 7 WebInspector.ServiceWorkerCacheModel = class extends WebInspector.SDKModel {
13 { 8 /**
14 WebInspector.SDKModel.call(this, WebInspector.ServiceWorkerCacheModel, targe t); 9 * Invariant: This model can only be constructed on a ServiceWorker target.
10 * @param {!WebInspector.Target} target
11 * @param {!WebInspector.SecurityOriginManager} securityOriginManager
12 */
13 constructor(target, securityOriginManager) {
14 super(WebInspector.ServiceWorkerCacheModel, target);
15 15
16 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */ 16 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */
17 this._caches = new Map(); 17 this._caches = new Map();
18 18
19 this._agent = target.cacheStorageAgent(); 19 this._agent = target.cacheStorageAgent();
20 20
21 this._securityOriginManager = securityOriginManager; 21 this._securityOriginManager = securityOriginManager;
22 22
23 /** @type {boolean} */ 23 /** @type {boolean} */
24 this._enabled = false; 24 this._enabled = false;
25 }
26
27 /**
28 * @param {!WebInspector.Target} target
29 * @return {?WebInspector.ServiceWorkerCacheModel}
30 */
31 static fromTarget(target) {
32 if (!target.hasBrowserCapability())
33 return null;
34 var instance =
35 /** @type {?WebInspector.ServiceWorkerCacheModel} */ (target.model(WebIn spector.ServiceWorkerCacheModel));
36 if (!instance)
37 instance =
38 new WebInspector.ServiceWorkerCacheModel(target, WebInspector.Security OriginManager.fromTarget(target));
39 return instance;
40 }
41
42 enable() {
43 if (this._enabled)
44 return;
45
46 this._securityOriginManager.addEventListener(
47 WebInspector.SecurityOriginManager.Events.SecurityOriginAdded, this._sec urityOriginAdded, this);
48 this._securityOriginManager.addEventListener(
49 WebInspector.SecurityOriginManager.Events.SecurityOriginRemoved, this._s ecurityOriginRemoved, this);
50
51 for (var securityOrigin of this._securityOriginManager.securityOrigins())
52 this._addOrigin(securityOrigin);
53 this._enabled = true;
54 }
55
56 /**
57 * @param {string} origin
58 */
59 clearForOrigin(origin) {
60 this._removeOrigin(origin);
61 this._addOrigin(origin);
62 }
63
64 refreshCacheNames() {
65 for (var cache of this._caches.values())
66 this._cacheRemoved(cache);
67 this._caches.clear();
68 var securityOrigins = this._securityOriginManager.securityOrigins();
69 for (var securityOrigin of securityOrigins)
70 this._loadCacheNames(securityOrigin);
71 }
72
73 /**
74 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
75 */
76 deleteCache(cache) {
77 /**
78 * @this {WebInspector.ServiceWorkerCacheModel}
79 */
80 function callback(error) {
81 if (error) {
82 console.error('ServiceWorkerCacheAgent error deleting cache ', cache.toS tring(), ': ', error);
83 return;
84 }
85 this._caches.delete(cache.cacheId);
86 this._cacheRemoved(cache);
87 }
88 this._agent.deleteCache(cache.cacheId, callback.bind(this));
89 }
90
91 /**
92 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
93 * @param {string} request
94 * @param {function()} callback
95 */
96 deleteCacheEntry(cache, request, callback) {
97 /**
98 * @param {?Protocol.Error} error
99 */
100 function myCallback(error) {
101 if (error) {
102 WebInspector.console.error(WebInspector.UIString(
103 'ServiceWorkerCacheAgent error deleting cache entry %s in cache: %s' , cache.toString(), error));
104 return;
105 }
106 callback();
107 }
108 this._agent.deleteEntry(cache.cacheId, request, myCallback);
109 }
110
111 /**
112 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
113 * @param {number} skipCount
114 * @param {number} pageSize
115 * @param {function(!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>, bool ean)} callback
116 */
117 loadCacheData(cache, skipCount, pageSize, callback) {
118 this._requestEntries(cache, skipCount, pageSize, callback);
119 }
120
121 /**
122 * @return {!Array.<!WebInspector.ServiceWorkerCacheModel.Cache>}
123 */
124 caches() {
125 var caches = new Array();
126 for (var cache of this._caches.values())
127 caches.push(cache);
128 return caches;
129 }
130
131 /**
132 * @override
133 */
134 dispose() {
135 for (var cache of this._caches.values())
136 this._cacheRemoved(cache);
137 this._caches.clear();
138 if (this._enabled) {
139 this._securityOriginManager.removeEventListener(
140 WebInspector.SecurityOriginManager.Events.SecurityOriginAdded, this._s ecurityOriginAdded, this);
141 this._securityOriginManager.removeEventListener(
142 WebInspector.SecurityOriginManager.Events.SecurityOriginRemoved, this. _securityOriginRemoved, this);
143 }
144 }
145
146 _addOrigin(securityOrigin) {
147 this._loadCacheNames(securityOrigin);
148 }
149
150 /**
151 * @param {string} securityOrigin
152 */
153 _removeOrigin(securityOrigin) {
154 for (var opaqueId of this._caches.keys()) {
155 var cache = this._caches.get(opaqueId);
156 if (cache.securityOrigin === securityOrigin) {
157 this._caches.delete(opaqueId);
158 this._cacheRemoved(cache);
159 }
160 }
161 }
162
163 /**
164 * @param {string} securityOrigin
165 */
166 _loadCacheNames(securityOrigin) {
167 /**
168 * @param {?Protocol.Error} error
169 * @param {!Array.<!WebInspector.ServiceWorkerCacheModel.Cache>} caches
170 * @this {WebInspector.ServiceWorkerCacheModel}
171 */
172 function callback(error, caches) {
173 if (error) {
174 console.error('ServiceWorkerCacheAgent error while loading caches: ', er ror);
175 return;
176 }
177 this._updateCacheNames(securityOrigin, caches);
178 }
179 this._agent.requestCacheNames(securityOrigin, callback.bind(this));
180 }
181
182 /**
183 * @param {string} securityOrigin
184 * @param {!Array} cachesJson
185 */
186 _updateCacheNames(securityOrigin, cachesJson) {
187 /**
188 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
189 * @this {WebInspector.ServiceWorkerCacheModel}
190 */
191 function deleteAndSaveOldCaches(cache) {
192 if (cache.securityOrigin === securityOrigin && !updatingCachesIds.has(cach e.cacheId)) {
193 oldCaches.set(cache.cacheId, cache);
194 this._caches.delete(cache.cacheId);
195 }
196 }
197
198 /** @type {!Set<string>} */
199 var updatingCachesIds = new Set();
200 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */
201 var newCaches = new Map();
202 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */
203 var oldCaches = new Map();
204
205 for (var cacheJson of cachesJson) {
206 var cache = new WebInspector.ServiceWorkerCacheModel.Cache(
207 cacheJson.securityOrigin, cacheJson.cacheName, cacheJson.cacheId);
208 updatingCachesIds.add(cache.cacheId);
209 if (this._caches.has(cache.cacheId))
210 continue;
211 newCaches.set(cache.cacheId, cache);
212 this._caches.set(cache.cacheId, cache);
213 }
214 this._caches.forEach(deleteAndSaveOldCaches, this);
215 newCaches.forEach(this._cacheAdded, this);
216 oldCaches.forEach(this._cacheRemoved, this);
217 }
218
219 /**
220 * @param {!WebInspector.Event} event
221 */
222 _securityOriginAdded(event) {
223 var securityOrigin = /** @type {string} */ (event.data);
224 this._addOrigin(securityOrigin);
225 }
226
227 /**
228 * @param {!WebInspector.Event} event
229 */
230 _securityOriginRemoved(event) {
231 var securityOrigin = /** @type {string} */ (event.data);
232 this._removeOrigin(securityOrigin);
233 }
234
235 /**
236 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
237 */
238 _cacheAdded(cache) {
239 this.dispatchEventToListeners(WebInspector.ServiceWorkerCacheModel.Events.Ca cheAdded, cache);
240 }
241
242 /**
243 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
244 */
245 _cacheRemoved(cache) {
246 this.dispatchEventToListeners(WebInspector.ServiceWorkerCacheModel.Events.Ca cheRemoved, cache);
247 }
248
249 /**
250 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
251 * @param {number} skipCount
252 * @param {number} pageSize
253 * @param {function(!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>, bool ean)} callback
254 */
255 _requestEntries(cache, skipCount, pageSize, callback) {
256 /**
257 * @param {?Protocol.Error} error
258 * @param {!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>} dataEntries
259 * @param {boolean} hasMore
260 */
261 function innerCallback(error, dataEntries, hasMore) {
262 if (error) {
263 console.error('ServiceWorkerCacheAgent error while requesting entries: ' , error);
264 return;
265 }
266 var entries = [];
267 for (var i = 0; i < dataEntries.length; ++i) {
268 entries.push(new WebInspector.ServiceWorkerCacheModel.Entry(dataEntries[ i].request, dataEntries[i].response));
269 }
270 callback(entries, hasMore);
271 }
272 this._agent.requestEntries(cache.cacheId, skipCount, pageSize, innerCallback );
273 }
25 }; 274 };
26 275
27 /** @enum {symbol} */ 276 /** @enum {symbol} */
28 WebInspector.ServiceWorkerCacheModel.Events = { 277 WebInspector.ServiceWorkerCacheModel.Events = {
29 CacheAdded: Symbol("CacheAdded"), 278 CacheAdded: Symbol('CacheAdded'),
30 CacheRemoved: Symbol("CacheRemoved") 279 CacheRemoved: Symbol('CacheRemoved')
31 }; 280 };
32 281
33 WebInspector.ServiceWorkerCacheModel.prototype = {
34 enable: function()
35 {
36 if (this._enabled)
37 return;
38
39 this._securityOriginManager.addEventListener(WebInspector.SecurityOrigin Manager.Events.SecurityOriginAdded, this._securityOriginAdded, this);
40 this._securityOriginManager.addEventListener(WebInspector.SecurityOrigin Manager.Events.SecurityOriginRemoved, this._securityOriginRemoved, this);
41
42 for (var securityOrigin of this._securityOriginManager.securityOrigins() )
43 this._addOrigin(securityOrigin);
44 this._enabled = true;
45 },
46
47 /**
48 * @param {string} origin
49 */
50 clearForOrigin: function(origin)
51 {
52 this._removeOrigin(origin);
53 this._addOrigin(origin);
54 },
55
56 refreshCacheNames: function()
57 {
58 for (var cache of this._caches.values())
59 this._cacheRemoved(cache);
60 this._caches.clear();
61 var securityOrigins = this._securityOriginManager.securityOrigins();
62 for (var securityOrigin of securityOrigins)
63 this._loadCacheNames(securityOrigin);
64 },
65
66 /**
67 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
68 */
69 deleteCache: function(cache)
70 {
71 /**
72 * @this {WebInspector.ServiceWorkerCacheModel}
73 */
74 function callback(error)
75 {
76 if (error) {
77 console.error("ServiceWorkerCacheAgent error deleting cache ", c ache.toString(), ": ", error);
78 return;
79 }
80 this._caches.delete(cache.cacheId);
81 this._cacheRemoved(cache);
82 }
83 this._agent.deleteCache(cache.cacheId, callback.bind(this));
84 },
85
86 /**
87 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
88 * @param {string} request
89 * @param {function()} callback
90 */
91 deleteCacheEntry: function(cache, request, callback)
92 {
93
94 /**
95 * @param {?Protocol.Error} error
96 */
97 function myCallback(error)
98 {
99 if (error) {
100 WebInspector.console.error(WebInspector.UIString("ServiceWorkerC acheAgent error deleting cache entry %s in cache: %s", cache.toString(), error)) ;
101 return;
102 }
103 callback();
104 }
105 this._agent.deleteEntry(cache.cacheId, request, myCallback);
106 },
107
108 /**
109 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
110 * @param {number} skipCount
111 * @param {number} pageSize
112 * @param {function(!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>, bo olean)} callback
113 */
114 loadCacheData: function(cache, skipCount, pageSize, callback)
115 {
116 this._requestEntries(cache, skipCount, pageSize, callback);
117 },
118
119 /**
120 * @return {!Array.<!WebInspector.ServiceWorkerCacheModel.Cache>}
121 */
122 caches: function()
123 {
124 var caches = new Array();
125 for (var cache of this._caches.values())
126 caches.push(cache);
127 return caches;
128 },
129
130 dispose: function()
131 {
132 for (var cache of this._caches.values())
133 this._cacheRemoved(cache);
134 this._caches.clear();
135 if (this._enabled) {
136 this._securityOriginManager.removeEventListener(WebInspector.Securit yOriginManager.Events.SecurityOriginAdded, this._securityOriginAdded, this);
137 this._securityOriginManager.removeEventListener(WebInspector.Securit yOriginManager.Events.SecurityOriginRemoved, this._securityOriginRemoved, this);
138 }
139 },
140
141 _addOrigin: function(securityOrigin)
142 {
143 this._loadCacheNames(securityOrigin);
144 },
145
146 /**
147 * @param {string} securityOrigin
148 */
149 _removeOrigin: function(securityOrigin)
150 {
151 for (var opaqueId of this._caches.keys()) {
152 var cache = this._caches.get(opaqueId);
153 if (cache.securityOrigin === securityOrigin) {
154 this._caches.delete(opaqueId);
155 this._cacheRemoved(cache);
156 }
157 }
158 },
159
160 /**
161 * @param {string} securityOrigin
162 */
163 _loadCacheNames: function(securityOrigin)
164 {
165 /**
166 * @param {?Protocol.Error} error
167 * @param {!Array.<!WebInspector.ServiceWorkerCacheModel.Cache>} caches
168 * @this {WebInspector.ServiceWorkerCacheModel}
169 */
170 function callback(error, caches)
171 {
172 if (error) {
173 console.error("ServiceWorkerCacheAgent error while loading cache s: ", error);
174 return;
175 }
176 this._updateCacheNames(securityOrigin, caches);
177 }
178 this._agent.requestCacheNames(securityOrigin, callback.bind(this));
179 },
180
181 /**
182 * @param {string} securityOrigin
183 * @param {!Array} cachesJson
184 */
185 _updateCacheNames: function(securityOrigin, cachesJson)
186 {
187 /**
188 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
189 * @this {WebInspector.ServiceWorkerCacheModel}
190 */
191 function deleteAndSaveOldCaches(cache)
192 {
193 if (cache.securityOrigin === securityOrigin && !updatingCachesIds.ha s(cache.cacheId)) {
194 oldCaches.set(cache.cacheId, cache);
195 this._caches.delete(cache.cacheId);
196 }
197 }
198
199 /** @type {!Set<string>} */
200 var updatingCachesIds = new Set();
201 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */
202 var newCaches = new Map();
203 /** @type {!Map<string, !WebInspector.ServiceWorkerCacheModel.Cache>} */
204 var oldCaches = new Map();
205
206 for (var cacheJson of cachesJson) {
207 var cache = new WebInspector.ServiceWorkerCacheModel.Cache(cacheJson .securityOrigin, cacheJson.cacheName, cacheJson.cacheId);
208 updatingCachesIds.add(cache.cacheId);
209 if (this._caches.has(cache.cacheId))
210 continue;
211 newCaches.set(cache.cacheId, cache);
212 this._caches.set(cache.cacheId, cache);
213 }
214 this._caches.forEach(deleteAndSaveOldCaches, this);
215 newCaches.forEach(this._cacheAdded, this);
216 oldCaches.forEach(this._cacheRemoved, this);
217 },
218
219 /**
220 * @param {!WebInspector.Event} event
221 */
222 _securityOriginAdded: function(event)
223 {
224 var securityOrigin = /** @type {string} */ (event.data);
225 this._addOrigin(securityOrigin);
226 },
227
228 /**
229 * @param {!WebInspector.Event} event
230 */
231 _securityOriginRemoved: function(event)
232 {
233 var securityOrigin = /** @type {string} */ (event.data);
234 this._removeOrigin(securityOrigin);
235 },
236
237 /**
238 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
239 */
240 _cacheAdded: function(cache)
241 {
242 this.dispatchEventToListeners(WebInspector.ServiceWorkerCacheModel.Event s.CacheAdded, cache);
243 },
244
245 /**
246 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
247 */
248 _cacheRemoved: function(cache)
249 {
250 this.dispatchEventToListeners(WebInspector.ServiceWorkerCacheModel.Event s.CacheRemoved, cache);
251 },
252
253 /**
254 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
255 * @param {number} skipCount
256 * @param {number} pageSize
257 * @param {function(!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>, bo olean)} callback
258 */
259 _requestEntries: function(cache, skipCount, pageSize, callback)
260 {
261 /**
262 * @param {?Protocol.Error} error
263 * @param {!Array.<!WebInspector.ServiceWorkerCacheModel.Entry>} dataEnt ries
264 * @param {boolean} hasMore
265 */
266 function innerCallback(error, dataEntries, hasMore)
267 {
268 if (error) {
269 console.error("ServiceWorkerCacheAgent error while requesting en tries: ", error);
270 return;
271 }
272 var entries = [];
273 for (var i = 0; i < dataEntries.length; ++i) {
274 entries.push(new WebInspector.ServiceWorkerCacheModel.Entry(data Entries[i].request, dataEntries[i].response));
275 }
276 callback(entries, hasMore);
277 }
278 this._agent.requestEntries(cache.cacheId, skipCount, pageSize, innerCall back);
279 },
280
281 __proto__: WebInspector.SDKModel.prototype
282 };
283
284 /** 282 /**
285 * @constructor 283 * @unrestricted
286 * @param {string} request
287 * @param {string} response
288 */ 284 */
289 WebInspector.ServiceWorkerCacheModel.Entry = function(request, response) 285 WebInspector.ServiceWorkerCacheModel.Entry = class {
290 { 286 /**
287 * @param {string} request
288 * @param {string} response
289 */
290 constructor(request, response) {
291 this.request = request; 291 this.request = request;
292 this.response = response; 292 this.response = response;
293 }
293 }; 294 };
294 295
295 /** 296 /**
296 * @constructor 297 * @unrestricted
297 * @param {string} securityOrigin
298 * @param {string} cacheName
299 * @param {string} cacheId
300 */ 298 */
301 WebInspector.ServiceWorkerCacheModel.Cache = function(securityOrigin, cacheName, cacheId) 299 WebInspector.ServiceWorkerCacheModel.Cache = class {
302 { 300 /**
301 * @param {string} securityOrigin
302 * @param {string} cacheName
303 * @param {string} cacheId
304 */
305 constructor(securityOrigin, cacheName, cacheId) {
303 this.securityOrigin = securityOrigin; 306 this.securityOrigin = securityOrigin;
304 this.cacheName = cacheName; 307 this.cacheName = cacheName;
305 this.cacheId = cacheId; 308 this.cacheId = cacheId;
309 }
310
311 /**
312 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
313 * @return {boolean}
314 */
315 equals(cache) {
316 return this.cacheId === cache.cacheId;
317 }
318
319 /**
320 * @override
321 * @return {string}
322 */
323 toString() {
324 return this.securityOrigin + this.cacheName;
325 }
306 }; 326 };
307 327
308 WebInspector.ServiceWorkerCacheModel.Cache.prototype = { 328
309 /**
310 * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache
311 * @return {boolean}
312 */
313 equals: function(cache)
314 {
315 return this.cacheId === cache.cacheId;
316 },
317
318 /**
319 * @override
320 * @return {string}
321 */
322 toString: function()
323 {
324 return this.securityOrigin + this.cacheName;
325 }
326 };
327
328 /**
329 * @param {!WebInspector.Target} target
330 * @return {?WebInspector.ServiceWorkerCacheModel}
331 */
332 WebInspector.ServiceWorkerCacheModel.fromTarget = function(target)
333 {
334 if (!target.hasBrowserCapability())
335 return null;
336 var instance = /** @type {?WebInspector.ServiceWorkerCacheModel} */ (target. model(WebInspector.ServiceWorkerCacheModel));
337 if (!instance)
338 instance = new WebInspector.ServiceWorkerCacheModel(target, WebInspector .SecurityOriginManager.fromTarget(target));
339 return instance;
340 };
341
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698