// Copyright 2012 The Chromium Authors // 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 COMPONENTS_BROWSING_DATA_CONTENT_BROWSING_DATA_HELPER_H_ #define COMPONENTS_BROWSING_DATA_CONTENT_BROWSING_DATA_HELPER_H_ #include <string> #include "base/functional/callback.h" #include "components/browsing_data/content/browsing_data_model.h" #include "components/content_settings/core/browser/host_content_settings_map.h" class GURL; class PrefService; namespace content { class BrowsingDataFilterBuilder; } namespace network { namespace mojom { class NetworkContext; } } // namespace network namespace prerender { class NoStatePrefetchManager; } namespace browsing_data { // TODO(crbug.com/40495069): DEPRECATED. Remove these functions. // The primary functionality of testing origin type masks has moved to // Remover. The secondary functionality of recognizing web schemes // storing browsing data has moved to url::GetWebStorageSchemes(); // or alternatively, it can also be retrieved from Remover by // testing the ORIGIN_TYPE_UNPROTECTED_ORIGIN | ORIGIN_TYPE_PROTECTED_ORIGIN // origin mask. This class now merely forwards the functionality to several // helper classes in the browsing_data codebase. // 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`. bool IsWebScheme(const std::string& scheme); bool HasWebScheme(const GURL& origin); // Creates a filter for website settings in a HostContentSettingsMap. HostContentSettingsMap::PatternSourcePredicate CreateWebsiteSettingsFilter( content::BrowsingDataFilterBuilder* filter_builder); // Clears prerendering cache. void RemovePrerenderCacheData( prerender::NoStatePrefetchManager* no_state_prefetch_manager); // Removes site isolation prefs. Should be called when the user removes // cookies and other site settings or history. void RemoveSiteIsolationData(PrefService* prefs); // Removes data that should be cleared at the same time as cookies, but which // content/ doesn't know about. e.g. client hints and safe browsing cookie. // If |safe_browsing_context| is not null and the function decides to clear // cookies in it then |callback_factory| will be called synchronously to create // a callback that is run on completion. void RemoveEmbedderCookieData( const base::Time& delete_begin, const base::Time& delete_end, content::BrowsingDataFilterBuilder* filter_builder, HostContentSettingsMap* host_content_settings_map, network::mojom::NetworkContext* safe_browsing_context, base::OnceCallback<base::OnceCallback<void()>()> callback_factory); // Removes site settings data. void RemoveSiteSettingsData(const base::Time& delete_begin, const base::Time& delete_end, HostContentSettingsMap* host_content_settings_map); // Remove site settings data related to federated sign in. // This clears: // - Consent for identity provider to share identity information with // relying party. // - Permission for relying party to silently obtain id token from identity // provider via the FedCM JavaScript API. // - The FedCM auto-sign-in permission. // - The FedCM front channel logout permission. void RemoveFederatedSiteSettingsData( const base::Time& delete_begin, const base::Time& delete_end, HostContentSettingsMap::PatternSourcePredicate pattern_predicate, HostContentSettingsMap* host_content_settings_map); int GetUniqueHostCount(const BrowsingDataModel& browsing_data_model); int GetUniqueThirdPartyCookiesHostCount( const GURL& first_party_url, const BrowsingDataModel& browsing_data_model); } // namespace browsing_data #endif // COMPONENTS_BROWSING_DATA_CONTENT_BROWSING_DATA_HELPER_H_