Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / browsing_data / browsing_data_helper.h
blobfd88d9580e294803984c185cc2585ad78610bb9f
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.
5 // Defines methods relevant to all code that wants to work with browsing data.
7 #ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_
8 #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_
10 #include <string>
12 #include "base/basictypes.h"
14 namespace storage {
15 class SpecialStoragePolicy;
18 class GURL;
20 class BrowsingDataHelper {
21 public:
22 enum OriginTypeMask {
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,
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);
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);
41 // Returns true if the provided origin matches the provided mask.
42 static bool DoesOriginMatchMask(const GURL& origin,
43 int origin_type_mask,
44 storage::SpecialStoragePolicy* policy);
46 private:
47 DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper);
50 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_