From 34507e469c751ea2755afdcf362dd5a7b25e7ad0 Mon Sep 17 00:00:00 2001
From: rakzoser <82242062+rakzoser@users.noreply.github.com>
Date: Thu, 31 Oct 2024 23:17:37 +0200
Subject: [PATCH] Added ram check
---
.idea/caches/deviceStreaming.xml | 329 +++++++++++++++++++++++++++++++
.idea/components.iml | 9 +
.idea/misc.xml | 6 +
.idea/modules.xml | 8 +
.idea/vcs.xml | 6 +
.idea/workspace.xml | 45 +++++
src/ZenTabUnloader.mjs | 20 +-
7 files changed, 422 insertions(+), 1 deletion(-)
create mode 100644 .idea/caches/deviceStreaming.xml
create mode 100644 .idea/components.iml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
create mode 100644 .idea/workspace.xml
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 0000000..5a2f866
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,329 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/components.iml b/.idea/components.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/components.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a6e1098
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..d9e9703
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..b59815b
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1730409076332
+
+
+ 1730409076332
+
+
+
+
\ No newline at end of file
diff --git a/src/ZenTabUnloader.mjs b/src/ZenTabUnloader.mjs
index fc7d070..cbf2397 100644
--- a/src/ZenTabUnloader.mjs
+++ b/src/ZenTabUnloader.mjs
@@ -6,6 +6,9 @@
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderTimeout', 'zen.tab-unloader.timeout-minutes', 20);
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 = [
'^about:',
@@ -75,7 +78,16 @@
this.interval = setInterval(this.intervalListener.bind(this), ZenTabsIntervalUnloader.INTERVAL);
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() {
return [
...ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS,
@@ -113,6 +125,12 @@
if (!lazy.zenTabUnloaderEnabled) {
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 excludedUrls = this.excludedUrls;
const tabs = gBrowser.tabs;