Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/engine/syncer_proto_util.h" | 5 #include "chrome/browser/sync/engine/syncer_proto_util.h" |
| 6 | 6 |
| 7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "chrome/browser/sync/engine/net/server_connection_manager.h" | 9 #include "chrome/browser/sync/engine/net/server_connection_manager.h" |
| 10 #include "chrome/browser/sync/engine/syncer.h" | 10 #include "chrome/browser/sync/engine/syncer.h" |
| 11 #include "chrome/browser/sync/engine/syncer_types.h" | 11 #include "chrome/browser/sync/engine/syncer_types.h" |
| 12 #include "chrome/browser/sync/engine/syncer_util.h" | 12 #include "chrome/browser/sync/engine/syncer_util.h" |
| 13 #include "chrome/browser/sync/protocol/service_constants.h" | 13 #include "chrome/browser/sync/protocol/service_constants.h" |
| 14 #include "chrome/browser/sync/protocol/sync.pb.h" | |
| 14 #include "chrome/browser/sync/sessions/sync_session.h" | 15 #include "chrome/browser/sync/sessions/sync_session.h" |
| 15 #include "chrome/browser/sync/syncable/directory_manager.h" | 16 #include "chrome/browser/sync/syncable/directory_manager.h" |
| 16 #include "chrome/browser/sync/syncable/model_type.h" | 17 #include "chrome/browser/sync/syncable/model_type.h" |
| 17 #include "chrome/browser/sync/syncable/syncable-inl.h" | 18 #include "chrome/browser/sync/syncable/syncable-inl.h" |
| 18 #include "chrome/browser/sync/syncable/syncable.h" | 19 #include "chrome/browser/sync/syncable/syncable.h" |
| 19 | 20 |
| 20 using std::string; | 21 using std::string; |
| 21 using std::stringstream; | 22 using std::stringstream; |
| 22 using syncable::BASE_VERSION; | 23 using syncable::BASE_VERSION; |
| 23 using syncable::CTIME; | 24 using syncable::CTIME; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 http_response.server_status = HttpResponse::SYNC_AUTH_ERROR; | 176 http_response.server_status = HttpResponse::SYNC_AUTH_ERROR; |
| 176 return false; | 177 return false; |
| 177 default: | 178 default: |
| 178 return true; | 179 return true; |
| 179 } | 180 } |
| 180 } | 181 } |
| 181 | 182 |
| 182 return false; | 183 return false; |
| 183 } | 184 } |
| 184 | 185 |
| 186 int SyncerProtoUtil::GetThrottleDelay( | |
| 187 const sync_pb::ClientToServerResponse& response) { | |
| 188 if (!response.has_client_command()) | |
| 189 return kSyncDelayAfterThrottled; | |
| 190 const sync_pb::ClientCommand& command = response.client_command(); | |
| 191 if (command.has_throttle_delay()) | |
| 192 return command.throttle_delay(); | |
|
akalin
2011/08/10 01:24:36
use TimeDelta::FromSeconds()
lipalani1
2011/08/10 19:04:05
Done.
| |
| 193 else | |
| 194 return kSyncDelayAfterThrottled; | |
|
akalin
2011/08/10 01:24:36
here, too
lipalani1
2011/08/10 19:04:05
Done.
| |
| 195 } | |
| 196 | |
| 185 namespace { | 197 namespace { |
| 186 | 198 |
| 187 // Helper function for an assertion in PostClientToServerMessage. | 199 // Helper function for an assertion in PostClientToServerMessage. |
| 188 bool IsVeryFirstGetUpdates(const ClientToServerMessage& message) { | 200 bool IsVeryFirstGetUpdates(const ClientToServerMessage& message) { |
| 189 if (!message.has_get_updates()) | 201 if (!message.has_get_updates()) |
| 190 return false; | 202 return false; |
| 191 DCHECK_LT(0, message.get_updates().from_progress_marker_size()); | 203 DCHECK_LT(0, message.get_updates().from_progress_marker_size()); |
| 192 for (int i = 0; i < message.get_updates().from_progress_marker_size(); ++i) { | 204 for (int i = 0; i < message.get_updates().from_progress_marker_size(); ++i) { |
| 193 if (!message.get_updates().from_progress_marker(i).token().empty()) | 205 if (!message.get_updates().from_progress_marker(i).token().empty()) |
| 194 return false; | 206 return false; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 229 case ClientToServerResponse::UNKNOWN: | 241 case ClientToServerResponse::UNKNOWN: |
| 230 LOG(WARNING) << "Sync protocol out-of-date. The server is using a more " | 242 LOG(WARNING) << "Sync protocol out-of-date. The server is using a more " |
| 231 << "recent version."; | 243 << "recent version."; |
| 232 return false; | 244 return false; |
| 233 case ClientToServerResponse::SUCCESS: | 245 case ClientToServerResponse::SUCCESS: |
| 234 LogResponseProfilingData(*response); | 246 LogResponseProfilingData(*response); |
| 235 return true; | 247 return true; |
| 236 case ClientToServerResponse::THROTTLED: | 248 case ClientToServerResponse::THROTTLED: |
| 237 LOG(WARNING) << "Client silenced by server."; | 249 LOG(WARNING) << "Client silenced by server."; |
| 238 session->delegate()->OnSilencedUntil(base::TimeTicks::Now() + | 250 session->delegate()->OnSilencedUntil(base::TimeTicks::Now() + |
| 239 base::TimeDelta::FromSeconds(kSyncDelayAfterThrottled)); | 251 base::TimeDelta::FromSeconds(GetThrottleDelay(*response))); |
| 240 return false; | 252 return false; |
| 241 case ClientToServerResponse::TRANSIENT_ERROR: | 253 case ClientToServerResponse::TRANSIENT_ERROR: |
| 242 return false; | 254 return false; |
| 243 case ClientToServerResponse::MIGRATION_DONE: | 255 case ClientToServerResponse::MIGRATION_DONE: |
| 244 HandleMigrationDoneResponse(response, session); | 256 HandleMigrationDoneResponse(response, session); |
| 245 return false; | 257 return false; |
| 246 case ClientToServerResponse::USER_NOT_ACTIVATED: | 258 case ClientToServerResponse::USER_NOT_ACTIVATED: |
| 247 case ClientToServerResponse::AUTH_INVALID: | 259 case ClientToServerResponse::AUTH_INVALID: |
| 248 case ClientToServerResponse::ACCESS_DENIED: | 260 case ClientToServerResponse::ACCESS_DENIED: |
| 249 // WARNING: PostAndProcessHeaders contains a hack for this case. | 261 // WARNING: PostAndProcessHeaders contains a hack for this case. |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 375 std::string SyncerProtoUtil::ClientToServerResponseDebugString( | 387 std::string SyncerProtoUtil::ClientToServerResponseDebugString( |
| 376 const sync_pb::ClientToServerResponse& response) { | 388 const sync_pb::ClientToServerResponse& response) { |
| 377 // Add more handlers as needed. | 389 // Add more handlers as needed. |
| 378 std::string output; | 390 std::string output; |
| 379 if (response.has_get_updates()) | 391 if (response.has_get_updates()) |
| 380 output.append(GetUpdatesResponseString(response.get_updates())); | 392 output.append(GetUpdatesResponseString(response.get_updates())); |
| 381 return output; | 393 return output; |
| 382 } | 394 } |
| 383 | 395 |
| 384 } // namespace browser_sync | 396 } // namespace browser_sync |
| OLD | NEW |