• Evan Stade's avatar
    Webapps: introduce WebappsClient · 05dff50d
    Evan Stade authored
    Use it to sever a Chrome dependency from InstallableManager.
    
    ChromeWebappsClient is added to the //chrome/browser target in a
    new //chrome/browser/webapps directory, as there's no directory
    currently shared by Android and desktop for web apps. That is,
    //chrome/android/webapps and //chrome/browser/web_applications are
    platform-specific.
    
    Unfortunately the new method is called in many unit tests, so to
    avoid crashing we either have to instantiate a ChromeWebappsClient
    in each unit test (or unit test base class, i.e. at least
    BrowserWithTestWindowTest, ChromeRenderViewHostTestHarness, and
    ExtensionServiceTestBase), or we gracefully handle a missing
    client. I opted for the latter, although this decision may be
    revisited if many other WebappsClient callsites wind up needing to
    null check.
    
    Bug: 1147276
    Change-Id: I40eaa3e999dbe987aa4ecc2bbfaafb57cbcdc0cb
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2566743
    Auto-Submit: Evan Stade <estade@chromium.org>
    Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
    Reviewed-by: default avatarGlenn Hartmann <hartmanng@chromium.org>
    Commit-Queue: Evan Stade <estade@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#833540}
    05dff50d
browser_process_impl.cc 53.1 KB