Hello community,

here is the log from the commit of package vimb for openSUSE:Factory checked in 
at 2019-03-27 16:22:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vimb (Old)
 and      /work/SRC/openSUSE:Factory/.vimb.new.25356 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vimb"

Wed Mar 27 16:22:02 2019 rev:2 rq:689025 version:3.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/vimb/vimb.changes        2019-02-28 
21:39:11.461625321 +0100
+++ /work/SRC/openSUSE:Factory/.vimb.new.25356/vimb.changes     2019-03-27 
16:22:04.635521340 +0100
@@ -1,0 +2,22 @@
+Wed Mar 27 08:55:32 UTC 2019 - [email protected]
+
+- Update to 3.4.0:
+  Added:
+  * Allow to show video in fullscreen, without statusbar and inputbox, if 
requested.
+  * Added option --no-maximize to no start with maximized window #483.
+  * New setting prevent-newwindow to enforce opening links into same window
+    even if they are crafted by target="_blank" or using window.open(...)#544.
+  Changed:
+  * Increased min required webkit version to 2.20.x.
+  * Use man page date instead of build date to make reproducible builds.
+  * URLs shown on statusbar and title are now shown as punicode if they contain
+    homographs.
+  Fixed:
+  * Fix out-of-bounds buffer access in parse_command (Thanks to Sören Tempel) 
#529.
+  * Fixed none shown hint labels by Content-Security-Policy headers #531.
+  * Fixed segfault on JavaScript window.close() call #537.
+  * Fixed no char inserted in input mode after timeout and imap/inoremap
+    candidate #546.
+- Add vim-3.4.0-fixbuild.patch: fix non git build
+
+-------------------------------------------------------------------

Old:
----
  3.3.0.tar.gz

New:
----
  3.4.0.tar.gz
  vim-3.4.0-fixbuild.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vimb.spec ++++++
--- /var/tmp/diff_new_pack.iQA3aG/_old  2019-03-27 16:22:05.543521150 +0100
+++ /var/tmp/diff_new_pack.iQA3aG/_new  2019-03-27 16:22:05.543521150 +0100
@@ -12,20 +12,22 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
 
 Name:           vimb
-Version:        3.3.0
+Version:        3.4.0
 Release:        0
 Summary:        The vim-like browser
 License:        GPL-3.0-or-later
 Group:          Productivity/Networking/Web/Browsers
 URL:            https://fanglingsu.github.io/vimb/
 Source:         https://github.com/fanglingsu/vimb/archive/%{version}.tar.gz
+# FIX-UPSTREAM - [email protected] - https://github.com/fanglingsu/vimb/pull/552
+Patch0:         vim-3.4.0-fixbuild.patch
 BuildRequires:  gtk3-devel
-BuildRequires:  webkit2gtk3-devel
+BuildRequires:  webkit2gtk3-devel >= 2.20
 
 %description
 vimb is a WebKit-based web browser that behaves like the vimperator
@@ -33,6 +35,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 make %{?_smp_mflags}

++++++ 3.3.0.tar.gz -> 3.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/.gitignore new/vimb-3.4.0/.gitignore
--- old/vimb-3.3.0/.gitignore   2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/.gitignore   2019-03-26 23:47:03.000000000 +0100
@@ -3,3 +3,4 @@
 *.so
 *.tar.gz
 sandbox
+version.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/.travis.yml new/vimb-3.4.0/.travis.yml
--- old/vimb-3.3.0/.travis.yml  2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/.travis.yml  2019-03-26 23:47:03.000000000 +0100
@@ -3,7 +3,7 @@
     gh-pages
 
 language: c
-dist: trusty
+dist: xenial
 sudo: required
 
 compiler:
@@ -11,7 +11,6 @@
   - clang
 
 before_install:
-  - sudo add-apt-repository ppa:webkit-team/ppa -y
   - sudo apt-get update -q
   - sudo apt-get install -y --allow-unauthenticated --no-install-recommends 
libwebkit2gtk-4.0-dev
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/CHANGELOG.md new/vimb-3.4.0/CHANGELOG.md
--- old/vimb-3.3.0/CHANGELOG.md 2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/CHANGELOG.md 2019-03-26 23:47:03.000000000 +0100
@@ -11,6 +11,24 @@
 ### Fixed
 ### Removed
 
+## [3.4.0] - 2019-03-26
+### Added
+* Allow to show video in fullscreen, without statusbar and inputbox, if 
requested.
+* Added option `--no-maximize` to no start with maximized window #483.
+* New setting `prevent-newwindow` to enforce opening links into same window
+  even if they are crafted by `target="_blank"` or using `window.open(...)` 
#544.
+### Changed
+* Increased min required webkit version to 2.20.x.
+* Use man page date instead of build date ot make reproducible builds.
+* URLs shown on statusbar and title are now shown as punicode if they contain
+  homographs.
+### Fixed
+* Fix out-of-bounds buffer access in parse_command (Thanks to Sören Tempel) 
#529.
+* Fixed none shown hint labels by Content-Security-Policy headers #531.
+* Fixed segfault on JavaScript `window.close()` call #537.
+* Fixed no char inserted in input mode after timeout and imap/inoremap
+  candidate #546.
+
 ## [3.3.0] - 2018-11-06
 
 ### Added
@@ -24,7 +42,7 @@
   using names marks.
   Set a marks by `m{a-z}` in normal mode. Jump to marks by `'{a-z}`.
 * Re-Added `gf` to show page source (Thanks to Leonardo Taccari) #361.
-  Webkit2 does not allow to show tha page in the source view mode so the `gf`
+  Webkit2 does not allow to show the page in the source view mode so the `gf`
   writes the HTML to a temporary files and opens it in the editor configured
   by `:set editor-command=...`
 ### Changed
@@ -45,8 +63,8 @@
 ### Added
 * Allow basic motion commands for hinting too.
 * Show the numbers of search matches in status bar.
-* Show dialog if the page makes a permission request e.g. gelocation to allow
-  the user to make a decission.
+* Show dialog if the page makes a permission request e.g. geolocation to allow
+  the user to make a decision.
 * new Setting `show-titlebar` to toggle window decorations.
 
 ### Changed
@@ -57,7 +75,7 @@
   classes are not set anymore to the hints. So customized css for the hints 
have
   to be adapted to this.
 * Element ID is stored in case the editor was spawned. So it's now possible to
