Changeset 202367 in webkit


Ignore:
Timestamp:
Jun 22, 2016 11:10:48 PM (8 years ago)
Author:
Carlos Garcia Campos
Message:

REGRESSION(r201880): WebSockets based remote inspector is broken since r201880
https://bugs.webkit.org/show_bug.cgi?id=158613

Reviewed by Michael Catanzaro.

In r201880 SocketStreamHandleClient was modified to receive references instead of
pointers. WebSocketServerConnection also implements SocketStreamHandleClient but since it's doesn't use
override, it was unnoticed and not updated, so we ended up using the default empty implementation instead of
the WebSocketServerConnection one.

  • UIProcess/InspectorServer/WebSocketServerConnection.cpp:

(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit::WebSocketServerConnection::shutdownNow):
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
(WebKit::WebSocketServerConnection::didUpdateBufferedAmount):
(WebKit::WebSocketServerConnection::didFailSocketStream): Deleted.

  • UIProcess/InspectorServer/WebSocketServerConnection.h:
Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r202365 r202367  
     12016-06-22  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        REGRESSION(r201880): WebSockets based remote inspector is broken since r201880
     4        https://bugs.webkit.org/show_bug.cgi?id=158613
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        In r201880 SocketStreamHandleClient was modified to receive references instead of
     9        pointers. WebSocketServerConnection also implements SocketStreamHandleClient but since it's doesn't use
     10        override, it was unnoticed and not updated, so we ended up using the default empty implementation instead of
     11        the WebSocketServerConnection one.
     12
     13        * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
     14        (WebKit::WebSocketServerConnection::WebSocketServerConnection):
     15        (WebKit::WebSocketServerConnection::setSocketHandle):
     16        (WebKit::WebSocketServerConnection::shutdownNow):
     17        (WebKit::WebSocketServerConnection::didCloseSocketStream):
     18        (WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
     19        (WebKit::WebSocketServerConnection::didUpdateBufferedAmount):
     20        (WebKit::WebSocketServerConnection::didFailSocketStream): Deleted.
     21        * UIProcess/InspectorServer/WebSocketServerConnection.h:
     22
    1232016-06-22  Brent Fulgham  <bfulgham@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp

    r186279 r202367  
    4848
    4949WebSocketServerConnection::WebSocketServerConnection(WebSocketServerClient* client, WebSocketServer* server)
    50     : m_identifier(0)
    51     , m_mode(HTTP)
    52     , m_server(server)
     50    : m_server(server)
    5351    , m_client(client)
    54     , m_shutdownAfterSend(false)
    5552{
    5653}
     
    6158}
    6259
    63 void WebSocketServerConnection::setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle> socket)
     60void WebSocketServerConnection::setSocketHandle(Ref<SocketStreamHandle>&& socket)
    6461{
    6562    ASSERT(!m_socket);
    66     m_socket = socket;
     63    m_socket = WTFMove(socket);
    6764}
    6865
     
    7168    if (!m_socket)
    7269        return;
    73     RefPtr<SocketStreamHandle> socket = m_socket.release();
     70    auto socket = WTFMove(m_socket);
    7471    socket->close();
    7572    m_shutdownAfterSend = false;
     
    124121}
    125122
    126 void WebSocketServerConnection::didCloseSocketStream(SocketStreamHandle*)
     123void WebSocketServerConnection::didCloseSocketStream(SocketStreamHandle&)
    127124{
    128125    // Destroy the SocketStreamHandle now to prevent closing an already closed socket later.
     
    137134}
    138135
    139 void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle*, const char* data, int length)
     136void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle&, const char* data, int length)
    140137{
    141138    // Each didReceiveData call adds more data to our buffer.
     
    156153}
    157154
    158 void WebSocketServerConnection::didUpdateBufferedAmount(WebCore::SocketStreamHandle*, size_t)
     155void WebSocketServerConnection::didUpdateBufferedAmount(SocketStreamHandle&, size_t)
    159156{
    160157    if (m_shutdownAfterSend && !m_socket->bufferedAmount())
    161158        shutdownNow();
    162 }
    163 
    164 void WebSocketServerConnection::didFailSocketStream(SocketStreamHandle*, const SocketStreamError&)
    165 {
    166     // Possible read or write error.
    167159}
    168160
  • trunk/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h

    r150161 r202367  
    4747class WebSocketServerClient;
    4848
    49 class WebSocketServerConnection : public WebCore::SocketStreamHandleClient {
     49class WebSocketServerConnection final : public WebCore::SocketStreamHandleClient {
    5050public:
    5151    enum WebSocketServerMode { HTTP, WebSocket };
     
    5555    unsigned identifier() const { return m_identifier; }
    5656    void setIdentifier(unsigned id) { m_identifier = id; }
    57     void setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle>);
     57    void setSocketHandle(Ref<WebCore::SocketStreamHandle>&&);
    5858
    5959    // Sending data over the connection.
     
    6666    void shutdownAfterSendOrNow();
    6767
     68private:
    6869    // SocketStreamHandleClient implementation.
    69     virtual void didCloseSocketStream(WebCore::SocketStreamHandle*);
    70     virtual void didReceiveSocketStreamData(WebCore::SocketStreamHandle*, const char* data, int length);
    71     virtual void didUpdateBufferedAmount(WebCore::SocketStreamHandle*, size_t bufferedAmount);
    72     virtual void didFailSocketStream(WebCore::SocketStreamHandle*, const WebCore::SocketStreamError&);
     70    void didCloseSocketStream(WebCore::SocketStreamHandle&) override;
     71    void didReceiveSocketStreamData(WebCore::SocketStreamHandle&, const char* data, int length) override;
     72    void didUpdateBufferedAmount(WebCore::SocketStreamHandle&, size_t bufferedAmount) override;
    7373
    74 private:
    7574    // HTTP Mode.
    7675    void readHTTPMessage();
     
    8180    bool readWebSocketFrame();
    8281
    83 protected:
    84     unsigned m_identifier;
     82    unsigned m_identifier { 0 };
    8583    Vector<char> m_bufferedData;
    86     WebSocketServerMode m_mode;
     84    WebSocketServerMode m_mode { HTTP };
    8785    RefPtr<WebCore::SocketStreamHandle> m_socket;
    88     WebSocketServer* m_server;
    89     WebSocketServerClient* m_client;
    90     bool m_shutdownAfterSend;
     86    WebSocketServer* m_server { nullptr };
     87    WebSocketServerClient* m_client { nullptr };
     88    bool m_shutdownAfterSend { false };
    9189};
    9290
Note: See TracChangeset for help on using the changeset viewer.