Merge branch 'EliteTK-navigate-fix'

This commit is contained in:
Florian Bruhin 2017-02-19 20:24:04 +01:00
commit ecf6e02ead
5 changed files with 27 additions and 4 deletions

View File

@ -66,7 +66,8 @@ Fixed
- Fixed showing of keybindings in the :help completion
- Worked around a segfault when opening a URL after a QtWebEngine renderer process crash
- Using :undo or :tab-clone with a view-source:// or chrome:// tab is now prevented, as it segfaults
- `:navigate prev/next` now detects `rel` attributes on `<a>` elements
- `:navigate prev/next` now detects `rel` attributes on `<a>` elements, and
handles multiple `rel` attributes correctly.
- Fixed a crash when hinting with target `userscript` and spawning a non-existing script
v0.9.1

View File

@ -187,6 +187,7 @@ Contributors, sorted by the number of commits in descending order:
* knaggita
* Oliver Caldwell
* Julian Weigt
* Tomasz Kramkowski
* Sebastian Frysztak
* Nikolay Amiantov
* Jonas Schürmann
@ -196,7 +197,6 @@ Contributors, sorted by the number of commits in descending order:
* Julie Engel
* skinnay
* Zach-Button
* Tomasz Kramkowski
* Samuel Walladge
* Peter Rice
* Ismail S

View File

@ -70,11 +70,11 @@ def path_up(url, count):
def _find_prevnext(prev, elems):
"""Find a prev/next element in the given list of elements."""
# First check for <link rel="prev(ious)|next">
rel_values = ('prev', 'previous') if prev else ('next')
rel_values = {'prev', 'previous'} if prev else {'next'}
for e in elems:
if e.tag_name() not in ['link', 'a'] or 'rel' not in e:
continue
if e['rel'] in rel_values:
if set(e['rel'].split(' ')) & rel_values:
log.hints.debug("Found {!r} with rel={}".format(e, e['rel']))
return e

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Navigate</title>
</head>
<body>
<p>Index page</p>
<a href="/data/navigate/prev.html" rel="nofollow prev">bla</a>
<a href="/data/navigate/next.html" rel="nofollow next">blub</a>
</body>
</html>

View File

@ -53,6 +53,16 @@ Feature: Using :navigate
And I run :navigate next
Then data/navigate/next.html should be loaded
Scenario: Navigating to previous page with rel nofollow
When I open data/navigate/rel_nofollow.html
And I run :navigate prev
Then data/navigate/prev.html should be loaded
Scenario: Navigating to next page with rel nofollow
When I open data/navigate/rel_nofollow.html
And I run :navigate next
Then data/navigate/next.html should be loaded
# increment/decrement
Scenario: Incrementing number in URL