15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace content {
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class BrowserContext;
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions {
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Customization of ProcessManager for the extension system embedder.
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ProcessManagerDelegate {
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public:
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual ~ProcessManagerDelegate() {}
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // Returns true if the embedder allows background pages for the given
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // |context|.
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual bool IsBackgroundPageAllowed(
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      content::BrowserContext* context) const = 0;
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // Returns true if the embedder wishes to defer starting up the renderers for
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // extension background pages. If the embedder returns true it must call
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // ProcessManager::MaybeCreateStartupBackgroundHosts() when it is ready. See
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // ChromeProcessManagerDelegate for examples of how this is useful.
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual bool DeferCreatingStartupBackgroundHosts(
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      content::BrowserContext* context) const = 0;
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace extensions
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // EXTENSIONS_BROWSER_PROCESS_MANAGER_DELEGATE_H_
35