• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2     Copyright (C) 2010 ProFUSION embedded systems
3     Copyright (C) 2010 Samsung Electronics
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14 
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19 */
20 
21 /**
22  * @file    ewk_cookies.h
23  * @brief   The Ewk cookies API.
24  */
25 
26 #ifndef ewk_cookies_h
27 #define ewk_cookies_h
28 
29 #include "ewk_eapi.h"
30 #include <Eina.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /**
37  * \struct  _Ewk_Cookie
38  *
39  * @brief   Describes properties of an HTTP cookie.
40  */
41 struct _Ewk_Cookie {
42     /// the cookie name
43     char *name;
44     /// the cookie value
45     char *value;
46     /// the "domain" attribute, or else the hostname that the cookie came from
47     char *domain;
48     /// the "path" attribute, or @c 0
49     char *path;
50     /// the cookie expiration time, or @c 0 for a session cookie
51     time_t expires;
52     /// @c EINA_TRUE if the cookie should only be tranferred over SSL
53     Eina_Bool secure;
54     /// @c EINA_TRUE if the cookie should not be exposed to scripts
55     Eina_Bool http_only;
56 };
57 /// Creates a type name for the _Ewk_Cookie.
58 typedef struct _Ewk_Cookie Ewk_Cookie;
59 
60 /**
61  * \enum    _Ewk_Cookie_Policy
62  *
63  * @brief   Contains a policy for the cookies.
64  */
65 enum _Ewk_Cookie_Policy {
66     /// Rejects all cookies.
67     EWK_COOKIE_JAR_ACCEPT_NEVER,
68     /// Accepts every cookie sent from any page.
69     EWK_COOKIE_JAR_ACCEPT_ALWAYS,
70     /// Accepts cookies only from the main page.
71     EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY
72 };
73 /// Creates a type name for the _Ewk_Cookie_Policy.
74 typedef enum _Ewk_Cookie_Policy Ewk_Cookie_Policy;
75 
76 /************************** Exported functions ***********************/
77 
78 EAPI Eina_Bool          ewk_cookies_file_set(const char *filename);
79 EAPI void               ewk_cookies_clear(void);
80 EAPI Eina_List*         ewk_cookies_get_all(void);
81 EAPI void               ewk_cookies_cookie_del(Ewk_Cookie *cookie);
82 EAPI void               ewk_cookies_cookie_free(Ewk_Cookie *cookie);
83 EAPI void               ewk_cookies_policy_set(Ewk_Cookie_Policy p);
84 EAPI Ewk_Cookie_Policy  ewk_cookies_policy_get(void);
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 #endif // ewk_cookies_h
90