[Xfce4-commits] <midori:master> Prepare for testing extensions in normal app session
Christian Dywan
noreply at xfce.org
Sat Dec 8 03:32:05 CET 2012
Updating branch refs/heads/master
to c68a42bb658199a48710b5f276a409bfd5e756e5 (commit)
from 9028f5c1a399fc4adf9ace0ee0f8209e343f4352 (commit)
commit c68a42bb658199a48710b5f276a409bfd5e756e5
Author: Christian Dywan <christian at twotoasts.de>
Date: Sat Dec 8 03:30:01 2012 +0100
Prepare for testing extensions in normal app session
midori/midori-extension.c | 32 ++++++++++++++++++++++++++++++++
midori/midori-extension.h | 5 +++++
midori/midori-frontend.c | 2 +-
midori/midori-preferences.c | 16 +---------------
midori/midori-session.c | 14 +-------------
midori/midori.vapi | 2 ++
tests/app.vala | 18 ++++++++++++++++++
7 files changed, 60 insertions(+), 29 deletions(-)
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 6f1d156..0e530b6 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -537,6 +537,38 @@ midori_extension_get_property (GObject* object,
}
}
+void
+midori_extension_load_from_folder (MidoriApp* app,
+ gchar** keys,
+ gboolean activate)
+{
+ if (!g_module_supported ())
+ return;
+
+ gchar* extension_path = midori_paths_get_lib_path (PACKAGE_NAME);
+ if (!extension_path)
+ return;
+
+ if (keys)
+ {
+ gint i = 0;
+ const gchar* filename;
+ while ((filename = keys[i++]))
+ midori_extension_activate_gracefully (app, extension_path, filename, activate);
+ }
+ else
+ {
+ GDir* extension_dir = g_dir_open (extension_path, 0, NULL);
+ g_return_if_fail (extension_dir != NULL);
+ const gchar* filename;
+ while ((filename = g_dir_read_name (extension_dir)))
+ midori_extension_activate_gracefully (app, extension_path, filename, activate);
+ g_dir_close (extension_dir);
+ }
+
+ g_free (extension_path);
+}
+
GObject*
midori_extension_load_from_file (const gchar* extension_path,
const gchar* filename,
diff --git a/midori/midori-extension.h b/midori/midori-extension.h
index 02d0a4f..5a98202 100644
--- a/midori/midori-extension.h
+++ b/midori/midori-extension.h
@@ -146,6 +146,11 @@ midori_extension_set_string_list (MidoriExtension* extension,
gchar** value,
gsize length);
+void
+midori_extension_load_from_folder (MidoriApp* app,
+ gchar** keys,
+ gboolean activate);
+
G_END_DECLS
#endif /* __MIDORI_EXTENSION_H__ */
diff --git a/midori/midori-frontend.c b/midori/midori-frontend.c
index 142619d..0ad7ea3 100644
--- a/midori/midori-frontend.c
+++ b/midori/midori-frontend.c
@@ -83,7 +83,7 @@ midori_web_app_new (const gchar* config,
g_free (tmp_uri);
}
else if (open_uris == NULL)
- midori_browser_add_uri (browser, "about:private");
+ midori_browser_add_uri (browser, "about:blank");
g_signal_connect (browser, "quit", G_CALLBACK (gtk_main_quit), NULL);
g_signal_connect (browser, "destroy", G_CALLBACK (gtk_main_quit), NULL);
diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c
index 3975c86..9c1db8d 100644
--- a/midori/midori-preferences.c
+++ b/midori/midori-preferences.c
@@ -583,23 +583,9 @@ midori_preferences_add_extension_category (KatzePreferences* preferences,
GList* children;
GtkWidget* page;
- if (!g_module_supported ())
- return;
-
array = katze_object_get_object (app, "extensions");
- if ((extension_path = midori_paths_get_lib_path (PACKAGE_NAME)))
- {
- GDir* extension_dir = NULL;
- if ((extension_dir = g_dir_open (extension_path, 0, NULL)))
- {
- const gchar* filename;
- while ((filename = g_dir_read_name (extension_dir)))
- midori_extension_activate_gracefully (app, extension_path, filename, FALSE);
- g_dir_close (extension_dir);
- }
- g_free (extension_path);
- }
+ midori_extension_load_from_folder (app, NULL, FALSE);
/* Reset frozen list: allow active extensions to be saved */
g_object_set_data (G_OBJECT (app), "extensions", NULL);
diff --git a/midori/midori-session.c b/midori/midori-session.c
index 17b5166..4042106 100644
--- a/midori/midori-session.c
+++ b/midori/midori-session.c
@@ -327,19 +327,7 @@ midori_load_extensions (gpointer data)
extensions = katze_array_new (MIDORI_TYPE_EXTENSION);
g_signal_connect (extensions, "update", G_CALLBACK (extensions_update_cb), app);
g_object_set (app, "extensions", extensions, NULL);
-
- if (g_module_supported ())
- {
- gchar* extension_path;
- if (keys && (extension_path = midori_paths_get_lib_path (PACKAGE_NAME)))
- {
- gint i = 0;
- const gchar* filename;
- while ((filename = keys[i++]))
- midori_extension_activate_gracefully (app, extension_path, filename, TRUE);
- g_free (extension_path);
- }
- }
+ midori_extension_load_from_folder (app, keys, TRUE);
#ifdef G_ENABLE_DEBUG
if (startup_timer)
diff --git a/midori/midori.vapi b/midori/midori.vapi
index b3c70f6..275f0de 100644
--- a/midori/midori.vapi
+++ b/midori/midori.vapi
@@ -145,6 +145,8 @@ namespace Midori {
public signal bool is_prepared ();
public signal void deactivate ();
public signal void open_preferences ();
+
+ public static void load_from_folder (Midori.App app, [CCode (array_length = false)] string[]? keys, bool activate);
}
[CCode (cheader_filename = "midori/midori.h")]
diff --git a/tests/app.vala b/tests/app.vala
index b72c982..bad74b8 100644
--- a/tests/app.vala
+++ b/tests/app.vala
@@ -52,6 +52,23 @@ void app_web () {
do { loop.iteration (true); } while (loop.pending ());
}
+void app_extensions () {
+ /*
+ Midori.Test.idle_timeouts ();
+ Midori.Test.log_set_fatal_handler_for_icons ();
+ Midori.Paths.Test.reset_runtime_mode ();
+ var app = Midori.normal_app_new (null, false, false, null, null, null, -1, null);
+ var loop = MainContext.default ();
+ do { loop.iteration (true); } while (loop.pending ());
+ Midori.Extension.load_from_folder (app, null, true);
+ for (var i = 0 ; i < 7; i++) {
+ var tab = app.browser.get_nth_tab (app.browser.add_uri ("about:blank"));
+ app.browser.close_tab (tab);
+ do { loop.iteration (true); } while (loop.pending ());
+ }
+ */
+}
+
void main (string[] args) {
Test.init (ref args);
Midori.App.setup (ref args, null);
@@ -59,6 +76,7 @@ void main (string[] args) {
Test.add_func ("/app/custom-config", app_custom_config);
Test.add_func ("/app/private", app_private);
Test.add_func ("/app/web", app_web);
+ Test.add_func ("/app/extensions", app_extensions);
Test.run ();
}
More information about the Xfce4-commits
mailing list