[GTK][Wayland] UI process crash when closing the window
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2018 06:08:51 +0000 (06:08 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2018 06:08:51 +0000 (06:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=185818

Reviewed by Michael Catanzaro.

This happens when a page containing a text field is loaded but the focus remains in the url bar when the window
is closed. This is because we are sending a notify-in to the IM context, but the focus is still in the URL
bar. That confuses the wayland input method manager that tries to free the text of the web view IM context that has
already been deleted.

* UIProcess/gtk/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::setEnabled): Only send notify-in if the view is actually focused.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232049 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/gtk/InputMethodFilter.cpp

index b77324b..232ed7d 100644 (file)
@@ -1,3 +1,18 @@
+2018-05-21  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK][Wayland] UI process crash when closing the window
+        https://bugs.webkit.org/show_bug.cgi?id=185818
+
+        Reviewed by Michael Catanzaro.
+
+        This happens when a page containing a text field is loaded but the focus remains in the url bar when the window
+        is closed. This is because we are sending a notify-in to the IM context, but the focus is still in the URL
+        bar. That confuses the wayland input method manager that tries to free the text of the web view IM context that has
+        already been deleted.
+
+        * UIProcess/gtk/InputMethodFilter.cpp:
+        (WebKit::InputMethodFilter::setEnabled): Only send notify-in if the view is actually focused.
+
 2018-05-21  Ryosuke Niwa  <rniwa@webkit.org>
 
         Remove unused and no-op WKContextSetCookieStorageDirectory
index 7019073..2f03d9d 100644 (file)
@@ -89,7 +89,7 @@ void InputMethodFilter::setEnabled(bool enabled)
     if (!enabled)
         notifyFocusedOut();
     m_enabled = enabled;
-    if (enabled)
+    if (enabled && m_page->isViewFocused())
         notifyFocusedIn();
 }