summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-22 02:13:47 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-22 02:13:47 +0000
commit6b54fda654446046577e4b9c10c48eb61b022ebb (patch)
tree4707735b1e04dc6669d4baebc6e28dfa31f19c55 /apps
parente25bbc6831ccc2d0a924c3b0d8ce79469beff32c (diff)
downloadchromium_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.cc11
-rw-r--r--apps/shell/browser/shell_extensions_browser_client.h5
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;