• Sebastien Marchand's avatar
    Reland "RC: Encapsulate most of the singletons into ResourceCoordinatorParts" · 2ebd9254
    Sebastien Marchand authored
    This is a reland of 14754da5 with some
    fixes (see the ps #1..#2 diff).
    
    The problem in the previous CL was that the LocalDB WCObserver was
    sometime created despite not having a PageSignalReceiver, this caused
    some access violation because this WCO relies on some signal sent by the
    PSR. I've added a check to prevent creating this WCO when the PSR isn't
    available (and fixed some tests to make them create one).
    
    // Confirmed with sky@ that he's ok with me relanding this without his
    // +1 as none of the files he owns have changed.
    TBR=sky@chromium.org
    
    Original change's description:
    > RC: Encapsulate most of the singletons into ResourceCoordinatorParts
    >
    > There's several singletons / global instances in c/b/rc that are leaked
    > at shutdown, this is causing some issues in runs of unit_tests because
    > we end up re-using them between different test runs that should be
    > independent. This is currently preventing some feature to be enabled.
    >
    > This CL add a new ResourceCoordinatorParts class that encapsulate all
    > these objects that should be created only once, an instance of this
    > class is owned by the browser process.
    >
    > Change-Id: Ia64618b6f47052815d861ff6820d994f8a65cc64
    > Reviewed-on: https://chromium-review.googlesource.com/c/1290775
    > Reviewed-by: Scott Violet <sky@chromium.org>
    > Reviewed-by: Chris Hamilton <chrisha@chromium.org>
    > Reviewed-by: François Doray <fdoray@chromium.org>
    > Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#606061}
    
    Change-Id: I71feb4ea233d02cb5cc001c12e3cdd7f6ddd795b
    Reviewed-on: https://chromium-review.googlesource.com/c/1324134
    Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
    Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#606548}
    2ebd9254
tab_manager.cc 42.8 KB