fix: support event source type in firefox (#2390)

References #2189
This commit is contained in:
Andrey Lushnikov 2020-05-28 14:38:47 -07:00 committed by GitHub
parent 2b21a5f6ad
commit 7981e4e3da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 4 deletions

View file

@ -6,7 +6,7 @@
},
{
"name": "firefox",
"revision": "1097"
"revision": "1098"
},
{
"name": "webkit",

View file

@ -137,6 +137,10 @@ const causeToResourceType: {[key: string]: string} = {
TYPE_WEB_MANIFEST: 'manifest',
};
const internalCauseToResourceType: {[key: string]: string} = {
TYPE_INTERNAL_EVENTSOURCE: 'eventsource',
};
class InterceptableRequest implements network.RouteDelegate {
readonly request: network.Request;
_id: string;
@ -151,7 +155,7 @@ class InterceptableRequest implements network.RouteDelegate {
headers[name.toLowerCase()] = value;
this.request = new network.Request(payload.isIntercepted ? this : null, frame, redirectedFrom ? redirectedFrom.request : null, payload.navigationId,
payload.url, causeToResourceType[payload.cause] || 'other', payload.method, payload.postData || null, headers);
payload.url, internalCauseToResourceType[payload.internalCause] || causeToResourceType[payload.cause] || 'other', payload.method, payload.postData || null, headers);
}
async continue(overrides: { method?: string; headers?: network.Headers; postData?: string }) {

View file

@ -49,7 +49,7 @@ export class WKInterceptableRequest implements network.RouteDelegate {
constructor(session: WKSession, allowInterception: boolean, frame: frames.Frame, event: Protocol.Network.requestWillBeSentPayload, redirectedFrom: network.Request | null, documentId: string | undefined) {
this._session = session;
this._requestId = event.requestId;
const resourceType = event.type ? event.type.toLowerCase() : (redirectedFrom ? redirectedFrom.resourceType() : 'unknown');
const resourceType = event.type ? event.type.toLowerCase() : (redirectedFrom ? redirectedFrom.resourceType() : 'other');
this.request = new network.Request(allowInterception ? this : null, frame, redirectedFrom, documentId, event.request.url,
resourceType, event.request.method, event.request.postData || null, headersObject(event.request.headers));
this._interceptedPromise = new Promise(f => this._interceptedCallback = f);

View file

@ -260,7 +260,7 @@ describe('Response.statusText', function() {
});
describe('Request.resourceType', function() {
it.fail(FFOX || WEBKIT)('should return event source', async ({page, server}) => {
it.fail(WEBKIT)('should return event source', async ({page, server}) => {
const SSE_MESSAGE = {foo: 'bar'};
// 1. Setup server-sent events on server that immediately sends a message to the client.
server.setRoute('/sse', (req, res) => {