| // 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 CHROME_BROWSER_NET_CHROME_COOKIE_POLICY_H_ |
| #define CHROME_BROWSER_NET_CHROME_COOKIE_POLICY_H_ |
| #pragma once |
| |
| #include <map> |
| #include <string> |
| #include <vector> |
| |
| #include "base/memory/ref_counted.h" |
| #include "googleurl/src/gurl.h" |
| #include "net/base/cookie_policy.h" |
| |
| class HostContentSettingsMap; |
| |
| // Implements CookiePolicy that uses HostContentSettingsMap and |
| // net::StaticCookiePolicy to decide if the cookie should be blocked. |
| class ChromeCookiePolicy : public net::CookiePolicy { |
| public: |
| explicit ChromeCookiePolicy(HostContentSettingsMap* map); |
| virtual ~ChromeCookiePolicy(); |
| |
| // CookiePolicy methods: |
| virtual int CanGetCookies(const GURL& url, const GURL& first_party) const; |
| virtual int CanSetCookie(const GURL& url, |
| const GURL& first_party, |
| const std::string& cookie_line) const; |
| |
| private: |
| int CheckPolicy(const GURL& url) const; |
| |
| const scoped_refptr<HostContentSettingsMap> host_content_settings_map_; |
| |
| // True if blocking third-party cookies also applies to reading them. |
| bool strict_third_party_blocking_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ChromeCookiePolicy); |
| }; |
| |
| #endif // CHROME_BROWSER_NET_CHROME_COOKIE_POLICY_H_ |