simplify alarm and check webRequest without using 'in'
This commit is contained in:
parent
b239ae1029
commit
508f5d2ea7
@ -326,27 +326,6 @@ export interface RetryLoopOpts {
|
|||||||
stopWhenDone?: boolean;
|
stopWhenDone?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This iteration hint will keep incrementing while the taskLoop iteration.
|
|
||||||
* If the hint does not match the current iteration it means that another
|
|
||||||
* promises is also working or has done some work before.
|
|
||||||
*/
|
|
||||||
let iterationHint = 0
|
|
||||||
function thereIsAnotherPromiseWorking(iteration: number): boolean {
|
|
||||||
if (iterationHint > iteration) {
|
|
||||||
logger.trace(`some other promise is or has done some progress`);
|
|
||||||
iterationHint = iteration;
|
|
||||||
//we know that another promise did some work but don't know if still active
|
|
||||||
//so we take ownership and do work
|
|
||||||
} else if (iterationHint < iteration) {
|
|
||||||
//another promise take ownership that means that our time has come to an end
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// increment the hint to match the next loop
|
|
||||||
iterationHint++
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main retry loop of the wallet.
|
* Main retry loop of the wallet.
|
||||||
*
|
*
|
||||||
@ -357,10 +336,6 @@ async function runTaskLoop(
|
|||||||
opts: RetryLoopOpts = {},
|
opts: RetryLoopOpts = {},
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
for (let iteration = 0; !ws.stopped; iteration++) {
|
for (let iteration = 0; !ws.stopped; iteration++) {
|
||||||
if (thereIsAnotherPromiseWorking(iteration)) {
|
|
||||||
logger.trace(`another promise is working, we just need one`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const pending = await getPendingOperations(ws);
|
const pending = await getPendingOperations(ws);
|
||||||
logger.trace(`pending operations: ${j2s(pending)}`);
|
logger.trace(`pending operations: ${j2s(pending)}`);
|
||||||
let numGivingLiveness = 0;
|
let numGivingLiveness = 0;
|
||||||
|
@ -51,11 +51,11 @@ function keepAlive(callback: any): void {
|
|||||||
|
|
||||||
chrome.alarms.onAlarm.addListener((a) => {
|
chrome.alarms.onAlarm.addListener((a) => {
|
||||||
logger.trace(`kee p alive alarm: ${a.name}`)
|
logger.trace(`kee p alive alarm: ${a.name}`)
|
||||||
callback()
|
// callback()
|
||||||
})
|
})
|
||||||
} else {
|
// } else {
|
||||||
callback();
|
|
||||||
}
|
}
|
||||||
|
callback();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,29 +331,25 @@ function registerTalerHeaderListener(callback: (tabId: number, url: string) => v
|
|||||||
getPermissionsApi().containsHostPermissions().then(result => {
|
getPermissionsApi().containsHostPermissions().then(result => {
|
||||||
//if there is a handler already, remove it
|
//if there is a handler already, remove it
|
||||||
if (
|
if (
|
||||||
"webRequest" in chrome &&
|
|
||||||
"onHeadersReceived" in chrome.webRequest &&
|
|
||||||
prevHeaderListener &&
|
prevHeaderListener &&
|
||||||
chrome.webRequest.onHeadersReceived.hasListener(prevHeaderListener)
|
chrome?.webRequest?.onHeadersReceived?.hasListener(prevHeaderListener)
|
||||||
) {
|
) {
|
||||||
chrome.webRequest.onHeadersReceived.removeListener(prevHeaderListener);
|
chrome.webRequest.onHeadersReceived.removeListener(prevHeaderListener);
|
||||||
}
|
}
|
||||||
//if the result was positive, add the headerListener
|
//if the result was positive, add the headerListener
|
||||||
if (result) {
|
if (result) {
|
||||||
chrome.webRequest.onHeadersReceived.addListener(
|
chrome?.webRequest?.onHeadersReceived?.addListener(
|
||||||
headerListener,
|
headerListener,
|
||||||
{ urls: ["<all_urls>"] },
|
{ urls: ["<all_urls>"] },
|
||||||
["responseHeaders"],
|
["responseHeaders"],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
//notify the browser about this change, this operation is expensive
|
//notify the browser about this change, this operation is expensive
|
||||||
if ("webRequest" in chrome) {
|
chrome?.webRequest?.handlerBehaviorChanged(() => {
|
||||||
chrome.webRequest.handlerBehaviorChanged(() => {
|
|
||||||
if (chrome.runtime.lastError) {
|
if (chrome.runtime.lastError) {
|
||||||
console.error(JSON.stringify(chrome.runtime.lastError));
|
console.error(JSON.stringify(chrome.runtime.lastError));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user