call handlers explicitly on network manager

This commit is contained in:
Yury Semikhatsky 2020-01-17 16:46:23 -08:00
parent f5bb11d527
commit 2a938dd657
4 changed files with 29 additions and 25 deletions

View file

@ -157,7 +157,7 @@ export class WKSession extends platform.EventEmitter {
// Response might come after session has been disposed and rejected all callbacks.
assert(this.isDisposed());
} else {
Promise.resolve().then(() => this.emit(object.method, object.params, this));
Promise.resolve().then(() => this.emit(object.method, object.params));
}
}
}

View file

@ -46,11 +46,11 @@ export class WKNetworkManager {
helper.removeEventListeners(this._sessionListeners);
this._session = session;
this._sessionListeners = [
helper.addEventListener(this._session, 'Network.requestWillBeSent', this._onRequestWillBeSent.bind(this)),
helper.addEventListener(this._session, 'Network.requestIntercepted', this._onRequestIntercepted.bind(this)),
helper.addEventListener(this._session, 'Network.responseReceived', this._onResponseReceived.bind(this)),
helper.addEventListener(this._session, 'Network.loadingFinished', this._onLoadingFinished.bind(this)),
helper.addEventListener(this._session, 'Network.loadingFailed', this._onLoadingFailed.bind(this)),
helper.addEventListener(session, 'Network.requestWillBeSent', e => this._onRequestWillBeSent(session, e)),
helper.addEventListener(session, 'Network.requestIntercepted', e => this._onRequestIntercepted(e)),
helper.addEventListener(session, 'Network.responseReceived', e => this._onResponseReceived(e)),
helper.addEventListener(session, 'Network.loadingFinished', e => this._onLoadingFinished(e)),
helper.addEventListener(session, 'Network.loadingFailed', e => this._onLoadingFailed(e)),
];
}
@ -83,7 +83,7 @@ export class WKNetworkManager {
});
}
private _onRequestWillBeSent(event: Protocol.Network.requestWillBeSentPayload, session: WKSession) {
_onRequestWillBeSent(session: WKSession, event: Protocol.Network.requestWillBeSentPayload) {
if (event.request.url.startsWith('data:'))
return;
let redirectChain: network.Request[] = [];
@ -104,7 +104,7 @@ export class WKNetworkManager {
this._page._frameManager.requestStarted(request.request);
}
private _onRequestIntercepted(event: Protocol.Network.requestInterceptedPayload) {
_onRequestIntercepted(event: Protocol.Network.requestInterceptedPayload) {
const request = this._requestIdToRequest.get(event.requestId);
if (request)
request._interceptedCallback();
@ -128,7 +128,7 @@ export class WKNetworkManager {
this._page._frameManager.requestFinished(request.request);
}
private _onResponseReceived(event: Protocol.Network.responseReceivedPayload) {
_onResponseReceived(event: Protocol.Network.responseReceivedPayload) {
const request = this._requestIdToRequest.get(event.requestId);
// FileUpload sends a response without a matching request.
if (!request)
@ -137,7 +137,7 @@ export class WKNetworkManager {
this._page._frameManager.requestReceivedResponse(response);
}
private _onLoadingFinished(event: Protocol.Network.loadingFinishedPayload) {
_onLoadingFinished(event: Protocol.Network.loadingFinishedPayload) {
const request = this._requestIdToRequest.get(event.requestId);
// For certain requestIds we never receive requestWillBeSent event.
// @see https://crbug.com/750469
@ -153,7 +153,7 @@ export class WKNetworkManager {
this._page._frameManager.requestFinished(request.request);
}
private _onLoadingFailed(event: Protocol.Network.loadingFailedPayload) {
_onLoadingFailed(event: Protocol.Network.loadingFailedPayload) {
const request = this._requestIdToRequest.get(event.requestId);
// For certain requestIds we never receive requestWillBeSent event.
// @see https://crbug.com/750469

View file

@ -43,7 +43,7 @@ export class WKPage implements PageDelegate {
_session: WKSession;
readonly _page: Page;
private readonly _pageProxySession: WKSession;
private readonly _networkManager: WKNetworkManager;
readonly _networkManager: WKNetworkManager;
private readonly _workers: WKWorkers;
private readonly _contextIdToContext: Map<number, dom.FrameExecutionContext>;
private _sessionListeners: RegisteredListener[] = [];

View file

@ -29,13 +29,24 @@ export class WKProvisionalPage {
this._session = session;
this._wkPage = page;
const overrideFrameId = (handler: (p: any) => void) => {
return (payload: any) => {
// Pretend that the events happened in the same process.
if (payload.frameId)
payload.frameId = this._wkPage._page._frameManager.mainFrame()._id;
handler(payload);
};
};
const networkManager = this._wkPage._networkManager;
this._sessionListeners = [
'Network.requestWillBeSent',
'Network.requestIntercepted',
'Network.responseReceived',
'Network.loadingFinished',
'Network.loadingFailed',
].map(name => helper.addEventListener(this._session, name, args => this._onNetworkEvent(name, args)));
helper.addEventListener(session, 'Network.requestWillBeSent', overrideFrameId(e => networkManager._onRequestWillBeSent(session, e))),
helper.addEventListener(session, 'Network.requestIntercepted', overrideFrameId(e => networkManager._onRequestIntercepted(e))),
helper.addEventListener(session, 'Network.responseReceived', overrideFrameId(e => networkManager._onResponseReceived(e))),
helper.addEventListener(session, 'Network.loadingFinished', overrideFrameId(e => networkManager._onLoadingFinished(e))),
helper.addEventListener(session, 'Network.loadingFailed', overrideFrameId(e => networkManager._onLoadingFailed(e))),
];
this._wkPage._initializeSession(session, ({frameTree}) => this._handleFrameTree(frameTree));
}
@ -49,13 +60,6 @@ export class WKProvisionalPage {
this._wkPage._onFrameAttached(this._mainFrameId!, null);
}
private _onNetworkEvent(eventName: string, payload: any) {
// Pretend that the events happened in the same process.
if (payload.frameId)
payload.frameId = this._wkPage._page._frameManager.mainFrame()._id;
this._wkPage._session.emit(eventName, payload, this._session);
}
private _handleFrameTree(frameTree: Protocol.Page.FrameResourceTree) {
assert(!frameTree.frame.parentId);
this._mainFrameId = frameTree.frame.id;