Changeset 87139 in webkit


Ignore:
Timestamp:
May 24, 2011 2:15:49 AM (13 years ago)
Author:
yutak@chromium.org
Message:

2011-05-24 Yuta Kitamura <yutak@chromium.org>

Reviewed by Kent Tamura.

WebSocket: Add fail() to WebSocketChannel and its family
https://bugs.webkit.org/show_bug.cgi?id=61277

This is the first part of refactoring effort described in bug 61115.
Existing error reports will be modified to use fail() in a later patch.

No change in behavior, thus no new tests.

  • websockets/ThreadableWebSocketChannel.h:
  • websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::fail):
  • websockets/WebSocketChannel.h:
  • websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::fail): (WebCore::WorkerThreadableWebSocketChannel::Peer::fail): (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail): (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
  • websockets/WorkerThreadableWebSocketChannel.h:
Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r87138 r87139  
     12011-05-24  Yuta Kitamura  <yutak@chromium.org>
     2
     3        Reviewed by Kent Tamura.
     4
     5        WebSocket: Add fail() to WebSocketChannel and its family
     6        https://bugs.webkit.org/show_bug.cgi?id=61277
     7
     8        This is the first part of refactoring effort described in bug 61115.
     9        Existing error reports will be modified to use fail() in a later patch.
     10
     11        No change in behavior, thus no new tests.
     12
     13        * websockets/ThreadableWebSocketChannel.h:
     14        * websockets/WebSocketChannel.cpp:
     15        (WebCore::WebSocketChannel::fail):
     16        * websockets/WebSocketChannel.h:
     17        * websockets/WorkerThreadableWebSocketChannel.cpp:
     18        (WebCore::WorkerThreadableWebSocketChannel::fail):
     19        (WebCore::WorkerThreadableWebSocketChannel::Peer::fail):
     20        (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail):
     21        (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
     22        * websockets/WorkerThreadableWebSocketChannel.h:
     23
    1242011-05-24  Andras Becsi  <abecsi@webkit.org>
    225
  • trunk/Source/WebCore/websockets/ThreadableWebSocketChannel.h

    r76248 r87139  
    5454    virtual unsigned long bufferedAmount() const = 0;
    5555    virtual void close() = 0;
     56    // Log the reason text and close the connection. Will call didClose().
     57    virtual void fail(const String& reason) = 0;
    5658    virtual void disconnect() = 0; // Will suppress didClose().
    5759
  • trunk/Source/WebCore/websockets/WebSocketChannel.cpp

    r86542 r87139  
    122122}
    123123
     124void WebSocketChannel::fail(const String& reason)
     125{
     126    LOG(Network, "WebSocketChannel %p fail: %s", this, reason.utf8().data());
     127    ASSERT(!m_suspended);
     128    if (m_context)
     129        m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, reason, 0, m_handshake.clientOrigin(), 0);
     130    if (m_handle)
     131        m_handle->close(); // Will call didClose().
     132}
     133
    124134void WebSocketChannel::disconnect()
    125135{
  • trunk/Source/WebCore/websockets/WebSocketChannel.h

    r76248 r87139  
    5959        virtual unsigned long bufferedAmount() const;
    6060        virtual void close();
    61         virtual void disconnect(); // Will suppress didClose().
     61        virtual void fail(const String& reason);
     62        virtual void disconnect();
    6263
    6364        virtual void suspend();
  • trunk/Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp

    r85165 r87139  
    8989}
    9090
     91void WorkerThreadableWebSocketChannel::fail(const String& reason)
     92{
     93    if (m_bridge)
     94        m_bridge->fail(reason);
     95}
     96
    9197void WorkerThreadableWebSocketChannel::disconnect()
    9298{
     
    170176    m_mainWebSocketChannel->close();
    171177    m_mainWebSocketChannel = 0;
     178}
     179
     180void WorkerThreadableWebSocketChannel::Peer::fail(const String& reason)
     181{
     182    ASSERT(isMainThread());
     183    if (!m_mainWebSocketChannel)
     184        return;
     185    m_mainWebSocketChannel->fail(reason);
    172186}
    173187
     
    287301    ASSERT(m_workerClientWrapper);
    288302    ASSERT(m_peer);
    289     m_loaderProxy.postTaskToLoader(
    290         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadConnect, AllowCrossThreadAccess(m_peer)));
     303    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadConnect, AllowCrossThreadAccess(m_peer)));
    291304}
    292305
     
    306319    ASSERT(m_peer);
    307320    setMethodNotCompleted();
    308     m_loaderProxy.postTaskToLoader(
    309         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSend,
    310                            AllowCrossThreadAccess(m_peer), message));
     321    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSend, AllowCrossThreadAccess(m_peer), message));
    311322    RefPtr<Bridge> protect(this);
    312323    waitForMethodCompletion();
     
    330341    ASSERT(m_peer);
    331342    setMethodNotCompleted();
    332     m_loaderProxy.postTaskToLoader(
    333         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadBufferedAmount, AllowCrossThreadAccess(m_peer)));
     343    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadBufferedAmount, AllowCrossThreadAccess(m_peer)));
    334344    RefPtr<Bridge> protect(this);
    335345    waitForMethodCompletion();
     
    352362{
    353363    ASSERT(m_peer);
    354     m_loaderProxy.postTaskToLoader(
    355         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadClose, AllowCrossThreadAccess(m_peer)));
     364    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadClose, AllowCrossThreadAccess(m_peer)));
     365}
     366
     367void WorkerThreadableWebSocketChannel::mainThreadFail(ScriptExecutionContext* context, Peer* peer, const String& reason)
     368{
     369    ASSERT(isMainThread());
     370    ASSERT_UNUSED(context, context->isDocument());
     371    ASSERT(peer);
     372
     373    peer->fail(reason);
     374}
     375
     376void WorkerThreadableWebSocketChannel::Bridge::fail(const String& reason)
     377{
     378    ASSERT(m_peer);
     379    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadFail, AllowCrossThreadAccess(m_peer), reason));
    356380}
    357381
     
    371395        Peer* peer = m_peer;
    372396        m_peer = 0;
    373         m_loaderProxy.postTaskToLoader(
    374             createCallbackTask(&mainThreadDestroy, AllowCrossThreadAccess(peer)));
     397        m_loaderProxy.postTaskToLoader(createCallbackTask(&mainThreadDestroy, AllowCrossThreadAccess(peer)));
    375398    }
    376399    m_workerContext = 0;
     
    389412{
    390413    ASSERT(m_peer);
    391     m_loaderProxy.postTaskToLoader(
    392         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSuspend, AllowCrossThreadAccess(m_peer)));
     414    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSuspend, AllowCrossThreadAccess(m_peer)));
    393415}
    394416
     
    405427{
    406428    ASSERT(m_peer);
    407     m_loaderProxy.postTaskToLoader(
    408         createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadResume, AllowCrossThreadAccess(m_peer)));
     429    m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadResume, AllowCrossThreadAccess(m_peer)));
    409430}
    410431
  • trunk/Source/WebCore/websockets/WorkerThreadableWebSocketChannel.h

    r76248 r87139  
    6565    virtual unsigned long bufferedAmount() const;
    6666    virtual void close();
     67    virtual void fail(const String& reason);
    6768    virtual void disconnect(); // Will suppress didClose().
    6869    virtual void suspend();
     
    9293        void bufferedAmount();
    9394        void close();
     95        void fail(const String& reason);
    9496        void disconnect();
    9597        void suspend();
     
    121123        unsigned long bufferedAmount();
    122124        void close();
     125        void fail(const String& reason);
    123126        void disconnect();
    124127        void suspend();
     
    155158    static void mainThreadBufferedAmount(ScriptExecutionContext*, Peer*);
    156159    static void mainThreadClose(ScriptExecutionContext*, Peer*);
     160    static void mainThreadFail(ScriptExecutionContext*, Peer*, const String& reason);
    157161    static void mainThreadDestroy(ScriptExecutionContext*, Peer*);
    158162    static void mainThreadSuspend(ScriptExecutionContext*, Peer*);
Note: See TracChangeset for help on using the changeset viewer.