New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 684003 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Mar 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocked on:
issue 688000
issue 693180



Sign in to add a comment

Netflix doesn't work in mustash

Project Member Reported by penghuang@chromium.org, Jan 23 2017

Issue description

Reproduce steps:

1. Build and deploy official chrome to a chromebook
2. ssh to chromebook and execute below commands:
 # cp /etc/chrome_dev.conf /home/chrome_dev.conf
 # mount --bind /home/chrome_dev.conf /etc/chrome_dev.conf
3. vi /etc/chrome_dev.conf and add below lines:
--mash
4. restart ui
5. Login chromebook and try netflix
 

Comment 1 by sky@chromium.org, Jan 23 2017

Labels: -Pri-3 mustash-1 OS-Chrome Pri-1

Comment 2 by sky@chromium.org, Jan 23 2017

Owner: penghuang@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/442ad9d283785dd39eac18186811e61c58395e3b

commit 442ad9d283785dd39eac18186811e61c58395e3b
Author: penghuang <penghuang@chromium.org>
Date: Tue Jan 31 07:39:08 2017

Enable nacl_loader service in mustash

The nacl plugin is not working in mustash because we
don't include nacl related manifest files in mustash.

PS. Netflix uses plugin widevine for cdm.

BUG= 684003 

Review-Url: https://codereview.chromium.org/2664893002
Cr-Commit-Position: refs/heads/master@{#447204}

[modify] https://crrev.com/442ad9d283785dd39eac18186811e61c58395e3b/chrome/app/mash/BUILD.gn
[modify] https://crrev.com/442ad9d283785dd39eac18186811e61c58395e3b/mash/BUILD.gn

Cc: kylec...@chromium.org
After landing CL https://codereview.chromium.org/2664893002. I got the crash stack
on chromebook with mustash. It because the browser process try to access
DisplayConfigurator via ash::Shell::GetInstance(). Probably we need add mojo
IPC for it.

[29000:29000:0131/141502.465091:FATAL:shell.cc(200)] Check failed: instance_. 
#0 0x7f62f3caae9d base::debug::StackTrace::StackTrace()
#1 0x7f62f3cc357e logging::LogMessage::~LogMessage()
#2 0x7f62f5bff2e3 ash::Shell::GetInstance()
#3 0x7f62f334b6d6 chromeos::OutputProtectionDelegate::EnableProtection()
#4 0x7f62f39df38e chrome::PepperOutputProtectionMessageFilter::OnEnableProtection()
#5 0x7f62f39df52e chrome::PepperOutputProtectionMessageFilter::OnResourceMessageReceived()
#6 0x7f62f551ca96 ppapi::host::ResourceMessageHandler::RunMessageHandlerAndReply()
#7 0x7f62f551c343 _ZN4base8internal7InvokerINS0_9BindStateIMN5ppapi4host21ResourceMessageFilterEFvRKN3IPC7MessageENS4_18HostMessageContextEEJ13scoped_refptrIS5_ES7_SA_EEEFvvEE3RunEPNS0_13BindStateBaseE
#8 0x7f62f3d47f1b base::debug::TaskAnnotator::RunTask()
#9 0x7f62f3ccb60f base::MessageLoop::RunTask()
#10 0x7f62f3ccba9e base::MessageLoop::DeferOrRunPendingTask()
#11 0x7f62f3ccdf48 base::MessageLoop::DoWork()
#12 0x7f62f3cce4a9 base::MessagePumpLibevent::Run()
#13 0x7f62f3ccb38a base::MessageLoop::RunHandler()
#14 0x7f62f3cf203d base::RunLoop::Run()
#15 0x7f62f38c6503 ChromeBrowserMainParts::MainMessageLoopRun()
#16 0x7f62f21e7a10 content::BrowserMainLoop::RunMainMessageLoopParts()
#17 0x7f62f21ebf85 content::BrowserMainRunnerImpl::Run()
#18 0x7f62f21e3c79 content::BrowserMain()
#19 0x7f62f3852ce6 content::ContentMainRunnerImpl::Run()
#20 0x7f62f3852169 content::ContentMain()
#21 0x7f62f1c66abb ChromeMain
#22 0x7f62ef73a796 __libc_start_main
#23 0x7f62f1c668e9 _start

I added IPCs for frecon in https://codereview.chromium.org/2648433006/ that let chrome use DisplayConfigurator::TakeControl()/RelinquishControl(). The same thing can be done here for DisplayConfigurator content protection functions.
Blockedon: 688000
Cc: xhw...@chromium.org
I am a bit confused by #3. On ChromeOS, we do use PPAPI to host the Widevine CDM. But why we need nacl_loader for the CDM? Are all PPAPI plugins loaded by nacl_loader in mustash?
Cc: sa...@chromium.org
I believe both non-mustash chrome and mustash chrome are using nacl_loader for loading nacl plugins. See [1]

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=666605
Thanks!

The CDM is just a normal PPAPI plugin. Are all PPAPI plugins treated as nacl plugins? Or are we using the same loader to load all plugins?
I am not familiar with nacl_loader. Probably sammc@ can give us the answer.

sammc@, could you please give us more detail about nacl_loader?
nacl_loader is only used for NaCl. It shouldn't be involved with any other PPAPI plugins.
Project Member

Comment 13 by bugdroid1@chromium.org, Feb 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae7972cadaacc1220283a8536061350046e82a3a

commit ae7972cadaacc1220283a8536061350046e82a3a
Author: penghuang <penghuang@chromium.org>
Date: Thu Feb 16 03:26:51 2017

PPAPI: Make output protection API work with mus+ash

With mustash, mus process is responsible for controlling
the display hardware instead of browser process. So the
pepper output protection impl in browser process can not
access DisplayConfigurator directly anymore. This CL adds
several content protection related mojo IPC. The output
protection impl will use those mojo IPC to access the
DisplayConfigurator in mus process.

PS. Netflix uses the pepper output protection API.

BUG= 684003 

Review-Url: https://codereview.chromium.org/2675743002
Cr-Commit-Position: refs/heads/master@{#450858}

[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/BUILD.gn
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_controller_ash.cc
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_controller_ash.h
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_controller_mus.cc
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_controller_mus.h
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_delegate.cc
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/chromeos/display/output_protection_delegate.h
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/chrome/browser/media/output_protection_proxy.cc
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/display/BUILD.gn
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/display/output_protection.cc
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/display/output_protection.h
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/display/screen_manager_ozone_internal.cc
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/display/screen_manager_ozone_internal.h
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/manifest.json
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/public/interfaces/display/BUILD.gn
[add] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/services/ui/public/interfaces/display/output_protection.mojom
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/ui/display/manager/chromeos/display_configurator.cc
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/ui/display/manager/chromeos/display_configurator.h
[modify] https://crrev.com/ae7972cadaacc1220283a8536061350046e82a3a/ui/display/manager/chromeos/display_configurator_unittest.cc

Blockedon: 693180
Status: Fixed (was: Assigned)

Comment 16 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 18 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment