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_file_system/drive_metadata_store.h" | 5 #include "chrome/browser/sync_file_system/drive_metadata_store.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 DriveMetadataStore::~DriveMetadataStore() { | 243 DriveMetadataStore::~DriveMetadataStore() { |
244 DCHECK(CalledOnValidThread()); | 244 DCHECK(CalledOnValidThread()); |
245 file_task_runner_->DeleteSoon(FROM_HERE, db_.release()); | 245 file_task_runner_->DeleteSoon(FROM_HERE, db_.release()); |
246 } | 246 } |
247 | 247 |
248 void DriveMetadataStore::Initialize(const InitializationCallback& callback) { | 248 void DriveMetadataStore::Initialize(const InitializationCallback& callback) { |
249 DCHECK(CalledOnValidThread()); | 249 DCHECK(CalledOnValidThread()); |
250 DriveMetadataDBContents* contents = new DriveMetadataDBContents; | 250 DriveMetadataDBContents* contents = new DriveMetadataDBContents; |
251 | 251 |
252 base::PostTaskAndReplyWithResult( | 252 base::PostTaskAndReplyWithResult( |
253 file_task_runner_, FROM_HERE, | 253 file_task_runner_.get(), |
| 254 FROM_HERE, |
254 base::Bind(InitializeDBOnFileThread, db_.get(), contents), | 255 base::Bind(InitializeDBOnFileThread, db_.get(), contents), |
255 base::Bind(&DriveMetadataStore::DidInitialize, AsWeakPtr(), | 256 base::Bind(&DriveMetadataStore::DidInitialize, |
256 callback, base::Owned(contents))); | 257 AsWeakPtr(), |
| 258 callback, |
| 259 base::Owned(contents))); |
257 } | 260 } |
258 | 261 |
259 void DriveMetadataStore::DidInitialize(const InitializationCallback& callback, | 262 void DriveMetadataStore::DidInitialize(const InitializationCallback& callback, |
260 DriveMetadataDBContents* contents, | 263 DriveMetadataDBContents* contents, |
261 SyncStatusCode status) { | 264 SyncStatusCode status) { |
262 DCHECK(CalledOnValidThread()); | 265 DCHECK(CalledOnValidThread()); |
263 DCHECK(contents); | 266 DCHECK(contents); |
264 | 267 |
265 db_status_ = status; | 268 db_status_ = status; |
266 if (status != SYNC_STATUS_OK) { | 269 if (status != SYNC_STATUS_OK) { |
(...skipping 13 matching lines...) Expand all Loading... |
280 InsertReverseMap(disabled_origins_, &origin_by_resource_id_); | 283 InsertReverseMap(disabled_origins_, &origin_by_resource_id_); |
281 | 284 |
282 callback.Run(status, largest_changestamp_ <= 0); | 285 callback.Run(status, largest_changestamp_ <= 0); |
283 } | 286 } |
284 | 287 |
285 void DriveMetadataStore::RestoreSyncRootDirectory( | 288 void DriveMetadataStore::RestoreSyncRootDirectory( |
286 const SyncStatusCallback& callback) { | 289 const SyncStatusCallback& callback) { |
287 DCHECK(CalledOnValidThread()); | 290 DCHECK(CalledOnValidThread()); |
288 std::string* sync_root_directory_resource_id = new std::string; | 291 std::string* sync_root_directory_resource_id = new std::string; |
289 base::PostTaskAndReplyWithResult( | 292 base::PostTaskAndReplyWithResult( |
290 file_task_runner_, FROM_HERE, | 293 file_task_runner_.get(), |
| 294 FROM_HERE, |
291 base::Bind(&DriveMetadataDB::GetSyncRootDirectory, | 295 base::Bind(&DriveMetadataDB::GetSyncRootDirectory, |
292 base::Unretained(db_.get()), | 296 base::Unretained(db_.get()), |
293 sync_root_directory_resource_id), | 297 sync_root_directory_resource_id), |
294 base::Bind(&DriveMetadataStore::DidRestoreSyncRootDirectory, | 298 base::Bind(&DriveMetadataStore::DidRestoreSyncRootDirectory, |
295 AsWeakPtr(), callback, | 299 AsWeakPtr(), |
| 300 callback, |
296 base::Owned(sync_root_directory_resource_id))); | 301 base::Owned(sync_root_directory_resource_id))); |
297 } | 302 } |
298 | 303 |
299 void DriveMetadataStore::DidRestoreSyncRootDirectory( | 304 void DriveMetadataStore::DidRestoreSyncRootDirectory( |
300 const SyncStatusCallback& callback, | 305 const SyncStatusCallback& callback, |
301 std::string* sync_root_directory_resource_id, | 306 std::string* sync_root_directory_resource_id, |
302 SyncStatusCode status) { | 307 SyncStatusCode status) { |
303 DCHECK(CalledOnValidThread()); | 308 DCHECK(CalledOnValidThread()); |
304 DCHECK(sync_root_directory_resource_id); | 309 DCHECK(sync_root_directory_resource_id); |
305 | 310 |
306 db_status_ = status; | 311 db_status_ = status; |
307 if (status != SYNC_STATUS_OK) { | 312 if (status != SYNC_STATUS_OK) { |
308 callback.Run(status); | 313 callback.Run(status); |
309 return; | 314 return; |
310 } | 315 } |
311 | 316 |
312 sync_root_directory_resource_id_.swap(*sync_root_directory_resource_id); | 317 sync_root_directory_resource_id_.swap(*sync_root_directory_resource_id); |
313 callback.Run(status); | 318 callback.Run(status); |
314 } | 319 } |
315 | 320 |
316 void DriveMetadataStore::RestoreOrigins( | 321 void DriveMetadataStore::RestoreOrigins( |
317 const SyncStatusCallback& callback) { | 322 const SyncStatusCallback& callback) { |
318 DCHECK(CalledOnValidThread()); | 323 DCHECK(CalledOnValidThread()); |
319 ResourceIdByOrigin* incremental_sync_origins = new ResourceIdByOrigin; | 324 ResourceIdByOrigin* incremental_sync_origins = new ResourceIdByOrigin; |
320 ResourceIdByOrigin* disabled_origins = new ResourceIdByOrigin; | 325 ResourceIdByOrigin* disabled_origins = new ResourceIdByOrigin; |
321 base::PostTaskAndReplyWithResult( | 326 base::PostTaskAndReplyWithResult( |
322 file_task_runner_, FROM_HERE, | 327 file_task_runner_.get(), |
| 328 FROM_HERE, |
323 base::Bind(&DriveMetadataDB::GetOrigins, | 329 base::Bind(&DriveMetadataDB::GetOrigins, |
324 base::Unretained(db_.get()), | 330 base::Unretained(db_.get()), |
325 incremental_sync_origins, | 331 incremental_sync_origins, |
326 disabled_origins), | 332 disabled_origins), |
327 base::Bind(&DriveMetadataStore::DidRestoreOrigins, | 333 base::Bind(&DriveMetadataStore::DidRestoreOrigins, |
328 AsWeakPtr(), callback, | 334 AsWeakPtr(), |
| 335 callback, |
329 base::Owned(incremental_sync_origins), | 336 base::Owned(incremental_sync_origins), |
330 base::Owned(disabled_origins))); | 337 base::Owned(disabled_origins))); |
331 } | 338 } |
332 | 339 |
333 void DriveMetadataStore::DidRestoreOrigins( | 340 void DriveMetadataStore::DidRestoreOrigins( |
334 const SyncStatusCallback& callback, | 341 const SyncStatusCallback& callback, |
335 ResourceIdByOrigin* incremental_sync_origins, | 342 ResourceIdByOrigin* incremental_sync_origins, |
336 ResourceIdByOrigin* disabled_origins, | 343 ResourceIdByOrigin* disabled_origins, |
337 SyncStatusCode status) { | 344 SyncStatusCode status) { |
338 DCHECK(CalledOnValidThread()); | 345 DCHECK(CalledOnValidThread()); |
(...skipping 20 matching lines...) Expand all Loading... |
359 return db_->db_.get(); | 366 return db_->db_.get(); |
360 } | 367 } |
361 | 368 |
362 void DriveMetadataStore::SetLargestChangeStamp( | 369 void DriveMetadataStore::SetLargestChangeStamp( |
363 int64 largest_changestamp, | 370 int64 largest_changestamp, |
364 const SyncStatusCallback& callback) { | 371 const SyncStatusCallback& callback) { |
365 DCHECK(CalledOnValidThread()); | 372 DCHECK(CalledOnValidThread()); |
366 DCHECK_EQ(SYNC_STATUS_OK, db_status_); | 373 DCHECK_EQ(SYNC_STATUS_OK, db_status_); |
367 largest_changestamp_ = largest_changestamp; | 374 largest_changestamp_ = largest_changestamp; |
368 base::PostTaskAndReplyWithResult( | 375 base::PostTaskAndReplyWithResult( |
369 file_task_runner_, FROM_HERE, | 376 file_task_runner_.get(), |
| 377 FROM_HERE, |
370 base::Bind(&DriveMetadataDB::SetLargestChangestamp, | 378 base::Bind(&DriveMetadataDB::SetLargestChangestamp, |
371 base::Unretained(db_.get()), largest_changestamp), | 379 base::Unretained(db_.get()), |
| 380 largest_changestamp), |
372 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, | 381 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, |
373 AsWeakPtr(), callback)); | 382 AsWeakPtr(), |
| 383 callback)); |
374 } | 384 } |
375 | 385 |
376 int64 DriveMetadataStore::GetLargestChangeStamp() const { | 386 int64 DriveMetadataStore::GetLargestChangeStamp() const { |
377 DCHECK(CalledOnValidThread()); | 387 DCHECK(CalledOnValidThread()); |
378 DCHECK_EQ(SYNC_STATUS_OK, db_status_); | 388 DCHECK_EQ(SYNC_STATUS_OK, db_status_); |
379 return largest_changestamp_; | 389 return largest_changestamp_; |
380 } | 390 } |
381 | 391 |
382 void DriveMetadataStore::UpdateEntry( | 392 void DriveMetadataStore::UpdateEntry( |
383 const FileSystemURL& url, | 393 const FileSystemURL& url, |
384 const DriveMetadata& metadata, | 394 const DriveMetadata& metadata, |
385 const SyncStatusCallback& callback) { | 395 const SyncStatusCallback& callback) { |
386 DCHECK(CalledOnValidThread()); | 396 DCHECK(CalledOnValidThread()); |
387 DCHECK_EQ(SYNC_STATUS_OK, db_status_); | 397 DCHECK_EQ(SYNC_STATUS_OK, db_status_); |
388 DCHECK(!metadata.conflicted() || !metadata.to_be_fetched()); | 398 DCHECK(!metadata.conflicted() || !metadata.to_be_fetched()); |
389 | 399 |
390 std::pair<PathToMetadata::iterator, bool> result = | 400 std::pair<PathToMetadata::iterator, bool> result = |
391 metadata_map_[url.origin()].insert(std::make_pair(url.path(), metadata)); | 401 metadata_map_[url.origin()].insert(std::make_pair(url.path(), metadata)); |
392 if (!result.second) | 402 if (!result.second) |
393 result.first->second = metadata; | 403 result.first->second = metadata; |
394 | 404 |
395 base::PostTaskAndReplyWithResult( | 405 base::PostTaskAndReplyWithResult( |
396 file_task_runner_, FROM_HERE, | 406 file_task_runner_.get(), |
397 base::Bind(&DriveMetadataDB::UpdateEntry, base::Unretained(db_.get()), | 407 FROM_HERE, |
398 url, metadata), | 408 base::Bind(&DriveMetadataDB::UpdateEntry, |
| 409 base::Unretained(db_.get()), |
| 410 url, |
| 411 metadata), |
399 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, | 412 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, |
400 AsWeakPtr(), callback)); | 413 AsWeakPtr(), |
| 414 callback)); |
401 } | 415 } |
402 | 416 |
403 void DriveMetadataStore::DeleteEntry( | 417 void DriveMetadataStore::DeleteEntry( |
404 const FileSystemURL& url, | 418 const FileSystemURL& url, |
405 const SyncStatusCallback& callback) { | 419 const SyncStatusCallback& callback) { |
406 DCHECK(CalledOnValidThread()); | 420 DCHECK(CalledOnValidThread()); |
407 MetadataMap::iterator found = metadata_map_.find(url.origin()); | 421 MetadataMap::iterator found = metadata_map_.find(url.origin()); |
408 if (found == metadata_map_.end()) { | 422 if (found == metadata_map_.end()) { |
409 base::MessageLoopProxy::current()->PostTask( | 423 base::MessageLoopProxy::current()->PostTask( |
410 FROM_HERE, | 424 FROM_HERE, |
411 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); | 425 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
412 return; | 426 return; |
413 } | 427 } |
414 | 428 |
415 if (found->second.erase(url.path()) == 1) { | 429 if (found->second.erase(url.path()) == 1) { |
416 base::PostTaskAndReplyWithResult( | 430 base::PostTaskAndReplyWithResult( |
417 file_task_runner_, FROM_HERE, | 431 file_task_runner_.get(), |
418 base::Bind(&DriveMetadataDB::DeleteEntry, | 432 FROM_HERE, |
419 base::Unretained(db_.get()), url), | 433 base::Bind( |
| 434 &DriveMetadataDB::DeleteEntry, base::Unretained(db_.get()), url), |
420 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, | 435 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, |
421 AsWeakPtr(), callback)); | 436 AsWeakPtr(), |
| 437 callback)); |
422 return; | 438 return; |
423 } | 439 } |
424 | 440 |
425 base::MessageLoopProxy::current()->PostTask( | 441 base::MessageLoopProxy::current()->PostTask( |
426 FROM_HERE, | 442 FROM_HERE, |
427 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); | 443 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); |
428 } | 444 } |
429 | 445 |
430 SyncStatusCode DriveMetadataStore::ReadEntry(const FileSystemURL& url, | 446 SyncStatusCode DriveMetadataStore::ReadEntry(const FileSystemURL& url, |
431 DriveMetadata* metadata) const { | 447 DriveMetadata* metadata) const { |
(...skipping 18 matching lines...) Expand all Loading... |
450 DCHECK(CalledOnValidThread()); | 466 DCHECK(CalledOnValidThread()); |
451 DCHECK(!IsIncrementalSyncOrigin(origin)); | 467 DCHECK(!IsIncrementalSyncOrigin(origin)); |
452 DCHECK(!IsOriginDisabled(origin)); | 468 DCHECK(!IsOriginDisabled(origin)); |
453 DCHECK_EQ(SYNC_STATUS_OK, db_status_); | 469 DCHECK_EQ(SYNC_STATUS_OK, db_status_); |
454 | 470 |
455 incremental_sync_origins_.insert(std::make_pair(origin, resource_id)); | 471 incremental_sync_origins_.insert(std::make_pair(origin, resource_id)); |
456 origin_by_resource_id_.insert(std::make_pair(resource_id, origin)); | 472 origin_by_resource_id_.insert(std::make_pair(resource_id, origin)); |
457 | 473 |
458 // Store a pair of |origin| and |resource_id| in the DB. | 474 // Store a pair of |origin| and |resource_id| in the DB. |
459 base::PostTaskAndReplyWithResult( | 475 base::PostTaskAndReplyWithResult( |
460 file_task_runner_, FROM_HERE, | 476 file_task_runner_.get(), |
| 477 FROM_HERE, |
461 base::Bind(&DriveMetadataDB::UpdateOriginAsIncrementalSync, | 478 base::Bind(&DriveMetadataDB::UpdateOriginAsIncrementalSync, |
462 base::Unretained(db_.get()), origin, resource_id), | 479 base::Unretained(db_.get()), |
| 480 origin, |
| 481 resource_id), |
463 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); | 482 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); |
464 } | 483 } |
465 | 484 |
466 void DriveMetadataStore::SetSyncRootDirectory(const std::string& resource_id) { | 485 void DriveMetadataStore::SetSyncRootDirectory(const std::string& resource_id) { |
467 DCHECK(CalledOnValidThread()); | 486 DCHECK(CalledOnValidThread()); |
468 | 487 |
469 sync_root_directory_resource_id_ = resource_id; | 488 sync_root_directory_resource_id_ = resource_id; |
470 | 489 |
471 // Set the resource ID for the sync root directory in the DB. | 490 // Set the resource ID for the sync root directory in the DB. |
472 base::PostTaskAndReplyWithResult( | 491 base::PostTaskAndReplyWithResult( |
473 file_task_runner_, FROM_HERE, | 492 file_task_runner_.get(), |
| 493 FROM_HERE, |
474 base::Bind(&DriveMetadataDB::SetSyncRootDirectory, | 494 base::Bind(&DriveMetadataDB::SetSyncRootDirectory, |
475 base::Unretained(db_.get()), resource_id), | 495 base::Unretained(db_.get()), |
| 496 resource_id), |
476 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); | 497 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); |
477 } | 498 } |
478 | 499 |
479 void DriveMetadataStore::SetOriginRootDirectory( | 500 void DriveMetadataStore::SetOriginRootDirectory( |
480 const GURL& origin, | 501 const GURL& origin, |
481 const std::string& resource_id) { | 502 const std::string& resource_id) { |
482 DCHECK(CalledOnValidThread()); | 503 DCHECK(CalledOnValidThread()); |
483 DCHECK(IsKnownOrigin(origin)); | 504 DCHECK(IsKnownOrigin(origin)); |
484 | 505 |
485 DriveMetadataDB::OriginSyncType sync_type; | 506 DriveMetadataDB::OriginSyncType sync_type; |
486 if (UpdateResourceIdMap( | 507 if (UpdateResourceIdMap( |
487 &incremental_sync_origins_, &origin_by_resource_id_, | 508 &incremental_sync_origins_, &origin_by_resource_id_, |
488 origin, resource_id)) { | 509 origin, resource_id)) { |
489 sync_type = DriveMetadataDB::INCREMENTAL_SYNC_ORIGIN; | 510 sync_type = DriveMetadataDB::INCREMENTAL_SYNC_ORIGIN; |
490 } else if (UpdateResourceIdMap(&disabled_origins_, &origin_by_resource_id_, | 511 } else if (UpdateResourceIdMap(&disabled_origins_, &origin_by_resource_id_, |
491 origin, resource_id)) { | 512 origin, resource_id)) { |
492 sync_type = DriveMetadataDB::DISABLED_ORIGIN; | 513 sync_type = DriveMetadataDB::DISABLED_ORIGIN; |
493 } else { | 514 } else { |
494 return; | 515 return; |
495 } | 516 } |
496 base::PostTaskAndReplyWithResult( | 517 base::PostTaskAndReplyWithResult( |
497 file_task_runner_, FROM_HERE, | 518 file_task_runner_.get(), |
| 519 FROM_HERE, |
498 base::Bind(&DriveMetadataDB::SetOriginRootDirectory, | 520 base::Bind(&DriveMetadataDB::SetOriginRootDirectory, |
499 base::Unretained(db_.get()), origin, sync_type, resource_id), | 521 base::Unretained(db_.get()), |
| 522 origin, |
| 523 sync_type, |
| 524 resource_id), |
500 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); | 525 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr())); |
501 } | 526 } |
502 | 527 |
503 bool DriveMetadataStore::IsKnownOrigin(const GURL& origin) const { | 528 bool DriveMetadataStore::IsKnownOrigin(const GURL& origin) const { |
504 DCHECK(CalledOnValidThread()); | 529 DCHECK(CalledOnValidThread()); |
505 return IsIncrementalSyncOrigin(origin) || IsOriginDisabled(origin); | 530 return IsIncrementalSyncOrigin(origin) || IsOriginDisabled(origin); |
506 } | 531 } |
507 | 532 |
508 bool DriveMetadataStore::IsIncrementalSyncOrigin(const GURL& origin) const { | 533 bool DriveMetadataStore::IsIncrementalSyncOrigin(const GURL& origin) const { |
509 DCHECK(CalledOnValidThread()); | 534 DCHECK(CalledOnValidThread()); |
(...skipping 19 matching lines...) Expand all Loading... |
529 disabled_origins_.erase(found); | 554 disabled_origins_.erase(found); |
530 | 555 |
531 // |Origin| goes back to DriveFileSyncService.pending_batch_sync_origins_ | 556 // |Origin| goes back to DriveFileSyncService.pending_batch_sync_origins_ |
532 // only and is not stored in drive_metadata_store. | 557 // only and is not stored in drive_metadata_store. |
533 found = incremental_sync_origins_.find(origin); | 558 found = incremental_sync_origins_.find(origin); |
534 if (found != incremental_sync_origins_.end()) | 559 if (found != incremental_sync_origins_.end()) |
535 incremental_sync_origins_.erase(found); | 560 incremental_sync_origins_.erase(found); |
536 | 561 |
537 // Store a pair of |origin| and |resource_id| in the DB. | 562 // Store a pair of |origin| and |resource_id| in the DB. |
538 base::PostTaskAndReplyWithResult( | 563 base::PostTaskAndReplyWithResult( |
539 file_task_runner_, FROM_HERE, | 564 file_task_runner_.get(), |
| 565 FROM_HERE, |
540 base::Bind(&DriveMetadataDB::EnableOrigin, | 566 base::Bind(&DriveMetadataDB::EnableOrigin, |
541 base::Unretained(db_.get()), origin, resource_id), | 567 base::Unretained(db_.get()), |
| 568 origin, |
| 569 resource_id), |
542 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); | 570 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); |
543 } | 571 } |
544 | 572 |
545 void DriveMetadataStore::DisableOrigin( | 573 void DriveMetadataStore::DisableOrigin( |
546 const GURL& origin, | 574 const GURL& origin, |
547 const SyncStatusCallback& callback) { | 575 const SyncStatusCallback& callback) { |
548 DCHECK(CalledOnValidThread()); | 576 DCHECK(CalledOnValidThread()); |
549 | 577 |
550 std::string resource_id; | 578 std::string resource_id; |
551 std::map<GURL, std::string>::iterator found = | 579 std::map<GURL, std::string>::iterator found = |
552 incremental_sync_origins_.find(origin); | 580 incremental_sync_origins_.find(origin); |
553 if (found != incremental_sync_origins_.end()) { | 581 if (found != incremental_sync_origins_.end()) { |
554 resource_id = found->second; | 582 resource_id = found->second; |
555 incremental_sync_origins_.erase(found); | 583 incremental_sync_origins_.erase(found); |
556 } | 584 } |
557 | 585 |
558 if (resource_id.empty()) { | 586 if (resource_id.empty()) { |
559 // |origin| has not been registered yet. | 587 // |origin| has not been registered yet. |
560 return; | 588 return; |
561 } | 589 } |
562 | 590 |
563 disabled_origins_.insert(std::make_pair(origin, resource_id)); | 591 disabled_origins_.insert(std::make_pair(origin, resource_id)); |
564 | 592 |
565 // Store a pair of |origin| and |resource_id| in the DB. | 593 // Store a pair of |origin| and |resource_id| in the DB. |
566 base::PostTaskAndReplyWithResult( | 594 base::PostTaskAndReplyWithResult( |
567 file_task_runner_, FROM_HERE, | 595 file_task_runner_.get(), |
| 596 FROM_HERE, |
568 base::Bind(&DriveMetadataDB::DisableOrigin, | 597 base::Bind(&DriveMetadataDB::DisableOrigin, |
569 base::Unretained(db_.get()), origin, resource_id), | 598 base::Unretained(db_.get()), |
| 599 origin, |
| 600 resource_id), |
570 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); | 601 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); |
571 } | 602 } |
572 | 603 |
573 void DriveMetadataStore::RemoveOrigin( | 604 void DriveMetadataStore::RemoveOrigin( |
574 const GURL& origin, | 605 const GURL& origin, |
575 const SyncStatusCallback& callback) { | 606 const SyncStatusCallback& callback) { |
576 DCHECK(CalledOnValidThread()); | 607 DCHECK(CalledOnValidThread()); |
577 | 608 |
578 metadata_map_.erase(origin); | 609 metadata_map_.erase(origin); |
579 | 610 |
580 std::string resource_id; | 611 std::string resource_id; |
581 if (EraseIfExists(&incremental_sync_origins_, origin, &resource_id) || | 612 if (EraseIfExists(&incremental_sync_origins_, origin, &resource_id) || |
582 EraseIfExists(&disabled_origins_, origin, &resource_id)) { | 613 EraseIfExists(&disabled_origins_, origin, &resource_id)) { |
583 origin_by_resource_id_.erase(resource_id); | 614 origin_by_resource_id_.erase(resource_id); |
584 } | 615 } |
585 | 616 |
586 base::PostTaskAndReplyWithResult( | 617 base::PostTaskAndReplyWithResult( |
587 file_task_runner_, FROM_HERE, | 618 file_task_runner_.get(), |
588 base::Bind(&DriveMetadataDB::RemoveOrigin, | 619 FROM_HERE, |
589 base::Unretained(db_.get()), origin), | 620 base::Bind( |
| 621 &DriveMetadataDB::RemoveOrigin, base::Unretained(db_.get()), origin), |
590 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); | 622 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); |
591 } | 623 } |
592 | 624 |
593 void DriveMetadataStore::DidUpdateOrigin( | 625 void DriveMetadataStore::DidUpdateOrigin( |
594 const SyncStatusCallback& callback, | 626 const SyncStatusCallback& callback, |
595 SyncStatusCode status) { | 627 SyncStatusCode status) { |
596 UpdateDBStatus(status); | 628 UpdateDBStatus(status); |
597 callback.Run(status); | 629 callback.Run(status); |
598 } | 630 } |
599 | 631 |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 | 1070 |
1039 bool result = disabled_origins->insert( | 1071 bool result = disabled_origins->insert( |
1040 std::make_pair(origin, origin_resource_id)).second; | 1072 std::make_pair(origin, origin_resource_id)).second; |
1041 DCHECK(result); | 1073 DCHECK(result); |
1042 } | 1074 } |
1043 | 1075 |
1044 return SYNC_STATUS_OK; | 1076 return SYNC_STATUS_OK; |
1045 } | 1077 } |
1046 | 1078 |
1047 } // namespace sync_file_system | 1079 } // namespace sync_file_system |
OLD | NEW |