Add a flag for custom certificates
authorQuentin Rameau <quinq@fifth.space>
Sat, 29 Apr 2017 15:21:12 +0000 (17:21 +0200)
committerQuentin Rameau <quinq@fifth.space>
Sat, 29 Apr 2017 15:59:08 +0000 (17:59 +0200)
I don't think a keybinding would be useful here because we can't
remove a custom certificate which is alread set anyway.
I'll add it if somebody convince me of it's usefulness.

surf.1
surf.c

diff --git a/surf.1 b/surf.1
index cc54351..45b75de 100644 (file)
--- a/surf.1
+++ b/surf.1
@@ -126,6 +126,12 @@ Prints xid to standard output. This can be used to script the browser in for
 example
 .BR xdotool(1).
 .TP
+.B -x
+Disable custom certificates.
+.TP
+.B -X
+Enable custom certificates.
+.TP
 .B \-z zoomlevel 
 Specify the
 .I zoomlevel
@@ -268,6 +274,9 @@ plugins
 .TP
 .B m M
 styles
+.TP
+.B x X
+custom certificates
 .SH INDICATORS OF WEB PAGE
 The second part of the indicators specifies modes of the web page itself.
 .SS First character: encryption
diff --git a/surf.c b/surf.c
index 84ab8e3..59cea07 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -236,7 +236,7 @@ static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
 static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
 
 static char winid[64];
-static char togglestats[11];
+static char togglestats[12];
 static char pagestats[2];
 static Atom atoms[AtomLast];
 static Window embed;
@@ -590,8 +590,9 @@ gettogglestats(Client *c)
        togglestats[6] = curconfig[Plugins].val.b ?         'V' : 'v';
        togglestats[7] = curconfig[Style].val.b ?           'M' : 'm';
        togglestats[8] = curconfig[FrameFlattening].val.b ? 'F' : 'f';
-       togglestats[9] = curconfig[StrictTLS].val.b ?       'T' : 't';
-       togglestats[10] = '\0';
+       togglestats[9] = curconfig[Certificate].val.b ?     'X' : 'x';
+       togglestats[10] = curconfig[StrictTLS].val.b ?      'T' : 't';
+       togglestats[11] = '\0';
 }
 
 void
@@ -881,7 +882,7 @@ newwindow(Client *c, const Arg *a, int noembed)
 {
        int i = 0;
        char tmp[64];
-       const char *cmd[28], *uri;
+       const char *cmd[29], *uri;
        const Arg arg = { .v = cmd };
 
        cmd[i++] = argv0;
@@ -921,6 +922,7 @@ newwindow(Client *c, const Arg *a, int noembed)
        }
        if (showxid)
                cmd[i++] = "-w";
+       cmd[i++] = curconfig[Certificate].val.b ? "-X" : "-x" ;
        /* do not keep zoom level */
        cmd[i++] = "--";
        if ((uri = a->v))
@@ -1902,6 +1904,12 @@ main(int argc, char *argv[])
        case 'w':
                showxid = 1;
                break;
+       case 'x':
+               defconfig CSETB(Certificate, 0);
+               break;
+       case 'X':
+               defconfig CSETB(Certificate, 1);
+               break;
        case 'z':
                defconfig CSETF(ZoomLevel, strtof(EARGF(usage()), NULL));
                break;