Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(560)

Unified Diff: net/tools/testserver/chromiumsync.py

Issue 9570055: [Sync] Add support for associating a new Synced Bookmarks node. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, address comments Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/tools/testserver/chromiumsync.py
diff --git a/net/tools/testserver/chromiumsync.py b/net/tools/testserver/chromiumsync.py
index f8d7a5a3d191d956cc5b235acb36f4960b4552fe..752d6a4650d8e31808d0fff8d3724eb7cda3eb20 100755
--- a/net/tools/testserver/chromiumsync.py
+++ b/net/tools/testserver/chromiumsync.py
@@ -264,13 +264,18 @@ class PermanentItem(object):
sync_type: A value from ALL_TYPES, giving the datatype of this permanent
item. This controls which types of client GetUpdates requests will
cause the permanent item to be created and returned.
+ create_by_default: Whether the permanent item is created at startup or not.
+ This value is set to True in the default case. Non-default permanent items
+ are those that are created only when a client explicitly tells the server
+ to do so.
"""
- def __init__(self, tag, name, parent_tag, sync_type):
+ def __init__(self, tag, name, parent_tag, sync_type, create_by_default=True):
self.tag = tag
self.name = name
self.parent_tag = parent_tag
self.sync_type = sync_type
+ self.create_by_default = create_by_default
class MigrationHistory(object):
@@ -409,6 +414,9 @@ class SyncDataModel(object):
parent_tag='google_chrome_bookmarks', sync_type=BOOKMARK),
PermanentItem('other_bookmarks', name='Other Bookmarks',
parent_tag='google_chrome_bookmarks', sync_type=BOOKMARK),
+ PermanentItem('synced_bookmarks', name='Synced Bookmarks',
+ parent_tag='google_chrome_bookmarks', sync_type=BOOKMARK,
+ create_by_default=False),
PermanentItem('google_chrome_preferences', name='Preferences',
parent_tag='google_chrome', sync_type=PREFERENCE),
PermanentItem('google_chrome_autofill', name='Autofill',
@@ -595,15 +603,15 @@ class SyncDataModel(object):
self._WritePosition(entry, self._ServerTagToId(spec.parent_tag))
self._SaveEntry(entry)
- def _CreatePermanentItems(self, requested_types):
- """Ensure creation of all permanent items for a given set of sync types.
+ def _CreateDefaultPermanentItems(self, requested_types):
+ """Ensure creation of all default permanent items for a given set of types.
Args:
requested_types: A list of sync data types from ALL_TYPES.
- Permanent items of only these types will be created.
+ All default permanent items of only these types will be created.
"""
for spec in self._PERMANENT_ITEM_SPECS:
- if spec.sync_type in requested_types:
+ if spec.sync_type in requested_types and spec.create_by_default:
self._CreatePermanentItem(spec)
def ResetStoreBirthday(self):
@@ -634,7 +642,7 @@ class SyncDataModel(object):
if not sieve.HasAnyTimestamp():
return (0, [], 0)
min_timestamp = sieve.GetMinTimestamp()
- self._CreatePermanentItems(sieve.GetFirstTimeTypes())
+ self._CreateDefaultPermanentItems(sieve.GetFirstTimeTypes())
change_log = sorted(self._entries.values(),
key=operator.attrgetter('version'))
new_changes = [x for x in change_log if x.version > min_timestamp]
@@ -925,6 +933,18 @@ class SyncDataModel(object):
nigori_new.specifics.nigori.sync_tabs = True
self._SaveEntry(nigori_new)
+ def TriggerCreateSyncedBookmarks(self):
+ """Create the Synced Bookmarks folder under the Bookmarks permanent item.
+
+ Clients will then receive the Synced Bookmarks folder on future
+ GetUpdates, and new bookmarks can be added within the Synced Bookmarks
+ folder.
+ """
+
+ synced_bookmarks_spec, = [spec for spec in self._PERMANENT_ITEM_SPECS
+ if spec.tag == "synced_bookmarks"]
+ self._CreatePermanentItem(synced_bookmarks_spec)
+
def SetInducedError(self, error, error_frequency,
sync_count_before_errors):
self.induced_error = error
@@ -1074,6 +1094,13 @@ class TestServer(object):
200,
'<html><title>Sync Tabs</title><H1>Sync Tabs</H1></html>')
+ def HandleCreateSyncedBookmarks(self):
+ """Create the Synced Bookmarks folder under Bookmarks."""
+ self.account.TriggerCreateSyncedBookmarks()
+ return (
+ 200,
+ '<html><title>Synced Bookmarks</title><H1>Synced Bookmarks</H1></html>')
+
def HandleCommand(self, query, raw_request):
"""Decode and handle a sync command from a raw input of bytes.
« no previous file with comments | « chrome/browser/sync/test/integration/two_client_bookmarks_sync_test.cc ('k') | net/tools/testserver/chromiumsync_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698