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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine.cc

Issue 506793002: Remove implicit conversions from scoped_refptr to T* in chrome/browser/sync_file_system/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 ExtensionService* extension_service = 209 ExtensionService* extension_service =
210 extensions::ExtensionSystem::Get(context)->extension_service(); 210 extensions::ExtensionSystem::Get(context)->extension_service();
211 SigninManagerBase* signin_manager = 211 SigninManagerBase* signin_manager =
212 SigninManagerFactory::GetForProfile(profile); 212 SigninManagerFactory::GetForProfile(profile);
213 OAuth2TokenService* token_service = 213 OAuth2TokenService* token_service =
214 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); 214 ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
215 scoped_refptr<net::URLRequestContextGetter> request_context = 215 scoped_refptr<net::URLRequestContextGetter> request_context =
216 context->GetRequestContext(); 216 context->GetRequestContext();
217 217
218 scoped_ptr<drive_backend::SyncEngine> sync_engine( 218 scoped_ptr<drive_backend::SyncEngine> sync_engine(
219 new SyncEngine(ui_task_runner, 219 new SyncEngine(ui_task_runner.get(),
220 worker_task_runner, 220 worker_task_runner.get(),
221 drive_task_runner, 221 drive_task_runner.get(),
222 GetSyncFileSystemDir(context->GetPath()), 222 GetSyncFileSystemDir(context->GetPath()),
223 task_logger, 223 task_logger,
224 notification_manager, 224 notification_manager,
225 extension_service, 225 extension_service,
226 signin_manager, 226 signin_manager,
227 token_service, 227 token_service,
228 request_context, 228 request_context.get(),
229 make_scoped_ptr(new DriveServiceFactory()), 229 make_scoped_ptr(new DriveServiceFactory()),
230 NULL /* env_override */)); 230 NULL /* env_override */));
231 231
232 sync_engine->Initialize(); 232 sync_engine->Initialize();
233 return sync_engine.Pass(); 233 return sync_engine.Pass();
234 } 234 }
235 235
236 void SyncEngine::AppendDependsOnFactories( 236 void SyncEngine::AppendDependsOnFactories(
237 std::set<BrowserContextKeyedServiceFactory*>* factories) { 237 std::set<BrowserContextKeyedServiceFactory*>* factories) {
238 DCHECK(factories); 238 DCHECK(factories);
239 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); 239 factories->insert(drive::DriveNotificationManagerFactory::GetInstance());
240 factories->insert(SigninManagerFactory::GetInstance()); 240 factories->insert(SigninManagerFactory::GetInstance());
241 factories->insert( 241 factories->insert(
242 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); 242 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
243 factories->insert(ProfileOAuth2TokenServiceFactory::GetInstance()); 243 factories->insert(ProfileOAuth2TokenServiceFactory::GetInstance());
244 } 244 }
245 245
246 SyncEngine::~SyncEngine() { 246 SyncEngine::~SyncEngine() {
247 Reset(); 247 Reset();
248 248
249 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); 249 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
250 if (signin_manager_) 250 if (signin_manager_)
251 signin_manager_->RemoveObserver(this); 251 signin_manager_->RemoveObserver(this);
252 if (notification_manager_) 252 if (notification_manager_)
253 notification_manager_->RemoveObserver(this); 253 notification_manager_->RemoveObserver(this);
254 } 254 }
255 255
256 void SyncEngine::Reset() { 256 void SyncEngine::Reset() {
257 if (drive_service_) 257 if (drive_service_)
258 drive_service_->RemoveObserver(this); 258 drive_service_->RemoveObserver(this);
259 259
260 DeleteSoon(FROM_HERE, worker_task_runner_, sync_worker_.Pass()); 260 DeleteSoon(FROM_HERE, worker_task_runner_.get(), sync_worker_.Pass());
261 DeleteSoon(FROM_HERE, worker_task_runner_, worker_observer_.Pass()); 261 DeleteSoon(FROM_HERE, worker_task_runner_.get(), worker_observer_.Pass());
262 DeleteSoon(FROM_HERE, worker_task_runner_, 262 DeleteSoon(FROM_HERE,
263 worker_task_runner_.get(),
263 remote_change_processor_on_worker_.Pass()); 264 remote_change_processor_on_worker_.Pass());
264 265
265 drive_service_wrapper_.reset(); 266 drive_service_wrapper_.reset();
266 drive_service_.reset(); 267 drive_service_.reset();
267 drive_uploader_wrapper_.reset(); 268 drive_uploader_wrapper_.reset();
268 drive_uploader_.reset(); 269 drive_uploader_.reset();
269 remote_change_processor_wrapper_.reset(); 270 remote_change_processor_wrapper_.reset();
270 callback_tracker_.AbortAll(); 271 callback_tracker_.AbortAll();
271 } 272 }
272 273
273 void SyncEngine::Initialize() { 274 void SyncEngine::Initialize() {
274 Reset(); 275 Reset();
275 276
276 if (!signin_manager_ || 277 if (!signin_manager_ ||
277 signin_manager_->GetAuthenticatedAccountId().empty()) 278 signin_manager_->GetAuthenticatedAccountId().empty())
278 return; 279 return;
279 280
280 DCHECK(drive_service_factory_); 281 DCHECK(drive_service_factory_);
281 scoped_ptr<drive::DriveServiceInterface> drive_service = 282 scoped_ptr<drive::DriveServiceInterface> drive_service =
282 drive_service_factory_->CreateDriveService( 283 drive_service_factory_->CreateDriveService(
283 token_service_, request_context_, drive_task_runner_); 284 token_service_, request_context_.get(), drive_task_runner_.get());
284 scoped_ptr<drive::DriveUploaderInterface> drive_uploader( 285 scoped_ptr<drive::DriveUploaderInterface> drive_uploader(
285 new drive::DriveUploader(drive_service.get(), drive_task_runner_)); 286 new drive::DriveUploader(drive_service.get(), drive_task_runner_.get()));
286 287
287 InitializeInternal(drive_service.Pass(), drive_uploader.Pass(), 288 InitializeInternal(drive_service.Pass(), drive_uploader.Pass(),
288 scoped_ptr<SyncWorkerInterface>()); 289 scoped_ptr<SyncWorkerInterface>());
289 } 290 }
290 291
291 void SyncEngine::InitializeForTesting( 292 void SyncEngine::InitializeForTesting(
292 scoped_ptr<drive::DriveServiceInterface> drive_service, 293 scoped_ptr<drive::DriveServiceInterface> drive_service,
293 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, 294 scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
294 scoped_ptr<SyncWorkerInterface> sync_worker) { 295 scoped_ptr<SyncWorkerInterface> sync_worker) {
295 Reset(); 296 Reset();
(...skipping 14 matching lines...) Expand all
310 drive_service_->Initialize(account_id); 311 drive_service_->Initialize(account_id);
311 312
312 drive_uploader_ = drive_uploader.Pass(); 313 drive_uploader_ = drive_uploader.Pass();
313 drive_uploader_wrapper_.reset( 314 drive_uploader_wrapper_.reset(
314 new DriveUploaderWrapper(drive_uploader_.get())); 315 new DriveUploaderWrapper(drive_uploader_.get()));
315 316
316 // DriveServiceWrapper and DriveServiceOnWorker relay communications 317 // DriveServiceWrapper and DriveServiceOnWorker relay communications
317 // between DriveService and syncers in SyncWorker. 318 // between DriveService and syncers in SyncWorker.
318 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker( 319 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker(
319 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), 320 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(),
320 ui_task_runner_, 321 ui_task_runner_.get(),
321 worker_task_runner_)); 322 worker_task_runner_.get()));
322 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker( 323 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker(
323 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(), 324 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(),
324 ui_task_runner_, 325 ui_task_runner_.get(),
325 worker_task_runner_)); 326 worker_task_runner_.get()));
326 scoped_ptr<SyncEngineContext> sync_engine_context( 327 scoped_ptr<SyncEngineContext> sync_engine_context(
327 new SyncEngineContext(drive_service_on_worker.Pass(), 328 new SyncEngineContext(drive_service_on_worker.Pass(),
328 drive_uploader_on_worker.Pass(), 329 drive_uploader_on_worker.Pass(),
329 task_logger_, 330 task_logger_,
330 ui_task_runner_, 331 ui_task_runner_.get(),
331 worker_task_runner_)); 332 worker_task_runner_.get()));
332 333
333 worker_observer_.reset( 334 worker_observer_.reset(new WorkerObserver(ui_task_runner_.get(),
334 new WorkerObserver(ui_task_runner_, weak_ptr_factory_.GetWeakPtr())); 335 weak_ptr_factory_.GetWeakPtr()));
335 336
336 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; 337 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr;
337 if (extension_service_) 338 if (extension_service_)
338 extension_service_weak_ptr = extension_service_->AsWeakPtr(); 339 extension_service_weak_ptr = extension_service_->AsWeakPtr();
339 340
340 if (!sync_worker) { 341 if (!sync_worker) {
341 sync_worker.reset(new SyncWorker( 342 sync_worker.reset(new SyncWorker(
342 sync_file_system_dir_, 343 sync_file_system_dir_,
343 extension_service_weak_ptr, 344 extension_service_weak_ptr,
344 env_override_)); 345 env_override_));
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 remote_change_processor_ = processor; 487 remote_change_processor_ = processor;
487 488
488 if (!sync_worker_) 489 if (!sync_worker_)
489 return; 490 return;
490 491
491 remote_change_processor_wrapper_.reset( 492 remote_change_processor_wrapper_.reset(
492 new RemoteChangeProcessorWrapper(processor)); 493 new RemoteChangeProcessorWrapper(processor));
493 494
494 remote_change_processor_on_worker_.reset(new RemoteChangeProcessorOnWorker( 495 remote_change_processor_on_worker_.reset(new RemoteChangeProcessorOnWorker(
495 remote_change_processor_wrapper_->AsWeakPtr(), 496 remote_change_processor_wrapper_->AsWeakPtr(),
496 ui_task_runner_, worker_task_runner_)); 497 ui_task_runner_.get(),
498 worker_task_runner_.get()));
497 499
498 worker_task_runner_->PostTask( 500 worker_task_runner_->PostTask(
499 FROM_HERE, 501 FROM_HERE,
500 base::Bind(&SyncWorkerInterface::SetRemoteChangeProcessor, 502 base::Bind(&SyncWorkerInterface::SetRemoteChangeProcessor,
501 base::Unretained(sync_worker_.get()), 503 base::Unretained(sync_worker_.get()),
502 remote_change_processor_on_worker_.get())); 504 remote_change_processor_on_worker_.get()));
503 } 505 }
504 506
505 LocalChangeProcessor* SyncEngine::GetLocalChangeProcessor() { 507 LocalChangeProcessor* SyncEngine::GetLocalChangeProcessor() {
506 return this; 508 return this;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>())); 543 base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>()));
542 544
543 if (!sync_worker_) { 545 if (!sync_worker_) {
544 abort_closure.Run(); 546 abort_closure.Run();
545 return; 547 return;
546 } 548 }
547 549
548 ListCallback tracked_callback = 550 ListCallback tracked_callback =
549 callback_tracker_.Register(abort_closure, callback); 551 callback_tracker_.Register(abort_closure, callback);
550 552
551 PostTaskAndReplyWithResult( 553 PostTaskAndReplyWithResult(worker_task_runner_.get(),
552 worker_task_runner_, 554 FROM_HERE,
553 FROM_HERE, 555 base::Bind(&SyncWorkerInterface::DumpFiles,
554 base::Bind(&SyncWorkerInterface::DumpFiles, 556 base::Unretained(sync_worker_.get()),
555 base::Unretained(sync_worker_.get()), 557 origin),
556 origin), 558 tracked_callback);
557 tracked_callback);
558 } 559 }
559 560
560 void SyncEngine::DumpDatabase(const ListCallback& callback) { 561 void SyncEngine::DumpDatabase(const ListCallback& callback) {
561 base::Closure abort_closure = 562 base::Closure abort_closure =
562 base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>())); 563 base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>()));
563 564
564 if (!sync_worker_) { 565 if (!sync_worker_) {
565 abort_closure.Run(); 566 abort_closure.Run();
566 return; 567 return;
567 } 568 }
568 569
569 ListCallback tracked_callback = 570 ListCallback tracked_callback =
570 callback_tracker_.Register(abort_closure, callback); 571 callback_tracker_.Register(abort_closure, callback);
571 572
572 PostTaskAndReplyWithResult( 573 PostTaskAndReplyWithResult(worker_task_runner_.get(),
573 worker_task_runner_, 574 FROM_HERE,
574 FROM_HERE, 575 base::Bind(&SyncWorkerInterface::DumpDatabase,
575 base::Bind(&SyncWorkerInterface::DumpDatabase, 576 base::Unretained(sync_worker_.get())),
576 base::Unretained(sync_worker_.get())), 577 tracked_callback);
577 tracked_callback);
578 } 578 }
579 579
580 void SyncEngine::SetSyncEnabled(bool sync_enabled) { 580 void SyncEngine::SetSyncEnabled(bool sync_enabled) {
581 sync_enabled_ = sync_enabled; 581 sync_enabled_ = sync_enabled;
582 582
583 if (!sync_worker_) 583 if (!sync_worker_)
584 return; 584 return;
585 585
586 worker_task_runner_->PostTask( 586 worker_task_runner_->PostTask(
587 FROM_HERE, 587 FROM_HERE,
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 782
783 SyncStatusCallback SyncEngine::TrackCallback( 783 SyncStatusCallback SyncEngine::TrackCallback(
784 const SyncStatusCallback& callback) { 784 const SyncStatusCallback& callback) {
785 return callback_tracker_.Register( 785 return callback_tracker_.Register(
786 base::Bind(callback, SYNC_STATUS_ABORT), 786 base::Bind(callback, SYNC_STATUS_ABORT),
787 callback); 787 callback);
788 } 788 }
789 789
790 } // namespace drive_backend 790 } // namespace drive_backend
791 } // namespace sync_file_system 791 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698