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 |