summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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