aboutsummaryrefslogtreecommitdiffstats
path: root/embed/webkit/webkit-embed-single.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'embed/webkit/webkit-embed-single.cpp')
-rw-r--r--embed/webkit/webkit-embed-single.cpp342
1 files changed, 342 insertions, 0 deletions
diff --git a/embed/webkit/webkit-embed-single.cpp b/embed/webkit/webkit-embed-single.cpp
new file mode 100644
index 000000000..12491776a
--- /dev/null
+++ b/embed/webkit/webkit-embed-single.cpp
@@ -0,0 +1,342 @@
+/* Copyright © 2007 Xan Lopez <xan@gnome.org>
+ *
+ * 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 <glib/gi18n.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
+
+#include "webkit-embed-single.h"
+#include "ephy-embed-single.h"
+#include "ephy-cookie-manager.h"
+#include "ephy-password-manager.h"
+#include "ephy-permission-manager.h"
+
+#ifdef ENABLE_CERTIFICATE_MANAGER
+#include "ephy-certificate-manager.h"
+#endif
+
+#define WEBKIT_EMBED_SINGLE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), WEBKIT_TYPE_EMBED_SINGLE, WebkitEmbedSinglePrivate))
+
+struct WebkitEmbedSinglePrivate
+{
+ guint online : 1;
+};
+
+enum
+{
+ PROP_0,
+ PROP_NETWORK_STATUS
+};
+
+static void webkit_embed_single_class_init (WebkitEmbedSingleClass *klass);
+static void webkit_embed_single_init (WebkitEmbedSingle *ges);
+static void ephy_embed_single_iface_init (EphyEmbedSingleIface *iface);
+static void ephy_cookie_manager_iface_init (EphyCookieManagerIface *iface);
+static void ephy_password_manager_iface_init (EphyPasswordManagerIface *iface);
+static void ephy_permission_manager_iface_init (EphyPermissionManagerIface *iface);
+
+#ifdef ENABLE_CERTIFICATE_MANAGER
+static void ephy_certificate_manager_iface_init (EphyCertificateManagerIface *iface);
+#endif
+
+
+G_DEFINE_TYPE_WITH_CODE (WebkitEmbedSingle, webkit_embed_single, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_EMBED_SINGLE,
+ ephy_embed_single_iface_init)
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_COOKIE_MANAGER,
+ ephy_cookie_manager_iface_init)
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_PASSWORD_MANAGER,
+ ephy_password_manager_iface_init)
+#ifdef ENABLE_CERTIFICATE_MANAGER
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_CERTIFICATE_MANAGER,
+ ephy_certificate_manager_iface_init)
+#endif
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_PERMISSION_MANAGER,
+ ephy_permission_manager_iface_init))
+
+
+static void
+webkit_embed_single_init (WebkitEmbedSingle *mes)
+{
+ mes->priv = WEBKIT_EMBED_SINGLE_GET_PRIVATE (mes);
+}
+
+static void
+webkit_embed_single_dispose (GObject *object)
+{
+ G_OBJECT_CLASS (webkit_embed_single_parent_class)->dispose (object);
+}
+
+static void
+webkit_embed_single_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (webkit_embed_single_parent_class)->finalize (object);
+}
+
+static void
+impl_clear_cache (EphyEmbedSingle *shell)
+{
+}
+
+static void
+impl_clear_auth_cache (EphyEmbedSingle *shell)
+{
+}
+
+static void
+impl_set_network_status (EphyEmbedSingle *single,
+ gboolean online)
+{
+}
+
+static gboolean
+impl_get_network_status (EphyEmbedSingle *esingle)
+{
+ return FALSE;
+}
+
+static const char*
+impl_get_backend_name (EphyEmbedSingle *esingle)
+{
+ /* If you alter the return values here, remember to update
+ * the docs in ephy-embed-single.c */
+ return "webkit";
+}
+
+static GList *
+impl_get_font_list (EphyEmbedSingle *shell,
+ const char *langGroup)
+{
+ return NULL;
+}
+
+static GList *
+impl_list_cookies (EphyCookieManager *manager)
+{
+ return NULL;
+}
+
+static void
+impl_remove_cookie (EphyCookieManager *manager,
+ const EphyCookie *cookie)
+{
+}
+
+static void
+impl_clear_cookies (EphyCookieManager *manager)
+{
+}
+
+static GList *
+impl_list_passwords (EphyPasswordManager *manager)
+{
+ return NULL;
+}
+
+static void
+impl_remove_password (EphyPasswordManager *manager,
+ EphyPasswordInfo *info)
+{
+}
+
+static void
+impl_add_password (EphyPasswordManager *manager,
+ EphyPasswordInfo *info)
+{
+}
+
+static void
+impl_permission_manager_add (EphyPermissionManager *manager,
+ const char *host,
+ const char *type,
+ EphyPermission permission)
+{
+}
+
+static void
+impl_permission_manager_remove (EphyPermissionManager *manager,
+ const char *host,
+ const char *type)
+{
+}
+
+static void
+impl_permission_manager_clear (EphyPermissionManager *manager)
+{
+}
+
+EphyPermission
+impl_permission_manager_test (EphyPermissionManager *manager,
+ const char *host,
+ const char *type)
+{
+ g_return_val_if_fail (type != NULL && type[0] != '\0', EPHY_PERMISSION_DEFAULT);
+
+ return (EphyPermission)0;
+}
+
+static gboolean
+impl_init (EphyEmbedSingle *esingle)
+{
+ return TRUE;
+}
+
+GList *
+impl_permission_manager_list (EphyPermissionManager *manager,
+ const char *type)
+{
+ GList *list = NULL;
+ return list;
+}
+
+static GtkWidget *
+impl_open_window (EphyEmbedSingle *single,
+ EphyEmbed *parent,
+ const char *address,
+ const char *name,
+ const char *features)
+{
+ return NULL;
+}
+
+#ifdef ENABLE_CERTIFICATE_MANAGER
+
+static gboolean
+impl_remove_certificate (EphyCertificateManager *manager,
+ EphyX509Cert *cert)
+{
+ return TRUE;
+}
+
+#define NICK_DELIMITER PRUnichar('\001')
+static GList *
+impl_get_certificates (EphyCertificateManager *manager,
+ EphyX509CertType type)
+{
+ return NULL;
+}
+
+static gboolean
+impl_import (EphyCertificateManager *manager,
+ const gchar *file)
+{
+ return TRUE;
+}
+
+#endif /* ENABLE_CERTIFICATE_MANAGER */
+
+static void
+webkit_embed_single_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EphyEmbedSingle *single = EPHY_EMBED_SINGLE (object);
+
+ switch (prop_id)
+ {
+ case PROP_NETWORK_STATUS:
+ g_value_set_boolean (value, ephy_embed_single_get_network_status (single));
+ break;
+ }
+}
+
+static void
+webkit_embed_single_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EphyEmbedSingle *single = EPHY_EMBED_SINGLE (object);
+
+ switch (prop_id)
+ {
+ case PROP_NETWORK_STATUS:
+ ephy_embed_single_set_network_status (single, g_value_get_boolean (value));
+ break;
+ }
+}
+static void
+webkit_embed_single_class_init (WebkitEmbedSingleClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ webkit_embed_single_parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
+
+ object_class->dispose = webkit_embed_single_dispose;
+ object_class->finalize = webkit_embed_single_finalize;
+ object_class->get_property = webkit_embed_single_get_property;
+ object_class->set_property = webkit_embed_single_set_property;
+
+ g_object_class_override_property (object_class, PROP_NETWORK_STATUS, "network-status");
+
+ g_type_class_add_private (object_class, sizeof (WebkitEmbedSinglePrivate));
+}
+
+static void
+ephy_embed_single_iface_init (EphyEmbedSingleIface *iface)
+{
+ iface->init = impl_init;
+ iface->clear_cache = impl_clear_cache;
+ iface->clear_auth_cache = impl_clear_auth_cache;
+ iface->set_network_status = impl_set_network_status;
+ iface->get_network_status = impl_get_network_status;
+ iface->get_font_list = impl_get_font_list;
+ iface->open_window = impl_open_window;
+ iface->get_backend_name = impl_get_backend_name;
+}
+
+static void
+ephy_cookie_manager_iface_init (EphyCookieManagerIface *iface)
+{
+ iface->list = impl_list_cookies;
+ iface->remove = impl_remove_cookie;
+ iface->clear = impl_clear_cookies;
+}
+
+static void
+ephy_password_manager_iface_init (EphyPasswordManagerIface *iface)
+{
+ iface->add = impl_add_password;
+ iface->remove = impl_remove_password;
+ iface->list = impl_list_passwords;
+}
+
+static void
+ephy_permission_manager_iface_init (EphyPermissionManagerIface *iface)
+{
+ iface->add = impl_permission_manager_add;
+ iface->remove = impl_permission_manager_remove;
+ iface->clear = impl_permission_manager_clear;
+ iface->test = impl_permission_manager_test;
+ iface->list = impl_permission_manager_list;
+}
+
+#ifdef ENABLE_CERTIFICATE_MANAGER
+
+static void
+ephy_certificate_manager_iface_init (EphyCertificateManagerIface *iface)
+{
+ iface->get_certificates = impl_get_certificates;
+ iface->remove_certificate = impl_remove_certificate;
+ iface->import = impl_import;
+}
+
+#endif /* ENABLE_CERTIFICATE_MANAGER */