Title: [218567] releases/WebKitGTK/webkit-2.16
Revision
218567
Author
carlo...@webkit.org
Date
2017-06-20 01:28:17 -0700 (Tue, 20 Jun 2017)

Log Message

Merge r217810 - ASSERTION FAILED: RunLoop::isMain() in com.apple.WebKit: IPC::Connection::sendSyncMessage + 128
https://bugs.webkit.org/show_bug.cgi?id=172943
<rdar://problem/31288058>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

In Connection::sendMessage(), make sure we only ever transform asynchronous messages into synchronous
ones if sendMessage() is called on the main thread. This is necessary because we no longer support
sending synchronous messages from a background thread since r205125.

* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncMessage):

LayoutTests:

Add better test coverage.

* storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt: Added.
* storage/domstorage/sessionstorage/set-item-synchronous-keydown.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog (218566 => 218567)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-06-20 08:25:41 UTC (rev 218566)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-06-20 08:28:17 UTC (rev 218567)
@@ -1,3 +1,16 @@
+2017-06-05  Chris Dumez  <cdu...@apple.com>
+
+        ASSERTION FAILED: RunLoop::isMain() in com.apple.WebKit: IPC::Connection::sendSyncMessage + 128
+        https://bugs.webkit.org/show_bug.cgi?id=172943
+        <rdar://problem/31288058>
+
+        Reviewed by Alexey Proskuryakov.
+
+        Add better test coverage.
+
+        * storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt: Added.
+        * storage/domstorage/sessionstorage/set-item-synchronous-keydown.html: Added.
+
 2017-06-12  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK] Stop dismissing menus attached to the web view for every injected event

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt (0 => 218567)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt	2017-06-20 08:28:17 UTC (rev 218567)
@@ -0,0 +1,12 @@
+Tests updating sessionStorage in the keydown handler and makes sure the value is updated synchronously.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS sessionStorage.setItemSynchronousKeydownTestValue is "0"
+Setting setItemSynchronousKeydownTestValue to 1 in keydown handler.
+PASS sessionStorage.setItemSynchronousKeydownTestValue is "1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown.html (0 => 218567)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/storage/domstorage/sessionstorage/set-item-synchronous-keydown.html	2017-06-20 08:28:17 UTC (rev 218567)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src=""
+<script src=""
+<input id="testInput" type="text"></input>
+<script>
+description("Tests updating sessionStorage in the keydown handler and makes sure the value is updated synchronously.");
+
+function keydownHandler()
+{
+    debug("Setting setItemSynchronousKeydownTestValue to 1 in keydown handler.");
+    sessionStorage.setItemSynchronousKeydownTestValue = 1;
+}
+
+testInput.focus();
+testInput._onkeydown_ = keydownHandler;
+sessionStorage.setItemSynchronousKeydownTestValue = 0;
+shouldBeEqualToString("sessionStorage.setItemSynchronousKeydownTestValue", "0");
+
+// keydownHandler() should be called synchronously.
+if (window.eventSender)
+    eventSender.keyDown('a');
+
+shouldBeEqualToString("sessionStorage.setItemSynchronousKeydownTestValue", "1");
+
+sessionStorage.removeItem("setItemSynchronousKeydownTestValue");
+</script>
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-2.16/Source/WebKit2/ChangeLog (218566 => 218567)


--- releases/WebKitGTK/webkit-2.16/Source/WebKit2/ChangeLog	2017-06-20 08:25:41 UTC (rev 218566)
+++ releases/WebKitGTK/webkit-2.16/Source/WebKit2/ChangeLog	2017-06-20 08:28:17 UTC (rev 218567)
@@ -1,3 +1,19 @@
+2017-06-05  Chris Dumez  <cdu...@apple.com>
+
+        ASSERTION FAILED: RunLoop::isMain() in com.apple.WebKit: IPC::Connection::sendSyncMessage + 128
+        https://bugs.webkit.org/show_bug.cgi?id=172943
+        <rdar://problem/31288058>
+
+        Reviewed by Alexey Proskuryakov.
+
+        In Connection::sendMessage(), make sure we only ever transform asynchronous messages into synchronous
+        ones if sendMessage() is called on the main thread. This is necessary because we no longer support
+        sending synchronous messages from a background thread since r205125.
+
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::sendMessage):
+        (IPC::Connection::sendSyncMessage):
+
 2017-06-02  Chris Dumez  <cdu...@apple.com>
 
         REGRESSION (r206386): Xactimate Website Crashes @ com.apple.WebKit: WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant + 255

Modified: releases/WebKitGTK/webkit-2.16/Source/WebKit2/Platform/IPC/Connection.cpp (218566 => 218567)


--- releases/WebKitGTK/webkit-2.16/Source/WebKit2/Platform/IPC/Connection.cpp	2017-06-20 08:25:41 UTC (rev 218566)
+++ releases/WebKitGTK/webkit-2.16/Source/WebKit2/Platform/IPC/Connection.cpp	2017-06-20 08:28:17 UTC (rev 218567)
@@ -379,7 +379,7 @@
     if (!isValid())
         return false;
 
-    if (m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting && !encoder->isSyncMessage() && !(encoder->messageReceiverName() == "IPC")) {
+    if (RunLoop::isMain() && m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting && !encoder->isSyncMessage() && !(encoder->messageReceiverName() == "IPC")) {
         uint64_t syncRequestID;
         auto wrappedMessage = createSyncMessageEncoder("IPC", "WrappedAsyncMessageForTesting", encoder->destinationID(), syncRequestID);
         wrappedMessage->setFullySynchronousModeForTesting();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to