summaryrefslogtreecommitdiffstats
path: root/sync
Commit message (Collapse)AuthorAgeFilesLines
* sync: Refactor NonBlockingTypeProcessorCore testsrlarocque@chromium.org2014-06-187-435/+746
| | | | | | | | | | | | | | | | | | | Pulls MockNonBlockingTypeProcessor and SimpleMockServer classes out of the NonBlockingTypeProcessorCore's test harness. These two new mock classes are currently used in only one place, though it's probable that they'll be reused elsewhere sooner or later. Even if no code is reused, this change is worthwhile because it leads to better separation of responsibilities and improved documentation. This is one of serveral follow-ups to the commits that introduced NonBlockingTypeProcessor and NonBlockingTypeProcessorCore. BUG=351005 Review URL: https://codereview.chromium.org/330523002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278114 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add synced notifications shimzea@chromium.org2014-06-162-7/+47
| | | | | | | | | | | | | | The shim fires JS events when told to by sync, and interfaces with the synced notifications private api to get sync data. This also goes ahead and disabled synced notifications by default while it's in development. BUG=372556 Review URL: https://codereview.chromium.org/306293009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277399 0039d316-1c4b-4281-b951-d872f2087c98
* Add URLRequestJobFactories to URLRequestContexts without one.mmenke@chromium.org2014-06-132-1/+8
| | | | | | | | | | | | | | | Currently a URLRequestJobFactory is optional, as the global URLRequestJobManager passes jobs on to the URLRequestFilter and global http/https/ws/wss factories. In order to be able to eliminate the global URLRequestJobManager object, first have to give all contexts their own URLRequestJobFactory. BUG=81979 TBR=ajwong@chromium.org (Who actually signed off on this, but Rietveld ignored his email). Review URL: https://codereview.chromium.org/311393002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276867 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Refactor NonBlockingTypeProcessor testsrlarocque@chromium.org2014-06-126-231/+385
| | | | | | | | | | | | | | | | | | | Moves some test support classes out of the NonBlockingTypeProcessor's unit test .cc files and into their own files. Rearranges some responsibilities between the test harness and the mock classes. Much of the functionality related to mocking out server behavior has been moved into the MockNonBlockingTypeProcessor. This makes it possible to share that code with other test harnesses. This is one of several follow-ups to the commits that introduced the NonBlockingTypeProcessor and NonBlockingTypeProcessorCore. BUG=351005 Review URL: https://codereview.chromium.org/318193002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276830 0039d316-1c4b-4281-b951-d872f2087c98
* Remove redundant param from Sync FakeServer infrapvalenzuela@chromium.org2014-06-123-20/+17
| | | | | | | | | | | The BookmarkEntity class always represents a Bookmark, so there's no reason to have a ModelType param as part of its constructor. BUG=NONE Review URL: https://codereview.chromium.org/319823002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276814 0039d316-1c4b-4281-b951-d872f2087c98
* Implement GCMDriver.java using MultiplexingGcmListenerjohnme@chromium.org2014-06-122-0/+29
| | | | | | | | | | | | | | | | Known caveat: - Since GCM on Android only supports a single registration per native app, only a single web app can register at once, and even then only if they pass --disable-sync-gcm-in-order-to-try-push-api on the command line which disables Chrome Sync etc from receiving GCM messages. Depends on https://codereview.chromium.org/316963003/ BUG=350384 Review URL: https://codereview.chromium.org/314293006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276795 0039d316-1c4b-4281-b951-d872f2087c98
* Rename "managed (mode|user)" to "supervised user" (part 1)treib@chromium.org2014-06-123-56/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL changes: - "IsManaged" and similar methods in Profile, ProfileInfoCache, and a few other places (which mostly forward to either of those) - Enum and constant names - Variable names - Comments Still missing: - I almost certainly missed a few variables and comments - The actual SU implementation, i.e. c/b/managed_mode/ - JavaScript - Resource names But since this CL is already way too huge, I'll try to commit this part now and do the rest in one or more followup CLs. TBR=thakis@chromium.org (chrome/) TBR=rogerta@chromium.org (google_apis/) TBR=haitaol@chromium.org (sync/ and components/sync_driver/) All the TBRs are simple renames. BUG=none Review URL: https://codereview.chromium.org/316863002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276722 0039d316-1c4b-4281-b951-d872f2087c98
* Add integraton test for sync backup/rollback.haitaol@chromium.org2014-06-113-1/+19
| | | | | | | | BUG=362679 Review URL: https://codereview.chromium.org/310103004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276281 0039d316-1c4b-4281-b951-d872f2087c98
* Add authentication support to AttachmentUploaderImpl.maniscalco@chromium.org2014-06-104-58/+471
| | | | | | | | | | | | | | | Update AUI to request an access token and send an Authorization header with each requests. If the server responds with 401, AUI invalidates its token, but does not retry. Retries will be implemented in a future CL, probably at a higher level. Relanding https://codereview.chromium.org/304253010/ after fixing race. BUG=371516,381581 Review URL: https://codereview.chromium.org/326673003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276189 0039d316-1c4b-4281-b951-d872f2087c98
* Sync FakeServer cleanup: CHECKs and logging infopvalenzuela@chromium.org2014-06-105-22/+20
| | | | | | | | | | | This CL removes unnecessary DCHECKs, switches useful DCHECKs to CHECKS, and adds logging statements. BUG=NONE Review URL: https://codereview.chromium.org/327593003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276171 0039d316-1c4b-4281-b951-d872f2087c98
* Make the "Tabs" item on about:sync non-yellowstanisc@chromium.org2014-06-073-0/+13
| | | | | | | | | | | | | This was achieved by changing ProfileSyncService::GetTypeStatusMap() to have a special case for proxy types. A passive proxy type gets assigned status "ok" instead of "warning" which makes it appear green on the about:sync page. BUG=380442 Review URL: https://codereview.chromium.org/312333005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275561 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 275293 "Add authentication support to AttachmentUploaderI..."timurrrr@chromium.org2014-06-064-473/+58
| | | | | | | | | | | | | | | | | | | | | BUG=381581 > Add authentication support to AttachmentUploaderImpl. > > Update AUI to request an access token and send an Authorization header > with each requests. If the server responds with 401, AUI invalidates > its token, but does not retry. Retries will be implemented in a future > CL, probably at a higher level. > > BUG=371516 > > Review URL: https://codereview.chromium.org/304253010 TBR=maniscalco@chromium.org Review URL: https://codereview.chromium.org/316413002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275357 0039d316-1c4b-4281-b951-d872f2087c98
* Retry: Move some sync/notifier to components/invalidationrlarocque@chromium.org2014-06-0656-7214/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves many of the files in sync/notifier to components/invalidation. This change does not introduce any new dependencies. The relevant dependency rules both before and after this change should be: - chrome/browser/invalidation and chrome in general depend on components/invalidation. - components/invalidation depends on sync/notifier and sync in general. - sync/notifier, components/invalidation, and various parts of chrome all depend on sync/internal_api/public. The eventual goal is to move all of sync/notifier into components/invalidation. The invalidation-related parts of sync/internal_api/public should be moved to components/invalidation, too. This will allow us to remove the deopendencies from components/invalidation to sync, and remove sync's dependencies on cacheinvalidation and libjingle. This change is a regression in terms of shared library componentization. the files in the sync/notifier folder could be built as a shared library. The files in compononents/invalidation do not support this yet. The SYNC_EXPORT declarations in the moved files have been changed to INVALIDATION_EXPORT so as to not lose this information, but the macros are currently #defined to no-ops. This change does not attempt to rename any classes or namespaces. Many of the files ported from sync/notifier still use the syncer namespace. Some, like SyncSystemResources, still have names tied to their sync heritage. This will be addressed in future CLs. Some non-trivial or non-obvious changes include: - invalidator_state.h was moved to sync/internal_api/public/base so it could be shared by both sync/ and components/invalidation. This should be fixed in a future CL. - FromNotifierReason was split out of invalidator_state.h and moved to the newly-created components/invalidator_reason_util.h TBR=zea,rtenneti,mallinath,dcheng BUG=259559 Review URL: https://codereview.chromium.org/315433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275305 0039d316-1c4b-4281-b951-d872f2087c98
* Add authentication support to AttachmentUploaderImpl.maniscalco@chromium.org2014-06-064-58/+473
| | | | | | | | | | | | | Update AUI to request an access token and send an Authorization header with each requests. If the server responds with 401, AUI invalidates its token, but does not retry. Retries will be implemented in a future CL, probably at a higher level. BUG=371516 Review URL: https://codereview.chromium.org/304253010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275293 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Implement NonBlockingTypeProcessorCorerlarocque@chromium.org2014-06-0520-57/+2173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces the second half of the non-blocking sync engine. For now, most of the classes invovled are never instantiated outside of tests. Adds NonBlockingTypeProcessorCore, the sync thread component of non-blocking sync. It coordinates between the sync server and the NonBlockingTypeProcessor that lives on the model thread. The SyncThreadSyncEntity exists to help it handle keep track of the in-flight sync entities. The NonBlockingTypeProcessorCore interacts with the sync thread components by implementing both the UpdateHandler and CommitContributor interfaces. This allows it to take part in commit and update operations that are managed by the syncer. As part of its implementation of the CommitContributor interface, the NonBlockingTypeProcessorCore introduces a NonBlockingTypeProcessorCommitContribution class to manage its contribution to a commit request and associated it with the response. This CL includes a large amount of test framework code to help test the NonBlockingTypeProcessorCore. Makes the SyncEntityToValue function in proto_value_conversions.h public to enable more informative debug messages. BUG=351005 Review URL: https://codereview.chromium.org/299963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275187 0039d316-1c4b-4281-b951-d872f2087c98
* Convert SyncAuthTest cases to FakeServerpvalenzuela@chromium.org2014-06-052-1/+28
| | | | | | | | BUG=323265 Review URL: https://codereview.chromium.org/316523003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275018 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Specialize functions that fetch type rootrlarocque@chromium.org2014-06-0324-102/+121
| | | | | | | | | | | | | | | | | | | | | | | | | Adds functions to look up the root node of a give type. This replaces most of the use cases for the functions that look up a node by unique server tag, so those functions have been renamed to indicate their near-deprecation. This is part of the effort to remove the client's dependence on the server for the creation of type root nodes. Although it's unlikely that we can make this work for existing types, new types should be prepared to work properly in the absence of tyep root nodes. The first step on that path is to abstract away the mechanism by which we look up the type roots. Renaming the old lookup by tag functions allows us to ensure that there no remaining cases where the code base looks up type roots by server tag. This CL also adds a few DCHECKs to ensure type roots are never looked up using the old lookup by server tag functions. BUG=373869 Review URL: https://codereview.chromium.org/302173004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274613 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Populate entity counts in about:sync tabrlarocque@chromium.org2014-06-035-2/+29
| | | | | | | | | | | | | | | | | | | Populates the count of entities per type in about:sync. Includes C++ code to count and emit the set of deleted and non-deleted counts, though for space reasons only the non-deleted count is displayed on the about:sync page. This calculation is somewhat expensive. It could be made cheaper by having an index in the Directory to keep track of which entities belong to which type, but that doesn't exist at the moment. For now, we just avoid calculating these counts unless the about:sync page is open. BUG=349301 Review URL: https://codereview.chromium.org/302283007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274563 0039d316-1c4b-4281-b951-d872f2087c98
* Convert Sync BirthdayErrorTest to use FakeServerpvalenzuela@chromium.org2014-06-032-26/+48
| | | | | | | | BUG=323265 Review URL: https://codereview.chromium.org/308963006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274459 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Move some sync/notifier to components/invalidation ↵rlarocque@chromium.org2014-06-0255-55/+7214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/294123004/) Reason for revert: Passed the CQ but broke the buildbot. Original issue's description: > Move some sync/notifier to components/invalidation > > Moves many of the files in sync/notifier to components/invalidation. > > This change does not introduce any new dependencies. The relevant > dependency rules both before and after this change should be: > - chrome/browser/invalidation and chrome in general depend on > components/invalidation. > - components/invalidation depends on sync/notifier and sync in > general. > - sync/notifier, components/invalidation, and various parts of > chrome all depend on sync/internal_api/public. > > The eventual goal is to move all of sync/notifier into > components/invalidation. The invalidation-related parts of > sync/internal_api/public should be moved to components/invalidation, > too. This will allow us to remove the deopendencies from > components/invalidation to sync, and remove sync's dependencies on > cacheinvalidation and libjingle. > > This change is a regression in terms of shared library componentization. > the files in the sync/notifier folder could be built as a shared > library. The files in compononents/invalidation do not support this > yet. The SYNC_EXPORT declarations in the moved files have been changed > to INVALIDATION_EXPORT so as to not lose this information, but the > macros are currently #defined to no-ops. > > This change does not attempt to rename any classes or namespaces. > Many of the files ported from sync/notifier still use the syncer > namespace. Some, like SyncSystemResources, still have names tied > to their sync heritage. This will be addressed in future CLs. > > Some non-trivial or non-obvious changes include: > - invalidator_state.h was moved to sync/internal_api/public/base so it > could be shared by both sync/ and components/invalidation. This should > be fixed in a future CL. > - FromNotifierReason was split out of invalidator_state.h and moved to > the newly-created components/invalidator_reason_util.h > > TBR=zea,rtenneti,mallinath,dcheng > BUG=259559 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=274350 TBR=pavely@chromium.org,dcheng@chromium.org,zea@chromium.org,rtenneti@chromium.org,mallinath@chromium.org,maniscalco@chromium.org NOTREECHECKS=true NOTRY=true BUG=259559 Review URL: https://codereview.chromium.org/308413002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274364 0039d316-1c4b-4281-b951-d872f2087c98
* Move some sync/notifier to components/invalidationrlarocque@chromium.org2014-06-0255-7215/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves many of the files in sync/notifier to components/invalidation. This change does not introduce any new dependencies. The relevant dependency rules both before and after this change should be: - chrome/browser/invalidation and chrome in general depend on components/invalidation. - components/invalidation depends on sync/notifier and sync in general. - sync/notifier, components/invalidation, and various parts of chrome all depend on sync/internal_api/public. The eventual goal is to move all of sync/notifier into components/invalidation. The invalidation-related parts of sync/internal_api/public should be moved to components/invalidation, too. This will allow us to remove the deopendencies from components/invalidation to sync, and remove sync's dependencies on cacheinvalidation and libjingle. This change is a regression in terms of shared library componentization. the files in the sync/notifier folder could be built as a shared library. The files in compononents/invalidation do not support this yet. The SYNC_EXPORT declarations in the moved files have been changed to INVALIDATION_EXPORT so as to not lose this information, but the macros are currently #defined to no-ops. This change does not attempt to rename any classes or namespaces. Many of the files ported from sync/notifier still use the syncer namespace. Some, like SyncSystemResources, still have names tied to their sync heritage. This will be addressed in future CLs. Some non-trivial or non-obvious changes include: - invalidator_state.h was moved to sync/internal_api/public/base so it could be shared by both sync/ and components/invalidation. This should be fixed in a future CL. - FromNotifierReason was split out of invalidator_state.h and moved to the newly-created components/invalidator_reason_util.h TBR=zea,rtenneti,mallinath,dcheng BUG=259559 Review URL: https://codereview.chromium.org/294123004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274350 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Add UI code for per type debug countersrlarocque@chromium.org2014-06-022-3/+3
| | | | | | | | | | | | | | | | | | | | Adds a new tab to the about:sync page to display the latest per-type counters. These counters will eventually replace the StatusControllers that contain much of the same information. This includes some changes to the C++ SyncInternalsMessageHandler to register to observe these counters as well as some new WebUI to display them. There is a known bug in this code. The StausCounter update logic has not been implemented yet, so the item counts will always be zero. This will be fixed in a future CL. BUG=349301 Review URL: https://codereview.chromium.org/290023003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274348 0039d316-1c4b-4281-b951-d872f2087c98
* Instantiate AttachmentDownloader and use it in AttachmentServiceImplpavely@chromium.org2014-06-025-12/+399
| | | | | | | | | | | | | | | | | | | GetOrDownloadAttachments creates state object that tracks set of attachments for which requests are still pending. Once AttachmentStore::Read finishes AttachmentServiceImpl calls AttachmentDownloader to download attachments that were not found locally. Once all calls to Downloader finish consumer callback is called with results. I used AttachmentIdSet in this code but didn't update AttachmentIdList to AttachmentIdSet in other places. I'd rather do it in separate change. R=maniscalco@chromium.org BUG=376073 Review URL: https://codereview.chromium.org/307783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274164 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Separate .gyp file for standalone toolsrlarocque@chromium.org2014-05-292-64/+75
| | | | | | | | | | | | | | | Moves targets related to the standalone executables sync_listen_notifications and sync_client into their own .gyp file. This will prevent a temporary circular dependency as we attempt to invert the dependency from components/invalidation -> sync towards sync -> components/invalidation. BUG=378024 Review URL: https://codereview.chromium.org/303603004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273665 0039d316-1c4b-4281-b951-d872f2087c98
* Let ProfileSyncService start backup or rollback backend when no user is signedhaitaol@chromium.org2014-05-294-4/+14
| | | | | | | | | | | or when rollback command was received. BUG=362679 TBR=rogerta@chromium.org Review URL: https://codereview.chromium.org/261543002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273597 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Remove stale unrecoverable flagzea@chromium.org2014-05-297-22/+0
| | | | | | | | | | It's not useful. BUG=354271 Review URL: https://codereview.chromium.org/300283006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273412 0039d316-1c4b-4281-b951-d872f2087c98
* AttachmentDownloader implementation.pavely@chromium.org2014-05-248-0/+254
| | | | | | | | | | | This is rudimentary implemenatation of AttachmentDownloader along with fake for tests. BUG=376073 R=maniscalco@chromium.org Review URL: https://codereview.chromium.org/296153014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272733 0039d316-1c4b-4281-b951-d872f2087c98
* Add AttachmentDownloader interface, change signature of AttachmentStore::Readpavely@chromium.org2014-05-239-20/+104
| | | | | | | | | | | | | | | - AttachmentDownloader interface is similar to AttachmentUploader interface. No implementation yet. - AttachmentStore::Read guarantee should be stronger. It should attempt to read all attachments and return list of attachment ids that can't be loaded locally. Those need to be downloaded from server. R=maniscalco@chromium.org BUG=376073 Review URL: https://codereview.chromium.org/293143002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272585 0039d316-1c4b-4281-b951-d872f2087c98
* Implement sync in the NonBlockingTypeProcessorrlarocque@chromium.org2014-05-2224-46/+1524
| | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces the NonBlockingTypeProcessor's sync logic. When combined with the NonBlockingTypeProcessorCore's sync logic (which will be introduced in a follow-up commit), this will be an alternative to the existing sync engine implemented with DirectoryUpdateHandler and DirectoryCommitContributor. Adds non_blocking_sync_common.h, which defines structs to be used to pass messages between the processor and processor core. Adds DataTypeState as a parameter to the processor to processor core connection methods. Eventually this will be used to initialize the processor core with state that the processor loaded from disk. Adds a lot of unit tests and unit test framework intrastructure. The NonBlockingTypeProcessor and NonBlockingTypeProcessorCore's communications with each other will be very racy. These tests are intended to help manage the complexity this will cause by allowing us to test all the possible race conditions individually. BUG=351005 Review URL: https://codereview.chromium.org/280983002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272329 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Implement fake server reflection blockingrlarocque@chromium.org2014-05-222-3/+9
| | | | | | | | | | | | | | | | | | | | | Implements reflection blocking for the in-process fake sync server. The notifications delivery system used in the real world will not deliver notifications of new or modified items to the client that originated that change. This feature is known by the names "reflection blocking" or "squelching". Most of out integration tests expect reflection blocking to be disabled, so we can't turn this on in all tests. The default is to leave it off. Tests that want to enable reflection blocking must override "TestUsesSelfNotifications" in their test framework class. BUG=323265 Review URL: https://codereview.chromium.org/296743005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272321 0039d316-1c4b-4281-b951-d872f2087c98
* Make GCMProfileService own GCMDriver, instead of deriving from itjianli@chromium.org2014-05-211-0/+1
| | | | | | | | | | | | | | Also remove several tests related to testing on neutral channel signals. Replacement tests will be added when we switch to starting and stopping GCM on demand in the future patch. BUG=356716 TEST=tests updated TBR=kalman@chromium.org,pavely@chromium.org,arv@chromium.org Review URL: https://codereview.chromium.org/286213003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271832 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Enable typed tombstones commitsrlarocque@chromium.org2014-05-204-1/+129
| | | | | | | | | | | | | | | | | | | | | | | Modifies commit logic to include the model type of items in commit requests. The model type is implicitly specified by the presence of a sub-message in the EntitySpecifics field. Prior to this commit, only bookmarks would populate the sync entities on commit. The special case for bookmarks was introduced recently, in r265587. Unlike the bookmarks case, the non-bookmark items send up only enough specifics to identify the model type. The rest of the specifics are not set. This commit also adds some tests of the bookmark and non-bookmark deletion request behaviors. BUG=365752,373859 Review URL: https://codereview.chromium.org/298503002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271763 0039d316-1c4b-4281-b951-d872f2087c98
* Invoke AttachmentUploader and update AttachmentIds.pavely@chromium.org2014-05-2010-6/+155
| | | | | | | | | | | | | | | | | | | When GenericChangeProcessor calls AttachmentService::StoreAttachments AttachmentService invokes AttachmentUploader to upload attachments. When attachment gets uploaded AttachmentService invokes AttachmentService::Delegate::OnAttachmentUploaded. GenericChangeProcessor implements AttachmentService::Delegate for now. When attachment is uploaded it call WriteTransaction to update entries referring this attachment with new attachment id. R=maniscalco@chromium.org BUG=371629 Review URL: https://codereview.chromium.org/272043002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271578 0039d316-1c4b-4281-b951-d872f2087c98
* Add maniscalco@ to OWNERS files.pavely@chromium.org2014-05-191-1/+2
| | | | | | | | R=tim@chromium.org Review URL: https://codereview.chromium.org/285333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271467 0039d316-1c4b-4281-b951-d872f2087c98
* Merge NetworkTimeNotifier to NetworkTimeTrackerhashimoto@chromium.org2014-05-191-1/+0
| | | | | | | | | | | | | | | To remove dependencies to BrowserProcess and IOThread from NetworkTimeTracker. Remove NetworkTimeNotifier from IOThread, add NetworkTimeTracker to BrowserProcess instead. Change all users to use the NetworkTimeTracker instance owned by BrowserProcess. Since NetworkTimeTracker is living in the UI thread, there is no need to have multi-thread callback chain in NetowrkTimeTracker, the only exception is sync_backend_host_impl.cc who needs a callback which can be run on the IO thread. BUG=371470 TEST=git cl try Review URL: https://codereview.chromium.org/271853004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271389 0039d316-1c4b-4281-b951-d872f2087c98
* Android: cleanup gtest_target_type conditions.bulach@chromium.org2014-05-171-5/+3
| | | | | | | | | | | | For a long time (crrev.com/133053) OS==android implies: gtest_target_type=shared_library Cleanup the spurious conditions and obsolete TODOs. BUG= Review URL: https://codereview.chromium.org/278443003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271222 0039d316-1c4b-4281-b951-d872f2087c98
* Add a minimal AttachmentUploaderImpl.maniscalco@chromium.org2014-05-176-0/+497
| | | | | | | | | | | | | | | This is a "dumbed down" implementation with several open TODOs. Future CLs will add auth support and wire it in to the rest of sync. Wire protocol is in flux and will change once the server has been implemented. BUG= Review URL: https://codereview.chromium.org/278263003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271212 0039d316-1c4b-4281-b951-d872f2087c98
* Android: cleans up jni_generator_ptr_type.bulach@chromium.org2014-05-161-1/+0
| | | | | | | | | | | | | | The underlying rule is now "long" by default. Mechanical change: git grep -l jni_generator_ptr_type | xargs sed -i /jni_generator_ptr_type/d Relands crrev.com/270750 (reverted by 270849) BUG=317523 TBR=darin@chromium.org Review URL: https://codereview.chromium.org/288223005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271047 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 270750 "Android: cleans up jni_generator_ptr_type."jiayl@chromium.org2014-05-151-0/+1
| | | | | | | | | | | | | | | | | | | | | Suspected to cause Android Tests bot failure: http://build.chromium.org/p/chromium.linux/builders/Android%20Tests/builds/13592 > Android: cleans up jni_generator_ptr_type. > > The underlying rule is now "long" by default. > Mechanical change: > git grep -l jni_generator_ptr_type | xargs sed -i /jni_generator_ptr_type/d > > BUG=317523 > TBR=darin@chromium.org > > Review URL: https://codereview.chromium.org/288963002 TBR=bulach@chromium.org Review URL: https://codereview.chromium.org/292433004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270849 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Improve handling of bad UniquePos (retry)rlarocque@chromium.org2014-05-1510-14/+209
| | | | | | | | | | | | | | | | | | | | | | | | | Retry: The first attempt had a memory leak. It seems that this leak existed before this CL, but no code exercised it. This updated CL includes a scoped deleter that should fix it. Original commits message was: Makes the client assign a valid position to incoming bookmarks if the server has not populated the required fields. This code should never be triggered unless there is a bug in the server. This risks reordering users' bookmarks, but that's probably preferable to a crash. This fallback code is still protected by a NOTREACHED(), as before. Detects bookmarks that do not have valid position information during database load. If these corrupted bookmarks are detected, the entire database is declared to be corrupt. Sync will then re-download all of the user's data, which should fix the problem. BUG=367247 Review URL: https://codereview.chromium.org/283143002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270837 0039d316-1c4b-4281-b951-d872f2087c98
* Android: cleans up jni_generator_ptr_type.bulach@chromium.org2014-05-151-1/+0
| | | | | | | | | | | | | The underlying rule is now "long" by default. Mechanical change: git grep -l jni_generator_ptr_type | xargs sed -i /jni_generator_ptr_type/d BUG=317523 TBR=darin@chromium.org Review URL: https://codereview.chromium.org/288963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270750 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Populate debug counters for directory typesrlarocque@chromium.org2014-05-1511-80/+271
| | | | | | | | | | | | | | | | | | | | Modifies the directory update handlers and commit contributors to make use of the debug info emitters. Previously, the debug info emitters were available but unused. This change makes it so the counters are updated and their observers notified at appropriate times. Updates some tests to rely on these counters rather than the StatusController. Eventually, these counters will replace most existing uses of StatusController. The code does not currently contain any non-test observers, so these newly updated values are currently not reported anywhere. BUG=349301 Review URL: https://codereview.chromium.org/271613006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270590 0039d316-1c4b-4281-b951-d872f2087c98
* Let SyncManagerFactory create different types of sync managers according tohaitaol@chromium.org2014-05-154-5/+26
| | | | | | | | | | constructor param. BUG=362679 Review URL: https://codereview.chromium.org/265823009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270576 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 270308 "sync: Improve handling of bad UniquePositions"raymes@google.com2014-05-149-204/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | Reverting due to possible build breakage: http://build.chromium.org/p/chromium.memory/buildstatus?builder=Linux%20ASan%20LSan%20Tests%20%282%29&number=2633 > sync: Improve handling of bad UniquePositions > > Makes the client assign a valid position to incoming bookmarks if the > server has not populated the required fields. This code should never be > triggered unless there is a bug in the server. This risks reordering > users' bookmarks, but that's probably preferable to a crash. > > Detects bookmarks that do not have valid position information during > database load. If these corrupted bookmarks are detected, the entire > database is declared to be corrupt. Sync will then re-download > all of the user's data, which should fix the problem. > > BUG=367247 > > Review URL: https://codereview.chromium.org/278153002 TBR=rlarocque@chromium.org Review URL: https://codereview.chromium.org/270543005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270324 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Improve handling of bad UniquePositionsrlarocque@chromium.org2014-05-149-14/+204
| | | | | | | | | | | | | | | | | | Makes the client assign a valid position to incoming bookmarks if the server has not populated the required fields. This code should never be triggered unless there is a bug in the server. This risks reordering users' bookmarks, but that's probably preferable to a crash. Detects bookmarks that do not have valid position information during database load. If these corrupted bookmarks are detected, the entire database is declared to be corrupt. Sync will then re-download all of the user's data, which should fix the problem. BUG=367247 Review URL: https://codereview.chromium.org/278153002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270308 0039d316-1c4b-4281-b951-d872f2087c98
* Rename FakeAttachmentService to AttachmentServiceImplpavely@chromium.org2014-05-135-32/+32
| | | | | | | | | | No functionality change whatsoever. BUG=356359 Review URL: https://codereview.chromium.org/279263003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270220 0039d316-1c4b-4281-b951-d872f2087c98
* Fix various style errors in sync/test/fake_serverpvalenzuela@chromium.org2014-05-135-32/+32
| | | | | | | | | | | | These issues were found using third_party/libvpx/source/libvpx/tools/cpplint.py (except for the instances of explicit multi-arg constructors). BUG=NONE Review URL: https://codereview.chromium.org/278523002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270153 0039d316-1c4b-4281-b951-d872f2087c98
* Sync: Do not generate non-UTF8 names for delete directives.thestig@chromium.org2014-05-131-0/+1
| | | | | | | | BUG=371184 Review URL: https://codereview.chromium.org/273283002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270035 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Move NonBlockingTypeProcessor to sync/enginerlarocque@chromium.org2014-05-138-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | Moves NonBlockingTypeProcessor from sync/internal_api to sync/engine. It's become increasingly clear to me that the NonBlockingTypeProcessor will be too big to expose outside of sync. When it comes time to export its functionality, we'll need to define a wrapper class with a simpler interface. This means that there's no benefit to keeping it in internal_api. There is a benefit to moving this to sync/engine. In this location, it should be able to collaborate more closely with its sibling, the NonBlockingTypeProcessorCore. We intend to start adding lots of code to this class soon. It's a good idea to get this move out of the way first, so we can have a better git history in the end. BUG=351005 Review URL: https://codereview.chromium.org/280693003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270025 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Implement disabling of non blocking typesrlarocque@chromium.org2014-05-1211-32/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds logic to have the model-thread NonBlockingDataTypeProcessor send a message to the sync-thread SyncCore when it receives notifcation from the ui-thread NonBlockingDataTypeController that it should stop syncing. This message will allow the sync thread to stop requeting updates and commits on behalf of the now-disabled type. Fixes the handling of a race in the NonBlockingDataTypeProcessor. The race is as follows: 1. NBDTP receives a request to enable sync from the UI thread, and sends a connection request to the sync thread via SyncCoreProxy. 2. NBDTP receives a request to disable sync from the UI thread. It updates its internal state accordingly. 3. NBDTP receives the connection OK response from the sync thread, which was genrated in response to its request in step 1. Previously, the processor would wrongly set itself to the enable state in step 3. The fix is to use a new WeakPtrFactory and invalidate the pointers it has issued in step 2 in order to prevent the response seen in step 3 from being run. Adds some more tests for this scenario and more. The test framework had to be made a bit more complicated in order to handle these tests, but I think the extra complexity is worth it. I don't know of any other way to reliably defend against these race cases. BUG=351005 Review URL: https://codereview.chromium.org/272323002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269916 0039d316-1c4b-4281-b951-d872f2087c98