Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: components/arc/arc_service_manager.cc

Issue 1829703002: Add ArcEnabled policy implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed test and removed all changes from arc_auth_service Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/arc/arc_service_manager.h" 5 #include "components/arc/arc_service_manager.h"
6 6
7 #include "base/sequenced_task_runner.h" 7 #include "base/sequenced_task_runner.h"
8 #include "base/thread_task_runner_handle.h" 8 #include "base/thread_task_runner_handle.h"
9 #include "components/arc/arc_bridge_bootstrap.h" 9 #include "components/arc/arc_bridge_bootstrap.h"
10 #include "components/arc/arc_bridge_service_impl.h" 10 #include "components/arc/arc_bridge_service_impl.h"
11 #include "components/arc/clipboard/arc_clipboard_bridge.h" 11 #include "components/arc/clipboard/arc_clipboard_bridge.h"
12 #include "components/arc/crash_collector/arc_crash_collector_bridge.h" 12 #include "components/arc/crash_collector/arc_crash_collector_bridge.h"
13 #include "components/arc/ime/arc_ime_service.h" 13 #include "components/arc/ime/arc_ime_service.h"
14 #include "components/arc/input/arc_input_bridge.h" 14 #include "components/arc/input/arc_input_bridge.h"
15 #include "components/arc/metrics/arc_metrics_service.h" 15 #include "components/arc/metrics/arc_metrics_service.h"
16 #include "components/arc/net/arc_net_host_impl.h" 16 #include "components/arc/net/arc_net_host_impl.h"
17 #include "components/arc/power/arc_power_bridge.h" 17 #include "components/arc/power/arc_power_bridge.h"
18 #include "ui/arc/notification/arc_notification_manager.h" 18 #include "ui/arc/notification/arc_notification_manager.h"
19 19
20 namespace arc { 20 namespace arc {
21 21
22 namespace { 22 namespace {
23 23
24 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos. 24 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos.
25 ArcServiceManager* g_arc_service_manager = nullptr; 25 ArcServiceManager* g_arc_service_manager = nullptr;
26 26
27 // This pointer is owned by ArcServiceManager.
28 ArcBridgeService* g_arc_bridge_service_for_testing = nullptr;
bartfab (slow) 2016/04/01 10:41:18 Nit: #include "components/arc/arc_bridge_service.h
Polina Bondarenko 2016/04/01 11:05:10 Done.
29
27 } // namespace 30 } // namespace
28 31
29 ArcServiceManager::ArcServiceManager() 32 ArcServiceManager::ArcServiceManager() {
30 : arc_bridge_service_(
31 new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())) {
32 DCHECK(!g_arc_service_manager); 33 DCHECK(!g_arc_service_manager);
33 g_arc_service_manager = this; 34 g_arc_service_manager = this;
34 35
36 if (g_arc_bridge_service_for_testing) {
37 arc_bridge_service_.reset(g_arc_bridge_service_for_testing);
38 g_arc_bridge_service_for_testing = nullptr;
39 } else {
40 arc_bridge_service_.reset(new ArcBridgeServiceImpl(
41 ArcBridgeBootstrap::Create()));
42 }
43
35 AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service()))); 44 AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service())));
36 AddService( 45 AddService(
37 make_scoped_ptr(new ArcCrashCollectorBridge(arc_bridge_service()))); 46 make_scoped_ptr(new ArcCrashCollectorBridge(arc_bridge_service())));
38 AddService(make_scoped_ptr(new ArcImeService(arc_bridge_service()))); 47 AddService(make_scoped_ptr(new ArcImeService(arc_bridge_service())));
39 AddService(make_scoped_ptr(new ArcInputBridge(arc_bridge_service()))); 48 AddService(make_scoped_ptr(new ArcInputBridge(arc_bridge_service())));
40 AddService(make_scoped_ptr(new ArcMetricsService(arc_bridge_service()))); 49 AddService(make_scoped_ptr(new ArcMetricsService(arc_bridge_service())));
41 AddService(make_scoped_ptr(new ArcNetHostImpl(arc_bridge_service()))); 50 AddService(make_scoped_ptr(new ArcNetHostImpl(arc_bridge_service())));
42 AddService(make_scoped_ptr(new ArcPowerBridge(arc_bridge_service()))); 51 AddService(make_scoped_ptr(new ArcPowerBridge(arc_bridge_service())));
43 } 52 }
44 53
45 ArcServiceManager::~ArcServiceManager() { 54 ArcServiceManager::~ArcServiceManager() {
46 DCHECK(thread_checker_.CalledOnValidThread()); 55 DCHECK(thread_checker_.CalledOnValidThread());
47 DCHECK(g_arc_service_manager == this); 56 DCHECK(g_arc_service_manager == this);
48 g_arc_service_manager = nullptr; 57 g_arc_service_manager = nullptr;
58 if (g_arc_bridge_service_for_testing) {
59 delete g_arc_bridge_service_for_testing;
60 }
49 } 61 }
50 62
51 // static 63 // static
52 ArcServiceManager* ArcServiceManager::Get() { 64 ArcServiceManager* ArcServiceManager::Get() {
53 DCHECK(g_arc_service_manager); 65 DCHECK(g_arc_service_manager);
54 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread()); 66 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread());
55 return g_arc_service_manager; 67 return g_arc_service_manager;
56 } 68 }
57 69
58 ArcBridgeService* ArcServiceManager::arc_bridge_service() { 70 ArcBridgeService* ArcServiceManager::arc_bridge_service() {
59 DCHECK(thread_checker_.CalledOnValidThread()); 71 DCHECK(thread_checker_.CalledOnValidThread());
60 return arc_bridge_service_.get(); 72 return arc_bridge_service_.get();
61 } 73 }
62 74
63 void ArcServiceManager::AddService(scoped_ptr<ArcService> service) { 75 void ArcServiceManager::AddService(scoped_ptr<ArcService> service) {
64 DCHECK(thread_checker_.CalledOnValidThread()); 76 DCHECK(thread_checker_.CalledOnValidThread());
65 77
66 services_.emplace_back(std::move(service)); 78 services_.emplace_back(std::move(service));
67 } 79 }
68 80
69 void ArcServiceManager::OnPrimaryUserProfilePrepared( 81 void ArcServiceManager::OnPrimaryUserProfilePrepared(
70 const AccountId& account_id) { 82 const AccountId& account_id) {
71 DCHECK(thread_checker_.CalledOnValidThread()); 83 DCHECK(thread_checker_.CalledOnValidThread());
72 84
73 AddService(make_scoped_ptr( 85 AddService(make_scoped_ptr(
74 new ArcNotificationManager(arc_bridge_service(), account_id))); 86 new ArcNotificationManager(arc_bridge_service(), account_id)));
75 } 87 }
76 88
89 //static
90 void ArcServiceManager::SetArcBridgeServiceForTesting(
91 scoped_ptr<ArcBridgeService> arc_bridge_service) {
92 if (g_arc_bridge_service_for_testing) {
93 delete g_arc_bridge_service_for_testing;
94 }
95 g_arc_bridge_service_for_testing = arc_bridge_service.release();
96 }
97
77 } // namespace arc 98 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698