mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 22:33:35 +00:00
prevent intervals from spamming
This commit is contained in:
@@ -425,10 +425,17 @@ function addLogin(login, tab) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var lastCleanupLoginCheck = null;
|
||||||
cleanupLoginsToAdd();
|
cleanupLoginsToAdd();
|
||||||
setInterval(cleanupLoginsToAdd, 2 * 60 * 1000); // check every 2 minutes
|
setInterval(cleanupLoginsToAdd, 2 * 60 * 1000); // check every 2 minutes
|
||||||
function cleanupLoginsToAdd() {
|
function cleanupLoginsToAdd() {
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
|
if (lastCleanupLoginCheck && (now - lastCleanupLoginCheck) < 10000) {
|
||||||
|
// can only check cleanup every 10 seconds
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lastCleanupLoginCheck = now;
|
||||||
|
|
||||||
for (var i = loginsToAdd.length - 1; i >= 0; i--) {
|
for (var i = loginsToAdd.length - 1; i >= 0; i--) {
|
||||||
if (loginsToAdd[i].expires < now) {
|
if (loginsToAdd[i].expires < now) {
|
||||||
loginsToAdd.splice(i, 1);
|
loginsToAdd.splice(i, 1);
|
||||||
@@ -709,14 +716,21 @@ function copyToClipboard(text) {
|
|||||||
|
|
||||||
// Sync polling
|
// Sync polling
|
||||||
|
|
||||||
|
var lastSyncCheck = null;
|
||||||
fullSync(true);
|
fullSync(true);
|
||||||
setInterval(fullSync, 5 * 60 * 1000); // check every 5 minutes
|
setInterval(fullSync, 5 * 60 * 1000); // check every 5 minutes
|
||||||
var syncInternal = 6 * 60 * 60 * 1000; // 6 hours
|
var syncInternal = 6 * 60 * 60 * 1000; // 6 hours
|
||||||
|
|
||||||
function fullSync(override) {
|
function fullSync(override) {
|
||||||
|
var now = new Date();
|
||||||
|
if (lastSyncCheck && (now - lastSyncCheck) < 10000) {
|
||||||
|
// can only check sync every 10 seconds
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lastSyncCheck = now;
|
||||||
|
|
||||||
override = override || false;
|
override = override || false;
|
||||||
syncService.getLastSync(function (lastSync) {
|
syncService.getLastSync(function (lastSync) {
|
||||||
var now = new Date();
|
|
||||||
if (override || !lastSync || (now - lastSync) >= syncInternal) {
|
if (override || !lastSync || (now - lastSync) >= syncInternal) {
|
||||||
syncService.fullSync(override || false, function () {
|
syncService.fullSync(override || false, function () {
|
||||||
});
|
});
|
||||||
@@ -726,10 +740,18 @@ function fullSync(override) {
|
|||||||
|
|
||||||
// Locking
|
// Locking
|
||||||
|
|
||||||
|
var lastLockCheck = null;
|
||||||
checkLock();
|
checkLock();
|
||||||
setInterval(checkLock, 10 * 1000); // check every 10 seconds
|
setInterval(checkLock, 10 * 1000); // check every 10 seconds
|
||||||
|
|
||||||
function checkLock() {
|
function checkLock() {
|
||||||
|
var now = new Date();
|
||||||
|
if (lastLockCheck && (now - lastLockCheck) < 5000) {
|
||||||
|
// can only check lock every 5 seconds
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lastLockCheck = now;
|
||||||
|
|
||||||
if (chrome.extension.getViews({ type: 'popup' }).length > 0) {
|
if (chrome.extension.getViews({ type: 'popup' }).length > 0) {
|
||||||
// popup is open, do not lock
|
// popup is open, do not lock
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user