mirror of
https://github.com/zen-browser/components.git
synced 2025-07-07 20:59:59 +02:00
Merge pull request #71 from Max-109/tab-unloader-ram-check
Added ram check
This commit is contained in:
commit
f5e70a0579
1 changed files with 19 additions and 1 deletions
|
@ -6,6 +6,9 @@
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderTimeout', 'zen.tab-unloader.timeout-minutes', 20);
|
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderTimeout', 'zen.tab-unloader.timeout-minutes', 20);
|
||||||
|
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderExcludedUrls', 'zen.tab-unloader.excluded-urls', '');
|
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderExcludedUrls', 'zen.tab-unloader.excluded-urls', '');
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderRamThreshold', 'zen.tab-unloader.ram-threshold', 70);
|
||||||
|
|
||||||
|
|
||||||
const ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS = [
|
const ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS = [
|
||||||
'^about:',
|
'^about:',
|
||||||
|
@ -75,7 +78,16 @@
|
||||||
this.interval = setInterval(this.intervalListener.bind(this), ZenTabsIntervalUnloader.INTERVAL);
|
this.interval = setInterval(this.intervalListener.bind(this), ZenTabsIntervalUnloader.INTERVAL);
|
||||||
this.#excludedUrls = this.lazyExcludeUrls;
|
this.#excludedUrls = this.lazyExcludeUrls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getRAMUsage() { // RAM usage ceck
|
||||||
|
try {
|
||||||
|
const memoryInfo = await Components.utils.getMemoryInfo();
|
||||||
|
const totalPhysicalMemory = memoryInfo.total;
|
||||||
|
const usedMemory = memoryInfo.resident;
|
||||||
|
return (usedMemory / totalPhysicalMemory) * 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get lazyExcludeUrls() {
|
get lazyExcludeUrls() {
|
||||||
return [
|
return [
|
||||||
...ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS,
|
...ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS,
|
||||||
|
@ -113,6 +125,12 @@
|
||||||
if (!lazy.zenTabUnloaderEnabled) {
|
if (!lazy.zenTabUnloaderEnabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Check RAM usage before proceeding
|
||||||
|
const ramUsage = await this.getRAMUsage();
|
||||||
|
if (ramUsage < lazy.zenTabUnloaderRamThreshold) {
|
||||||
|
return; // Don't unload tabs if RAM usage is below threshold
|
||||||
|
}
|
||||||
|
|
||||||
const currentTimestamp = Date.now();
|
const currentTimestamp = Date.now();
|
||||||
const excludedUrls = this.excludedUrls;
|
const excludedUrls = this.excludedUrls;
|
||||||
const tabs = gBrowser.tabs;
|
const tabs = gBrowser.tabs;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue