Updating branch refs/heads/master to c68a42bb658199a48710b5f276a409bfd5e756e5 (commit) from 9028f5c1a399fc4adf9ace0ee0f8209e343f4352 (commit)
commit c68a42bb658199a48710b5f276a409bfd5e756e5 Author: Christian Dywan <christ...@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 (); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits