• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 // Defines methods relevant to all code that wants to work with browsing data.
6 
7 #ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_
8 #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_
9 
10 #include <string>
11 
12 #include "base/basictypes.h"
13 
14 namespace storage {
15 class SpecialStoragePolicy;
16 }
17 
18 class GURL;
19 
20 class BrowsingDataHelper {
21  public:
22   enum OriginSetMask {
23     UNPROTECTED_WEB = 1 << 0,  // drive-by web.
24     PROTECTED_WEB = 1 << 1,    // hosted applications.
25     EXTENSION = 1 << 2,        // chrome-extension://*
26     // Always add new items to the enum above ALL and add them to ALL.
27     ALL = UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION,
28   };
29 
30   // Returns true iff the provided scheme is (really) web safe, and suitable
31   // for treatment as "browsing data". This relies on the definition of web safe
32   // in ChildProcessSecurityPolicy, but excluding schemes like
33   // `chrome-extension`.
34   static bool IsWebScheme(const std::string& scheme);
35   static bool HasWebScheme(const GURL& origin);
36 
37   // Returns true iff the provided scheme is an extension.
38   static bool IsExtensionScheme(const std::string& scheme);
39   static bool HasExtensionScheme(const GURL& origin);
40 
41   // Returns true if the provided origin matches the provided mask.
42   static bool DoesOriginMatchMask(const GURL& origin,
43                                   int origin_set_mask,
44                                   storage::SpecialStoragePolicy* policy);
45 
46  private:
47   DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper);
48 };
49 
50 #endif  // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_
51