summaryrefslogtreecommitdiffstats
path: root/sync
Commit message (Collapse)AuthorAgeFilesLines
* [sync] Componentize sync: Part 2: Add SYNC_EXPORTs to files in src/sync/rsimha@chromium.org2012-12-1159-124/+188
| | | | | | | | | | | | | | | | | | | | | One of the long term goals of the sync team is to pull sync code out of chrome.dll and into its own component. As of today, several chrome targets depend on various sync targets as defined in sync.gyp. We'd like to move to a world where all chrome targets outside sync.gyp simply depend on the target sync.gyp:sync, which is built into its own component. This patch sets the stage for full componentization by adding SYNC_EXPORT annotations to classes / methods within src/sync. The final step of breaking off sync into its own component will be done in https://codereview.chromium.org/11412211. BUG=136928 Review URL: https://chromiumcodereview.appspot.com/11515009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172458 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Handle invalid specifics field numbers gracefullyakalin@chromium.org2012-12-115-14/+55
| | | | | | | | | | | | | Change GetModelTypeFromSpecificsFieldNumber() to not NOTREACHED() on an unknown field number. Instead, have callers compare the return value to UNSPECIFIED and handle that case. BUG=165171 Review URL: https://chromiumcodereview.appspot.com/11490018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172232 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add deleted_metas table to sync database. haitaol@chromium.org2012-12-104-4/+158
| | | | | | | | | | | | deleted_metas table will keep copies of deleted entries until we confirm that they are persisted in native models. BUG=121928 Review URL: https://chromiumcodereview.appspot.com/11416346 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172119 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] [chromeos] Get rid of dependencies on chrome/browser from within sync/rsimha@chromium.org2012-12-074-19/+75
| | | | | | | | | | | | | | | | | | | | | As of today, syncer::GetSessionNameSynchronously() utilizes code in chromeos::system::StatisticsProvider, which lives in chrome/browser/chromeos. This results in an ugly mutual dependency between sync.gyp:sync and chrome.gyp:browser. This hasn't been a huge problem so far because sync is built into browser. It will, however, be a problem once sync is pulled into its own component. This patch does the following: - Removes the dependency from sync/ onto chrome/browser. - Reimplements GetSessionNameSynchronously to use command line primitives. - Adds new CrOs-only unit tests to exercise this code. BUG=164726,126732,136928 TEST=GetSessionNameTest.*; Open a new tab on a Chromebook and Chromebox and make sure the title of the "Other devices" section looks right. Review URL: https://codereview.chromium.org/11473012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171683 0039d316-1c4b-4281-b951-d872f2087c98
* sync: add syncer::Experiment to control autofill culling.tim@chromium.org2012-12-063-2/+25
| | | | | | | | | | | | | | | | This changes the behavior in several ways, one being that the ultimate decision of whether or not to cull expired autofill entries is now made by sync servers. However, we only feed this data through at MergeDataAndStartSyncing time, meaning once per sync startup (typically browser startup). The next time autofill components will learn of any value change by sync servers is the next time Chrome starts (MergeDataAndStartSyncing is called again). BUG=28990 Review URL: https://chromiumcodereview.appspot.com/11418249 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171611 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add search_terms field to session_specifics.protomathp@chromium.org2012-12-062-0/+3
| | | | | | | | | | | Syncing the search terms that were extracted from a URL. BUG=159326,153477 Review URL: https://chromiumcodereview.appspot.com/11437022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171359 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Treat XMPP auth errors as sync auth errorsakalin@chromium.org2012-12-054-8/+59
| | | | | | | | | | | | | | | | Add controls for XMPP authentication to XMPP test server. Add integration test for XMPP auth errors. Add some DVLOGs to help debugging. BUG=38091 TEST= Review URL: https://chromiumcodereview.appspot.com/10703035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171172 0039d316-1c4b-4281-b951-d872f2087c98
* Implement features needed for local ack handling in InvalidationStateTracker.dcheng@chromium.org2012-12-0515-109/+360
| | | | | | | | | | | Adds the ability to save payloads in InvalidationStateTracker, and also adds the functionality to generate, track, and acknowledge local ack handles. BUG=124149 Review URL: https://codereview.chromium.org/11415049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171165 0039d316-1c4b-4281-b951-d872f2087c98
* Depend on stored sync session GUID for Android.nyquist@chromium.org2012-12-054-101/+4
| | | | | | | | | | | | | | | | | | This changes the Android port of Chrome to depend on the pref kSyncSessionsGUID to be set before the SessionModelAssociator is initialized. We now also force-removes any foreign sessions that are using the current client's GUID as a session tag. This also lead to the removal of the Android specific session utils. BUG=157419 Review URL: https://chromiumcodereview.appspot.com/11414013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171109 0039d316-1c4b-4281-b951-d872f2087c98
* Track merged nudge sourcesrlarocque@chromium.org2012-11-308-16/+92
| | | | | | | | | | | | | | | | | There's a lot of valuable information in coalesced nudges. Currently, one nudge source can overwrite another, which leaves us in the dark as to why the client behaved a certain way. In fact, today we can't even determine whether or not any coalescing was done. By logging all the coalesced sources and their payloads, we can learn a lot more about client behaviour. I'm hoping to use this to improve our notification effectiveness metrics. BUG=138613 Review URL: https://chromiumcodereview.appspot.com/11416126 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170549 0039d316-1c4b-4281-b951-d872f2087c98
* Sync the bookmark's icon URL.pkotwicz@chromium.org2012-11-303-0/+7
| | | | | | | | | BUG=160726 Test=TwoClientBookmarksSyncTest.* Review URL: https://chromiumcodereview.appspot.com/11428004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170326 0039d316-1c4b-4281-b951-d872f2087c98
* For iOS, exclude a unit test that crashes when coverage is turned on.lliabraa@chromium.org2012-11-291-2/+7
| | | | | | | | | BUG=156058 Review URL: https://chromiumcodereview.appspot.com/11412222 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170199 0039d316-1c4b-4281-b951-d872f2087c98
* Remove legacy GetURL(),SetURL(),GetFaviconBytes(),SetFaviconBytes()pkotwicz@chromium.org2012-11-285-51/+12
| | | | | | | | | Bug=None Test=TwoClientBookmarksSyncTest.SC_AddFirstBMWithFavicon Review URL: https://chromiumcodereview.appspot.com/11413153 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169972 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Move data_encryption_win.h into syncer namespace.tfarina@chromium.org2012-11-253-24/+18
| | | | | | | | | R=akalin@chromium.org TBR=dhollowa@chromium.org # for autofill Review URL: https://chromiumcodereview.appspot.com/11421047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169392 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Retry soon when server returns conflictrlarocque@chromium.org2012-11-215-17/+25
| | | | | | | | | | | | | | | | | | | | | | | When the server gives us a conflict response, we ought to fetch updates in order to figure out what the server is complaining about, resolve any conflicts locally, then re-commit. The current syncer, although not intentionally built to handle this scenario, does the right thing. It considers the server's return code to be indicative of a transient error, so it backs off then retries later. The retry sync cycle will fetch updates, resolve conflicts, and recommit, which is exactly what we want. Unfortunately, the backoff can take five minutes. This commit reduces the time spent unnecessarily backing off. It's not the cleanest solution, but its implementation is easy and safe. BUG=157955 Review URL: https://chromiumcodereview.appspot.com/11411041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169158 0039d316-1c4b-4281-b951-d872f2087c98
* Remove unregistered IDs from the invalidation state map cache.dcheng@chromium.org2012-11-216-3/+50
| | | | | | | | | BUG=161754 Review URL: https://chromiumcodereview.appspot.com/11316079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169113 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add debug info proto conversionzea@chromium.org2012-11-215-3/+99
| | | | | | | | | | | | This allows us to see the debug info we send up to the server as part of the traffic recorder's events. BUG=158576 Review URL: https://chromiumcodereview.appspot.com/11348144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169103 0039d316-1c4b-4281-b951-d872f2087c98
* [base] Move AutoReset to base namespace.dbeam@chromium.org2012-11-211-2/+2
| | | | | | | | | | | NOTRY=true R=darin@chromium.org BUG=None Review URL: https://chromiumcodereview.appspot.com/11308132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168978 0039d316-1c4b-4281-b951-d872f2087c98
* Sync: Add DeviceInfo's ChangeProcessorrlarocque@chromium.org2012-11-2116-32/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the long-awaited change to enable DeviceInfo tracking. Long ago (r161496) we committed code to support the DeviceInfo type, but we had to leave this code disabled until the server was ready to support the new type. That support has now been added. This change includes a very special kind of ChangeProcessor named SyncedDeviceTracker. It is the only ChangeProcessor that is owned by the sync thread. The SyncBackendHost creates and initializes it during backend intialization and deletes it before the UserShare it references is destroyed. As part of its initialization, the SyncedDeviceTracker will update the DeviceInfo entry for the current device. The SyncedDeviceTracker could support sending notifications to any interested listeners when new or update DeviceInfo information arrives, but this functionality has not been implemented yet. Also included are: - Tests for the SyncedDeviceTracker - A MockTransactionObserver to support these tests - A cache_guid() accessor on the SyncManager, used to initialize the SyncedDeviceTracker - Remove support for default constructing a DeviceInfo object BUG=122825 Review URL: https://chromiumcodereview.appspot.com/11360259 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168972 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Have MergeDataAndStartSyncing return a SyncMergeResultzea@chromium.org2012-11-175-10/+13
| | | | | | | | | | | | This will allow us to track merge statistics for datatypes. For now none of the datatypes fill the SyncMergeResult with anything other than an error. BUG=158576 TBR=stevet@chromium.org Review URL: https://chromiumcodereview.appspot.com/11365241 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168446 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Re-enable experiments datatypezea@chromium.org2012-11-172-6/+3
| | | | | | | | | | | It was disabled while a server bug was fixed. The fix has now rolled out. BUG=None Review URL: https://chromiumcodereview.appspot.com/11412057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168431 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_temp_dir from base to base/filesbrettw@chromium.org2012-11-164-13/+13
| | | | | | | | | | Also add to base namespace. BUG= Review URL: https://codereview.chromium.org/11359217 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168281 0039d316-1c4b-4281-b951-d872f2087c98
* Added directory entry counters to about:syncvishwath@google.com2012-11-1510-10/+91
| | | | | | | | | | | | | | Added counters that show the following information on a per ModelType basis - Total Entries Live Entries The information is propagated via TakeSnapshot(). BUG=151669 Review URL: https://chromiumcodereview.appspot.com/10993030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168001 0039d316-1c4b-4281-b951-d872f2087c98
* Remove various DoNothing functions in favor of base::DoNothingakalin@chromium.org2012-11-152-11/+4
| | | | | | | | | BUG= TBR=yoz@chromium.org,rkc@chromium.org,sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/11361269 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167876 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Track sync merge results during bookmark associationzea@chromium.org2012-11-154-1/+110
| | | | | | | | | | | | | | | | This also introduces a new GetTotalNodeCount method in BaseNode, which will be useful when adding merge results for other types. In general, bookmark model association never modifies a sync bookmark, never deletes local or sync bookmarks, and always modifies any pre-existing local bookmark that has a corresponding sync bookmark. BUG=158576 Review URL: https://chromiumcodereview.appspot.com/11377090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167831 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for remotely enabling keystore encryptionzea@chromium.org2012-11-152-5/+23
| | | | | | | | | | | | | We hook up logic to the keystore_encryption experiment to enable the keystore encryption logic. Once the experiment is received, on the next client restart sync will start using the keystore encryption logic. BUG=129665 Review URL: https://chromiumcodereview.appspot.com/11266045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167829 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Update calls from RunAllPending() to RunUntilIdle().tfarina@chromium.org2012-11-1413-21/+21
| | | | | | | | | | | | RunAllPending() is deprecated and we should switch to RunUntilIdle(). BUG=131220 TBR=akalin@chromium.org Review URL: https://chromiumcodereview.appspot.com/11275305 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167651 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Update ChipBag protozea@chromium.org2012-11-141-2/+17
| | | | | | | | | | | Add an optional bytes server_chips field to represent the opaque server data. BUG=None Review URL: https://chromiumcodereview.appspot.com/11361234 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167586 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Componentize sync: Part 1: Clean up sync.gyp and update chrome / test ↵rsimha@chromium.org2012-11-141-126/+160
| | | | | | | | | | | | | | | | | | | | | | | | dependencies One of the long term goals of the sync team is to pull sync code out of chrome.dll and into its own component. As of today, several chrome tests depend on various sync targets as defined in sync.gyp. This is the first in a series of CLs to achieve the above goal. This patch does the following: - Renames / reorganizes several of the targets in sync.gyp - Updates the declarations in various chrome gyp files by depending on the smallest sync target possible to reflect the actual dependency. - Takes a step closer toward the ideal IWYU guideline. TBR=erikwright@chromium.org BUG=136928 TEST=all chrome targets build on all platforms; all tests pass. Review URL: https://chromiumcodereview.appspot.com/11348052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167558 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Disable experiments datatype temporarilyzea@chromium.org2012-11-142-3/+6
| | | | | | | | | | | A server bug currently means enabling this datatype results in unrecoverable errors. Disable it temporarily. BUG=None Review URL: https://codereview.chromium.org/11366231 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167530 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add datatype controller support for tracking association statszea@chromium.org2012-11-144-1/+231
| | | | | | | | | | | | | | | | | | | | | | SyncMergeResult is a new class that allows datatypes and sync itself to record association information for later use by the debug info listener. We introduce the class and add some plumbing at the DTC level to pass these on to the model association manager (and from there to the debug listener). Similarly, to track syncer changes, we pass a SyncMergeResult weak pointer to the SharedChangeProcessor, which while it's valid will increment the deltas as changes arrive (in a future patch). The weak pointer is invalidated at the end of association by the DTC. To simplify the DTC plumbing of merge results, StartFailed has been merged into StartDone. Additionally, removed some old logging code attempting to identify which datatype was being Stopped that isn't necessary anymore. BUG=158576 Review URL: https://chromiumcodereview.appspot.com/11401002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167528 0039d316-1c4b-4281-b951-d872f2087c98
* Bring up minimal sync and sync unittest targets on iOS.blundell@chromium.org2012-11-134-2/+65
| | | | | | | | | | | | The sync implementation is not yet complete (e.g., there is not yet an invalidator_factory implementation on iOS), but enough of the structure is in place to allow for the sync target to build and a reduced set of unittests to run successfully. Review URL: https://chromiumcodereview.appspot.com/11360194 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167485 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add application logic for non-nigori control types (reland)zea@chromium.org2012-11-138-58/+205
| | | | | | | | | | | | Relanding after revert. Original codereview at https://chromiumcodereview.appspot.com/11271009/. BUG=122825 TBR=rlarcoque@chromium.org, akalin@chromium.org Review URL: https://codereview.chromium.org/11361242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167466 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 167337 - Move url_request_test_util into net namespacejochen@chromium.org2012-11-135-15/+16
| | | | | | | | | | | | | | | This file contains some rather generic names like "TestDelegate". Move it to the net namespace to avoid collisions BUG=none TBR=wtc@chromium.org,darin@chromium.org Original Review URL: https://codereview.chromium.org/11369179 Review URL: https://chromiumcodereview.appspot.com/11365227 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167413 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 167337 - Move url_request_test_util into net namespacejochen@chromium.org2012-11-135-16/+15
| | | | | | | | | | | | | | | This file contains some rather generic names like "TestDelegate". Move it to the net namespace to avoid collisions BUG=none TBR=darin@chromium.org Review URL: https://codereview.chromium.org/11369179 TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/11410066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167356 0039d316-1c4b-4281-b951-d872f2087c98
* Move url_request_test_util into net namespacejochen@chromium.org2012-11-135-15/+16
| | | | | | | | | | | | This file contains some rather generic names like "TestDelegate". Move it to the net namespace to avoid collisions BUG=none TBR=darin@chromium.org Review URL: https://codereview.chromium.org/11369179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167337 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 167280 - [Sync] Add application logic for non-nigori control types.zea@chromium.org2012-11-138-204/+58
| | | | | | | | | | | | | | | | | | | | | We introduce logic to apply non-nigori control types. First, we iterate over any new top level datatype entities, applying those. Then we go through the rest of the unapplied control datatype updates, applying those. Any conflict should be just a simple conflict, which we handle by ignoring the local changes. Also updates chromiumsync.py to support the new control types (and fixes the parent folder pattern that was in use). BUG=122825 Review URL: https://chromiumcodereview.appspot.com/11271009 TBR=zea@chromium.org Review URL: https://codereview.chromium.org/11359175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167282 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add application logic for non-nigori control types.zea@chromium.org2012-11-138-58/+204
| | | | | | | | | | | | | | | | | | We introduce logic to apply non-nigori control types. First, we iterate over any new top level datatype entities, applying those. Then we go through the rest of the unapplied control datatype updates, applying those. Any conflict should be just a simple conflict, which we handle by ignoring the local changes. Also updates chromiumsync.py to support the new control types (and fixes the parent folder pattern that was in use). BUG=122825 Review URL: https://chromiumcodereview.appspot.com/11271009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167280 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Linux: change protobuf default option to allow building"nyquist@chromium.org2012-11-1224-0/+72
| | | | | | | | | | | | | | | | | This reverts commit baefae90f294a981c973bffbdd3eccabfe796b6a. The change broke Chrome for Android because non-vanilla protobuf-lite Java files were generated. Original review: https://codereview.chromium.org/11228038/ TBR=phajdan.jr BUG=160256 Review URL: https://codereview.chromium.org/11359146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167242 0039d316-1c4b-4281-b951-d872f2087c98
* Populate versions on individual nodes in sync model and native bookmark model.haitaol@chromium.org2012-11-1017-73/+318
| | | | | | | | | | | | | | | | Update transaction versions of changed sync models and entries in syncable::WriteTransaction after change delegate calculates changes and returns handles of changed entries. For syncer changes, updated version is passed to change processor and set on native model and nodes. For sync API changes, model processor queries for new version and set on native model and nodes after write transaction closes. BUG=154858 Review URL: https://chromiumcodereview.appspot.com/11341048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167061 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a class to manage backoff timers for local invalidation reminders.dcheng@chromium.org2012-11-095-0/+695
| | | | | | | | | BUG=124149 Review URL: https://chromiumcodereview.appspot.com/11298002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166854 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Introduce DataTypeDebugListener and add plumbing to the DataTypeManagerzea@chromium.org2012-11-0814-16/+213
| | | | | | | | | | | | | | | | The DataTypeDebugListener is an interface that allows glue components to pass sync debug info to the sync debug event listener, which lives in the sync internals on the sync thread. To do this we pass a WeakHandle at initialization time all the way through to the PSS, which then uses it to create the DataTypeManager. Follow up patches will plumb DTC results to the DataTypeDebugListener. BUG=158576 Review URL: https://chromiumcodereview.appspot.com/11365116 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166616 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: change protobuf default option to allow buildingphajdan.jr@chromium.org2012-11-0724-72/+0
| | | | | | | | | | | | | | | | | | with unpatched system protobuf. This is a preparation for landing https://codereview.chromium.org/11231046/ and a solution chosen because our custom protobuf changes will not be accepted upstream. Setting defaults to optimize for lite runtime and retain unknown fields makes it possible to use the same .proto files with system protobuf. BUG=157155 TEST=none Review URL: https://codereview.chromium.org/11228038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166534 0039d316-1c4b-4281-b951-d872f2087c98
* Provide mutable members of UrlRequestContext via pure-virtual interface. ↵pauljensen@chromium.org2012-11-072-13/+10
| | | | | | | | | | Create a pure-virtual interface called HttpUserAgentSettings that provides access to the Accept-Language, Accept-Charset, and User-Agent HTTP headers. Each UrlRequestContext should have a HttpUserAgentSettings implementation attached via set_http_user_agent_settings(). BUG=146596 Review URL: https://chromiumcodereview.appspot.com/10918279 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166425 0039d316-1c4b-4281-b951-d872f2087c98
* sync: fix for bug 158313, which is a top crash on canary.tim@chromium.org2012-11-063-0/+43
| | | | | | | | | | | | | | | | If a nudge is scheduled after a connection change canary, an abandoned job may wind up in DoCanaryJob. Since the job knows by design if it's in this state, this patch adds a defensive check in DoCanaryJob to check (similar to the one in DoSyncSessionJob). We should be able to remove the CreateSyncSession code that actually tries to use the job before calling DoSyncSessionJob, though. BUG=158313 Review URL: https://chromiumcodereview.appspot.com/11366079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166215 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add datatype association stats to client debug info proto.zea@chromium.org2012-11-064-19/+52
| | | | | | | | | | | | We now track when datatypes associate, which datatypes associate, and what the association results are. BUG=158576 Review URL: https://chromiumcodereview.appspot.com/11359067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166152 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Upstream Android connection observer for sync.nyquist@chromium.org2012-11-052-20/+37
| | | | | | | | | | | | | Android has framework support for online state changes. This pings adds support in sync to receive such notifications. BUG=139259, 106034 TEST=Verify that online state change detection works on Android builds. Review URL: https://chromiumcodereview.appspot.com/10829050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165992 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Follow-up to conflict resolution refactorrlarocque@chromium.org2012-11-0135-427/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is part two of r164286. That commit refactored the way we handle conflict resolution. This commit takes advantage of those changes to delete lots of code. Because this change deletes session_state.cc, I decided to move the two remaining useful tests session_state_unittest.cc into their own files, sync_session_snapshot_unittest.cc and sync_source_info_unittest.cc. The tests were not modified in any way. None of these changes should have any effect on syncer behaviour: - We can remove the simple conflict counters and related code, since we now assert that all conflicts will be resolved by the end of a successful sync cycle. - We can remove the PerModelSafeGroupState because that struct no longer has any members. - The 'conflicts_resolved' indicators are no longer set, so we can remove them. - Without those indicators, it's no longer possible to have any SYNC_CYCLE_CONTINUATION sync cycles. We can remove a few counters associated with them, as well as the 'has_more_to_sync' flag in the snapshot. - Without SYNC_CYCLE_CONTINUATION cycles, there's no longer any need for code that loops around SyncShare() in SyncSchedulerImpl. The SyncSession::PrepareForAnotherSyncCycle() function is no longer used, either. - The ScopedConflictResolver installed on the session during a sync cycle is no longer used, so all the code related to it can be deleted. BUG=147681,111280,156238 Review URL: https://chromiumcodereview.appspot.com/11314008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165474 0039d316-1c4b-4281-b951-d872f2087c98
* sync: add kInitialBackoffImmediateRetry tim@chromium.org2012-11-015-11/+19
| | | | | | | | | | | | | | | | | | | | | | The primary impact this has is speeding up some integration tests by ~ 50%. In particular it lets us re-enable MigrationHell, which is currently disabled as it takes too long for sharding_supervisor. Rationale is discussed in the bug, I believe this is safe for the class of errors we target with the immediate delay, because we don't need backoff. (Note that when used with GetDelay, this still results in a 1s minimum backoff.) kInitialBackoffShortRetry is still used if the command line flag is passed (and in integration tests) to change the default initial backoff from 5 minutes to 1s (as it used to be). BUG=143641 Review URL: https://chromiumcodereview.appspot.com/11183073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165312 0039d316-1c4b-4281-b951-d872f2087c98
* sync: reland scheduler ownership refactoring, now with less crashtim@chromium.org2012-10-3023-567/+1126
| | | | | | | | | | | | | Prevent abandoned jobs from entering DoCanaryJob by stopping the timer in TakePendingJobForCurrentMode. Original review at https://codereview.chromium.org/10917234/ BUG=158313 Review URL: https://chromiumcodereview.appspot.com/11341030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164992 0039d316-1c4b-4281-b951-d872f2087c98