• Mikel Astiz's avatar
    Introduce generic bridge for SyncableService-s · 2c8259e6
    Mikel Astiz authored
    The class allows legacy datatypes (non-USS), which implement
    SyncableService, to be integrated within the USS architecture, making
    it possible to reuse central objects like
    ClientTagBasedModelTypeProcessor and ModelTypeWorker.
    
    Design Doc (Googlers only):
    https://docs.google.com/document/d/14ScYZ0sop921gjBwXuReIEuQJlwftqkuSM1jMK_A_x4
    
    In this first patch, we introduce the bridge itself. Follow-up patches
    will introduce the necessary plumbing to exercise it.
    
    Expected main benefits:
    - Unify logic across datatypes by avoiding subtle behavioral differences
      across architectures.
    - Remove lots of code (~25K LoC), hence:
      a) reduce Chrome binary size.
      b) reduce maintenance cost.
      c) eng ramp-up time.
    - Improve resource footprint (less RAM, ~50% savings).
    - Reduce the gap for datatypes to actually migrate to USS.
    - Unblock multiple cleanup work, including a massive simplification of
      DataTypeManager and related classes, including controllers.
    
    Bug: 870624
    Change-Id: I1bd7f553bf22886c5136e7e12f13b37a3dc77a39
    Reviewed-on: https://chromium-review.googlesource.com/1164742Reviewed-by: default avatarMarc Treib <treib@chromium.org>
    Commit-Queue: Mikel Astiz <mastiz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#595017}
    2c8259e6
persisted_entity_data.proto 759 Bytes