| Index: chrome/browser/sync/engine/sync_scheduler.cc
|
| diff --git a/chrome/browser/sync/engine/sync_scheduler.cc b/chrome/browser/sync/engine/sync_scheduler.cc
|
| index 8ba1959db08b8a15dcb22210a1077b08f2cf1990..8b7eef1fffcb616a8a21d39961ac0b13993e77e7 100644
|
| --- a/chrome/browser/sync/engine/sync_scheduler.cc
|
| +++ b/chrome/browser/sync/engine/sync_scheduler.cc
|
| @@ -190,7 +190,6 @@ SyncScheduler::SyncScheduler(const std::string& name,
|
| sessions_commit_delay_(
|
| TimeDelta::FromSeconds(kDefaultSessionsCommitDelaySeconds)),
|
| mode_(NORMAL_MODE),
|
| - server_connection_ok_(false),
|
| delay_provider_(new DelayProvider()),
|
| syncer_(syncer),
|
| session_context_(context) {
|
| @@ -202,38 +201,6 @@ SyncScheduler::~SyncScheduler() {
|
| StopImpl(base::Closure());
|
| }
|
|
|
| -void SyncScheduler::CheckServerConnectionManagerStatus(
|
| - HttpResponse::ServerConnectionCode code) {
|
| - DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| - SDVLOG(2) << "New server connection code: "
|
| - << HttpResponse::GetServerConnectionCodeString(code);
|
| - bool old_server_connection_ok = server_connection_ok_;
|
| -
|
| - // Note, be careful when adding cases here because if the SyncScheduler
|
| - // thinks there is no valid connection as determined by this method, it
|
| - // will drop out of *all* forward progress sync loops (it won't poll and it
|
| - // will queue up Talk notifications but not actually call SyncShare) until
|
| - // some external action causes a ServerConnectionManager to broadcast that
|
| - // a valid connection has been re-established.
|
| - if (HttpResponse::CONNECTION_UNAVAILABLE == code ||
|
| - HttpResponse::SYNC_AUTH_ERROR == code) {
|
| - server_connection_ok_ = false;
|
| - SDVLOG(2) << "Sync auth error or unavailable connection: "
|
| - << "server connection is down";
|
| - } else if (HttpResponse::SERVER_CONNECTION_OK == code) {
|
| - server_connection_ok_ = true;
|
| - SDVLOG(2) << "Sync server connection is ok: "
|
| - << "server connection is up, doing canary job";
|
| - DoCanaryJob();
|
| - }
|
| -
|
| - if (old_server_connection_ok != server_connection_ok_) {
|
| - const char* transition =
|
| - server_connection_ok_ ? "down -> up" : "up -> down";
|
| - SDVLOG(2) << "Server connection changed: " << transition;
|
| - }
|
| -}
|
| -
|
| void SyncScheduler::Start(Mode mode, const base::Closure& callback) {
|
| DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| std::string thread_name = MessageLoop::current()->thread_name();
|
| @@ -243,7 +210,6 @@ void SyncScheduler::Start(Mode mode, const base::Closure& callback) {
|
| << thread_name << " with mode " << GetModeString(mode);
|
| if (!started_) {
|
| started_ = true;
|
| - WatchConnectionManager();
|
| PostTask(FROM_HERE, "SendInitialSnapshot",
|
| base::Bind(&SyncScheduler::SendInitialSnapshot,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| @@ -264,16 +230,6 @@ void SyncScheduler::SendInitialSnapshot() {
|
| session_context_->NotifyListeners(event);
|
| }
|
|
|
| -void SyncScheduler::WatchConnectionManager() {
|
| - DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| - ServerConnectionManager* scm = session_context_->connection_manager();
|
| - PostTask(FROM_HERE, "CheckServerConnectionManagerStatus",
|
| - base::Bind(&SyncScheduler::CheckServerConnectionManagerStatus,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - scm->server_status()));
|
| - scm->AddListener(this);
|
| -}
|
| -
|
| void SyncScheduler::StartImpl(Mode mode, const base::Closure& callback) {
|
| DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| SDVLOG(2) << "In StartImpl with mode " << GetModeString(mode);
|
| @@ -358,10 +314,10 @@ SyncScheduler::JobProcessDecision SyncScheduler::DecideOnJob(
|
| return DROP;
|
| }
|
|
|
| - if (server_connection_ok_)
|
| + if (!session_context_->connection_manager()->HasInvalidAuthToken())
|
| return CONTINUE;
|
|
|
| - SDVLOG(2) << "Bad server connection. Using that to decide on job.";
|
| + SDVLOG(2) << "We have no valid auth token. Using that to decide on job.";
|
| return job.purpose == SyncSessionJob::NUDGE ? SAVE : DROP;
|
| }
|
|
|
| @@ -1016,7 +972,6 @@ void SyncScheduler::StopImpl(const base::Closure& callback) {
|
| wait_interval_.reset();
|
| poll_timer_.Stop();
|
| if (started_) {
|
| - session_context_->connection_manager()->RemoveListener(this);
|
| started_ = false;
|
| }
|
| if (!callback.is_null())
|
| @@ -1172,14 +1127,11 @@ void SyncScheduler::OnSyncProtocolError(
|
| OnActionableError(snapshot);
|
| }
|
|
|
| +void SyncScheduler::TryToConnect() {
|
| + if (wait_interval_.get() && wait_interval_->mode == WaitInterval::THROTTLED)
|
| + return;
|
|
|
| -void SyncScheduler::OnServerConnectionEvent(
|
| - const ServerConnectionEvent& event) {
|
| - DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| - PostTask(FROM_HERE, "CheckServerConnectionManagerStatus",
|
| - base::Bind(&SyncScheduler::CheckServerConnectionManagerStatus,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - event.connection_code));
|
| + DoCanaryJob();
|
| }
|
|
|
| void SyncScheduler::set_notifications_enabled(bool notifications_enabled) {
|
|
|