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