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:

committed by
Chromium LUCI CQ

parent
92a6c65754
commit
87d5a255d9
@ -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
|
||||
|
Reference in New Issue
Block a user