blob: ff4b94c2a0854844f048d61936c7f70a3b873e7b [file] [log] [blame]
(function() {
class FetchExtraInfoHelper {
constructor(dp, session) {
this._dp = dp;
this._session = session;
}
async navigateWithExtraInfo(url) {
const requestExtraInfoPromise = this._dp.Network.onceRequestWillBeSentExtraInfo();
const responseExtraInfoPromise = this._dp.Network.onceResponseReceivedExtraInfo();
await this._session.navigate(url);
const requestExtraInfo = await requestExtraInfoPromise;
const responseExtraInfo = await responseExtraInfoPromise;
return {requestExtraInfo, responseExtraInfo};
}
async jsNavigateWithExtraInfo(url) {
const requestExtraInfoPromise = this._dp.Network.onceRequestWillBeSentExtraInfo();
const responseExtraInfoPromise = this._dp.Network.onceResponseReceivedExtraInfo();
await this._session.evaluate(`window.location.href = '${url}'`);
const requestExtraInfo = await requestExtraInfoPromise;
const responseExtraInfo = await responseExtraInfoPromise;
return {requestExtraInfo, responseExtraInfo};
}
async fetchWithExtraInfo(url) {
const requestExtraInfoPromise = this._dp.Network.onceRequestWillBeSentExtraInfo();
const responseExtraInfoPromise = this._dp.Network.onceResponseReceivedExtraInfo();
await this._session.evaluate(`fetch('${url}', {method: 'POST', credentials: 'include'})`);
const requestExtraInfo = await requestExtraInfoPromise;
const responseExtraInfo = await responseExtraInfoPromise;
return {requestExtraInfo, responseExtraInfo};
}
async jsNavigateIFrameWithExtraInfo(iFrameId, url) {
const promises = [this._dp.Network.onceRequestWillBeSent(), this._dp.Network.onceRequestWillBeSentExtraInfo(), this._dp.Network.onceResponseReceivedExtraInfo(), this._dp.Network.onceResponseReceived()];
await this._session.evaluate(`document.getElementById('${iFrameId}').src = '${url}'`);
return Promise.all(promises);
}
};
return (dp, session) => {
return new FetchExtraInfoHelper(dp, session);
};
})()