From 0fe0f8454699abaa7aa1fe2b5246114e6a3f8e9c Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Thu, 31 Mar 2016 00:58:19 +0200 Subject: [PATCH] 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. --- qutebrowser/browser/webelem.py | 7 +++++-- 1 file 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