| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Defines methods relevant to all code that wants to work with browsing data. |
| |
| #ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_ |
| #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_ |
| |
| #include <string> |
| |
| #include "base/basictypes.h" |
| |
| class ExtensionSpecialStoragePolicy; |
| class GURL; |
| |
| class BrowsingDataHelper { |
| public: |
| enum OriginSetMask { |
| UNPROTECTED_WEB = 1 << 0, // drive-by web. |
| PROTECTED_WEB = 1 << 1, // hosted applications. |
| EXTENSION = 1 << 2, // chrome-extension://* |
| // Always add new items to the enum above ALL and add them to ALL. |
| ALL = UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION, |
| }; |
| |
| // Returns true iff the provided scheme is (really) web safe, and suitable |
| // for treatment as "browsing data". This relies on the definition of web safe |
| // in ChildProcessSecurityPolicy, but excluding schemes like |
| // `chrome-extension`. |
| static bool IsWebScheme(const std::string& scheme); |
| static bool HasWebScheme(const GURL& origin); |
| |
| // Returns true iff the provided scheme is an extension. |
| static bool IsExtensionScheme(const std::string& scheme); |
| static bool HasExtensionScheme(const GURL& origin); |
| |
| // Returns true if the provided origin matches the provided mask. |
| static bool DoesOriginMatchMask(const GURL& origin, |
| int origin_set_mask, |
| ExtensionSpecialStoragePolicy* policy); |
| |
| private: |
| DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper); |
| }; |
| |
| #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_ |