Chromium Code Reviews| OLD | NEW |
|---|---|
| (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 } | |
| OLD | NEW |