Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
private _sendSyncMessage (win: Window, cmd: string, cookies): Promise {
const id = this._messageIdGenerator.increment();
let attempts = 0;
return new Promise((resolve: Function) => {
let timeoutId: number | null = null;
const resolveWrapper = () => {
nativeMethods.clearTimeout.call(this._win, timeoutId as number);
this._resolversMap.delete(id);
resolve();
};
const sendMsg = () => {
// NOTE: The window was removed if the parent property is null.
if (attempts++ < SYNC_MESSAGE_ATTEMPT_COUNT || !win.parent) {
this._messageSandbox.sendServiceMsg({ id, cmd, cookies }, win);
timeoutId = nativeMethods.setTimeout.call(this._win, sendMsg, SYNC_MESSAGE_TIMEOUT * attempts);
}
else
resolveWrapper();
asyncServiceMsg (msg): Promise {
return new Promise((resolve, reject) => {
this._performRequest(msg, (err, data) => {
if (!err)
resolve(data);
else if (msg.allowRejecting)
reject(err);
});
});
}
_startIpcServer () {
return new Promise(resolve => {
this.ipc.serve(() => resolve(this.ipc.server));
this.ipc.server.start();
});
}
export function sendXHR (url, createXHR, { method = 'GET', data = null, parseResponse = true } = {}) {
return new Promise((resolve, reject) => {
const xhr = createXHR();
xhr.open(method, url, true);
if (isRetryingTestPagesEnabled()) {
xhr.setRequestHeader(UNSTABLE_NETWORK_MODE_HEADER, 'true');
xhr.setRequestHeader('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
}
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
let responseText = xhr.responseText || '';
if (responseText && parseResponse)
responseText = JSON.parse(xhr.responseText); //eslint-disable-line no-restricted-globals
_connectToIpcServer () {
return new Promise(resolve => {
this.ipc.connectTo(this.serverId, resolve);
});
}
_getIpcSocket () {
return new Promise(resolve => this.server.on('connect', resolve));
}
export default function () {
return new Promise(noop);
}
_ensureExecuting () {
if (!this._taskPromise)
this._taskPromise = new Promise(this._fn);
}
_getInjectingStatusPromise () {
return new Promise(resolve => {
this.server.on(MESSAGES.getInjectingStatus, data => {
this.server.off(MESSAGES.getInjectingStatus, '*');
resolve(data);
});
});
}