summaryrefslogtreecommitdiffstats
path: root/sync/syncable
Commit message (Collapse)AuthorAgeFilesLines
* sync: Expose BuildCommitItem helper functionrlarocque@chromium.org2013-08-272-5/+7
| | | | | | | | | | | | | Refactor the part of BuildCommitCommand responsible for serializing a single syncable::Entry into a commit message protobuf into a separate function. This will be useful when we try to refactor the sync engine to be more model-type aware. BUG=278484 Review URL: https://chromiumcodereview.appspot.com/22859066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219670 0039d316-1c4b-4281-b951-d872f2087c98
* Fix missing const-reference on parameter.etienneb@chromium.org2013-08-222-4/+4
| | | | | | | | | | | | This issue was found by a linter. R=nick@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/23286004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218887 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add CoreTypes supportzea@chromium.org2013-07-181-2/+22
| | | | | | | | | | | | | Previously we manually added "always enable" types from within the DataTypeManager. Now the notion of types to always enable is pulled into its own construct, CoreTypes (and it's sibling PriorityCoreTypes). Tests have been updated to exercise this, and SyncedNotifications has been added as the first Core type. BUG=245762 Review URL: https://chromiumcodereview.appspot.com/19227004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212232 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of the message_loop header in ppapi/, printing/, rlz/, ↵avi@chromium.org2013-07-181-1/+1
| | | | | | | | | | | | sync/. BUG=260807 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/19627002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212193 0039d316-1c4b-4281-b951-d872f2087c98
* Rename base::Delete to base::DeleteFilebrettw@chromium.org2013-07-162-4/+4
| | | | | | | | | | | Also renames DeleteAfterReboot to DeleteFileAfterReboot, and removes FileUtilProxy::RecursiveDelete which was never called. BUG= R=shess@chromium.org Review URL: https://codereview.chromium.org/18584011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211822 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add password support to sync apizea@chromium.org2013-07-101-0/+1
| | | | | | | | | | | This change modifies the password protobuf definition and the sync generic change processor in order to support passwords custom encryption scheme. BUG=117445 Review URL: https://chromiumcodereview.appspot.com/18551007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210915 0039d316-1c4b-4281-b951-d872f2087c98
* Move file_util::Delete to the base namespacebrettw@chromium.org2013-07-012-4/+4
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/16950028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209475 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of time headers in rlz/, skia/, sql/, sync/.avi@chromium.org2013-06-282-2/+2
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://codereview.chromium.org/18031009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209152 0039d316-1c4b-4281-b951-d872f2087c98
* Add base namespace to more values in sync and elsewhere.brettw@chromium.org2013-06-215-10/+10
| | | | | | | | | | This makes sync and net compile with no "using *Value". BUG= Review URL: https://codereview.chromium.org/17034006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207907 0039d316-1c4b-4281-b951-d872f2087c98
* [sql] Add histogram tags to sync databases.shess@chromium.org2013-06-162-0/+7
| | | | | | | | | | This allow tracking SQLite errors and other info in the wild. BUG=none Review URL: https://chromiumcodereview.appspot.com/16987009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206629 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Reduce work done to process bookmark changesrlarocque@chromium.org2013-06-154-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ChangeReorderBuffer and BookmarkChangeProcessor collaborate to handle bookmark-specific ordering and hierarchy requirements. With a bit of help from the directory and some changes to these classes, we can achieve the same effect as before with less work. Prior to this CL, the BookmarkChangeProcessor would apply a position-affecting from sync to the bookmark model by updating all siblings of the position change in left to right order. The idea was to have all the predecessors of the modified item in sync before applying the change. The ChangeReorderBuffer helps out by manufacturing fake changes for siblings of position changes, and delivering them all to the BookmarkChangeProcessor in syncable::Directory left-to-right order. This CL works solves the issue by splitting the work up into two separate passes. On the first pass, any modified nodes are moved to the far right within their parent folder. The second pass iterates over these modified items in syncable::Directory left-to-right position order, and moves them to the proper index in the bookmark model. This has the same effect as the earlier algorithm: all predecessors are synced at the time of the final move operation. This should be much cheaper than modifying all the siblings of a position change. This new algorithm also allows us to remove lots of sibling ordering requirements from the ChangeReorderBuffer and related functions, since the BookmarkChangeProcessor no longer requires its changes to be delivered in sibling order. It also no longer needs to manufacture fake changes for siblings of position changes. This CL also includes a few cosmetic changes to the BookmarkChangeProcessor. BUG=123429 Review URL: https://chromiumcodereview.appspot.com/16507010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206572 0039d316-1c4b-4281-b951-d872f2087c98
* Rewrite scoped_ptr<T>(NULL) to use the default ctor in sync/.dcheng@chromium.org2013-06-121-1/+1
| | | | | | | | | | | This is the result of running the rewrite_scoped_ptr_ctor_null tool across all files built on Linux in the sync/ directory. BUG=173286 Review URL: https://chromiumcodereview.appspot.com/16654009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205919 0039d316-1c4b-4281-b951-d872f2087c98
* Rename base/hash_tables to base/containers/hash_tables.brettw@chromium.org2013-06-112-2/+2
| | | | | | | | | | | Remove forwarding header BUG= R=avi@chromium.org Review URL: https://codereview.chromium.org/16667019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205584 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of strings headers in rlz/, sandbox/, skia/, sql/, sync/.avi@chromium.org2013-06-117-7/+7
| | | | | | | | | | BUG=247723 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/16358024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205458 0039d316-1c4b-4281-b951-d872f2087c98
* Move FileEnumerator to its own file, do some refactoring.brettw@chromium.org2013-06-081-0/+1
| | | | | | | | | | | | | | It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked. BUG=175002 Reland of 198820 and 298824 Original review = https://codereview.chromium.org/13165005 R=rvargas@chromium.org Review URL: https://codereview.chromium.org/16392011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205019 0039d316-1c4b-4281-b951-d872f2087c98
* Always sync managed users.bauerb@chromium.org2013-06-071-1/+1
| | | | | | | | BUG=228833 Review URL: https://chromiumcodereview.appspot.com/16302005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204831 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Cleanups in and around directory.hrlarocque@chromium.org2013-06-078-204/+120
| | | | | | | | | | | | | | | | | | | - Remove MockDirectorySyncerCommand (not used). - Remove MockDirectory (used only by MockDirectorySyncerCommand). - Remove Directory::InitKernelForTest (used only by MockDirectory). - Merge ChildHandles and UnsyncedMetahandles typedefs into a single Metahandles typedef. - Rearrange declarations in directory.h to match Google C++ style. - Create scoped_kernel_lock.cc; move related definitions from directory.cc to this new file. - Use DISALLOW_COPY_AND_ASSIGN instead of declaring an undefined Directory::operator= manually. BUG=245931 Review URL: https://chromiumcodereview.appspot.com/16591002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204828 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Allow enabling partial sets of types instead of blockingzea@chromium.org2013-06-074-60/+145
| | | | | | | | | | | | | | | | | | | Blocking the datatype manager when datatypes fail to start is a sign of encryption issues, but is not fatal to sync. Therefore, it makes more sense to sync what we can (particularly so we can receive birthday updates), while marking those types with encryption problems as failed. To accomplish this we move all automatic reconfiguration logic into the data type manager itself, and add support for delayed association by unapplying all types with cryptographer errors. This also lays the groundwork for delayed association when a transaction version discrepancy is detected. BUG=238712 Review URL: https://chromiumcodereview.appspot.com/15013004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204695 0039d316-1c4b-4281-b951-d872f2087c98
* Use hash_map for syncable::Directory indicesrlarocque@chromium.org2013-06-0415-549/+493
| | | | | | | | | | | | | | | | | | | | | | | The hash map is less convenient to use, but it promises much better expected algorithmic complexity for the most common directory operations. The indices converted with this patch almost never require iteration, so it makes much more sense to use a hash_map (ie. unordered_map) than a regular map. This change also introduces a new index based on the server-assigned unique tag. The server-assigned tag is set only on permanent items, so there won't be many items in this index. I ran some tests locally to confirm the new code does run faster. On certain model association tests I saw a speedup of ~10%. I doubt we'll see that much of a speedup in real world scenarios, but it could be a noticeable improvement on some of our slower platforms. BUG=238621, 115132, 241813 Review URL: https://chromiumcodereview.appspot.com/16231009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204069 0039d316-1c4b-4281-b951-d872f2087c98
* Prioritize configuration of data types in data type manager.haitaol@chromium.org2013-05-311-1/+1
| | | | | | | | | | Download and associate high-priority types (control types, priority preference and managed users for now) before other types. BUG=236456 Review URL: https://chromiumcodereview.appspot.com/15067016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203486 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Count nodes more efficientlyrlarocque@chromium.org2013-05-294-0/+54
| | | | | | | | | | | | | | | | | | | The GetTotalNodesCount() function is called sufficiently often that it makes sense to spend some effort optimizing its implementation. The current implementation uses some traversal functions that are fairly slow, especially since GetSuccessorId() was made more expensive by the implementation of UniquePositions. This change moves the implementation into the syncable::Directory. This allows it to take advantage of the Directory's internal data structures and avoid unnecessary lookups. BUG=248143,238621 Review URL: https://chromiumcodereview.appspot.com/15322003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202973 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Better iteration in GenericChangeProcessorrlarocque@chromium.org2013-05-282-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces a new function for fetching the handles of all children of a sync node, then puts it to use in optimizing the GenericChangeProcessor's GetSyncDataForType() function. Prior to the UniquePosition changes, it was simple and cheap to fetch the ID of a successor or predecessor item. After the change, it requires a few expensive map lookups. In other words, GetSuccessorId() has gone from being O(1) to O(lg(n)). This is a especially a problem in code paths where we use GetSuccessorId() to iterate over all nodes in a folder. The UniquePosition change also makes it pretty easy to fetch all child nodes under a given parent. We could easily return all the EntryKernels under a given folder. Unfortunately, the APIs don't make it easy to expose that functionality. Instead, we do something less efficient, but still much better than the status quo: return the IDs of all the children. The caller will need to look up each entry at O(lg(n)) cost, but at least it didn't have to do two lookups to fetch each ID. This change should lead to a slight performance improvement in the ModelAssociation time of types that use the GenericChangeProcessor. BUG=178275, 241813 Review URL: https://chromiumcodereview.appspot.com/14667013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202673 0039d316-1c4b-4281-b951-d872f2087c98
* Add Sync data type for managed users.bauerb@chromium.org2013-05-242-2/+27
| | | | | | | | | TBR=atwilson@chromium.org BUG=228833 Review URL: https://chromiumcodereview.appspot.com/15177003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202026 0039d316-1c4b-4281-b951-d872f2087c98
* 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
* 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: Use base::MessageLoop.xhwang@chromium.org2013-05-071-4/+4
| | | | | | | | | 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
* 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-302-3/+3
| | | | | | | | | | | 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
* Add ManagedUserSettings Sync data type.bauerb@chromium.org2013-04-172-2/+27
| | | | | | | | | | | 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
* Rewrite std::string("") to std::string(), Linux edition.dcheng@chromium.org2013-04-094-4/+4
| | | | | | | | | | | | | | | | | | | 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-094-4/+4
| | | | | | | | | | | | | | 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-094-4/+4
| | | | | | | | | | | | | | | | | 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: Bookmark unique position end-to-end supportrlarocque@chromium.org2013-04-0227-599/+1374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* sync: Implementation of Priority Preferences.albertb@chromium.org2013-03-271-3/+7
| | | | | | | | | | | | | Priority preferences are similar to normal preferences but are never encrypted and are synced ahead of other datatypes. Because they're never encrypted, on first sync, they can be synced immediately after login, before the user is prompted for a passphrase. Expected uses of priority preferences include hardware setting (eg. trackpad speed, scroll direction, etc.) as well as settings that could be 2-way synced with existing Google Account settings (eg. language). BUG=168648 Review URL: https://chromiumcodereview.appspot.com/12033093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191047 0039d316-1c4b-4281-b951-d872f2087c98
* sync: Define histogram ints for model typesrlarocque@chromium.org2013-03-152-0/+83
| | | | | | | | | | | | | | | | | | | | | | The common practice of using enums directly when counting histograms works only if the enums' values never change. Unfortunately, we insert into the middle of the list of ModelTypes all the time. Rather than change the way we manage the list of model type enums, we decided to separate the model types values from those used when reporting histograms. This change defines a mapping from model types to integers. These integers should be kept in sync with integer to label mapping defined in histograms.xml. This mapping is often similar to, but does not necessarily match, the int values of the enums. BUG=190015 Review URL: https://chromiumcodereview.appspot.com/12820010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188314 0039d316-1c4b-4281-b951-d872f2087c98
* src/: Update the remaining include paths of string_split.h to its new location.tfarina@chromium.org2013-03-061-1/+1
| | | | | | | | | | BUG=175186 TBR=brettw@chromium.org Review URL: https://chromiumcodereview.appspot.com/12473004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186462 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 182527" ([Sync] Make SESSIONS an implicit type)zea@chromium.org2013-03-022-8/+16
| | | | | | | | | | | | | | Win_aura compile failure seems like bot flakiness Original codereview at https://codereview.chromium.org/11961030/ TBR=tim@chromium.org,jhawkins@chromium.org BUG=170162 Review URL: https://chromiumcodereview.appspot.com/12286007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185743 0039d316-1c4b-4281-b951-d872f2087c98
* Add WriteNode::Drop() to delete entry locally but not on server.haitaol@chromium.org2013-02-271-0/+4
| | | | | | | | BUG=177080 Review URL: https://chromiumcodereview.appspot.com/12190008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184838 0039d316-1c4b-4281-b951-d872f2087c98
* Move file_path.h to base/files.brettw@chromium.org2013-02-243-3/+3
| | | | | | TBR=sky git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184344 0039d316-1c4b-4281-b951-d872f2087c98
* enable -Wstring-conversion when compiling with clangscottmg@chromium.org2013-02-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary of try run with flag enabled as warning: On linux_clang, there's false positives from a bunch of assert usage that does !"string" or "string" for a true or false value. It's only in third_party (Mesa, skia, libjingle, etc.) so it probably wouldn't be too hard to disable the warnings in those subtrees. It diagnoses 4 useful locations: 1. ../../base/debug/trace_event_unittest.cc:70:41: warning: implicit conversion turns string literal into bool: 'const char [2]' to 'bool' [-Wstring-conversion] TraceLog::GetInstance()->SetEnabled("*"); ~~~~~~~~ ^~~ 2. ../../sync/syncable/entry_kernel.cc:77:38: warning: implicit conversion turns string literal into bool: 'const char [5]' to 'bool' [-Wstring-conversion] value->SetBoolean("encrypted", "true"); ~~~~~ ^~~~~~ 3. ../../chrome/browser/webdata/web_data_service.cc:334:17: warning: implicit conversion turns string literal into bool: 'const char [44]' to 'bool' [-Wstring-conversion] DLOG_ASSERT("WebDataService dtor called without Shutdown"); ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../base/logging.h:595:43: note: expanded from macro 'DLOG_ASSERT' 4. ../../chrome/browser/renderer_host/web_cache_manager_unittest.cc:259:20: warning: implicit conversion turns string literal into bool: 'const char [29]' to 'bool' [-Wstring-conversion] EXPECT_FALSE("Unexpected entry in strategy"); ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Finding #1 is what made me look into this, #3 and #4 are not doing what they're supposed to, and #2 is kind of funny so not all is lost. So, 3 bugs and 1 very-close-to-a-bug: seems worth enabling. R=thakis@chromium.org TBR=darin@chromium.org, dhollowa@chromium.org, brettw@chromium.org, zea@chromium.org BUG=177306 Review URL: https://chromiumcodereview.appspot.com/12258039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183998 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Single definition of set of user selectable sync typesmgist@chromium.org2013-02-211-0/+18
| | | | | | | | | | | | | | Remove multiple redefinitions of the sync types which are user selectable, and consolidate definition to one set that allows for easily checking which types are user selectable, and iterating over the set of user selectable types. BUG=171049 TBR=jhawkins Review URL: https://chromiumcodereview.appspot.com/12289014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183858 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add boilerplate for favicons typezea@chromium.org2013-02-202-2/+50
| | | | | | | | | | | | There are actually two types, the type for the images, and the type for the tracking data. BUG=154886 Review URL: https://chromiumcodereview.appspot.com/12181003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183443 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove deprecated base::Value methods from sync. Use base::Value too.thestig@chromium.org2013-02-164-40/+47
| | | | | | Review URL: https://chromiumcodereview.appspot.com/12262057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182922 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 182527isherman@chromium.org2013-02-141-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Caused compile failure on Win Aura > [Sync] Make SESSIONS an implicit type > > We add TABS as a new local type, which is now what is enabled via the user > settings. It implicitly enables SESSIONS. > > Similarly, History now corresponds with Typed URLs, which implicitly enables > history delete directives if the proper command line flag is passed. > > Finally, History delete directives implicitly enables SESSIONS, which we can do > because Sessions is no longer a user selectable type. > > BUG=170162 > TBR=jhawkins@chromium.org > > Review URL: https://chromiumcodereview.appspot.com/11961030 TBR=zea@chromium.org Review URL: https://codereview.chromium.org/12271002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182529 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Make SESSIONS an implicit typezea@chromium.org2013-02-141-1/+7
| | | | | | | | | | | | | | | | | | We add TABS as a new local type, which is now what is enabled via the user settings. It implicitly enables SESSIONS. Similarly, History now corresponds with Typed URLs, which implicitly enables history delete directives if the proper command line flag is passed. Finally, History delete directives implicitly enables SESSIONS, which we can do because Sessions is no longer a user selectable type. BUG=170162 TBR=jhawkins@chromium.org Review URL: https://chromiumcodereview.appspot.com/11961030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182527 0039d316-1c4b-4281-b951-d872f2087c98
* Replace FilePath with base::FilePath in some more top level directories.brettw@chromium.org2013-02-106-16/+16
| | | | | | Review URL: https://codereview.chromium.org/12217101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181640 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Add support for proxy typeszea@chromium.org2013-02-086-23/+69
| | | | | | | | | | | | | Proxy types are those that have no sync representation, and are used as placeholder to implicitly enable other types. They are never communicated to the server, and have no presence in the local sync directory. BUG=170162,139726 TBR=jam@chromium.org Review URL: https://chromiumcodereview.appspot.com/11958029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181534 0039d316-1c4b-4281-b951-d872f2087c98
* Linux/ChromeOS Chromium style checker cleanup, sync/ edition.rsleevi@chromium.org2013-02-071-1/+1
| | | | | | | | | | | Automated clean up of style checker errors that were missed due to the plugin not being executed on implementation files. BUG=115047 Review URL: https://chromiumcodereview.appspot.com/12209033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181373 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Remove unecessary DCHECK in Directory::PurgeEntriesWithTypeInnyquist@chromium.org2013-02-051-2/+0
| | | | | | | | | | | | | There is currently a DCHECK in Directory::PurgeEntriesWithTypeIn that is not needed and not necessarily correct. It triggers if there are multiple datatypes being disabled at different times. BUG=113164 Review URL: https://chromiumcodereview.appspot.com/12226014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180786 0039d316-1c4b-4281-b951-d872f2087c98
* [sync] Componentize sync: Part Final: Target 'sync' is now its own componentrsimha@chromium.org2013-02-015-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the long term goals of the sync team has been to pull sync out of chrome_dll and into its own component. This should result in faster link times for component builds, and cleaner demarcation between sync code and the rest of chrome. This patch does the following: - Splits off sync.gyp into gypi files for sync_core, sync_api, sync_internal_api, sync_notifier and sync_proto. - Audits the dependencies of various targets in sync.gyp, sync_tests.gyp, and other chrome gyp files, and makes sure all dependencies are explicitly declared. - Makes targets declared in gyp files outside sync.gyp directly depend on sync.gyp:sync instead of inner sync targets. - Implements two versions of the target 'sync.gyp:sync': 1) In static mode, the public 'sync' target has a target type of 'none', and is composed of the static library targets 'sync_api', 'sync_core', 'sync_internal_api', 'sync_notifier', and 'sync_proto'. 2) In component mode, we build the public 'sync' target into a single shared library, which includes the contents of sync_api.gypi, sync_core.gypi, sync_internal_api.gypi, sync_notifier.gypi, and sync_proto.gypi. TBR=akalin,robertshield,thakis BUG=136928 TEST=Set GYP_DEFINES="component=shared_library" and build the 'all' target on all platforms. Review URL: https://codereview.chromium.org/11412211 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180034 0039d316-1c4b-4281-b951-d872f2087c98