From c3c1771fb6776ee3371ef06e5509d7e347880464 Mon Sep 17 00:00:00 2001 From: Xan Lopez Date: Fri, 5 Jun 2009 23:50:06 +0300 Subject: Make EphyEmbedSingle a non-interface type. --- doc/reference/Makefile.am | 2 - embed/ephy-embed-factory.c | 3 +- embed/ephy-embed-shell.c | 2 +- embed/ephy-embed-single.c | 302 ++++++++++++++++++++++++++------ embed/ephy-embed-single.h | 33 ++-- embed/webkit/Makefile.am | 4 +- embed/webkit/webkit-embed-single.c | 343 ------------------------------------- embed/webkit/webkit-embed-single.h | 55 ------ 8 files changed, 268 insertions(+), 476 deletions(-) delete mode 100644 embed/webkit/webkit-embed-single.c delete mode 100644 embed/webkit/webkit-embed-single.h diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am index 2fc9924d3..8a508f956 100644 --- a/doc/reference/Makefile.am +++ b/doc/reference/Makefile.am @@ -57,9 +57,7 @@ IGNORE_HFILES = \ ephy-history.h \ find-dialog.h \ print-dialog.h \ - webkit-embed.h \ webkit-embed-persist.h \ - webkit-embed-single.h \ egg-editable-toolbar.h \ eggintl.h \ eggmarshalers.h \ diff --git a/embed/ephy-embed-factory.c b/embed/ephy-embed-factory.c index 3fa881837..6eaa05c56 100644 --- a/embed/ephy-embed-factory.c +++ b/embed/ephy-embed-factory.c @@ -21,7 +21,6 @@ #include "ephy-embed-factory.h" #include "webkit-embed-persist.h" -#include "webkit-embed-single.h" #include "ephy-embed.h" #include "ephy-embed-persist.h" #include "ephy-embed-single.h" @@ -49,7 +48,7 @@ ephy_embed_factory_new_object (GType type) } else if (type == EPHY_TYPE_EMBED_SINGLE) { - object = g_object_new (WEBKIT_TYPE_EMBED_SINGLE, NULL); + object = g_object_new (EPHY_TYPE_EMBED_SINGLE, NULL); } else { diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c index 03b493fde..b84e2eef3 100644 --- a/embed/ephy-embed-shell.c +++ b/embed/ephy-embed-shell.c @@ -231,7 +231,7 @@ impl_get_embed_single (EphyEmbedShell *shell) (ephy_embed_factory_new_object (EPHY_TYPE_EMBED_SINGLE)); g_assert (priv->embed_single != NULL); - if (!ephy_embed_single_init (priv->embed_single)) + if (!ephy_embed_single_initialize (priv->embed_single)) { GtkWidget *dialog; diff --git a/embed/ephy-embed-single.c b/embed/ephy-embed-single.c index 9b0e8178f..76539457a 100644 --- a/embed/ephy-embed-single.c +++ b/embed/ephy-embed-single.c @@ -20,42 +20,121 @@ #include "config.h" #include "ephy-embed-single.h" +#include "ephy-embed-prefs.h" #include "ephy-embed-type-builtins.h" +#include "ephy-file-helpers.h" #include "ephy-marshal.h" #include "ephy-signal-accumulator.h" +#include "ephy-password-manager.h" +#include "ephy-permission-manager.h" -static void ephy_embed_single_iface_init (gpointer g_class); +#ifdef ENABLE_CERTIFICATE_MANAGER +#include "ephy-certificate-manager.h" +#endif -GType -ephy_embed_single_get_type (void) +#include +#include + +#define EPHY_EMBED_SINGLE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_EMBED_SINGLE, EphyEmbedSinglePrivate)) + +struct _EphyEmbedSinglePrivate { + guint online : 1; +}; + +enum { + PROP_0, + PROP_NETWORK_STATUS +}; + +static void ephy_embed_single_init (EphyEmbedSingle *single); +static void ephy_embed_single_class_init (EphyEmbedSingleClass *klass); +static void ephy_permission_manager_iface_init (EphyPermissionManagerIface *iface); +static void ephy_password_manager_iface_init (EphyPasswordManagerIface *iface); +#ifdef ENABLE_CERTIFICATE_MANAGER +static void ephy_certificate_manager_iface_init (EphyCertificateManagerIface *iface); +#endif + +static void +ephy_embed_single_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) { - static GType type = 0; - - if (G_UNLIKELY (type == 0)) - { - const GTypeInfo our_info = - { - sizeof (EphyEmbedSingleIface), - ephy_embed_single_iface_init, - NULL, - }; - - type = g_type_register_static (G_TYPE_INTERFACE, - "EphyEmbedSingle", - &our_info, - (GTypeFlags) 0); - } - - return type; + 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; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void -ephy_embed_single_iface_init (gpointer g_iface) +ephy_embed_single_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) { - static gboolean initialised = FALSE; + 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; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* 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 (EphyEmbedSingle, ephy_embed_single, G_TYPE_OBJECT, + 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 (EphyEmbedSingle, ephy_embed_single, G_TYPE_OBJECT, + 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 +ephy_embed_single_finalize (GObject *object) +{ + ephy_embed_prefs_shutdown (); + + G_OBJECT_CLASS (ephy_embed_single_parent_class)->finalize (object); +} + +static void +ephy_embed_single_init (EphyEmbedSingle *single) +{ + EphyEmbedSinglePrivate *priv; + + single->priv = priv = EPHY_EMBED_SINGLE_GET_PRIVATE (single); + priv->online = TRUE; +} + +static void +ephy_embed_single_class_init (EphyEmbedSingleClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ephy_embed_single_finalize; + object_class->get_property = ephy_embed_single_get_property; + object_class->set_property = ephy_embed_single_set_property; - if (initialised == FALSE) - { /** * EphyEmbedSingle::new-window: * @single: @@ -70,7 +149,7 @@ ephy_embed_single_iface_init (gpointer g_iface) g_signal_new ("new-window", EPHY_TYPE_EMBED_SINGLE, G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EphyEmbedSingleIface, new_window), + G_STRUCT_OFFSET (EphyEmbedSingleClass, new_window), ephy_signal_accumulator_object, ephy_embed_get_type, ephy_marshal_OBJECT__OBJECT_FLAGS, GTK_TYPE_WIDGET, @@ -94,7 +173,7 @@ ephy_embed_single_iface_init (gpointer g_iface) g_signal_new ("handle_content", EPHY_TYPE_EMBED_SINGLE, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EphyEmbedSingleIface, handle_content), + G_STRUCT_OFFSET (EphyEmbedSingleClass, handle_content), g_signal_accumulator_true_handled, NULL, ephy_marshal_BOOLEAN__STRING_STRING, G_TYPE_BOOLEAN, @@ -114,7 +193,7 @@ ephy_embed_single_iface_init (gpointer g_iface) g_signal_new ("add-sidebar", EPHY_TYPE_EMBED_SINGLE, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EphyEmbedSingleIface, add_sidebar), + G_STRUCT_OFFSET (EphyEmbedSingleClass, add_sidebar), g_signal_accumulator_true_handled, NULL, ephy_marshal_BOOLEAN__STRING_STRING, G_TYPE_BOOLEAN, @@ -135,7 +214,7 @@ ephy_embed_single_iface_init (gpointer g_iface) g_signal_new ("add-search-engine", EPHY_TYPE_EMBED_SINGLE, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EphyEmbedSingleIface, add_search_engine), + G_STRUCT_OFFSET (EphyEmbedSingleClass, add_search_engine), g_signal_accumulator_true_handled, NULL, ephy_marshal_BOOLEAN__STRING_STRING_STRING, G_TYPE_BOOLEAN, @@ -149,30 +228,162 @@ ephy_embed_single_iface_init (gpointer g_iface) * * Whether the network is on-line. */ - g_object_interface_install_property - (g_iface, + g_object_class_install_property + (object_class, + PROP_NETWORK_STATUS, g_param_spec_boolean ("network-status", "network-status", "network-status", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); - initialised = TRUE; - } + g_type_class_add_private (object_class, sizeof (EphyEmbedSinglePrivate)); +} + +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 GList * +impl_permission_manager_list (EphyPermissionManager *manager, + const char *type) +{ + GList *list = NULL; + return list; +} + +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; +} + +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 +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; } +#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; +} + +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 */ + /** - * ephy_embed_single_init: + * ephy_embed_single_initialize: * @single: the #EphyEmbedSingle * * Performs startup initialisations. Must be called before calling * any other methods. **/ gboolean -ephy_embed_single_init (EphyEmbedSingle *single) +ephy_embed_single_initialize (EphyEmbedSingle *single) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - return iface->init (single); + SoupSession *session; + SoupCookieJar *jar; + char *filename; + + ephy_embed_prefs_init (); + + session = webkit_get_default_session (); + + /* Store cookies in moz-compatible SQLite format */ + filename = g_build_filename (ephy_dot_dir (), "cookies.sqlite", NULL); + jar = soup_cookie_jar_sqlite_new (filename, FALSE); + g_free (filename); + + soup_session_add_feature (session, SOUP_SESSION_FEATURE(jar)); + g_object_unref (jar); + + /* Use GNOME proxy settings through libproxy */ + soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME); + + return TRUE; } /** @@ -184,8 +395,6 @@ ephy_embed_single_init (EphyEmbedSingle *single) void ephy_embed_single_clear_cache (EphyEmbedSingle *single) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - iface->clear_cache (single); } /** @@ -205,8 +414,6 @@ ephy_embed_single_clear_cache (EphyEmbedSingle *single) void ephy_embed_single_clear_auth_cache (EphyEmbedSingle *single) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - iface->clear_auth_cache (single); } /** @@ -220,8 +427,8 @@ void ephy_embed_single_set_network_status (EphyEmbedSingle *single, gboolean status) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - iface->set_network_status (single, status); + if (status != single->priv->online) + single->priv->online = status; } /** @@ -235,8 +442,7 @@ ephy_embed_single_set_network_status (EphyEmbedSingle *single, gboolean ephy_embed_single_get_network_status (EphyEmbedSingle *single) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - return iface->get_network_status (single); + return single->priv->online; } /** @@ -256,8 +462,7 @@ GList * ephy_embed_single_get_font_list (EphyEmbedSingle *single, const char *lang_group) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - return iface->get_font_list (single, lang_group); + return NULL; } /** @@ -285,6 +490,5 @@ ephy_embed_single_open_window (EphyEmbedSingle *single, const char *name, const char *features) { - EphyEmbedSingleIface *iface = EPHY_EMBED_SINGLE_GET_IFACE (single); - return iface->open_window (single, parent, address, name, features); + return NULL; } diff --git a/embed/ephy-embed-single.h b/embed/ephy-embed-single.h index cbd253ab3..b2efd0e85 100644 --- a/embed/ephy-embed-single.h +++ b/embed/ephy-embed-single.h @@ -37,11 +37,19 @@ G_BEGIN_DECLS #define EPHY_EMBED_SINGLE_GET_IFACE(i) (G_TYPE_INSTANCE_GET_INTERFACE ((i), EPHY_TYPE_EMBED_SINGLE, EphyEmbedSingleIface)) typedef struct _EphyEmbedSingle EphyEmbedSingle; -typedef struct _EphyEmbedSingleIface EphyEmbedSingleIface; +typedef struct _EphyEmbedSingleClass EphyEmbedSingleClass; +typedef struct _EphyEmbedSinglePrivate EphyEmbedSinglePrivate; -struct _EphyEmbedSingleIface +struct _EphyEmbedSingle { + GObject parent; + + /*< private >*/ + EphyEmbedSinglePrivate *priv; +}; + +struct _EphyEmbedSingleClass { - GTypeInterface base_iface; + GObjectClass parent_class; /* Signals */ @@ -61,28 +69,11 @@ struct _EphyEmbedSingleIface const char *url, const char *icon_url, const char *title); - - /* Methods */ - - gboolean (* init) (EphyEmbedSingle *single); - GtkWidget * (* open_window) (EphyEmbedSingle *single, - EphyEmbed *parent, - const char *address, - const char *name, - const char *features); - void (* clear_cache) (EphyEmbedSingle *shell); - void (* clear_auth_cache) (EphyEmbedSingle *shell); - void (* set_network_status)(EphyEmbedSingle *shell, - gboolean offline); - gboolean (* get_network_status)(EphyEmbedSingle *single); - GList * (* get_font_list) (EphyEmbedSingle *shell, - const char *langGroup); - const char * (* get_backend_name) (EphyEmbedSingle *shell); }; GType ephy_embed_single_get_type (void); -gboolean ephy_embed_single_init (EphyEmbedSingle *single); +gboolean ephy_embed_single_initialize (EphyEmbedSingle *single); GtkWidget *ephy_embed_single_open_window (EphyEmbedSingle *single, EphyEmbed *parent, diff --git a/embed/webkit/Makefile.am b/embed/webkit/Makefile.am index ca204a8ec..e5b14ccff 100644 --- a/embed/webkit/Makefile.am +++ b/embed/webkit/Makefile.am @@ -2,9 +2,7 @@ noinst_LTLIBRARIES = libephywebkitembed.la libephywebkitembed_la_SOURCES = \ webkit-embed-persist.c \ - webkit-embed-persist.h \ - webkit-embed-single.c \ - webkit-embed-single.h + webkit-embed-persist.h libephywebkitembed_la_CPPFLAGS = \ -I$(top_srcdir)/lib \ diff --git a/embed/webkit/webkit-embed-single.c b/embed/webkit/webkit-embed-single.c deleted file mode 100644 index af6cbc6e2..000000000 --- a/embed/webkit/webkit-embed-single.c +++ /dev/null @@ -1,343 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ -/* Copyright © 2007 Xan Lopez - * - * 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. - * - */ - -#include "config.h" -#include -#include -#include - -#include "webkit-embed-single.h" -#include "ephy-embed-prefs.h" -#include "ephy-embed-single.h" -#include "ephy-file-helpers.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 *wes); -static void ephy_embed_single_iface_init (EphyEmbedSingleIface *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_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_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 *wes) -{ - wes->priv = WEBKIT_EMBED_SINGLE_GET_PRIVATE (wes); - - wes->priv->online = TRUE; -} - -static void -webkit_embed_single_finalize (GObject *object) -{ - ephy_embed_prefs_shutdown (); - - 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) -{ - WebKitEmbedSinglePrivate *priv = WEBKIT_EMBED_SINGLE (single)->priv; - - if (online != priv->online) { - priv->online = online; - } -} - -static gboolean -impl_get_network_status (EphyEmbedSingle *esingle) -{ - return WEBKIT_EMBED_SINGLE (esingle)->priv->online; -} - -static GList * -impl_get_font_list (EphyEmbedSingle *shell, - const char *langGroup) -{ - return NULL; -} - -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) -{ - SoupSession *session; - SoupCookieJar *jar; - char *filename; - - ephy_embed_prefs_init (); - - session = webkit_get_default_session (); - - /* Store cookies in moz-compatible SQLite format */ - filename = g_build_filename (ephy_dot_dir (), "cookies.sqlite", NULL); - jar = soup_cookie_jar_sqlite_new (filename, FALSE); - g_free (filename); - - soup_session_add_feature (session, SOUP_SESSION_FEATURE(jar)); - g_object_unref (jar); - - /* Use GNOME proxy settings through libproxy */ - soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME); - - 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; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - 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; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} -static void -webkit_embed_single_class_init (WebKitEmbedSingleClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - 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; -} - -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 */ diff --git a/embed/webkit/webkit-embed-single.h b/embed/webkit/webkit-embed-single.h deleted file mode 100644 index aae444e9c..000000000 --- a/embed/webkit/webkit-embed-single.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ -/* - * 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. - * - */ - -#ifndef WEBKIT_EMBED_SINGLE_H -#define WEBKIT_EMBED_SINGLE_H - -#include - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_EMBED_SINGLE (webkit_embed_single_get_type ()) -#define WEBKIT_EMBED_SINGLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), WEBKIT_TYPE_EMBED_SINGLE, WebKitEmbedSingle)) -#define WEBKIT_EMBED_SINGLE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), WEBKIT_TYPE_EMBED_SINGLE, WebKitEmbedSingleClass)) -#define WEBKIT_IS_EMBED_SINGLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), WEBKIT_TYPE_EMBED_SINGLE)) -#define WEBKIT_IS_EMBED_SINGLE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), WEBKIT_TYPE_EMBED_SINGLE)) -#define WEBKIT_EMBED_SINGLE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), WEBKIT_TYPE_EMBED_SINGLE, WebKitEmbedSingleClass)) - -typedef struct WebKitEmbedSingle WebKitEmbedSingle; -typedef struct WebKitEmbedSingleClass WebKitEmbedSingleClass; -typedef struct WebKitEmbedSinglePrivate WebKitEmbedSinglePrivate; - -struct WebKitEmbedSingle { - GObject parent; - - /*< private >*/ - WebKitEmbedSinglePrivate *priv; -}; - -struct WebKitEmbedSingleClass { - GObjectClass parent_class; -}; - -GType webkit_embed_single_get_type (void); - -G_END_DECLS - -#endif -- cgit