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

Side by Side Diff: chrome/browser/sync/glue/sync_backend_host_core.cc

Issue 212603007: sync: Buffer Protocol Events for about:sync page (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 8 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 | Annotate | Revision Log
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/glue/sync_backend_host_core.h" 5 #include "chrome/browser/sync/glue/sync_backend_host_core.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "chrome/browser/sync/glue/device_info.h" 10 #include "chrome/browser/sync/glue/device_info.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 const std::string& name, 97 const std::string& name,
98 const base::FilePath& sync_data_folder_path, 98 const base::FilePath& sync_data_folder_path,
99 bool has_sync_setup_completed, 99 bool has_sync_setup_completed,
100 const base::WeakPtr<SyncBackendHostImpl>& backend) 100 const base::WeakPtr<SyncBackendHostImpl>& backend)
101 : name_(name), 101 : name_(name),
102 sync_data_folder_path_(sync_data_folder_path), 102 sync_data_folder_path_(sync_data_folder_path),
103 host_(backend), 103 host_(backend),
104 sync_loop_(NULL), 104 sync_loop_(NULL),
105 registrar_(NULL), 105 registrar_(NULL),
106 has_sync_setup_completed_(has_sync_setup_completed), 106 has_sync_setup_completed_(has_sync_setup_completed),
107 forward_protocol_events_(false),
107 weak_ptr_factory_(this) { 108 weak_ptr_factory_(this) {
108 DCHECK(backend.get()); 109 DCHECK(backend.get());
109 } 110 }
110 111
111 SyncBackendHostCore::~SyncBackendHostCore() { 112 SyncBackendHostCore::~SyncBackendHostCore() {
112 DCHECK(!sync_manager_.get()); 113 DCHECK(!sync_manager_.get());
113 } 114 }
114 115
115 void SyncBackendHostCore::OnSyncCycleCompleted( 116 void SyncBackendHostCore::OnSyncCycleCompleted(
116 const syncer::sessions::SyncSessionSnapshot& snapshot) { 117 const syncer::sessions::SyncSessionSnapshot& snapshot) {
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 } 599 }
599 600
600 void SyncBackendHostCore::DoRetryConfiguration( 601 void SyncBackendHostCore::DoRetryConfiguration(
601 const base::Closure& retry_callback) { 602 const base::Closure& retry_callback) {
602 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 603 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
603 host_.Call(FROM_HERE, 604 host_.Call(FROM_HERE,
604 &SyncBackendHostImpl::RetryConfigurationOnFrontendLoop, 605 &SyncBackendHostImpl::RetryConfigurationOnFrontendLoop,
605 retry_callback); 606 retry_callback);
606 } 607 }
607 608
608 void SyncBackendHostCore::SetForwardProtocolEvents(bool enabled) { 609 void SyncBackendHostCore::SendBufferedProtocolEventsAndEnableForwarding() {
609 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 610 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
610 forward_protocol_events_ = enabled; 611 forward_protocol_events_ = true;
612
613 if (sync_manager_) {
614 // Grab our own copy of the buffered events.
615 // The buffer is not modified by this operation.
616 std::vector<syncer::ProtocolEvent*> buffered_events;
617 sync_manager_->GetBufferedProtocolEvents().release(&buffered_events);
618
619 // Send them all over the fence to the host.
620 for (std::vector<syncer::ProtocolEvent*>::iterator it =
621 buffered_events.begin(); it != buffered_events.end(); ++it) {
622 // TODO(rlarocque): Make it explicit that host_ takes ownership.
623 host_.Call(
624 FROM_HERE,
625 &SyncBackendHostImpl::HandleProtocolEventOnFrontendLoop,
626 *it);
627 }
628 }
629 }
630
631 void SyncBackendHostCore::DisableProtocolEventForwarding() {
632 forward_protocol_events_ = false;
611 } 633 }
612 634
613 void SyncBackendHostCore::DeleteSyncDataFolder() { 635 void SyncBackendHostCore::DeleteSyncDataFolder() {
614 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 636 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
615 if (base::DirectoryExists(sync_data_folder_path_)) { 637 if (base::DirectoryExists(sync_data_folder_path_)) {
616 if (!base::DeleteFile(sync_data_folder_path_, true)) 638 if (!base::DeleteFile(sync_data_folder_path_, true))
617 SLOG(DFATAL) << "Could not delete the Sync Data folder."; 639 SLOG(DFATAL) << "Could not delete the Sync Data folder.";
618 } 640 }
619 } 641 }
620 642
621 void SyncBackendHostCore::StartSavingChanges() { 643 void SyncBackendHostCore::StartSavingChanges() {
622 // We may already be shut down. 644 // We may already be shut down.
623 if (!sync_loop_) 645 if (!sync_loop_)
624 return; 646 return;
625 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 647 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
626 DCHECK(!save_changes_timer_.get()); 648 DCHECK(!save_changes_timer_.get());
627 save_changes_timer_.reset(new base::RepeatingTimer<SyncBackendHostCore>()); 649 save_changes_timer_.reset(new base::RepeatingTimer<SyncBackendHostCore>());
628 save_changes_timer_->Start(FROM_HERE, 650 save_changes_timer_->Start(FROM_HERE,
629 base::TimeDelta::FromSeconds(kSaveChangesIntervalSeconds), 651 base::TimeDelta::FromSeconds(kSaveChangesIntervalSeconds),
630 this, &SyncBackendHostCore::SaveChanges); 652 this, &SyncBackendHostCore::SaveChanges);
631 } 653 }
632 654
633 void SyncBackendHostCore::SaveChanges() { 655 void SyncBackendHostCore::SaveChanges() {
634 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 656 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
635 sync_manager_->SaveChanges(); 657 sync_manager_->SaveChanges();
636 } 658 }
637 659
638 } // namespace browser_sync 660 } // namespace browser_sync
639 661
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host_core.h ('k') | chrome/browser/sync/glue/sync_backend_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698