New issue
Advanced search Search tips

Issue 736106 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 403462



Sign in to add a comment

External Clear Key browsers tests using mojo CDM do not work on Mac

Project Member Reported by xhw...@chromium.org, Jun 22 2017

Issue description

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 2017

Blocking: 403462
Status: Fixed (was: Assigned)

Sign in to add a comment