[Xfce4-commits] <midori:master> Distinguish Extension.load_from_folder mode from 'activate'

Christian Dywan noreply at xfce.org
Wed Dec 12 00:48:02 CET 2012


Updating branch refs/heads/master
         to 3918cede31481841142954edaaf90567f30c2706 (commit)
       from e6c71db9be1017a24a0a45e608d1c5c842ef258a (commit)

commit 3918cede31481841142954edaaf90567f30c2706
Author: Christian Dywan <christian at twotoasts.de>
Date:   Wed Dec 12 00:19:06 2012 +0100

    Distinguish Extension.load_from_folder mode from 'activate'
    
    Fixes: https://bugs.launchpad.net/midori/+bug/1088167

 katze/katze.vapi          |    2 ++
 midori/midori-extension.c |    4 ++--
 midori/midori.vapi        |    5 +++--
 tests/app.vala            |    9 ++++++++-
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/katze/katze.vapi b/katze/katze.vapi
index e2d92d9..44da2cb 100644
--- a/katze/katze.vapi
+++ b/katze/katze.vapi
@@ -9,6 +9,8 @@ namespace Katze {
     public class Array : Katze.Item {
         public Array (GLib.Type type);
         public void add_item (GLib.Object item);
+        public uint get_length ();
+        public GLib.List<unowned Item> get_items ();
     }
 
     [CCode (cheader_filename = "katze/katze.h")]
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 0e530b6..34e5826 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -549,11 +549,11 @@ midori_extension_load_from_folder (MidoriApp* app,
     if (!extension_path)
         return;
 
-    if (keys)
+    if (activate)
     {
         gint i = 0;
         const gchar* filename;
-        while ((filename = keys[i++]))
+        while (keys && (filename = keys[i++]))
             midori_extension_activate_gracefully (app, extension_path, filename, activate);
     }
     else
diff --git a/midori/midori.vapi b/midori/midori.vapi
index 860391e..5f7c9b5 100644
--- a/midori/midori.vapi
+++ b/midori/midori.vapi
@@ -37,7 +37,7 @@ namespace Midori {
         [NoAccessorMethod]
         public Katze.Array history { get; set; }
         [NoAccessorMethod]
-        public Katze.Array extensions { get; set; }
+        public Katze.Array extensions { owned get; set; }
         [NoAccessorMethod]
         public Katze.Array browsers { get; }
         public Browser? browser { get; }
@@ -142,7 +142,8 @@ namespace Midori {
         public string key { get; set; }
 
         public signal void activate (Midori.App app);
-        public signal bool is_prepared ();
+        public bool is_prepared ();
+        public bool is_active ();
         public signal void deactivate ();
         public signal void open_preferences ();
 
diff --git a/tests/app.vala b/tests/app.vala
index c56d57d..15c521a 100644
--- a/tests/app.vala
+++ b/tests/app.vala
@@ -67,7 +67,14 @@ void app_extensions () {
     var app = Midori.normal_app_new (null, "test-extensions-normal", 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);
+    /* No extensions loaded */
+    assert (app.extensions.get_length () == 0);
+    Midori.Extension.load_from_folder (app, null, false);
+    /* All extensions loaded, inactive */
+    assert (app.extensions.get_length () > 0);
+    foreach (var item in app.extensions.get_items ())
+        assert (!(item as Midori.Extension).is_active ());
+
     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);


More information about the Xfce4-commits mailing list