aboutsummaryrefslogtreecommitdiffstats
path: root/embed/webkit/webkit-embed-single.c
diff options
context:
space:
mode:
authorXan Lopez <xan@src.gnome.org>2007-12-10 06:05:34 +0800
committerXan Lopez <xan@src.gnome.org>2007-12-10 06:05:34 +0800
commit04d807546492d1dc26d75faf184e1face508a128 (patch)
treef74a67a26af47300c803ee1b84d2436a7da66261 /embed/webkit/webkit-embed-single.c
parent98ca0fc609810f0024179654484f8428fa50d020 (diff)
downloadgsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar.gz
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar.bz2
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar.lz
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar.xz
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.tar.zst
gsoc2013-epiphany-04d807546492d1dc26d75faf184e1face508a128.zip
Rename cpp files to c in the WebKit backend; they are pure C.
Also fix a couple of compiler warnings. svn path=/trunk/; revision=7764
Diffstat (limited to 'embed/webkit/webkit-embed-single.c')
-rw-r--r--embed/webkit/webkit-embed-single.c361
1 files changed, 361 insertions, 0 deletions
diff --git a/embed/webkit/webkit-embed-single.c b/embed/webkit/webkit-embed-single.c
new file mode 100644
index 000000000..44ad6816a
--- /dev/null
+++ b/embed/webkit/webkit-embed-single.c
@@ -0,0 +1,361 @@
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
+/* 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 <webkitglobal.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
+
+/* Some compilers (like gcc 2.95) don't support preprocessor directives inside macros,
+ so we have to duplicate the whole thing */
+
+#ifdef ENABLE_CERTIFICATE_MANAGER
+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)
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_CERTIFICATE_MANAGER,
+ ephy_certificate_manager_iface_init)
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_PERMISSION_MANAGER,
+ ephy_permission_manager_iface_init))
+#else
+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)
+ G_IMPLEMENT_INTERFACE (EPHY_TYPE_PERMISSION_MANAGER,
+ ephy_permission_manager_iface_init))
+#endif
+
+
+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_remove_all_passwords (EphyPasswordManager *manager)
+{
+}
+
+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)
+{
+}
+
+static 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)
+{
+ webkit_init();
+
+ return TRUE;
+}
+
+static 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->remove_all = impl_remove_all_passwords;
+ 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 */