• jamescook@chromium.org's avatar
    Reland: Refactor code that defers extension background page loading · 6b54fda6
    jamescook@chromium.org authored
    src/extensions depends on chrome::NOTIFICATION_PROFILE_CREATED to support
    deferred loading of extension background pages when the profile isn't ready
    yet. This is a layering violation.
    
    * Remove Chrome concepts like "browser window ready" and "profile created"
    from ProcessManager. Introduce ProcessManagerDelegate with a general concept
    of deferring background page loading.
    * Consolidate all the tricky Chrome-specific background page loading rules into
    ChromeProcessManagerDelegate. This keeps all the rules in one place. Annotate
    each block of special case code with the bug that inspired it.
    * Extend unit test coverage for ProcessManager.
    
    This will make it easier to eliminate chrome::NOTIFICATION_PROFILE_DESTROYED
    in ProcessManager in a later CL.
    
    (Original CL https://codereview.chromium.org/381283002 broke valgrind bots
    because it was initializing left-over BrowserContextKeyedServices from tests
    running earlier in the same process.)
    
    BUG=392658
    TEST=unit_tests ProcessManagerTest, browser_tests ProcessManagerBrowserTest, manual
    
    Review URL: https://codereview.chromium.org/408523005
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284593 0039d316-1c4b-4281-b951-d872f2087c98
    6b54fda6
chrome_extensions_browser_client.cc 9.84 KB