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

Side by Side Diff: LayoutTests/http/tests/inspector/cache-storage/cache-storage-test.js

Issue 1044203004: [Storage] Cache storage inspection on all the frames! (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Comments Created 5 years, 8 months 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
(Empty)
1 var initialize_CacheStorageTest = function() {
pfeldman 2015/04/10 12:35:33 Copyright, please also use Blink coding guidelines
dmurph 2015/04/13 18:23:03 Done.
2 InspectorTest.preloadPanel("resources");
3
4 // ###### CALLBACK SUPPORT ######
5 var lastCallbackId = 0;
pfeldman 2015/04/10 12:35:33 Section below is cryptic.
dmurph 2015/04/13 18:23:03 Removed
6 var callbacks = {};
7 var callbackIdPrefix = "InspectorTest.CacheStorage_callback";
8 var resolveId = "Resolve";
9 var rejectId = "Reject";
10
11 var generatePromiseCallbackCalls = function(callbackId) {
12 return "dispatchCallback.bind(this, \"" + callbackIdPrefix + callbackId + reso lveId + "\"), dispatchCallback.bind(this, \"" + callbackIdPrefix + callbackId + rejectId + "\")";
13 }
14
15 var getAndDeleteCallbackFromId = function(callbackId) {
pfeldman 2015/04/10 12:35:33 Lets move InspectorTest.evaluateWithPromise along
dmurph 2015/04/13 18:23:03 Done, as 'invokePageFunctionPromise'
16 callbackId = callbackId.substring(callbackIdPrefix.length);
17 var resolve = callbackId.indexOf(resolveId) !== -1;
18 console.assert(resolve || callbackId.indexOf(rejectId) !== -1);
19 var sizeOffEnd = resolve ? resolveId.length : rejectId.length;
20 callbackId = callbackId.substring(0, callbackId.length - sizeOffEnd);
21 var callbackOptions = callbacks[callbackId];
22 var callback = resolve ? callbackOptions.resolve : callbackOptions.reject;
23 delete callbacks[callbackId];
24 return callback;
25 }
26
27 InspectorTest.evaluateWithPromise = function(frameId, methodName, parameters)
28 {
29 return new Promise(function(resolve, reject) {
30 InspectorTest._cacheStorageSniffer();
31 var callbackId = ++lastCallbackId;
32 callbacks[callbackId] = { 'resolve': resolve, 'reject': reject };
33 var parametersString = generatePromiseCallbackCalls(callbackId);
34 for (var i = 0; i < parameters.length; ++i)
35 parametersString += ", " + JSON.stringify(parameters[i]);
36 var requestString = methodName + "(" + parametersString + ")";
37 InspectorTest.evaluateInPage(requestString);
38 });
39 };
pfeldman 2015/04/10 12:35:33 drop ;
dmurph 2015/04/13 18:23:03 Done.
40
41 InspectorTest._cacheStorageSniffer = function()
42 {
43 InspectorTest.addConsoleSniffer(consoleMessageOverride, false);
44 function consoleMessageOverride(msg)
45 {
46 var text = msg.messageText;
47 if (!text.startsWith(callbackIdPrefix)) {
48 InspectorTest.addConsoleSniffer(consoleMessageOverride, false);
49 return;
50 }
51 var callback = getAndDeleteCallbackFromId(text);
52 callback.call();
53 }
54 };
55
56 // ###### INSPECTOR STATE AND OPERATIONS ######
57
58 InspectorTest.dumpCacheTree = function()
59 {
60 WebInspector.panels.resources.cacheStorageListTreeElement.expand();
61 InspectorTest.addResult("Dumping CacheStorage tree:");
62 var cachesTreeElement = WebInspector.panels.resources.cacheStorageListTreeEl ement;
63 var promise = new Promise(function(resolve, reject) {
64 InspectorTest.addSnifferPromise(WebInspector.ServiceWorkerCacheModel.pro totype, "_updateCacheNames").then(function() {
65 if (!cachesTreeElement.childCount()) {
66 InspectorTest.addResult(" (empty)");
67 return resolve();
68 }
69 function queryView(i) {
70 var cacheTreeElement = cachesTreeElement.childAt(i);
71 InspectorTest.addResult(" cache: " + cacheTreeElement.titleTe xt);
72 function nextOrResolve() {
73 var next = i + 1;
74 if (next < cachesTreeElement.childCount()) {
75 queryView(next);
76 } else {
77 resolve();
78 }
79 }
80 function addDataResult() {
81 if (view._entries.length == 0) {
82 InspectorTest.addResult(" (cache empty)");
83 nextOrResolve();
84 return;
85 }
86 for (var entry of view._entries) {
87 InspectorTest.addResult(" '" + entry.request._val ue + "': '" + entry.response._value + "'");
88 }
89 nextOrResolve();
90 }
91 var view = cacheTreeElement._view;
92 InspectorTest.addSniffer(WebInspector.ServiceWorkerCacheView.pro totype, "_updateDataCallback", addDataResult, false);
93 if (!view) {
pfeldman 2015/04/10 12:35:33 no {}
dmurph 2015/04/13 18:23:03 Done.
94 cacheTreeElement.onselect(false);
95 } else {
96 view._updateData(true);
97 }
98 view = cacheTreeElement._view;
99 }
100 WebInspector.panels.resources.cacheStorageListTreeElement._refreshCa ches();
101 queryView(0);
102 }).catch(reject);
103 });
104 WebInspector.panels.resources.cacheStorageListTreeElement._refreshCaches();
105 return promise;
106 }
107
108 InspectorTest.deleteCacheFromInspector = function(cacheName) {
109 WebInspector.panels.resources.cacheStorageListTreeElement.expand();
110 InspectorTest.addResult("Deleting CacheStorage cache " + cacheName);
111 var cachesTreeElement = WebInspector.panels.resources.cacheStorageListTreeElem ent;
112 var promise = new Promise(function(resolve, reject) {
113 InspectorTest.addSnifferPromise(WebInspector.ServiceWorkerCacheModel.prototy pe, "_updateCacheNames").then(function() {
114 if (!cachesTreeElement.childCount()) {
115 return resolve();
116 }
117 for (var i = 0; i < cachesTreeElement.childCount(); i++) {
118 var cacheTreeElement = cachesTreeElement.childAt(i);
119 var title = cacheTreeElement.titleText;
120 var elementCacheName = title.substring(0, title.lastIndexOf(" - "));
121 if (elementCacheName != cacheName) {
122 continue;
123 }
124 InspectorTest.addSniffer(WebInspector.ServiceWorkerCacheModel.protot ype, "_cacheRemoved", resolve)
125 cacheTreeElement._clearCache();
126 return;
127 }
128 console.error("Could not find cache to delete.");
129 reject();
130 }).catch(reject);
131 });
132 WebInspector.panels.resources.cacheStorageListTreeElement._refreshCaches();
133 return promise;
134 }
135
136 //###### CACHE STORAGE OPERATIONS ######
137
138 InspectorTest.createCache = function(frameId, cacheName)
139 {
140 return InspectorTest.evaluateWithPromise(frameId, "createCache", [cacheName] );
141 };
142
143 InspectorTest.addCacheEntry = function(frameId, cacheName, requestUrl, responseT ext)
144 {
145 return InspectorTest.evaluateWithPromise(frameId, "addCacheEntry", [cacheNam e, requestUrl, responseText]);
146 };
147
148 InspectorTest.deleteCache = function(frameId, cacheName)
149 {
150 return InspectorTest.evaluateWithPromise(frameId, "deleteCache", [cacheName] );
151 };
152 };
153
154 function dispatchCallback(callbackId)
155 {
156 console.log(callbackId);
pfeldman 2015/04/10 12:35:33 InspectorTest.addResult
dmurph 2015/04/13 18:23:03 Removed.
157 }
158
159 function onCacheStorageError(reject, e)
160 {
161 console.error("CacheStorage error: " + e);
162 reject();
163 }
164
165 function createCache(resolve, reject, cacheName)
166 {
167 caches.open(cacheName).then(resolve).catch(onCacheStorageError.bind(this, re ject));
168 }
169
170 function addCacheEntry(resolve, reject, cacheName, requestUrl, responseText)
171 {
172 caches.open(cacheName).then(function(cache) {
173 var request = new Request(requestUrl);
174 var myBlob = new Blob();
175 var init = { "status" : 200 , "statusText" : responseText };
176 var response = new Response(myBlob, init);
177 return cache.put(request, response);
178 }).then(resolve)
179 .catch(onCacheStorageError.bind(this, reject));
180 }
181
182 function deleteCache(resolve, reject, cacheName) {
183 caches.delete(cacheName).then(function(success) {
184 if (success) {
185 resolve();
186 } else {
187 onCacheStorageError(reject, "Could not find cache " + cacheName) ;
188 }
189 }).catch(onCacheStorageError.bind(this, reject));;
190 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698