1// Copyright (c) 2012 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// Brought to you by number 42.
6
7#ifndef NET_COOKIES_COOKIE_OPTIONS_H_
8#define NET_COOKIES_COOKIE_OPTIONS_H_
9
10namespace net {
11
12class CookieOptions {
13 public:
14  // Default is to exclude httponly, which means:
15  // - reading operations will not return httponly cookies.
16  // - writing operations will not write httponly cookies.
17  CookieOptions()
18      : exclude_httponly_(true),
19        server_time_() {
20  }
21
22  void set_exclude_httponly() { exclude_httponly_ = true; }
23  void set_include_httponly() { exclude_httponly_ = false; }
24  bool exclude_httponly() const { return exclude_httponly_; }
25
26  // |server_time| indicates what the server sending us the Cookie thought the
27  // current time was when the cookie was produced.  This is used to adjust for
28  // clock skew between server and host.
29  void set_server_time(const base::Time& server_time) {
30    server_time_ = server_time;
31  }
32  bool has_server_time() const { return !server_time_.is_null(); }
33  base::Time server_time() const { return server_time_; }
34
35 private:
36  bool exclude_httponly_;
37  base::Time server_time_;
38};
39}  // namespace net
40
41#endif  // NET_COOKIES_COOKIE_OPTIONS_H_
42
43