diff --git a/toolkit/modules/GMPUtils.sys.mjs b/toolkit/modules/GMPUtils.sys.mjs index 6b7a9610fc5d..674560ac45be 100644 --- a/toolkit/modules/GMPUtils.sys.mjs +++ b/toolkit/modules/GMPUtils.sys.mjs @@ -122,6 +122,7 @@ export var GMPPrefs = { KEY_PLUGIN_VISIBLE: "media.{0}.visible", KEY_PLUGIN_ABI: "media.{0}.abi", KEY_PLUGIN_FORCE_SUPPORTED: "media.{0}.forceSupported", + KEY_PLUGIN_ALLOW_X64_ON_ARM64: "media.{0}.allow-x64-plugin-on-arm64", KEY_URL: "media.gmp-manager.url", KEY_URL_OVERRIDE: "media.gmp-manager.url.override", KEY_CERT_CHECKATTRS: "media.gmp-manager.cert.checkAttributes", diff --git a/toolkit/mozapps/extensions/internal/GMPProvider.sys.mjs b/toolkit/mozapps/extensions/internal/GMPProvider.sys.mjs index 78a1ecec7905..830366760427 100644 --- a/toolkit/mozapps/extensions/internal/GMPProvider.sys.mjs +++ b/toolkit/mozapps/extensions/internal/GMPProvider.sys.mjs @@ -770,7 +770,14 @@ var GMPProvider = { try { let greDir = Services.dirsvc.get(NS_GRE_DIR, Ci.nsIFile); let path = greDir.path; - if (GMPUtils._isWindowsOnARM64()) { + if ( + GMPUtils._isWindowsOnARM64() && + GMPPrefs.getBool( + GMPPrefs.KEY_PLUGIN_ALLOW_X64_ON_ARM64, + true, + CLEARKEY_PLUGIN_ID + ) + ) { path = PathUtils.join(path, "i686"); } let clearkeyPath = PathUtils.join(