Changeset 87139 in webkit
- Timestamp:
- May 24, 2011 2:15:49 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r87138 r87139 1 2011-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 1 24 2011-05-24 Andras Becsi <abecsi@webkit.org> 2 25 -
trunk/Source/WebCore/websockets/ThreadableWebSocketChannel.h
r76248 r87139 54 54 virtual unsigned long bufferedAmount() const = 0; 55 55 virtual void close() = 0; 56 // Log the reason text and close the connection. Will call didClose(). 57 virtual void fail(const String& reason) = 0; 56 58 virtual void disconnect() = 0; // Will suppress didClose(). 57 59 -
trunk/Source/WebCore/websockets/WebSocketChannel.cpp
r86542 r87139 122 122 } 123 123 124 void 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 124 134 void WebSocketChannel::disconnect() 125 135 { -
trunk/Source/WebCore/websockets/WebSocketChannel.h
r76248 r87139 59 59 virtual unsigned long bufferedAmount() const; 60 60 virtual void close(); 61 virtual void disconnect(); // Will suppress didClose(). 61 virtual void fail(const String& reason); 62 virtual void disconnect(); 62 63 63 64 virtual void suspend(); -
trunk/Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp
r85165 r87139 89 89 } 90 90 91 void WorkerThreadableWebSocketChannel::fail(const String& reason) 92 { 93 if (m_bridge) 94 m_bridge->fail(reason); 95 } 96 91 97 void WorkerThreadableWebSocketChannel::disconnect() 92 98 { … … 170 176 m_mainWebSocketChannel->close(); 171 177 m_mainWebSocketChannel = 0; 178 } 179 180 void WorkerThreadableWebSocketChannel::Peer::fail(const String& reason) 181 { 182 ASSERT(isMainThread()); 183 if (!m_mainWebSocketChannel) 184 return; 185 m_mainWebSocketChannel->fail(reason); 172 186 } 173 187 … … 287 301 ASSERT(m_workerClientWrapper); 288 302 ASSERT(m_peer); 289 m_loaderProxy.postTaskToLoader( 290 createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadConnect, AllowCrossThreadAccess(m_peer))); 303 m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadConnect, AllowCrossThreadAccess(m_peer))); 291 304 } 292 305 … … 306 319 ASSERT(m_peer); 307 320 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)); 311 322 RefPtr<Bridge> protect(this); 312 323 waitForMethodCompletion(); … … 330 341 ASSERT(m_peer); 331 342 setMethodNotCompleted(); 332 m_loaderProxy.postTaskToLoader( 333 createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadBufferedAmount, AllowCrossThreadAccess(m_peer))); 343 m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadBufferedAmount, AllowCrossThreadAccess(m_peer))); 334 344 RefPtr<Bridge> protect(this); 335 345 waitForMethodCompletion(); … … 352 362 { 353 363 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 367 void 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 376 void WorkerThreadableWebSocketChannel::Bridge::fail(const String& reason) 377 { 378 ASSERT(m_peer); 379 m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadFail, AllowCrossThreadAccess(m_peer), reason)); 356 380 } 357 381 … … 371 395 Peer* peer = m_peer; 372 396 m_peer = 0; 373 m_loaderProxy.postTaskToLoader( 374 createCallbackTask(&mainThreadDestroy, AllowCrossThreadAccess(peer))); 397 m_loaderProxy.postTaskToLoader(createCallbackTask(&mainThreadDestroy, AllowCrossThreadAccess(peer))); 375 398 } 376 399 m_workerContext = 0; … … 389 412 { 390 413 ASSERT(m_peer); 391 m_loaderProxy.postTaskToLoader( 392 createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSuspend, AllowCrossThreadAccess(m_peer))); 414 m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadSuspend, AllowCrossThreadAccess(m_peer))); 393 415 } 394 416 … … 405 427 { 406 428 ASSERT(m_peer); 407 m_loaderProxy.postTaskToLoader( 408 createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadResume, AllowCrossThreadAccess(m_peer))); 429 m_loaderProxy.postTaskToLoader(createCallbackTask(&WorkerThreadableWebSocketChannel::mainThreadResume, AllowCrossThreadAccess(m_peer))); 409 430 } 410 431 -
trunk/Source/WebCore/websockets/WorkerThreadableWebSocketChannel.h
r76248 r87139 65 65 virtual unsigned long bufferedAmount() const; 66 66 virtual void close(); 67 virtual void fail(const String& reason); 67 68 virtual void disconnect(); // Will suppress didClose(). 68 69 virtual void suspend(); … … 92 93 void bufferedAmount(); 93 94 void close(); 95 void fail(const String& reason); 94 96 void disconnect(); 95 97 void suspend(); … … 121 123 unsigned long bufferedAmount(); 122 124 void close(); 125 void fail(const String& reason); 123 126 void disconnect(); 124 127 void suspend(); … … 155 158 static void mainThreadBufferedAmount(ScriptExecutionContext*, Peer*); 156 159 static void mainThreadClose(ScriptExecutionContext*, Peer*); 160 static void mainThreadFail(ScriptExecutionContext*, Peer*, const String& reason); 157 161 static void mainThreadDestroy(ScriptExecutionContext*, Peer*); 158 162 static void mainThreadSuspend(ScriptExecutionContext*, Peer*);
Note: See TracChangeset
for help on using the changeset viewer.