Today in CdmAdapterFactory, we hardcode CDM paths for Widevine CDM and ClearKeyCdm.
The ClearKeyCdm is located in <out_dir>/ClearKeyCdm. However, when running Chrome on Mac, there's no reliable way of getting this path due to mac bundles. For example, in a non-component build, the DIR_MODULE path is "/Users/xhwang/workspace/chrome/src/out/Test/Chromium.app/Contents/Versions/61.0.3125.0/Chromium Framework.framework/Versions/A/", which is not surprising looking at callstack [1]. In comparison, in a component build, the DIR_MODULE path is "/Users/xhwang/workspace/chrome/src/out/GN", and the callstack looks like [2]. This is probably because in a static build PathService is built into the framework, while in a component build, the PathService is built into libbase.dylib.
I do plan to pass in the CDM path from the browser instead of hardcoding it. Then this issue will be fixed. Before that, I'll just disable related tests on Mac.
[1]
......
29 Chromium Framework 0x0000000116c89cdb base::MessageLoop::Run() + 219
30 Chromium Framework 0x0000000116cc58f8 base::RunLoop::Run() + 168
31 Chromium Framework 0x00000001165c6239 content::UtilityMain(content::MainFunctionParams const&) + 409
32 Chromium Framework 0x00000001165eac65 content::ContentMainRunnerImpl::Run() + 1045
33 Chromium Framework 0x0000000118835d7e service_manager::Main(service_manager::MainParams const&) + 2574
34 Chromium Framework 0x00000001165e9e54 content::ContentMain(content::ContentMainParams const&) + 68
35 Chromium Framework 0x00000001143fc958 ChromeMain + 168
36 Chromium Helper 0x00000001071e9223 main + 1587
37 libdyld.dylib 0x00007fffc8b9c235 start + 1
[2]
......
43 libbase.dylib 0x000000010fd249cb base::MessageLoop::Run() + 299
44 libbase.dylib 0x000000010fe17fde base::RunLoop::Run() + 286
45 libcontent.dylib 0x00000001303b95ce content::UtilityMain(content::MainFunctionParams const&) + 1054
46 libcontent.dylib 0x00000001303fa9f5 content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 581
47 libcontent.dylib 0x00000001303fc4c2 content::ContentMainRunnerImpl::Run() + 1938
48 libcontent.dylib 0x00000001303f907d content::ContentServiceManagerMainDelegate::RunEmbedderProcess() + 61
49 libembedder.dylib 0x000000011233a954 service_manager::Main(service_manager::MainParams const&) + 1892
50 libcontent.dylib 0x00000001303fa769 content::ContentMain(content::ContentMainParams const&) + 89
51 libchrome_dll.dylib 0x000000011857a8ce ChromeMain + 270
52 Google Chrome Helper 0x000000010fb46baa main + 1562
53 libdyld.dylib 0x00007fffc8b9c235 start + 1
Comment 1 by xhw...@chromium.org
, Oct 10 2017Status: Fixed (was: Assigned)