From 3c959e1012a4fcc35bcdbedf643e2e8b3ecb3ac7 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Fri, 11 Sep 2026 14:31:41 -0400 Subject: [PATCH] Pass a triggering principal when launching non-HTTP URLs Gecko 140.15 made nsIExternalProtocolService.loadURI()'s triggering principal mandatory, so Zotero.launchURL() threw NS_ERROR_ILLEGAL_VALUE for any scheme handled by an external app. https://forums.zotero.org/discussion/133709/ --- chrome/content/zotero/xpcom/zotero.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js index 31bc56d991..ee40548f7b 100644 --- a/chrome/content/zotero/xpcom/zotero.js +++ b/chrome/content/zotero/xpcom/zotero.js @@ -1257,7 +1257,10 @@ const { CommandLineOptions } = ChromeUtils.importESModule("chrome://zotero/conte Zotero.Utilities.Internal.Environment.clearMozillaVariables(); } - svc.loadURI(Services.io.newURI(url, null, null)); + svc.loadURI( + Services.io.newURI(url, null, null), + Services.scriptSecurityManager.getSystemPrincipal(), + ); return; } }