From 7a8fa5f46eccb45cf5aeea828cff8b89aa46c1e3 Mon Sep 17 00:00:00 2001 From: Jay Kamat Date: Sun, 25 Feb 2018 18:40:16 -0500 Subject: [PATCH] Implement deduplication of searches on webkit --- qutebrowser/browser/webengine/webenginetab.py | 2 +- qutebrowser/browser/webkit/webkittab.py | 8 +++++++- tests/end2end/features/search.feature | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 4c4de14c0..9dc2c3737 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -183,7 +183,7 @@ class WebEngineSearch(browsertab.AbstractSearch): def search(self, text, *, ignore_case='never', reverse=False, result_cb=None): - # When duplicate searching, don't search again (webkit behavior) + # Don't go to next entry on duplicate search if self.text == text and self.search_displayed: log.webview.debug("Ignoring duplicate search request" " for {}".format(text)) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index aa3f5363e..5c038de62 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -146,8 +146,14 @@ class WebKitSearch(browsertab.AbstractSearch): def search(self, text, *, ignore_case='never', reverse=False, result_cb=None): - self.search_displayed = True + # Don't go to next entry on duplicate search + if self.text == text and self.search_displayed: + log.webview.debug("Ignoring duplicate search request" + " for {}".format(text)) + return + self.text = text + self.search_displayed = True self._flags = QWebPage.FindWrapsAroundDocument if self._is_case_sensitive(ignore_case): self._flags |= QWebPage.FindCaseSensitively diff --git a/tests/end2end/features/search.feature b/tests/end2end/features/search.feature index e322b93a2..55d9a98e9 100644 --- a/tests/end2end/features/search.feature +++ b/tests/end2end/features/search.feature @@ -52,7 +52,6 @@ Feature: Searching on a page And I wait for "search didn't find blub" in the log Then the warning "Text 'blub' not found on page!" should be shown - @qtwebkit_skip: Supported by default on qtwebkit Scenario: Searching text duplicates When I run :search foo And I wait for "search found foo" in the log