#include "chrome/browser/extensions/api/cookies/cookies_helpers.h"
#include <stddef.h>
#include <limits>
#include <utility>
#include <vector>
#include "base/check.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/extensions/api/cookies.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/web_contents.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#include "net/cookies/canonical_cookie.h"
#include "net/cookies/cookie_store.h"
#include "net/cookies/cookie_util.h"
#include "url/gurl.h"
Cookie;
CookieStore;
GetAll;
namespace extensions {
namespace {
constexpr char kIdKey[] = …;
constexpr char kTabIdsKey[] = …;
void AppendCookieToVectorIfMatchAndHasHostPermission(
const net::CanonicalCookie cookie,
GetAll::Params::Details* details,
const Extension* extension,
std::vector<Cookie>* match_vector,
const net::CookiePartitionKeyCollection& cookie_partition_key_collection) { … }
}
namespace cookies_helpers {
static const char kOriginalProfileStoreId[] = …;
static const char kOffTheRecordProfileStoreId[] = …;
Profile* ChooseProfileFromStoreId(const std::string& store_id,
Profile* profile,
bool include_incognito) { … }
const char* GetStoreIdFromProfile(Profile* profile) { … }
Cookie CreateCookie(const net::CanonicalCookie& canonical_cookie,
const std::string& store_id) { … }
CookieStore CreateCookieStore(Profile* profile, base::Value::List tab_ids) { … }
void GetCookieListFromManager(
network::mojom::CookieManager* manager,
const GURL& url,
const net::CookiePartitionKeyCollection& partition_key_collection,
network::mojom::CookieManager::GetCookieListCallback callback) { … }
void GetAllCookiesFromManager(
network::mojom::CookieManager* manager,
network::mojom::CookieManager::GetAllCookiesCallback callback) { … }
GURL GetURLFromCanonicalCookie(const net::CanonicalCookie& cookie) { … }
void AppendMatchingCookiesFromCookieListToVector(
const net::CookieList& all_cookies,
GetAll::Params::Details* details,
const Extension* extension,
std::vector<Cookie>* match_vector,
const net::CookiePartitionKeyCollection& cookie_partition_key_collection) { … }
void AppendMatchingCookiesFromCookieAccessResultListToVector(
const net::CookieAccessResultList& all_cookies_with_access_result,
GetAll::Params::Details* details,
const Extension* extension,
std::vector<Cookie>* match_vector) { … }
void AppendToTabIdList(Browser* browser, base::Value::List& tab_ids) { … }
bool ValidateCookieApiPartitionKey(
const std::optional<extensions::api::cookies::CookiePartitionKey>&
partition_key,
std::optional<net::CookiePartitionKey>& net_partition_key,
std::string& error_message) { … }
bool CookieMatchesPartitionKeyCollection(
const net::CookiePartitionKeyCollection& cookie_partition_key_collection,
const net::CanonicalCookie& cookie) { … }
bool CanonicalCookiePartitionKeyMatchesApiCookiePartitionKey(
const std::optional<extensions::api::cookies::CookiePartitionKey>&
api_partition_key,
const std::optional<net::CookiePartitionKey>& net_partition_key) { … }
net::CookiePartitionKeyCollection
CookiePartitionKeyCollectionFromApiPartitionKey(
const std::optional<extensions::api::cookies::CookiePartitionKey>&
partition_key) { … }
MatchFilter::MatchFilter(GetAll::Params::Details* details) : … { … }
bool MatchFilter::MatchesCookie(
const net::CanonicalCookie& cookie) { … }
void MatchFilter::SetCookiePartitionKeyCollection(
const net::CookiePartitionKeyCollection& cookie_partition_key_collection) { … }
bool MatchFilter::MatchesDomain(const std::string& domain) { … }
}
}