sync: remove use of protobuf extensions in protocol to reduce static init overhead.

Instead, we now use optional fields in EntitySpecifics.  Because the tag numbers remain
the same, this is a wire-format compatible change.

This incurs a (#datatypes * sizeof(void*))*#sync_items memory cost, due to storing extra pointers.  In practice, for a typical account on windows this amounts to < 200k, and the static init cost is believed to be greater.

Note - upcoming features in protobufs may let us eliminate this extra memory overhead.

Also: The testserver tests were broken on ToT due to a bug in _SaveEntry's saving of mtime which is fixed in this patch.

[email protected]
[email protected]
[email protected]
[email protected]

BUG=94992, 94925


Review URL: http://codereview.chromium.org/9460047

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124912 0039d316-1c4b-4281-b951-d872f2087c98
69 files changed