summaryrefslogtreecommitdiffstats
path: root/sync
Commit message (Collapse)AuthorAgeFilesLines
* Use delete journal to remove bookmarks that are already deleted in sync modelhaitaol@chromium.org2013-01-2210-20/+175
| | | | | | | | | | | | | before assocating bookmark model and sync model. BUG=121928 Review URL: https://chromiumcodereview.appspot.com/11533008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178157 0039d316-1c4b-4281-b951-d872f2087c98
* sync: rearrange calls to avoid unnecessary CHECKing tim@chromium.org2013-01-221-2/+2
| | | | | | | | | BUG=165561 Review URL: https://chromiumcodereview.appspot.com/11929033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177979 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Divorce python sync test server chromiumsync.py from testserver.pyrsimha@chromium.org2013-01-2012-1/+3799
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various chrome test suites use the infrastructure in net::LocalTestServer and net/tools/testserver.py to create local test server instances against which to run automated tests. Sync tests use reference implementations of sync and xmpp servers, which build on the testserver infrastructure in net/. In the past, the sync testserver was small enough that it made sense for it to be a part of the testserver in net/. This, however, resulted in an unwanted dependency from net/ onto sync/, due to the sync proto modules needed to run a python sync server. Now that the sync testserver has grown considerably in scope, it is time to separate it out from net/ while reusing base testserver code, and eliminate the dependency from net/ onto sync/. This work also provides us with the opportunity to remove a whole bunch of dead pyauto sync test code in chrome/test/functional. This patch does the following: - Moves the native class LocalSyncTestServer from net/test/ to sync/test/. - Moves chromiumsync{_test}.py and xmppserver{_test}.py from net/tools/testserver/ to sync/tools/testserver/. - Removes all sync server specific code from net/. - Adds a new sync_testserver.py runner script for the python sync test. - Moves some base classes from testserver.py to testserver_base.py so they can be reused by sync_testserver.py. - Audits all the python imports in testserver.py, testserver_base.py and sync_testserver.py to make sure there are no unnecessary / missing imports. - Adds a new run_sync_testserver runner executable to launch a sync testserver. - Removes a couple of static methods from LocalTestServer, that were being used by run_testserver, and refactors run_sync_testserver to use their non-static versions. - Adds the ability to run both chromiumsync_test.py and xmppserver_test.py from run_sync_testserver. - Fixes chromiumsync.py to undo / rectify some older changes that broke tests in chromiumsync_test.py. - Adds a new test target called test_support_sync_testserver to sync.gyp. - Removes the hacky dependency on sync_proto from net.gyp:net_test_support. - Updates various gyp files across chrome to use the new sync testserver target. - Audits dependencies of net_test_support, run_testserver, and the newly added targets. - Fixes the android chrome testserver spawner script to account for the above changes. - Removes all mentions of TYPE_SYNC from the pyauto TestServer shim. - Deletes all (deprecated) pyauto sync tests. (They had all become broken over time, gotten disabled, and were all redundant due to their equivalent sync integration tests.) - Removes all sync related pyauto hooks from TestingAutomationProvider, since they are no longer going to be used. - Takes care of a TODO in safe_browser_testserver.py to remove an unnecessary code block. Note: A majority of the bugs listed below are for individual pyauto sync tests. Deleting the sync pyauto test script fixes all these bugs in one fell swoop. TBR=mattm@chromium.org BUG=117559, 119403, 159731, 15016, 80329, 49378, 87642, 86949, 88679, 104227, 88593, 124913 TEST=run_testserver, run_sync_testserver, sync_integration_tests, sync_performance_tests. All chrome tests that use a testserver should continue to work. Review URL: https://codereview.chromium.org/11971025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177864 0039d316-1c4b-4281-b951-d872f2087c98
* Add an invalidation preferences wrapper.dsmyers@chromium.org2013-01-195-11/+281
| | | | | | | | | | | | | Adds an InvalidationPreferences class that manages the preferences used by the sync code to store data, such as the sync types on which notifications should be received. BUG=159221 Review URL: https://chromiumcodereview.appspot.com/11969049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177835 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for denoting which sessions types are enabledzea@chromium.org2013-01-185-0/+42
| | | | | | | | | | | | | We do this by sending the set of enabled types (those in the routing info) at commit time via a new ClientConfigParams message. BUG=170162 R=tim@chromium.org Review URL: https://chromiumcodereview.appspot.com/11935002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177775 0039d316-1c4b-4281-b951-d872f2087c98
* Roll cacheinvalidation forward to @261.ghc@google.com2013-01-181-1/+1
| | | | | | | | | | | Changes there are mostly refactorings, with some minor changes around when the client sends presence heartbeats after coming online. Review URL: https://chromiumcodereview.appspot.com/11993005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177657 0039d316-1c4b-4281-b951-d872f2087c98
* sync: second attempt at 176732 that covers all pending_nudge_ assignments.tim@chromium.org2013-01-152-8/+15
| | | | | | | | BUG=165561 Review URL: https://codereview.chromium.org/11882048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177011 0039d316-1c4b-4281-b951-d872f2087c98
* sync: add a CHECK to shed light on bug 165561.tim@chromium.org2013-01-144-3/+35
| | | | | | | | | | | | If a SyncSessionJob is destroyed and the scheduler still references it, CHECK-fail. This the crash described in 165561 is happening on canary, this should help explain what's going on. BUG=165561 Review URL: https://codereview.chromium.org/11887013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176732 0039d316-1c4b-4281-b951-d872f2087c98
* reland: sync: Initialize entries with a model typerlarocque@chromium.org2013-01-1213-399/+394
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change modifies two important sync functions. The first is MutableEntry's CREATE constructor. It now requires that the ModelType of the entry to be specified when the entry is create. This doesn't quite eliminate the existence of nodes without a valid model type (the CREATE_NEW_UPDATE_ITEM can still make them), but it helps. This paves the way for the upcoming UniquePosition change. Part of that change is that bookmarks must be granted a unique tag on creation. To support this, we must know at creation time the type of a new entry, so we can take the appropriate bookmark-specific steps if necessary. The second function to get a new signature is WriteNode's InitByCreation(), which has been renamed to WriteNode::InitBookmarkByCreation(). The function can only be used to create bookmarks, so the new name describes its function more precisely. Updates to the call-sites of MutableEntry's constructor make up the majority of this change. This change also includes some minor updates to test functions that create entries to make them compatible with the stricter assertions or to make them more closely reflect real world behaviour. NOTE: The previous version of this patch misused DCHECK() so it did not function correctly in release mode. This has since been fixed. BUG=145412,126505 Review URL: https://chromiumcodereview.appspot.com/11861017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176575 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Add java InvalidationController for Android.nyquist@chromium.org2013-01-125-0/+413
| | | | | | | | | | | | | | | | | | | * Adds InvalidationController to facilitate the move to the new invalidation client, but still supporting the old way. * Sets up the chromium test shell to be able to run the new tests for sync. * Upstreaming a few base test utilities for MockContext and SharedPreferences. InvalidationController and InvalidationControllerTest provided by dsmyers@chromium.org. BUG=159221 Review URL: https://chromiumcodereview.appspot.com/11778084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176533 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Represent UniquePositions as a protobufrlarocque@chromium.org2013-01-127-29/+88
| | | | | | | | | | | | | | | | | Although this has little practical effect right now, it gives us the flexibility to convert to more complex protobuf representations in the future. The reuse of an existing protobuf field would normally be a very bad idea, but we're fairly certain that no one has actually made use of the old definition and that we can clean up all references to it. BUG=145412 Review URL: https://chromiumcodereview.appspot.com/11825017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176507 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 176340joaodasilva@chromium.org2013-01-1113-393/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > sync: Initialize entries with a valid model type > > This change modifies two important sync functions. > > The first is MutableEntry's CREATE constructor. It now requires that > the ModelType of the entry to be specified when the entry is create. > This doesn't quite eliminate the existence of nodes without a valid > model type (the CREATE_NEW_UPDATE_ITEM can still make them), but it > helps. > > This paves the way for the upcoming UniquePosition change. Part of that > change is that bookmarks must be granted a unique tag on creation. To > support this, we must know at creation time the type of a new entry, so > we can take the appropriate bookmark-specific steps if necessary. > > The second function to get a new signature is WriteNode's > InitByCreation(), which has been renamed to > WriteNode::InitBookmarkByCreation(). The function can only be used to > create bookmarks, so the new name describes its function more precisely. > > Updates to the call-sites of MutableEntry's constructor make up the > majority of this change. This change also includes some minor updates > to test functions that create entries to make them compatible with the > stricter assertions or to make them more closely reflect real world > behaviour. > > BUG=145412,126505 > > > Review URL: https://chromiumcodereview.appspot.com/11817010 TBR=rlarocque@chromium.org Review URL: https://codereview.chromium.org/11863011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176352 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Initialize entries with a valid model typerlarocque@chromium.org2013-01-1113-401/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change modifies two important sync functions. The first is MutableEntry's CREATE constructor. It now requires that the ModelType of the entry to be specified when the entry is create. This doesn't quite eliminate the existence of nodes without a valid model type (the CREATE_NEW_UPDATE_ITEM can still make them), but it helps. This paves the way for the upcoming UniquePosition change. Part of that change is that bookmarks must be granted a unique tag on creation. To support this, we must know at creation time the type of a new entry, so we can take the appropriate bookmark-specific steps if necessary. The second function to get a new signature is WriteNode's InitByCreation(), which has been renamed to WriteNode::InitBookmarkByCreation(). The function can only be used to create bookmarks, so the new name describes its function more precisely. Updates to the call-sites of MutableEntry's constructor make up the majority of this change. This change also includes some minor updates to test functions that create entries to make them compatible with the stricter assertions or to make them more closely reflect real world behaviour. BUG=145412,126505 Review URL: https://chromiumcodereview.appspot.com/11817010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176340 0039d316-1c4b-4281-b951-d872f2087c98
* sync: speculative fix for bug 165561tim@chromium.org2013-01-101-0/+9
| | | | | | | | | | | | | | | | | The SyncManager will stop the scheduler as part of StopSyncingForShutdown, which happens well before things like the invalidator are torn down / told to stop interacting with the scheduler. As such, we can wind up scheduling nudges on a lame duck scheduler. Some of the stacks associated with 165561 clearly show browser shutdown happening on the UI thread and OnIncomingInvalidation happening on the sync thread, which will crash on a second invocation as pending_nudge will be set to a job that is dropped by ScheduleSyncSessionJob. BUG=165561 Review URL: https://chromiumcodereview.appspot.com/11827013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175945 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Add PriorityPreference protobuf and supporting code.albertb@chromium.org2013-01-0914-3/+101
| | | | | | | | BUG=168648 Review URL: https://chromiumcodereview.appspot.com/11734009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175874 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Start moving away from PREV_ID and NEXT_IDrlarocque@chromium.org2013-01-0814-38/+46
| | | | | | | | | | | | | | | | | This change replaces serveral instances of Get(PREV_ID) and Get(NEXT_ID) with calls to the newly introduced GetPredecessorId() and GetSuccessorId(). This is done in anticipation of the change that will remove PREV_ID and NEXT_ID entirely. By making this change in advance, that patch will be smaller and easier to review. BUG=145412,126505 Review URL: https://chromiumcodereview.appspot.com/11637053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175599 0039d316-1c4b-4281-b951-d872f2087c98
* Initial UniquePositions implementationrlarocque@chromium.org2013-01-084-3/+953
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduces a new class that represents an item's position within an arbitrarily ordered list. It's currently biased towards bookmarks, but it could be made more generic if there was a need for it. This class supports inserting before, after, or between other UniquePosition items. It never runs out of position values, though it can use up unbounded space in the worst case. In addition to the basics mentioned above, it also has support for other functions that are particularly useful for bookmark sync. The positions are serializable and de-serializable, for storage and transimission. They also support conversion to and from int64 values, allowing them to operate with old-style positions. The class is not currently used anywhere. This commit includes only its implementation and some tests. BUG=145412 Review URL: https://chromiumcodereview.appspot.com/11569045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175462 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for loading, updating and querying delete journals in haitaol@chromium.org2013-01-0521-98/+603
| | | | | | | | | | | | | | | | | | | Directory. Delete journals keeps deleted metas until the persistence of the deletes in native model is confirmed. When an entry is deleted in sync model, a copy is added to delete journals in memory and saved in database later. Next time when the client restarts, if some native data doesn't match with sync data but matches with a delete journal, it's safe to assume that it's because native delete was not persisted and the native data should be deleted. This helps prevent back-from-dead problem due to native model and sync model get out-of-sync. BUG=121928 Review URL: https://chromiumcodereview.appspot.com/11441026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175248 0039d316-1c4b-4281-b951-d872f2087c98
* Add search_terms_replacement_key field to TemplateURL.beaudoin@chromium.org2013-01-032-0/+4
| | | | | | | | | | | This CL is the first step in removing the hardcoded "espv" parameter used by instant-extended to detect when to perform search term replacement in the omnibox. The search_terms_replacement_key has beed added to prepopulated_engines, TemplateURL, policy, web_database, prefs, and sync. BUG=161602 Review URL: https://chromiumcodereview.appspot.com/11552020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175014 0039d316-1c4b-4281-b951-d872f2087c98
* Small fixes to allow unit tests to compile with gcc 4.7.x (tested with gcc ↵kamil.jiwa@gmail.com2013-01-031-2/+0
| | | | | | | | 4.7.2) Review URL: https://chromiumcodereview.appspot.com/11568033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174956 0039d316-1c4b-4281-b951-d872f2087c98
* Create a fresh sync datatype for Synced Notificationspetewil@chromium.org2013-01-0310-2/+75
| | | | | | | | | BUG=164313 Review URL: https://chromiumcodereview.appspot.com/11441005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174927 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Componentize sync: Part 6: Add more SYNC_EXPORTs to files in src/sync/rsimha@chromium.org2013-01-0295-267/+389
| | | | | | | | | | | | | | | | | | | | | | | | | 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_PRIVATE (and some SYNC_EXPORT) annotations to classes / methods within src/sync so that various chrome targets can reference them. It also makes a few assorted fixes like adding missing destructors, etc. These errors get flagged when component builds are enabled after componentizing 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://codereview.chromium.org/11624037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174801 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Move unique_client_tag hashing coderlarocque@chromium.org2012-12-219-53/+74
| | | | | | | | | | | | | | | | | This is one of many changes that will lead up to the introduction of the bookmark UniquePosition algorithm. We eventually want to use the hashing code to create a unique tag for bookmarks. This tag will be initialized at bookmark creation time in MutableEntry. This patch moves the hashing code out of BaseNode and into syncable_util so it can be accessed from the syncable layer. BUG=145412,126505 Review URL: https://chromiumcodereview.appspot.com/11571092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174449 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Protobuf changes to support UniquePositionrlarocque@chromium.org2012-12-211-47/+60
| | | | | | | | | | | | | | | | This change introduces support for the unique_position field in SyncEntites in the sync protocol. It also updates many comments regarding the deprecation of position_in_parent, and the deprecation of ordinal_in_parent before it was ever actually used. BUG=145412 Review URL: https://chromiumcodereview.appspot.com/11639047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174395 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Componentize sync: Part 5: Eliminate filename collisions in sync.gyprsimha@chromium.org2012-12-1943-112/+112
| | | | | | | | | | | | In order to move src/sync into its own compoent, all the static_library targets in sync.gyp need to be converted to targets of type 'none' and rolled into one sync target of type component. This is currently blocked by duplicate .cc filenames in syncable and internal_api, which flags an error while running gyp. The offending files are {internal_api|syncable}/{base|read|write}_transaction.cc. This patch renames syncable/{base|read|write}_transaction.{h|cc} to syncable/syncable_{base|read|write}_transaction.{h|cc}. BUG=136928 Review URL: https://codereview.chromium.org/11638018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174032 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for keystore key rotation.zea@chromium.org2012-12-199-110/+883
| | | | | | | | | | | | | | | | | | | | Key rotation will trigger a full re-encryption of all sync data with the newest keystore key. Previous keys will be added to the keybag as well. We detect key rotation by checking whether we have multiple keystore keys and the nigori's keybag is not encrypted with the current keystore key. In that case, we no longer support backwards compatibility with non-keystore supporting versions, and re-encrypt using the newest keystore key. This change also fixes two latent issues: lack of encryption of the keystore bootstrap and not properly posting OnPassphraseAccepted when we resolve pending keys. BUG=163744 Review URL: https://chromiumcodereview.appspot.com/11434070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173830 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add tests for invalid specifics field number handlingakalin@chromium.org2012-12-139-131/+270
| | | | | | | | | | | | | | | | | | This is a follow up to r172232. Change NOTREACHED() to DLOG(WARNING), since the server sending down unknown/invalid field numbers is a valid event. Add tests for the code that uses GetModelTypeFromSpecificsFieldNumber(). Clean up some code in sync/engine/ a bit. BUG=165171 Review URL: https://chromiumcodereview.appspot.com/11485019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172816 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Display encrypted data in about:synczea@chromium.org2012-12-139-17/+52
| | | | | | | | | | | | | | | | For ease in debugging, we automatically decrypt encrypted specifics if we are able when creating their string representations. This allows us to display decrypted data in the sync node browser and data dumps. Note that passwords don't use the normal encryption scheme, and hence are not decrypted. This is intentional. BUG=96225 Review URL: https://chromiumcodereview.appspot.com/11557006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172755 0039d316-1c4b-4281-b951-d872f2087c98
* Remove initial_sync_ended bitsrlarocque@chromium.org2012-12-1226-264/+505
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of crbug.com/164288, we can no longer trust initial_sync_ended. If my diagnosis is correct, then there are some clients out there who have their initial_sync_ended bits set for some data types which have not actually been synced. Those clients now crash at every startup. This change attempts to solve the problem by removing the separate initial_sync_ended array of bools and checking the database directly to learn of a type's status. The new definition of initial_sync_ended is that a type has finished initial sync if its top level folder has been downloaded and applied. To prevent crashing if the server decides to not send us those root nodes during the control types configure step, we now check that all control types are initial_sync_ended following that configure and fail gracefully if their initial sync is not completed. The new definition of initial_sync_ended makes it much easier to hit crbug.com/164914. That bug would prevent us from saving our changes following a call to PurgeEntriesWithTypeIn() in some situations. This commit also fixes that bug. Since the initial sync ended status is no longer independent from the database state, it is no longer necessary to collect debug info as to its status. It has been removed from the about:sync UI and other debug info reporting mechanisms. Its role in unit tests has also been greatly reduced. BUG=164288,164914 Review URL: https://chromiumcodereview.appspot.com/11474036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172707 0039d316-1c4b-4281-b951-d872f2087c98
* [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