Updating branch refs/heads/master to 08d8ceb253f8e5ac47340678e292e6c17b5bbb61 (commit) from b4122d4ba156889abea7d4f6db5092c5484debda (commit)
commit 08d8ceb253f8e5ac47340678e292e6c17b5bbb61 Author: Christian Dywan <christ...@twotoasts.de> Date: Fri Dec 7 18:50:21 2012 +0100 Fix wrong unref in session saving, add timeout testing Midori.Test.idle_timeouts is a hook for unit tests to change second timeouts into idle callbacks. extensions/cookie-manager/cookie-manager.c | 3 ++- extensions/feed-panel/main.c | 5 ++--- katze/katze-http-cookies.c | 5 +++-- midori/midori-browser.c | 3 ++- midori/midori-dialog.vala | 13 +++++++++++++ midori/midori-session.c | 5 ++--- tests/app.vala | 6 ++++++ 7 files changed, 30 insertions(+), 10 deletions(-) diff --git a/extensions/cookie-manager/cookie-manager.c b/extensions/cookie-manager/cookie-manager.c index 4ca57ca..18f4c0d 100644 --- a/extensions/cookie-manager/cookie-manager.c +++ b/extensions/cookie-manager/cookie-manager.c @@ -234,7 +234,8 @@ static void cookie_manager_jar_changed_cb(SoupCookieJar *jar, SoupCookie *old, S /* We delay these events a little bit to avoid too many rebuilds of the tree. * Some websites (like Flyspray bugtrackers sent a whole bunch of cookies at once. */ if (priv->timer_id == 0) - priv->timer_id = g_timeout_add_seconds(1, (GSourceFunc) cookie_manager_delayed_refresh, cm); + priv->timer_id = midori_timeout_add_seconds( + 1, (GSourceFunc) cookie_manager_delayed_refresh, cm, NULL); } diff --git a/extensions/feed-panel/main.c b/extensions/feed-panel/main.c index 8cad47a..bff7bd9 100644 --- a/extensions/feed-panel/main.c +++ b/extensions/feed-panel/main.c @@ -16,7 +16,6 @@ #include <midori/midori.h> #define EXTENSION_NAME "Feed Panel" -#define UPDATE_FREQ 10 #define feed_get_flags(feed) \ GPOINTER_TO_INT (g_object_get_data (G_OBJECT ((feed)), "flags")) @@ -488,8 +487,8 @@ feed_app_add_browser_cb (MidoriApp* app, g_signal_connect (extension, "deactivate", G_CALLBACK (feed_deactivate_cb), priv); - priv->source_id = g_timeout_add_seconds (UPDATE_FREQ * 60, - (GSourceFunc) update_feeds, priv); + priv->source_id = midori_timeout_add_seconds ( + 600, (GSourceFunc) update_feeds, priv, NULL); } static void diff --git a/katze/katze-http-cookies.c b/katze/katze-http-cookies.c index 1ccb8d9..ac77130 100644 --- a/katze/katze-http-cookies.c +++ b/katze/katze-http-cookies.c @@ -14,6 +14,7 @@ #endif #include "katze-http-cookies.h" +#include "midori/midori-core.h" #include <stdlib.h> #ifdef HAVE_UNISTD_H @@ -267,8 +268,8 @@ katze_http_cookies_jar_changed_cb (SoupCookieJar* jar, http_cookies->counter++; if (!http_cookies->timeout && (old_cookie || new_cookie->expires)) - http_cookies->timeout = g_timeout_add_seconds (5, - (GSourceFunc)katze_http_cookies_update_jar, http_cookies); + http_cookies->timeout = midori_timeout_add_seconds ( + 5, (GSourceFunc)katze_http_cookies_update_jar, http_cookies, NULL); } static void diff --git a/midori/midori-browser.c b/midori/midori-browser.c index 55b0c40..c773c51 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -5502,7 +5502,8 @@ midori_browser_set_inactivity_reset (MidoriBrowser* browser, MidoriInactivityTimeout* mit = g_new (MidoriInactivityTimeout, 1); mit->browser = browser; mit->timeout = inactivity_reset; - g_timeout_add_seconds (inactivity_reset, midori_inactivity_timeout, mit); + midori_timeout_add_seconds ( + inactivity_reset, midori_inactivity_timeout, mit, NULL); } } diff --git a/midori/midori-dialog.vala b/midori/midori-dialog.vala index 48d6405..5fd4611 100644 --- a/midori/midori-dialog.vala +++ b/midori/midori-dialog.vala @@ -10,7 +10,20 @@ */ namespace Midori { + namespace Timeout { + public uint add_seconds (uint interval, owned SourceFunc function) { + if (Test.test_idle_timeouts) + return GLib.Idle.add (function); + return GLib.Timeout.add_seconds (interval, function); + } + } + namespace Test { + internal static bool test_idle_timeouts = false; + public void idle_timeouts () { + test_idle_timeouts = true; + } + public void log_set_fatal_handler_for_icons () { GLib.Test.log_set_fatal_handler ((domain, log_levels, message)=> { return !message.contains ("Error loading theme icon") diff --git a/midori/midori-session.c b/midori/midori-session.c index 4c480f3..be2f09a 100644 --- a/midori/midori-session.c +++ b/midori/midori-session.c @@ -427,8 +427,6 @@ midori_session_save_timeout_cb (KatzeArray* session) g_free (config_file); save_timeout = 0; - g_object_unref (session); - return FALSE; } @@ -438,7 +436,8 @@ midori_browser_session_cb (MidoriBrowser* browser, KatzeArray* session) { if (!save_timeout) - save_timeout = g_timeout_add_seconds (5, (GSourceFunc)midori_session_save_timeout_cb, session); + save_timeout = midori_timeout_add_seconds ( + 5, (GSourceFunc)midori_session_save_timeout_cb, session, NULL); } static void diff --git a/tests/app.vala b/tests/app.vala index ea6a645..b72c982 100644 --- a/tests/app.vala +++ b/tests/app.vala @@ -10,11 +10,17 @@ */ void app_normal () { + 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 ()); + 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 ()); + } Midori.normal_app_on_quit (app); string filename = Midori.Paths.get_extension_config_dir ("adblock"); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits