1// Copyright 2014 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#ifndef CHROME_BROWSER_NET_COOKIE_STORE_UTIL_H_
6#define CHROME_BROWSER_NET_COOKIE_STORE_UTIL_H_
7
8#include "content/public/browser/browser_context.h"
9#include "content/public/browser/cookie_store_factory.h"
10
11class Profile;
12
13namespace net {
14class CookieMonsterDelegate;
15}  // namespace net
16
17namespace chrome_browser_net {
18
19// Returns true if cookie-like storage systems should enter record mode for
20// debugging.
21bool IsCookieRecordMode();
22
23// Returns true if command line flags indicate that cookie-like storage systems
24// should be forced to be in memory only.
25bool ShouldUseInMemoryCookiesAndCache();
26
27// Factory method for creating a CookieStore delegate that sends
28// chrome::NOTIFICATION_COOKIE_CHANGED for the given profile. This
29// delegate is stateless so only one is necessary per profile.
30net::CookieMonsterDelegate* CreateCookieDelegate(Profile* profile);
31
32// Factory method for returning a CookieCryptoDelegate if one is appropriate for
33// this platform. The object returned is a LazyInstance. Ownership is not
34// transferred.
35content::CookieCryptoDelegate* GetCookieCryptoDelegate();
36
37}  // namespace chrome_browser_net
38
39#endif  // CHROME_BROWSER_NET_COOKIE_STORE_UTIL_H_
40