| OLD | NEW |
| 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/local/local_file_sync_service.h" | 5 #include "chrome/browser/sync_file_system/local/local_file_sync_service.h" |
| 6 | 6 |
| 7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
| 10 #include "chrome/browser/extensions/extension_util.h" | 10 #include "chrome/browser/extensions/extension_util.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 if (next_ == change_count_map_.end()) | 63 if (next_ == change_count_map_.end()) |
| 64 next_ = change_count_map_.begin(); | 64 next_ = change_count_map_.begin(); |
| 65 DCHECK_NE(0, next_->second); | 65 DCHECK_NE(0, next_->second); |
| 66 *origin = next_++->first; | 66 *origin = next_++->first; |
| 67 if (!ContainsKey(disabled_origins_, *origin)) | 67 if (!ContainsKey(disabled_origins_, *origin)) |
| 68 return true; | 68 return true; |
| 69 } while (next_ != begin); | 69 } while (next_ != begin); |
| 70 return false; | 70 return false; |
| 71 } | 71 } |
| 72 | 72 |
| 73 int64 LocalFileSyncService::OriginChangeMap::GetTotalChangeCount() const { | 73 int64_t LocalFileSyncService::OriginChangeMap::GetTotalChangeCount() const { |
| 74 int64 num_changes = 0; | 74 int64_t num_changes = 0; |
| 75 for (Map::const_iterator iter = change_count_map_.begin(); | 75 for (Map::const_iterator iter = change_count_map_.begin(); |
| 76 iter != change_count_map_.end(); ++iter) { | 76 iter != change_count_map_.end(); ++iter) { |
| 77 if (ContainsKey(disabled_origins_, iter->first)) | 77 if (ContainsKey(disabled_origins_, iter->first)) |
| 78 continue; | 78 continue; |
| 79 num_changes += iter->second; | 79 num_changes += iter->second; |
| 80 } | 80 } |
| 81 return num_changes; | 81 return num_changes; |
| 82 } | 82 } |
| 83 | 83 |
| 84 void LocalFileSyncService::OriginChangeMap::SetOriginChangeCount( | 84 void LocalFileSyncService::OriginChangeMap::SetOriginChangeCount( |
| 85 const GURL& origin, int64 changes) { | 85 const GURL& origin, |
| 86 int64_t changes) { |
| 86 if (changes != 0) { | 87 if (changes != 0) { |
| 87 change_count_map_[origin] = changes; | 88 change_count_map_[origin] = changes; |
| 88 return; | 89 return; |
| 89 } | 90 } |
| 90 Map::iterator found = change_count_map_.find(origin); | 91 Map::iterator found = change_count_map_.find(origin); |
| 91 if (found != change_count_map_.end()) { | 92 if (found != change_count_map_.end()) { |
| 92 if (next_ == found) | 93 if (next_ == found) |
| 93 ++next_; | 94 ++next_; |
| 94 change_count_map_.erase(found); | 95 change_count_map_.erase(found); |
| 95 } | 96 } |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 need_notification = true; | 323 need_notification = true; |
| 323 SyncFileSystemBackend* backend = | 324 SyncFileSystemBackend* backend = |
| 324 SyncFileSystemBackend::GetBackend(origin_to_contexts_[origin]); | 325 SyncFileSystemBackend::GetBackend(origin_to_contexts_[origin]); |
| 325 DCHECK(backend); | 326 DCHECK(backend); |
| 326 DCHECK(backend->change_tracker()); | 327 DCHECK(backend->change_tracker()); |
| 327 origin_change_map_.SetOriginChangeCount( | 328 origin_change_map_.SetOriginChangeCount( |
| 328 origin, backend->change_tracker()->num_changes()); | 329 origin, backend->change_tracker()->num_changes()); |
| 329 } | 330 } |
| 330 if (!need_notification) | 331 if (!need_notification) |
| 331 return; | 332 return; |
| 332 int64 num_changes = origin_change_map_.GetTotalChangeCount(); | 333 int64_t num_changes = origin_change_map_.GetTotalChangeCount(); |
| 333 FOR_EACH_OBSERVER(Observer, change_observers_, | 334 FOR_EACH_OBSERVER(Observer, change_observers_, |
| 334 OnLocalChangeAvailable(num_changes)); | 335 OnLocalChangeAvailable(num_changes)); |
| 335 } | 336 } |
| 336 | 337 |
| 337 void LocalFileSyncService::SetOriginEnabled(const GURL& origin, bool enabled) { | 338 void LocalFileSyncService::SetOriginEnabled(const GURL& origin, bool enabled) { |
| 338 if (!ContainsKey(origin_to_contexts_, origin)) | 339 if (!ContainsKey(origin_to_contexts_, origin)) |
| 339 return; | 340 return; |
| 340 origin_change_map_.SetOriginEnabled(origin, enabled); | 341 origin_change_map_.SetOriginEnabled(origin, enabled); |
| 341 } | 342 } |
| 342 | 343 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 369 if (pending_origins_with_changes_.find(app_origin) != | 370 if (pending_origins_with_changes_.find(app_origin) != |
| 370 pending_origins_with_changes_.end()) { | 371 pending_origins_with_changes_.end()) { |
| 371 // We have remaining changes for the origin. | 372 // We have remaining changes for the origin. |
| 372 pending_origins_with_changes_.erase(app_origin); | 373 pending_origins_with_changes_.erase(app_origin); |
| 373 SyncFileSystemBackend* backend = | 374 SyncFileSystemBackend* backend = |
| 374 SyncFileSystemBackend::GetBackend(file_system_context); | 375 SyncFileSystemBackend::GetBackend(file_system_context); |
| 375 DCHECK(backend); | 376 DCHECK(backend); |
| 376 DCHECK(backend->change_tracker()); | 377 DCHECK(backend->change_tracker()); |
| 377 origin_change_map_.SetOriginChangeCount( | 378 origin_change_map_.SetOriginChangeCount( |
| 378 app_origin, backend->change_tracker()->num_changes()); | 379 app_origin, backend->change_tracker()->num_changes()); |
| 379 int64 num_changes = origin_change_map_.GetTotalChangeCount(); | 380 int64_t num_changes = origin_change_map_.GetTotalChangeCount(); |
| 380 FOR_EACH_OBSERVER(Observer, change_observers_, | 381 FOR_EACH_OBSERVER(Observer, change_observers_, |
| 381 OnLocalChangeAvailable(num_changes)); | 382 OnLocalChangeAvailable(num_changes)); |
| 382 } | 383 } |
| 383 callback.Run(status); | 384 callback.Run(status); |
| 384 } | 385 } |
| 385 | 386 |
| 386 void LocalFileSyncService::DidInitializeForRemoteSync( | 387 void LocalFileSyncService::DidInitializeForRemoteSync( |
| 387 const FileSystemURL& url, | 388 const FileSystemURL& url, |
| 388 storage::FileSystemContext* file_system_context, | 389 storage::FileSystemContext* file_system_context, |
| 389 const PrepareChangeCallback& callback, | 390 const PrepareChangeCallback& callback, |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 | 492 |
| 492 LocalChangeProcessor* LocalFileSyncService::GetLocalChangeProcessor( | 493 LocalChangeProcessor* LocalFileSyncService::GetLocalChangeProcessor( |
| 493 const FileSystemURL& url) { | 494 const FileSystemURL& url) { |
| 494 if (!get_local_change_processor_.is_null()) | 495 if (!get_local_change_processor_.is_null()) |
| 495 return get_local_change_processor_.Run(url.origin()); | 496 return get_local_change_processor_.Run(url.origin()); |
| 496 DCHECK(local_change_processor_); | 497 DCHECK(local_change_processor_); |
| 497 return local_change_processor_; | 498 return local_change_processor_; |
| 498 } | 499 } |
| 499 | 500 |
| 500 } // namespace sync_file_system | 501 } // namespace sync_file_system |
| OLD | NEW |