| Exit more gracefully on web process crash. - surf - surf browser, a WebKit base… | |
| git clone git://git.suckless.org/surf | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit c60523a702fbc77899457243f1a85e4990adfb97 | |
| parent befe481a9b970cf2bc90ca671e1df1d1082ac41e | |
| Author: Quentin Rameau <[email protected]> | |
| Date: Fri, 16 Mar 2018 12:44:04 +0100 | |
| Exit more gracefully on web process crash. | |
| Diffstat: | |
| M surf.c | 14 ++++++++++++++ | |
| 1 file changed, 14 insertions(+), 0 deletions(-) | |
| --- | |
| diff --git a/surf.c b/surf.c | |
| @@ -206,6 +206,9 @@ static void downloadstarted(WebKitWebContext *wc, WebKitDow… | |
| Client *c); | |
| static void responsereceived(WebKitDownload *d, GParamSpec *ps, Client *c); | |
| static void download(Client *c, WebKitURIResponse *r); | |
| +static void webprocessterminated(WebKitWebView *v, | |
| + WebKitWebProcessTerminationReason r, | |
| + Client *c); | |
| static void closeview(WebKitWebView *v, Client *c); | |
| static void destroywin(GtkWidget* w, Client *c); | |
| @@ -1187,6 +1190,8 @@ newview(Client *c, WebKitWebView *rv) | |
| G_CALLBACK(permissionrequested), c); | |
| g_signal_connect(G_OBJECT(v), "ready-to-show", | |
| G_CALLBACK(showview), c); | |
| + g_signal_connect(G_OBJECT(v), "web-process-terminated", | |
| + G_CALLBACK(webprocessterminated), c); | |
| return v; | |
| } | |
| @@ -1692,6 +1697,15 @@ download(Client *c, WebKitURIResponse *r) | |
| } | |
| void | |
| +webprocessterminated(WebKitWebView *v, WebKitWebProcessTerminationReason r, | |
| + Client *c) | |
| +{ | |
| + fprintf(stderr, "web process terminated: %s\n", | |
| + r == WEBKIT_WEB_PROCESS_CRASHED ? "crashed" : "no memory"); | |
| + closeview(v, c); | |
| +} | |
| + | |
| +void | |
| closeview(WebKitWebView *v, Client *c) | |
| { | |
| gtk_widget_destroy(c->win); |