summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2018-10-07 15:46:40 +0200
committerFlorian Bruhin <me@the-compiler.org>2018-10-07 15:47:44 +0200
commit377b7afb03862e773dce597274dc8f2ea3298986 (patch)
tree9215e6442c35f0fb5c9499b375751d4ccf146446
parentdf354bf5ed7d80ae9f6f0b1189b4310e6d577d16 (diff)
downloadqutebrowser-377b7afb03862e773dce597274dc8f2ea3298986.tar.gz
qutebrowser-377b7afb03862e773dce597274dc8f2ea3298986.zip
Fix crash when closing tab during a search
(cherry picked from commit b130162d56bd5f8d5e0784c6f6efe4c894212722)
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py7
-rw-r--r--tests/end2end/features/search.feature6
2 files changed, 13 insertions, 0 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index b00587bf6..c84c295bd 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -183,6 +183,13 @@ class WebEngineSearch(browsertab.AbstractSearch):
self._pending_searches))
return
+ if sip.isdeleted(self._widget):
+ # This happens when starting a search, and closing the tab
+ # before results arrive.
+ log.webview.debug("Ignoring finished search for deleted "
+ "widget")
+ return
+
found_text = 'found' if found else "didn't find"
if flags:
flag_text = 'with flags {}'.format(debug.qflags_key(
diff --git a/tests/end2end/features/search.feature b/tests/end2end/features/search.feature
index f6c12e98d..8d9d28e78 100644
--- a/tests/end2end/features/search.feature
+++ b/tests/end2end/features/search.feature
@@ -283,3 +283,9 @@ Feature: Searching on a page
Then the following tabs should be open:
- data/iframe_search.html
- data/hello.txt (active)
+
+ Scenario: Closing a tab during a search
+ When I run :open -b about:blank
+ And I run :search a
+ And I run :tab-close
+ Then no crash should happen