-  start the editor, load another page, come back and paste the edotor contents
+  start the editor, load another page, come back and paste the editor contents
   (thanks to Sven Speckmaier).
 
 ### Fixed
@@ -166,7 +184,7 @@
 
 ### Added
 
-* Queueing of key events - fixes swalled chars in case of some imap bindings
+* Queueing of key events - fixes swallowed chars in case of some imap bindings
   #258 (thanks to Michael Mackus)
 * Allow to disable xembed by `FEATURE_NO_XEMBED` to compile on wayland only
   platforms (thanks to Patrick Steinhardt)
@@ -224,6 +242,7 @@
 * Fixed none POSIX `echo -n` call
 
 [Unreleased]: https://github.com/fanglingsu/vimb/compare/3.3.0...master
+[3.4.0]: https://github.com/fanglingsu/vimb/compare/3.3.0...3.4.0
 [3.3.0]: https://github.com/fanglingsu/vimb/compare/3.2.0...3.3.0
 [3.2.0]: https://github.com/fanglingsu/vimb/compare/3.1.0...3.2.0
 [3.1.0]: https://github.com/fanglingsu/vimb/compare/3.0-alpha...3.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/Makefile new/vimb-3.4.0/Makefile
--- old/vimb-3.3.0/Makefile     2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/Makefile     2019-03-26 23:47:03.000000000 +0100
@@ -1,6 +1,12 @@
+version = 3.4.0
 include config.mk
 
-all: src.subdir-all
+all: version.h src.subdir-all
+
+version.h: Makefile .git/index
+       @echo "create $@"
+       $(Q)v="$$(git describe --tags 2>/dev/null)"; \
+       echo "#define VERSION \"$${v:-$(version)}\"" > $@
 
 options:
        @echo "vimb build options:"
@@ -10,7 +16,7 @@
        @echo "EXTCFLAGS = $(EXTCFLAGS)"
        @echo "CC        = $(CC)"
 
-install: src.subdir-all
+install: all
        @# binary
        install -d $(BINPREFIX)
        install -m 755 src/vimb $(BINPREFIX)/vimb
@@ -19,9 +25,9 @@
        install -m 644 src/webextension/$(EXTTARGET) $(LIBDIR)/$(EXTTARGET)
        @# man page
        install -d $(MANPREFIX)/man1
-       @sed -e "s!VERSION!$(VERSION)!g" \
+       @sed -e "s!VERSION!$(version)!g" \
                -e "s!PREFIX!$(PREFIX)!g" \
