aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/ContentHandler.h2
-rw-r--r--embed/mozilla/EventContext.cpp4
-rw-r--r--embed/mozilla/GlobalHistory.cpp2
-rw-r--r--embed/mozilla/Makefile.am13
-rw-r--r--embed/mozilla/MozRegisterComponents.cpp24
-rw-r--r--embed/mozilla/PromptService.cpp1
-rw-r--r--embed/mozilla/mozilla-embed-shell.h55
-rw-r--r--embed/mozilla/mozilla-embed-single.cpp (renamed from embed/mozilla/mozilla-embed-shell.cpp)222
-rw-r--r--embed/mozilla/mozilla-embed-single.h53
-rw-r--r--embed/mozilla/mozilla-notifiers.cpp19
-rw-r--r--embed/mozilla/mozilla-notifiers.h4
-rw-r--r--embed/mozilla/mozilla-prefs.cpp55
-rw-r--r--embed/mozilla/mozilla-prefs.h10
13 files changed, 208 insertions, 256 deletions
diff --git a/embed/mozilla/ContentHandler.h b/embed/mozilla/ContentHandler.h
index 6ae61f657..4a6d816d7 100644
--- a/embed/mozilla/ContentHandler.h
+++ b/embed/mozilla/ContentHandler.h
@@ -19,7 +19,7 @@
#ifndef __ContentHandler_h
#define __ContentHandler_h
-#include "mozilla-embed-shell.h"
+#include "ephy-embed-shell.h"
#include <libgnomevfs/gnome-vfs-mime-handlers.h>
#include "nsIHelperAppLauncherDialog.h"
diff --git a/embed/mozilla/EventContext.cpp b/embed/mozilla/EventContext.cpp
index 9d4e312b6..78a01e451 100644
--- a/embed/mozilla/EventContext.cpp
+++ b/embed/mozilla/EventContext.cpp
@@ -525,16 +525,12 @@ nsresult EventContext::GetCSSBackground (nsIDOMNode *node, nsAutoString& url)
nsresult EventContext::GetMouseEventInfo (EphyEmbedEvent *info)
{
nsresult result;
- DOMTimeStamp ts;
nsIDOMMouseEvent *aMouseEvent = (nsIDOMMouseEvent*)mEvent;
aMouseEvent->GetButton ((PRUint16*)&info->mouse_button);
aMouseEvent->GetScreenX ((PRInt32*)&info->mouse_x);
aMouseEvent->GetScreenY ((PRInt32*)&info->mouse_y);
- aMouseEvent->GetTimeStamp(&ts);
- info->timestamp = ts;
-
/* be sure we are not clicking on the scroolbars */
nsCOMPtr<nsIDOMNSEvent> nsEvent = do_QueryInterface(aMouseEvent, &result);
diff --git a/embed/mozilla/GlobalHistory.cpp b/embed/mozilla/GlobalHistory.cpp
index 054b7a5df..8507ad7e9 100644
--- a/embed/mozilla/GlobalHistory.cpp
+++ b/embed/mozilla/GlobalHistory.cpp
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "mozilla-embed-shell.h"
+#include "ephy-embed-shell.h"
#include "nsCOMPtr.h"
#include "nsISupportsArray.h"
diff --git a/embed/mozilla/Makefile.am b/embed/mozilla/Makefile.am
index dd24d6c1e..34db7859e 100644
--- a/embed/mozilla/Makefile.am
+++ b/embed/mozilla/Makefile.am
@@ -61,6 +61,8 @@ libephymozillaembed_la_SOURCES = \
BaseProtocolContentHandler.h \
ContentHandler.cpp \
ContentHandler.h \
+ EphyEventListener.cpp \
+ EphyEventListener.h \
EphyWrapper.cpp \
EphyWrapper.h \
EventContext.cpp \
@@ -91,14 +93,12 @@ libephymozillaembed_la_SOURCES = \
ProgressListener.h \
StartHereProtocolHandler.cpp \
StartHereProtocolHandler.h \
- EphyEventListener.cpp \
- EphyEventListener.h \
mozilla-embed.cpp \
mozilla-embed.h \
mozilla-embed-persist.cpp \
mozilla-embed-persist.h \
- mozilla-embed-shell.cpp \
- mozilla-embed-shell.h \
+ mozilla-embed-single.cpp \
+ mozilla-embed-single.h \
mozilla-i18n.c \
mozilla-i18n.h \
mozilla-notifiers.cpp \
@@ -107,3 +107,8 @@ libephymozillaembed_la_SOURCES = \
mozilla-prefs.h \
nsUnicharUtils.cpp \
nsUnicharUtils.h
+
+mozilla_DATA = default-prefs.js
+mozilladir = $(pkgdatadir)
+
+EXTRA_DIST = $(mozilla_DATA)
diff --git a/embed/mozilla/MozRegisterComponents.cpp b/embed/mozilla/MozRegisterComponents.cpp
index 3c5e64be7..a8950fc70 100644
--- a/embed/mozilla/MozRegisterComponents.cpp
+++ b/embed/mozilla/MozRegisterComponents.cpp
@@ -34,7 +34,6 @@
#include <nsIFactory.h>
#include <nsIComponentManager.h>
#include <nsCOMPtr.h>
-#include <nsILocalFile.h>
#include <glib.h>
@@ -55,10 +54,6 @@ NS_METHOD RegisterFactory (nsresult (aFactoryFunc)(nsIFactory** aFactory),
const nsCID & aClass, const char *aClassName,
const char *aContractID, PRBool aReplace);
-NS_METHOD RegisterComponent (const nsCID & aClass, const char *aClassName,
- const char *aContractID, const char *aDLLPath,
- PRBool aReplace);
-
//Annoying globals to track the mozilla ftp handler so it can be restored.
static PRBool ftpRegistered = PR_FALSE;
static nsCOMPtr<nsIFactory> nsFtpFactory;
@@ -144,25 +139,6 @@ NS_METHOD RegisterFactory (nsresult (aFactoryFunc)(nsIFactory** aFactory),
return rv;
}
-NS_METHOD RegisterComponent (const nsCID & aClass, const char *aClassName,
- const char *aContractID, const char *aDLLPath,
- PRBool aReplace)
-{
- nsresult rv = NS_OK;
-
- nsCOMPtr<nsILocalFile> dllFile;
- rv = NS_NewLocalFile (NS_ConvertUTF8toUCS2(aDLLPath), PR_TRUE, getter_AddRefs (dllFile));
- if (NS_FAILED(rv)) return NS_ERROR_FAILURE;
-
- rv = nsComponentManager::RegisterComponentSpec (aClass,
- aClassName,
- aContractID,
- dllFile,
- aReplace,
- PR_FALSE);
- return rv;
-}
-
/**
* mozilla_register_FtpProtocolHandler: Register Ftp Protocol Handler
*/
diff --git a/embed/mozilla/PromptService.cpp b/embed/mozilla/PromptService.cpp
index e6181ae32..6674bdd63 100644
--- a/embed/mozilla/PromptService.cpp
+++ b/embed/mozilla/PromptService.cpp
@@ -143,6 +143,7 @@ NS_IMETHODIMP CPromptService::AlertCheck (nsIDOMWindow *parent,
set_title (dialog, dialogTitle);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
gtk_dialog_run (GTK_DIALOG (dialog));
get_check_button (check_button, checkValue);
gtk_widget_destroy (dialog);
diff --git a/embed/mozilla/mozilla-embed-shell.h b/embed/mozilla/mozilla-embed-shell.h
deleted file mode 100644
index daedb2948..000000000
--- a/embed/mozilla/mozilla-embed-shell.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2000, 2001, 2002 Marco Pesenti Gritti
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef MOZILLA_EMBED_SHELL_H
-#define MOZILLA_EMBED_SHELL_H
-
-#include "glib.h"
-#include "ephy-embed-shell.h"
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define MOZILLA_EMBED_SHELL_TYPE (mozilla_embed_shell_get_type ())
-#define MOZILLA_EMBED_SHELL(obj) (GTK_CHECK_CAST ((obj), MOZILLA_EMBED_SHELL_TYPE, MozillaEmbedShell))
-#define MOZILLA_EMBED_SHELL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), MOZILLA_EMBED_SHELL_TYPE, MozillaEmbedShellClass))
-#define IS_MOZILLA_EMBED_SHELL(obj) (GTK_CHECK_TYPE ((obj), MOZILLA_EMBED_SHELL_TYPE))
-#define IS_MOZILLA_EMBED_SHELL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), MOZILLA_EMBED_SHELL))
-#define MOZILLA_EMBED_SHELL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOZILLA_EMBED_SHELL_TYPE, MozillaEmbedShellClass))
-
-typedef struct MozillaEmbedShell MozillaEmbedShell;
-typedef struct MozillaEmbedShellPrivate MozillaEmbedShellPrivate;
-
-extern GObject *mozilla_js_console;
-
-struct MozillaEmbedShell
-{
- EphyEmbedShell parent;
- MozillaEmbedShellPrivate *priv;
-};
-
-struct MozillaEmbedShellClass
-{
- EphyEmbedShellClass parent_class;
-};
-
-GType mozilla_embed_shell_get_type (void);
-
-G_END_DECLS
-
-#endif
diff --git a/embed/mozilla/mozilla-embed-shell.cpp b/embed/mozilla/mozilla-embed-single.cpp
index 58c692eb4..fe1fbd1f0 100644
--- a/embed/mozilla/mozilla-embed-shell.cpp
+++ b/embed/mozilla/mozilla-embed-single.cpp
@@ -19,7 +19,7 @@
#include "glib.h"
#include "ephy-string.h"
#include "gtkmozembed.h"
-#include "mozilla-embed-shell.h"
+#include "mozilla-embed-single.h"
#include "mozilla-prefs.h"
#include "ephy-prefs.h"
#include "ephy-file-helpers.h"
@@ -58,53 +58,50 @@
#define MOZILLA_PROFILE_FILE "prefs.js"
static void
-mozilla_embed_shell_class_init (MozillaEmbedShellClass *klass);
+mozilla_embed_single_class_init (MozillaEmbedSingleClass *klass);
static void
-mozilla_embed_shell_init (MozillaEmbedShell *ges);
+mozilla_embed_single_init (MozillaEmbedSingle *ges);
static void
-mozilla_embed_shell_finalize (GObject *object);
+mozilla_embed_single_finalize (GObject *object);
-static void
-impl_get_capabilities (EphyEmbedShell *shell,
- EmbedShellCapabilities *caps);
static gresult
-impl_clear_cache (EphyEmbedShell *shell,
+impl_clear_cache (EphyEmbedSingle *shell,
CacheType type);
static gresult
-impl_set_offline_mode (EphyEmbedShell *shell,
+impl_set_offline_mode (EphyEmbedSingle *shell,
gboolean offline);
static gresult
-impl_load_proxy_autoconf (EphyEmbedShell *shell,
+impl_load_proxy_autoconf (EphyEmbedSingle *shell,
const char* url);
static gresult
-impl_get_charset_titles (EphyEmbedShell *shell,
+impl_get_charset_titles (EphyEmbedSingle *shell,
const char *group,
GList **charsets);
static gresult
-impl_get_charset_groups (EphyEmbedShell *shell,
+impl_get_charset_groups (EphyEmbedSingle *shell,
GList **groups);
static gresult
-impl_get_font_list (EphyEmbedShell *shell,
+impl_get_font_list (EphyEmbedSingle *shell,
const char *langGroup,
const char *fontType,
GList **fontList,
char **default_font);
static gresult
-impl_list_cookies (EphyEmbedShell *shell,
+impl_list_cookies (EphyEmbedSingle *shell,
GList **cookies);
static gresult
-impl_remove_cookies (EphyEmbedShell *shell,
+impl_remove_cookies (EphyEmbedSingle *shell,
GList *cookies);
static gresult
-impl_list_passwords (EphyEmbedShell *shell,
+impl_list_passwords (EphyEmbedSingle *shell,
PasswordType type,
GList **passwords);
static gresult
-impl_remove_passwords (EphyEmbedShell *shell,
+impl_remove_passwords (EphyEmbedSingle *shell,
GList *passwords,
PasswordType type);
static gresult
-impl_show_file_picker (EphyEmbedShell *shell,
+impl_show_file_picker (EphyEmbedSingle *shell,
GtkWidget *parentWidget,
const char *title,
const char *directory,
@@ -115,13 +112,14 @@ impl_show_file_picker (EphyEmbedShell *shell,
FileFormat *file_formats,
int *ret_file_format);
-static void mozilla_embed_shell_new_window_orphan_cb (GtkMozEmbedSingle *embed,
+static void mozilla_embed_single_new_window_orphan_cb (GtkMozEmbedSingle *embed,
GtkMozEmbed **retval,
guint chrome_mask,
- EphyEmbedShell *shell);
+ EphyEmbedSingle *shell);
-struct MozillaEmbedShellPrivate
+struct MozillaEmbedSinglePrivate
{
+ char *user_prefs;
GHashTable *charsets_hash;
GList *sorted_charsets_titles;
};
@@ -131,45 +129,44 @@ static NS_DEFINE_CID(kJVMManagerCID, NS_JVMMANAGER_CID);
static GObjectClass *parent_class = NULL;
GType
-mozilla_embed_shell_get_type (void)
+mozilla_embed_single_get_type (void)
{
- static GType mozilla_embed_shell_type = 0;
+ static GType mozilla_embed_single_type = 0;
- if (mozilla_embed_shell_type == 0)
+ if (mozilla_embed_single_type == 0)
{
static const GTypeInfo our_info =
{
- sizeof (MozillaEmbedShellClass),
+ sizeof (MozillaEmbedSingleClass),
NULL, /* base_init */
NULL, /* base_finalize */
- (GClassInitFunc) mozilla_embed_shell_class_init,
+ (GClassInitFunc) mozilla_embed_single_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
- sizeof (MozillaEmbedShell),
+ sizeof (MozillaEmbedSingle),
0, /* n_preallocs */
- (GInstanceInitFunc) mozilla_embed_shell_init
+ (GInstanceInitFunc) mozilla_embed_single_init
};
- mozilla_embed_shell_type = g_type_register_static (EPHY_EMBED_SHELL_TYPE,
- "MozillaEmbedShell",
+ mozilla_embed_single_type = g_type_register_static (EPHY_EMBED_SINGLE_TYPE,
+ "MozillaEmbedSingle",
&our_info, (GTypeFlags)0);
}
- return mozilla_embed_shell_type;
+ return mozilla_embed_single_type;
}
static void
-mozilla_embed_shell_class_init (MozillaEmbedShellClass *klass)
+mozilla_embed_single_class_init (MozillaEmbedSingleClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- EphyEmbedShellClass *shell_class;
+ EphyEmbedSingleClass *shell_class;
parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
- shell_class = EPHY_EMBED_SHELL_CLASS (klass);
+ shell_class = EPHY_EMBED_SINGLE_CLASS (klass);
- object_class->finalize = mozilla_embed_shell_finalize;
+ object_class->finalize = mozilla_embed_single_finalize;
- shell_class->get_capabilities = impl_get_capabilities;
shell_class->clear_cache = impl_clear_cache;
shell_class->set_offline_mode = impl_set_offline_mode;
shell_class->load_proxy_autoconf = impl_load_proxy_autoconf;
@@ -184,7 +181,7 @@ mozilla_embed_shell_class_init (MozillaEmbedShellClass *klass)
}
static void
-mozilla_load_proxy_prefs (MozillaEmbedShell *shell)
+mozilla_load_proxy_prefs (MozillaEmbedSingle *shell)
{
char *tmp;
int i, mozilla_mode = 0;
@@ -244,48 +241,20 @@ mozilla_load_proxy_prefs (MozillaEmbedShell *shell)
/* Autoconfiguration */
tmp = eel_gconf_get_string (CONF_NETWORK_PROXY_AUTO_URL);
g_return_if_fail (tmp != NULL);
- ephy_embed_shell_load_proxy_autoconf
- (EPHY_EMBED_SHELL (shell), tmp);
+ ephy_embed_single_load_proxy_autoconf
+ (EPHY_EMBED_SINGLE (shell), tmp);
g_free (tmp);
}
static void
-mozilla_set_default_prefs (void)
+mozilla_set_default_prefs (MozillaEmbedSingle *mes)
{
- mozilla_prefs_set_boolean ("mozilla.widget.raise-on-setfocus",
- FALSE);
- mozilla_prefs_set_boolean ("browser.display.use_system_colors",
- FALSE);
-
- /* set default search engine */
- mozilla_prefs_set_string ("keyword.URL",_("http://www.google.com/search?q="));
- mozilla_prefs_set_boolean ("keyword.enabled", TRUE);
- mozilla_prefs_set_boolean ("security.checkloaduri", FALSE);
-
- /* while we have no UI */
- mozilla_prefs_set_boolean ("wallet.captureForms", FALSE);
-
- /* deactivate mailcap and mime.types support */
- mozilla_prefs_set_string ("helpers.global_mime_types_file", "");
- mozilla_prefs_set_string ("helpers.global_mailcap_file", "");
- mozilla_prefs_set_string ("helpers.private_mime_types_file", "");
- mozilla_prefs_set_string ("helpers.private_mailcap_file", "");
-
- /* dont allow xpi installs from epiphany, there are crashes */
- mozilla_prefs_set_boolean ("xpinstall.enabled", FALSE);
-
- /* disable sucky XUL ftp view, have nice ns4-like html page instead */
- mozilla_prefs_set_boolean ("network.dir.generate_html", TRUE);
-
- /* set the right accept encoding flags */
- mozilla_prefs_set_string ("network.http.accept-encoding" ,
- "gzip, deflate, compress;q=0.9");
-
- mozilla_prefs_save ();
+ mozilla_prefs_load (ephy_file ("default-prefs.js"));
+ mozilla_prefs_save (mes->priv->user_prefs);
}
static void
-mozilla_init_single (MozillaEmbedShell *mes)
+mozilla_init_single (MozillaEmbedSingle *mes)
{
GtkMozEmbedSingle *single;
@@ -298,7 +267,7 @@ mozilla_init_single (MozillaEmbedShell *mes)
/* allow creation of orphan windows */
g_signal_connect (G_OBJECT (single), "new_window_orphan",
- GTK_SIGNAL_FUNC (mozilla_embed_shell_new_window_orphan_cb),
+ GTK_SIGNAL_FUNC (mozilla_embed_single_new_window_orphan_cb),
mes);
}
@@ -323,20 +292,21 @@ mozilla_init_profile (void)
}
static gboolean
-is_new_build (void)
+is_new_build (MozillaEmbedSingle *mes)
{
gboolean new_build = FALSE;
- char *mozprefs, *build_test;
+ char *build_test;
+ char *prefs_file;
- mozprefs = g_build_filename (ephy_dot_dir (),
- MOZILLA_PROFILE_DIR,
- MOZILLA_PROFILE_NAME,
- MOZILLA_PROFILE_FILE,
- NULL);
+ prefs_file = g_build_filename (ephy_dot_dir (),
+ MOZILLA_PROFILE_DIR,
+ MOZILLA_PROFILE_NAME,
+ MOZILLA_PROFILE_FILE,
+ NULL);
/* no mozilla prefs ? or new epiphany build */
build_test = eel_gconf_get_string ("/apps/epiphany/gconf_test");
- if (!g_file_test(mozprefs, G_FILE_TEST_EXISTS) ||
+ if (!g_file_test(mes->priv->user_prefs, G_FILE_TEST_EXISTS) ||
build_test == NULL ||
strncmp (build_test, __TIME__, 8) != 0)
{
@@ -344,16 +314,15 @@ is_new_build (void)
eel_gconf_set_string ("/apps/epiphany/gconf_test", __TIME__);
}
- g_free (mozprefs);
g_free (build_test);
return new_build;
}
static void
-mozilla_init_prefs (void)
+mozilla_init_prefs (MozillaEmbedSingle *mes)
{
- mozilla_set_default_prefs ();
+ mozilla_set_default_prefs (mes);
mozilla_notifiers_set_defaults ();
}
@@ -398,19 +367,25 @@ mozilla_register_external_protocols (void)
}
static void
-mozilla_embed_shell_init (MozillaEmbedShell *mes)
+mozilla_embed_single_init (MozillaEmbedSingle *mes)
{
gboolean new_build;
-
- mes->priv = g_new0 (MozillaEmbedShellPrivate, 1);
-
+
+ mes->priv = g_new0 (MozillaEmbedSinglePrivate, 1);
mes->priv->charsets_hash = NULL;
mes->priv->sorted_charsets_titles = NULL;
- new_build = is_new_build ();
+ mes->priv->user_prefs =
+ g_build_filename (ephy_dot_dir (),
+ MOZILLA_PROFILE_DIR,
+ MOZILLA_PROFILE_NAME,
+ MOZILLA_PROFILE_FILE,
+ NULL);
+
+ new_build = is_new_build (mes);
/* Pre initialization */
- mozilla_notifiers_init (mes);
+ mozilla_notifiers_init (EPHY_EMBED_SINGLE (mes));
mozilla_init_home ();
mozilla_init_profile ();
@@ -420,7 +395,7 @@ mozilla_embed_shell_init (MozillaEmbedShell *mes)
/* Post initialization */
if (new_build)
{
- mozilla_init_prefs ();
+ mozilla_init_prefs (mes);
}
mozilla_load_proxy_prefs (mes);
@@ -435,10 +410,10 @@ mozilla_embed_shell_init (MozillaEmbedShell *mes)
}
static void
-mozilla_embed_shell_new_window_orphan_cb (GtkMozEmbedSingle *embed,
+mozilla_embed_single_new_window_orphan_cb (GtkMozEmbedSingle *embed,
GtkMozEmbed **retval,
guint chrome_mask,
- EphyEmbedShell *shell)
+ EphyEmbedSingle *shell)
{
/* FIXME conversion duped in mozilla_embed */
EphyEmbed *new_embed;
@@ -480,51 +455,34 @@ mozilla_embed_shell_new_window_orphan_cb (GtkMozEmbedSingle *embed,
}
static void
-mozilla_embed_shell_finalize (GObject *object)
+mozilla_embed_single_finalize (GObject *object)
{
- MozillaEmbedShell *mes;
+ MozillaEmbedSingle *mes;
- /* Destroy EphyEmbedShell before because some
+ /* Destroy EphyEmbedSingle before because some
* services depend on xpcom */
G_OBJECT_CLASS (parent_class)->finalize (object);
g_return_if_fail (object != NULL);
- g_return_if_fail (IS_MOZILLA_EMBED_SHELL (object));
+ g_return_if_fail (IS_MOZILLA_EMBED_SINGLE (object));
- mes = MOZILLA_EMBED_SHELL (object);
+ mes = MOZILLA_EMBED_SINGLE (object);
g_return_if_fail (mes->priv != NULL);
mozilla_notifiers_free ();
- mozilla_prefs_save ();
+ mozilla_prefs_save (mes->priv->user_prefs);
gtk_moz_embed_pop_startup ();
-
- g_free (mes->priv);
-}
-static void
-impl_get_capabilities (EphyEmbedShell *shell,
- EmbedShellCapabilities *caps)
-{
- EmbedShellCapabilities mycaps;
-
- mycaps = (EmbedShellCapabilities)
- (CACHE_CLEAR_CAP |
- OFFLINE_CAP |
- PROXY_AUTOCONF_CAP |
- JAVA_CONSOLE_CAP |
- JS_CONSOLE_CAP |
- CHARSETS_CAP |
- COOKIES_CAP |
- PASSWORDS_CAP);
+ g_free (mes->priv->user_prefs);
- *caps = mycaps;
+ g_free (mes->priv);
}
static gresult
-impl_clear_cache (EphyEmbedShell *shell,
+impl_clear_cache (EphyEmbedSingle *shell,
CacheType type)
{
nsresult rv;
@@ -539,7 +497,7 @@ impl_clear_cache (EphyEmbedShell *shell,
}
static gresult
-impl_set_offline_mode (EphyEmbedShell *shell,
+impl_set_offline_mode (EphyEmbedSingle *shell,
gboolean offline)
{
nsresult rv;
@@ -555,7 +513,7 @@ impl_set_offline_mode (EphyEmbedShell *shell,
}
static gresult
-impl_load_proxy_autoconf (EphyEmbedShell *shell,
+impl_load_proxy_autoconf (EphyEmbedSingle *shell,
const char* url)
{
nsresult rv;
@@ -572,7 +530,7 @@ impl_load_proxy_autoconf (EphyEmbedShell *shell,
}
static gresult
-fill_charsets_lists (MozillaEmbedShellPrivate *priv)
+fill_charsets_lists (MozillaEmbedSinglePrivate *priv)
{
nsresult rv;
char *tmp;
@@ -650,7 +608,7 @@ fill_charsets_lists (MozillaEmbedShellPrivate *priv)
}
static void
-ensure_charsets_tables (MozillaEmbedShell *shell)
+ensure_charsets_tables (MozillaEmbedSingle *shell)
{
if (!shell->priv->charsets_hash)
{
@@ -659,15 +617,15 @@ ensure_charsets_tables (MozillaEmbedShell *shell)
}
static gresult
-impl_get_charset_titles (EphyEmbedShell *shell,
+impl_get_charset_titles (EphyEmbedSingle *shell,
const char *group,
GList **charsets)
{
- MozillaEmbedShell *mshell = MOZILLA_EMBED_SHELL(shell);
+ MozillaEmbedSingle *mshell = MOZILLA_EMBED_SINGLE(shell);
int count = get_translated_cscount ();
GList *l = NULL;
int j;
-
+
ensure_charsets_tables (mshell);
g_return_val_if_fail (mshell->priv->charsets_hash != NULL, G_FAILED);
@@ -693,7 +651,7 @@ impl_get_charset_titles (EphyEmbedShell *shell,
}
static gresult
-impl_get_charset_groups (EphyEmbedShell *shell,
+impl_get_charset_groups (EphyEmbedSingle *shell,
GList **groups)
{
GList *l = NULL;
@@ -710,7 +668,7 @@ impl_get_charset_groups (EphyEmbedShell *shell,
}
static gresult
-impl_get_font_list (EphyEmbedShell *shell,
+impl_get_font_list (EphyEmbedSingle *shell,
const char *langGroup,
const char *fontType,
GList **fontList,
@@ -760,7 +718,7 @@ impl_get_font_list (EphyEmbedShell *shell,
}
static gresult
-impl_list_cookies (EphyEmbedShell *shell,
+impl_list_cookies (EphyEmbedSingle *shell,
GList **cookies)
{
nsresult result;
@@ -819,7 +777,7 @@ impl_list_cookies (EphyEmbedShell *shell,
}
static gresult
-impl_remove_cookies (EphyEmbedShell *shell,
+impl_remove_cookies (EphyEmbedSingle *shell,
GList *cookies)
{
nsresult result;
@@ -843,7 +801,7 @@ impl_remove_cookies (EphyEmbedShell *shell,
}
static gresult
-impl_list_passwords (EphyEmbedShell *shell,
+impl_list_passwords (EphyEmbedSingle *shell,
PasswordType type,
GList **passwords)
{
@@ -892,7 +850,7 @@ impl_list_passwords (EphyEmbedShell *shell,
}
static gresult
-impl_remove_passwords (EphyEmbedShell *shell,
+impl_remove_passwords (EphyEmbedSingle *shell,
GList *passwords,
PasswordType type)
{
@@ -922,7 +880,7 @@ impl_remove_passwords (EphyEmbedShell *shell,
}
static gresult
-impl_show_file_picker (EphyEmbedShell *shell,
+impl_show_file_picker (EphyEmbedSingle *shell,
GtkWidget *parentWidget,
const char *title,
const char *directory,
diff --git a/embed/mozilla/mozilla-embed-single.h b/embed/mozilla/mozilla-embed-single.h
new file mode 100644
index 000000000..f46760d0c
--- /dev/null
+++ b/embed/mozilla/mozilla-embed-single.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2000, 2001, 2002 Marco Pesenti Gritti
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef MOZILLA_EMBED_SINGLE_H
+#define MOZILLA_EMBED_SINGLE_H
+
+#include "glib.h"
+#include "ephy-embed-shell.h"
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define MOZILLA_EMBED_SINGLE_TYPE (mozilla_embed_single_get_type ())
+#define MOZILLA_EMBED_SINGLE(obj) (GTK_CHECK_CAST ((obj), MOZILLA_EMBED_SINGLE_TYPE, MozillaEmbedSingle))
+#define MOZILLA_EMBED_SINGLE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), MOZILLA_EMBED_SINGLE_TYPE, MozillaEmbedSingleClass))
+#define IS_MOZILLA_EMBED_SINGLE(obj) (GTK_CHECK_TYPE ((obj), MOZILLA_EMBED_SINGLE_TYPE))
+#define IS_MOZILLA_EMBED_SINGLE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), MOZILLA_EMBED_SINGLE))
+#define MOZILLA_EMBED_SINGLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOZILLA_EMBED_SINGLE_TYPE, MozillaEmbedSingleClass))
+
+typedef struct MozillaEmbedSingle MozillaEmbedSingle;
+typedef struct MozillaEmbedSinglePrivate MozillaEmbedSinglePrivate;
+
+struct MozillaEmbedSingle
+{
+ EphyEmbedSingle parent;
+ MozillaEmbedSinglePrivate *priv;
+};
+
+struct MozillaEmbedSingleClass
+{
+ EphyEmbedSingleClass parent_class;
+};
+
+GType mozilla_embed_single_get_type (void);
+
+G_END_DECLS
+
+#endif
diff --git a/embed/mozilla/mozilla-notifiers.cpp b/embed/mozilla/mozilla-notifiers.cpp
index 24dfbb7a5..e188ecb99 100644
--- a/embed/mozilla/mozilla-notifiers.cpp
+++ b/embed/mozilla/mozilla-notifiers.cpp
@@ -19,6 +19,7 @@
#include "config.h"
#include "ephy-embed-shell.h"
+#include "ephy-embed-single.h"
#include "mozilla-notifiers.h"
#include "eel-gconf-extensions.h"
#include "mozilla-prefs.h"
@@ -82,7 +83,7 @@ static void
mozilla_autodetect_charset_notifier(GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
- EphyEmbedShell *shell);
+ EphyEmbedSingle *single);
static void
mozilla_default_font_notifier(GConfClient *client,
@@ -111,7 +112,7 @@ static void
mozilla_default_charset_notifier (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
- EphyEmbedShell *shell);
+ EphyEmbedSingle *single);
static void
mozilla_socks_version_notifier (GConfClient *client,
guint cnxn_id,
@@ -256,12 +257,14 @@ mozilla_proxy_autoconfig_notifier (GConfClient *client,
GConfEntry *entry,
char *pref)
{
- ephy_embed_shell_load_proxy_autoconf
- (embed_shell, gconf_value_get_string(entry->value));
+ EphyEmbedSingle *single;
+ single = ephy_embed_shell_get_embed_single (embed_shell);
+ ephy_embed_single_load_proxy_autoconf
+ (single, gconf_value_get_string(entry->value));
}
void
-mozilla_notifiers_init(MozillaEmbedShell *shell)
+mozilla_notifiers_init(EphyEmbedSingle *single)
{
int i;
@@ -296,7 +299,7 @@ mozilla_notifiers_init(MozillaEmbedShell *shell)
ephy_notification_add(
custom_notifiers[i].gconf_key,
custom_notifiers[i].func,
- (gpointer)shell,
+ (gpointer)single,
&mozilla_notifiers);
}
@@ -482,7 +485,7 @@ static void
mozilla_default_charset_notifier(GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
- EphyEmbedShell *shell)
+ EphyEmbedSingle *single)
{
/* FIXME */
}
@@ -594,7 +597,7 @@ static void
mozilla_autodetect_charset_notifier(GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
- EphyEmbedShell *shell)
+ EphyEmbedSingle *single)
{
int charset = eel_gconf_get_integer (CONF_LANGUAGE_AUTODETECT_CHARSET);
if (charset < 0 ||
diff --git a/embed/mozilla/mozilla-notifiers.h b/embed/mozilla/mozilla-notifiers.h
index 6718365f7..f7882b83f 100644
--- a/embed/mozilla/mozilla-notifiers.h
+++ b/embed/mozilla/mozilla-notifiers.h
@@ -19,9 +19,9 @@
#ifndef MOZILLA_NOTIFIERS_H
#define MOZILLA_NOTIFIERS_H
-#include "mozilla-embed-shell.h"
+#include "ephy-embed-single.h"
-void mozilla_notifiers_init (MozillaEmbedShell *shell);
+void mozilla_notifiers_init (EphyEmbedSingle *single);
void mozilla_notifiers_set_defaults (void);
diff --git a/embed/mozilla/mozilla-prefs.cpp b/embed/mozilla/mozilla-prefs.cpp
index e5b8c68e2..55f9dcc6b 100644
--- a/embed/mozilla/mozilla-prefs.cpp
+++ b/embed/mozilla/mozilla-prefs.cpp
@@ -22,17 +22,50 @@
#include <nsIPrefService.h>
#include <nsIServiceManager.h>
#include <nsMemory.h>
+#include <nsILocalFile.h>
+#include <nsString.h>
#include <glib/gmessages.h>
#include <glib/gstrfuncs.h>
+void
+mozilla_prefs_load (const char *filename)
+{
+ nsresult rv;
+
+ nsCOMPtr<nsILocalFile> prefsLocalFile;
+ rv = NS_NewLocalFile (NS_ConvertUTF8toUCS2(filename), PR_TRUE, getter_AddRefs (prefsLocalFile));
+ g_return_if_fail (NS_SUCCEEDED(rv));
+
+ nsCOMPtr<nsIPrefService> prefService =
+ do_GetService (NS_PREFSERVICE_CONTRACTID);
+ g_return_if_fail (prefService != nsnull);
+
+ nsCOMPtr<nsIFile> prefsFile;
+ prefsLocalFile->QueryInterface(NS_GET_IID(nsIFile), (void **)&prefsFile);
+ g_return_if_fail (prefsFile != nsnull);
+
+ prefService->ReadUserPrefs (prefsFile);
+}
+
gboolean
-mozilla_prefs_save (void)
+mozilla_prefs_save (const char *filename)
{
+ nsresult rv;
+
+ nsCOMPtr<nsILocalFile> prefsLocalFile;
+ rv = NS_NewLocalFile (NS_ConvertUTF8toUCS2(filename), PR_TRUE, getter_AddRefs (prefsLocalFile));
+ g_return_val_if_fail (NS_SUCCEEDED(rv), FALSE);
+
nsCOMPtr<nsIPrefService> prefService =
do_GetService (NS_PREFSERVICE_CONTRACTID);
g_return_val_if_fail (prefService != nsnull, FALSE);
- nsresult rv = prefService->SavePrefFile (nsnull);
+ nsCOMPtr<nsIFile> prefsFile;
+ prefsLocalFile->QueryInterface(NS_GET_IID(nsIFile), (void **)&prefsFile);
+ g_return_val_if_fail (prefsFile != nsnull, FALSE);
+
+ rv = prefService->SavePrefFile (prefsFile);
+
return NS_SUCCEEDED (rv) ? TRUE : FALSE;
}
@@ -165,21 +198,3 @@ mozilla_prefs_get_string(const char *preference_name)
return result;
}
-gboolean
-mozilla_prefs_remove (const char *preference_name)
-{
- g_return_val_if_fail (preference_name != NULL, FALSE);
-
- nsCOMPtr<nsIPrefService> prefService =
- do_GetService (NS_PREFSERVICE_CONTRACTID);
- nsCOMPtr<nsIPrefBranch> pref;
- prefService->GetBranch ("", getter_AddRefs(pref));
-
- if (pref)
- {
- nsresult rv = pref->ClearUserPref (preference_name);
- return NS_SUCCEEDED (rv) ? TRUE : FALSE;
- }
-
- return FALSE;
-}
diff --git a/embed/mozilla/mozilla-prefs.h b/embed/mozilla/mozilla-prefs.h
index 82055c4a7..91d98c2e0 100644
--- a/embed/mozilla/mozilla-prefs.h
+++ b/embed/mozilla/mozilla-prefs.h
@@ -21,15 +21,17 @@
#include "glib/gtypes.h"
-gboolean mozilla_prefs_save (void);
+void mozilla_prefs_load (const char *filename);
-gboolean mozilla_prefs_set_string (const char *preference_name,
+gboolean mozilla_prefs_save (const char *filename);
+
+gboolean mozilla_prefs_set_string (const char *preference_name,
const char *new_value);
gboolean mozilla_prefs_set_boolean (const char *preference_name,
gboolean new_boolean_value);
-gboolean mozilla_prefs_set_int (const char *preference_name,
+gboolean mozilla_prefs_set_int (const char *preference_name,
int new_int_value);
gboolean mozilla_prefs_get_boolean (const char *preference_name,
@@ -39,6 +41,4 @@ int mozilla_prefs_get_int (const char *preference_name);
gchar *mozilla_prefs_get_string (const char *preference_name);
-gboolean mozilla_prefs_remove (const char *preference_name);
-
#endif