summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-01-31 22:38:31 +0100
committerFlorian Bruhin <git@the-compiler.org>2015-02-11 23:12:32 +0100
commit51549fc17f4370742a6c4799b89f836bbd312d1e (patch)
treeeee82e3a788a051c4e5ef9c915ed109cc519941e
parent38a236a31a6c3385019d8ae76a3e96985727db4f (diff)
downloadqutebrowser-51549fc17f4370742a6c4799b89f836bbd312d1e.tar.gz
qutebrowser-51549fc17f4370742a6c4799b89f836bbd312d1e.zip
Hide adblocked iframes.
We now hide iframes which have been blocked completely instead of displaying an error page in there. Displaying the error page also did break back/forward, e.g. on reddit. Fixes #493.
-rw-r--r--qutebrowser/browser/webpage.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/qutebrowser/browser/webpage.py b/qutebrowser/browser/webpage.py
index 2a89f60d9..9c7eb6864 100644
--- a/qutebrowser/browser/webpage.py
+++ b/qutebrowser/browser/webpage.py
@@ -121,8 +121,17 @@ class BrowserPage(QWebPage):
else:
error_str = info.errorString
if error_str == networkmanager.HOSTBLOCK_ERROR_STRING:
+ # We don't set error_occured in this case.
error_str = "Request blocked by host blocker."
- # we don't set error_occured in this case.
+ main_frame = info.frame.page().mainFrame()
+ if info.frame != main_frame:
+ # Content in an iframe -> Hide the frame so it doesn't use
+ # any space. We can't hide the frame's documentElement
+ # directly though.
+ for elem in main_frame.documentElement().findAll('iframe'):
+ if QUrl(elem.attribute('src')) == info.url:
+ elem.setAttribute('style', 'display: none')
+ return False
else:
self._ignore_load_started = True
self.error_occured = True