• Colin Blundell's avatar
    [iOS] Bring up support for per-user services on iOS · d4c96c75
    Colin Blundell authored
    This CL augments the existing ServiceManager embedding on iOS with
    support for per-user embedded services. A "per-user" service is one
    that has one instance per user, rather than a shared instance for all
    users. Concretely, each BrowserState has a unique UserID, and there is
    one instance of a per-user service per UserID. Essentially, one can
    think of per-user services as the equivalent of profile-keyed services
    in the services world.
    
    The support added in this CL closely follows that of //content:
    
    - Public APIs are identical
    - Implementation in BrowserState follows that of BrowserContext with minor
      changes:
      - iOS doesn't use File Service at this time
      - No client of //ios/web needs to override how a user ID is generated
    
    This CL adds an Earl Grey test of web_shell that a per-user service can be
    embedded and if connected to from a given BrowserState, has its user ID
    properly associated with that of the BrowserState.
    
    Finally, this added support requires that all BrowserState subclasses call
    BrowserState::Initialize(). This is also done in this CL.
    
    Bug: 731588
    Change-Id: Ie3bb79d4f754aecddd9c35c72576262dfc87cb55
    Reviewed-on: https://chromium-review.googlesource.com/559529Reviewed-by: default avatarKen Rockot <rockot@chromium.org>
    Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
    Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
    Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
    Commit-Queue: Colin Blundell <blundell@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#485547}
    d4c96c75
test_browser_state.cc 2.04 KB