blob: d3cfbfa9eade8c148a9905c0155d16a19a4a8533 [file] [log] [blame]
gunsch611228e2014-08-30 01:47:041// 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
gunschf44ffcb2014-10-13 23:01:455#include "chromecast/browser/cast_browser_process.h"
gunsch611228e2014-08-30 01:47:046
7#include "base/logging.h"
byungchulba8252562014-12-05 21:01:278#include "base/prefs/pref_service.h"
gunsch7d57bdc32014-10-20 22:44:439#include "chromecast/base/metrics/cast_metrics_helper.h"
gunschf44ffcb2014-10-13 23:01:4510#include "chromecast/browser/cast_browser_context.h"
derekjchow30d4c222015-02-20 20:30:2611#include "chromecast/browser/cast_resource_dispatcher_host_delegate.h"
gunschf44ffcb2014-10-13 23:01:4512#include "chromecast/browser/devtools/remote_debugging_server.h"
13#include "chromecast/browser/metrics/cast_metrics_service_client.h"
14#include "chromecast/browser/service/cast_service.h"
derekjchow30d4c222015-02-20 20:30:2615#include "chromecast/net/connectivity_checker.h"
gunsch611228e2014-08-30 01:47:0416
gunsch168c44ce2014-10-09 04:37:0617#if defined(OS_ANDROID)
18#include "components/crash/browser/crash_dump_manager_android.h"
19#endif // defined(OS_ANDROID)
20
esum03d2f822015-07-08 23:43:5921#if defined(USE_AURA)
22#include "chromecast/graphics/cast_screen.h"
23#endif // defined(USE_AURA)
24
gunsch611228e2014-08-30 01:47:0425namespace chromecast {
26namespace shell {
27
28namespace {
29CastBrowserProcess* g_instance = NULL;
30} // namespace
31
32// static
33CastBrowserProcess* CastBrowserProcess::GetInstance() {
34 DCHECK(g_instance);
35 return g_instance;
36}
37
derekjchow4a2ab5d2015-07-09 18:39:5338CastBrowserProcess::CastBrowserProcess()
39 : net_log_(nullptr) {
gunsch611228e2014-08-30 01:47:0440 DCHECK(!g_instance);
41 g_instance = this;
42}
43
44CastBrowserProcess::~CastBrowserProcess() {
45 DCHECK_EQ(g_instance, this);
byungchulba8252562014-12-05 21:01:2746 if (pref_service_)
47 pref_service_->CommitPendingWrite();
gunsch611228e2014-08-30 01:47:0448 g_instance = NULL;
49}
50
51void CastBrowserProcess::SetBrowserContext(
byungchulba8252562014-12-05 21:01:2752 scoped_ptr<CastBrowserContext> browser_context) {
gunsch611228e2014-08-30 01:47:0453 DCHECK(!browser_context_);
byungchulba8252562014-12-05 21:01:2754 browser_context_.swap(browser_context);
gunsch611228e2014-08-30 01:47:0455}
56
byungchulba8252562014-12-05 21:01:2757void CastBrowserProcess::SetCastService(scoped_ptr<CastService> cast_service) {
gunsch611228e2014-08-30 01:47:0458 DCHECK(!cast_service_);
byungchulba8252562014-12-05 21:01:2759 cast_service_.swap(cast_service);
gunsch611228e2014-08-30 01:47:0460}
61
esum03d2f822015-07-08 23:43:5962#if defined(USE_AURA)
63void CastBrowserProcess::SetCastScreen(scoped_ptr<CastScreen> cast_screen) {
64 DCHECK(!cast_screen_);
65 cast_screen_ = cast_screen.Pass();
66}
67#endif // defined(USE_AURA)
68
gunsch7d57bdc32014-10-20 22:44:4369void CastBrowserProcess::SetMetricsHelper(
byungchulba8252562014-12-05 21:01:2770 scoped_ptr<metrics::CastMetricsHelper> metrics_helper) {
gunsch7d57bdc32014-10-20 22:44:4371 DCHECK(!metrics_helper_);
byungchulba8252562014-12-05 21:01:2772 metrics_helper_.swap(metrics_helper);
gunsch7d57bdc32014-10-20 22:44:4373}
74
gunsch611228e2014-08-30 01:47:0475void CastBrowserProcess::SetMetricsServiceClient(
byungchulba8252562014-12-05 21:01:2776 scoped_ptr<metrics::CastMetricsServiceClient> metrics_service_client) {
gunsch611228e2014-08-30 01:47:0477 DCHECK(!metrics_service_client_);
byungchulba8252562014-12-05 21:01:2778 metrics_service_client_.swap(metrics_service_client);
79}
80
81void CastBrowserProcess::SetPrefService(scoped_ptr<PrefService> pref_service) {
82 DCHECK(!pref_service_);
83 pref_service_.swap(pref_service);
84}
85
86void CastBrowserProcess::SetRemoteDebuggingServer(
87 scoped_ptr<RemoteDebuggingServer> remote_debugging_server) {
88 DCHECK(!remote_debugging_server_);
89 remote_debugging_server_.swap(remote_debugging_server);
gunsch611228e2014-08-30 01:47:0490}
91
derekjchow30d4c222015-02-20 20:30:2692void CastBrowserProcess::SetResourceDispatcherHostDelegate(
93 scoped_ptr<CastResourceDispatcherHostDelegate> delegate) {
94 DCHECK(!resource_dispatcher_host_delegate_);
95 resource_dispatcher_host_delegate_.swap(delegate);
96}
97
gunsch168c44ce2014-10-09 04:37:0698#if defined(OS_ANDROID)
99void CastBrowserProcess::SetCrashDumpManager(
byungchulba8252562014-12-05 21:01:27100 scoped_ptr<breakpad::CrashDumpManager> crash_dump_manager) {
gunsch168c44ce2014-10-09 04:37:06101 DCHECK(!crash_dump_manager_);
byungchulba8252562014-12-05 21:01:27102 crash_dump_manager_.swap(crash_dump_manager);
gunsch168c44ce2014-10-09 04:37:06103}
104#endif // defined(OS_ANDROID)
105
derekjchow30d4c222015-02-20 20:30:26106void CastBrowserProcess::SetConnectivityChecker(
107 scoped_refptr<ConnectivityChecker> connectivity_checker) {
108 DCHECK(!connectivity_checker_);
109 connectivity_checker_.swap(connectivity_checker);
110}
111
derekjchow4a2ab5d2015-07-09 18:39:53112void CastBrowserProcess::SetNetLog(net::NetLog* net_log) {
113 DCHECK(!net_log_);
114 net_log_ = net_log;
115}
116
gunsch611228e2014-08-30 01:47:04117} // namespace shell
118} // namespace chromecast