summaryrefslogtreecommitdiffstats
path: root/sync
Commit message (Collapse)AuthorAgeFilesLines
* sync: Use a specialized transaction version setterrlarocque@chromium.org2013-05-233-1/+17
| | | | | | | | | | | | | | | | | | The setting of the transaction version used to be implemented with Put(TRANSACTION_VERSION, ...), like other int64 EntryKernel fields. This had the side effect of calling SaveOriginal() on the entry. That had the side effect of creating unnecessary copies of the EntryKernels. This change creates a new function, MutableEntry::UpdateTransactionVersion() which does not try to save the original entry. It also prevents the use of Put(TRANSACTION_VERSION) and updates the only call site for this function. BUG=241940,241813,238621 Review URL: https://chromiumcodereview.appspot.com/15376002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201905 0039d316-1c4b-4281-b951-d872f2087c98
* [Android] Hardcode InvalidationService as the Ticl service.yfriedman@chromium.org2013-05-232-98/+4
| | | | | | | | | | | | Adding this extra level of indirection through the app manifest was needed to migrate to tango V2. It's no longer necessary and can cause the main thread to sleep while accessing fields from package manager. BUG=138506 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/15337006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201900 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Test and improve bookmark performancerlarocque@chromium.org2013-05-211-3/+1
| | | | | | | | | | | | | | | | | | | | | | | This commit adds a test for bookmark model association. It's not a great test in terms of code coverage, but it's possible to turn it into a useful benchmark by changing the kNumBookmarksPerFolder and kNumFolders constants. Also included in this commit is a small change to the WriteTransaction's SaveOriginal method. The old code created a temporary EntryKernelMutation, which had to be cleaned up as it went out of scope. It turns out that destroying the four EntitySpecifics objects it contains can be pretty expensive. The performance impact isn't huge, but it is visible in the profiling results. Since the fix is so trivial, the cost-benefit tradeoff is pretty clearly in favor of fixing this. BUG=241813,238621 Review URL: https://chromiumcodereview.appspot.com/15308003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201363 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Process conflicts out of orderrlarocque@chromium.org2013-05-171-39/+6
| | | | | | | | | | | | | | | Since the UniquePosition patch landed, it's no longer necessary to process conflcits in order to properly detect position changes. Rather than convert this to the new iteration API, we can simply ignore ordering altogether and iterate iterate in whatever order happens to be convenient. We can reliably detect position changes by comparing UniquePosition values. BUG=178275 Review URL: https://chromiumcodereview.appspot.com/14793023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200751 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Fix handling of data type throttlingrlarocque@chromium.org2013-05-167-27/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change attempts to fix two semi-related issues in data type throttling that were introduced in r194766. Data type throttling has always had a few rough edge cases, but that commit introduced some issues that must be fixed. 1: Prior to r194766, data type throttling would block sync cycles only if the source was LOCAL and all types were throttled. This meant that a refresh request or notification could override data type throttling, if it arrived at the right time. That change made this behaviour much more deterministic. It would fail to perform any sync cycles as long as the only local nudges that were currently tracked were for throttled types. Even notificiations and local refresh requests for these types will not be sufficient to force a sync cycle. This change tries to find a better balance. It will allow sync cycles in the presence of unthrottled data types if one of the following is true: - There is an unserviced invalidation for any type. - There is an unservice refresh request for any type. - There is a local nudge for any non-throttled type. 2: The other problem has to do with exponential backoff in the presence of per-type throttling. In r194766, we made the assumption that we can early-exit from attempted sync cycle only if there was some other reason to perform a sync cycle later. Common causes of early-exit include throttling, exponential backoff, and network connectivity issues, all of which should be able to get back into a normal state on their own. However, one of those early-exit causes is data type throttling. In that case, there is no timer or notification that will restart sync once the issue is resolved. This is a problem because DoNudgeSyncSessionJob assumes that it can return without scheduling a retry in the "if (!CanRunNudgeJobNow())" case, while the code that manages the exponential backoff assumes the function that invokes DoNudgeSyncSessionJob, TryCanaryJob(), will always either clear or restart the wait interval. To fix this issue, this change adds a small function to invoke the exponential backoff retry callback, and gives it responsibility for making sure the WaitInterval is always managed correctly. BUG=239693 Review URL: https://chromiumcodereview.appspot.com/14710006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200655 0039d316-1c4b-4281-b951-d872f2087c98
* Initial version of Test Accounts service client (attempt #2)pvalenzuela@chromium.org2013-05-137-0/+464
| | | | | | | | | | | | | | | | | | This version uses URLFetcher instead of curl. Original description (committed/reverted r198019): """ Initial version of Test Accounts service client. This client will allow Chrome Sync tests to utilize the upcoming Test Accounts service that allows short-term, exclusive access to test accounts for the purpose of testing against real servers. """ BUG= Review URL: https://chromiumcodereview.appspot.com/14591008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199805 0039d316-1c4b-4281-b951-d872f2087c98
* Fix mem leak in DownloadUpdatesCommandTestrlarocque@chromium.org2013-05-101-2/+4
| | | | | | | | | | The leak was introduced in r199136. BUG=231693,138613 Review URL: https://chromiumcodereview.appspot.com/15001016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199355 0039d316-1c4b-4281-b951-d872f2087c98
* Add time tracking to association stats:haitaol@chromium.org2013-05-093-1/+34
| | | | | | | | | | | | * download time: time spent on downloading data for first time association. * association wait time: time waiting for loading local model and association of preceding data types. * association time: time spent on model association. BUG=236466 Review URL: https://chromiumcodereview.appspot.com/14645020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199276 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Report GetUpdate triggers to the serverrlarocque@chromium.org2013-05-0922-409/+978
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes use of the protocol buffers added in r198250. This adds code to the nudge tracker so it can keep more detailed information about the reasons for fetching an update. This information is copied into the per-type GetUpdateTriggers when we perform a "triggered" GetUpdate. There was no channel available to pass the nudge_tracker through to the DownloadUpdatesCommand, so it ended up being passed through a (maybe-NULL) member of the SyncSession. That's part of the reason why this change ended up touching so many files. The other reason why this change is so big is testing. Lots of tests had to be updated with some amended for the new SyncScheduler function signatures. This commit also includes quite a few test cases for the NudgeTracker itself. Because this change was delayed longer than expected, I've updated the comments in sync.proto referencing M28 to reference M29 instead. BUG=231693,138613 Review URL: https://chromiumcodereview.appspot.com/14963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199136 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 198844 "Move sequenced_task_runner to base/task"dbeam@chromium.org2013-05-081-1/+1
| | | | | | | | | | | | | | | | | Reverting revisions that rely on r198820 so to unbreak the build. > Move sequenced_task_runner to base/task > > BUG= > R=akalin@chromium.org > > Review URL: https://codereview.chromium.org/14927008 TBR=brettw@chromium.org Review URL: https://codereview.chromium.org/14985007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198848 0039d316-1c4b-4281-b951-d872f2087c98
* Move sequenced_task_runner to base/taskbrettw@chromium.org2013-05-081-1/+1
| | | | | | | | | BUG= R=akalin@chromium.org Review URL: https://codereview.chromium.org/14927008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198844 0039d316-1c4b-4281-b951-d872f2087c98
* Move SpawnedTestServer to its own subdirectory.phajdan.jr@chromium.org2013-05-073-3/+3
| | | | | | | | | | | | This is a part of replacing most usages of the Python test server with an in-process C++ test server that should be easier to debug. BUG=96594 R=rch@chromium.org Review URL: https://codereview.chromium.org/14691006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198783 0039d316-1c4b-4281-b951-d872f2087c98
* Use the machine hostname on Linux machines for the sync session name rather thanheuristicist@gmail.com2013-05-074-2/+47
| | | | | | | | | | | | | the distro name, but retain distro name as a fallback in case the hostname fails. Uses gethostname() from unistd.h. BUG=123827 TEST=Verify on a Linux machine that the hostname apppears in chrome://sync-internals > Sync Node Browser > Root > Device Information. Review URL: https://chromiumcodereview.appspot.com/14963003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198704 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Use base::MessageLoop.xhwang@chromium.org2013-05-0733-82/+80
| | | | | | | | | BUG=236029 R=akalin@chromium.org Review URL: https://chromiumcodereview.appspot.com/14113050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198610 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Log age of auth tokens on authentication failurezea@chromium.org2013-05-065-13/+58
| | | | | | | | | | | | | The fetch/refresh time of the sync credentials are plumbed through to the server connection manager, which can then histogram their age in the event that there is an auth failure. BUG=none R=tim@chromium.org Review URL: https://codereview.chromium.org/14888003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198531 0039d316-1c4b-4281-b951-d872f2087c98
* sync: SyncableService support for starting sync.tim@chromium.org2013-05-041-0/+10
| | | | | | | | | | | | | | | Still has no actual effect as operational bits are behind the --sync-enable-deferred-startup flag. If you pass that flag, autofill will now be permitted to kick off sync init (in fact, it will be the only thing that can kick off sync init, so you probably don't want to pass the flag yet!). Next I'll add a fallback timer and plumb the flare to more datatypes; non Sync API types will have to call ProfileSyncService directly. TBR=dhollowa@chromium.org ^ For web_data_service_factory as changes are just basic consequence of the parameter change to AutocompleteSyncableService already LGTM'd. BUG=80194 Review URL: https://chromiumcodereview.appspot.com/14018026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198309 0039d316-1c4b-4281-b951-d872f2087c98
* Add more information to sync protocol GU messagesrlarocque@chromium.org2013-05-036-0/+149
| | | | | | | | | | | | | | | | | | This change allows the client to specify a list of 'hints' when sending a GetUpdate request to the server. It also adds a set of flags that can be used to help the server determine whether or not the list of hints is complete. This change also adds flags to help the server infer the reason why the client is requesting updates. These flags can be set on a per-data type basis to indicate if there was a local refresh request or a local change to the type. BUG=138613,231693 Review URL: https://chromiumcodereview.appspot.com/13831012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198250 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Fix gu source generation when downloading control typeszea@chromium.org2013-05-032-1/+16
| | | | | | | | | | | We now properly set either NEW_CLIENT (if !HasSyncSetupCompleted) or NEWLY_SUPPORTED_DATATYPE otherwise. BUG=none Review URL: https://chromiumcodereview.appspot.com/14884006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198220 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: rename net::TestServer -> net::SpawnedTestServerphajdan.jr@chromium.org2013-05-032-11/+13
| | | | | | | | | | | | This is a part of replacing most usages of the Python test server with an in-process C++ test server that should be easier to debug. BUG=96594 R=rch@chromium.org Review URL: https://codereview.chromium.org/14702004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198151 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Initial version of Test Accounts service client. This client will" ↵mattm@chromium.org2013-05-034-319/+0
| | | | | | | | | | | | which failed compile on Mac bot. This reverts commit r198019. TBR=pvalenzuela@chromium.org Review URL: https://codereview.chromium.org/14892003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198039 0039d316-1c4b-4281-b951-d872f2087c98
* Initial version of Test Accounts service client. This client willpvalenzuela@chromium.org2013-05-034-0/+319
| | | | | | | | | | | | allow Chrome Sync tests to utilize the upcoming Test Accounts service that allows short-term, exclusive access to test accounts for the purpose of testing against real servers. BUG= Review URL: https://chromiumcodereview.appspot.com/14295014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198019 0039d316-1c4b-4281-b951-d872f2087c98
* Warn on missing OVERRIDE/virtual everywhere, not just in header files.rsleevi@chromium.org2013-05-021-1/+1
| | | | | | | | | | This is only enabled for Linux (so far). BUG=115047 Review URL: https://chromiumcodereview.appspot.com/14696007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197788 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unnecessary ".get()" from scoped_ptrs<>.erg@chromium.org2013-04-3017-27/+27
| | | | | | | | | | | In r174057, enne@ added support for implicit testing to scoped_ptr<>. Removes these in sync/ and chrome/browser/sync/. BUG=232084 Review URL: https://chromiumcodereview.appspot.com/14411003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197441 0039d316-1c4b-4281-b951-d872f2087c98
* Split NetworkTimeTracker into service part and observer part.zea@chromium.org2013-04-304-12/+68
| | | | | | | | | | | | | | | The service will now get time updates from sync's http bridge (with time data from the sync server). Original codereview by haitaol@chromium.org at https://codereview.chromium.org/12211117/ BUG=177072 TBR=akalin@chromium.org Review URL: https://chromiumcodereview.appspot.com/12833011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197258 0039d316-1c4b-4281-b951-d872f2087c98
* Add way to tell if device can add google accountsdtrainor@chromium.org2013-04-294-0/+30
| | | | | | | | | | Need to know if the device supports adding google accounts. BUG=235076 Review URL: https://chromiumcodereview.appspot.com/14314011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197093 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Remove use of ALLOW_THIS_IN_INITIALIZER_LIST.scherkus@chromium.org2013-04-2710-14/+13
| | | | | | | | | | It's no longer providing value as the MSVC warning is disabled during compilation. Refer to bug for details. BUG=234765 Review URL: https://chromiumcodereview.appspot.com/14335008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196892 0039d316-1c4b-4281-b951-d872f2087c98
* Android: Make sure the NetworkChangeNotifier is initialized in getAuthTokenclamy@chromium.org2013-04-251-1/+2
| | | | | | | | BUG=224019 Review URL: https://chromiumcodereview.appspot.com/14424008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196396 0039d316-1c4b-4281-b951-d872f2087c98
* Sync: Turn on full history sync by default.dubroy@chromium.org2013-04-252-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | Full history sync (and history delete directives) were off by default, but turned on in M27 via an experiment. This meant that history from signed-in devices was not visible on chrome://history until the browser was restarted. This CL make full history sync enabled by default, but retains a command-line switch and about:flags option to disable it. It also removes the option to disable delete directives only, since that had the same effect as disabling full history sync. TBR=brettw@chromium.org BUG=233098 TEST=Start up Chrome in a fresh profile, and sign in. Go to chrome://history and ensure that it says "Showing history from your signed-in devices" at the top of the history page. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=196116 Review URL: https://codereview.chromium.org/14344002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196394 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 196116 "Sync: Turn on full history sync by default."markusheintz@chromium.org2013-04-242-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | > Sync: Turn on full history sync by default. > > Full history sync (and history delete directives) were off by default, > but turned on in M27 via an experiment. This meant that history from > signed-in devices was not visible on chrome://history until the browser > was restarted. > > This CL make full history sync enabled by default, but retains a > command-line switch and about:flags option to disable it. It also > removes the option to disable delete directives only, since that > had the same effect as disabling full history sync. > > TBR=brettw@chromium.org > BUG=233098 > TEST=Start up Chrome in a fresh profile, and sign in. Go to > chrome://history and ensure that it says "Showing history from your > signed-in devices" at the top of the history page. > > Review URL: https://chromiumcodereview.appspot.com/14344002 TBR=dubroy@chromium.org Review URL: https://codereview.chromium.org/14387005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196124 0039d316-1c4b-4281-b951-d872f2087c98
* Sync: Turn on full history sync by default.dubroy@chromium.org2013-04-242-17/+0
| | | | | | | | | | | | | | | | | | | | | | Full history sync (and history delete directives) were off by default, but turned on in M27 via an experiment. This meant that history from signed-in devices was not visible on chrome://history until the browser was restarted. This CL make full history sync enabled by default, but retains a command-line switch and about:flags option to disable it. It also removes the option to disable delete directives only, since that had the same effect as disabling full history sync. TBR=brettw@chromium.org BUG=233098 TEST=Start up Chrome in a fresh profile, and sign in. Go to chrome://history and ensure that it says "Showing history from your signed-in devices" at the top of the history page. Review URL: https://chromiumcodereview.appspot.com/14344002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196116 0039d316-1c4b-4281-b951-d872f2087c98
* Add compression support to UniquePositionsrlarocque@chromium.org2013-04-226-9/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds gzip support to UniquePosition encoding. The client may choose to leave the value uncompressed, or to run the value through gzip. It is currently configured to use gzip only when the uncompressed value has a length greater than or equal to 128 bytes. We've seen some UniquePositions grow to inconveniently large lengths. These large positions are expensive to store and transmit, and, if they grow large enough, might start to cause commit failures. Fortunately, long UniquePosition values tend to contain a lot of reundancy. A common pattern is long strings of 0xFF or 0x00 digits. I expect that gzip will do a very good job of compressing long positions, to the point where large positions are no longer a problem. Since this is the first use of zlib within sync, this CL includes adjustments to DEPS and .gyp files to declare the new dependency. Clients that support this feature may start writing position values that can't be decoded by older clients. The older clients will silently discard position updates delivered in a format they can't understand. Fortunately, the UniquePosition code hasn't left dev channel yet, and only a small minority of users have these large bookmarks, so the impact should be very limited. BUG=145412 Review URL: https://chromiumcodereview.appspot.com/14348038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195608 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for server-controlled favicon sync limitzea@chromium.org2013-04-194-7/+30
| | | | | | | | | | | This allows us to adjust the number of favicons clients will maintain as we determine how well we handle them. BUG=154886 Review URL: https://chromiumcodereview.appspot.com/14117004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195074 0039d316-1c4b-4281-b951-d872f2087c98
* Sync: Turn DCHECK into a warning.dubroy@chromium.org2013-04-181-2/+2
| | | | | | | | | | | | This DCHECK is frequently encountered when full history sync is enabled, and since the case appears to be properly handled, it shouldn't be a DCHECK anyways. BUG=229901 Review URL: https://codereview.chromium.org/14229002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194856 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Finish the SyncScheduler refactorrlarocque@chromium.org2013-04-1813-1038/+414
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change removes SyncSessionJob entirely. The first step towards this goal was to refactor all functions that depended on SyncSessionJob. All these functions have either been inlined or modified to take different parameters instead. DoSyncSessionJob was split into two separate functions, one for configure jobs and one for nudge jobs, which removes the need for SyncSessionJob's "purpose" member. The SyncScheduler's pending_configure_job_ has been replaced with a ConfigParams member, since that was the only part of the job still being referenced. The pending_nudge_job_ has been replaced with scheduled_nudge_time_ (which is similar to the old scheduled_start_ member of SyncSessionJob) and a new object called a NudgeTracker. The NudgeTracker inherits the SyncSessionJob's responsibilities with respect to coalescing nudge sources. The plan is to extend this class to support more sophisticated nudge coalescing in the future. For now it tries to emulate the old SyncSessionJob behaviour as closely as possible. Some of the refactoring does change behaviour. In particular, the decision-making logic has been updated to fix issues 179515 and 155296. BUG=175024,179515,155296 Review URL: https://chromiumcodereview.appspot.com/13743003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194766 0039d316-1c4b-4281-b951-d872f2087c98
* Add ManagedUserSettings Sync data type.bauerb@chromium.org2013-04-1715-4/+106
| | | | | | | | | | | This data type should not be visible in the UI, as it will be configured automatically for managed users. TBR=atwilson@chromium.org BUG=229383 Review URL: https://codereview.chromium.org/14053004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194582 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Prevent redundant sync title changeszea@chromium.org2013-04-153-0/+56
| | | | | | | | | | | | | Title truncation is now performed in the WriteNode, before we do the idempotency checks. By fixing this and an issue in the favicon cache that was leading to automatic rewrites we should significantly reduce the number of useless sync cycles. BUG=229658 Review URL: https://codereview.chromium.org/13953003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194243 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 193992 "Lets try this again."jochen@chromium.org2013-04-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The XP bots are still red, and it's still whining about URL.DLL > Lets try this again. > > Revert 193983 "Revert 193968 "Roll the DEPS for google-url."" > > > Revert 193968 "Roll the DEPS for google-url." > > > > > Roll the DEPS for google-url. > > > > > > And update all the references from build/temp_gyp/googleurl.gyp to url/url.gyp. > > > > > > This also changes googleurl.gyp to reference the files under url/, so that we > > > don't break the Blink tree. > > > > > > BUG=229660 > > > R=brettw@chromium.org > > > TBR=brettw@chromium.org > > > > > > Review URL: https://chromiumcodereview.appspot.com/14089011 > > > > TBR=tfarina@chromium.org > > Review URL: https://codereview.chromium.org/14028012 > > TBR=michaeln@google.com > Review URL: https://codereview.chromium.org/14109014 TBR=michaeln@google.com Review URL: https://codereview.chromium.org/14263002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194151 0039d316-1c4b-4281-b951-d872f2087c98
* Lets try this again.michaeln@google.com2013-04-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Revert 193983 "Revert 193968 "Roll the DEPS for google-url."" > Revert 193968 "Roll the DEPS for google-url." > > > Roll the DEPS for google-url. > > > > And update all the references from build/temp_gyp/googleurl.gyp to url/url.gyp. > > > > This also changes googleurl.gyp to reference the files under url/, so that we > > don't break the Blink tree. > > > > BUG=229660 > > R=brettw@chromium.org > > TBR=brettw@chromium.org > > > > Review URL: https://chromiumcodereview.appspot.com/14089011 > > TBR=tfarina@chromium.org > Review URL: https://codereview.chromium.org/14028012 TBR=michaeln@google.com Review URL: https://codereview.chromium.org/14109014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193992 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 193968 "Roll the DEPS for google-url."michaeln@google.com2013-04-122-2/+2
| | | | | | | | | | | | | | | | | | | | > Roll the DEPS for google-url. > > And update all the references from build/temp_gyp/googleurl.gyp to url/url.gyp. > > This also changes googleurl.gyp to reference the files under url/, so that we > don't break the Blink tree. > > BUG=229660 > R=brettw@chromium.org > TBR=brettw@chromium.org > > Review URL: https://chromiumcodereview.appspot.com/14089011 TBR=tfarina@chromium.org Review URL: https://codereview.chromium.org/14028012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193983 0039d316-1c4b-4281-b951-d872f2087c98
* Roll the DEPS for google-url.tfarina@chromium.org2013-04-122-2/+2
| | | | | | | | | | | | | | | And update all the references from build/temp_gyp/googleurl.gyp to url/url.gyp. This also changes googleurl.gyp to reference the files under url/, so that we don't break the Blink tree. BUG=229660 R=brettw@chromium.org TBR=brettw@chromium.org Review URL: https://chromiumcodereview.appspot.com/14089011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193968 0039d316-1c4b-4281-b951-d872f2087c98
* Move path functions from file_util to FilePath object.brettw@chromium.org2013-04-121-2/+3
| | | | | | | | | | | | | | EnsureEndsWithSeparator used to check whether the file existed. This seems bad and unnecessary so I removed it. I removed file_util::ContainsPath and used the existing file_util::IsParent instead. The functions descriptions are the same but the implementations do slightly different things, which is worrying. The only non-test use of this function to worry about is content/browser/storage_partition_impl_map.cc. As far as I see, the requirements for this seem OK, but I'm not very familiar with this. After some discussion with akalin, I changed sync/internal_api/sync_manager_impl.cc to be a DCHECK that the path is absolute rather than make it absolute. The old code relied on the behavior of the old function that the argument would be unchanged if the file didn't exist, and this (possibly relative) path would be used later. This behavior doesn't make a lot of sense, and it looks like now that the path is always absolute, so I replaced this call with a DCHECK. BUG= Review URL: https://codereview.chromium.org/13196006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193855 0039d316-1c4b-4281-b951-d872f2087c98
* Add a space between string literals and PRIuSstuartmorgan@chromium.org2013-04-102-6/+6
| | | | | | | | | | | | | This is required to build on iOS (with the Xcode 4.6 toolchain) in C++11 mode, to avoid the error: "invalid suffix on literal; C++11 requires a space between literal and identifier" BUG=226494 Review URL: https://chromiumcodereview.appspot.com/13721002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193361 0039d316-1c4b-4281-b951-d872f2087c98
* Rewrite std::string("") to std::string(), Linux edition.dcheng@chromium.org2013-04-0923-81/+96
| | | | | | | | | | | | | | | | | | | This patch was generated by running the empty_string clang tool across the Chromium Linux compilation database. Implicitly or explicitly constructing std::string() with a "" argument is inefficient as the caller needs to emit extra instructions to pass an argument, and the constructor needlessly copies a byte into internal storage. Rewriting these instances to simply call the default constructor appears to save ~14-18 kilobytes on an optimized release build. BUG=none Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=193020 Review URL: https://codereview.chromium.org/13145003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193040 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Rewrite std::string("") to std::string(), Linux edition."dcheng@chromium.org2013-04-0923-96/+81
| | | | | | | | | | | | | | This reverts commit e59558b78e8c6a1b0bd916a724724b638c3c91b6. Revert "Fix build after r193020." This reverts commit 558a35897f6b3ffbcaefde927c1f150b815d140a. Revert "Really fix build after r193020." This reverts commit e3748a79b523a8d365d4a33ef986eebb4186fa78. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193030 0039d316-1c4b-4281-b951-d872f2087c98
* Rewrite std::string("") to std::string(), Linux edition.dcheng@chromium.org2013-04-0923-81/+96
| | | | | | | | | | | | | | | | | This patch was generated by running the empty_string clang tool across the Chromium Linux compilation database. Implicitly or explicitly constructing std::string() with a "" argument is inefficient as the caller needs to emit extra instructions to pass an argument, and the constructor needlessly copies a byte into internal storage. Rewriting these instances to simply call the default constructor appears to save ~14-18 kilobytes on an optimized release build. BUG=none Review URL: https://codereview.chromium.org/13145003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193020 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Refactor job ownership in SyncSchedulerrlarocque@chromium.org2013-04-067-478/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change separates the tracking of what work needs to be done from the decision of when to do it. Prior to this change, SyncSessionJobs were owned either by Closures posted to the sync thread's message loop, or held temporarily in unscheduled_nudge_storage_, a member of the SyncScheduler. Following this change, there can be only two jobs in existence, and they will be referenced only by the scoped_ptr members of SyncScheduler named pending_nudge_job_ and pending_configure_job_. This change, along with some previous changes to the way we schedule tasks, makes it possible to simplify the job "saving" logic. Jobs with purpose == NUDGE are saved by assigning them to pending_nudge_job_ or coalescing them with the existing pending_nudge_job_. Jobs with purpose == CONFIGURE are never coalesced, and can be saved in the pending_configure_job_ member. These changes allow us to make SyncSessionJob::Clone() obsolete. The logic in ScheduleNudgeImpl() has been updated to take advantage of the fact that the pending job is much easier to find now. It should now be much better at coalescing its sources. In other words, there will be less scenarios where it can drop notification hints. However, there are still some cases in DecideOnJob() that may induce it to drop hints unnecessarily. The scheduling logic has been modified, too. We've removed support for the nudge while in an exponential backoff interval. This makes it possible to track the next wakeup time using a single timer, since the wakeup event will be one of: - The end of a throttled interval - An end-of-backoff-interval retry - A scheduled nudge and these scenarios are now mutually exclusive. BUG=175024 Review URL: https://chromiumcodereview.appspot.com/13422003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192666 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Fix favicon updates to handle orphan nodeszea@chromium.org2013-04-051-0/+4
| | | | | | | | | | | | Image and tracking updates are now tracked separately, so that we properly distinguish between adds/updates. BUG=226539 Review URL: https://chromiumcodereview.appspot.com/13666003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192503 0039d316-1c4b-4281-b951-d872f2087c98
* [Android] Fix remaining linker errors for components buildyfriedman@chromium.org2013-04-031-2/+3
| | | | | | | | | | | Miscellaneous missing dependencies and a few more exports. BUG=158821 Review URL: https://chromiumcodereview.appspot.com/12988003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191944 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Bookmark unique position end-to-end supportrlarocque@chromium.org2013-04-0259-1365/+1831
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change rewrites the bookmark positioning system to use absolute, arbitrary-precision, unique positions from end-to-end. First, it introduces the concept of a UNIQUE_BOOKMARK_TAG. This has a similar format to the UNIQUE_CLIENT_TAG, though bookmarks have never supported unique tags previously. For new items, it is initialized based on the bookmark's originator client item ID (ie. the "c-" style ID) and the originator's cache_guid. These values should be globally unique. Many previously created items that exist in the database do not have this information available. Non-committed items will still have this information, and will have their tags set correctly. Previously committed items will have server style IDs and no hint as to what the originator_cache_guid is. In that common case, we will initialize the tag with a "fake" one based solely on the server ID. This has the advantage of being something that all existing clients will agree on, even it if new clients and updated items/the server will disagree with them. To bring everyone back into sync, whenever they receive an update clients will access the included originator_cache_guid and originator_client_item_id fields and reset the UNIQUE_BOOKMARK_TAG field according to the values they find there. Over time, clients should converge towards the same tag values. Next, this change adds the UNIQUE_POSITION and SERVER_UNIQUE_POSITION fields to each entry. See the UniquePosition class documentation for more information on their behaviour. New items should have their local position updated when they are first inserted into the list, which should happen shortly after they are initialized. Existing items will have these fields populated from the SERVER_ORDINAL_IN_PARENT field and the genrated UNIQUE_BOOKMARK_TAG. Unfortunately, all outstanding local changes will be lost during the migration. With the addition of UNIQUE_POSITION fields comes the removal of the PREV_ID and NEXT_ID fields. This required significant refactoring of the Directory so it could continue to support the PutPredecessor(), GetPredecessorId(), GetSuccessorId() and GetFirstChildId() functions. A new class, ParentChildIndex, has been introduced to contain some of the complexity introduced by the new system. See that class' documentation for more information. Communication with the server has also been affected by this change. The client will now set the unique_position field on every update. It will also set the legacy server_position_in_parent field with a value derrived from a truncation of its local UNIQUE_POSITION. This replaces the existing server position in parent calculation through interpolation. The receipt of updates has been changed as well. If the client receives an update with a unique_position, it will apply it. If the update was written by an older client, it will contain only the server_position_in_parent. In that case, the client will use that position and the unique tag derrived from the update to construct a unique position that approximates the server_position_in_parent value. This will work well if the clients have not exceeded the available precision in an int64. Otherwise, some spurious re-positioning may occur. Finally, all these changes required some updates to the tests. Some arbitrary position assertions had to be updated, since the arbitrary ordering has changed. Some test helpers have been updated to no longer automatically place bookmarks at the end of the list; that logic has been moved to the tests themselves. BUG=145412, 126505, 147715, 101852, 107744, 112203, 123429, 177521, 20011 Review URL: https://chromiumcodereview.appspot.com/11885024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191767 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a typo.yhirano@chromium.org2013-04-021-1/+1
| | | | | | | | | BUG=NONE Review URL: https://chromiumcodereview.appspot.com/13323012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191730 0039d316-1c4b-4281-b951-d872f2087c98