mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
56 lines
1.6 KiB
C
56 lines
1.6 KiB
C
|
// Copyright (c) 2011 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.
|
||
|
|
||
|
#ifndef NET_BASE_STATIC_COOKIE_POLICY_H_
|
||
|
#define NET_BASE_STATIC_COOKIE_POLICY_H_
|
||
|
|
||
|
#include "base/macros.h"
|
||
|
#include "net/base/net_export.h"
|
||
|
|
||
|
class GURL;
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
// The StaticCookiePolicy class implements a static cookie policy that supports
|
||
|
// three modes: allow all, deny all, or block third-party cookies.
|
||
|
class NET_EXPORT StaticCookiePolicy {
|
||
|
public:
|
||
|
// Do not change the order of these types as they are persisted in
|
||
|
// preferences.
|
||
|
enum Type {
|
||
|
// Do not perform any cookie blocking.
|
||
|
ALLOW_ALL_COOKIES = 0,
|
||
|
// Block all cookies (third-party or not) from begin set or read.
|
||
|
BLOCK_ALL_COOKIES,
|
||
|
// Prevent only third-party cookies from being set or read.
|
||
|
BLOCK_ALL_THIRD_PARTY_COOKIES
|
||
|
};
|
||
|
|
||
|
StaticCookiePolicy()
|
||
|
: type_(StaticCookiePolicy::ALLOW_ALL_COOKIES) {
|
||
|
}
|
||
|
|
||
|
explicit StaticCookiePolicy(Type type)
|
||
|
: type_(type) {
|
||
|
}
|
||
|
|
||
|
// Sets the current policy to enforce. This should be called when the user's
|
||
|
// preferences change.
|
||
|
void set_type(Type type) { type_ = type; }
|
||
|
Type type() const { return type_; }
|
||
|
|
||
|
// Consults the user's third-party cookie blocking preferences to determine
|
||
|
// whether the URL's cookies can be accessed (i.e., can be get or set).
|
||
|
int CanAccessCookies(const GURL& url, const GURL& site_for_cookies) const;
|
||
|
|
||
|
private:
|
||
|
Type type_;
|
||
|
|
||
|
DISALLOW_COPY_AND_ASSIGN(StaticCookiePolicy);
|
||
|
};
|
||
|
|
||
|
} // namespace net
|
||
|
|
||
|
#endif // NET_BASE_STATIC_COOKIE_POLICY_H_
|