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
3// found in the LICENSE file.
4
5#include "chromecast/shell/renderer/cast_content_renderer_client.h"
6
7#include <sys/sysinfo.h>
8
9#include "base/command_line.h"
10#include "base/memory/memory_pressure_listener.h"
11#include "chromecast/shell/renderer/key_systems_cast.h"
12#include "content/public/common/content_switches.h"
13#include "content/public/renderer/render_view.h"
14#include "crypto/nss_util.h"
15#include "third_party/WebKit/public/platform/WebColor.h"
16#include "third_party/WebKit/public/web/WebSettings.h"
17#include "third_party/WebKit/public/web/WebView.h"
18
19namespace chromecast {
20namespace shell {
21
22namespace {
23
24// Default background color to set for WebViews
25const blink::WebColor kColorBlack = 0x000000FF;
26
27}  // namespace
28
29void CastContentRendererClient::RenderThreadStarted() {
30#if defined(USE_NSS)
31  // Note: Copied from chrome_render_process_observer.cc to fix b/8676652.
32  //
33  // On platforms where the system NSS shared libraries are used,
34  // initialize NSS now because it won't be able to load the .so's
35  // after entering the sandbox.
36  if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess))
37    crypto::InitNSSSafely();
38#endif
39}
40
41void CastContentRendererClient::RenderViewCreated(
42    content::RenderView* render_view) {
43  blink::WebView* webview = render_view->GetWebView();
44  if (webview) {
45    webview->setBaseBackgroundColor(kColorBlack);
46    webview->settings()->setShrinksViewportContentToFit(false);
47  }
48}
49
50void CastContentRendererClient::AddKeySystems(
51    std::vector<content::KeySystemInfo>* key_systems) {
52  AddChromecastKeySystems(key_systems);
53  AddChromecastPlatformKeySystems(key_systems);
54}
55
56}  // namespace shell
57}  // namespace chromecast
58