Merge lp:~daniel-wyatt/midori/fix-bug820735 into lp:midori

Proposed by Daniel Wyatt
Status: Work in progress
Proposed branch: lp:~daniel-wyatt/midori/fix-bug820735
Merge into: lp:midori
Diff against target: 82 lines (+38/-2)
2 files modified
midori/midori-browser.c (+4/-2)
midori/midori-view.c (+34/-0)
To merge this branch: bzr merge lp:~daniel-wyatt/midori/fix-bug820735
Reviewer Review Type Date Requested Status
Cris Dywan Needs Information
Review via email: mp+195905@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Cris Dywan (kalikiana) wrote :

The code in midori_view_web_view_resource_response_cb uses midori_browser_get_current_uri in the View to see if a particular resource happens to be loading the top level website of the active tab… if you wanted to check every top-level URL typed in the address bar _action_location_submit_uri in midori-browser.c would be the place.

The other code doesn't and can't check where the error came from and thus skips all errors regardless of the resource check so… what's the specific intention of the code? Should it be specific to typos or include all errors? Both do not mix.

review: Needs Information

Unmerged revisions

6487. By Daniel Wyatt

Don't store URIs that failed to load in history.
This includes domains that failed to resolve.
For webkit >= 1.7.5 this also includes 404s.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'midori/midori-browser.c'
--- midori/midori-browser.c 2013-11-15 02:25:36 +0000
+++ midori/midori-browser.c 2013-11-20 05:33:35 +0000
@@ -441,8 +441,10 @@
441 g_object_set (action,441 g_object_set (action,
442 "stock-id", GTK_STOCK_REFRESH,442 "stock-id", GTK_STOCK_REFRESH,
443 "tooltip", _("Reload the current page"), NULL);443 "tooltip", _("Reload the current page"), NULL);
444 katze_item_set_meta_integer (midori_view_get_proxy_item (view),444 if (!katze_item_get_meta_boolean (midori_view_get_proxy_item (view),
445 "dont-write-history", -1);445 "dont-write-history" ))
446 katze_item_set_meta_integer (midori_view_get_proxy_item (view),
447 "dont-write-history", -1);
446 }448 }
447 else449 else
448 {450 {
449451
=== modified file 'midori/midori-view.c'
--- midori/midori-view.c 2013-11-16 17:37:09 +0000
+++ midori/midori-view.c 2013-11-20 05:33:35 +0000
@@ -969,6 +969,33 @@
969 }969 }
970}970}
971971
972#if WEBKIT_CHECK_VERSION (1, 7, 5)
973static void
974midori_view_web_view_resource_response_cb (WebKitWebView* web_view,
975 WebKitWebFrame* web_frame,
976 WebKitWebResource* web_resource,
977 WebKitNetworkResponse* response,
978 MidoriView* view)
979{
980 MidoriBrowser* browser = midori_browser_get_for_widget (view->web_view);
981 if (!browser)
982 return;
983
984 const gchar* current_uri = midori_browser_get_current_uri (browser);
985 const gchar* resource_uri = webkit_web_resource_get_uri (web_resource);
986 if (g_strcmp0 (current_uri, resource_uri) == 0)
987 {
988 SoupMessage *msg = webkit_network_response_get_message (response);
989 if (!msg)
990 return;
991
992 if (msg->status_code == 404)
993 katze_item_set_meta_integer (view->item,
994 "dont-write-history", 1);
995 }
996}
997#endif
998
972static void999static void
973midori_view_infobar_response_cb (GtkWidget* infobar,1000midori_view_infobar_response_cb (GtkWidget* infobar,
974 gint response,1001 gint response,
@@ -1286,6 +1313,8 @@
1286 return FALSE;1313 return FALSE;
1287 }1314 }
12881315
1316 /* Failed to load, don't store it in the history! */
1317 katze_item_set_meta_integer (view->item, "dont-write-history", 1);
1289 title = g_strdup_printf (_("'%s' can't be found"), midori_uri_parse_hostname(uri, NULL));1318 title = g_strdup_printf (_("'%s' can't be found"), midori_uri_parse_hostname(uri, NULL));
1290 message = g_strdup_printf (_("The page '%s' couldn't be loaded:"), midori_uri_parse_hostname(uri, NULL));1319 message = g_strdup_printf (_("The page '%s' couldn't be loaded:"), midori_uri_parse_hostname(uri, NULL));
12911320
@@ -1414,6 +1443,7 @@
14141443
1415 midori_tab_set_progress (MIDORI_TAB (view), 1.0);1444 midori_tab_set_progress (MIDORI_TAB (view), 1.0);
1416 midori_view_update_load_status (view, MIDORI_LOAD_FINISHED);1445 midori_view_update_load_status (view, MIDORI_LOAD_FINISHED);
1446 katze_item_set_meta_integer (view->item, "dont-write-history", -1);
1417}1447}
14181448
1419#ifdef HAVE_WEBKIT21449#ifdef HAVE_WEBKIT2
@@ -3578,6 +3608,10 @@
3578 midori_view_web_view_navigation_decision_cb, view,3608 midori_view_web_view_navigation_decision_cb, view,
3579 "signal::resource-request-starting",3609 "signal::resource-request-starting",
3580 midori_view_web_view_resource_request_cb, view,3610 midori_view_web_view_resource_request_cb, view,
3611 #if WEBKIT_CHECK_VERSION (1, 7, 5)
3612 "signal::resource-response-received",
3613 midori_view_web_view_resource_response_cb, view,
3614 #endif
3581 "signal::database-quota-exceeded",3615 "signal::database-quota-exceeded",
3582 midori_view_web_view_database_quota_exceeded_cb, view,3616 midori_view_web_view_database_quota_exceeded_cb, view,
3583 "signal::geolocation-policy-decision-requested",3617 "signal::geolocation-policy-decision-requested",

Subscribers

People subscribed via source and target branches

to all changes: