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

Side by Side Diff: chrome/browser/sync/profile_sync_service.h

Issue 566623003: Refactor syncable DEVICE_INFO type from ChangeProcessor to SyncableService - part 3. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More CR feedback addressed in DeviceInfoSyncService. Created 6 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_ 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/gtest_prod_util.h" 14 #include "base/gtest_prod_util.h"
15 #include "base/location.h" 15 #include "base/location.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/memory/scoped_vector.h" 17 #include "base/memory/scoped_vector.h"
18 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
19 #include "base/observer_list.h" 19 #include "base/observer_list.h"
20 #include "base/strings/string16.h" 20 #include "base/strings/string16.h"
21 #include "base/time/time.h" 21 #include "base/time/time.h"
22 #include "base/timer/timer.h" 22 #include "base/timer/timer.h"
23 #include "chrome/browser/browsing_data/browsing_data_remover.h" 23 #include "chrome/browser/browsing_data/browsing_data_remover.h"
24 #include "chrome/browser/sync/backend_unrecoverable_error_handler.h" 24 #include "chrome/browser/sync/backend_unrecoverable_error_handler.h"
25 #include "chrome/browser/sync/backup_rollback_controller.h" 25 #include "chrome/browser/sync/backup_rollback_controller.h"
26 #include "chrome/browser/sync/glue/device_info_sync_service.h"
26 #include "chrome/browser/sync/glue/local_device_info_provider.h" 27 #include "chrome/browser/sync/glue/local_device_info_provider.h"
27 #include "chrome/browser/sync/glue/sync_backend_host.h" 28 #include "chrome/browser/sync/glue/sync_backend_host.h"
28 #include "chrome/browser/sync/glue/synced_device_tracker.h"
29 #include "chrome/browser/sync/profile_sync_service_base.h" 29 #include "chrome/browser/sync/profile_sync_service_base.h"
30 #include "chrome/browser/sync/profile_sync_service_observer.h" 30 #include "chrome/browser/sync/profile_sync_service_observer.h"
31 #include "chrome/browser/sync/protocol_event_observer.h" 31 #include "chrome/browser/sync/protocol_event_observer.h"
32 #include "chrome/browser/sync/sessions/sessions_sync_manager.h" 32 #include "chrome/browser/sync/sessions/sessions_sync_manager.h"
33 #include "chrome/browser/sync/startup_controller.h" 33 #include "chrome/browser/sync/startup_controller.h"
34 #include "components/keyed_service/core/keyed_service.h" 34 #include "components/keyed_service/core/keyed_service.h"
35 #include "components/signin/core/browser/signin_manager_base.h" 35 #include "components/signin/core/browser/signin_manager_base.h"
36 #include "components/sync_driver/data_type_controller.h" 36 #include "components/sync_driver/data_type_controller.h"
37 #include "components/sync_driver/data_type_encryption_handler.h" 37 #include "components/sync_driver/data_type_encryption_handler.h"
38 #include "components/sync_driver/data_type_manager.h" 38 #include "components/sync_driver/data_type_manager.h"
(...skipping 20 matching lines...) Expand all
59 class SupervisedUserSigninManagerWrapper; 59 class SupervisedUserSigninManagerWrapper;
60 class SyncErrorController; 60 class SyncErrorController;
61 class SyncTypePreferenceProvider; 61 class SyncTypePreferenceProvider;
62 62
63 namespace base { 63 namespace base {
64 class CommandLine; 64 class CommandLine;
65 }; 65 };
66 66
67 namespace browser_sync { 67 namespace browser_sync {
68 class BackendMigrator; 68 class BackendMigrator;
69 class DeviceInfo;
70 class FaviconCache; 69 class FaviconCache;
71 class JsController; 70 class JsController;
72 class OpenTabsUIDelegate; 71 class OpenTabsUIDelegate;
73 72
74 namespace sessions { 73 namespace sessions {
75 class SyncSessionSnapshot; 74 class SyncSessionSnapshot;
76 } // namespace sessions 75 } // namespace sessions
77 } // namespace browser_sync 76 } // namespace browser_sync
78 77
79 namespace sync_driver { 78 namespace sync_driver {
80 class ChangeProcessor; 79 class ChangeProcessor;
81 class DataTypeManager; 80 class DataTypeManager;
82 } // namespace sync_driver 81 } // namespace sync_driver
83 82
84 namespace syncer { 83 namespace syncer {
85 class BaseTransaction; 84 class BaseTransaction;
86 class NetworkResources; 85 class NetworkResources;
87 struct CommitCounters; 86 struct CommitCounters;
88 struct StatusCounters; 87 struct StatusCounters;
89 struct SyncCredentials; 88 struct SyncCredentials;
90 struct UpdateCounters; 89 struct UpdateCounters;
91 struct UserShare; 90 struct UserShare;
92 } // namespace syncer 91 } // namespace syncer
93 92
94 namespace sync_pb { 93 namespace sync_pb {
95 class EncryptedData; 94 class EncryptedData;
96 } // namespace sync_pb 95 } // namespace sync_pb
97 96
97 using browser_sync::DeviceInfoSyncService;
98 using browser_sync::LocalDeviceInfoProvider; 98 using browser_sync::LocalDeviceInfoProvider;
99 using browser_sync::SessionsSyncManager; 99 using browser_sync::SessionsSyncManager;
100 100
101 // ProfileSyncService is the layer between browser subsystems like bookmarks, 101 // ProfileSyncService is the layer between browser subsystems like bookmarks,
102 // and the sync backend. Each subsystem is logically thought of as being 102 // and the sync backend. Each subsystem is logically thought of as being
103 // a sync datatype. 103 // a sync datatype.
104 // 104 //
105 // Individual datatypes can, at any point, be in a variety of stages of being 105 // Individual datatypes can, at any point, be in a variety of stages of being
106 // "enabled". Here are some specific terms for concepts used in this class: 106 // "enabled". Here are some specific terms for concepts used in this class:
107 // 107 //
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 // currently syncing, returns NULL. 367 // currently syncing, returns NULL.
368 virtual browser_sync::OpenTabsUIDelegate* GetOpenTabsUIDelegate(); 368 virtual browser_sync::OpenTabsUIDelegate* GetOpenTabsUIDelegate();
369 369
370 // Returns the SyncedWindowDelegatesGetter from the embedded sessions manager. 370 // Returns the SyncedWindowDelegatesGetter from the embedded sessions manager.
371 virtual browser_sync::SyncedWindowDelegatesGetter* 371 virtual browser_sync::SyncedWindowDelegatesGetter*
372 GetSyncedWindowDelegatesGetter() const; 372 GetSyncedWindowDelegatesGetter() const;
373 373
374 // Returns the SyncableService for syncer::SESSIONS. 374 // Returns the SyncableService for syncer::SESSIONS.
375 virtual syncer::SyncableService* GetSessionsSyncableService(); 375 virtual syncer::SyncableService* GetSessionsSyncableService();
376 376
377 // Returns the SyncableService for syncer::DEVICE_INFO.
378 virtual syncer::SyncableService* GetDeviceInfoSyncableService();
379
377 // Returns DeviceInfo provider for the local device. 380 // Returns DeviceInfo provider for the local device.
378 virtual browser_sync::LocalDeviceInfoProvider* GetLocalDeviceInfoProvider(); 381 virtual browser_sync::LocalDeviceInfoProvider* GetLocalDeviceInfoProvider();
379 382
380 // Returns sync's representation of the device info for a client identified 383 // Returns synced devices tracker. If DEVICE_INFO model type isn't yet
381 // by |client_id|. Return value is an empty scoped ptr if the device info 384 // enabled or syncing, returns NULL.
382 // is unavailable. 385 virtual browser_sync::DeviceInfoTracker* GetDeviceInfoTracker() const;
383 virtual scoped_ptr<browser_sync::DeviceInfo> GetDeviceInfo(
384 const std::string& client_id) const;
385
386 // Gets the device info for all devices signed into the account associated
387 // with this profile.
388 virtual ScopedVector<browser_sync::DeviceInfo> GetAllSignedInDevices() const;
389
390 // Notifies the observer of any device info changes.
391 virtual void AddObserverForDeviceInfoChange(
392 browser_sync::SyncedDeviceTracker::Observer* observer);
393
394 // Removes the observer from device info notification.
395 virtual void RemoveObserverForDeviceInfoChange(
396 browser_sync::SyncedDeviceTracker::Observer* observer);
397 386
398 // Fills state_map with a map of current data types that are possible to 387 // Fills state_map with a map of current data types that are possible to
399 // sync, as well as their states. 388 // sync, as well as their states.
400 void GetDataTypeControllerStates( 389 void GetDataTypeControllerStates(
401 sync_driver::DataTypeController::StateMap* state_map) const; 390 sync_driver::DataTypeController::StateMap* state_map) const;
402 391
403 // Disables sync for user. Use ShowLoginDialog to enable. 392 // Disables sync for user. Use ShowLoginDialog to enable.
404 virtual void DisableForUser(); 393 virtual void DisableForUser();
405 394
406 // Disables sync for the user and prevents it from starting on next restart. 395 // Disables sync for the user and prevents it from starting on next restart.
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 // Return sync token status. 758 // Return sync token status.
770 SyncTokenStatus GetSyncTokenStatus() const; 759 SyncTokenStatus GetSyncTokenStatus() const;
771 760
772 browser_sync::FaviconCache* GetFaviconCache(); 761 browser_sync::FaviconCache* GetFaviconCache();
773 762
774 // Overrides the NetworkResources used for Sync connections. 763 // Overrides the NetworkResources used for Sync connections.
775 // This function takes ownership of |network_resources|. 764 // This function takes ownership of |network_resources|.
776 void OverrideNetworkResourcesForTest( 765 void OverrideNetworkResourcesForTest(
777 scoped_ptr<syncer::NetworkResources> network_resources); 766 scoped_ptr<syncer::NetworkResources> network_resources);
778 767
779 virtual bool IsSessionsDataTypeControllerRunning() const; 768 virtual bool IsDataTypeControllerRunning(syncer::ModelType type) const;
780 769
781 BackendMode backend_mode() const { 770 BackendMode backend_mode() const {
782 return backend_mode_; 771 return backend_mode_;
783 } 772 }
784 773
785 // Helpers for testing rollback. 774 // Helpers for testing rollback.
786 void SetBrowsingDataRemoverObserverForTesting( 775 void SetBrowsingDataRemoverObserverForTesting(
787 BrowsingDataRemover::Observer* observer); 776 BrowsingDataRemover::Observer* observer);
788 void SetClearingBrowseringDataForTesting(base::Callback< 777 void SetClearingBrowseringDataForTesting(base::Callback<
789 void(BrowsingDataRemover::Observer*, Profile*, base::Time, base::Time)> 778 void(BrowsingDataRemover::Observer*, Profile*, base::Time, base::Time)>
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 syncer::ConnectionStatus connection_status_; 1124 syncer::ConnectionStatus connection_status_;
1136 base::Time token_request_time_; 1125 base::Time token_request_time_;
1137 base::Time token_receive_time_; 1126 base::Time token_receive_time_;
1138 GoogleServiceAuthError last_get_token_error_; 1127 GoogleServiceAuthError last_get_token_error_;
1139 base::Time next_token_request_time_; 1128 base::Time next_token_request_time_;
1140 1129
1141 scoped_ptr<LocalDeviceInfoProvider> local_device_; 1130 scoped_ptr<LocalDeviceInfoProvider> local_device_;
1142 1131
1143 // Locally owned SyncableService implementations. 1132 // Locally owned SyncableService implementations.
1144 scoped_ptr<SessionsSyncManager> sessions_sync_manager_; 1133 scoped_ptr<SessionsSyncManager> sessions_sync_manager_;
1134 scoped_ptr<DeviceInfoSyncService> device_info_sync_service_;
1145 1135
1146 scoped_ptr<syncer::NetworkResources> network_resources_; 1136 scoped_ptr<syncer::NetworkResources> network_resources_;
1147 1137
1148 browser_sync::StartupController startup_controller_; 1138 browser_sync::StartupController startup_controller_;
1149 1139
1150 browser_sync::BackupRollbackController backup_rollback_controller_; 1140 browser_sync::BackupRollbackController backup_rollback_controller_;
1151 1141
1152 // Mode of current backend. 1142 // Mode of current backend.
1153 BackendMode backend_mode_; 1143 BackendMode backend_mode_;
1154 1144
(...skipping 16 matching lines...) Expand all
1171 BrowsingDataRemover::Observer* browsing_data_remover_observer_; 1161 BrowsingDataRemover::Observer* browsing_data_remover_observer_;
1172 1162
1173 DISALLOW_COPY_AND_ASSIGN(ProfileSyncService); 1163 DISALLOW_COPY_AND_ASSIGN(ProfileSyncService);
1174 }; 1164 };
1175 1165
1176 bool ShouldShowActionOnUI( 1166 bool ShouldShowActionOnUI(
1177 const syncer::SyncProtocolError& error); 1167 const syncer::SyncProtocolError& error);
1178 1168
1179 1169
1180 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_ 1170 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc ('k') | chrome/browser/sync/profile_sync_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698