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_
12 #include "base/basictypes.h"
15 class SpecialStoragePolicy
;
20 class BrowsingDataHelper
{
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
,
44 storage::SpecialStoragePolicy
* policy
);
47 DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper
);
50 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_