0

Upstream OverrideWebkitPrefs Fix

This CL upstreams a fix from Chromecast Internal to allow for insecure
content when streaming.

Change-Id: I070c8c59039452592e6e785854c29876d4573d78
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3069381
Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
Commit-Queue: Ryan Keane <rwkeane@google.com>
Cr-Commit-Position: refs/heads/master@{#908171}
This commit is contained in:
Ryan Keane
2021-08-03 22:53:12 +00:00
committed by Chromium LUCI CQ
parent 92a6c65754
commit 87d5a255d9
3 changed files with 30 additions and 1 deletions

@ -123,7 +123,6 @@ if (is_linux) {
cast_source_set("core_runtime") {
sources = [
"cast_core_switches.h",
"runtime_application_service.cc",
"runtime_application_service.h",
"runtime_service.cc",
@ -174,6 +173,7 @@ cast_source_set("renderer") {
cast_source_set("browser") {
sources = [
"cast_core_switches.h",
"cast_runtime_content_browser_client.cc",
"cast_runtime_content_browser_client.h",
]
@ -183,6 +183,7 @@ cast_source_set("browser") {
"//base",
"//chromecast/browser",
"//chromecast/common:cors_exempt_headers",
"//media",
]
if (chromecast_branding == "public") {

@ -5,8 +5,11 @@
#include "chromecast/cast_core/cast_runtime_content_browser_client.h"
#include "chromecast/browser/service_manager_connection.h"
#include "chromecast/cast_core/cast_core_switches.h"
#include "chromecast/cast_core/cast_runtime_service.h"
#include "chromecast/common/cors_exempt_headers.h"
#include "media/base/cdm_factory.h"
#include "third_party/blink/public/common/web_preferences/web_preferences.h"
namespace chromecast {
namespace shell {
@ -56,4 +59,25 @@ std::unique_ptr<CastService> CastRuntimeContentBrowserClient::CreateCastService(
pref_service);
}
void CastRuntimeContentBrowserClient::OverrideWebkitPrefs(
content::WebContents* web_contents,
blink::web_pref::WebPreferences* web_prefs) {
CastContentBrowserClient::OverrideWebkitPrefs(web_contents, web_prefs);
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
kAllowRunningInsecureContentInRuntime)) {
// This is needed to unblock MSPs that still use insecure content. For
// example, Amazon Prime uses HTTPS as app URL, but media stream is done
// via HTTP.
LOG(INFO) << "Insecure content is enabled";
web_prefs->allow_running_insecure_content = true;
}
}
std::unique_ptr<::media::CdmFactory>
CastRuntimeContentBrowserClient::CreateCdmFactory(
::media::mojom::FrameInterfaceFactory* frame_interfaces) {
return nullptr;
}
} // namespace chromecast

@ -27,6 +27,10 @@ class CastRuntimeContentBrowserClient : public shell::CastContentBrowserClient {
PrefService* pref_service,
media::VideoPlaneController* video_plane_controller,
CastWindowManager* window_manager) final;
void OverrideWebkitPrefs(content::WebContents* web_contents,
blink::web_pref::WebPreferences* prefs) override;
std::unique_ptr<::media::CdmFactory> CreateCdmFactory(
::media::mojom::FrameInterfaceFactory* frame_interfaces) override;
};
} // namespace chromecast