OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |