WebKit Bugzilla
Attachment 343366 Details for
Bug 186941
: Do not do early processing of incoming sync IPC unless we're waiting for a sync IPC reply
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
WIP Patch
186941_wip.patch (text/plain), 2.40 KB, created by
Chris Dumez
on 2018-06-22 14:14:14 PDT
(
hide
)
Description:
WIP Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-06-22 14:14:14 PDT
Size:
2.40 KB
patch
obsolete
>diff --git a/LayoutTests/http/tests/misc/blob-size-expected.txt b/LayoutTests/http/tests/misc/blob-size-expected.txt >new file mode 100644 >index 00000000000..99e006bc212 >--- /dev/null >+++ b/LayoutTests/http/tests/misc/blob-size-expected.txt >@@ -0,0 +1,10 @@ >+Tests that constructing a Blob and querying its size right away is not flaky >+ >+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". >+ >+ >+PASS Getting the Blob size is not flaky >+PASS successfullyParsed is true >+ >+TEST COMPLETE >+ >diff --git a/LayoutTests/http/tests/misc/blob-size.html b/LayoutTests/http/tests/misc/blob-size.html >new file mode 100644 >index 00000000000..92d8b0c467c >--- /dev/null >+++ b/LayoutTests/http/tests/misc/blob-size.html >@@ -0,0 +1,26 @@ >+<!DOCTYPE html> >+<html> >+<body> >+<script src="/js-test-resources/js-test.js"></script> >+<script> >+description("Tests that constructing a Blob and querying its size right away is not flaky"); >+ >+function runTest() { >+ for (let i = 0; i < 50; i++) { >+ for (let j = 0; j < 200; j++) { >+ fetch('/resources/square100.png', { cache: 'no-store' }).then(function(res) { }); >+ } >+ for (let k = 0; k < 5; k++) { >+ if ((new Blob(["aaaa"])).size != 4) { >+ testFailed("Getting the Blob size is flaky"); >+ return; >+ } >+ } >+ } >+ testPassed("Getting the Blob size is not flaky"); >+} >+ >+runTest(); >+</script> >+</body> >+</html> >diff --git a/Source/WebKit/Platform/IPC/Connection.cpp b/Source/WebKit/Platform/IPC/Connection.cpp >index 9e27540315d..315677db0a8 100644 >--- a/Source/WebKit/Platform/IPC/Connection.cpp >+++ b/Source/WebKit/Platform/IPC/Connection.cpp >@@ -697,8 +697,11 @@ void Connection::processIncomingMessage(std::unique_ptr<Decoder> message) > // Check if this is a sync message or if it's a message that should be dispatched even when waiting for > // a sync reply. If it is, and we're waiting for a sync reply this message needs to be dispatched. > // If we don't we'll end up with a deadlock where both sync message senders are stuck waiting for a reply. >- if (SyncMessageState::singleton().processIncomingMessage(*this, message)) >- return; >+ { >+ LockHolder locker(m_syncReplyStateMutex); >+ if (!m_pendingSyncReplies.isEmpty() && SyncMessageState::singleton().processIncomingMessage(*this, message)) >+ return; >+ } > > // Check if we're waiting for this message. > {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186941
:
343366
|
343367
|
343376
|
343384
|
343421
|
350429
|
350467
|
350643