Merge lp:~kalikiana/midori/appprivacy into lp:midori

Proposed by Cris Dywan
Status: Merged
Approved by: André Stösel
Approved revision: 6282
Merged at revision: 6288
Proposed branch: lp:~kalikiana/midori/appprivacy
Merge into: lp:midori
Diff against target: 143 lines (+46/-37)
3 files modified
midori/midori-frontend.c (+12/-10)
midori/midori-preferences.c (+3/-0)
midori/midori-websettings.c (+31/-27)
To merge this branch: bzr merge lp:~kalikiana/midori/appprivacy
Reviewer Review Type Date Requested Status
André Stösel Approve
Review via email: mp+177180@code.launchpad.net

Commit message

Add privacy preferences in web app mode

To post a comment you must log in.
Revision history for this message
André Stösel (ivaldi) wrote :

There is an issue with the "app" object (if you change some settings):

** (midori4:3734): CRITICAL **: katze_object_get_object: assertion `G_IS_OBJECT (object)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff78dcd4d in g_logv () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0 0x00007ffff78dcd4d in g_logv () from /usr/lib/libglib-2.0.so.0
#1 0x00007ffff78dcf32 in g_log () from /usr/lib/libglib-2.0.so.0
#2 0x000000000042a50a in katze_object_get_object (object=object@entry=0x0, property=property@entry=0x482f2c "extensions") at ../katze/katze-utils.c:1209
#3 0x00000000004596b2 in midori_settings_save_to_file (settings=settings@entry=0x862b10, app=0x0, filename=filename@entry=0x1076440 "/home/andre/.local/share/midori/apps/0d31a7f58f9a80b737cb713872090cc6/config",
    error=error@entry=0x7fffffffcbb8) at ../midori/midori-websettings.c:1486
#4 0x000000000044c86d in settings_notify_cb (settings=0x862b10, pspec=<optimized out>, app=0x0) at ../midori/midori-session.c:353

review: Needs Fixing
Revision history for this message
André Stösel (ivaldi) wrote :

Works fine now.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'midori/midori-frontend.c'
2--- midori/midori-frontend.c 2013-06-30 14:58:59 +0000
3+++ midori/midori-frontend.c 2013-07-29 17:43:29 +0000
4@@ -36,6 +36,15 @@
5 return new_browser;
6 }
7
8+static void
9+midori_browser_privacy_preferences_cb (MidoriBrowser* browser,
10+ KatzePreferences* preferences,
11+ gpointer user_data)
12+{
13+ MidoriWebSettings* settings = midori_browser_get_settings (browser);
14+ midori_preferences_add_privacy_category (preferences, settings);
15+}
16+
17 MidoriBrowser*
18 midori_web_app_new (const gchar* webapp,
19 gchar** open_uris,
20@@ -50,6 +59,8 @@
21 MidoriBrowser* browser = midori_browser_new ();
22 g_signal_connect (browser, "new-window",
23 G_CALLBACK (midori_frontend_browser_new_window_cb), NULL);
24+ g_signal_connect (browser, "show-preferences",
25+ G_CALLBACK (midori_browser_privacy_preferences_cb), NULL);
26
27 midori_browser_set_action_visible (browser, "Menubar", FALSE);
28 midori_browser_set_action_visible (browser, "CompactMenu", FALSE);
29@@ -243,15 +254,6 @@
30 }
31
32 static void
33-midori_browser_privacy_preferences_cb (MidoriBrowser* browser,
34- KatzePreferences* preferences,
35- MidoriApp* app)
36-{
37- MidoriWebSettings* settings = midori_browser_get_settings (browser);
38- midori_preferences_add_privacy_category (preferences, settings);
39-}
40-
41-static void
42 midori_app_add_browser_cb (MidoriApp* app,
43 MidoriBrowser* browser,
44 gpointer user_data)
45@@ -269,7 +271,7 @@
46
47 /* Extensions */
48 g_signal_connect (browser, "show-preferences",
49- G_CALLBACK (midori_browser_privacy_preferences_cb), app);
50+ G_CALLBACK (midori_browser_privacy_preferences_cb), NULL);
51 g_signal_connect (browser, "show-preferences",
52 G_CALLBACK (midori_browser_show_preferences_cb), app);
53
54
55=== modified file 'midori/midori-preferences.c'
56--- midori/midori-preferences.c 2013-07-07 12:25:55 +0000
57+++ midori/midori-preferences.c 2013-07-29 17:43:29 +0000
58@@ -539,6 +539,9 @@
59 GtkWidget* label;
60 gchar* markup;
61
62+ g_return_if_fail (KATZE_IS_PREFERENCES (preferences));
63+ g_return_if_fail (MIDORI_IS_WEB_SETTINGS (settings));
64+
65 katze_preferences_add_category (preferences, _("Privacy"), GTK_STOCK_INDEX);
66 katze_preferences_add_group (preferences, NULL);
67 button = gtk_label_new (_("Delete old Cookies after:"));
68
69=== modified file 'midori/midori-websettings.c'
70--- midori/midori-websettings.c 2013-07-11 15:20:32 +0000
71+++ midori/midori-websettings.c 2013-07-29 17:43:29 +0000
72@@ -1483,9 +1483,6 @@
73 GType type;
74 const gchar* property;
75 gboolean saved;
76- KatzeArray* extensions = katze_object_get_object (app, "extensions");
77- MidoriExtension* extension;
78- gchar** _extensions;
79
80 key_file = g_key_file_new ();
81 class = G_OBJECT_GET_CLASS (settings);
82@@ -1573,30 +1570,37 @@
83 }
84 g_free (pspecs);
85
86- /* Take frozen list of active extensions until preferences reset it */
87- if ((_extensions = g_object_get_data (G_OBJECT (app), "extensions")))
88- {
89- i = 0;
90- while (_extensions[i])
91- g_key_file_set_boolean (key_file, "extensions", _extensions[i++], TRUE);
92- }
93- else if (extensions)
94- {
95- KATZE_ARRAY_FOREACH_ITEM (extension, extensions)
96- if (midori_extension_is_active (extension))
97- {
98- const gchar* filename = g_object_get_data (G_OBJECT (extension), "filename");
99- g_return_val_if_fail (filename != NULL, FALSE);
100- if (filename && strchr (filename, '/'))
101- g_warning ("%s: %s unexpected /", G_STRFUNC, filename);
102- gchar* key = katze_object_get_string (extension, "key");
103- gchar* subname = key ? g_strdup_printf ("%s/%s", filename, key) : g_strdup (filename);
104- g_key_file_set_boolean (key_file, "extensions", subname, TRUE);
105- g_free (key);
106- g_free (subname);
107- }
108- g_object_unref (extensions);
109- }
110+ if (app != NULL)
111+ {
112+ /* Take frozen list of active extensions until preferences reset it */
113+ gchar** _extensions;
114+ KatzeArray* extensions;
115+ if ((_extensions = g_object_get_data (G_OBJECT (app), "extensions")))
116+ {
117+ i = 0;
118+ while (_extensions[i])
119+ g_key_file_set_boolean (key_file, "extensions", _extensions[i++], TRUE);
120+ }
121+ else if ((extensions = katze_object_get_object (app, "extensions")))
122+ {
123+ MidoriExtension* extension;
124+ KATZE_ARRAY_FOREACH_ITEM (extension, extensions)
125+ if (midori_extension_is_active (extension))
126+ {
127+ const gchar* filename = g_object_get_data (G_OBJECT (extension), "filename");
128+ g_return_val_if_fail (filename != NULL, FALSE);
129+ if (filename && strchr (filename, '/'))
130+ g_warning ("%s: %s unexpected /", G_STRFUNC, filename);
131+ gchar* key = katze_object_get_string (extension, "key");
132+ gchar* subname = key ? g_strdup_printf ("%s/%s", filename, key) : g_strdup (filename);
133+ g_key_file_set_boolean (key_file, "extensions", subname, TRUE);
134+ g_free (key);
135+ g_free (subname);
136+ }
137+ g_object_unref (extensions);
138+ }
139+ }
140+
141 saved = sokoke_key_file_save_to_file (key_file, filename, error);
142 g_key_file_free (key_file);
143 return saved;

Subscribers

People subscribed via source and target branches

to all changes: