tReplace loadstatuschanged() with loadchanged() - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e9ec482049972d8b6b0c73faf452666b3cc32520
 (DIR) parent bce814b30ae026f97067bdd3c43a3b08f78c33bf
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Wed, 18 Nov 2015 18:39:45 +0100
       
       Replace loadstatuschanged() with loadchanged()
       
       Diffstat:
         M surf.c                              |      50 ++++++++++++++-----------------
       
       1 file changed, 23 insertions(+), 27 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -153,8 +153,7 @@ static gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key,
                                 GdkModifierType mods, Client *c);
        static void mousetargetchanged(WebKitWebView *v, WebKitHitTestResult *h,
                        guint modifiers, Client *c);
       -static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec,
       -                             Client *c);
       +static void loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c);
        static void loaduri(Client *c, const Arg *arg);
        static void navigate(Client *c, const Arg *arg);
        static Client *newclient(Client *c);
       t@@ -809,37 +808,34 @@ mousetargetchanged(WebKitWebView *v, WebKitHitTestResult *h, guint modifiers,
        }
        
        void
       -loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c)
       +loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c)
        {
       -        WebKitWebFrame *frame;
       -        WebKitWebDataSource *src;
       -        WebKitNetworkRequest *request;
       -        SoupMessage *msg;
       -        char *uri;
       -
       -        switch (webkit_web_view_get_load_status (c->view)) {
       +        switch (e) {
       +        case WEBKIT_LOAD_STARTED:
       +                c->tlsflags = G_TLS_CERTIFICATE_VALIDATE_ALL + 1;
       +                break;
       +        case WEBKIT_LOAD_REDIRECTED:
       +                setatom(c, AtomUri, geturi(c));
       +                break;
                case WEBKIT_LOAD_COMMITTED:
       -                uri = geturi(c);
       -                if (strstr(uri, "https://") == uri) {
       -                        frame = webkit_web_view_get_main_frame(c->view);
       -                        src = webkit_web_frame_get_data_source(frame);
       -                        request = webkit_web_data_source_get_request(src);
       -                        msg = webkit_network_request_get_message(request);
       -                        c->sslfailed = !(soup_message_get_flags(msg)
       -                                       & SOUP_MESSAGE_CERTIFICATE_TRUSTED);
       -                }
       -                setatom(c, AtomUri, uri);
       +                if (!webkit_web_view_get_tls_info(c->view, NULL, &(c->tlsflags)))
       +                        c->tlsflags = G_TLS_CERTIFICATE_VALIDATE_ALL + 1;
       +
       +                setatom(c, AtomUri, geturi(c));
        
                        if (enablestyle)
       -                        setstyle(c, getstyle(uri));
       +                        setstyle(c, getstyle(geturi(c)));
                        break;
                case WEBKIT_LOAD_FINISHED:
       -                c->progress = 100;
       -                updatetitle(c);
       -                break;
       -        default:
       +                /* Disabled until we write some WebKitWebExtension for
       +                 * manipulating the DOM directly.
       +                evalscript(c, "document.documentElement.style.overflow = '%s'",
       +                    enablescrollbars ? "auto" : "hidden");
       +                */
       +                runscript(c);
                        break;
                }
       +        updatetitle(c);
        }
        
        void
       t@@ -992,8 +988,8 @@ newview(Client *c, WebKitWebView *rv)
                                 "window-object-cleared",
                                 G_CALLBACK(windowobjectcleared), c);
                g_signal_connect(G_OBJECT(v),
       -                         "notify::load-status",
       -                         G_CALLBACK(loadstatuschange), c);
       +                         "load-changed",
       +                         G_CALLBACK(loadchanged), c);
                g_signal_connect(G_OBJECT(v),
                                 "notify::progress",
                                 G_CALLBACK(progresschange), c);