Bug 1527811 - On Windows on ARM64, add ClearKey GMP to the GMPService in i686 subdir. r=Gijs
authorChris Pearce <cpearce@mozilla.com>
Tue, 12 Feb 2019 15:45:27 +1300
changeset 519572 aae2bb67624e50f6628306cbd3a2099928161bca
parent 519571 83b6c1e3d898fa3019621c54a472f9e53eb50047
child 519573 ad0dfa4133e60c498598f52b8a9307e8f2307584
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersGijs
bugs1527811
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1527811 - On Windows on ARM64, add ClearKey GMP to the GMPService in i686 subdir. r=Gijs We need to tell the GMPService where to find the ClearKey GMP, and in Windows on ARM64 builds we should run the x86 ClearKey so that we test the same x86 emulation path that Widevine uses. This patch assumes that the ClearKey GMP and its appropriate directory structure are placed in the "i686" subdir of the aarch64 firefox dir by the build. Differential Revision: https://phabricator.services.mozilla.com/D19900
toolkit/mozapps/extensions/internal/GMPProvider.jsm
--- a/toolkit/mozapps/extensions/internal/GMPProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/GMPProvider.jsm
@@ -596,17 +596,21 @@ var GMPProvider = {
                          e.name + " - sandboxing not available?", e);
         }
       }
     }
 
     try {
       let greDir = Services.dirsvc.get(NS_GRE_DIR,
                                        Ci.nsIFile);
-      let clearkeyPath = OS.Path.join(greDir.path,
+      let path = greDir.path;
+      if (GMPUtils._isWindowsOnARM64()) {
+        path = OS.Path.join(path, "i686");
+      }
+      let clearkeyPath = OS.Path.join(path,
                                       CLEARKEY_PLUGIN_ID,
                                       CLEARKEY_VERSION);
       this._log.info("startup - adding clearkey CDM directory " +
                      clearkeyPath);
       gmpService.addPluginDirectory(clearkeyPath);
     } catch (e) {
       this._log.warn("startup - adding clearkey CDM failed", e);
     }