-               -e "s!DATE!`date +'%m %Y'`!g" $(DOCDIR)/vimb.1 > 
$(MANPREFIX)/man1/vimb.1
+               -e "s!DATE!`date -u -r $(DOCDIR)/vimb.1 +'%m %Y' 2>/dev/null || 
date +'%m %Y'`!g" $(DOCDIR)/vimb.1 > $(MANPREFIX)/man1/vimb.1
        @# .desktop file
        install -d $(DOTDESKTOPPREFIX)
        install -m 644 vimb.desktop $(DOTDESKTOPPREFIX)/vimb.desktop
@@ -40,7 +46,7 @@
 runsandbox: sandbox
        sandbox/usr/bin/vimb
 
-test:
+test: version.h
        $(MAKE) -C src vimb.so
        $(MAKE) -C tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/README.md new/vimb-3.4.0/README.md
--- old/vimb-3.3.0/README.md    2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/README.md    2019-03-26 23:47:03.000000000 +0100
@@ -1,6 +1,8 @@
 # Vimb - the Vim-like browser
 
 [![Build 
Status](https://api.travis-ci.com/fanglingsu/vimb.svg?branch=master)](https://travis-ci.com/fanglingsu/vimb)
+[![License: GPL 
v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
+[![Latest 
Release](https://img.shields.io/github/release/fanglingsu/vimb.svg?style=flat)](https://github.com/fanglingsu/vimb/releases/latest)
 
 Vimb is a Vim-like web browser that is inspired by Pentadactyl and Vimprobable.
 The goal of Vimb is to build a completely keyboard-driven, efficient and
@@ -29,12 +31,14 @@
 
 - Arch Linux: [aur/vimb][], [aur/vimb-git][]
 - Gentoo: [gentoo-git][], [gentoo][]
+- openSUSE: [network/vimb][]
+- pkgsrc: [pkgsrc/www/vimb][], [pkgsrc/wip/vimb-git][]
 - Slackware: [slackbuild/vimb][]
 
 ## dependencies
 
 - gtk+-3.0
-- webkit2gtk-4.0 >= 2.8.x
+- webkit2gtk-4.0 >= 2.20.x
 
 ## Install
 
@@ -61,7 +65,7 @@
 
 ## Mailing list
 
-- feature requests, issues and patches can be discussed on the [mailing 
list][mail]
+- feature requests, issues and patches can be discussed on the [mailing 
list][mail] ([list archive][mail-archive])
 
 ## Similar projects
 
@@ -80,10 +84,14 @@
 - http://thedarnedestthing.com/vimb
 - https://blog.jeaye.com/2015/08/23/vimb/
 
-[aur/vimb]:          https://aur.archlinux.org/packages/vimb
-[aur/vimb-git]:      https://aur.archlinux.org/packages/vimb-git
-[gentoo-git]:        
https://github.com/tharvik/overlay/tree/master/www-client/vimb
-[gentoo]:            
https://github.com/hsoft/portage-overlay/tree/master/www-client/vimb
-[vimb]:              https://fanglingsu.github.io/vimb/ "Vimb - Vim like 
browser project page"
-[mail]:              https://lists.sourceforge.net/lists/listinfo/vimb-users 
"vimb - mailing list"
-[slackbuild/vimb]:   https://slackbuilds.org/repository/14.2/network/vimb/
+[aur/vimb-git]:        https://aur.archlinux.org/packages/vimb-git
+[aur/vimb]:            https://aur.archlinux.org/packages/vimb
+[gentoo-git]:          
https://github.com/tharvik/overlay/tree/master/www-client/vimb
+[gentoo]:              
https://github.com/hsoft/portage-overlay/tree/master/www-client/vimb
+[mail-archive]:        https://sourceforge.net/p/vimb/vimb/vimb-users/ "vimb - 
mailing list archive"
+[mail]:                https://lists.sourceforge.net/lists/listinfo/vimb-users 
"vimb - mailing list"
+[network/vimb]:        https://build.opensuse.org/package/show/network/vimb
+[pkgsrc/wip/vimb-git]: http://pkgsrc.se/wip/vimb-git
+[pkgsrc/www/vimb]:     http://pkgsrc.se/www/vimb
+[slackbuild/vimb]:     https://slackbuilds.org/repository/14.2/network/vimb/
+[vimb]:                https://fanglingsu.github.io/vimb/ "Vimb - Vim like 
browser project page"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/config.mk new/vimb-3.4.0/config.mk
--- old/vimb-3.3.0/config.mk    2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/config.mk    2019-03-26 23:47:03.000000000 +0100
@@ -1,5 +1,3 @@
-VERSION = 3.2.0
-
 ifneq ($(V),1)
 Q := @
 endif
@@ -12,26 +10,28 @@
 LIBDIR           := $(DESTDIR)$(PREFIX)/lib/vimb
 RUNPREFIX        := $(PREFIX)
 EXTENSIONDIR     := $(RUNPREFIX)/lib/vimb
+OS               := $(shell uname -s)
 
 # define some directories
 SRCDIR  = src
 DOCDIR  = doc
 
 # used libs
-LIBS = gtk+-3.0 'webkit2gtk-4.0 >= 2.8.0'
-
-COMMIT := $(shell git describe --tags --always 2> /dev/null || echo "unknown")
+LIBS = gtk+-3.0 'webkit2gtk-4.0 >= 2.20.0'
 
 # setup general used CFLAGS
 CFLAGS   += -std=c99 -pipe -Wall -fPIC
-CPPFLAGS += -DVERSION=\"${VERSION}\" -DEXTENSIONDIR=\"${EXTENSIONDIR}\" 
-DCOMMIT=\"$(COMMIT)\"
+CPPFLAGS += -DEXTENSIONDIR=\"${EXTENSIONDIR}\"
 CPPFLAGS += -DPROJECT=\"vimb\" -DPROJECT_UCFIRST=\"Vimb\"
-CPPFLAGS += -D_XOPEN_SOURCE=500
-CPPFLAGS += -D__BSD_VISIBLE
 CPPFLAGS += -DGSEAL_ENABLE
 CPPFLAGS += -DGTK_DISABLE_SINGLE_INCLUDES
 CPPFLAGS += -DGDK_DISABLE_DEPRECATED
 
+ifeq "$(findstring $(OS),FreeBSD DragonFly)" ""
+CPPFLAGS += -D_XOPEN_SOURCE=500
+CPPFLAGS += -D__BSD_VISIBLE
+endif
+
 # flags used to build webextension
 EXTTARGET   = webext_main.so
 EXTCFLAGS   = ${CFLAGS} $(shell pkg-config --cflags 
webkit2gtk-web-extension-4.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/doc/vimb.1 new/vimb-3.4.0/doc/vimb.1
--- old/vimb-3.3.0/doc/vimb.1   2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/doc/vimb.1   2019-03-26 23:47:03.000000000 +0100
@@ -48,6 +48,9 @@
 .B "\-v, \-\-version"
 Print build and version information and then quit.
 .TP
+.B "\-\-no-maximize"
+Do no attempt to maximize window.
+.TP
 .B "\-\-bug-info"
 Prints information about used libraries for bug reports and then quit.
 .SH MODES
@@ -1231,6 +1234,11 @@
 .B plugins (bool)
 Determines whether or not plugins on the page are enabled.
 .TP
+.B prevent-newwindow (bool)
+Whether to open links, that would normally open in a new window, in the
+current window.
+This option does not affect links fired by hinting.
+.TP
 .B sans-serif-font (string)
 The font family used as the default for content using sans-serif font.
 .TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/Makefile new/vimb-3.4.0/src/Makefile
--- old/vimb-3.3.0/src/Makefile 2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/Makefile 2019-03-26 23:47:03.000000000 +0100
@@ -19,6 +19,8 @@
 
 $(OBJ): config.h ../config.mk
 
+main.o: ../version.h
+
 input.o: scripts/scripts.h
 
 normal.o: scripts/scripts.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/ex.c new/vimb-3.4.0/src/ex.c
--- old/vimb-3.3.0/src/ex.c     2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/ex.c     2019-03-26 23:47:03.000000000 +0100
@@ -657,7 +657,7 @@
         /* read until next whitespace or end of input to get command name for
          * error message - vim uses the whole rest of the input string - but
          * the first word seems to bee enough for the error message */
-        for (; len < LENGTH(cmd) && *input && !VB_IS_SPACE(**input); 
(*input)++) {
+        for (; len < (LENGTH(cmd) - 1) && *input && !VB_IS_SPACE(**input); 
(*input)++) {
             cmd[len++] = **input;
         }
         cmd[len] = '\0';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/main.c new/vimb-3.4.0/src/main.c
--- old/vimb-3.3.0/src/main.c   2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/main.c   2019-03-26 23:47:03.000000000 +0100
@@ -28,6 +28,7 @@
 #include <unistd.h>
 #include <webkit2/webkit2.h>
 
+#include "../version.h"
 #include "ascii.h"
 #include "command.h"
 #include "completion.h"
@@ -72,6 +73,9 @@
         WebKitNavigationAction *navact, Client *c);
 static gboolean on_webview_decide_policy(WebKitWebView *webview,
         WebKitPolicyDecision *dec, WebKitPolicyDecisionType type, Client *c);
+static void decide_navigation_action(Client *c, WebKitPolicyDecision *dec);
+static void decide_new_window_action(Client *c, WebKitPolicyDecision *dec);
+static void decide_response(Client *c, WebKitPolicyDecision *dec);
 static void on_webview_load_changed(WebKitWebView *webview,
         WebKitLoadEvent event, Client *c);
 static void on_webview_mouse_target_changed(WebKitWebView *webview,
@@ -86,6 +90,8 @@
 static gboolean on_webview_web_process_crashed(WebKitWebView *webview, Client 
*c);
 static gboolean on_webview_authenticate(WebKitWebView *webview,
         WebKitAuthenticationRequest *request, Client *c);
+static gboolean on_webview_enter_fullscreen(WebKitWebView *webview, Client *c);
+static gboolean on_webview_leave_fullscreen(WebKitWebView *webview, Client *c);
 static gboolean on_window_delete_event(GtkWidget *window, GdkEvent *event, 
Client *c);
 static void on_window_destroy(GtkWidget *window, Client *c);
 static gboolean quit(Client *c);
@@ -801,7 +807,9 @@
         window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
         gtk_window_set_role(GTK_WINDOW(window), PROJECT_UCFIRST);
         gtk_window_set_default_size(GTK_WINDOW(window), WIN_WIDTH, WIN_HEIGHT);
-        gtk_window_maximize(GTK_WINDOW(window));
+        if (!vb.no_maximize) {
+            gtk_window_maximize(GTK_WINDOW(window));
+        }
     }
 
     g_object_connect(
@@ -982,7 +990,8 @@
 #ifndef FEATURE_NO_XEMBED
         + (vb.embed ? 2 : 0)
 #endif
-        + (vb.profile ? 2 : 0),
+        + (vb.profile ? 2 : 0)
+        + (vb.no_maximize ? 1 : 0),
         sizeof(char *)
     );
 
@@ -1004,6 +1013,9 @@
         cmd[i++] = "-p";
         cmd[i++] = vb.profile;
     }
+    if (vb.no_maximize) {
+        cmd[i++] = "--no-maximize";
+    }
     cmd[i++] = (char*)uri;
     cmd[i++] = NULL;
 
@@ -1192,7 +1204,7 @@
  */
 static void on_webview_close(WebKitWebView *webview, Client *c)
 {
-    client_destroy(c);
+    gtk_widget_destroy(c->window);
 }
 
 /**
@@ -1202,6 +1214,14 @@
 static WebKitWebView *on_webview_create(WebKitWebView *webview,
         WebKitNavigationAction *navact, Client *c)
 {
+    WebKitURIRequest *req;
+    if (c->config.prevent_newwindow) {
+        req = webkit_navigation_action_get_request(navact);
+        vb_load_uri(c, &(Arg){TARGET_CURRENT, 
(char*)webkit_uri_request_get_uri(req)});
+
+        return NULL;
+    }
+
     Client *new = client_new(webview);
 
     return new->webview;
@@ -1215,75 +1235,111 @@
 static gboolean on_webview_decide_policy(WebKitWebView *webview,
         WebKitPolicyDecision *dec, WebKitPolicyDecisionType type, Client *c)
 {
-    guint status, button, mod;
-    WebKitNavigationAction *a;
-    WebKitURIRequest *req;
-    WebKitURIResponse *res;
-    const char *uri;
-
     switch (type) {
         case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION:
-            a      = 
webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(dec));
-            req    = webkit_navigation_action_get_request(a);
-            button = webkit_navigation_action_get_mouse_button(a);
-            mod    = webkit_navigation_action_get_modifiers(a);
-            uri    = webkit_uri_request_get_uri(req);
-
-            /* Try to handle with specific protocol handler. */
-            if (handler_handle_uri(c->handler, uri)) {
-                webkit_policy_decision_ignore(dec);
-                return TRUE;
-            }
-            /* Spawn new instance if the new win flag is set on the mode, or
-             * the navigation was triggered by CTRL-LeftMouse or MiddleMouse. 
*/
-            if ((c->mode->flags & FLAG_NEW_WIN)
-                || (webkit_navigation_action_get_navigation_type(a) == 
WEBKIT_NAVIGATION_TYPE_LINK_CLICKED
-                    && (button == 2 || (button == 1 && mod & 
GDK_CONTROL_MASK)))) {
-
-                /* Remove the FLAG_NEW_WIN after the first use. */
-                c->mode->flags &= ~FLAG_NEW_WIN;
-
-                webkit_policy_decision_ignore(dec);
-                spawn_new_instance(uri);
-                return TRUE;
-            }
-            return FALSE;
+            decide_navigation_action(c, dec);
+            break;
 
         case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION:
-            a   = 
webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(dec));
+            decide_new_window_action(c, dec);
+            break;
 
-            /* Ignore opening new window if this was started without user 
gesture. */
-            if (!webkit_navigation_action_is_user_gesture(a)) {
-                webkit_policy_decision_ignore(dec);
-                return TRUE;
-            }
+        case WEBKIT_POLICY_DECISION_TYPE_RESPONSE:
+            decide_response(c, dec);
+            break;
 
-            if (webkit_navigation_action_get_navigation_type(a) == 
WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
-                webkit_policy_decision_ignore(dec);
-                /* This is triggered on link click for links with
-                 * target="_blank". Maybe it should be configurable if the
-                 * page is opened as tab or a new instance. */
-                req = webkit_navigation_action_get_request(a);
-                spawn_new_instance(webkit_uri_request_get_uri(req));
-                return TRUE;
-            }
-            return FALSE;
+        default:
+            webkit_policy_decision_ignore(dec);
+            break;
+    }
 
-        case WEBKIT_POLICY_DECISION_TYPE_RESPONSE:
-            res    = 
webkit_response_policy_decision_get_response(WEBKIT_RESPONSE_POLICY_DECISION(dec));
-            status = webkit_uri_response_get_status_code(res);
+    return TRUE;
+}
 
-            if 
(!webkit_response_policy_decision_is_mime_type_supported(WEBKIT_RESPONSE_POLICY_DECISION(dec))
-                    && (SOUP_STATUS_IS_SUCCESSFUL(status) || status == 
SOUP_STATUS_NONE)) {
+static void decide_navigation_action(Client *c, WebKitPolicyDecision *dec)
+{
+    guint button, mod;
+    WebKitNavigationAction *a;
+    WebKitURIRequest *req;
+    const char *uri;
+
+    a   = 
webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(dec));
+    req = webkit_navigation_action_get_request(a);
+    uri = webkit_uri_request_get_uri(req);
+
+    /* Try to handle with specific protocol handler. */
+    if (handler_handle_uri(c->handler, uri)) {
+        webkit_policy_decision_ignore(dec);
+        return;
+    }
 
-                webkit_policy_decision_download(dec);
+    button = webkit_navigation_action_get_mouse_button(a);
+    mod    = webkit_navigation_action_get_modifiers(a);
+    /* Spawn new instance if the new win flag is set on the mode, or the
+     * navigation was triggered by CTRL-LeftMouse or MiddleMouse. */
+    if ((c->mode->flags & FLAG_NEW_WIN)
+        || (webkit_navigation_action_get_navigation_type(a) == 
WEBKIT_NAVIGATION_TYPE_LINK_CLICKED
+            && (button == 2 || (button == 1 && mod & GDK_CONTROL_MASK)))) {
 
-                return TRUE;
+        /* Remove the FLAG_NEW_WIN after the first use. */
+        c->mode->flags &= ~FLAG_NEW_WIN;
+
+        webkit_policy_decision_ignore(dec);
+        spawn_new_instance(uri);
+    } else {
+        webkit_policy_decision_use(dec);
+    }
+}
+
+static void decide_new_window_action(Client *c, WebKitPolicyDecision *dec)
+{
+    WebKitNavigationAction *a;
+    WebKitURIRequest *req;
+
+    a = 
webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(dec));
+
+    switch (webkit_navigation_action_get_navigation_type(a)) {
+        case WEBKIT_NAVIGATION_TYPE_LINK_CLICKED:   /* fallthrough */
+        case WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED: /* fallthrough */
+        case WEBKIT_NAVIGATION_TYPE_BACK_FORWARD:   /* fallthrough */
+        case WEBKIT_NAVIGATION_TYPE_RELOAD:         /* fallthrough */
+        case WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED:
+            /* This is triggered on link click for links with target="_blank".
+             * Maybe it should be configurable if the page is opened as tab or
+             * a new instance. Ignore opening new window if this was started
+             * without user gesture. */
+            if (webkit_navigation_action_is_user_gesture(a)) {
+                req = webkit_navigation_action_get_request(a);
+                if (c->config.prevent_newwindow) {
+                    /* Load the uri into the browser instance. */
+                    vb_load_uri(c, &(Arg){TARGET_CURRENT, 
(char*)webkit_uri_request_get_uri(req)});
+                } else {
+                    spawn_new_instance(webkit_uri_request_get_uri(req));
+                }
             }
-            return FALSE;
+            break;
 
+        case WEBKIT_NAVIGATION_TYPE_OTHER: /* fallthrough */
         default:
-            return FALSE;
+            break;
+    }
+    webkit_policy_decision_ignore(dec);
+}
+
+static void decide_response(Client *c, WebKitPolicyDecision *dec)
+{
+    guint status;
+    WebKitURIResponse *res;
+
+    res    = 
webkit_response_policy_decision_get_response(WEBKIT_RESPONSE_POLICY_DECISION(dec));
+    status = webkit_uri_response_get_status_code(res);
+
+    if 
(webkit_response_policy_decision_is_mime_type_supported(WEBKIT_RESPONSE_POLICY_DECISION(dec)))
 {
+        webkit_policy_decision_use(dec);
+    } else if (SOUP_STATUS_IS_SUCCESSFUL(status) || status == 
SOUP_STATUS_NONE) {
+        webkit_policy_decision_download(dec);
+    } else {
+        webkit_policy_decision_ignore(dec);
     }
 }
 
@@ -1295,13 +1351,13 @@
 
     switch (event) {
         case WEBKIT_LOAD_STARTED:
-            uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
 #ifdef FEATURE_AUTOCMD
-            autocmd_run(c, AU_LOAD_STARTED, uri, NULL);
+            autocmd_run(c, AU_LOAD_STARTED, webkit_web_view_get_uri(webview), 
NULL);
 #endif
             /* update load progress in statusbar */
             c->state.progress = 0;
             vb_statusbar_update(c);
+            uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
             set_title(c, uri);
             /* Make sure hinting is cleared before the new page is loaded.
              * Without that vimb would still be in hinting mode after hinting
@@ -1322,11 +1378,11 @@
              * or aborted the load will be commited. So this seems to be the
              * right place to remove the flag. */
             c->mode->flags &= ~FLAG_IGNORE_FOCUS;
-            uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
 #ifdef FEATURE_AUTOCMD
-            autocmd_run(c, AU_LOAD_COMMITTED, uri, NULL);
+            autocmd_run(c, AU_LOAD_COMMITTED, 
webkit_web_view_get_uri(webview), NULL);
 #endif
             /* save the current URI in register % */
+            uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
             vb_register_add(c, '%', uri);
             /* check if tls is on and the page is trusted */
             if (g_str_has_prefix(uri, "https://";)) {
@@ -1351,7 +1407,7 @@
         case WEBKIT_LOAD_FINISHED:
             uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
 #ifdef FEATURE_AUTOCMD
-            autocmd_run(c, AU_LOAD_FINISHED, uri, NULL);
+            autocmd_run(c, AU_LOAD_FINISHED, webkit_web_view_get_uri(webview), 
NULL);
 #endif
             c->state.progress = 100;
             if (strncmp(uri, "about:", 6)) {
@@ -1478,6 +1534,28 @@
 }
 
 /**
+ * Callback in case JS calls element.webkitRequestFullScreen.
+ */
+static gboolean on_webview_enter_fullscreen(WebKitWebView *webview, Client *c)
+{
+    c->state.is_fullscreen = TRUE;
+    gtk_widget_hide(GTK_WIDGET(c->statusbar.box));
+    gtk_widget_set_visible(GTK_WIDGET(c->input), FALSE);
+    return FALSE;
+}
+
+/**
+ * Callback to restore the window state after entering fullscreen.
+ */
+static gboolean on_webview_leave_fullscreen(WebKitWebView *webview, Client *c)
+{
+    c->state.is_fullscreen = FALSE;
+    gtk_widget_show(GTK_WIDGET(c->statusbar.box));
+    gtk_widget_set_visible(GTK_WIDGET(c->input), TRUE);
+    return FALSE;
+}
+
+/**
  * Callback for window ::delete-event signal which is emitted if a user
  * requests that a toplevel window is closed. The default handler for this
  * signal destroys the window. Returns TRUE to stop other handlers from being
@@ -1677,7 +1755,7 @@
     vb_mode_add('p', pass_enter, pass_leave, pass_keypress, NULL);
 
     /* Prepare the style provider to be used for the clients and completion. */
-    vb.style_provider = gtk_css_provider_get_default();
+    vb.style_provider = gtk_css_provider_new();
 }
 
 /**
@@ -1807,6 +1885,8 @@
         "signal::ready-to-show", G_CALLBACK(on_webview_ready_to_show), c,
         "signal::web-process-crashed", 
G_CALLBACK(on_webview_web_process_crashed), c,
         "signal::authenticate", G_CALLBACK(on_webview_authenticate), c,
+        "signal::enter-fullscreen", G_CALLBACK(on_webview_enter_fullscreen), c,
+        "signal::leave-fullscreen", G_CALLBACK(on_webview_leave_fullscreen), c,
         NULL
     );
 
@@ -1906,10 +1986,11 @@
     gboolean ver = FALSE, buginfo = FALSE;
 
     GOptionEntry opts[] = {
-        {"embed", 'e', 0, G_OPTION_ARG_STRING, &winid, "Reparents to window 
specified by xid", NULL},
         {"config", 'c', 0, G_OPTION_ARG_FILENAME, &vb.configfile, "Custom 
configuration file", NULL},
+        {"embed", 'e', 0, G_OPTION_ARG_STRING, &winid, "Reparents to window 
specified by xid", NULL},
         {"profile", 'p', 0, G_OPTION_ARG_CALLBACK, 
(GOptionArgFunc*)profileOptionArgFunc, "Profile name", NULL},
         {"version", 'v', 0, G_OPTION_ARG_NONE, &ver, "Print version", NULL},
+        {"no-maximize", 0, 0, G_OPTION_ARG_NONE, &vb.no_maximize, "Do no 
attempt to maximize window", NULL},
         {"bug-info", 0, 0, G_OPTION_ARG_NONE, &buginfo, "Print used library 
versions", NULL},
         {NULL}
     };
@@ -1923,12 +2004,12 @@
     }
 
     if (ver) {
-        printf("%s, version %s\n\n", PROJECT, VERSION);
+        printf("%s, version %s\n", PROJECT, VERSION);
         return EXIT_SUCCESS;
     }
 
     if (buginfo) {
-        printf("Commit:          %s\n", COMMIT);
+        printf("Version:         %s\n", VERSION);
         printf("WebKit compile:  %d.%d.%d\n",
                 WEBKIT_MAJOR_VERSION,
                 WEBKIT_MINOR_VERSION,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/main.h new/vimb-3.4.0/src/main.h
--- old/vimb-3.3.0/src/main.h   2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/main.h   2019-03-26 23:47:03.000000000 +0100
@@ -171,6 +171,7 @@
     GList               *downloads;
     guint               progress;
     WebKitHitTestResult *hit_test_result;
+    gboolean            is_fullscreen;
 
     struct {
         gboolean    active;         /* indicate if there is a active search */
@@ -234,6 +235,7 @@
         guint                   scrollstep;
         gboolean                input_autohide;
         gboolean                incsearch;
+        gboolean                prevent_newwindow;
         guint                   default_zoom;   /* default zoom level in 
percent */
         Shortcut                *shortcuts;
     } config;
@@ -266,6 +268,7 @@
         guint   closed_max;
     } config;
     GtkCssProvider *style_provider;
+    gboolean    no_maximize;
 };
 
 gboolean vb_download_set_destination(Client *c, WebKitDownload *download,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/map.c new/vimb-3.4.0/src/map.c
--- old/vimb-3.3.0/src/map.c    2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/map.c    2019-03-26 23:47:03.000000000 +0100
@@ -1,7 +1,7 @@
 /**
  * vimb - a webkit based vim like browser.
  *
- * Copyright (C) 2012-2018 Daniel Carl
+ * Copyright (C) 2012-2019 Daniel Carl
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,6 +36,10 @@
 static void showcmd(Client *c, int ch);
 static char *transchar(int c);
 static int utf_char2bytes(guint c, guchar *buf);
+static void queue_event(GdkEventKey *e);
+static void process_events(void);
+static void free_events(void);
+static void process_event(GdkEventKey* event);
 
 extern struct Vimb vb;
 
@@ -97,6 +101,12 @@
     {"<F12>",   5, CSI_STR "F2", 3},
 };
 
+/* this is only to queue GDK key events, in order to later send them if the 
map didn't match */
+static struct {
+    GSList   *list;       /* queue holding submitted events */
+    gboolean processing; /* whether or not events are processing */
+} events = {0};
+
 void map_init(Client *c)
 {
     c->map.queue = g_string_sized_new(50);
@@ -324,6 +334,11 @@
  */
 gboolean on_map_keypress(GtkWidget *widget, GdkEventKey* event, Client *c)
 {
+    if (events.processing) {
+        /* events are processing, pass all keys unmodified */
+        return FALSE;
+    }
+
     guint state  = event->state;
     guint keyval = event->keyval;
     guchar string[32];
@@ -362,12 +377,25 @@
     c->state.typed         = TRUE;
     c->state.processed_key = TRUE;
 
-    map_handle_keys(c, string, len, TRUE);
+    queue_event(event);
+
+    MapState res = map_handle_keys(c, string, len, true);
+
+    if (res != MAP_AMBIGUOUS) {
+        if (!c->state.processed_key) {
+            /* events ready to be consumed */
+            process_events();
+        } else {
+            /* no ambiguous - key processed elsewhere */
+            free_events();
+        }
+    }
 
     /* reset the typed flag */
     c->state.typed = FALSE;
 
-    return c->state.processed_key;
+    /* prevent input from going to GDK - input is sent via process_events(); */
+    return TRUE;
 }
 
 /**
@@ -476,6 +504,9 @@
     /* signalize the timeout to the key handler */
     map_handle_keys(c, (guchar*)"", 0, TRUE);
 
+    /* consume any unprocessed events */
+    process_events();
+
     /* we return TRUE to not automatically remove the resource - this is
      * required to prevent critical error when we remove the source in
      * map_handle_keys where we don't know if the timeout was called or not */
@@ -657,3 +688,44 @@
     buf[5] = 0x80 + (c & 0x3f);
     return 6;
 }
+
+/**
+ * Append an event into the queue.
+ */
+static void queue_event(GdkEventKey *e)
+{
+    events.list = g_slist_append(events.list, gdk_event_copy((GdkEvent*)e));
+}
+
+/**
+ * Process events in the queue, sending the key events to GDK.
+ */
+static void process_events(void)
+{
+    for (GSList *l = events.list; l != NULL; l = l->next) {
+        process_event((GdkEventKey*)l->data);
+        /* TODO take into account qk mapped key? */
+    }
+    free_events();
+}
+
+/**
+ * Clear the events list and free the allocated memory.
+ */
+static void free_events(void)
+{
+    if (events.list) {
+        g_slist_free_full(events.list, (GDestroyNotify)gdk_event_free);
+        events.list = NULL;
+    }
+}
+
+static void process_event(GdkEventKey* event)
+{
+    if (event) {
+        /* signal not to queue other events */
+        events.processing = TRUE;
+        gtk_main_do_event((GdkEvent*)event);
+        events.processing = FALSE;
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/normal.c new/vimb-3.4.0/src/normal.c
--- old/vimb-3.3.0/src/normal.c 2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/normal.c 2019-03-26 23:47:03.000000000 +0100
@@ -339,6 +339,16 @@
 
 static VbResult normal_clear_input(Client *c, const NormalCmdInfo *info)
 {
+    /* If an element requested the fullscreen - the <esc> shoudl cause to
+     * leave this fullscreen mode. */
+    if (c->state.is_fullscreen) {
+        /* Unset the processed_key to indicate that the <esc> was not handled
+         * by us and letting the event bubble up. So that webkit handles the
+         * key for us to leave the fullscreen mode. */
+        c->state.processed_key = FALSE;
+        return RESULT_COMPLETE;
+    }
+
     gtk_widget_grab_focus(GTK_WIDGET(c->webview));
 
     /* Clear the inputbox and change the style to normal to reset also the
@@ -765,7 +775,7 @@
 
     data = webkit_web_resource_get_data_finish(resource, res, &length, NULL);
     if (data) {
-        text = g_strndup(data, length);
+        text = g_strndup((gchar*)data, length);
         command_spawn_editor(c, &((Arg){0, (char *)text}), NULL, NULL);
         g_free(data);
         g_free(text);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/scripts/hints.js 
new/vimb-3.4.0/src/scripts/hints.js
--- old/vimb-3.3.0/src/scripts/hints.js 2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/scripts/hints.js 2019-03-26 23:47:03.000000000 +0100
@@ -173,13 +173,10 @@
                 /* create the hint label with number/letters */
                 rect  = e.getClientRects()[0];
                 label = labelTmpl.cloneNode(false);
-                label.setAttribute(
-                    "style", [
-                        "display:none;",
-                        "left:", rect.left, "px;",
-                        "top:", rect.top, "px;"
-                    ].join("")
-                );
+
+                label.style.display = "none";
+                label.style.left    = rect.left + "px";
+                label.style.top     = rect.top + "px";
 
                 /* if hinted element is an image - show title or alt of the 
image in hint label */
                 /* this allows to see how to filter for the image */
@@ -226,7 +223,10 @@
             /* append the fragment to the document */
             var hDiv = doc.createElement("div");
             hDiv.setAttribute(attr, "container");
-            hDiv.setAttribute("style", 
"position:fixed;top:0;left:0;z-index:225000;");
+            hDiv.style.position = "fixed";
+            hDiv.style.top      = "0";
+            hDiv.style.left     = "0";
+            hDiv.style.zIndex   = "225000";
             hDiv.appendChild(fragment);
             if (doc.body) {
                 doc.body.appendChild(hDiv);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/setting.c new/vimb-3.4.0/src/setting.c
--- old/vimb-3.3.0/src/setting.c        2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/setting.c        2019-03-26 23:47:03.000000000 +0100
@@ -20,6 +20,7 @@
 #include <glib.h>
 #include <string.h>
 
+#include "../version.h"
 #include "completion.h"
 #include "config.h"
 #include "ext-proxy.h"
@@ -53,9 +54,7 @@
 static int default_zoom(Client *c, const char *name, DataType type, void 
*value, void *data);
 static int fullscreen(Client *c, const char *name, DataType type, void *value, 
void *data);
 static int gui_style(Client *c, const char *name, DataType type, void *value, 
void *data);
-#if WEBKIT_CHECK_VERSION (2, 16, 0)
 static int hardware_acceleration_policy(Client *c, const char *name, DataType 
type, void *value, void *data);
-#endif
 static int input_autohide(Client *c, const char *name, DataType type, void 
*value, void *data);
 static int internal(Client *c, const char *name, DataType type, void *value, 
void *data);
 static int headers(Client *c, const char *name, DataType type, void *value, 
void *data);
@@ -77,16 +76,12 @@
     gboolean on = TRUE, off = FALSE;
 
     c->config.settings = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, 
(GDestroyNotify)setting_free);
-    setting_add(c, "user-agent", TYPE_CHAR, &"Mozilla/5.0 (X11; Linux x86_64) 
AppleWebKit/604.1 (KHTML, like Gecko) Version/11.0 Safari/604.1 " PROJECT "/" 
VERSION, webkit, 0, "user-agent");
+    setting_add(c, "user-agent", TYPE_CHAR, &"Mozilla/5.0 (X11; Linux x86_64) 
AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Safari/605.1.15 " PROJECT 
"/" VERSION, webkit, 0, "user-agent");
     /* TODO use the real names for webkit settings */
     i = 14;
     setting_add(c, "accelerated-2d-canvas", TYPE_BOOLEAN, &off, webkit, 0, 
"enable-accelerated-2d-canvas");
-#if WEBKIT_CHECK_VERSION (2, 10, 0)
     setting_add(c, "allow-file-access-from-file-urls", TYPE_BOOLEAN, &off, 
webkit, 0, "allow-file-access-from-file-urls");
-#endif
-#if WEBKIT_CHECK_VERSION (2, 14, 0)
     setting_add(c, "allow-universal-access-from-file-urls", TYPE_BOOLEAN, 
&off, webkit, 0, "allow-universal-access-from-file-urls");
-#endif
     setting_add(c, "caret", TYPE_BOOLEAN, &off, webkit, 0, 
"enable-caret-browsing");
     setting_add(c, "cursiv-font", TYPE_CHAR, &"serif", webkit, 0, 
"cursive-font-family");
     setting_add(c, "default-charset", TYPE_CHAR, &"utf-8", webkit, 0, 
"default-charset");
@@ -95,9 +90,7 @@
     i = SETTING_DEFAULT_FONT_SIZE;
     setting_add(c, "font-size", TYPE_INTEGER, &i, webkit, 0, 
"default-font-size");
     setting_add(c, "frame-flattening", TYPE_BOOLEAN, &off, webkit, 0, 
"enable-frame-flattening");
-#if WEBKIT_CHECK_VERSION (2, 16, 0)
     setting_add(c, "hardware-acceleration-policy", TYPE_CHAR, &"ondemand", 
hardware_acceleration_policy, FLAG_NODUP, NULL);
-#endif
     setting_add(c, "header", TYPE_CHAR, &"", headers, FLAG_LIST|FLAG_NODUP, 
"header");
     i = 1000;
     setting_add(c, "hint-timeout", TYPE_INTEGER, &i, NULL, 0, NULL);
@@ -121,6 +114,7 @@
     setting_add(c, "monospace-font-size", TYPE_INTEGER, &i, webkit, 0, 
"default-monospace-font-size");
     setting_add(c, "offline-cache", TYPE_BOOLEAN, &on, webkit, 0, 
"enable-offline-web-application-cache");
     setting_add(c, "plugins", TYPE_BOOLEAN, &on, webkit, 0, "enable-plugins");
+    setting_add(c, "prevent-newwindow", TYPE_BOOLEAN, &off, internal, 0, 
&c->config.prevent_newwindow);
     setting_add(c, "print-backgrounds", TYPE_BOOLEAN, &on, webkit, 0, 
"print-backgrounds");
     setting_add(c, "private-browsing", TYPE_BOOLEAN, &off, webkit, 0, 
"enable-private-browsing");
     setting_add(c, "sans-serif-font", TYPE_CHAR, &"sans-serif", webkit, 0, 
"sans-serif-font-family");
@@ -555,7 +549,6 @@
     return CMD_SUCCESS;
 }
 
-#if WEBKIT_CHECK_VERSION (2, 16, 0)
 static int hardware_acceleration_policy(Client *c, const char *name, DataType 
type, void *value, void *data)
 {
     WebKitSettings *settings = webkit_web_view_get_settings(c->webview);
@@ -573,7 +566,6 @@
 
     return CMD_SUCCESS;
 }
-#endif
 
 /**
  * Allow to set user defined http headers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/src/util.c new/vimb-3.4.0/src/util.c
--- old/vimb-3.3.0/src/util.c   2018-11-06 23:27:25.000000000 +0100
+++ new/vimb-3.4.0/src/util.c   2019-03-26 23:47:03.000000000 +0100
@@ -827,16 +827,24 @@
 {
     SoupURI *uri;
     char *sanitized_uri;
+    char *for_display;
+
+#if WEBKIT_CHECK_VERSION(2, 24, 0)
+    for_display = webkit_uri_for_display(uri_str);
+#else
+    for_display = g_strdup(uri_str);
+#endif
 
     /* Sanitize the uri only in case there is a @ which might be the indicator
      * for credentials used in uri. */
-    if (!strchr(uri_str, '@')) {
-        return g_strdup(uri_str);
+    if (!strchr(for_display, '@')) {
+        return for_display;
     }
 
-    uri = soup_uri_new(uri_str);
+    uri           = soup_uri_new(for_display);
     sanitized_uri = soup_uri_to_string(uri, FALSE);
     soup_uri_free(uri);
+    g_free(for_display);
 
     return sanitized_uri;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/tests/manual/dummy.html 
new/vimb-3.4.0/tests/manual/dummy.html
--- old/vimb-3.3.0/tests/manual/dummy.html      1970-01-01 01:00:00.000000000 
+0100
+++ new/vimb-3.4.0/tests/manual/dummy.html      2019-03-26 23:47:03.000000000 
+0100
@@ -0,0 +1,10 @@
+<html>
+<head>
+<title>Dummy Page</title>
+</head>
+<body>
+Dummy Page
+</body>
+</html>
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/tests/manual/js-window-close.html 
new/vimb-3.4.0/tests/manual/js-window-close.html
--- old/vimb-3.3.0/tests/manual/js-window-close.html    1970-01-01 
01:00:00.000000000 +0100
+++ new/vimb-3.4.0/tests/manual/js-window-close.html    2019-03-26 
23:47:03.000000000 +0100
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>JS Window Close</title>
+</head>
+<body>
+Click on following link should close the window without crashing.<br>
+<a href="#" onclick="window.close()">Close this window</a>
+</body>
+</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vimb-3.3.0/tests/manual/window-open.html 
new/vimb-3.4.0/tests/manual/window-open.html
--- old/vimb-3.3.0/tests/manual/window-open.html        1970-01-01 
01:00:00.000000000 +0100
+++ new/vimb-3.4.0/tests/manual/window-open.html        2019-03-26 
23:47:03.000000000 +0100
@@ -0,0 +1,21 @@
+<html>
+<head>
+<title>Window open</title>
+</head>
+<body>
+    <p>
+        Enable <code>set prevent-newwindow=on</code><br/>
+        Following link should be opened into current window.<br/><br/>
+        <a href="./dummy.html" target="_new">target="_new"</a><br/>
+        <a href="./dummy.html" target="_blank">target="_blank"</a><br/>
+        <a href="javascript:window.open('./dummy.html', 
'winname')">javascript:window-open</a><br/>
+        <a href="#" onclick="window.open('./dummy.html', 'winname')">onclick 
window-open</a><br/>
+    </p>
+    <p>
+        This <a href="./dummy.html" target="foo">target iframe link</a> should
+        load into the iframe.<br/>
+        <iframe src="" name="foo"></iframe>
+    </p>
+</body>
+</html>
+

++++++ vim-3.4.0-fixbuild.patch ++++++
>From 0eda3ec2ac78577a08ace4c18cd9e912a56609e6 Mon Sep 17 00:00:00 2001
From: Patrick Steinhardt <[email protected]>
Date: Wed, 27 Mar 2019 07:47:30 +0100
Subject: [PATCH] Makefile: fix compilation if source is not in a git repo

To make the version available, the Makefile creates a "version.h"
header. This file will either contain the output of `git describe
--tags` or a fallback value that is declared inside the Makefile
itself.

This logic is broken as there is a hard dependcy on the
".git/index" file. The intent here is to regenerate the header
file whenever there is any change to the git repo itself. But in
case where vimb is for example being compiled from a tarball,
there will be no git index at all, leading to an error "No rule
to make target '.git/index'".

Fix the issue by using `$(wildcard .git/index)`. In case the file
exists, we will pick it up as a dependency of "version.h" and
thus recompile it whenever the git repo changes. Otherwise, the
wildcard won't match and we will fall back to just using the
declared value of the "version" variable.
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index fa75f109..de5c4d5d 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ include config.mk
 
 all: version.h src.subdir-all
 
-version.h: Makefile .git/index
+version.h: Makefile $(wildcard .git/index)
        @echo "create $@"
        $(Q)v="$$(git describe --tags 2>/dev/null)"; \
        echo "#define VERSION \"$${v:-$(version)}\"" > $@

Reply via email to