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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_service.cc

Issue 428143002: Sync: Add a SyncTypePreferenceProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 2014 The Chromium Authors. All rights reserved. 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 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/supervised_user/supervised_user_service.h" 5 #include "chrome/browser/supervised_user/supervised_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"
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 content::BrowserContext* browser_context, 316 content::BrowserContext* browser_context,
317 const extensions::Extension* extension, 317 const extensions::Extension* extension,
318 extensions::UnloadedExtensionInfo::Reason reason) { 318 extensions::UnloadedExtensionInfo::Reason reason) {
319 if (!extensions::SupervisedUserInfo::GetContentPackSiteList(extension) 319 if (!extensions::SupervisedUserInfo::GetContentPackSiteList(extension)
320 .empty()) { 320 .empty()) {
321 UpdateSiteLists(); 321 UpdateSiteLists();
322 } 322 }
323 } 323 }
324 #endif // defined(ENABLE_EXTENSIONS) 324 #endif // defined(ENABLE_EXTENSIONS)
325 325
326 syncer::ModelTypeSet SupervisedUserService::GetRequiredSyncDataTypes() {
327 if (!ProfileIsSupervised())
Bernhard Bauer 2014/07/30 12:38:51 If we only add ourselves as a data type provider i
Marc Treib 2014/07/30 13:10:39 Alright, I'm registering/removing the provider in
328 return syncer::ModelTypeSet();
329
330 return syncer::ModelTypeSet(syncer::SESSIONS,
331 syncer::APPS,
332 syncer::EXTENSIONS);
333 }
334
326 void SupervisedUserService::OnStateChanged() { 335 void SupervisedUserService::OnStateChanged() {
327 ProfileSyncService* service = 336 ProfileSyncService* service =
328 ProfileSyncServiceFactory::GetForProfile(profile_); 337 ProfileSyncServiceFactory::GetForProfile(profile_);
329 if (waiting_for_sync_initialization_ && service->sync_initialized()) { 338 if (waiting_for_sync_initialization_ && service->sync_initialized()) {
330 waiting_for_sync_initialization_ = false; 339 waiting_for_sync_initialization_ = false;
331 service->RemoveObserver(this); 340 service->RemoveObserver(this);
332 FinishSetupSync(); 341 FinishSetupSync();
333 return; 342 return;
334 } 343 }
335 344
(...skipping 27 matching lines...) Expand all
363 service->AddObserver(this); 372 service->AddObserver(this);
364 waiting_for_sync_initialization_ = true; 373 waiting_for_sync_initialization_ = true;
365 } 374 }
366 } 375 }
367 376
368 void SupervisedUserService::FinishSetupSync() { 377 void SupervisedUserService::FinishSetupSync() {
369 ProfileSyncService* service = 378 ProfileSyncService* service =
370 ProfileSyncServiceFactory::GetForProfile(profile_); 379 ProfileSyncServiceFactory::GetForProfile(profile_);
371 DCHECK(service->sync_initialized()); 380 DCHECK(service->sync_initialized());
372 381
382 // Sync nothing (except types which are set via GetRequiredSyncDataTypes).
373 bool sync_everything = false; 383 bool sync_everything = false;
374 syncer::ModelTypeSet synced_datatypes; 384 syncer::ModelTypeSet synced_datatypes;
375 synced_datatypes.Put(syncer::SESSIONS);
376 synced_datatypes.Put(syncer::APPS);
377 synced_datatypes.Put(syncer::EXTENSIONS);
378 service->OnUserChoseDatatypes(sync_everything, synced_datatypes); 385 service->OnUserChoseDatatypes(sync_everything, synced_datatypes);
379 386
380 // Notify ProfileSyncService that we are done with configuration. 387 // Notify ProfileSyncService that we are done with configuration.
381 service->SetSetupInProgress(false); 388 service->SetSetupInProgress(false);
382 service->SetSyncSetupCompleted(); 389 service->SetSyncSetupCompleted();
383 } 390 }
384 391
385 #if defined(ENABLE_EXTENSIONS) 392 #if defined(ENABLE_EXTENSIONS)
386 bool SupervisedUserService::ExtensionManagementPolicyImpl( 393 bool SupervisedUserService::ExtensionManagementPolicyImpl(
387 const extensions::Extension* extension, 394 const extensions::Extension* extension,
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 } 609 }
603 #endif 610 #endif
604 611
605 SupervisedUserSettingsService* settings_service = GetSettingsService(); 612 SupervisedUserSettingsService* settings_service = GetSettingsService();
606 settings_service->SetActive(active_); 613 settings_service->SetActive(active_);
607 614
608 #if defined(ENABLE_EXTENSIONS) 615 #if defined(ENABLE_EXTENSIONS)
609 SetExtensionsActive(); 616 SetExtensionsActive();
610 #endif 617 #endif
611 618
619 ProfileSyncService* sync_service =
620 ProfileSyncServiceFactory::GetForProfile(profile_);
621
612 if (active_) { 622 if (active_) {
613 if (CommandLine::ForCurrentProcess()->HasSwitch( 623 if (CommandLine::ForCurrentProcess()->HasSwitch(
614 switches::kPermissionRequestApiUrl)) { 624 switches::kPermissionRequestApiUrl)) {
615 permissions_creator_ = 625 permissions_creator_ =
616 PermissionRequestCreatorApiary::CreateWithProfile(profile_); 626 PermissionRequestCreatorApiary::CreateWithProfile(profile_);
617 } else { 627 } else {
618 PrefService* pref_service = profile_->GetPrefs(); 628 PrefService* pref_service = profile_->GetPrefs();
619 permissions_creator_.reset(new PermissionRequestCreatorSync( 629 permissions_creator_.reset(new PermissionRequestCreatorSync(
620 settings_service, 630 settings_service,
621 SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( 631 SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext(
622 profile_), 632 profile_),
623 pref_service->GetString(prefs::kProfileName), 633 pref_service->GetString(prefs::kProfileName),
624 pref_service->GetString(prefs::kSupervisedUserId))); 634 pref_service->GetString(prefs::kSupervisedUserId)));
625 } 635 }
626 636
627 pref_change_registrar_.Add( 637 pref_change_registrar_.Add(
628 prefs::kDefaultSupervisedUserFilteringBehavior, 638 prefs::kDefaultSupervisedUserFilteringBehavior,
629 base::Bind(&SupervisedUserService::OnDefaultFilteringBehaviorChanged, 639 base::Bind(&SupervisedUserService::OnDefaultFilteringBehaviorChanged,
630 base::Unretained(this))); 640 base::Unretained(this)));
631 pref_change_registrar_.Add(prefs::kSupervisedUserManualHosts, 641 pref_change_registrar_.Add(prefs::kSupervisedUserManualHosts,
632 base::Bind(&SupervisedUserService::UpdateManualHosts, 642 base::Bind(&SupervisedUserService::UpdateManualHosts,
633 base::Unretained(this))); 643 base::Unretained(this)));
634 pref_change_registrar_.Add(prefs::kSupervisedUserManualURLs, 644 pref_change_registrar_.Add(prefs::kSupervisedUserManualURLs,
635 base::Bind(&SupervisedUserService::UpdateManualURLs, 645 base::Bind(&SupervisedUserService::UpdateManualURLs,
636 base::Unretained(this))); 646 base::Unretained(this)));
637 647
648 sync_service->AddDataTypeProvider(this);
649
638 // Initialize the filter. 650 // Initialize the filter.
639 OnDefaultFilteringBehaviorChanged(); 651 OnDefaultFilteringBehaviorChanged();
640 UpdateSiteLists(); 652 UpdateSiteLists();
641 UpdateManualHosts(); 653 UpdateManualHosts();
642 UpdateManualURLs(); 654 UpdateManualURLs();
643 655
644 #if !defined(OS_ANDROID) 656 #if !defined(OS_ANDROID)
645 // TODO(bauerb): Get rid of the platform-specific #ifdef here. 657 // TODO(bauerb): Get rid of the platform-specific #ifdef here.
646 // http://crbug.com/313377 658 // http://crbug.com/313377
647 BrowserList::AddObserver(this); 659 BrowserList::AddObserver(this);
648 #endif 660 #endif
649 } else { 661 } else {
650 permissions_creator_.reset(); 662 permissions_creator_.reset();
651 663
652 pref_change_registrar_.Remove( 664 pref_change_registrar_.Remove(
653 prefs::kDefaultSupervisedUserFilteringBehavior); 665 prefs::kDefaultSupervisedUserFilteringBehavior);
654 pref_change_registrar_.Remove(prefs::kSupervisedUserManualHosts); 666 pref_change_registrar_.Remove(prefs::kSupervisedUserManualHosts);
655 pref_change_registrar_.Remove(prefs::kSupervisedUserManualURLs); 667 pref_change_registrar_.Remove(prefs::kSupervisedUserManualURLs);
656 668
657 if (waiting_for_sync_initialization_) { 669 sync_service->RemoveDataTypeProvider(this);
658 ProfileSyncService* sync_service = 670 if (waiting_for_sync_initialization_)
659 ProfileSyncServiceFactory::GetForProfile(profile_);
660 sync_service->RemoveObserver(this); 671 sync_service->RemoveObserver(this);
661 }
662 672
663 #if !defined(OS_ANDROID) 673 #if !defined(OS_ANDROID)
664 // TODO(bauerb): Get rid of the platform-specific #ifdef here. 674 // TODO(bauerb): Get rid of the platform-specific #ifdef here.
665 // http://crbug.com/313377 675 // http://crbug.com/313377
666 BrowserList::RemoveObserver(this); 676 BrowserList::RemoveObserver(this);
667 #endif 677 #endif
668 } 678 }
669 } 679 }
670 680
671 void SupervisedUserService::RegisterAndInitSync( 681 void SupervisedUserService::RegisterAndInitSync(
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 767
758 void SupervisedUserService::OnBrowserSetLastActive(Browser* browser) { 768 void SupervisedUserService::OnBrowserSetLastActive(Browser* browser) {
759 bool profile_became_active = profile_->IsSameProfile(browser->profile()); 769 bool profile_became_active = profile_->IsSameProfile(browser->profile());
760 if (!is_profile_active_ && profile_became_active) 770 if (!is_profile_active_ && profile_became_active)
761 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); 771 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile"));
762 else if (is_profile_active_ && !profile_became_active) 772 else if (is_profile_active_ && !profile_became_active)
763 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); 773 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile"));
764 774
765 is_profile_active_ = profile_became_active; 775 is_profile_active_ = profile_became_active;
766 } 776 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698