|
|
Fix handling of undeletion within the syncer.
Accomplished by:
(a) Plumbing the const CommitMessage into process_commit_response_command.cc, so that we can know the server state better (IS_DEL is no longer authoritative if !
which spilled over into a couple test expectations.
(b) Relaxing the enforced invariants that version==0 implied !ServerKnows, for items with client tags.
(c) Use ID renaming instead of delete/recreate to handle collisions on the unique tag.
(d) Upon deletion, version number goes to 0 so that the server knows to process the item as a recreate, if it gets undeleted. Previously, the server number would get synthesized on the client by incrementing the last known version number.
(e) Add unit tests for pretty much every ordering of delete/undelete I could come up with.
BUG= 46769
TEST=unit tests; repeatedly uninstalled/installed extensions
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=52209
Total comments: 28
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1061 lines, -262 lines) |
Patch |
 |
M |
chrome/browser/sync/engine/build_commit_command.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+17 lines, -12 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/conflict_resolver.cc
|
View
|
3
4
5
6
|
3 chunks |
+28 lines, -17 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/download_updates_command.cc
|
View
|
1
2
3
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/download_updates_command_unittest.cc
|
View
|
4
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/post_commit_message_command.cc
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/process_commit_response_command.h
|
View
|
1
2
3
|
1 chunk |
+43 lines, -8 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/process_commit_response_command.cc
|
View
|
1
2
3
4
5
6
7
|
6 chunks |
+182 lines, -70 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncer_proto_util.h
|
View
|
1
2
3
|
4 chunks |
+9 lines, -8 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncer_proto_util.cc
|
View
|
1
2
3
|
4 chunks |
+12 lines, -8 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncer_proto_util_unittest.cc
|
View
|
1
2
|
4 chunks |
+3 lines, -19 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncer_unittest.cc
|
View
|
1
2
3
4
5
6
|
14 chunks |
+589 lines, -43 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncer_util.cc
|
View
|
1
2
3
4
5
6
|
10 chunks |
+54 lines, -32 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/syncproto.h
|
View
|
1
2
3
4
5
|
2 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/engine/verify_updates_command.cc
|
View
|
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/sessions/status_controller.h
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/syncable/syncable.h
|
View
|
1
4
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/syncable/syncable.cc
|
View
|
1
3
4
|
2 chunks |
+20 lines, -8 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/syncable/syncable_id.h
|
View
|
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/sync/syncable/syncable_id.cc
|
View
|
|
1 chunk |
+0 lines, -6 lines |
0 comments
|
Download
|
 |
M |
chrome/test/sync/engine/mock_connection_manager.h
|
View
|
1
|
8 chunks |
+29 lines, -7 lines |
0 comments
|
Download
|
 |
M |
chrome/test/sync/engine/mock_connection_manager.cc
|
View
|
1
4
|
8 chunks |
+54 lines, -12 lines |
0 comments
|
Download
|
Total messages: 4 (0 generated)
|