| 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.
|
|
|
|
|