2011-06-01 Yuta Kitamura <yutak@chromium.org>
authoryutak@chromium.org <yutak@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Jun 2011 02:53:13 +0000 (02:53 +0000)
committeryutak@chromium.org <yutak@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Jun 2011 02:53:13 +0000 (02:53 +0000)
        Reviewed by Kent Tamura.

        WebSocket: WebSocketChannel::fail() should close the connection immediately
        https://bugs.webkit.org/show_bug.cgi?id=61851

        The effect of this change is almost unobservable. The difference between m_handle->close() and
        m_handle->disconnect() is that the former does not close the connection if the handle has
        unsent data while the latter immediately closes the connection regardless of unsent data.
        Usually a socket stream handle does not have unsent data, and even if it has any, it is hard
        for user scripts to observe the difference between close() and disconnect() (it should take some time
        for onclose() to be called if there are any unsent data, but there ought to be no other difference
        in user scripts' perspective).

        No new tests are added, because writing a test for this issue is not feasible due to the above reason.

        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::fail): Use m_handle->disconnect() instead of m_handle->close().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@87876 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/websockets/WebSocketChannel.cpp

index f1809922d2ce8d6f3e41a5d3994b57e948decd84..5e8df87104322b6ea1dbe3542f43604c7b340789 100644 (file)
@@ -1,3 +1,23 @@
+2011-06-01  Yuta Kitamura  <yutak@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        WebSocket: WebSocketChannel::fail() should close the connection immediately
+        https://bugs.webkit.org/show_bug.cgi?id=61851
+
+        The effect of this change is almost unobservable. The difference between m_handle->close() and
+        m_handle->disconnect() is that the former does not close the connection if the handle has
+        unsent data while the latter immediately closes the connection regardless of unsent data.
+        Usually a socket stream handle does not have unsent data, and even if it has any, it is hard
+        for user scripts to observe the difference between close() and disconnect() (it should take some time
+        for onclose() to be called if there are any unsent data, but there ought to be no other difference
+        in user scripts' perspective).
+
+        No new tests are added, because writing a test for this issue is not feasible due to the above reason.
+
+        * websockets/WebSocketChannel.cpp:
+        (WebCore::WebSocketChannel::fail): Use m_handle->disconnect() instead of m_handle->close().
+
 2011-06-01  Abhishek Arya  <inferno@chromium.org>
 
         Unreviewed.
index 0be56e35a7e056bc96c66f2ba1f1b5a1260e4574..6d49a563a0db98a94a3c54cbc1f21513f83a3efa 100644 (file)
@@ -136,7 +136,7 @@ void WebSocketChannel::fail(const String& reason)
     if (m_context)
         m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, reason, 0, m_handshake.clientOrigin(), 0);
     if (m_handle && !m_closed)
-        m_handle->close(); // Will call didClose().
+        m_handle->disconnect(); // Will call didClose().
 }
 
 void WebSocketChannel::disconnect()