simplify alarm and check webRequest without using 'in'

This commit is contained in:
Sebastian 2022-04-28 15:55:20 -03:00
parent b239ae1029
commit 508f5d2ea7
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
2 changed files with 10 additions and 39 deletions

View File

@ -326,27 +326,6 @@ export interface RetryLoopOpts {
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.
*
@ -357,10 +336,6 @@ async function runTaskLoop(
opts: RetryLoopOpts = {},
): Promise<void> {
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);
logger.trace(`pending operations: ${j2s(pending)}`);
let numGivingLiveness = 0;

View File

@ -51,11 +51,11 @@ function keepAlive(callback: any): void {
chrome.alarms.onAlarm.addListener((a) => {
logger.trace(`kee p alive alarm: ${a.name}`)
callback()
// callback()
})
} else {
callback();
// } else {
}
callback();
}
@ -331,29 +331,25 @@ function registerTalerHeaderListener(callback: (tabId: number, url: string) => v
getPermissionsApi().containsHostPermissions().then(result => {
//if there is a handler already, remove it
if (
"webRequest" in chrome &&
"onHeadersReceived" in chrome.webRequest &&
prevHeaderListener &&
chrome.webRequest.onHeadersReceived.hasListener(prevHeaderListener)
chrome?.webRequest?.onHeadersReceived?.hasListener(prevHeaderListener)
) {
chrome.webRequest.onHeadersReceived.removeListener(prevHeaderListener);
}
//if the result was positive, add the headerListener
if (result) {
chrome.webRequest.onHeadersReceived.addListener(
chrome?.webRequest?.onHeadersReceived?.addListener(
headerListener,
{ urls: ["<all_urls>"] },
["responseHeaders"],
);
}
//notify the browser about this change, this operation is expensive
if ("webRequest" in chrome) {
chrome.webRequest.handlerBehaviorChanged(() => {
if (chrome.runtime.lastError) {
console.error(JSON.stringify(chrome.runtime.lastError));
}
});
}
chrome?.webRequest?.handlerBehaviorChanged(() => {
if (chrome.runtime.lastError) {
console.error(JSON.stringify(chrome.runtime.lastError));
}
});
});
}