summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2014-12-11 18:05:01 +0100
committerFlorian Bruhin <git@the-compiler.org>2014-12-11 18:05:01 +0100
commit4e6cedb1f71ac2a5b2c955f2783e0c45a64a543b (patch)
treec6c0b24add150517bbfe7a14e58b297758074106
parent5eeb89ec86ecaeb3779300c7f37e09f19926f191 (diff)
downloadqutebrowser-4e6cedb1f71ac2a5b2c955f2783e0c45a64a543b.tar.gz
qutebrowser-4e6cedb1f71ac2a5b2c955f2783e0c45a64a543b.zip
Don't treat page load as failed with blocked hosts.
Fixes #315.
-rw-r--r--qutebrowser/browser/webpage.py13
-rw-r--r--qutebrowser/network/networkmanager.py7
2 files changed, 14 insertions, 6 deletions
diff --git a/qutebrowser/browser/webpage.py b/qutebrowser/browser/webpage.py
index 4b9ea5b56..94e6bc46f 100644
--- a/qutebrowser/browser/webpage.py
+++ b/qutebrowser/browser/webpage.py
@@ -117,16 +117,21 @@ class BrowserPage(QWebPage):
info.error))
return False
else:
- self._ignore_load_started = True
- self.error_occured = True
+ error_str = info.errorString
+ if error_str == networkmanager.HOSTBLOCK_ERROR_STRING:
+ error_str = "Request blocked by host blocker."
+ # we don't set error_occured in this case.
+ else:
+ self._ignore_load_started = True
+ self.error_occured = True
log.webview.error("Error while loading {}: {}".format(
- urlstr, info.errorString))
+ urlstr, error_str))
log.webview.debug("Error domain: {}, error code: {}".format(
info.domain, info.error))
title = "Error loading page: {}".format(urlstr)
template = jinja.env.get_template('error.html')
html = template.render( # pylint: disable=maybe-no-member
- title=title, url=urlstr, error=info.errorString, icon='')
+ title=title, url=urlstr, error=error_str, icon='')
errpage.content = html.encode('utf-8')
errpage.encoding = 'utf-8'
return True
diff --git a/qutebrowser/network/networkmanager.py b/qutebrowser/network/networkmanager.py
index 8b6378866..f5379bf1d 100644
--- a/qutebrowser/network/networkmanager.py
+++ b/qutebrowser/network/networkmanager.py
@@ -35,6 +35,9 @@ from qutebrowser.network import qutescheme, networkreply
from qutebrowser.browser import cookies
+HOSTBLOCK_ERROR_STRING = '%HOSTBLOCK%'
+
+
class NetworkManager(QNetworkAccessManager):
"""Our own QNetworkAccessManager.
@@ -228,8 +231,8 @@ class NetworkManager(QNetworkAccessManager):
log.webview.info("Request to {} blocked by host blocker.".format(
req.url().host()))
return networkreply.ErrorNetworkReply(
- req, "Request was blocked by host blocker.",
- QNetworkReply.ContentAccessDenied, self)
+ req, HOSTBLOCK_ERROR_STRING, QNetworkReply.ContentAccessDenied,
+ self)
if config.get('network', 'do-not-track'):
dnt = '1'.encode('ascii')
else: