From 2700739a3ab46aa7fd82417ab465a3eeef964f2e Mon Sep 17 00:00:00 2001 From: Jan Verbeek Date: Sat, 21 Jan 2017 14:43:50 +0100 Subject: [PATCH 1/2] Strip mailto: when yanking a hint Resolves #61. --- qutebrowser/browser/hints.py | 1 + tests/end2end/data/email_address.html | 11 +++++++++++ tests/end2end/features/hints.feature | 6 ++++++ 3 files changed, 18 insertions(+) create mode 100644 tests/end2end/data/email_address.html diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index b895c7db1..065da7114 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -236,6 +236,7 @@ class HintActions: utils.supports_selection()) urlstr = url.toString(QUrl.FullyEncoded | QUrl.RemovePassword) + urlstr = urlstr.lstrip('mailto:') utils.set_clipboard(urlstr, selection=sel) msg = "Yanked URL to {}: {}".format( diff --git a/tests/end2end/data/email_address.html b/tests/end2end/data/email_address.html new file mode 100644 index 000000000..3c86446ad --- /dev/null +++ b/tests/end2end/data/email_address.html @@ -0,0 +1,11 @@ + + + + + + Email address + + + Email address + + diff --git a/tests/end2end/features/hints.feature b/tests/end2end/features/hints.feature index 8d23d0199..18b36e6e8 100644 --- a/tests/end2end/features/hints.feature +++ b/tests/end2end/features/hints.feature @@ -110,6 +110,12 @@ Feature: Using hints And I hint with args "links yank-primary" and follow a Then the clipboard should contain "http://localhost:(port)/data/hello.txt" + Scenario: Yanking email address to clipboard + When I run :debug-set-fake-clipboard + And I open data/email_address.html + And I hint with args "links yank" and follow a + Then the clipboard should contain "nobody" + Scenario: Rapid hinting When I open data/hints/rapid.html in a new tab And I run :tab-only From 9845cbbd81c0d2cdef2a83196534fcf8a847afa5 Mon Sep 17 00:00:00 2001 From: Jan Verbeek Date: Sat, 21 Jan 2017 23:19:15 +0100 Subject: [PATCH 2/2] Remove mailto: scheme properly --- qutebrowser/browser/hints.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 065da7114..ece6ed89e 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -235,8 +235,10 @@ class HintActions: sel = (context.target == Target.yank_primary and utils.supports_selection()) - urlstr = url.toString(QUrl.FullyEncoded | QUrl.RemovePassword) - urlstr = urlstr.lstrip('mailto:') + flags = QUrl.FullyEncoded | QUrl.RemovePassword + if url.scheme() == 'mailto': + flags |= QUrl.RemoveScheme + urlstr = url.toString(flags) utils.set_clipboard(urlstr, selection=sel) msg = "Yanked URL to {}: {}".format(