[Xfce4-commits] <midori:master> Don't silently discard extensions which don't load
Christian Dywan
noreply at xfce.org
Mon Jan 7 20:02:03 CET 2013
Updating branch refs/heads/master
to 776edfd44c26d888aa6a8a1ea16cb522df3fea3d (commit)
from a01b6ee2e3335e89aacae209875372289837687c (commit)
commit 776edfd44c26d888aa6a8a1ea16cb522df3fea3d
Author: Christian Dywan <christian at twotoasts.de>
Date: Mon Jan 7 19:52:35 2013 +0100
Don't silently discard extensions which don't load
Broken extensions result in an according description and a
warning which aborts the test run.
Counting the number of expected extensions needs a test case;
a failed attempt is included together with a FIXME.
Also force katze_net_load_uri to be compiled in even if unused in
the core so that extensions (Feed Panel) can use it.
Fixes: https://bugs.launchpad.net/midori/+bug/1095194
katze/katze.vapi | 2 +-
midori/midori-extension.c | 2 --
midori/midori-view.c | 4 ++++
tests/app.vala | 21 ++++++++++++++++++++-
4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/katze/katze.vapi b/katze/katze.vapi
index 44da2cb..018893e 100644
--- a/katze/katze.vapi
+++ b/katze/katze.vapi
@@ -3,7 +3,7 @@
[CCode (cprefix = "Katze", lower_case_cprefix = "katze_")]
namespace Katze {
- static void assert_str_equal (string input, string result, string expected);
+ static void assert_str_equal (string input, string result, string? expected);
[CCode (cheader_filename = "katze/katze.h")]
public class Array : Katze.Item {
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 34e5826..cdda21b 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -627,8 +627,6 @@ midori_extension_activate_gracefully (MidoriApp* app,
gboolean activate)
{
GObject* extension = midori_extension_load_from_file (extension_path, filename, activate, FALSE);
- if (extension == NULL)
- return;
midori_extension_activate (extension, filename, activate, app);
if (!extension && g_module_error () != NULL)
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 8bd7459..361cc8f 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3092,6 +3092,10 @@ midori_view_init (MidoriView* view)
view->find_links = -1;
view->alerts = 0;
+ /* Force the compiler to not optimize out katze_net_load_uri */
+ if (!g_strcmp0 (view->icon_uri, ""))
+ katze_net_load_uri (NULL, NULL, (KatzeNetStatusCb)NULL, (KatzeNetTransferCb)NULL, view);
+
view->item = katze_item_new ();
view->scrollh = view->scrollv = -2;
diff --git a/tests/app.vala b/tests/app.vala
index 553fbbe..f6421b6 100644
--- a/tests/app.vala
+++ b/tests/app.vala
@@ -9,6 +9,8 @@
See the file COPYING for the full license text.
*/
+extern const string PACKAGE_NAME;
+
bool check_sensible_window_size (Gtk.Window window, Midori.WebSettings settings) {
Gdk.Rectangle monitor;
window.screen.get_monitor_geometry (0, out monitor);
@@ -96,9 +98,26 @@ void app_extensions_load () {
/* 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);
+
+ /* Number of expected extensions matches */
+ /* FIXME Counting .so/dll doesn't see multiple extensions in one binary
+ Dir dir;
+ try {
+ dir = Dir.open (Midori.Paths.get_lib_path (PACKAGE_NAME), 0);
+ }
+ catch (Error error) {
+ GLib.error (error.message);
+ }
+ uint count = 0;
+ string? name;
+ while ((name = dir.read_name ()) != null) {
+ if (name.has_suffix (GLib.Module.SUFFIX))
+ count++;
+ }
+ assert (app.extensions.get_length () == count); */
+
foreach (var item in app.extensions.get_items ())
assert (!(item as Midori.Extension).is_active ());
More information about the Xfce4-commits
mailing list