| Index: chrome/browser/chrome_content_browser_client.cc
|
| diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
| index 71adb8355ef636cdc07f1de89521c80a5813a689..aa5621c5dcbae101cf01156c7b1b298cd4b2610b 100644
|
| --- a/chrome/browser/chrome_content_browser_client.cc
|
| +++ b/chrome/browser/chrome_content_browser_client.cc
|
| @@ -265,6 +265,7 @@
|
|
|
| #if defined(ENABLE_MEDIA_ROUTER)
|
| #include "chrome/browser/media/router/presentation_service_delegate_impl.h"
|
| +#include "chrome/browser/media/router/receiver_presentation_service_delegate_impl.h"
|
| #endif
|
|
|
| using base::FileDescriptor;
|
| @@ -2594,8 +2595,19 @@ content::PresentationServiceDelegate*
|
| ChromeContentBrowserClient::GetPresentationServiceDelegate(
|
| content::WebContents* web_contents) {
|
| #if defined(ENABLE_MEDIA_ROUTER)
|
| - if (switches::MediaRouterEnabled() &&
|
| - !web_contents->GetBrowserContext()->IsOffTheRecord()) {
|
| + if (switches::MediaRouterEnabled()) {
|
| + // ReceiverPresentationServiceDelegateImpl are for WebContents created for
|
| + // offscreen presentations. The WebContents is from an incognito profile.
|
| + if (auto* impl = media_router::ReceiverPresentationServiceDelegateImpl::
|
| + FromWebContents(web_contents)) {
|
| + DCHECK(web_contents->GetBrowserContext()->IsOffTheRecord());
|
| + return impl;
|
| + }
|
| + // TODO(imcheng): Presentation API is disabled in incognito mode for the
|
| + // time being. crbug.com/524795
|
| + if (web_contents->GetBrowserContext()->IsOffTheRecord())
|
| + return nullptr;
|
| +
|
| return media_router::PresentationServiceDelegateImpl::
|
| GetOrCreateForWebContents(web_contents);
|
| }
|
|
|