diff --git a/pythonlib/camoufox/ip.py b/pythonlib/camoufox/ip.py index b1dc976..1b60672 100644 --- a/pythonlib/camoufox/ip.py +++ b/pythonlib/camoufox/ip.py @@ -62,10 +62,12 @@ class Proxy: } +@lru_cache(128, typed=True) def valid_ipv4(ip: str) -> bool: return bool(re.match(r'^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$', ip)) +@lru_cache(128, typed=True) def valid_ipv6(ip: str) -> bool: return bool(re.match(r'^(([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4})$', ip)) diff --git a/pythonlib/camoufox/locale.py b/pythonlib/camoufox/locale.py index 173b986..7a0662a 100644 --- a/pythonlib/camoufox/locale.py +++ b/pythonlib/camoufox/locale.py @@ -61,7 +61,7 @@ class Locale: return data -@dataclass +@dataclass(frozen=True) class Geolocation: """ Stores geolocation information. diff --git a/settings/camoufox.cfg b/settings/camoufox.cfg index 5cb5bbd..0a9ade0 100644 --- a/settings/camoufox.cfg +++ b/settings/camoufox.cfg @@ -341,9 +341,6 @@ defaultPref("browser.toolbars.bookmarks.visibility", "never"); // Do not reopen windows on startup defaultPref("privacy.clearOnShutdown.openWindows", true); -// Clipboard -defaultPref("dom.event.clipboardevents.enabled", false); // disable user triggered clipboard access - // Fingerprinting defaultPref("privacy.resistFingerprinting", false); // This will actually hurt fingerprinting. // defaultPref("privacy.resistFingerprinting.block_mozAddonManager", true); // prevents rfp from breaking AMO @@ -458,10 +455,9 @@ defaultPref("network.cookie.cookieBehavior", 4); // issue we can povide custom '@mozilla.org/ipc/processselector;1' // defaultPref("dom.ipc.processCount", 60000); -// Dear Playwright devs, -// YES! This does cause a significant performance hit! -// Camoufox will be keeping this at 1 for the foreseeable future. -defaultPref("dom.ipc.processCount", 1); +// Using 16 is to balance process isolation and resource usage +// The 60000 PlayWright is using is impractical and may cause instability. +defaultPref("dom.ipc.processCount", 16); // Never reuse processes as they may keep previously overridden values // (locale, timezone etc.).