Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // This goes before everything else to keep console message line number invarian t. | 1 // This goes before everything else to keep console message line number invarian t. |
| 2 var lastXHRIndex = 0; | 2 var lastXHRIndex = 0; |
| 3 function xhrLoadedCallback() | 3 function xhrLoadedCallback() |
| 4 { | 4 { |
| 5 // We need to make sure the console message text is unique so that we don't end up with repeat count update only. | 5 // We need to make sure the console message text is unique so that we don't end up with repeat count update only. |
| 6 console.log("XHR loaded: " + (++lastXHRIndex)); | 6 console.log("XHR loaded: " + (++lastXHRIndex)); |
| 7 } | 7 } |
| 8 | 8 |
| 9 function makeSimpleXHR(method, url, async, callback) | 9 function makeSimpleXHR(method, url, async, callback) |
| 10 { | 10 { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 45 | 45 |
| 46 function makeFetch(url, requestInitializer) | 46 function makeFetch(url, requestInitializer) |
| 47 { | 47 { |
| 48 return fetch(url, requestInitializer).then(res => { | 48 return fetch(url, requestInitializer).then(res => { |
| 49 // Call text(). Otherwise the backpressure mechanism may block loading. | 49 // Call text(). Otherwise the backpressure mechanism may block loading. |
| 50 res.text(); | 50 res.text(); |
| 51 return res; | 51 return res; |
| 52 }).catch(e => e); | 52 }).catch(e => e); |
| 53 } | 53 } |
| 54 | 54 |
| 55 function makeWebSocket(url) | |
| 56 { | |
| 57 return Promise.resolve(new WebSocket(url)); | |
| 58 } | |
| 59 | |
| 55 var initialize_NetworkTest = function() { | 60 var initialize_NetworkTest = function() { |
| 56 | 61 |
| 57 InspectorTest.preloadPanel("network"); | 62 InspectorTest.preloadPanel("network"); |
| 58 | 63 |
| 64 InspectorTest._sdkRequestStartedPromises = new Map(); | |
| 65 InspectorTest._sdkResponseReceivedPromises = new Map(); | |
| 66 | |
| 67 InspectorTest._handleRequestStarted = function(data) { | |
| 68 var request = /** @type {!SDK.NetworkRequest} */ (data.data); | |
| 69 var promises = InspectorTest._sdkRequestStartedPromises.get(request.url()); | |
| 70 if (!promises) | |
| 71 return; | |
| 72 InspectorTest._sdkRequestStartedPromises.delete(request.url()); | |
| 73 promises.forEach(resolver => resolver(request)); | |
| 74 } | |
| 75 | |
| 76 /** | |
| 77 * @param {string} url | |
| 78 * @return {!Promise<!SDK.NetworkRequest>} | |
| 79 */ | |
| 80 InspectorTest.sdkRequestStartedFromUrlPromise = function(url) | |
|
dgozman
2017/04/25 21:20:45
Doesn't InspectorTest.findRequestsByURLPattern wor
allada
2017/04/27 17:03:19
Partially, My goal was to have a function that wou
| |
| 81 { | |
| 82 return new Promise(resolve => { | |
| 83 var promises = InspectorTest._sdkRequestStartedPromises.get(url); | |
| 84 if (!promises) { | |
| 85 promises = []; | |
| 86 InspectorTest._sdkRequestStartedPromises.set(url, promises); | |
| 87 } | |
| 88 promises.push(resolve); | |
| 89 }); | |
| 90 } | |
| 91 | |
| 92 /** | |
| 93 * @param {string} url | |
| 94 */ | |
| 95 InspectorTest.makeWebsocketPromise = function(url) | |
|
dgozman
2017/04/25 21:20:45
Only add "promise" at the end if there is non-prom
allada
2017/04/27 17:03:19
Done.
| |
| 96 { | |
| 97 return InspectorTest.callFunctionInPageAsync("makeWebSocket", [url]); | |
| 98 } | |
| 99 | |
| 100 /** | |
| 101 * @param {!SDK.NetworkRequest} request | |
| 102 */ | |
| 103 InspectorTest._resolveResponseReceivedsIfNeeded = function(request) { | |
| 104 if (request.responseReceivedTime === -1) | |
| 105 return; | |
| 106 var promises = InspectorTest._sdkResponseReceivedPromises.get(request); | |
| 107 if (!promises) | |
| 108 return; | |
| 109 InspectorTest._sdkResponseReceivedPromises.delete(request); | |
| 110 promises.forEach(resolver => resolver(request)); | |
| 111 } | |
| 112 | |
| 113 /** | |
| 114 * @param {!SDK.NetworkRequest} request | |
| 115 * @return {!Promise<!SDK.NetworkRequest>} | |
| 116 */ | |
| 117 InspectorTest.waitForRequestResponse = function(request) | |
| 118 { | |
| 119 return new Promise(resolve => { | |
| 120 var promises = InspectorTest._sdkResponseReceivedPromises.get(request); | |
|
dgozman
2017/04/25 21:20:45
It's easier to add/remove listener right here, ins
allada
2017/04/27 17:03:19
Done.
| |
| 121 if (!promises) { | |
| 122 promises = []; | |
| 123 InspectorTest._sdkResponseReceivedPromises.set(request, promises); | |
| 124 } | |
| 125 promises.push(resolve); | |
| 126 InspectorTest._resolveResponseReceivedsIfNeeded(request); | |
| 127 }); | |
| 128 } | |
| 129 | |
| 130 /** | |
| 131 * @param {string} | |
| 132 * @return {?Network.NetworkRequestNode} | |
| 133 */ | |
| 134 InspectorTest.networkLogViewNodeForRequestId = function(id) | |
| 135 { | |
| 136 return UI.panels.network._networkLogView._nodesByRequestId.get(id) || null; | |
| 137 } | |
| 138 | |
| 139 /** | |
| 140 * @param {!SDK.NetworkRequest} wsRequest | |
| 141 * @param {string} message | |
| 142 * @return {!Promise<!SDK.NetworkRequest.WebSocketFrame>} | |
| 143 */ | |
| 144 InspectorTest.waitForWebsocketFrameReceived = function(wsRequest, message) | |
| 145 { | |
| 146 return new Promise(resolve => { | |
| 147 for (var frame of wsRequest.frames()) { | |
| 148 if (resolveIfNeeded(frame)) | |
| 149 return; | |
| 150 } | |
| 151 wsRequest.addEventListener(SDK.NetworkRequest.Events.WebsocketFrameAdded , handleFrameReceived); | |
| 152 | |
| 153 function handleFrameReceived(data) | |
| 154 { | |
| 155 if (resolveIfNeeded(/** @type {!SDK.NetworkRequest.WebSocketFrame} * / (data.data))) | |
| 156 wsRequest.removeEventListener(SDK.NetworkRequest.Events.Websocke tFrameAdded, handleFrameReceived); | |
| 157 } | |
| 158 | |
| 159 function resolveIfNeeded(frame) | |
| 160 { | |
| 161 if (frame.type !== SDK.NetworkRequest.WebSocketFrameType.Receive || frame.text !== message) | |
| 162 return false; | |
| 163 resolve(frame); | |
| 164 return true; | |
| 165 } | |
| 166 }); | |
| 167 } | |
| 168 | |
| 59 InspectorTest.recordNetwork = function() | 169 InspectorTest.recordNetwork = function() |
| 60 { | 170 { |
| 61 UI.panels.network._networkLogView.setRecording(true); | 171 UI.panels.network._networkLogView.setRecording(true); |
| 172 InspectorTest.networkManager.addEventListener(SDK.NetworkManager.Events.Requ estStarted, InspectorTest._handleRequestStarted); | |
| 173 InspectorTest.networkManager.addEventListener(SDK.NetworkManager.Events.Requ estUpdated, data => InspectorTest._resolveResponseReceivedsIfNeeded(/** @type {! SDK.NetworkRequest} */ (data.data))); | |
| 62 } | 174 } |
| 63 | 175 |
| 64 InspectorTest.networkRequests = function() | 176 InspectorTest.networkRequests = function() |
| 65 { | 177 { |
| 66 return NetworkLog.networkLog.requests().slice(); | 178 return NetworkLog.networkLog.requests().slice(); |
| 67 } | 179 } |
| 68 | 180 |
| 69 InspectorTest.dumpNetworkRequests = function() | 181 InspectorTest.dumpNetworkRequests = function() |
| 70 { | 182 { |
| 71 var requests = InspectorTest.networkRequests(); | 183 var requests = InspectorTest.networkRequests(); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 149 version: "formatAsTypeName", | 261 version: "formatAsTypeName", |
| 150 wait: "formatAsTypeName", | 262 wait: "formatAsTypeName", |
| 151 _transferSize: "formatAsTypeName", | 263 _transferSize: "formatAsTypeName", |
| 152 _error: "skip" | 264 _error: "skip" |
| 153 }; | 265 }; |
| 154 // addObject checks own properties only, so make a deep copy rather than use pro totype. | 266 // addObject checks own properties only, so make a deep copy rather than use pro totype. |
| 155 InspectorTest.HARPropertyFormattersWithSize = JSON.parse(JSON.stringify(Inspecto rTest.HARPropertyFormatters)); | 267 InspectorTest.HARPropertyFormattersWithSize = JSON.parse(JSON.stringify(Inspecto rTest.HARPropertyFormatters)); |
| 156 InspectorTest.HARPropertyFormattersWithSize.size = "formatAsTypeName"; | 268 InspectorTest.HARPropertyFormattersWithSize.size = "formatAsTypeName"; |
| 157 | 269 |
| 158 }; | 270 }; |
| OLD | NEW |