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

Side by Side Diff: chrome/browser/sync/profile_sync_components_factory_impl.cc

Issue 1310553005: [Sync] Replace ProfileSyncComponentsFactory with SyncClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Really fix GN Created 5 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 #include "chrome/browser/sync/profile_sync_components_factory_impl.h" 5 #include "chrome/browser/sync/profile_sync_components_factory_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h"
8 #include "build/build_config.h" 9 #include "build/build_config.h"
9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
10 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
11 #include "chrome/browser/history/history_service_factory.h"
12 #include "chrome/browser/password_manager/password_store_factory.h"
13 #include "chrome/browser/pref_service_flags_storage.h"
14 #include "chrome/browser/prefs/pref_model_associator.h"
15 #include "chrome/browser/prefs/pref_service_syncable.h"
16 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/search_engines/template_url_service_factory.h"
18 #include "chrome/browser/signin/signin_manager_factory.h"
19 #include "chrome/browser/sync/chrome_sync_client.h"
20 #include "chrome/browser/sync/glue/autofill_data_type_controller.h" 12 #include "chrome/browser/sync/glue/autofill_data_type_controller.h"
21 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h" 13 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h"
22 #include "chrome/browser/sync/glue/autofill_wallet_data_type_controller.h" 14 #include "chrome/browser/sync/glue/autofill_wallet_data_type_controller.h"
23 #include "chrome/browser/sync/glue/bookmark_change_processor.h" 15 #include "chrome/browser/sync/glue/bookmark_change_processor.h"
24 #include "chrome/browser/sync/glue/bookmark_data_type_controller.h" 16 #include "chrome/browser/sync/glue/bookmark_data_type_controller.h"
25 #include "chrome/browser/sync/glue/bookmark_model_associator.h" 17 #include "chrome/browser/sync/glue/bookmark_model_associator.h"
26 #include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h" 18 #include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h"
27 #include "chrome/browser/sync/glue/history_delete_directives_data_type_controlle r.h" 19 #include "chrome/browser/sync/glue/history_delete_directives_data_type_controlle r.h"
28 #include "chrome/browser/sync/glue/local_device_info_provider_impl.h" 20 #include "chrome/browser/sync/glue/local_device_info_provider_impl.h"
29 #include "chrome/browser/sync/glue/password_data_type_controller.h" 21 #include "chrome/browser/sync/glue/password_data_type_controller.h"
30 #include "chrome/browser/sync/glue/search_engine_data_type_controller.h" 22 #include "chrome/browser/sync/glue/search_engine_data_type_controller.h"
31 #include "chrome/browser/sync/glue/sync_backend_host.h" 23 #include "chrome/browser/sync/glue/sync_backend_host.h"
32 #include "chrome/browser/sync/glue/sync_backend_host_impl.h" 24 #include "chrome/browser/sync/glue/sync_backend_host_impl.h"
33 #include "chrome/browser/sync/glue/theme_data_type_controller.h" 25 #include "chrome/browser/sync/glue/theme_data_type_controller.h"
34 #include "chrome/browser/sync/glue/typed_url_change_processor.h" 26 #include "chrome/browser/sync/glue/typed_url_change_processor.h"
35 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h" 27 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h"
36 #include "chrome/browser/sync/profile_sync_service.h" 28 #include "chrome/browser/sync/profile_sync_service.h"
37 #include "chrome/browser/sync/profile_sync_service_factory.h"
38 #include "chrome/browser/sync/sessions/session_data_type_controller.h" 29 #include "chrome/browser/sync/sessions/session_data_type_controller.h"
39 #include "chrome/browser/themes/theme_service.h"
40 #include "chrome/browser/themes/theme_service_factory.h"
41 #include "chrome/browser/themes/theme_syncable_service.h"
42 #include "chrome/browser/web_data_service_factory.h"
43 #include "chrome/common/chrome_switches.h" 30 #include "chrome/common/chrome_switches.h"
44 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
45 #include "components/autofill/core/browser/webdata/autocomplete_syncable_service .h"
46 #include "components/autofill/core/browser/webdata/autofill_profile_syncable_ser vice.h"
47 #include "components/autofill/core/browser/webdata/autofill_wallet_metadata_sync able_service.h"
48 #include "components/autofill/core/browser/webdata/autofill_wallet_syncable_serv ice.h"
49 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
50 #include "components/autofill/core/common/autofill_pref_names.h" 32 #include "components/autofill/core/common/autofill_pref_names.h"
51 #include "components/autofill/core/common/autofill_switches.h" 33 #include "components/autofill/core/common/autofill_switches.h"
52 #include "components/dom_distiller/core/dom_distiller_features.h" 34 #include "components/dom_distiller/core/dom_distiller_features.h"
53 #include "components/dom_distiller/core/dom_distiller_service.h"
54 #include "components/history/core/browser/history_service.h"
55 #include "components/password_manager/core/browser/password_store.h"
56 #include "components/search_engines/template_url_service.h"
57 #include "components/signin/core/browser/signin_manager.h"
58 #include "components/sync_driver/data_type_manager_impl.h" 35 #include "components/sync_driver/data_type_manager_impl.h"
59 #include "components/sync_driver/data_type_manager_observer.h"
60 #include "components/sync_driver/device_info_data_type_controller.h" 36 #include "components/sync_driver/device_info_data_type_controller.h"
61 #include "components/sync_driver/generic_change_processor.h"
62 #include "components/sync_driver/glue/typed_url_model_associator.h" 37 #include "components/sync_driver/glue/typed_url_model_associator.h"
63 #include "components/sync_driver/proxy_data_type_controller.h" 38 #include "components/sync_driver/proxy_data_type_controller.h"
64 #include "components/sync_driver/shared_change_processor.h"
65 #include "components/sync_driver/ui_data_type_controller.h" 39 #include "components/sync_driver/ui_data_type_controller.h"
66 #include "content/public/browser/browser_thread.h" 40 #include "content/public/browser/browser_thread.h"
41 #include "google_apis/gaia/oauth2_token_service.h"
67 #include "google_apis/gaia/oauth2_token_service_request.h" 42 #include "google_apis/gaia/oauth2_token_service_request.h"
68 #include "net/url_request/url_request_context_getter.h" 43 #include "net/url_request/url_request_context_getter.h"
69 #include "sync/api/syncable_service.h"
70 #include "sync/internal_api/public/attachments/attachment_downloader.h" 44 #include "sync/internal_api/public/attachments/attachment_downloader.h"
71 #include "sync/internal_api/public/attachments/attachment_service.h" 45 #include "sync/internal_api/public/attachments/attachment_service.h"
72 #include "sync/internal_api/public/attachments/attachment_service_impl.h" 46 #include "sync/internal_api/public/attachments/attachment_service_impl.h"
73 #include "sync/internal_api/public/attachments/attachment_uploader_impl.h" 47 #include "sync/internal_api/public/attachments/attachment_uploader_impl.h"
74 48
75 #if defined(ENABLE_APP_LIST) 49 #if defined(ENABLE_APP_LIST)
76 #include "chrome/browser/ui/app_list/app_list_syncable_service.h"
77 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
78 #include "ui/app_list/app_list_switches.h" 50 #include "ui/app_list/app_list_switches.h"
79 #endif 51 #endif
80 52
81 #if defined(ENABLE_EXTENSIONS) 53 #if defined(ENABLE_EXTENSIONS)
82 #include "chrome/browser/extensions/api/storage/settings_sync_util.h"
83 #include "chrome/browser/extensions/extension_sync_service.h"
84 #include "chrome/browser/sync/glue/extension_data_type_controller.h" 54 #include "chrome/browser/sync/glue/extension_data_type_controller.h"
85 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h" 55 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h"
86 #endif 56 #endif
87 57
88 #if defined(ENABLE_SUPERVISED_USERS) 58 #if defined(ENABLE_SUPERVISED_USERS)
89 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_ service.h"
90 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_ service_factory.h"
91 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h"
92 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_fac tory.h"
93 #include "chrome/browser/supervised_user/supervised_user_service.h"
94 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
95 #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
96 #include "chrome/browser/supervised_user/supervised_user_settings_service_factor y.h"
97 #include "chrome/browser/supervised_user/supervised_user_sync_data_type_controll er.h" 59 #include "chrome/browser/supervised_user/supervised_user_sync_data_type_controll er.h"
98 #include "chrome/browser/supervised_user/supervised_user_whitelist_service.h"
99 #endif
100
101 #if defined(ENABLE_SPELLCHECK)
102 #include "chrome/browser/spellchecker/spellcheck_factory.h"
103 #include "chrome/browser/spellchecker/spellcheck_service.h"
104 #endif
105
106 #if defined(OS_CHROMEOS)
107 #include "components/wifi_sync/wifi_credential_syncable_service.h"
108 #include "components/wifi_sync/wifi_credential_syncable_service_factory.h"
109 #endif 60 #endif
110 61
111 using bookmarks::BookmarkModel; 62 using bookmarks::BookmarkModel;
112 using browser_sync::AutofillDataTypeController; 63 using browser_sync::AutofillDataTypeController;
113 using browser_sync::AutofillProfileDataTypeController; 64 using browser_sync::AutofillProfileDataTypeController;
114 using browser_sync::BookmarkChangeProcessor; 65 using browser_sync::BookmarkChangeProcessor;
115 using browser_sync::BookmarkDataTypeController; 66 using browser_sync::BookmarkDataTypeController;
116 using browser_sync::BookmarkModelAssociator; 67 using browser_sync::BookmarkModelAssociator;
117 using browser_sync::ChromeReportUnrecoverableError; 68 using browser_sync::ChromeReportUnrecoverableError;
118 #if defined(ENABLE_EXTENSIONS) 69 #if defined(ENABLE_EXTENSIONS)
(...skipping 10 matching lines...) Expand all
129 using browser_sync::TypedUrlDataTypeController; 80 using browser_sync::TypedUrlDataTypeController;
130 using browser_sync::TypedUrlModelAssociator; 81 using browser_sync::TypedUrlModelAssociator;
131 using content::BrowserThread; 82 using content::BrowserThread;
132 using sync_driver::DataTypeController; 83 using sync_driver::DataTypeController;
133 using sync_driver::DataTypeErrorHandler; 84 using sync_driver::DataTypeErrorHandler;
134 using sync_driver::DataTypeManager; 85 using sync_driver::DataTypeManager;
135 using sync_driver::DataTypeManagerImpl; 86 using sync_driver::DataTypeManagerImpl;
136 using sync_driver::DataTypeManagerObserver; 87 using sync_driver::DataTypeManagerObserver;
137 using sync_driver::DeviceInfoDataTypeController; 88 using sync_driver::DeviceInfoDataTypeController;
138 using sync_driver::ProxyDataTypeController; 89 using sync_driver::ProxyDataTypeController;
139 using sync_driver::SharedChangeProcessor;
140 using sync_driver::UIDataTypeController; 90 using sync_driver::UIDataTypeController;
141 91
142 namespace { 92 namespace {
143 93
144 syncer::ModelTypeSet GetDisabledTypesFromCommandLine( 94 syncer::ModelTypeSet GetDisabledTypesFromCommandLine(
145 const base::CommandLine& command_line) { 95 const base::CommandLine& command_line) {
146 syncer::ModelTypeSet disabled_types; 96 syncer::ModelTypeSet disabled_types;
147 std::string disabled_types_str = 97 std::string disabled_types_str =
148 command_line.GetSwitchValueASCII(switches::kDisableSyncTypes); 98 command_line.GetSwitchValueASCII(switches::kDisableSyncTypes);
149 99
(...skipping 24 matching lines...) Expand all
174 } // namespace 124 } // namespace
175 125
176 ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl( 126 ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl(
177 Profile* profile, 127 Profile* profile,
178 base::CommandLine* command_line, 128 base::CommandLine* command_line,
179 const GURL& sync_service_url, 129 const GURL& sync_service_url,
180 OAuth2TokenService* token_service, 130 OAuth2TokenService* token_service,
181 net::URLRequestContextGetter* url_request_context_getter) 131 net::URLRequestContextGetter* url_request_context_getter)
182 : profile_(profile), 132 : profile_(profile),
183 command_line_(command_line), 133 command_line_(command_line),
184 web_data_service_(WebDataServiceFactory::GetAutofillWebDataForProfile(
185 profile_,
186 ServiceAccessType::EXPLICIT_ACCESS)),
187 sync_service_url_(sync_service_url), 134 sync_service_url_(sync_service_url),
188 token_service_(token_service), 135 token_service_(token_service),
189 url_request_context_getter_(url_request_context_getter), 136 url_request_context_getter_(url_request_context_getter),
190 chrome_sync_client_(profile_, this), 137 chrome_sync_client_(profile_, this),
191 weak_factory_(this) { 138 weak_factory_(this) {
192 DCHECK(token_service_); 139 DCHECK(token_service_);
193 DCHECK(url_request_context_getter_); 140 DCHECK(url_request_context_getter_);
194 } 141 }
195 142
196 ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() { 143 ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() {
197 } 144 }
198 145
199 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes( 146 void ProfileSyncComponentsFactoryImpl::Initialize(
200 ProfileSyncService* pss) { 147 sync_driver::SyncService* sync_service) {
148 chrome_sync_client_.Initialize(sync_service);
149 }
150
151 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes() {
201 syncer::ModelTypeSet disabled_types = 152 syncer::ModelTypeSet disabled_types =
202 GetDisabledTypesFromCommandLine(*command_line_); 153 GetDisabledTypesFromCommandLine(*command_line_);
203 syncer::ModelTypeSet enabled_types = 154 syncer::ModelTypeSet enabled_types =
204 GetEnabledTypesFromCommandLine(*command_line_); 155 GetEnabledTypesFromCommandLine(*command_line_);
205 RegisterCommonDataTypes(disabled_types, enabled_types, pss); 156 RegisterCommonDataTypes(disabled_types, enabled_types);
206 #if !defined(OS_ANDROID) 157 #if !defined(OS_ANDROID)
207 RegisterDesktopDataTypes(disabled_types, enabled_types, pss); 158 RegisterDesktopDataTypes(disabled_types, enabled_types);
208 #endif 159 #endif
209 } 160 }
210 161
211 void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( 162 void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes(
212 syncer::ModelTypeSet disabled_types, 163 syncer::ModelTypeSet disabled_types,
213 syncer::ModelTypeSet enabled_types, 164 syncer::ModelTypeSet enabled_types) {
214 ProfileSyncService* pss) { 165 sync_driver::SyncService* sync_service = chrome_sync_client_.GetSyncService();
166
215 // TODO(stanisc): can DEVICE_INFO be one of disabled datatypes? 167 // TODO(stanisc): can DEVICE_INFO be one of disabled datatypes?
216 pss->RegisterDataTypeController(new DeviceInfoDataTypeController( 168 sync_service->RegisterDataTypeController(new DeviceInfoDataTypeController(
217 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 169 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
218 base::Bind(&ChromeReportUnrecoverableError), 170 base::Bind(&ChromeReportUnrecoverableError),
219 &chrome_sync_client_, 171 &chrome_sync_client_,
220 pss->GetLocalDeviceInfoProvider())); 172 sync_service->GetLocalDeviceInfoProvider()));
221 173
222 // Autofill sync is enabled by default. Register unless explicitly 174 // Autofill sync is enabled by default. Register unless explicitly
223 // disabled. 175 // disabled.
224 if (!disabled_types.Has(syncer::AUTOFILL)) { 176 if (!disabled_types.Has(syncer::AUTOFILL)) {
225 pss->RegisterDataTypeController( 177 sync_service->RegisterDataTypeController(
226 new AutofillDataTypeController(&chrome_sync_client_, profile_)); 178 new AutofillDataTypeController(&chrome_sync_client_));
227 } 179 }
228 180
229 // Autofill profile sync is enabled by default. Register unless explicitly 181 // Autofill profile sync is enabled by default. Register unless explicitly
230 // disabled. 182 // disabled.
231 if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) { 183 if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) {
232 pss->RegisterDataTypeController( 184 sync_service->RegisterDataTypeController(
233 new AutofillProfileDataTypeController(&chrome_sync_client_, profile_)); 185 new AutofillProfileDataTypeController(&chrome_sync_client_));
234 } 186 }
235 187
236 // Wallet data sync is enabled by default, but behind a syncer experiment 188 // Wallet data sync is enabled by default, but behind a syncer experiment
237 // enforced by the datatype controller. Register unless explicitly disabled. 189 // enforced by the datatype controller. Register unless explicitly disabled.
238 bool wallet_disabled = disabled_types.Has(syncer::AUTOFILL_WALLET_DATA); 190 bool wallet_disabled = disabled_types.Has(syncer::AUTOFILL_WALLET_DATA);
239 if (!wallet_disabled) { 191 if (!wallet_disabled) {
240 pss->RegisterDataTypeController( 192 sync_service->RegisterDataTypeController(
241 new browser_sync::AutofillWalletDataTypeController( 193 new browser_sync::AutofillWalletDataTypeController(
242 &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_DATA)); 194 &chrome_sync_client_, syncer::AUTOFILL_WALLET_DATA));
243 } 195 }
244 196
245 // Wallet metadata sync depends on Wallet data sync and is disabled by 197 // Wallet metadata sync depends on Wallet data sync and is disabled by
246 // default. Register if Wallet data is syncing and metadata sync is explicitly 198 // default. Register if Wallet data is syncing and metadata sync is explicitly
247 // enabled. 199 // enabled.
248 if (!wallet_disabled && enabled_types.Has(syncer::AUTOFILL_WALLET_METADATA)) { 200 if (!wallet_disabled && enabled_types.Has(syncer::AUTOFILL_WALLET_METADATA)) {
249 pss->RegisterDataTypeController( 201 sync_service->RegisterDataTypeController(
250 new browser_sync::AutofillWalletDataTypeController( 202 new browser_sync::AutofillWalletDataTypeController(
251 &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_METADATA)); 203 &chrome_sync_client_, syncer::AUTOFILL_WALLET_METADATA));
252 } 204 }
253 205
254 // Bookmark sync is enabled by default. Register unless explicitly 206 // Bookmark sync is enabled by default. Register unless explicitly
255 // disabled. 207 // disabled.
256 if (!disabled_types.Has(syncer::BOOKMARKS)) { 208 if (!disabled_types.Has(syncer::BOOKMARKS)) {
257 pss->RegisterDataTypeController( 209 sync_service->RegisterDataTypeController(
258 new BookmarkDataTypeController(&chrome_sync_client_, profile_, pss)); 210 new BookmarkDataTypeController(&chrome_sync_client_));
259 } 211 }
260 212
261 const bool history_disabled = 213 const bool history_disabled =
262 profile_->GetPrefs()->GetBoolean(prefs::kSavingBrowserHistoryDisabled); 214 profile_->GetPrefs()->GetBoolean(prefs::kSavingBrowserHistoryDisabled);
263 // TypedUrl sync is enabled by default. Register unless explicitly disabled, 215 // TypedUrl sync is enabled by default. Register unless explicitly disabled,
264 // or if saving history is disabled. 216 // or if saving history is disabled.
265 if (!disabled_types.Has(syncer::TYPED_URLS) && !history_disabled) { 217 if (!disabled_types.Has(syncer::TYPED_URLS) && !history_disabled) {
266 pss->RegisterDataTypeController( 218 sync_service->RegisterDataTypeController(
267 new TypedUrlDataTypeController(&chrome_sync_client_, profile_, pss)); 219 new TypedUrlDataTypeController(&chrome_sync_client_));
268 } 220 }
269 221
270 // Delete directive sync is enabled by default. Register unless full history 222 // Delete directive sync is enabled by default. Register unless full history
271 // sync is disabled. 223 // sync is disabled.
272 if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) && 224 if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) &&
273 !history_disabled) { 225 !history_disabled) {
274 pss->RegisterDataTypeController( 226 sync_service->RegisterDataTypeController(
275 new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_, 227 new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_));
276 pss));
277 } 228 }
278 229
279 // Session sync is enabled by default. Register unless explicitly disabled. 230 // Session sync is enabled by default. Register unless explicitly disabled.
280 // This is also disabled if the browser history is disabled, because the 231 // This is also disabled if the browser history is disabled, because the
281 // tab sync data is added to the web history on the server. 232 // tab sync data is added to the web history on the server.
282 if (!disabled_types.Has(syncer::PROXY_TABS) && !history_disabled) { 233 if (!disabled_types.Has(syncer::PROXY_TABS) && !history_disabled) {
283 pss->RegisterDataTypeController(new ProxyDataTypeController( 234 sync_service->RegisterDataTypeController(new ProxyDataTypeController(
284 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 235 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
285 syncer::PROXY_TABS)); 236 syncer::PROXY_TABS));
286 pss->RegisterDataTypeController( 237 // TODO(zea): remove this once SyncedWindowDelegateGetter is componentized.
287 new SessionDataTypeController(&chrome_sync_client_, 238 // For now, we know that the implementation of SyncService is always a
288 profile_, 239 // ProfileSyncService at this level.
289 pss->GetSyncedWindowDelegatesGetter(), 240 ProfileSyncService* pss = static_cast<ProfileSyncService*>(sync_service);
290 pss->GetLocalDeviceInfoProvider())); 241 sync_service->RegisterDataTypeController(new SessionDataTypeController(
242 &chrome_sync_client_, profile_, pss->GetSyncedWindowDelegatesGetter(),
243 sync_service->GetLocalDeviceInfoProvider()));
291 } 244 }
292 245
293 // Favicon sync is enabled by default. Register unless explicitly disabled. 246 // Favicon sync is enabled by default. Register unless explicitly disabled.
294 if (!disabled_types.Has(syncer::FAVICON_IMAGES) && 247 if (!disabled_types.Has(syncer::FAVICON_IMAGES) &&
295 !disabled_types.Has(syncer::FAVICON_TRACKING) && 248 !disabled_types.Has(syncer::FAVICON_TRACKING) &&
296 !history_disabled) { 249 !history_disabled) {
297 // crbug/384552. We disable error uploading for this data types for now. 250 // crbug/384552. We disable error uploading for this data types for now.
298 pss->RegisterDataTypeController( 251 sync_service->RegisterDataTypeController(
299 new UIDataTypeController( 252 new UIDataTypeController(
300 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 253 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
301 base::Closure(), 254 base::Closure(),
302 syncer::FAVICON_IMAGES, 255 syncer::FAVICON_IMAGES,
303 &chrome_sync_client_)); 256 &chrome_sync_client_));
304 pss->RegisterDataTypeController( 257 sync_service->RegisterDataTypeController(
305 new UIDataTypeController( 258 new UIDataTypeController(
306 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 259 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
307 base::Closure(), 260 base::Closure(),
308 syncer::FAVICON_TRACKING, 261 syncer::FAVICON_TRACKING,
309 &chrome_sync_client_)); 262 &chrome_sync_client_));
310 } 263 }
311 264
312 // Password sync is enabled by default. Register unless explicitly 265 // Password sync is enabled by default. Register unless explicitly
313 // disabled. 266 // disabled.
314 if (!disabled_types.Has(syncer::PASSWORDS)) { 267 if (!disabled_types.Has(syncer::PASSWORDS)) {
315 pss->RegisterDataTypeController( 268 sync_service->RegisterDataTypeController(
316 new PasswordDataTypeController(&chrome_sync_client_, profile_)); 269 new PasswordDataTypeController(&chrome_sync_client_, profile_));
317 } 270 }
318 271
319 if (!disabled_types.Has(syncer::PRIORITY_PREFERENCES)) { 272 if (!disabled_types.Has(syncer::PRIORITY_PREFERENCES)) {
320 pss->RegisterDataTypeController( 273 sync_service->RegisterDataTypeController(
321 new UIDataTypeController( 274 new UIDataTypeController(
322 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 275 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
323 base::Bind(&ChromeReportUnrecoverableError), 276 base::Bind(&ChromeReportUnrecoverableError),
324 syncer::PRIORITY_PREFERENCES, 277 syncer::PRIORITY_PREFERENCES,
325 &chrome_sync_client_)); 278 &chrome_sync_client_));
326 } 279 }
327 280
328 // Article sync is disabled by default. Register only if explicitly enabled. 281 // Article sync is disabled by default. Register only if explicitly enabled.
329 if (dom_distiller::IsEnableSyncArticlesSet()) { 282 if (dom_distiller::IsEnableSyncArticlesSet()) {
330 pss->RegisterDataTypeController( 283 sync_service->RegisterDataTypeController(
331 new UIDataTypeController( 284 new UIDataTypeController(
332 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 285 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
333 base::Bind(&ChromeReportUnrecoverableError), 286 base::Bind(&ChromeReportUnrecoverableError),
334 syncer::ARTICLES, 287 syncer::ARTICLES,
335 &chrome_sync_client_)); 288 &chrome_sync_client_));
336 } 289 }
337 290
338 #if defined(ENABLE_SUPERVISED_USERS) 291 #if defined(ENABLE_SUPERVISED_USERS)
339 pss->RegisterDataTypeController( 292 sync_service->RegisterDataTypeController(
340 new SupervisedUserSyncDataTypeController( 293 new SupervisedUserSyncDataTypeController(
341 syncer::SUPERVISED_USER_SETTINGS, 294 syncer::SUPERVISED_USER_SETTINGS,
342 this, 295 &chrome_sync_client_,
343 profile_)); 296 profile_));
344 pss->RegisterDataTypeController( 297 sync_service->RegisterDataTypeController(
345 new SupervisedUserSyncDataTypeController( 298 new SupervisedUserSyncDataTypeController(
346 syncer::SUPERVISED_USER_WHITELISTS, 299 syncer::SUPERVISED_USER_WHITELISTS,
347 this, 300 &chrome_sync_client_,
348 profile_)); 301 profile_));
349 #endif 302 #endif
350 } 303 }
351 304
352 void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( 305 void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes(
353 syncer::ModelTypeSet disabled_types, 306 syncer::ModelTypeSet disabled_types,
354 syncer::ModelTypeSet enabled_types, 307 syncer::ModelTypeSet enabled_types) {
355 ProfileSyncService* pss) { 308 sync_driver::SyncService* sync_service = chrome_sync_client_.GetSyncService();
309
356 #if defined(ENABLE_EXTENSIONS) 310 #if defined(ENABLE_EXTENSIONS)
357 // App sync is enabled by default. Register unless explicitly 311 // App sync is enabled by default. Register unless explicitly
358 // disabled. 312 // disabled.
359 if (!disabled_types.Has(syncer::APPS)) { 313 if (!disabled_types.Has(syncer::APPS)) {
360 pss->RegisterDataTypeController(new ExtensionDataTypeController( 314 sync_service->RegisterDataTypeController(new ExtensionDataTypeController(
361 syncer::APPS, &chrome_sync_client_, profile_)); 315 syncer::APPS, &chrome_sync_client_, profile_));
362 } 316 }
363 317
364 // Extension sync is enabled by default. Register unless explicitly 318 // Extension sync is enabled by default. Register unless explicitly
365 // disabled. 319 // disabled.
366 if (!disabled_types.Has(syncer::EXTENSIONS)) { 320 if (!disabled_types.Has(syncer::EXTENSIONS)) {
367 pss->RegisterDataTypeController(new ExtensionDataTypeController( 321 sync_service->RegisterDataTypeController(new ExtensionDataTypeController(
368 syncer::EXTENSIONS, &chrome_sync_client_, profile_)); 322 syncer::EXTENSIONS, &chrome_sync_client_, profile_));
369 } 323 }
370 #endif 324 #endif
371 325
372 // Preference sync is enabled by default. Register unless explicitly 326 // Preference sync is enabled by default. Register unless explicitly
373 // disabled. 327 // disabled.
374 if (!disabled_types.Has(syncer::PREFERENCES)) { 328 if (!disabled_types.Has(syncer::PREFERENCES)) {
375 pss->RegisterDataTypeController( 329 sync_service->RegisterDataTypeController(
376 new UIDataTypeController( 330 new UIDataTypeController(
377 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 331 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
378 base::Bind(&ChromeReportUnrecoverableError), 332 base::Bind(&ChromeReportUnrecoverableError),
379 syncer::PREFERENCES, 333 syncer::PREFERENCES,
380 &chrome_sync_client_)); 334 &chrome_sync_client_));
381 } 335 }
382 336
383 #if defined(ENABLE_THEMES) 337 #if defined(ENABLE_THEMES)
384 // Theme sync is enabled by default. Register unless explicitly disabled. 338 // Theme sync is enabled by default. Register unless explicitly disabled.
385 if (!disabled_types.Has(syncer::THEMES)) { 339 if (!disabled_types.Has(syncer::THEMES)) {
386 pss->RegisterDataTypeController( 340 sync_service->RegisterDataTypeController(
387 new ThemeDataTypeController(&chrome_sync_client_, profile_)); 341 new ThemeDataTypeController(&chrome_sync_client_, profile_));
388 } 342 }
389 #endif 343 #endif
390 344
391 // Search Engine sync is enabled by default. Register unless explicitly 345 // Search Engine sync is enabled by default. Register unless explicitly
392 // disabled. 346 // disabled.
393 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { 347 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) {
394 pss->RegisterDataTypeController( 348 sync_service->RegisterDataTypeController(
395 new SearchEngineDataTypeController(&chrome_sync_client_, profile_)); 349 new SearchEngineDataTypeController(&chrome_sync_client_, profile_));
396 } 350 }
397 351
398 #if defined(ENABLE_EXTENSIONS) 352 #if defined(ENABLE_EXTENSIONS)
399 // Extension setting sync is enabled by default. Register unless explicitly 353 // Extension setting sync is enabled by default. Register unless explicitly
400 // disabled. 354 // disabled.
401 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { 355 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) {
402 pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( 356 sync_service->RegisterDataTypeController(
403 syncer::EXTENSION_SETTINGS, &chrome_sync_client_, profile_)); 357 new ExtensionSettingDataTypeController(syncer::EXTENSION_SETTINGS,
358 &chrome_sync_client_, profile_));
404 } 359 }
405 360
406 // App setting sync is enabled by default. Register unless explicitly 361 // App setting sync is enabled by default. Register unless explicitly
407 // disabled. 362 // disabled.
408 if (!disabled_types.Has(syncer::APP_SETTINGS)) { 363 if (!disabled_types.Has(syncer::APP_SETTINGS)) {
409 pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( 364 sync_service->RegisterDataTypeController(
410 syncer::APP_SETTINGS, &chrome_sync_client_, profile_)); 365 new ExtensionSettingDataTypeController(syncer::APP_SETTINGS,
366 &chrome_sync_client_, profile_));
411 } 367 }
412 #endif 368 #endif
413 369
414 #if defined(ENABLE_APP_LIST) 370 #if defined(ENABLE_APP_LIST)
415 if (app_list::switches::IsAppListSyncEnabled()) { 371 if (app_list::switches::IsAppListSyncEnabled()) {
416 pss->RegisterDataTypeController( 372 sync_service->RegisterDataTypeController(
417 new UIDataTypeController( 373 new UIDataTypeController(
418 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 374 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
419 base::Bind(&ChromeReportUnrecoverableError), 375 base::Bind(&ChromeReportUnrecoverableError),
420 syncer::APP_LIST, 376 syncer::APP_LIST,
421 &chrome_sync_client_)); 377 &chrome_sync_client_));
422 } 378 }
423 #endif 379 #endif
424 380
425 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) 381 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS)
426 // Dictionary sync is enabled by default. 382 // Dictionary sync is enabled by default.
427 if (!disabled_types.Has(syncer::DICTIONARY)) { 383 if (!disabled_types.Has(syncer::DICTIONARY)) {
428 pss->RegisterDataTypeController( 384 sync_service->RegisterDataTypeController(
429 new UIDataTypeController( 385 new UIDataTypeController(
430 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 386 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
431 base::Bind(&ChromeReportUnrecoverableError), 387 base::Bind(&ChromeReportUnrecoverableError),
432 syncer::DICTIONARY, 388 syncer::DICTIONARY,
433 &chrome_sync_client_)); 389 &chrome_sync_client_));
434 } 390 }
435 #endif 391 #endif
436 392
437 #if defined(ENABLE_SUPERVISED_USERS) 393 #if defined(ENABLE_SUPERVISED_USERS)
438 pss->RegisterDataTypeController( 394 sync_service->RegisterDataTypeController(
439 new SupervisedUserSyncDataTypeController( 395 new SupervisedUserSyncDataTypeController(
440 syncer::SUPERVISED_USERS, 396 syncer::SUPERVISED_USERS,
441 this, 397 &chrome_sync_client_,
442 profile_)); 398 profile_));
443 pss->RegisterDataTypeController( 399 sync_service->RegisterDataTypeController(
444 new SupervisedUserSyncDataTypeController( 400 new SupervisedUserSyncDataTypeController(
445 syncer::SUPERVISED_USER_SHARED_SETTINGS, 401 syncer::SUPERVISED_USER_SHARED_SETTINGS,
446 this, 402 &chrome_sync_client_,
447 profile_)); 403 profile_));
448 #endif 404 #endif
449 405
450 #if defined(OS_CHROMEOS) 406 #if defined(OS_CHROMEOS)
451 if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) && 407 if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) &&
452 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) { 408 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) {
453 pss->RegisterDataTypeController( 409 sync_service->RegisterDataTypeController(
454 new UIDataTypeController( 410 new UIDataTypeController(
455 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 411 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
456 base::Bind(&ChromeReportUnrecoverableError), 412 base::Bind(&ChromeReportUnrecoverableError),
457 syncer::WIFI_CREDENTIALS, 413 syncer::WIFI_CREDENTIALS,
458 &chrome_sync_client_)); 414 &chrome_sync_client_));
459 } 415 }
460 #endif 416 #endif
461 } 417 }
462 418
463 DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager( 419 DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager(
464 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& 420 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>&
465 debug_info_listener, 421 debug_info_listener,
466 const DataTypeController::TypeMap* controllers, 422 const DataTypeController::TypeMap* controllers,
467 const sync_driver::DataTypeEncryptionHandler* encryption_handler, 423 const sync_driver::DataTypeEncryptionHandler* encryption_handler,
468 SyncBackendHost* backend, 424 SyncBackendHost* backend,
469 DataTypeManagerObserver* observer) { 425 DataTypeManagerObserver* observer) {
470 return new DataTypeManagerImpl(base::Bind(ChromeReportUnrecoverableError), 426 return new DataTypeManagerImpl(base::Bind(ChromeReportUnrecoverableError),
471 debug_info_listener, 427 debug_info_listener,
472 controllers, 428 controllers,
473 encryption_handler, 429 encryption_handler,
474 backend, 430 backend,
475 observer); 431 observer);
476 } 432 }
477 433
478 browser_sync::SyncBackendHost* 434 browser_sync::SyncBackendHost*
479 ProfileSyncComponentsFactoryImpl::CreateSyncBackendHost( 435 ProfileSyncComponentsFactoryImpl::CreateSyncBackendHost(
480 const std::string& name, 436 const std::string& name,
481 Profile* profile,
482 invalidation::InvalidationService* invalidator, 437 invalidation::InvalidationService* invalidator,
483 const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs, 438 const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs,
484 const base::FilePath& sync_folder) { 439 const base::FilePath& sync_folder) {
485 return new browser_sync::SyncBackendHostImpl(name, profile, invalidator, 440 return new browser_sync::SyncBackendHostImpl(name, profile_, invalidator,
486 sync_prefs, sync_folder); 441 sync_prefs, sync_folder);
487 } 442 }
488 443
489 scoped_ptr<sync_driver::LocalDeviceInfoProvider> 444 scoped_ptr<sync_driver::LocalDeviceInfoProvider>
490 ProfileSyncComponentsFactoryImpl::CreateLocalDeviceInfoProvider() { 445 ProfileSyncComponentsFactoryImpl::CreateLocalDeviceInfoProvider() {
491 return scoped_ptr<sync_driver::LocalDeviceInfoProvider>( 446 return scoped_ptr<sync_driver::LocalDeviceInfoProvider>(
492 new browser_sync::LocalDeviceInfoProviderImpl()); 447 new browser_sync::LocalDeviceInfoProviderImpl());
493 } 448 }
494 449
495 class TokenServiceProvider 450 class TokenServiceProvider
(...skipping 26 matching lines...) Expand all
522 477
523 scoped_refptr<base::SingleThreadTaskRunner> 478 scoped_refptr<base::SingleThreadTaskRunner>
524 TokenServiceProvider::GetTokenServiceTaskRunner() { 479 TokenServiceProvider::GetTokenServiceTaskRunner() {
525 return task_runner_; 480 return task_runner_;
526 } 481 }
527 482
528 OAuth2TokenService* TokenServiceProvider::GetTokenService() { 483 OAuth2TokenService* TokenServiceProvider::GetTokenService() {
529 return token_service_; 484 return token_service_;
530 } 485 }
531 486
532 base::WeakPtr<syncer::SyncableService>
533 ProfileSyncComponentsFactoryImpl::GetSyncableServiceForType(
534 syncer::ModelType type) {
535 return chrome_sync_client_.GetSyncableServiceForType(type);
536 }
537
538 scoped_ptr<syncer::AttachmentService> 487 scoped_ptr<syncer::AttachmentService>
539 ProfileSyncComponentsFactoryImpl::CreateAttachmentService( 488 ProfileSyncComponentsFactoryImpl::CreateAttachmentService(
540 scoped_ptr<syncer::AttachmentStoreForSync> attachment_store, 489 scoped_ptr<syncer::AttachmentStoreForSync> attachment_store,
541 const syncer::UserShare& user_share, 490 const syncer::UserShare& user_share,
542 const std::string& store_birthday, 491 const std::string& store_birthday,
543 syncer::ModelType model_type, 492 syncer::ModelType model_type,
544 syncer::AttachmentService::Delegate* delegate) { 493 syncer::AttachmentService::Delegate* delegate) {
545 scoped_ptr<syncer::AttachmentUploader> attachment_uploader; 494 scoped_ptr<syncer::AttachmentUploader> attachment_uploader;
546 scoped_ptr<syncer::AttachmentDownloader> attachment_downloader; 495 scoped_ptr<syncer::AttachmentDownloader> attachment_downloader;
547 // Only construct an AttachmentUploader and AttachmentDownload if we have sync 496 // Only construct an AttachmentUploader and AttachmentDownload if we have sync
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 base::TimeDelta::FromMinutes(30); 531 base::TimeDelta::FromMinutes(30);
583 const base::TimeDelta max_backoff_delay = base::TimeDelta::FromHours(4); 532 const base::TimeDelta max_backoff_delay = base::TimeDelta::FromHours(4);
584 scoped_ptr<syncer::AttachmentService> attachment_service( 533 scoped_ptr<syncer::AttachmentService> attachment_service(
585 new syncer::AttachmentServiceImpl( 534 new syncer::AttachmentServiceImpl(
586 attachment_store.Pass(), attachment_uploader.Pass(), 535 attachment_store.Pass(), attachment_uploader.Pass(),
587 attachment_downloader.Pass(), delegate, initial_backoff_delay, 536 attachment_downloader.Pass(), delegate, initial_backoff_delay,
588 max_backoff_delay)); 537 max_backoff_delay));
589 return attachment_service.Pass(); 538 return attachment_service.Pass();
590 } 539 }
591 540
592 ProfileSyncComponentsFactory::SyncComponents 541 sync_driver::SyncApiComponentFactory::SyncComponents
593 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( 542 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents(
594 ProfileSyncService* profile_sync_service, 543 sync_driver::SyncService* sync_service,
595 sync_driver::DataTypeErrorHandler* error_handler) { 544 sync_driver::DataTypeErrorHandler* error_handler) {
596 BookmarkModel* bookmark_model = 545 BookmarkModel* bookmark_model =
597 BookmarkModelFactory::GetForProfile(profile_sync_service->profile()); 546 BookmarkModelFactory::GetForProfile(profile_);
598 syncer::UserShare* user_share = profile_sync_service->GetUserShare(); 547 syncer::UserShare* user_share = sync_service->GetUserShare();
599 // TODO(akalin): We may want to propagate this switch up eventually. 548 // TODO(akalin): We may want to propagate this switch up eventually.
600 #if defined(OS_ANDROID) 549 #if defined(OS_ANDROID)
601 const bool kExpectMobileBookmarksFolder = true; 550 const bool kExpectMobileBookmarksFolder = true;
602 #else 551 #else
603 const bool kExpectMobileBookmarksFolder = false; 552 const bool kExpectMobileBookmarksFolder = false;
604 #endif 553 #endif
605 BookmarkModelAssociator* model_associator = 554 BookmarkModelAssociator* model_associator =
606 new BookmarkModelAssociator(bookmark_model, 555 new BookmarkModelAssociator(bookmark_model,
607 profile_sync_service->profile(), 556 profile_,
608 user_share, 557 user_share,
609 error_handler, 558 error_handler,
610 kExpectMobileBookmarksFolder); 559 kExpectMobileBookmarksFolder);
611 BookmarkChangeProcessor* change_processor = 560 BookmarkChangeProcessor* change_processor =
612 new BookmarkChangeProcessor(profile_sync_service->profile(), 561 new BookmarkChangeProcessor(profile_,
613 model_associator, 562 model_associator,
614 error_handler); 563 error_handler);
615 return SyncComponents(model_associator, change_processor); 564 return SyncComponents(model_associator, change_processor);
616 } 565 }
617 566
618 ProfileSyncComponentsFactory::SyncComponents 567 sync_driver::SyncApiComponentFactory::SyncComponents
619 ProfileSyncComponentsFactoryImpl::CreateTypedUrlSyncComponents( 568 ProfileSyncComponentsFactoryImpl::CreateTypedUrlSyncComponents(
620 ProfileSyncService* profile_sync_service, 569 sync_driver::SyncService* sync_service,
621 history::HistoryBackend* history_backend, 570 history::HistoryBackend* history_backend,
622 sync_driver::DataTypeErrorHandler* error_handler) { 571 sync_driver::DataTypeErrorHandler* error_handler) {
572 // TODO(zea): Once TypedURLs are converted to SyncableService, remove
573 // |sync_service_| member, and make GetSyncService require it be called on
574 // the UI thread.
623 TypedUrlModelAssociator* model_associator = 575 TypedUrlModelAssociator* model_associator =
624 new TypedUrlModelAssociator(profile_sync_service, 576 new TypedUrlModelAssociator(sync_service,
625 history_backend, 577 history_backend,
626 error_handler); 578 error_handler);
627 TypedUrlChangeProcessor* change_processor = 579 TypedUrlChangeProcessor* change_processor =
628 new TypedUrlChangeProcessor(profile_, 580 new TypedUrlChangeProcessor(profile_,
629 model_associator, 581 model_associator,
630 history_backend, 582 history_backend,
631 error_handler); 583 error_handler);
632 return SyncComponents(model_associator, change_processor); 584 return SyncComponents(model_associator, change_processor);
633 } 585 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698