diff options
author | Kevin Velghe <kevin@paretje.be> | 2016-03-31 00:58:19 +0200 |
---|---|---|
committer | Kevin Velghe <kevin@paretje.be> | 2016-03-31 00:58:19 +0200 |
commit | 0fe0f8454699abaa7aa1fe2b5246114e6a3f8e9c (patch) | |
tree | 7e3c0f3871d8867533bb27aaffb10a2cb4410885 | |
parent | 0432ba68c6431f058a96701515175ee1555b70a2 (diff) | |
download | qutebrowser-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.py | 7 |
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 |