diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-22 02:13:47 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-22 02:13:47 +0000 |
commit | 6b54fda654446046577e4b9c10c48eb61b022ebb (patch) | |
tree | 4707735b1e04dc6669d4baebc6e28dfa31f19c55 /apps | |
parent | e25bbc6831ccc2d0a924c3b0d8ce79469beff32c (diff) | |
download | chromium_src-6b54fda654446046577e4b9c10c48eb61b022ebb.zip chromium_src-6b54fda654446046577e4b9c10c48eb61b022ebb.tar.gz chromium_src-6b54fda654446046577e4b9c10c48eb61b022ebb.tar.bz2 |
Reland: Refactor code that defers extension background page loading
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
Diffstat (limited to 'apps')
-rw-r--r-- | apps/shell/browser/shell_extensions_browser_client.cc | 11 | ||||
-rw-r--r-- | apps/shell/browser/shell_extensions_browser_client.h | 5 |
2 files changed, 4 insertions, 12 deletions
diff --git a/apps/shell/browser/shell_extensions_browser_client.cc b/apps/shell/browser/shell_extensions_browser_client.cc index 76f4a83..54b0df8 100644 --- a/apps/shell/browser/shell_extensions_browser_client.cc +++ b/apps/shell/browser/shell_extensions_browser_client.cc @@ -183,14 +183,9 @@ void ShellExtensionsBrowserClient::GetEarlyExtensionPrefsObservers( content::BrowserContext* context, std::vector<ExtensionPrefsObserver*>* observers) const {} -bool ShellExtensionsBrowserClient::DeferLoadingBackgroundHosts( - BrowserContext* context) const { - return false; -} - -bool ShellExtensionsBrowserClient::IsBackgroundPageAllowed( - BrowserContext* context) const { - return true; +ProcessManagerDelegate* +ShellExtensionsBrowserClient::GetProcessManagerDelegate() const { + return NULL; } scoped_ptr<ExtensionHostDelegate> diff --git a/apps/shell/browser/shell_extensions_browser_client.h b/apps/shell/browser/shell_extensions_browser_client.h index 2013c6d..b6a20f7 100644 --- a/apps/shell/browser/shell_extensions_browser_client.h +++ b/apps/shell/browser/shell_extensions_browser_client.h @@ -59,10 +59,7 @@ class ShellExtensionsBrowserClient : public ExtensionsBrowserClient { virtual void GetEarlyExtensionPrefsObservers( content::BrowserContext* context, std::vector<ExtensionPrefsObserver*>* observers) const OVERRIDE; - virtual bool DeferLoadingBackgroundHosts(content::BrowserContext* context) - const OVERRIDE; - virtual bool IsBackgroundPageAllowed(content::BrowserContext* context) - const OVERRIDE; + virtual ProcessManagerDelegate* GetProcessManagerDelegate() const OVERRIDE; virtual scoped_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate() OVERRIDE; virtual bool DidVersionUpdate(content::BrowserContext* context) OVERRIDE; |