[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
kbalazs at webkit.org
kbalazs at webkit.org
Wed Dec 22 18:49:16 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit be6f9bdd3e526d704d8ae082ea89a5e15b1b100b
Author: kbalazs at webkit.org <kbalazs at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Dec 20 15:12:06 2010 +0000
2010-12-20 Balazs Kelemen <kbalazs at webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt][WK2] Crash in web process after the connection had been closed
https://bugs.webkit.org/show_bug.cgi?id=51115
Do not call connectionDidClose with a connection that has been explicitly
invalidated on the listener thread.
* Platform/CoreIPC/Connection.h:
* Platform/CoreIPC/qt/ConnectionQt.cpp:
(CoreIPC::Connection::disconnectHandler): Added.
(CoreIPC::Connection::open):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index e64e3f7..26b510c 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,17 @@
+2010-12-20 Balazs Kelemen <kbalazs at webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt][WK2] Crash in web process after the connection had been closed
+ https://bugs.webkit.org/show_bug.cgi?id=51115
+
+ Do not call connectionDidClose with a connection that has been explicitly
+ invalidated on the listener thread.
+ * Platform/CoreIPC/Connection.h:
+ * Platform/CoreIPC/qt/ConnectionQt.cpp:
+ (CoreIPC::Connection::disconnectHandler): Added.
+ (CoreIPC::Connection::open):
+
2010-12-19 Dan Bernstein <mitz at apple.com>
Reviewed by Sam Weinig.
diff --git a/WebKit2/Platform/CoreIPC/Connection.h b/WebKit2/Platform/CoreIPC/Connection.h
index 4da2200..d7accdc 100644
--- a/WebKit2/Platform/CoreIPC/Connection.h
+++ b/WebKit2/Platform/CoreIPC/Connection.h
@@ -261,6 +261,7 @@ private:
#elif PLATFORM(QT)
// Called on the connection queue.
void readyReadHandler();
+ void disconnectHandler();
Vector<uint8_t> m_readBuffer;
size_t m_currentMessageSize;
diff --git a/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp b/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp
index e3d965c..89c1a17 100644
--- a/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp
+++ b/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp
@@ -82,6 +82,13 @@ void Connection::readyReadHandler()
}
}
+void Connection::disconnectHandler()
+{
+ // The connection might have been explicitly invalidated on the listener thread.
+ if (isValid())
+ connectionDidClose();
+}
+
bool Connection::open()
{
ASSERT(!m_socket);
@@ -98,7 +105,7 @@ bool Connection::open()
m_socket->connectToServer(m_serverName);
m_connectionQueue.moveSocketToWorkThread(m_socket);
m_connectionQueue.connectSignal(m_socket, SIGNAL(readyRead()), WorkItem::create(this, &Connection::readyReadHandler));
- m_connectionQueue.connectSignal(m_socket, SIGNAL(disconnected()), WorkItem::create(this, &Connection::connectionDidClose));
+ m_connectionQueue.connectSignal(m_socket, SIGNAL(disconnected()), WorkItem::create(this, &Connection::disconnectHandler));
m_isConnected = m_socket->waitForConnected();
}
return m_isConnected;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list