From fc95fdd59327dfa8de270172e9686217923a7450 Mon Sep 17 00:00:00 2001
From: Florian Bruhin <git@the-compiler.org>
Date: Thu, 14 Jun 2018 14:28:07 +0200
Subject: [PATCH] Update QtWebKit user stylesheets when URL changes

---
 qutebrowser/browser/webkit/webkitsettings.py | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/qutebrowser/browser/webkit/webkitsettings.py b/qutebrowser/browser/webkit/webkitsettings.py
index 3ed9fdf46..187cb4eab 100644
--- a/qutebrowser/browser/webkit/webkitsettings.py
+++ b/qutebrowser/browser/webkit/webkitsettings.py
@@ -29,7 +29,7 @@ import os.path
 from PyQt5.QtGui import QFont
 from PyQt5.QtWebKit import QWebSettings
 
-from qutebrowser.config import config, websettings
+from qutebrowser.config import config, websettings, configutils
 from qutebrowser.config.websettings import AttributeInfo as Attr
 from qutebrowser.utils import standarddir, urlutils
 from qutebrowser.browser import shared
@@ -120,10 +120,13 @@ class WebKitSettings(websettings.AbstractSettings):
         QWebSettings.FantasyFont: QFont.Fantasy,
     }
 
-    def _set_user_stylesheet(self):
+    def _set_user_stylesheet(self, url=None):
         """Set the generated user-stylesheet."""
-        stylesheet = shared.get_user_stylesheet().encode('utf-8')
-        url = urlutils.data_url('text/css;charset=utf-8', stylesheet)
+        stylesheet = shared.get_user_stylesheet(url=url)
+        if stylesheet is configutils.UNSET:
+            return
+        url = urlutils.data_url('text/css;charset=utf-8',
+                                stylesheet.encode('utf-8'))
         self._settings.setUserStyleSheetUrl(url)
 
     def _set_cookie_accept_policy(self):
@@ -152,6 +155,10 @@ class WebKitSettings(websettings.AbstractSettings):
         else:
             super().update_setting(option)
 
+    def update_for_url(self, url):
+        super().update_for_url(url)
+        self._set_user_stylesheet(url)
+
     def init_settings(self):
         super().init_settings()
         self._set_user_stylesheet()