From 7efb2d8316eefad4903bca30635b3687a5315a5c Mon Sep 17 00:00:00 2001 From: Leonardo Bartoli Date: Thu, 18 Apr 2024 15:42:01 +0200 Subject: [PATCH] Updated driver_set_pref to work on newer firefox versions --- internal/firefox.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/internal/firefox.py b/internal/firefox.py index a533812bd..1daf2d53b 100644 --- a/internal/firefox.py +++ b/internal/firefox.py @@ -261,20 +261,12 @@ def driver_set_pref(self, key, value): """Set a Firefox pref at runtime""" if self.driver is not None: try: - script = 'const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");' - script += 'Services.prefs.' - if isinstance(value, bool): - script += 'setBoolPref' - elif isinstance(value, (str, unicode)): - script += 'setStringPref' - else: - script += 'setIntPref' - script += '({0}, {1});'.format(json.dumps(key), json.dumps(value)) - logging.debug(script) + script = 'const { Preferences } = ChromeUtils.importESModule("resource://gre/modules/Preferences.sys.mjs");' + script += f'Preferences.set({json.dumps(key)}, {json.dumps(value)});' self.driver.set_context(self.driver.CONTEXT_CHROME) self.driver.execute_script(script) - except Exception: - logging.exception("Error setting pref") + except Exception as err: + logging.exception("Error setting pref %s => %s: %s", key, value, err) finally: self.driver.set_context(self.driver.CONTEXT_CONTENT)