OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/managed_mode/managed_user_service.h" | 5 #include "chrome/browser/managed_mode/managed_user_service.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
13 #include "chrome/browser/chrome_notification_types.h" | |
14 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
15 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h" | 14 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h" |
16 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto
ry.h" | 15 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_facto
ry.h" |
17 #include "chrome/browser/managed_mode/managed_mode_site_list.h" | 16 #include "chrome/browser/managed_mode/managed_mode_site_list.h" |
18 #include "chrome/browser/managed_mode/managed_user_constants.h" | 17 #include "chrome/browser/managed_mode/managed_user_constants.h" |
19 #include "chrome/browser/managed_mode/managed_user_registration_utility.h" | 18 #include "chrome/browser/managed_mode/managed_user_registration_utility.h" |
20 #include "chrome/browser/managed_mode/managed_user_settings_service.h" | 19 #include "chrome/browser/managed_mode/managed_user_settings_service.h" |
21 #include "chrome/browser/managed_mode/managed_user_settings_service_factory.h" | 20 #include "chrome/browser/managed_mode/managed_user_settings_service_factory.h" |
22 #include "chrome/browser/managed_mode/managed_user_shared_settings_service_facto
ry.h" | 21 #include "chrome/browser/managed_mode/managed_user_shared_settings_service_facto
ry.h" |
23 #include "chrome/browser/managed_mode/managed_user_sync_service.h" | 22 #include "chrome/browser/managed_mode/managed_user_sync_service.h" |
(...skipping 12 matching lines...) Expand all Loading... |
36 #include "chrome/browser/ui/browser.h" | 35 #include "chrome/browser/ui/browser.h" |
37 #include "chrome/browser/ui/browser_list.h" | 36 #include "chrome/browser/ui/browser_list.h" |
38 #include "chrome/common/chrome_switches.h" | 37 #include "chrome/common/chrome_switches.h" |
39 #include "chrome/common/extensions/api/managed_mode_private/managed_mode_handler
.h" | 38 #include "chrome/common/extensions/api/managed_mode_private/managed_mode_handler
.h" |
40 #include "chrome/common/pref_names.h" | 39 #include "chrome/common/pref_names.h" |
41 #include "components/pref_registry/pref_registry_syncable.h" | 40 #include "components/pref_registry/pref_registry_syncable.h" |
42 #include "components/signin/core/browser/profile_oauth2_token_service.h" | 41 #include "components/signin/core/browser/profile_oauth2_token_service.h" |
43 #include "components/signin/core/browser/signin_manager.h" | 42 #include "components/signin/core/browser/signin_manager.h" |
44 #include "components/signin/core/browser/signin_manager_base.h" | 43 #include "components/signin/core/browser/signin_manager_base.h" |
45 #include "content/public/browser/browser_thread.h" | 44 #include "content/public/browser/browser_thread.h" |
46 #include "content/public/browser/notification_details.h" | |
47 #include "content/public/browser/notification_source.h" | |
48 #include "content/public/browser/user_metrics.h" | 45 #include "content/public/browser/user_metrics.h" |
| 46 #include "extensions/browser/extension_registry.h" |
49 #include "extensions/browser/extension_system.h" | 47 #include "extensions/browser/extension_system.h" |
50 #include "extensions/common/extension_set.h" | 48 #include "extensions/common/extension_set.h" |
51 #include "google_apis/gaia/google_service_auth_error.h" | 49 #include "google_apis/gaia/google_service_auth_error.h" |
52 #include "grit/generated_resources.h" | 50 #include "grit/generated_resources.h" |
53 #include "net/base/escape.h" | 51 #include "net/base/escape.h" |
54 #include "ui/base/l10n/l10n_util.h" | 52 #include "ui/base/l10n/l10n_util.h" |
55 | 53 |
56 #if defined(OS_CHROMEOS) | 54 #if defined(OS_CHROMEOS) |
57 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" | 55 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
58 #include "chrome/browser/chromeos/login/users/user_manager.h" | 56 #include "chrome/browser/chromeos/login/users/user_manager.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 ui_url_filter_->SetManualURLs(url_map.get()); | 118 ui_url_filter_->SetManualURLs(url_map.get()); |
121 BrowserThread::PostTask( | 119 BrowserThread::PostTask( |
122 BrowserThread::IO, | 120 BrowserThread::IO, |
123 FROM_HERE, | 121 FROM_HERE, |
124 base::Bind(&ManagedModeURLFilter::SetManualURLs, | 122 base::Bind(&ManagedModeURLFilter::SetManualURLs, |
125 io_url_filter_, base::Owned(url_map.release()))); | 123 io_url_filter_, base::Owned(url_map.release()))); |
126 } | 124 } |
127 | 125 |
128 ManagedUserService::ManagedUserService(Profile* profile) | 126 ManagedUserService::ManagedUserService(Profile* profile) |
129 : profile_(profile), | 127 : profile_(profile), |
| 128 extension_registry_observer_(this), |
130 waiting_for_sync_initialization_(false), | 129 waiting_for_sync_initialization_(false), |
131 is_profile_active_(false), | 130 is_profile_active_(false), |
132 elevated_for_testing_(false), | 131 elevated_for_testing_(false), |
133 did_shutdown_(false), | 132 did_shutdown_(false), |
134 waiting_for_permissions_(false), | 133 waiting_for_permissions_(false), |
135 weak_ptr_factory_(this) { | 134 weak_ptr_factory_(this) { |
136 } | 135 } |
137 | 136 |
138 ManagedUserService::~ManagedUserService() { | 137 ManagedUserService::~ManagedUserService() { |
139 DCHECK(did_shutdown_); | 138 DCHECK(did_shutdown_); |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 service->RemoveObserver(this); | 326 service->RemoveObserver(this); |
328 SetupSync(); | 327 SetupSync(); |
329 return; | 328 return; |
330 } | 329 } |
331 | 330 |
332 DLOG_IF(ERROR, service->GetAuthError().state() == | 331 DLOG_IF(ERROR, service->GetAuthError().state() == |
333 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS) | 332 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS) |
334 << "Credentials rejected"; | 333 << "Credentials rejected"; |
335 } | 334 } |
336 | 335 |
337 void ManagedUserService::Observe(int type, | 336 void ManagedUserService::OnExtensionLoaded( |
338 const content::NotificationSource& source, | 337 content::BrowserContext* browser_context, |
339 const content::NotificationDetails& details) { | 338 const extensions::Extension* extension) { |
340 switch (type) { | 339 if (!extensions::ManagedModeInfo::GetContentPackSiteList(extension).empty()) { |
341 case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: { | 340 UpdateSiteLists(); |
342 const extensions::Extension* extension = | 341 } |
343 content::Details<extensions::Extension>(details).ptr(); | 342 } |
344 if (!extensions::ManagedModeInfo::GetContentPackSiteList( | 343 void ManagedUserService::OnExtensionUnloaded( |
345 extension).empty()) { | 344 content::BrowserContext* browser_context, |
346 UpdateSiteLists(); | 345 const extensions::Extension* extension, |
347 } | 346 extensions::UnloadedExtensionInfo::Reason reason) { |
348 break; | 347 if (!extensions::ManagedModeInfo::GetContentPackSiteList(extension).empty()) { |
349 } | 348 UpdateSiteLists(); |
350 case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: { | |
351 const extensions::UnloadedExtensionInfo* extension_info = | |
352 content::Details<extensions::UnloadedExtensionInfo>(details).ptr(); | |
353 if (!extensions::ManagedModeInfo::GetContentPackSiteList( | |
354 extension_info->extension).empty()) { | |
355 UpdateSiteLists(); | |
356 } | |
357 break; | |
358 } | |
359 default: | |
360 NOTREACHED(); | |
361 } | 349 } |
362 } | 350 } |
363 | 351 |
364 void ManagedUserService::SetupSync() { | 352 void ManagedUserService::SetupSync() { |
365 ProfileSyncService* service = | 353 ProfileSyncService* service = |
366 ProfileSyncServiceFactory::GetForProfile(profile_); | 354 ProfileSyncServiceFactory::GetForProfile(profile_); |
367 DCHECK(service->sync_initialized()); | 355 DCHECK(service->sync_initialized()); |
368 | 356 |
369 bool sync_everything = false; | 357 bool sync_everything = false; |
370 syncer::ModelTypeSet synced_datatypes; | 358 syncer::ModelTypeSet synced_datatypes; |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 pref_service->GetString(prefs::kManagedUserId))); | 547 pref_service->GetString(prefs::kManagedUserId))); |
560 } | 548 } |
561 | 549 |
562 extensions::ExtensionSystem* extension_system = | 550 extensions::ExtensionSystem* extension_system = |
563 extensions::ExtensionSystem::Get(profile_); | 551 extensions::ExtensionSystem::Get(profile_); |
564 extensions::ManagementPolicy* management_policy = | 552 extensions::ManagementPolicy* management_policy = |
565 extension_system->management_policy(); | 553 extension_system->management_policy(); |
566 if (management_policy) | 554 if (management_policy) |
567 extension_system->management_policy()->RegisterProvider(this); | 555 extension_system->management_policy()->RegisterProvider(this); |
568 | 556 |
569 registrar_.Add(this, | 557 extension_registry_observer_.Add( |
570 chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, | 558 extensions::ExtensionRegistry::Get(profile_)); |
571 content::Source<Profile>(profile_)); | |
572 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, | |
573 content::Source<Profile>(profile_)); | |
574 | 559 |
575 pref_change_registrar_.Init(profile_->GetPrefs()); | 560 pref_change_registrar_.Init(profile_->GetPrefs()); |
576 pref_change_registrar_.Add( | 561 pref_change_registrar_.Add( |
577 prefs::kDefaultManagedModeFilteringBehavior, | 562 prefs::kDefaultManagedModeFilteringBehavior, |
578 base::Bind(&ManagedUserService::OnDefaultFilteringBehaviorChanged, | 563 base::Bind(&ManagedUserService::OnDefaultFilteringBehaviorChanged, |
579 base::Unretained(this))); | 564 base::Unretained(this))); |
580 pref_change_registrar_.Add(prefs::kManagedModeManualHosts, | 565 pref_change_registrar_.Add(prefs::kManagedModeManualHosts, |
581 base::Bind(&ManagedUserService::UpdateManualHosts, | 566 base::Bind(&ManagedUserService::UpdateManualHosts, |
582 base::Unretained(this))); | 567 base::Unretained(this))); |
583 pref_change_registrar_.Add(prefs::kManagedModeManualURLs, | 568 pref_change_registrar_.Add(prefs::kManagedModeManualURLs, |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 | 671 |
687 void ManagedUserService::OnBrowserSetLastActive(Browser* browser) { | 672 void ManagedUserService::OnBrowserSetLastActive(Browser* browser) { |
688 bool profile_became_active = profile_->IsSameProfile(browser->profile()); | 673 bool profile_became_active = profile_->IsSameProfile(browser->profile()); |
689 if (!is_profile_active_ && profile_became_active) | 674 if (!is_profile_active_ && profile_became_active) |
690 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); | 675 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); |
691 else if (is_profile_active_ && !profile_became_active) | 676 else if (is_profile_active_ && !profile_became_active) |
692 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); | 677 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); |
693 | 678 |
694 is_profile_active_ = profile_became_active; | 679 is_profile_active_ = profile_became_active; |
695 } | 680 } |
OLD | NEW |