OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromecast/renderer/cast_content_renderer_client.h" | 5 #include "chromecast/renderer/cast_content_renderer_client.h" |
6 | 6 |
7 #include <sys/sysinfo.h> | 7 #include <sys/sysinfo.h> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/memory/memory_pressure_listener.h" | 10 #include "base/memory/memory_pressure_listener.h" |
11 #include "chromecast/renderer/key_systems_cast.h" | 11 #include "chromecast/renderer/key_systems_cast.h" |
| 12 #include "components/dns_prefetch/renderer/prescient_networking_dispatcher.h" |
12 #include "content/public/common/content_switches.h" | 13 #include "content/public/common/content_switches.h" |
13 #include "content/public/renderer/render_view.h" | 14 #include "content/public/renderer/render_view.h" |
14 #include "crypto/nss_util.h" | 15 #include "crypto/nss_util.h" |
15 #include "third_party/WebKit/public/platform/WebColor.h" | 16 #include "third_party/WebKit/public/platform/WebColor.h" |
16 #include "third_party/WebKit/public/web/WebSettings.h" | 17 #include "third_party/WebKit/public/web/WebSettings.h" |
17 #include "third_party/WebKit/public/web/WebView.h" | 18 #include "third_party/WebKit/public/web/WebView.h" |
18 | 19 |
19 namespace chromecast { | 20 namespace chromecast { |
20 namespace shell { | 21 namespace shell { |
21 | 22 |
22 namespace { | 23 namespace { |
23 | 24 |
24 // Default background color to set for WebViews. WebColor is in ARGB format | 25 // Default background color to set for WebViews. WebColor is in ARGB format |
25 // though the comment of WebColor says it is in RGBA. | 26 // though the comment of WebColor says it is in RGBA. |
26 const blink::WebColor kColorBlack = 0xFF000000; | 27 const blink::WebColor kColorBlack = 0xFF000000; |
27 | 28 |
28 } // namespace | 29 } // namespace |
29 | 30 |
| 31 CastContentRendererClient::CastContentRendererClient() { |
| 32 } |
| 33 |
| 34 CastContentRendererClient::~CastContentRendererClient() { |
| 35 } |
| 36 |
30 void CastContentRendererClient::RenderThreadStarted() { | 37 void CastContentRendererClient::RenderThreadStarted() { |
31 #if defined(USE_NSS) | 38 #if defined(USE_NSS) |
32 // Note: Copied from chrome_render_process_observer.cc to fix b/8676652. | 39 // Note: Copied from chrome_render_process_observer.cc to fix b/8676652. |
33 // | 40 // |
34 // On platforms where the system NSS shared libraries are used, | 41 // On platforms where the system NSS shared libraries are used, |
35 // initialize NSS now because it won't be able to load the .so's | 42 // initialize NSS now because it won't be able to load the .so's |
36 // after entering the sandbox. | 43 // after entering the sandbox. |
37 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 44 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
38 if (!command_line->HasSwitch(switches::kSingleProcess)) | 45 if (!command_line->HasSwitch(switches::kSingleProcess)) |
39 crypto::InitNSSSafely(); | 46 crypto::InitNSSSafely(); |
40 #endif | 47 #endif |
| 48 |
| 49 prescient_networking_dispatcher_.reset( |
| 50 new dns_prefetch::PrescientNetworkingDispatcher()); |
41 } | 51 } |
42 | 52 |
43 void CastContentRendererClient::RenderViewCreated( | 53 void CastContentRendererClient::RenderViewCreated( |
44 content::RenderView* render_view) { | 54 content::RenderView* render_view) { |
45 blink::WebView* webview = render_view->GetWebView(); | 55 blink::WebView* webview = render_view->GetWebView(); |
46 if (webview) { | 56 if (webview) { |
47 webview->setBaseBackgroundColor(kColorBlack); | 57 webview->setBaseBackgroundColor(kColorBlack); |
48 | 58 |
49 // The following settings express consistent behaviors across Cast | 59 // The following settings express consistent behaviors across Cast |
50 // embedders, though Android has enabled by default for mobile browsers. | 60 // embedders, though Android has enabled by default for mobile browsers. |
51 webview->settings()->setShrinksViewportContentToFit(false); | 61 webview->settings()->setShrinksViewportContentToFit(false); |
52 webview->settings()->setMediaControlsOverlayPlayButtonEnabled(false); | 62 webview->settings()->setMediaControlsOverlayPlayButtonEnabled(false); |
53 } | 63 } |
54 } | 64 } |
55 | 65 |
56 void CastContentRendererClient::AddKeySystems( | 66 void CastContentRendererClient::AddKeySystems( |
57 std::vector< ::media::KeySystemInfo>* key_systems) { | 67 std::vector< ::media::KeySystemInfo>* key_systems) { |
58 AddChromecastKeySystems(key_systems); | 68 AddChromecastKeySystems(key_systems); |
59 AddChromecastPlatformKeySystems(key_systems); | 69 AddChromecastPlatformKeySystems(key_systems); |
60 } | 70 } |
61 | 71 |
| 72 blink::WebPrescientNetworking* |
| 73 CastContentRendererClient::GetPrescientNetworking() { |
| 74 return prescient_networking_dispatcher_.get(); |
| 75 } |
| 76 |
62 } // namespace shell | 77 } // namespace shell |
63 } // namespace chromecast | 78 } // namespace chromecast |
OLD | NEW |