| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_ |
| #define EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_ |
| |
| namespace content { |
| class BrowserContext; |
| }; |
| |
| namespace extensions { |
| |
| class Extension; |
| |
| // Customization of ProcessManager for the extension system embedder. |
| class ProcessManagerDelegate { |
| public: |
| virtual ~ProcessManagerDelegate() {} |
| |
| // Returns true if the embedder allows background pages for the given |
| // |context|. |
| virtual bool AreBackgroundPagesAllowedForContext( |
| content::BrowserContext* context) const = 0; |
| |
| // Returns true if the embedder allows background pages for the given |
| // |context|, and a given |extension|. |
| virtual bool IsExtensionBackgroundPageAllowed( |
| content::BrowserContext* context, |
| const Extension& extension) const = 0; |
| |
| // Returns true if the embedder wishes to defer starting up the renderers for |
| // extension background pages. If the embedder returns true it must call |
| // ProcessManager::MaybeCreateStartupBackgroundHosts() when it is ready. See |
| // ChromeProcessManagerDelegate for examples of how this is useful. |
| virtual bool DeferCreatingStartupBackgroundHosts( |
| content::BrowserContext* context) const = 0; |
| }; |
| |
| } // namespace extensions |
| |
| #endif // EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_ |