Diff
Modified: trunk/Source/WebCore/ChangeLog (121019 => 121020)
--- trunk/Source/WebCore/ChangeLog 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebCore/ChangeLog 2012-06-22 13:24:31 UTC (rev 121020)
@@ -1,3 +1,18 @@
+2012-06-22 Jocelyn Turcotte <[email protected]>
+
+ [Qt] Fix the remote inspector loading problems on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=89747
+
+ Reviewed by Simon Hausmann.
+
+ Make sure that the state of a SocketStreamHandle is set properly
+ when created from an existing QTcpSocket.
+
+ This fixes the inspectorserver Qt api auto test on Mac.
+
+ * platform/network/qt/SocketStreamHandleQt.cpp:
+ (WebCore::SocketStreamHandle::SocketStreamHandle):
+
2012-06-22 Yoshifumi Inoue <[email protected]>
REGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range overflow message if value isn't range overflow
Modified: trunk/Source/WebCore/platform/network/qt/SocketStreamHandleQt.cpp (121019 => 121020)
--- trunk/Source/WebCore/platform/network/qt/SocketStreamHandleQt.cpp 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebCore/platform/network/qt/SocketStreamHandleQt.cpp 2012-06-22 13:24:31 UTC (rev 121020)
@@ -191,6 +191,8 @@
{
LOG(Network, "SocketStreamHandle %p new client %p", this, m_client);
m_p = new SocketStreamHandlePrivate(this, socket);
+ if (socket->isOpen())
+ m_state = Open;
}
SocketStreamHandle::~SocketStreamHandle()
Modified: trunk/Source/WebKit2/ChangeLog (121019 => 121020)
--- trunk/Source/WebKit2/ChangeLog 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/ChangeLog 2012-06-22 13:24:31 UTC (rev 121020)
@@ -1,3 +1,30 @@
+2012-06-22 Jocelyn Turcotte <[email protected]>
+
+ [Qt] Fix the remote inspector loading problems on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=89747
+
+ Reviewed by Simon Hausmann.
+
+ Reverse the creation order of the inter-dependent WebSocketServerConnection
+ and SocketStreamHandle to make sure that the later has a client properly
+ set on construction.
+
+ This is to work around the assert on m_state in SocketStreamHandle::setClient.
+
+ * UIProcess/InspectorServer/WebSocketServer.cpp:
+ (WebKit::WebSocketServer::didAcceptConnection):
+ * UIProcess/InspectorServer/WebSocketServer.h:
+ (WebKit::WebSocketServer::client):
+ (WebSocketServer):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::WebSocketServerConnection):
+ (WebKit::WebSocketServerConnection::setSocketHandle):
+ (WebKit):
+ * UIProcess/InspectorServer/WebSocketServerConnection.h:
+ (WebSocketServerConnection):
+ * UIProcess/InspectorServer/qt/WebSocketServerQt.cpp:
+ (WebKit::QtTcpServerHandler::handleNewConnection):
+
2012-06-22 Sergio Villar Senin <[email protected]>
[WK2] FindController::hideFindUI should unmark highlighted text matches
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp (121019 => 121020)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp 2012-06-22 13:24:31 UTC (rev 121020)
@@ -82,9 +82,9 @@
m_bindAddress = String();
}
-void WebSocketServer::didAcceptConnection(PassRefPtr<SocketStreamHandle> socketHandle)
+void WebSocketServer::didAcceptConnection(PassOwnPtr<WebSocketServerConnection> connection)
{
- m_connections.append(adoptPtr(new WebSocketServerConnection(socketHandle, m_client, this)));
+ m_connections.append(connection);
}
void WebSocketServer::didCloseWebSocketServerConnection(WebSocketServerConnection* connection)
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h (121019 => 121020)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h 2012-06-22 13:24:31 UTC (rev 121020)
@@ -61,7 +61,8 @@
ServerState serverState() const { return m_state; };
void close();
- void didAcceptConnection(PassRefPtr<WebCore::SocketStreamHandle>);
+ WebSocketServerClient* client() const { return m_client; }
+ void didAcceptConnection(PassOwnPtr<WebSocketServerConnection>);
private:
void didCloseWebSocketServerConnection(WebSocketServerConnection*);
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp (121019 => 121020)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp 2012-06-22 13:24:31 UTC (rev 121020)
@@ -45,14 +45,12 @@
namespace WebKit {
-WebSocketServerConnection::WebSocketServerConnection(PassRefPtr<SocketStreamHandle> socket, WebSocketServerClient* client, WebSocketServer* server)
+WebSocketServerConnection::WebSocketServerConnection(WebSocketServerClient* client, WebSocketServer* server)
: m_identifier(0)
, m_mode(HTTP)
- , m_socket(socket)
, m_server(server)
, m_client(client)
{
- m_socket->setClient(this);
}
WebSocketServerConnection::~WebSocketServerConnection()
@@ -60,6 +58,12 @@
shutdownNow();
}
+void WebSocketServerConnection::setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle> socket)
+{
+ ASSERT(!m_socket);
+ m_socket = socket;
+}
+
void WebSocketServerConnection::shutdownNow()
{
if (!m_socket)
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h (121019 => 121020)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h 2012-06-22 13:24:31 UTC (rev 121020)
@@ -49,11 +49,12 @@
class WebSocketServerConnection : public WebCore::SocketStreamHandleClient {
public:
enum WebSocketServerMode { HTTP, WebSocket };
- WebSocketServerConnection(PassRefPtr<WebCore::SocketStreamHandle>, WebSocketServerClient*, WebSocketServer*);
+ WebSocketServerConnection(WebSocketServerClient*, WebSocketServer*);
virtual ~WebSocketServerConnection();
unsigned identifier() const { return m_identifier; }
void setIdentifier(unsigned id) { m_identifier = id; }
+ void setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle>);
// Sending data over the connection.
void sendWebSocketMessage(const String& message);
Modified: trunk/Source/WebKit2/UIProcess/InspectorServer/qt/WebSocketServerQt.cpp (121019 => 121020)
--- trunk/Source/WebKit2/UIProcess/InspectorServer/qt/WebSocketServerQt.cpp 2012-06-22 12:54:04 UTC (rev 121019)
+++ trunk/Source/WebKit2/UIProcess/InspectorServer/qt/WebSocketServerQt.cpp 2012-06-22 13:24:31 UTC (rev 121020)
@@ -23,6 +23,7 @@
#include "WebSocketServerQt.h"
#include "WebSocketServer.h"
+#include "WebSocketServerConnection.h"
#include <WebCore/SocketStreamHandle.h>
#include <wtf/PassOwnPtr.h>
@@ -55,7 +56,9 @@
{
QTcpSocket* socket = m_serverSocket.nextPendingConnection();
ASSERT(socket);
- m_webSocketServer->didAcceptConnection(SocketStreamHandle::create(socket, 0));
+ OwnPtr<WebSocketServerConnection> conection = adoptPtr(new WebSocketServerConnection(m_webSocketServer->client(), m_webSocketServer));
+ conection->setSocketHandle(SocketStreamHandle::create(socket, conection.get()));
+ m_webSocketServer->didAcceptConnection(conection.release());
}
bool QtTcpServerHandler::listen(const String& bindAddress, unsigned short port)