Title: [206915] trunk/Source/WebKit2
Revision
206915
Author
commit-qu...@webkit.org
Date
2016-10-07 09:39:21 -0700 (Fri, 07 Oct 2016)

Log Message

Unreviewed, rolling out r206909.
https://bugs.webkit.org/show_bug.cgi?id=163116

Caused most of  GTK layout tests to crash (Requested by KaL on
#webkit).

Reverted changeset:

"[GTK] UIProcess crashes when using Japanese IM"
https://bugs.webkit.org/show_bug.cgi?id=163011
http://trac.webkit.org/changeset/206909

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (206914 => 206915)


--- trunk/Source/WebKit2/ChangeLog	2016-10-07 16:35:37 UTC (rev 206914)
+++ trunk/Source/WebKit2/ChangeLog	2016-10-07 16:39:21 UTC (rev 206915)
@@ -1,3 +1,17 @@
+2016-10-07  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r206909.
+        https://bugs.webkit.org/show_bug.cgi?id=163116
+
+        Caused most of  GTK layout tests to crash (Requested by KaL on
+        #webkit).
+
+        Reverted changeset:
+
+        "[GTK] UIProcess crashes when using Japanese IM"
+        https://bugs.webkit.org/show_bug.cgi?id=163011
+        http://trac.webkit.org/changeset/206909
+
 2016-10-07  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Network Session: Allow NetworkDataTask decide what to do when override is allowed for a download

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (206914 => 206915)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2016-10-07 16:35:37 UTC (rev 206914)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2016-10-07 16:39:21 UTC (rev 206915)
@@ -674,17 +674,17 @@
     return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->focus_out_event(widget, event);
 }
 
-static gboolean webkitWebViewBaseKeyPressEvent(GtkWidget* widget, GdkEventKey* keyEvent)
+static gboolean webkitWebViewBaseKeyPressEvent(GtkWidget* widget, GdkEventKey* event)
 {
     WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(widget);
     WebKitWebViewBasePrivate* priv = webViewBase->priv;
 
     if (priv->authenticationDialog)
-        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, keyEvent);
+        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, event);
 
 #if ENABLE(FULLSCREEN_API)
     if (priv->fullScreenModeActive) {
-        switch (keyEvent->keyval) {
+        switch (event->keyval) {
         case GDK_KEY_Escape:
         case GDK_KEY_f:
         case GDK_KEY_F:
@@ -702,20 +702,18 @@
     // using gtk_main_do_event().
     if (priv->shouldForwardNextKeyEvent) {
         priv->shouldForwardNextKeyEvent = FALSE;
-        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, keyEvent);
+        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, event);
     }
 
-    // We need to copy the event as otherwise it could be destroyed before we reach the lambda body.
-    GUniquePtr<GdkEvent> event(gdk_event_copy(reinterpret_cast<GdkEvent*>(keyEvent)));
-    priv->inputMethodFilter.filterKeyEvent(&event->key, [priv, event = WTFMove(event)](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) {
-        priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(event.get(), compositionResults, faked,
-            !compositionResults.compositionUpdated() ? priv->keyBindingTranslator.commandsForKeyEvent(&event->key) : Vector<String>()));
+    priv->inputMethodFilter.filterKeyEvent(event, [priv, event](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) {
+        priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), compositionResults, faked,
+            !compositionResults.compositionUpdated() ? priv->keyBindingTranslator.commandsForKeyEvent(event) : Vector<String>()));
     });
 
     return TRUE;
 }
 
-static gboolean webkitWebViewBaseKeyReleaseEvent(GtkWidget* widget, GdkEventKey* keyEvent)
+static gboolean webkitWebViewBaseKeyReleaseEvent(GtkWidget* widget, GdkEventKey* event)
 {
     WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(widget);
     WebKitWebViewBasePrivate* priv = webViewBase->priv;
@@ -722,13 +720,11 @@
 
     if (priv->shouldForwardNextKeyEvent) {
         priv->shouldForwardNextKeyEvent = FALSE;
-        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_release_event(widget, keyEvent);
+        return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_release_event(widget, event);
     }
 
-    // We need to copy the event as otherwise it could be destroyed before we reach the lambda body.
-    GUniquePtr<GdkEvent> event(gdk_event_copy(reinterpret_cast<GdkEvent*>(keyEvent)));
-    priv->inputMethodFilter.filterKeyEvent(&event->key, [priv, event = WTFMove(event)](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) {
-        priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(event.get(), compositionResults, faked, { }));
+    priv->inputMethodFilter.filterKeyEvent(event, [priv, event](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) {
+        priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), compositionResults, faked, { }));
     });
 
     return TRUE;

Modified: trunk/Source/WebKit2/UIProcess/gtk/InputMethodFilter.h (206914 => 206915)


--- trunk/Source/WebKit2/UIProcess/gtk/InputMethodFilter.h	2016-10-07 16:35:37 UTC (rev 206914)
+++ trunk/Source/WebKit2/UIProcess/gtk/InputMethodFilter.h	2016-10-07 16:39:21 UTC (rev 206915)
@@ -21,7 +21,7 @@
 #define InputMethodFilter_h
 
 #include <WebCore/IntPoint.h>
-#include <wtf/Function.h>
+#include <functional>
 #include <wtf/Noncopyable.h>
 #include <wtf/glib/GRefPtr.h>
 #include <wtf/text/WTFString.h>
@@ -56,7 +56,7 @@
     void setEnabled(bool);
     void setCursorRect(const WebCore::IntRect&);
 
-    using FilterKeyEventCompletionHandler = Function<void(const WebCore::CompositionResults&, InputMethodFilter::EventFakedForComposition)>;
+    using FilterKeyEventCompletionHandler = std::function<void (const WebCore::CompositionResults&, InputMethodFilter::EventFakedForComposition)>;
     void filterKeyEvent(GdkEventKey*, FilterKeyEventCompletionHandler&& = nullptr);
     void notifyFocusedIn();
     void notifyFocusedOut();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to