• Anthony Vallee-Dubois's avatar
    Refactor FCMInvalidationService · dfc85f6b
    Anthony Vallee-Dubois authored
    FCMInvalidationService currently does 2 things: it observes changes to
    its IdentityProvider and maintains invalidations-related state. The seam
    between those responsibilities is pretty clear.
    
    In order to support invalidations for Machine-Level cloud policies on
    desktop browsers, we need to use the invalidations-related bits of
    FCMInvalidationService in a context where there is no IdentityProvider.
    This is different than the ChromeOS case where there's no Profile but a
    Device Level Robot Account is available (See
    AffiliatedInvalidationServiceProvider). Desktop browsers have no such
    robot account, therefore no IdentityProvider in the context of Machine-
    Level policies.
    
    This CL splits off the profile-agnostic parts of FCMInvalidationService
    into their own base class: FCMInvalidationServiceBase. This refactor
    should be a no-op, except it will allow us to add a second implementation
    of FCMInvalidationServiceBase that doesn't care about the presence of an
    account.
    
    The linked bug and the design doc (go/cbcm-machine-policy-invalidations)
    contain more context about this change.
    
    Bug: 1019791
    Change-Id: Ib659aaa7d52f18797c67eaa9faae6d78d746942c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1910423Reviewed-by: default avatarMarc Treib <treib@chromium.org>
    Reviewed-by: default avatarTatiana Gornak <melandory@chromium.org>
    Commit-Queue: anthonyvd <anthonyvd@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#714938}
    dfc85f6b
fcm_invalidation_service_base.cc 10.8 KB