From a7044db15e916a398f9282301cc57dc827f3257c Mon Sep 17 00:00:00 2001 From: Abe Jellinek Date: Tue, 26 Mar 2024 14:22:08 -0400 Subject: [PATCH] Scaffold: Remember cookies set in browser by default Making this configurable - it's worth testing translators to make sure that they *aren't* dependent on some specific cookie configuration, apart from obvious cases like login-gated sites. --- chrome/content/scaffold/scaffold.js | 19 +++++++++++-------- chrome/content/scaffold/scaffold.xhtml | 9 +++++++++ chrome/locale/en-US/scaffold/scaffold.dtd | 1 + 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/chrome/content/scaffold/scaffold.js b/chrome/content/scaffold/scaffold.js index 5065865916..df8c74372f 100644 --- a/chrome/content/scaffold/scaffold.js +++ b/chrome/content/scaffold/scaffold.js @@ -58,7 +58,8 @@ function fix2028(str) { } var Scaffold = new function () { - var _browser, _frames = [], _document; + var _browser; + var _cookieSandbox; var _translatorsLoadedPromise; var _translatorProvider = null; var _lastModifiedTime = 0; @@ -83,8 +84,8 @@ var Scaffold = new function () { this.onLoad = async function (e) { if (e.target !== document) return; - _document = document; _browser = document.getElementById('browser'); + _cookieSandbox = new Zotero.CookieSandbox(_browser); window.messageManager.addMessageListener('Scaffold:Load', ({ data }) => { document.getElementById("browser-url").value = data.url; @@ -1914,6 +1915,8 @@ var Scaffold = new function () { testsByType[test.type].push(test); } + let rememberCookies = document.getElementById('checkbox-remember-cookies').checked; + for (let [type, testsOfType] of Object.entries(testsByType)) { if (testsOfType.length) { let tester = new Zotero_TranslatorTester( @@ -1922,6 +1925,12 @@ var Scaffold = new function () { _debug, _translatorProvider ); + if (rememberCookies) { + tester.setCookieSandbox(_cookieSandbox); + } + else { + tester.setCookieSandbox(new Zotero.CookieSandbox()); + } tester.setTests(testsOfType); tester.runTests(callback); } @@ -2024,12 +2033,6 @@ var Scaffold = new function () { this.testsToUpdate = tests.slice(); this.numTestsTotal = this.testsToUpdate.length; this.newTests = []; - this.tester = new Zotero_TranslatorTester( - _getTranslatorFromPane(), - "web", - _debug, - _translatorProvider - ); }; TestUpdater.prototype.updateTests = function (testDoneCallback, doneCallback) { diff --git a/chrome/content/scaffold/scaffold.xhtml b/chrome/content/scaffold/scaffold.xhtml index 3c3cefd5ad..d091b243b1 100644 --- a/chrome/content/scaffold/scaffold.xhtml +++ b/chrome/content/scaffold/scaffold.xhtml @@ -505,6 +505,15 @@