From 7bb4700352ec76aee1b7e8f41e50e8192dfc547d Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Thu, 18 Aug 2016 23:37:39 +0200 Subject: [PATCH 001/205] Return None when parent is a null webelement --- qutebrowser/browser/webkit/webkitelem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py index b0ee4f89c..6ce4e9292 100644 --- a/qutebrowser/browser/webkit/webkitelem.py +++ b/qutebrowser/browser/webkit/webkitelem.py @@ -148,7 +148,7 @@ class WebKitElement(webelem.AbstractWebElement): def parent(self): self._check_vanished() elem = self._elem.parent() - if elem is None: + if elem is None or elem.isNull(): return None return WebKitElement(elem, tab=self._tab) From ed91e1d4c8ae0baef240a83fd5a0dc9dda3812fb Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Sun, 16 Oct 2016 17:02:16 +0200 Subject: [PATCH 002/205] Implement __setitem__ in WebEngineElement --- qutebrowser/browser/webengine/webengineelem.py | 5 ++++- qutebrowser/javascript/webelem.js | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py index cb1e973b0..39489eb9a 100644 --- a/qutebrowser/browser/webengine/webengineelem.py +++ b/qutebrowser/browser/webengine/webengineelem.py @@ -47,7 +47,10 @@ class WebEngineElement(webelem.AbstractWebElement): return attrs[key] def __setitem__(self, key, val): - log.stub() + self._js_dict['attributes'][key] = val + js_code = javascript.assemble('webelem', 'set_attribute', self._id, + key, val) + self._tab.run_js_async(js_code) def __delitem__(self, key): log.stub() diff --git a/qutebrowser/javascript/webelem.js b/qutebrowser/javascript/webelem.js index 3e38c8adb..6a5e1425f 100644 --- a/qutebrowser/javascript/webelem.js +++ b/qutebrowser/javascript/webelem.js @@ -155,5 +155,9 @@ window._qutebrowser.webelem = (function() { return serialize_elem(elem); }; + funcs.set_attribute = function(id, name, value) { + elements[id].setAttribute(name, value); + }; + return funcs; })(); From 97493b71ad060f59ddd94b8d9293fcfabf9dc512 Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Mon, 17 Oct 2016 15:23:22 +0200 Subject: [PATCH 003/205] Add test for null element --- tests/end2end/features/hints.feature | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/end2end/features/hints.feature b/tests/end2end/features/hints.feature index d0622b9c0..0f44adff4 100644 --- a/tests/end2end/features/hints.feature +++ b/tests/end2end/features/hints.feature @@ -180,6 +180,11 @@ Feature: Using hints - data/hints/iframe_target.html - data/hello.txt (active) + Scenario: Clicking on iframe with :hint all current + When I open data/hints/iframe.html + And I hint with args "all current" and follow a + Then no crash should happen + ### hints -> auto-follow-timeout @not_osx From b5bd1f8b3fb7e227ba9ca9e52c9342976b4b8452 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 17 Oct 2016 22:29:26 +0200 Subject: [PATCH 004/205] Regenerate authors --- README.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.asciidoc b/README.asciidoc index 86743bc71..0afb5eb47 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -160,9 +160,9 @@ Contributors, sorted by the number of commits in descending order: * Patric Schmitz * Tarcisio Fedrizzi * Claude +* Kevin Velghe * Corentin Julé * meles5 -* Kevin Velghe * Philipp Hansch * Daniel Karbach * Panagiotis Ktistakis From 59536828a15ac04846ca799e2d9f1182ac38e1b5 Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Sun, 16 Oct 2016 16:50:11 +0200 Subject: [PATCH 005/205] Implement hint target "current" for webengine --- qutebrowser/browser/webelem.py | 16 +--------------- qutebrowser/browser/webengine/webengineelem.py | 11 +++++------ qutebrowser/browser/webkit/webkitelem.py | 15 ++++++++++++++- qutebrowser/javascript/webelem.js | 14 ++++++++++++++ 4 files changed, 34 insertions(+), 22 deletions(-) diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py index 7f7aab1dd..2903aec72 100644 --- a/qutebrowser/browser/webelem.py +++ b/qutebrowser/browser/webelem.py @@ -162,11 +162,6 @@ class AbstractWebElement(collections.abc.MutableMapping): """Insert the given text into the element.""" raise NotImplementedError - def parent(self): - """Get the parent element of this element.""" - # FIXME:qtwebengine get rid of this? - raise NotImplementedError - def rect_on_view(self, *, elem_geometry=None, no_js=False): """Get the geometry of the element relative to the webview. @@ -294,16 +289,7 @@ class AbstractWebElement(collections.abc.MutableMapping): def remove_blank_target(self): """Remove target from link.""" - elem = self - for _ in range(5): - if elem is None: - break - tag = elem.tag_name() - if tag == 'a' or tag == 'area': - if elem.get('target', None) == '_blank': - elem['target'] = '_top' - break - elem = elem.parent() + raise NotImplementedError def resolve_url(self, baseurl): """Resolve the URL in the element's src/href attribute. diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py index 39489eb9a..1874389e0 100644 --- a/qutebrowser/browser/webengine/webengineelem.py +++ b/qutebrowser/browser/webengine/webengineelem.py @@ -117,12 +117,6 @@ class WebEngineElement(webelem.AbstractWebElement): js_code = javascript.assemble('webelem', 'insert_text', self._id, text) self._tab.run_js_async(js_code) - def parent(self): - """Get the parent element of this element.""" - # FIXME:qtwebengine get rid of this? - log.stub() - return None - def rect_on_view(self, *, elem_geometry=None, no_js=False): """Get the geometry of the element relative to the webview. @@ -163,3 +157,8 @@ class WebEngineElement(webelem.AbstractWebElement): log.webelem.debug("Couldn't find rectangle for {!r} ({})".format( self, rects)) return QRect() + + def remove_blank_target(self): + js_code = javascript.assemble('webelem', 'remove_blank_target', + self._id) + self._tab.run_js_async(js_code) diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py index 6ce4e9292..717db2cf8 100644 --- a/qutebrowser/browser/webkit/webkitelem.py +++ b/qutebrowser/browser/webkit/webkitelem.py @@ -145,7 +145,8 @@ class WebKitElement(webelem.AbstractWebElement): this.dispatchEvent(event); """.format(javascript.string_escape(text))) - def parent(self): + def _parent(self): + """Get the parent element of this element.""" self._check_vanished() elem = self._elem.parent() if elem is None or elem.isNull(): @@ -283,6 +284,18 @@ class WebKitElement(webelem.AbstractWebElement): visible_in_frame = visible_on_screen return all([visible_on_screen, visible_in_frame]) + def remove_blank_target(self): + elem = self + for _ in range(5): + if elem is None: + break + tag = elem.tag_name() + if tag == 'a' or tag == 'area': + if elem.get('target', None) == '_blank': + elem['target'] = '_top' + break + elem = elem._parent() + def get_child_frames(startframe): """Get all children recursively of a given QWebFrame. diff --git a/qutebrowser/javascript/webelem.js b/qutebrowser/javascript/webelem.js index 6a5e1425f..602e6b261 100644 --- a/qutebrowser/javascript/webelem.js +++ b/qutebrowser/javascript/webelem.js @@ -159,5 +159,19 @@ window._qutebrowser.webelem = (function() { elements[id].setAttribute(name, value); }; + funcs.remove_blank_target = function(id) { + var elem = elements[id]; + while (elem !== null) { + var tag = elem.tagName.toLowerCase(); + if (tag === "a" || tag === "area") { + if (elem.getAttribute("target") === "_blank") { + elem.setAttribute("target", "_top"); + } + break; + } + elem = elem.parentElement; + } + }; + return funcs; })(); From 2ae9f14d22ebb38e088ac603245e948599196405 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 18 Oct 2016 06:22:45 +0200 Subject: [PATCH 006/205] Add pylint disable --- qutebrowser/browser/webkit/webkitelem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py index 717db2cf8..93b58bd34 100644 --- a/qutebrowser/browser/webkit/webkitelem.py +++ b/qutebrowser/browser/webkit/webkitelem.py @@ -294,7 +294,7 @@ class WebKitElement(webelem.AbstractWebElement): if elem.get('target', None) == '_blank': elem['target'] = '_top' break - elem = elem._parent() + elem = elem._parent() # pylint: disable=protected-access def get_child_frames(startframe): From de2f054112e0761678e9a427208d7c11258b1732 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 18 Oct 2016 06:22:59 +0200 Subject: [PATCH 007/205] Update authors --- README.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.asciidoc b/README.asciidoc index 0afb5eb47..32a72baef 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -159,8 +159,8 @@ Contributors, sorted by the number of commits in descending order: * Joel Torstensson * Patric Schmitz * Tarcisio Fedrizzi -* Claude * Kevin Velghe +* Claude * Corentin Julé * meles5 * Philipp Hansch From cd3cf3620bcaa3aa6269389535371655531cd820 Mon Sep 17 00:00:00 2001 From: Spreadyy Date: Tue, 18 Oct 2016 09:39:01 +0200 Subject: [PATCH 008/205] qute css fix --- www/qute.css | 1 + 1 file changed, 1 insertion(+) diff --git a/www/qute.css b/www/qute.css index a8da48e92..d8ec896bd 100644 --- a/www/qute.css +++ b/www/qute.css @@ -136,6 +136,7 @@ code { padding: 10px 10px; background-color: #DDDDDD; border-radius: 4px; + overflow-x: scroll; } table td { From d853cdc120a3d62c13eb49375679fa8168605528 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 18 Oct 2016 10:06:18 +0200 Subject: [PATCH 009/205] pyroma requirements: Update pyroma to 2.1 --- misc/requirements/requirements-pyroma.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt index 0741454d3..2d0a33303 100644 --- a/misc/requirements/requirements-pyroma.txt +++ b/misc/requirements/requirements-pyroma.txt @@ -1,4 +1,4 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py docutils==0.12 -pyroma==2.0.2 +pyroma==2.1 From 182368fda4b2e32020d9a4cf39608e24446fbfb3 Mon Sep 17 00:00:00 2001 From: Spreadyy Date: Tue, 18 Oct 2016 11:44:54 +0200 Subject: [PATCH 010/205] style changes --- www/qute.css | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/www/qute.css b/www/qute.css index d8ec896bd..9fea4abc5 100644 --- a/www/qute.css +++ b/www/qute.css @@ -69,6 +69,8 @@ body { .sect1 { padding: 10px 40px; + margin: 0 auto; + max-width: 1000px; } .sect2 { @@ -136,7 +138,29 @@ code { padding: 10px 10px; background-color: #DDDDDD; border-radius: 4px; - overflow-x: scroll; + overflow-x: auto; +} + +/*Display table as something that is not a table*/ +.admonitionblock table, +.admonitionblock tbody, +.admonitionblock tr, +.admonitionblock td { + display: block; +} + +.admonitionblock td { + padding: 0; +} + +.admonitionblock .title { + color: #0A396E; + font-size: bold; +} + +.admonitionblock .content { + padding-left: 10px; + border-left: 1px solid #ccc; } table td { @@ -175,7 +199,7 @@ table td { } - +