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

Side by Side Diff: chrome/browser/sync/engine/syncer_proto_util.cc

Issue 7605021: Make the throttle delay configurable by the server. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR comments. Created 9 years, 4 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
« no previous file with comments | « chrome/browser/sync/engine/syncer_proto_util.h ('k') | chrome/browser/sync/protocol/sync.proto » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 base::TimeDelta SyncerProtoUtil::GetThrottleDelay(
187 const sync_pb::ClientToServerResponse& response) {
188 if (!response.has_client_command())
189 return base::TimeDelta::FromSeconds(kSyncDelayAfterThrottled);
190 const sync_pb::ClientCommand& command = response.client_command();
191 if (command.has_throttle_delay_seconds())
192 return base::TimeDelta::FromSeconds(command.throttle_delay_seconds());
193 else
194 return base::TimeDelta::FromSeconds(kSyncDelayAfterThrottled);
akalin 2011/08/10 19:48:14 i don't like repeating the constant twice. How ab
lipalani1 2011/08/10 20:38:58 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
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 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
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
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/syncer_proto_util.h ('k') | chrome/browser/sync/protocol/sync.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698