call handlers explicitly on network manager
This commit is contained in:
parent
f5bb11d527
commit
2a938dd657
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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[] = [];
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue