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/common/chromecast_switches.h" | 11 #include "chromecast/common/chromecast_switches.h" |
| 12 #include "chromecast/crash/cast_crash_keys.h" |
12 #include "chromecast/renderer/cast_media_load_deferrer.h" | 13 #include "chromecast/renderer/cast_media_load_deferrer.h" |
13 #include "chromecast/renderer/cast_render_process_observer.h" | 14 #include "chromecast/renderer/cast_render_process_observer.h" |
14 #include "chromecast/renderer/key_systems_cast.h" | 15 #include "chromecast/renderer/key_systems_cast.h" |
15 #include "chromecast/renderer/media/cma_media_renderer_factory.h" | 16 #include "chromecast/renderer/media/cma_media_renderer_factory.h" |
16 #include "components/network_hints/renderer/prescient_networking_dispatcher.h" | 17 #include "components/network_hints/renderer/prescient_networking_dispatcher.h" |
17 #include "content/public/common/content_switches.h" | 18 #include "content/public/common/content_switches.h" |
18 #include "content/public/renderer/render_frame.h" | 19 #include "content/public/renderer/render_frame.h" |
19 #include "content/public/renderer/render_view.h" | 20 #include "content/public/renderer/render_view.h" |
20 #include "content/public/renderer/render_view_observer.h" | 21 #include "content/public/renderer/render_view_observer.h" |
21 #include "crypto/nss_util.h" | 22 #include "crypto/nss_util.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 | 85 |
85 } // namespace | 86 } // namespace |
86 | 87 |
87 CastContentRendererClient::CastContentRendererClient() { | 88 CastContentRendererClient::CastContentRendererClient() { |
88 } | 89 } |
89 | 90 |
90 CastContentRendererClient::~CastContentRendererClient() { | 91 CastContentRendererClient::~CastContentRendererClient() { |
91 } | 92 } |
92 | 93 |
93 void CastContentRendererClient::RenderThreadStarted() { | 94 void CastContentRendererClient::RenderThreadStarted() { |
| 95 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
94 #if defined(USE_NSS) | 96 #if defined(USE_NSS) |
95 // Note: Copied from chrome_render_process_observer.cc to fix b/8676652. | 97 // Note: Copied from chrome_render_process_observer.cc to fix b/8676652. |
96 // | 98 // |
97 // On platforms where the system NSS shared libraries are used, | 99 // On platforms where the system NSS shared libraries are used, |
98 // initialize NSS now because it won't be able to load the .so's | 100 // initialize NSS now because it won't be able to load the .so's |
99 // after entering the sandbox. | 101 // after entering the sandbox. |
100 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | |
101 if (!command_line->HasSwitch(switches::kSingleProcess)) | 102 if (!command_line->HasSwitch(switches::kSingleProcess)) |
102 crypto::InitNSSSafely(); | 103 crypto::InitNSSSafely(); |
103 #endif | 104 #endif |
104 | 105 |
105 #if defined(ARCH_CPU_ARM_FAMILY) && !defined(OS_ANDROID) | 106 #if defined(ARCH_CPU_ARM_FAMILY) && !defined(OS_ANDROID) |
106 PlatformPollFreemem(); | 107 PlatformPollFreemem(); |
107 #endif | 108 #endif |
108 | 109 |
109 cast_observer_.reset( | 110 cast_observer_.reset( |
110 new CastRenderProcessObserver(PlatformGetRendererMessageFilters())); | 111 new CastRenderProcessObserver(PlatformGetRendererMessageFilters())); |
111 | 112 |
112 prescient_networking_dispatcher_.reset( | 113 prescient_networking_dispatcher_.reset( |
113 new network_hints::PrescientNetworkingDispatcher()); | 114 new network_hints::PrescientNetworkingDispatcher()); |
| 115 |
| 116 std::string last_launched_app = |
| 117 command_line->GetSwitchValueNative(switches::kLastLaunchedApp); |
| 118 if (!last_launched_app.empty()) |
| 119 base::debug::SetCrashKeyValue(crash_keys::kLastApp, last_launched_app); |
| 120 |
| 121 std::string previous_app = |
| 122 command_line->GetSwitchValueNative(switches::kPreviousApp); |
| 123 if (!previous_app.empty()) |
| 124 base::debug::SetCrashKeyValue(crash_keys::kPreviousApp, previous_app); |
114 } | 125 } |
115 | 126 |
116 void CastContentRendererClient::RenderViewCreated( | 127 void CastContentRendererClient::RenderViewCreated( |
117 content::RenderView* render_view) { | 128 content::RenderView* render_view) { |
118 blink::WebView* webview = render_view->GetWebView(); | 129 blink::WebView* webview = render_view->GetWebView(); |
119 if (webview) { | 130 if (webview) { |
120 webview->setBaseBackgroundColor(kColorBlack); | 131 webview->setBaseBackgroundColor(kColorBlack); |
121 | 132 |
122 // The following settings express consistent behaviors across Cast | 133 // The following settings express consistent behaviors across Cast |
123 // embedders, though Android has enabled by default for mobile browsers. | 134 // embedders, though Android has enabled by default for mobile browsers. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 closure.Run(); | 177 closure.Run(); |
167 return; | 178 return; |
168 } | 179 } |
169 | 180 |
170 // Lifetime is tied to |render_frame| via content::RenderFrameObserver. | 181 // Lifetime is tied to |render_frame| via content::RenderFrameObserver. |
171 new CastMediaLoadDeferrer(render_frame, closure); | 182 new CastMediaLoadDeferrer(render_frame, closure); |
172 } | 183 } |
173 | 184 |
174 } // namespace shell | 185 } // namespace shell |
175 } // namespace chromecast | 186 } // namespace chromecast |
OLD | NEW |