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 - Fixed showing of keybindings in the :help completion
- Worked around a segfault when opening a URL after a QtWebEngine renderer process crash - 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 - 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 - Fixed a crash when hinting with target `userscript` and spawning a non-existing script
v0.9.1 v0.9.1

View File

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

View File

@ -70,11 +70,11 @@ def path_up(url, count):
def _find_prevnext(prev, elems): def _find_prevnext(prev, elems):
"""Find a prev/next element in the given list of elements.""" """Find a prev/next element in the given list of elements."""
# First check for <link rel="prev(ious)|next"> # 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: for e in elems:
if e.tag_name() not in ['link', 'a'] or 'rel' not in e: if e.tag_name() not in ['link', 'a'] or 'rel' not in e:
continue 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'])) log.hints.debug("Found {!r} with rel={}".format(e, e['rel']))
return e 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 And I run :navigate next
Then data/navigate/next.html should be loaded 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 # increment/decrement
Scenario: Incrementing number in URL Scenario: Incrementing number in URL