15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// found in the LICENSE file.
4a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/compiler_specific.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/ref_counted.h"
10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "content/shell/browser/shell_browser_context.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/quota/special_storage_policy.h"
12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions {
14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ShellSpecialStoragePolicy;
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
17a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// The BrowserContext used by the content, apps and extensions systems in
18a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// app_shell.
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class ShellBrowserContext : public content::ShellBrowserContext {
20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) public:
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ShellBrowserContext();
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual ~ShellBrowserContext();
23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // content::BrowserContext implementation.
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual content::BrowserPluginGuestManager* GetGuestManager() OVERRIDE;
2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  virtual storage::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE;
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  // HACK: Pad the virtual function table so we trip an assertion if someone
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  // tries to use |this| as a Profile.
30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext1();
31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext2();
32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext3();
33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext4();
34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext5();
35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext6();
36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext7();
37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext8();
38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext9();
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext10();
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext11();
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext12();
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext13();
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext14();
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void ProfileFunctionCallOnNonProfileBrowserContext15();
45a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private:
4703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  scoped_refptr<storage::SpecialStoragePolicy> storage_policy_;
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext);
50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)};
51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace extensions
53a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
55