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 class ExtensionSpecialStoragePolicy; 15 class GURL; 16 17 class BrowsingDataHelper { 18 public: 19 enum OriginSetMask { 20 UNPROTECTED_WEB = 1 << 0, // drive-by web. 21 PROTECTED_WEB = 1 << 1, // hosted applications. 22 EXTENSION = 1 << 2, // chrome-extension://* 23 // Always add new items to the enum above ALL and add them to ALL. 24 ALL = UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION, 25 }; 26 27 // Returns true iff the provided scheme is (really) web safe, and suitable 28 // for treatment as "browsing data". This relies on the definition of web safe 29 // in ChildProcessSecurityPolicy, but excluding schemes like 30 // `chrome-extension`. 31 static bool IsWebScheme(const std::string& scheme); 32 static bool HasWebScheme(const GURL& origin); 33 34 // Returns true iff the provided scheme is an extension. 35 static bool IsExtensionScheme(const std::string& scheme); 36 static bool HasExtensionScheme(const GURL& origin); 37 38 // Returns true if the provided origin matches the provided mask. 39 static bool DoesOriginMatchMask(const GURL& origin, 40 int origin_set_mask, 41 ExtensionSpecialStoragePolicy* policy); 42 43 private: 44 DISALLOW_IMPLICIT_CONSTRUCTORS(BrowsingDataHelper); 45 }; 46 47 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_H_ 48