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 |