epiphany r8635 - trunk/embed



Author: xan
Date: Fri Dec 12 11:44:53 2008
New Revision: 8635
URL: http://svn.gnome.org/viewvc/epiphany?rev=8635&view=rev

Log:
And re-add ephy-cookie-manager too.

Added:
   trunk/embed/ephy-cookie-manager.c
   trunk/embed/ephy-cookie-manager.h

Added: trunk/embed/ephy-cookie-manager.c
==============================================================================
--- (empty file)
+++ trunk/embed/ephy-cookie-manager.c	Fri Dec 12 11:44:53 2008
@@ -0,0 +1,258 @@
+/*
+ *  Copyright  2000-2003 Marco Pesenti Gritti
+ *  Copyright  2003 Christian Persch
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *  $Id$
+ */
+
+#include "config.h"
+
+#include "ephy-cookie-manager.h"
+
+GType
+ephy_cookie_get_type (void)
+{
+	static GType type = 0;
+
+	if (G_UNLIKELY (type == 0))
+	{
+		type = g_boxed_type_register_static ("EphyCookie",
+						     (GBoxedCopyFunc) ephy_cookie_copy,
+						     (GBoxedFreeFunc) ephy_cookie_free);
+	}
+
+	return type;
+}
+
+/**
+ * ephy_cookie_new:
+ *
+ * Return value: a new #EphyCookie.
+ **/
+EphyCookie *
+ephy_cookie_new (void)
+{
+	return g_slice_new0 (EphyCookie);
+}
+
+/**
+ * ephy_cookie_copy:
+ * @cookie: a #EphyCookie
+ *
+ * Return value: a copy of @cookie.
+ **/
+EphyCookie *
+ephy_cookie_copy (const EphyCookie *cookie)
+{
+	EphyCookie *copy = g_slice_new0 (EphyCookie);
+
+	copy->name = g_strdup (cookie->name);
+	copy->value = g_strdup (cookie->value);
+	copy->domain = g_strdup (cookie->domain);
+	copy->path = g_strdup (cookie->path);
+	copy->expires = cookie->expires;
+	copy->real_expires = cookie->real_expires;
+	copy->is_secure = cookie->is_secure;
+	copy->is_session = cookie->is_session;
+
+	return copy;
+}
+
+/**
+ * ephy_cookie_free:
+ * @cookie: a #EphyCookie
+ * 
+ * Frees @cookie.
+ **/
+void
+ephy_cookie_free (EphyCookie *cookie)
+{
+	if (cookie != NULL)
+	{
+		g_free (cookie->name);
+		g_free (cookie->value);
+		g_free (cookie->domain);
+		g_free (cookie->path);
+
+		g_slice_free (EphyCookie, cookie);
+	}
+}
+
+/* EphyCookieManager */
+
+static void ephy_cookie_manager_base_init (gpointer base_iface);
+
+GType
+ephy_cookie_manager_get_type (void)
+{
+       static GType type = 0;
+
+	if (G_UNLIKELY (type == 0))
+	{
+		const GTypeInfo our_info =
+		{
+			sizeof (EphyCookieManagerIface),
+			ephy_cookie_manager_base_init,
+			NULL,
+		};
+		
+		type = g_type_register_static (G_TYPE_INTERFACE,
+					       "EphyCookieManager",
+					       &our_info,
+					       (GTypeFlags) 0);
+	}
+
+	return type;
+}
+
+static void
+ephy_cookie_manager_base_init (gpointer base_iface)
+{
+	static gboolean initialised = FALSE;
+
+	if (initialised == FALSE)
+	{
+	/**
+	 * EphyCookieManager::cookie-added
+	 * @manager: the #EphyCookieManager
+	 * @cookie: the added #EphyCookie
+	 *
+	 * The cookie-added signal is emitted when a cookie has been added.
+	 **/
+	g_signal_new ("cookie-added",
+		      EPHY_TYPE_COOKIE_MANAGER,
+		      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (EphyCookieManagerIface, added),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__BOXED,
+		      G_TYPE_NONE,
+		      1,
+		      EPHY_TYPE_COOKIE | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+	/**
+	 * EphyCookieManager::cookie-changed
+	 * @manager: the #EphyCookieManager
+	 * @cookie: the changed #EphyCookie
+	 *
+	 * The cookie-changed signal is emitted when a cookie has been changed.
+	 **/
+	g_signal_new ("cookie-changed",
+		      EPHY_TYPE_COOKIE_MANAGER,
+		      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (EphyCookieManagerIface, changed),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__BOXED,
+		      G_TYPE_NONE,
+		      1,
+		      EPHY_TYPE_COOKIE | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+	/**
+	 * EphyCookieManager::cookie-deleted
+	 * @manager: the #EphyCookieManager
+	 * @cookie: the deleted #EphyCookie
+	 *
+	 * The cookie-deleted signal is emitted when a cookie has been deleted.
+	 **/
+	g_signal_new ("cookie-deleted",
+		      EPHY_TYPE_COOKIE_MANAGER,
+		      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (EphyCookieManagerIface, deleted),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__BOXED,
+		      G_TYPE_NONE,
+		      1,
+		      EPHY_TYPE_COOKIE | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+	/**
+	 * EphyCookieManager::cookie-rejected
+	 * @manager: the #EphyCookieManager
+	 * @address: the address of the page that wanted to set the cookie
+	 *
+	 * The cookie-rejected signal is emitted when a cookie has been rejected.
+	 **/
+	g_signal_new ("cookie-rejected",
+		      EPHY_TYPE_COOKIE_MANAGER,
+		      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (EphyCookieManagerIface, rejected),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__STRING,
+		      G_TYPE_NONE,
+		      1,
+		      G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+	/**
+	 * EphyCookieManager::cookies-cleared
+	 * @manager: the #EphyCookieManager
+	 *
+	 * The cookies-cleared signal is emitted when the cookie database has
+	 * been cleared.
+	 **/
+	g_signal_new ("cookies-cleared",
+		      EPHY_TYPE_COOKIE_MANAGER,
+		      G_SIGNAL_RUN_FIRST,
+		      G_STRUCT_OFFSET (EphyCookieManagerIface, cleared),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__VOID,
+		      G_TYPE_NONE,
+		      0);
+
+	initialised = TRUE;
+	}
+}
+
+/**
+ * ephy_cookie_manager_list_cookies:
+ * @manager: the #EphyCookieManager
+ * 
+ * Lists all cookies in the cookies database.
+ * 
+ * Return value: the cookies list
+ **/
+GList *
+ephy_cookie_manager_list_cookies (EphyCookieManager *manager)
+{
+	EphyCookieManagerIface *iface = EPHY_COOKIE_MANAGER_GET_IFACE (manager);
+	return iface->list (manager);
+}
+
+/**
+ * ephy_cookie_manager_remove_cookie:
+ * @manager: the #EphyCookieManager
+ * @cookie: a #EphyCookie
+ * 
+ * Removes @cookie from the cookies database. You must free @cookie yourself.
+ **/
+void
+ephy_cookie_manager_remove_cookie (EphyCookieManager *manager,
+				   const EphyCookie *cookie)
+{
+	EphyCookieManagerIface *iface = EPHY_COOKIE_MANAGER_GET_IFACE (manager);
+	iface->remove (manager, cookie);
+}
+
+/**
+ * ephy_cookie_manager_clear:
+ * @manager: the #EphyCookieManager
+ * 
+ * Clears the cookies database.
+ **/
+void
+ephy_cookie_manager_clear (EphyCookieManager *manager)
+{
+	EphyCookieManagerIface *iface = EPHY_COOKIE_MANAGER_GET_IFACE (manager);
+	iface->clear (manager);
+}

Added: trunk/embed/ephy-cookie-manager.h
==============================================================================
--- (empty file)
+++ trunk/embed/ephy-cookie-manager.h	Fri Dec 12 11:44:53 2008
@@ -0,0 +1,105 @@
+	/*
+ *  Copyright  2003 Marco Pesenti Gritti
+ *  Copyright  2003 Christian Persch
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *  $Id$
+ */
+
+#if !defined (__EPHY_EPIPHANY_H_INSIDE__) && !defined (EPIPHANY_COMPILATION)
+#error "Only <epiphany/epiphany.h> can be included directly."
+#endif
+
+#ifndef EPHY_COOKIE_MANAGER_H
+#define EPHY_COOKIE_MANAGER_H
+
+#include <glib-object.h>
+#include <glib.h>
+#include <time.h>
+
+G_BEGIN_DECLS
+
+#define EPHY_TYPE_COOKIE_MANAGER		(ephy_cookie_manager_get_type ())
+#define EPHY_COOKIE_MANAGER(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), EPHY_TYPE_COOKIE_MANAGER, EphyCookieManager))
+#define EPHY_COOKIE_MANAGER_IFACE(k)		(G_TYPE_CHECK_CLASS_CAST((k), EPHY_TYPE_COOKIE_MANAGER, EphyCookieManagerIface))
+#define EPHY_IS_COOKIE_MANAGER(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), EPHY_TYPE_COOKIE_MANAGER))
+#define EPHY_IS_COOKIE_MANAGER_IFACE(k)		(G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_COOKIE_MANAGER))
+#define EPHY_COOKIE_MANAGER_GET_IFACE(inst)	(G_TYPE_INSTANCE_GET_INTERFACE ((inst), EPHY_TYPE_COOKIE_MANAGER, EphyCookieManagerIface))
+
+#define EPHY_TYPE_COOKIE			(ephy_cookie_get_type ())
+
+typedef struct _EphyCookieManager	EphyCookieManager;
+typedef struct _EphyCookieManagerIface	EphyCookieManagerIface;
+
+typedef struct
+{
+	char *name;
+	char *value;
+	char *domain;
+	char *path;
+	time_t expires;
+	glong real_expires;
+        guint is_secure : 1;
+        guint is_session : 1;
+        guint is_http_only : 1;
+} EphyCookie;
+
+struct _EphyCookieManagerIface
+{
+	GTypeInterface base_iface;
+
+	/* Signals */
+	void	(* added)	(EphyCookieManager *manager,
+				 EphyCookie *cookie);
+	void	(* changed)	(EphyCookieManager *manager,
+				 EphyCookie *cookie);
+	void	(* deleted)	(EphyCookieManager *manager,
+				 EphyCookie *cookie);
+	void	(* rejected)	(EphyCookieManager *manager,
+				 const char *url);
+	void	(* cleared)	(EphyCookieManager *manager);
+
+	/* Methods */
+	GList *	(* list)	(EphyCookieManager *manager);
+	void	(* remove)	(EphyCookieManager *manager,
+				 const EphyCookie *cookie);
+	void	(* clear)	(EphyCookieManager *manager);
+};
+
+/* EphyCookie */
+
+GType		ephy_cookie_get_type	(void);
+
+EphyCookie     *ephy_cookie_new		(void);
+
+EphyCookie     *ephy_cookie_copy	(const EphyCookie *cookie);
+
+void		ephy_cookie_free	(EphyCookie *cookie);
+
+/* EphyCookieManager */
+
+GType 		ephy_cookie_manager_get_type		(void);
+
+GList *		ephy_cookie_manager_list_cookies	(EphyCookieManager *manager);
+
+void		ephy_cookie_manager_remove_cookie	(EphyCookieManager *manager,
+							 const EphyCookie *cookie);
+
+void		ephy_cookie_manager_clear		(EphyCookieManager *manager);
+
+G_END_DECLS
+
+#endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]