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();