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

Side by Side Diff: chrome/browser/browser_process_impl.cc

Issue 6979011: Move user cloud policy to BrowserProcess. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments by mnissler. Added unittest. Created 9 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/browser_process_impl.h" 5 #include "chrome/browser/browser_process_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 25 matching lines...) Expand all
36 #include "chrome/browser/io_thread.h" 36 #include "chrome/browser/io_thread.h"
37 #include "chrome/browser/metrics/metrics_service.h" 37 #include "chrome/browser/metrics/metrics_service.h"
38 #include "chrome/browser/metrics/thread_watcher.h" 38 #include "chrome/browser/metrics/thread_watcher.h"
39 #include "chrome/browser/net/chrome_net_log.h" 39 #include "chrome/browser/net/chrome_net_log.h"
40 #include "chrome/browser/net/predictor_api.h" 40 #include "chrome/browser/net/predictor_api.h"
41 #include "chrome/browser/net/sdch_dictionary_fetcher.h" 41 #include "chrome/browser/net/sdch_dictionary_fetcher.h"
42 #include "chrome/browser/notifications/notification_ui_manager.h" 42 #include "chrome/browser/notifications/notification_ui_manager.h"
43 #include "chrome/browser/platform_util.h" 43 #include "chrome/browser/platform_util.h"
44 #include "chrome/browser/plugin_data_remover.h" 44 #include "chrome/browser/plugin_data_remover.h"
45 #include "chrome/browser/policy/browser_policy_connector.h" 45 #include "chrome/browser/policy/browser_policy_connector.h"
46 #include "chrome/browser/policy/cloud_policy_provider.h"
47 #include "chrome/browser/policy/configuration_policy_pref_store.h"
48 #include "chrome/browser/policy/user_policy_connector.h"
46 #include "chrome/browser/prefs/browser_prefs.h" 49 #include "chrome/browser/prefs/browser_prefs.h"
47 #include "chrome/browser/prefs/pref_service.h" 50 #include "chrome/browser/prefs/pref_service.h"
48 #include "chrome/browser/printing/background_printing_manager.h" 51 #include "chrome/browser/printing/background_printing_manager.h"
49 #include "chrome/browser/printing/print_job_manager.h" 52 #include "chrome/browser/printing/print_job_manager.h"
50 #include "chrome/browser/printing/print_preview_tab_controller.h" 53 #include "chrome/browser/printing/print_preview_tab_controller.h"
51 #include "chrome/browser/profiles/profile_manager.h" 54 #include "chrome/browser/profiles/profile_manager.h"
52 #include "chrome/browser/safe_browsing/client_side_detection_service.h" 55 #include "chrome/browser/safe_browsing/client_side_detection_service.h"
53 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 56 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
54 #include "chrome/browser/shell_integration.h" 57 #include "chrome/browser/shell_integration.h"
55 #include "chrome/browser/sidebar/sidebar_manager.h" 58 #include "chrome/browser/sidebar/sidebar_manager.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 created_watchdog_thread_(false), 122 created_watchdog_thread_(false),
120 #if defined(OS_CHROMEOS) 123 #if defined(OS_CHROMEOS)
121 created_web_socket_proxy_thread_(false), 124 created_web_socket_proxy_thread_(false),
122 #endif 125 #endif
123 created_profile_manager_(false), 126 created_profile_manager_(false),
124 created_local_state_(false), 127 created_local_state_(false),
125 created_icon_manager_(false), 128 created_icon_manager_(false),
126 created_devtools_manager_(false), 129 created_devtools_manager_(false),
127 created_sidebar_manager_(false), 130 created_sidebar_manager_(false),
128 created_browser_policy_connector_(false), 131 created_browser_policy_connector_(false),
132 created_user_policy_connector_(false),
133 created_managed_cloud_policy_provider_(false),
134 created_recommended_cloud_policy_provider_(false),
129 created_notification_ui_manager_(false), 135 created_notification_ui_manager_(false),
130 created_safe_browsing_detection_service_(false), 136 created_safe_browsing_detection_service_(false),
131 module_ref_count_(0), 137 module_ref_count_(0),
132 did_start_(false), 138 did_start_(false),
133 checked_for_new_frames_(false), 139 checked_for_new_frames_(false),
134 using_new_frames_(false) { 140 using_new_frames_(false) {
135 g_browser_process = this; 141 g_browser_process = this;
136 clipboard_.reset(new ui::Clipboard); 142 clipboard_.reset(new ui::Clipboard);
137 main_notification_service_.reset(new NotificationService); 143 main_notification_service_.reset(new NotificationService);
138 144
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 223
218 // Cancel pending requests and prevent new requests. 224 // Cancel pending requests and prevent new requests.
219 resource_dispatcher_host()->Shutdown(); 225 resource_dispatcher_host()->Shutdown();
220 } 226 }
221 227
222 ExtensionTabIdMap::GetInstance()->Shutdown(); 228 ExtensionTabIdMap::GetInstance()->Shutdown();
223 229
224 // The policy providers managed by |browser_policy_connector_| need to shut 230 // The policy providers managed by |browser_policy_connector_| need to shut
225 // down while the IO and FILE threads are still alive. 231 // down while the IO and FILE threads are still alive.
226 browser_policy_connector_.reset(); 232 browser_policy_connector_.reset();
233 user_policy_connector_.reset();
234 managed_cloud_policy_provider_.reset();
235 recommended_cloud_policy_provider_.reset();
227 236
228 #if defined(USE_X11) 237 #if defined(USE_X11)
229 // The IO thread must outlive the BACKGROUND_X11 thread. 238 // The IO thread must outlive the BACKGROUND_X11 thread.
230 background_x11_thread_.reset(); 239 background_x11_thread_.reset();
231 #endif 240 #endif
232 241
233 // Wait for removing plugin data to finish before shutting down the IO thread. 242 // Wait for removing plugin data to finish before shutting down the IO thread.
234 WaitForPluginDataRemoverToFinish(); 243 WaitForPluginDataRemoverToFinish();
235 244
236 // Destroying the GpuProcessHostUIShims on the UI thread posts a task to 245 // Destroying the GpuProcessHostUIShims on the UI thread posts a task to
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 policy::BrowserPolicyConnector* BrowserProcessImpl::browser_policy_connector() { 532 policy::BrowserPolicyConnector* BrowserProcessImpl::browser_policy_connector() {
524 DCHECK(CalledOnValidThread()); 533 DCHECK(CalledOnValidThread());
525 if (!created_browser_policy_connector_) { 534 if (!created_browser_policy_connector_) {
526 DCHECK(browser_policy_connector_.get() == NULL); 535 DCHECK(browser_policy_connector_.get() == NULL);
527 created_browser_policy_connector_ = true; 536 created_browser_policy_connector_ = true;
528 browser_policy_connector_.reset(policy::BrowserPolicyConnector::Create()); 537 browser_policy_connector_.reset(policy::BrowserPolicyConnector::Create());
529 } 538 }
530 return browser_policy_connector_.get(); 539 return browser_policy_connector_.get();
531 } 540 }
532 541
542 policy::UserPolicyConnector* BrowserProcessImpl::user_policy_connector() {
543 DCHECK(CalledOnValidThread());
544 if (!created_user_policy_connector_) {
Joao da Silva 2011/05/31 14:50:23 Why have a boolean for this test, instead of testi
sfeuz 2011/06/03 08:30:35 Obsolete. But still the same is done in browser_po
545 DCHECK(user_policy_connector_.get() == NULL);
546 created_user_policy_connector_ = true;
547 user_policy_connector_.reset(policy::UserPolicyConnector::Create());
548 }
549 return user_policy_connector_.get();
550 }
551
552 policy::ConfigurationPolicyProvider*
553 BrowserProcessImpl::managed_cloud_policy_provider() {
554 DCHECK(CalledOnValidThread());
555 if (!created_managed_cloud_policy_provider_) {
556 DCHECK(!managed_cloud_policy_provider_.get());
557 created_managed_cloud_policy_provider_ = true;
558 // Combining user policy and device policy.
559 managed_cloud_policy_provider_.reset(
560 new policy::CombiningCloudPolicyProvider(
561 policy::ConfigurationPolicyPrefStore::
562 GetChromePolicyDefinitionList()));
563 // User policy taking precedence.
564 policy::CloudPolicyProvider* user_policy =
565 user_policy_connector()->GetManagedCloudProvider();
566 if (user_policy)
567 managed_cloud_policy_provider_.get()->AddCloudPolicyProvider(user_policy);
Joao da Silva 2011/05/31 14:50:23 No need for .get(), just -> from the scoped_ptr.
sfeuz 2011/06/03 08:30:35 Obsolete.
568
569 policy::CloudPolicyProvider* device_policy =
570 browser_policy_connector()->GetManagedCloudProvider();
571 if (device_policy) {
572 managed_cloud_policy_provider_.get()->
Joao da Silva 2011/05/31 14:50:23 Same.
sfeuz 2011/06/03 08:30:35 Obsolete.
573 AddCloudPolicyProvider(device_policy);
574 }
575 }
576 return managed_cloud_policy_provider_.get();
577 }
578
579 policy::ConfigurationPolicyProvider*
580 BrowserProcessImpl::recommended_cloud_policy_provider() {
581 DCHECK(CalledOnValidThread());
582 if (!created_recommended_cloud_policy_provider_) {
583 DCHECK(!recommended_cloud_policy_provider_.get());
584 created_recommended_cloud_policy_provider_ = true;
585 // Combining user policy and device policy.
586 recommended_cloud_policy_provider_.reset(
587 new policy::CombiningCloudPolicyProvider(
588 policy::ConfigurationPolicyPrefStore::
589 GetChromePolicyDefinitionList()));
590 // User policy taking precedence.
591 policy::CloudPolicyProvider* user_policy =
592 user_policy_connector()->GetRecommendedCloudProvider();
593 if (user_policy)
594 recommended_cloud_policy_provider_.get()->
Joao da Silva 2011/05/31 14:50:23 Same.
sfeuz 2011/06/03 08:30:35 Obsolete.
595 AddCloudPolicyProvider(user_policy);
596
597 policy::CloudPolicyProvider* device_policy =
598 browser_policy_connector()->GetRecommendedCloudProvider();
599 if (device_policy) {
600 recommended_cloud_policy_provider_.get()->
Joao da Silva 2011/05/31 14:50:23 Same again :-)
sfeuz 2011/06/03 08:30:35 Obsolete :-)
601 AddCloudPolicyProvider(device_policy);
602 }
603 }
604 return recommended_cloud_policy_provider_.get();
605 }
606
533 IconManager* BrowserProcessImpl::icon_manager() { 607 IconManager* BrowserProcessImpl::icon_manager() {
534 DCHECK(CalledOnValidThread()); 608 DCHECK(CalledOnValidThread());
535 if (!created_icon_manager_) 609 if (!created_icon_manager_)
536 CreateIconManager(); 610 CreateIconManager();
537 return icon_manager_.get(); 611 return icon_manager_.get();
538 } 612 }
539 613
540 ThumbnailGenerator* BrowserProcessImpl::GetThumbnailGenerator() { 614 ThumbnailGenerator* BrowserProcessImpl::GetThumbnailGenerator() {
541 return &thumbnail_generator_; 615 return &thumbnail_generator_;
542 } 616 }
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 } 1195 }
1122 1196
1123 void BrowserProcessImpl::OnAutoupdateTimer() { 1197 void BrowserProcessImpl::OnAutoupdateTimer() {
1124 if (CanAutorestartForUpdate()) { 1198 if (CanAutorestartForUpdate()) {
1125 DLOG(WARNING) << "Detected update. Restarting browser."; 1199 DLOG(WARNING) << "Detected update. Restarting browser.";
1126 RestartPersistentInstance(); 1200 RestartPersistentInstance();
1127 } 1201 }
1128 } 1202 }
1129 1203
1130 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) 1204 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698