• Robbie McElrath's avatar
    Get NetworkChangeNotifier working on ChromeOS with network service. · 7b0677dd
    Robbie McElrath authored
    The current NetworkChangeNotifierChromeOS implementation won't work
    with the network service enabled because it listens for network changes
    from Shill, which only supports a single client. The browser process
    has other dependencies on Shill, so it has to be the client for the time
    being, meaning the network service can't directly listen for network
    changes and has to be notified of them from the browser process.
    
    This CL splits the NetworkChangeNotifierChromeOS into two parts;
    the first will live in the browser process and listen to Shill, while
    the second is the actual NetworkChangeNotifierChromeOS implementation
    which will have an instance in both the browser and network processes.
    Since NetworkChangeNotifierChromeOS can't actually listen for network
    changes itself, it just gets notified of changes from part 1 via a new
    method in NetworkChangeManager. When the thing listening to Shill sees
    a network change, it notifies its local NetworkChangeNotifierChromeOS
    instance, and calls the new NetworkChangeManager method, the
    implementation of which then notifies the network service's
    NetworkChangeNotifierChromeOS instance.
    
    Bug: 882610
    Cq-Include-Trybots: luci.chromium.try:linux_mojo
    Change-Id: Ib220575fbe42f026b1e5cb90d3bb6be9d0345414
    Reviewed-on: https://chromium-review.googlesource.com/c/1274445Reviewed-by: default avatarPaul Jensen <pauljensen@chromium.org>
    Reviewed-by: default avatarWill Harris <wfh@chromium.org>
    Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
    Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
    Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#606665}
    7b0677dd
browser_test_base.cc 21.9 KB