Merge lp:~gue5t/midori/nojs-local-pages into lp:midori
- nojs-local-pages
- Merge into trunk
Proposed by
gue5t gue5t
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Paweł Forysiuk | ||||
Approved revision: | 6691 | ||||
Merged at revision: | 6886 | ||||
Proposed branch: | lp:~gue5t/midori/nojs-local-pages | ||||
Merge into: | lp:midori | ||||
Diff against target: |
393 lines (+79/-73) 5 files modified
extensions/nojs/main.c (+2/-2) extensions/nojs/nojs-preferences.c (+31/-31) extensions/nojs/nojs-view.c (+6/-3) extensions/nojs/nojs.c (+37/-34) extensions/nojs/nojs.h (+3/-3) |
||||
To merge this branch: | bzr merge lp:~gue5t/midori/nojs-local-pages | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Paweł Forysiuk | Approve | ||
Review via email:
|
Commit message
Replace NoJS "allow all pages" setting with "allow local pages"
Description of the change
Right now NoJS has a setting "Allow all sites" which is better served by simply disabling the extension temporarily. This branch replaces it with an "Allow local pages" setting.
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Paweł Forysiuk (tuxator) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'extensions/nojs/main.c' | |||
2 | --- extensions/nojs/main.c 2013-05-22 22:59:27 +0000 | |||
3 | +++ extensions/nojs/main.c 2014-05-09 14:51:38 +0000 | |||
4 | @@ -22,7 +22,7 @@ | |||
5 | 22 | 22 | ||
6 | 23 | noJS=nojs_new(inExtension, inApp); | 23 | noJS=nojs_new(inExtension, inApp); |
7 | 24 | nojs_set_policy_for_unknown_domain(noJS, midori_extension_get_integer(inExtension, "unknown-domain-policy")); | 24 | nojs_set_policy_for_unknown_domain(noJS, midori_extension_get_integer(inExtension, "unknown-domain-policy")); |
9 | 25 | nojs_set_allow_all_sites(noJS, midori_extension_get_boolean(inExtension, "allow-all-sites")); | 25 | nojs_set_allow_local_pages(noJS, midori_extension_get_boolean(inExtension, "allow-local-pages")); |
10 | 26 | nojs_set_only_second_level_domain(noJS, midori_extension_get_boolean(inExtension, "only-second-level")); | 26 | nojs_set_only_second_level_domain(noJS, midori_extension_get_boolean(inExtension, "only-second-level")); |
11 | 27 | } | 27 | } |
12 | 28 | 28 | ||
13 | @@ -68,7 +68,7 @@ | |||
14 | 68 | NULL); | 68 | NULL); |
15 | 69 | 69 | ||
16 | 70 | midori_extension_install_integer(extension, "unknown-domain-policy", NOJS_POLICY_BLOCK); | 70 | midori_extension_install_integer(extension, "unknown-domain-policy", NOJS_POLICY_BLOCK); |
18 | 71 | midori_extension_install_boolean(extension, "allow-all-sites", FALSE); | 71 | midori_extension_install_boolean(extension, "allow-local-pages", TRUE); |
19 | 72 | midori_extension_install_boolean(extension, "only-second-level", TRUE); | 72 | midori_extension_install_boolean(extension, "only-second-level", TRUE); |
20 | 73 | 73 | ||
21 | 74 | g_signal_connect(extension, "activate", G_CALLBACK(_nojs_on_activate), NULL); | 74 | g_signal_connect(extension, "activate", G_CALLBACK(_nojs_on_activate), NULL); |
22 | 75 | 75 | ||
23 | === modified file 'extensions/nojs/nojs-preferences.c' | |||
24 | --- extensions/nojs/nojs-preferences.c 2013-08-16 22:02:25 +0000 | |||
25 | +++ extensions/nojs/nojs-preferences.c 2014-05-09 14:51:38 +0000 | |||
26 | @@ -46,19 +46,19 @@ | |||
27 | 46 | GtkWidget *editingCombo; | 46 | GtkWidget *editingCombo; |
28 | 47 | GtkWidget *deleteButton; | 47 | GtkWidget *deleteButton; |
29 | 48 | GtkWidget *deleteAllButton; | 48 | GtkWidget *deleteAllButton; |
31 | 49 | GtkWidget *allowAllSitesCheckbox; | 49 | GtkWidget *allowLocalPagesCheckbox; |
32 | 50 | GtkWidget *blockUnknownDomainsCheckbox; | 50 | GtkWidget *blockUnknownDomainsCheckbox; |
33 | 51 | GtkWidget *checkSecondLevelOnlyCheckbox; | 51 | GtkWidget *checkSecondLevelOnlyCheckbox; |
34 | 52 | GtkWidget *addDomainEntry; | 52 | GtkWidget *addDomainEntry; |
35 | 53 | GtkWidget *addDomainPolicyCombo; | 53 | GtkWidget *addDomainPolicyCombo; |
36 | 54 | GtkWidget *addDomainButton; | 54 | GtkWidget *addDomainButton; |
37 | 55 | 55 | ||
39 | 56 | gint signalAllowAllSitesToggledID; | 56 | gint signalAllowLocalPagesToggledID; |
40 | 57 | gint signalBlockUnknownDomainsToggledID; | 57 | gint signalBlockUnknownDomainsToggledID; |
41 | 58 | gint signalCheckSecondLevelOnlyToggledID; | 58 | gint signalCheckSecondLevelOnlyToggledID; |
42 | 59 | 59 | ||
43 | 60 | gint signalManagerChangedDatabaseID; | 60 | gint signalManagerChangedDatabaseID; |
45 | 61 | gint signalManagerChangedAllowAllSitesID; | 61 | gint signalManagerChangedAllowLocalPagesID; |
46 | 62 | gint signalManagerChangedUnknownDomainPolicyID; | 62 | gint signalManagerChangedUnknownDomainPolicyID; |
47 | 63 | gint signalManagerChangedCheckSecondLevelID; | 63 | gint signalManagerChangedCheckSecondLevelID; |
48 | 64 | }; | 64 | }; |
49 | @@ -324,23 +324,23 @@ | |||
50 | 324 | return; | 324 | return; |
51 | 325 | } | 325 | } |
52 | 326 | 326 | ||
55 | 327 | /* Allow-all-sites changed in check-box or manager */ | 327 | /* Allow-local-pages changed in check-box or manager */ |
56 | 328 | static void _nojs_preferences_on_allow_all_sites_changed(NoJSPreferences *self, | 328 | static void _nojs_preferences_on_allow_local_pages_changed(NoJSPreferences *self, |
57 | 329 | gpointer *inUserData) | 329 | gpointer *inUserData) |
58 | 330 | { | 330 | { |
59 | 331 | NoJSPreferencesPrivate *priv=self->priv; | 331 | NoJSPreferencesPrivate *priv=self->priv; |
60 | 332 | gboolean state; | 332 | gboolean state; |
61 | 333 | 333 | ||
62 | 334 | /* Get toggle state of widget (but block signal for manager) and set in manager */ | 334 | /* Get toggle state of widget (but block signal for manager) and set in manager */ |
69 | 335 | g_signal_handler_block(priv->manager, priv->signalManagerChangedAllowAllSitesID); | 335 | g_signal_handler_block(priv->manager, priv->signalManagerChangedAllowLocalPagesID); |
70 | 336 | 336 | ||
71 | 337 | state=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->allowAllSitesCheckbox)); | 337 | state=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->allowLocalPagesCheckbox)); |
72 | 338 | nojs_set_allow_all_sites(priv->manager, state); | 338 | nojs_set_allow_local_pages(priv->manager, state); |
73 | 339 | 339 | ||
74 | 340 | g_signal_handler_unblock(priv->manager, priv->signalManagerChangedAllowAllSitesID); | 340 | g_signal_handler_unblock(priv->manager, priv->signalManagerChangedAllowLocalPagesID); |
75 | 341 | } | 341 | } |
76 | 342 | 342 | ||
78 | 343 | static void _nojs_preferences_on_manager_allow_all_sites_changed(NoJSPreferences *self, | 343 | static void _nojs_preferences_on_manager_allow_local_pages_changed(NoJSPreferences *self, |
79 | 344 | GParamSpec *inSpec, | 344 | GParamSpec *inSpec, |
80 | 345 | gpointer inUserData) | 345 | gpointer inUserData) |
81 | 346 | { | 346 | { |
82 | @@ -349,14 +349,14 @@ | |||
83 | 349 | gboolean state; | 349 | gboolean state; |
84 | 350 | 350 | ||
85 | 351 | /* Get new value from manager */ | 351 | /* Get new value from manager */ |
87 | 352 | state=nojs_get_allow_all_sites(manager); | 352 | state=nojs_get_allow_local_pages(manager); |
88 | 353 | 353 | ||
89 | 354 | /* Set toggle in widget (but block signal for toggle) */ | 354 | /* Set toggle in widget (but block signal for toggle) */ |
95 | 355 | g_signal_handler_block(priv->allowAllSitesCheckbox, priv->signalAllowAllSitesToggledID); | 355 | g_signal_handler_block(priv->allowLocalPagesCheckbox, priv->signalAllowLocalPagesToggledID); |
96 | 356 | 356 | ||
97 | 357 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->allowAllSitesCheckbox), state); | 357 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->allowLocalPagesCheckbox), state); |
98 | 358 | 358 | ||
99 | 359 | g_signal_handler_unblock(priv->allowAllSitesCheckbox, priv->signalAllowAllSitesToggledID); | 359 | g_signal_handler_unblock(priv->allowLocalPagesCheckbox, priv->signalAllowLocalPagesToggledID); |
100 | 360 | } | 360 | } |
101 | 361 | 361 | ||
102 | 362 | /* Block-unknown-domains changed in check-box or manager */ | 362 | /* Block-unknown-domains changed in check-box or manager */ |
103 | @@ -675,8 +675,8 @@ | |||
104 | 675 | if(priv->signalManagerChangedDatabaseID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedDatabaseID); | 675 | if(priv->signalManagerChangedDatabaseID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedDatabaseID); |
105 | 676 | priv->signalManagerChangedDatabaseID=0; | 676 | priv->signalManagerChangedDatabaseID=0; |
106 | 677 | 677 | ||
109 | 678 | if(priv->signalManagerChangedAllowAllSitesID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedAllowAllSitesID); | 678 | if(priv->signalManagerChangedAllowLocalPagesID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedAllowLocalPagesID); |
110 | 679 | priv->signalManagerChangedAllowAllSitesID=0; | 679 | priv->signalManagerChangedAllowLocalPagesID=0; |
111 | 680 | 680 | ||
112 | 681 | if(priv->signalManagerChangedUnknownDomainPolicyID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedUnknownDomainPolicyID); | 681 | if(priv->signalManagerChangedUnknownDomainPolicyID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedUnknownDomainPolicyID); |
113 | 682 | priv->signalManagerChangedUnknownDomainPolicyID=0; | 682 | priv->signalManagerChangedUnknownDomainPolicyID=0; |
114 | @@ -712,8 +712,8 @@ | |||
115 | 712 | if(priv->signalManagerChangedDatabaseID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedDatabaseID); | 712 | if(priv->signalManagerChangedDatabaseID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedDatabaseID); |
116 | 713 | priv->signalManagerChangedDatabaseID=0; | 713 | priv->signalManagerChangedDatabaseID=0; |
117 | 714 | 714 | ||
120 | 715 | if(priv->signalManagerChangedAllowAllSitesID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedAllowAllSitesID); | 715 | if(priv->signalManagerChangedAllowLocalPagesID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedAllowLocalPagesID); |
121 | 716 | priv->signalManagerChangedAllowAllSitesID=0; | 716 | priv->signalManagerChangedAllowLocalPagesID=0; |
122 | 717 | 717 | ||
123 | 718 | if(priv->signalManagerChangedUnknownDomainPolicyID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedUnknownDomainPolicyID); | 718 | if(priv->signalManagerChangedUnknownDomainPolicyID) g_signal_handler_disconnect(priv->manager, priv->signalManagerChangedUnknownDomainPolicyID); |
124 | 719 | priv->signalManagerChangedUnknownDomainPolicyID=0; | 719 | priv->signalManagerChangedUnknownDomainPolicyID=0; |
125 | @@ -740,12 +740,12 @@ | |||
126 | 740 | self); | 740 | self); |
127 | 741 | _nojs_preferences_on_manager_database_changed(self, NULL, priv->manager); | 741 | _nojs_preferences_on_manager_database_changed(self, NULL, priv->manager); |
128 | 742 | 742 | ||
130 | 743 | priv->signalManagerChangedAllowAllSitesID= | 743 | priv->signalManagerChangedAllowLocalPagesID= |
131 | 744 | g_signal_connect_swapped(priv->manager, | 744 | g_signal_connect_swapped(priv->manager, |
134 | 745 | "notify::allow-all-sites", | 745 | "notify::allow-local-pages", |
135 | 746 | G_CALLBACK(_nojs_preferences_on_manager_allow_all_sites_changed), | 746 | G_CALLBACK(_nojs_preferences_on_manager_allow_local_pages_changed), |
136 | 747 | self); | 747 | self); |
138 | 748 | _nojs_preferences_on_manager_allow_all_sites_changed(self, NULL, priv->manager); | 748 | _nojs_preferences_on_manager_allow_local_pages_changed(self, NULL, priv->manager); |
139 | 749 | 749 | ||
140 | 750 | priv->signalManagerChangedUnknownDomainPolicyID= | 750 | priv->signalManagerChangedUnknownDomainPolicyID= |
141 | 751 | g_signal_connect_swapped(priv->manager, | 751 | g_signal_connect_swapped(priv->manager, |
142 | @@ -983,13 +983,13 @@ | |||
143 | 983 | 983 | ||
144 | 984 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5); | 984 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5); |
145 | 985 | 985 | ||
149 | 986 | /* Add "allow-all-sites" checkbox */ | 986 | /* Add "allow-local-pages" checkbox */ |
150 | 987 | priv->allowAllSitesCheckbox=gtk_check_button_new_with_mnemonic(_("A_llow scripts at all sites")); | 987 | priv->allowLocalPagesCheckbox=gtk_check_button_new_with_mnemonic(_("A_llow scripts on local pages")); |
151 | 988 | priv->signalAllowAllSitesToggledID=g_signal_connect_swapped(priv->allowAllSitesCheckbox, | 988 | priv->signalAllowLocalPagesToggledID=g_signal_connect_swapped(priv->allowLocalPagesCheckbox, |
152 | 989 | "toggled", | 989 | "toggled", |
154 | 990 | G_CALLBACK(_nojs_preferences_on_allow_all_sites_changed), | 990 | G_CALLBACK(_nojs_preferences_on_allow_local_pages_changed), |
155 | 991 | self); | 991 | self); |
157 | 992 | gtk_box_pack_start(GTK_BOX(vbox), priv->allowAllSitesCheckbox, FALSE, TRUE, 5); | 992 | gtk_box_pack_start(GTK_BOX(vbox), priv->allowLocalPagesCheckbox, FALSE, TRUE, 5); |
158 | 993 | 993 | ||
159 | 994 | /* Add "block-unknown-domains" checkbox */ | 994 | /* Add "block-unknown-domains" checkbox */ |
160 | 995 | priv->blockUnknownDomainsCheckbox=gtk_check_button_new_with_mnemonic(_("Bloc_k scripts at unknown domains by default")); | 995 | priv->blockUnknownDomainsCheckbox=gtk_check_button_new_with_mnemonic(_("Bloc_k scripts at unknown domains by default")); |
161 | 996 | 996 | ||
162 | === modified file 'extensions/nojs/nojs-view.c' | |||
163 | --- extensions/nojs/nojs-view.c 2013-07-29 18:03:02 +0000 | |||
164 | +++ extensions/nojs/nojs-view.c 2014-05-09 14:51:38 +0000 | |||
165 | @@ -354,7 +354,7 @@ | |||
166 | 354 | gboolean newScriptsEnabled; | 354 | gboolean newScriptsEnabled; |
167 | 355 | 355 | ||
168 | 356 | domain=nojs_get_domain(priv->manager, uri); | 356 | domain=nojs_get_domain(priv->manager, uri); |
170 | 357 | policy=nojs_get_policy(priv->manager, domain); | 357 | policy=nojs_get_policy(priv->manager, uri); |
171 | 358 | if(policy==NOJS_POLICY_UNDETERMINED) | 358 | if(policy==NOJS_POLICY_UNDETERMINED) |
172 | 359 | { | 359 | { |
173 | 360 | policy=nojs_get_policy_for_unknown_domain(priv->manager); | 360 | policy=nojs_get_policy_for_unknown_domain(priv->manager); |
174 | @@ -371,8 +371,11 @@ | |||
175 | 371 | // TODO: Set uri also to ensure this uri is going to be reloaded | 371 | // TODO: Set uri also to ensure this uri is going to be reloaded |
176 | 372 | } | 372 | } |
177 | 373 | 373 | ||
180 | 374 | _nojs_view_add_site_to_menu(self, domain, policy); | 374 | if(domain) |
181 | 375 | if(domain) g_free(domain); | 375 | { |
182 | 376 | _nojs_view_add_site_to_menu(self, domain, policy); | ||
183 | 377 | g_free(domain); | ||
184 | 378 | } | ||
185 | 376 | } | 379 | } |
186 | 377 | 380 | ||
187 | 378 | /* Free allocated resources */ | 381 | /* Free allocated resources */ |
188 | 379 | 382 | ||
189 | === modified file 'extensions/nojs/nojs.c' | |||
190 | --- extensions/nojs/nojs.c 2013-09-16 23:18:48 +0000 | |||
191 | +++ extensions/nojs/nojs.c 2014-05-09 14:51:38 +0000 | |||
192 | @@ -29,7 +29,7 @@ | |||
193 | 29 | 29 | ||
194 | 30 | PROP_DATABASE, | 30 | PROP_DATABASE, |
195 | 31 | PROP_DATABASE_FILENAME, | 31 | PROP_DATABASE_FILENAME, |
197 | 32 | PROP_ALLOW_ALL_SITES, | 32 | PROP_ALLOW_LOCAL_PAGES, |
198 | 33 | PROP_ONLY_SECOND_LEVEL, | 33 | PROP_ONLY_SECOND_LEVEL, |
199 | 34 | PROP_UNKNOWN_DOMAIN_POLICY, | 34 | PROP_UNKNOWN_DOMAIN_POLICY, |
200 | 35 | 35 | ||
201 | @@ -60,7 +60,7 @@ | |||
202 | 60 | MidoriApp *application; | 60 | MidoriApp *application; |
203 | 61 | sqlite3 *database; | 61 | sqlite3 *database; |
204 | 62 | gchar *databaseFilename; | 62 | gchar *databaseFilename; |
206 | 63 | gboolean allowAllSites; | 63 | gboolean allowLocalPages; |
207 | 64 | gboolean checkOnlySecondLevel; | 64 | gboolean checkOnlySecondLevel; |
208 | 65 | NoJSPolicy unknownDomainPolicy; | 65 | NoJSPolicy unknownDomainPolicy; |
209 | 66 | 66 | ||
210 | @@ -285,7 +285,6 @@ | |||
211 | 285 | const gchar *contentType; | 285 | const gchar *contentType; |
212 | 286 | SoupURI *uri; | 286 | SoupURI *uri; |
213 | 287 | gchar *uriText; | 287 | gchar *uriText; |
214 | 288 | gchar *domain; | ||
215 | 289 | NoJSPolicy policy; | 288 | NoJSPolicy policy; |
216 | 290 | gboolean isJS; | 289 | gboolean isJS; |
217 | 291 | const gchar **iter; | 290 | const gchar **iter; |
218 | @@ -315,11 +314,8 @@ | |||
219 | 315 | * get policy for domain of URI and emit signal | 314 | * get policy for domain of URI and emit signal |
220 | 316 | */ | 315 | */ |
221 | 317 | uri=soup_message_get_uri(message); | 316 | uri=soup_message_get_uri(message); |
227 | 318 | 317 | policy=nojs_get_policy(self, uri); | |
228 | 319 | domain=nojs_get_domain(self, uri); | 318 | |
224 | 320 | g_return_if_fail(domain); | ||
225 | 321 | |||
226 | 322 | policy=nojs_get_policy(self, domain); | ||
229 | 323 | if(policy==NOJS_POLICY_UNDETERMINED) | 319 | if(policy==NOJS_POLICY_UNDETERMINED) |
230 | 324 | { | 320 | { |
231 | 325 | g_warning("Got invalid policy. Using default policy for unknown domains."); | 321 | g_warning("Got invalid policy. Using default policy for unknown domains."); |
232 | @@ -331,7 +327,6 @@ | |||
233 | 331 | g_signal_emit(self, NoJSSignals[URI_LOAD_POLICY_STATUS], 0, uriText, policy==NOJS_POLICY_UNDETERMINED ? NOJS_POLICY_BLOCK : policy); | 327 | g_signal_emit(self, NoJSSignals[URI_LOAD_POLICY_STATUS], 0, uriText, policy==NOJS_POLICY_UNDETERMINED ? NOJS_POLICY_BLOCK : policy); |
234 | 332 | 328 | ||
235 | 333 | g_free(uriText); | 329 | g_free(uriText); |
236 | 334 | g_free(domain); | ||
237 | 335 | 330 | ||
238 | 336 | /* Return here if policy is any type of accept */ | 331 | /* Return here if policy is any type of accept */ |
239 | 337 | if(policy!=NOJS_POLICY_UNDETERMINED && policy!=NOJS_POLICY_BLOCK) return; | 332 | if(policy!=NOJS_POLICY_UNDETERMINED && policy!=NOJS_POLICY_BLOCK) return; |
240 | @@ -636,9 +631,9 @@ | |||
241 | 636 | _nojs_on_application_changed(self); | 631 | _nojs_on_application_changed(self); |
242 | 637 | break; | 632 | break; |
243 | 638 | 633 | ||
247 | 639 | case PROP_ALLOW_ALL_SITES: | 634 | case PROP_ALLOW_LOCAL_PAGES: |
248 | 640 | self->priv->allowAllSites=g_value_get_boolean(inValue); | 635 | self->priv->allowLocalPages=g_value_get_boolean(inValue); |
249 | 641 | g_object_notify_by_pspec(G_OBJECT(self), NoJSProperties[PROP_ALLOW_ALL_SITES]); | 636 | g_object_notify_by_pspec(G_OBJECT(self), NoJSProperties[PROP_ALLOW_LOCAL_PAGES]); |
250 | 642 | break; | 637 | break; |
251 | 643 | 638 | ||
252 | 644 | case PROP_ONLY_SECOND_LEVEL: | 639 | case PROP_ONLY_SECOND_LEVEL: |
253 | @@ -682,8 +677,8 @@ | |||
254 | 682 | g_value_set_string(outValue, self->priv->databaseFilename); | 677 | g_value_set_string(outValue, self->priv->databaseFilename); |
255 | 683 | break; | 678 | break; |
256 | 684 | 679 | ||
259 | 685 | case PROP_ALLOW_ALL_SITES: | 680 | case PROP_ALLOW_LOCAL_PAGES: |
260 | 686 | g_value_set_boolean(outValue, self->priv->allowAllSites); | 681 | g_value_set_boolean(outValue, self->priv->allowLocalPages); |
261 | 687 | break; | 682 | break; |
262 | 688 | 683 | ||
263 | 689 | case PROP_ONLY_SECOND_LEVEL: | 684 | case PROP_ONLY_SECOND_LEVEL: |
264 | @@ -743,24 +738,24 @@ | |||
265 | 743 | NULL, | 738 | NULL, |
266 | 744 | G_PARAM_READABLE); | 739 | G_PARAM_READABLE); |
267 | 745 | 740 | ||
273 | 746 | NoJSProperties[PROP_ALLOW_ALL_SITES]= | 741 | NoJSProperties[PROP_ALLOW_LOCAL_PAGES]= |
274 | 747 | g_param_spec_boolean("allow-all-sites", | 742 | g_param_spec_boolean("allow-local-pages", |
275 | 748 | _("Allow all sites"), | 743 | _("Allow local pages"), |
276 | 749 | _("If true this extension will not check policy for each site but allow them."), | 744 | _("Allow scripts to run on local (file://) pages"), |
277 | 750 | FALSE, | 745 | TRUE, |
278 | 751 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); | 746 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); |
279 | 752 | 747 | ||
280 | 753 | NoJSProperties[PROP_ONLY_SECOND_LEVEL]= | 748 | NoJSProperties[PROP_ONLY_SECOND_LEVEL]= |
281 | 754 | g_param_spec_boolean("only-second-level", | 749 | g_param_spec_boolean("only-second-level", |
282 | 755 | _("Only second level"), | 750 | _("Only second level"), |
284 | 756 | _("If true this extension will reduce each domain to its second-level (www.example.org will reduced to example.org)"), | 751 | _("Reduce each domain to its second-level (e.g. www.example.org to example.org) for comparison"), |
285 | 757 | TRUE, | 752 | TRUE, |
286 | 758 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); | 753 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); |
287 | 759 | 754 | ||
288 | 760 | NoJSProperties[PROP_UNKNOWN_DOMAIN_POLICY]= | 755 | NoJSProperties[PROP_UNKNOWN_DOMAIN_POLICY]= |
289 | 761 | g_param_spec_enum("unknown-domain-policy", | 756 | g_param_spec_enum("unknown-domain-policy", |
290 | 762 | _("Unknown domain policy"), | 757 | _("Unknown domain policy"), |
292 | 763 | _("Policy to use for unknown domains."), | 758 | _("Policy to use for unknown domains"), |
293 | 764 | NOJS_TYPE_POLICY, | 759 | NOJS_TYPE_POLICY, |
294 | 765 | NOJS_POLICY_BLOCK, | 760 | NOJS_POLICY_BLOCK, |
295 | 766 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); | 761 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT); |
296 | @@ -843,7 +838,7 @@ | |||
297 | 843 | /* Set up default values */ | 838 | /* Set up default values */ |
298 | 844 | priv->database=NULL; | 839 | priv->database=NULL; |
299 | 845 | priv->databaseFilename=NULL; | 840 | priv->databaseFilename=NULL; |
301 | 846 | priv->allowAllSites=FALSE; | 841 | priv->allowLocalPages=TRUE; |
302 | 847 | priv->checkOnlySecondLevel=TRUE; | 842 | priv->checkOnlySecondLevel=TRUE; |
303 | 848 | priv->unknownDomainPolicy=NOJS_POLICY_BLOCK; | 843 | priv->unknownDomainPolicy=NOJS_POLICY_BLOCK; |
304 | 849 | 844 | ||
305 | @@ -888,22 +883,30 @@ | |||
306 | 888 | } | 883 | } |
307 | 889 | 884 | ||
308 | 890 | /* Get/set policy for javascript from site */ | 885 | /* Get/set policy for javascript from site */ |
310 | 891 | gint nojs_get_policy(NoJS *self, const gchar *inDomain) | 886 | gint nojs_get_policy(NoJS *self, SoupURI *inURI) |
311 | 892 | { | 887 | { |
312 | 893 | g_return_val_if_fail(IS_NOJS(self), NOJS_POLICY_UNDETERMINED); | 888 | g_return_val_if_fail(IS_NOJS(self), NOJS_POLICY_UNDETERMINED); |
314 | 894 | g_return_val_if_fail(inDomain, NOJS_POLICY_UNDETERMINED); | 889 | g_return_val_if_fail(inURI, NOJS_POLICY_UNDETERMINED); |
315 | 895 | 890 | ||
316 | 896 | NoJSPrivate *priv=self->priv; | 891 | NoJSPrivate *priv=self->priv; |
317 | 897 | sqlite3_stmt *statement=NULL; | 892 | sqlite3_stmt *statement=NULL; |
318 | 898 | gint error; | 893 | gint error; |
319 | 899 | gint policy=NOJS_POLICY_UNDETERMINED; | 894 | gint policy=NOJS_POLICY_UNDETERMINED; |
320 | 895 | gchar *inDomain; | ||
321 | 900 | 896 | ||
324 | 901 | /* Check to allow all sites */ | 897 | /* Check to allow local pages */ |
325 | 902 | if(priv->allowAllSites) return(NOJS_POLICY_ACCEPT); | 898 | if(soup_uri_get_scheme(inURI) == SOUP_URI_SCHEME_FILE) |
326 | 899 | { | ||
327 | 900 | if(priv->allowLocalPages) return(NOJS_POLICY_ACCEPT); | ||
328 | 901 | else return(priv->unknownDomainPolicy); | ||
329 | 902 | } | ||
330 | 903 | 903 | ||
331 | 904 | /* Check for open database */ | 904 | /* Check for open database */ |
332 | 905 | g_return_val_if_fail(priv->database, policy); | 905 | g_return_val_if_fail(priv->database, policy); |
333 | 906 | 906 | ||
334 | 907 | /* Get domain from URI */ | ||
335 | 908 | inDomain=nojs_get_domain(self, inURI); | ||
336 | 909 | |||
337 | 907 | /* Lookup policy for site in database */ | 910 | /* Lookup policy for site in database */ |
338 | 908 | error=sqlite3_prepare_v2(priv->database, | 911 | error=sqlite3_prepare_v2(priv->database, |
339 | 909 | "SELECT site, value FROM policies WHERE site LIKE ? LIMIT 1;", | 912 | "SELECT site, value FROM policies WHERE site LIKE ? LIMIT 1;", |
340 | @@ -975,23 +978,23 @@ | |||
341 | 975 | } | 978 | } |
342 | 976 | } | 979 | } |
343 | 977 | 980 | ||
346 | 978 | /* Get/set flag to allow javascript at all sites */ | 981 | /* Get/set flag to allow javascript on local pages */ |
347 | 979 | gboolean nojs_get_allow_all_sites(NoJS *self) | 982 | gboolean nojs_get_allow_local_pages(NoJS *self) |
348 | 980 | { | 983 | { |
349 | 981 | g_return_val_if_fail(IS_NOJS(self), TRUE); | 984 | g_return_val_if_fail(IS_NOJS(self), TRUE); |
350 | 982 | 985 | ||
352 | 983 | return(self->priv->allowAllSites); | 986 | return(self->priv->allowLocalPages); |
353 | 984 | } | 987 | } |
354 | 985 | 988 | ||
356 | 986 | void nojs_set_allow_all_sites(NoJS *self, gboolean inAllow) | 989 | void nojs_set_allow_local_pages(NoJS *self, gboolean inAllow) |
357 | 987 | { | 990 | { |
358 | 988 | g_return_if_fail(IS_NOJS(self)); | 991 | g_return_if_fail(IS_NOJS(self)); |
359 | 989 | 992 | ||
361 | 990 | if(self->priv->allowAllSites!=inAllow) | 993 | if(self->priv->allowLocalPages!=inAllow) |
362 | 991 | { | 994 | { |
366 | 992 | self->priv->allowAllSites=inAllow; | 995 | self->priv->allowLocalPages=inAllow; |
367 | 993 | midori_extension_set_boolean(self->priv->extension, "allow-all-sites", inAllow); | 996 | midori_extension_set_boolean(self->priv->extension, "allow-local-pages", inAllow); |
368 | 994 | g_object_notify_by_pspec(G_OBJECT(self), NoJSProperties[PROP_ALLOW_ALL_SITES]); | 997 | g_object_notify_by_pspec(G_OBJECT(self), NoJSProperties[PROP_ALLOW_LOCAL_PAGES]); |
369 | 995 | } | 998 | } |
370 | 996 | } | 999 | } |
371 | 997 | 1000 | ||
372 | 998 | 1001 | ||
373 | === modified file 'extensions/nojs/nojs.h' | |||
374 | --- extensions/nojs/nojs.h 2013-07-05 10:29:59 +0000 | |||
375 | +++ extensions/nojs/nojs.h 2014-05-09 14:51:38 +0000 | |||
376 | @@ -66,14 +66,14 @@ | |||
377 | 66 | 66 | ||
378 | 67 | gchar* nojs_get_domain(NoJS *self, SoupURI *inURI); | 67 | gchar* nojs_get_domain(NoJS *self, SoupURI *inURI); |
379 | 68 | 68 | ||
381 | 69 | gint nojs_get_policy(NoJS *self, const gchar *inDomain); | 69 | gint nojs_get_policy(NoJS *self, SoupURI *inURI); |
382 | 70 | void nojs_set_policy(NoJS *self, const gchar *inDomain, NoJSPolicy inPolicy); | 70 | void nojs_set_policy(NoJS *self, const gchar *inDomain, NoJSPolicy inPolicy); |
383 | 71 | 71 | ||
384 | 72 | NoJSPolicy nojs_get_policy_for_unknown_domain(NoJS *self); | 72 | NoJSPolicy nojs_get_policy_for_unknown_domain(NoJS *self); |
385 | 73 | void nojs_set_policy_for_unknown_domain(NoJS *self, NoJSPolicy inPolicy); | 73 | void nojs_set_policy_for_unknown_domain(NoJS *self, NoJSPolicy inPolicy); |
386 | 74 | 74 | ||
389 | 75 | gboolean nojs_get_allow_all_sites(NoJS *self); | 75 | gboolean nojs_get_allow_local_pages(NoJS *self); |
390 | 76 | void nojs_set_allow_all_sites(NoJS *self, gboolean inAllow); | 76 | void nojs_set_allow_local_pages(NoJS *self, gboolean inAllow); |
391 | 77 | 77 | ||
392 | 78 | gboolean nojs_get_only_second_level_domain(NoJS *self); | 78 | gboolean nojs_get_only_second_level_domain(NoJS *self); |
393 | 79 | void nojs_set_only_second_level_domain(NoJS *self, gboolean inOnlySecondLevel); | 79 | void nojs_set_only_second_level_domain(NoJS *self, gboolean inOnlySecondLevel); |