[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
aroben at apple.com
aroben at apple.com
Wed Dec 22 11:32:21 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 7b0f42976e3349520ab07d94bf97806b3b951bd0
Author: aroben at apple.com <aroben at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Jul 28 19:54:31 2010 +0000
Teach CoreIPC how to handle with a pipe closing during a write
Fixes <http://webkit.org/b/43131> Assertion failure in
Connection::sendOutgoingMessage if the other process exits at just the
wrong time
Reviewed by Darin Adler.
* Platform/CoreIPC/win/ConnectionWin.cpp:
(CoreIPC::Connection::sendOutgoingMessage): If ::WriteFile fails with
ERROR_NO_DATA, the pipe (and thus the connection) has closed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 7440234..c654e1c 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,19 @@
2010-07-28 Adam Roben <aroben at apple.com>
+ Teach CoreIPC how to handle with a pipe closing during a write
+
+ Fixes <http://webkit.org/b/43131> Assertion failure in
+ Connection::sendOutgoingMessage if the other process exits at just the
+ wrong time
+
+ Reviewed by Darin Adler.
+
+ * Platform/CoreIPC/win/ConnectionWin.cpp:
+ (CoreIPC::Connection::sendOutgoingMessage): If ::WriteFile fails with
+ ERROR_NO_DATA, the pipe (and thus the connection) has closed.
+
+2010-07-28 Adam Roben <aroben at apple.com>
+
Teach CoreIPC the right way to send large messages on Windows
r63776 added support for ::WriteFile failing with ERROR_IO_PENDING,
diff --git a/WebKit2/Platform/CoreIPC/win/ConnectionWin.cpp b/WebKit2/Platform/CoreIPC/win/ConnectionWin.cpp
index 73159ae..4519d1a 100644
--- a/WebKit2/Platform/CoreIPC/win/ConnectionWin.cpp
+++ b/WebKit2/Platform/CoreIPC/win/ConnectionWin.cpp
@@ -311,6 +311,13 @@ bool Connection::sendOutgoingMessage(MessageID messageID, PassOwnPtr<ArgumentEnc
}
DWORD error = ::GetLastError();
+
+ if (error == ERROR_NO_DATA) {
+ // The pipe is being closed.
+ connectionDidClose();
+ return false;
+ }
+
if (error != ERROR_IO_PENDING) {
ASSERT_NOT_REACHED();
return false;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list