shell_browser_context.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
6#define EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
7
8#include "base/compiler_specific.h"
9#include "base/memory/ref_counted.h"
10#include "content/shell/browser/shell_browser_context.h"
11#include "storage/browser/quota/special_storage_policy.h"
12
13namespace extensions {
14
15class ShellSpecialStoragePolicy;
16
17// The BrowserContext used by the content, apps and extensions systems in
18// app_shell.
19class ShellBrowserContext : public content::ShellBrowserContext {
20 public:
21  ShellBrowserContext();
22  virtual ~ShellBrowserContext();
23
24  // content::BrowserContext implementation.
25  virtual content::BrowserPluginGuestManager* GetGuestManager() OVERRIDE;
26  virtual storage::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE;
27
28  // HACK: Pad the virtual function table so we trip an assertion if someone
29  // tries to use |this| as a Profile.
30  virtual void ProfileFunctionCallOnNonProfileBrowserContext1();
31  virtual void ProfileFunctionCallOnNonProfileBrowserContext2();
32  virtual void ProfileFunctionCallOnNonProfileBrowserContext3();
33  virtual void ProfileFunctionCallOnNonProfileBrowserContext4();
34  virtual void ProfileFunctionCallOnNonProfileBrowserContext5();
35  virtual void ProfileFunctionCallOnNonProfileBrowserContext6();
36  virtual void ProfileFunctionCallOnNonProfileBrowserContext7();
37  virtual void ProfileFunctionCallOnNonProfileBrowserContext8();
38  virtual void ProfileFunctionCallOnNonProfileBrowserContext9();
39  virtual void ProfileFunctionCallOnNonProfileBrowserContext10();
40  virtual void ProfileFunctionCallOnNonProfileBrowserContext11();
41  virtual void ProfileFunctionCallOnNonProfileBrowserContext12();
42  virtual void ProfileFunctionCallOnNonProfileBrowserContext13();
43  virtual void ProfileFunctionCallOnNonProfileBrowserContext14();
44  virtual void ProfileFunctionCallOnNonProfileBrowserContext15();
45
46 private:
47  scoped_refptr<storage::SpecialStoragePolicy> storage_policy_;
48
49  DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext);
50};
51
52}  // namespace extensions
53
54#endif  // EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
55