summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Velghe <kevin@paretje.be>2016-03-31 00:58:19 +0200
committerKevin Velghe <kevin@paretje.be>2016-03-31 00:58:19 +0200
commit0fe0f8454699abaa7aa1fe2b5246114e6a3f8e9c (patch)
tree7e3c0f3871d8867533bb27aaffb10a2cb4410885
parent0432ba68c6431f058a96701515175ee1555b70a2 (diff)
downloadqutebrowser-0fe0f8454699abaa7aa1fe2b5246114e6a3f8e9c.tar.gz
qutebrowser-0fe0f8454699abaa7aa1fe2b5246114e6a3f8e9c.zip
Fix loop and support area tag
It appears the output of qtwebkit has a cycle, so we end in an endless loop. This limits the loop to 5 steps.
-rw-r--r--qutebrowser/browser/webelem.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py
index 1e0e4f186..f56f20a0b 100644
--- a/qutebrowser/browser/webelem.py
+++ b/qutebrowser/browser/webelem.py
@@ -288,8 +288,11 @@ class WebElementWrapper(collections.abc.MutableMapping):
def remove_blank_target(self):
"""Remove target from link."""
elem = self._elem
- while elem is not None:
- if elem.tagName().lower() == 'a':
+ for i in range(5):
+ if elem is None:
+ break
+ tag = elem.tagName().lower()
+ if tag == 'a' or tag == 'area':
if elem.attribute('target') == '_blank':
elem.setAttribute('target', '_top')
break