| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 m_state = Stopped; | 118 m_state = Stopped; |
| 119 m_resumeTimer.stop(); | 119 m_resumeTimer.stop(); |
| 120 m_events.clear(); | 120 m_events.clear(); |
| 121 } | 121 } |
| 122 | 122 |
| 123 void DOMWebSocket::EventQueue::dispatchQueuedEvents() | 123 void DOMWebSocket::EventQueue::dispatchQueuedEvents() |
| 124 { | 124 { |
| 125 if (m_state != Active) | 125 if (m_state != Active) |
| 126 return; | 126 return; |
| 127 | 127 |
| 128 WillBeHeapDeque<RefPtrWillBeMember<Event> > events; | 128 WillBeHeapDeque<RefPtrWillBeMember<Event>> events; |
| 129 events.swap(m_events); | 129 events.swap(m_events); |
| 130 while (!events.isEmpty()) { | 130 while (!events.isEmpty()) { |
| 131 if (m_state == Stopped || m_state == Suspended) | 131 if (m_state == Stopped || m_state == Suspended) |
| 132 break; | 132 break; |
| 133 ASSERT(m_state == Active); | 133 ASSERT(m_state == Active); |
| 134 ASSERT(m_target->executionContext()); | 134 ASSERT(m_target->executionContext()); |
| 135 m_target->dispatchEvent(events.takeFirst()); | 135 m_target->dispatchEvent(events.takeFirst()); |
| 136 // |this| can be stopped here. | 136 // |this| can be stopped here. |
| 137 } | 137 } |
| 138 if (m_state == Suspended) { | 138 if (m_state == Suspended) { |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 } | 587 } |
| 588 | 588 |
| 589 void DOMWebSocket::didReceiveTextMessage(const String& msg) | 589 void DOMWebSocket::didReceiveTextMessage(const String& msg) |
| 590 { | 590 { |
| 591 WTF_LOG(Network, "WebSocket %p didReceiveTextMessage() Text message '%s'", t
his, msg.utf8().data()); | 591 WTF_LOG(Network, "WebSocket %p didReceiveTextMessage() Text message '%s'", t
his, msg.utf8().data()); |
| 592 if (m_state != OPEN) | 592 if (m_state != OPEN) |
| 593 return; | 593 return; |
| 594 m_eventQueue->dispatch(MessageEvent::create(msg, SecurityOrigin::create(m_ur
l)->toString())); | 594 m_eventQueue->dispatch(MessageEvent::create(msg, SecurityOrigin::create(m_ur
l)->toString())); |
| 595 } | 595 } |
| 596 | 596 |
| 597 void DOMWebSocket::didReceiveBinaryMessage(PassOwnPtr<Vector<char> > binaryData) | 597 void DOMWebSocket::didReceiveBinaryMessage(PassOwnPtr<Vector<char>> binaryData) |
| 598 { | 598 { |
| 599 WTF_LOG(Network, "WebSocket %p didReceiveBinaryMessage() %lu byte binary mes
sage", this, static_cast<unsigned long>(binaryData->size())); | 599 WTF_LOG(Network, "WebSocket %p didReceiveBinaryMessage() %lu byte binary mes
sage", this, static_cast<unsigned long>(binaryData->size())); |
| 600 switch (m_binaryType) { | 600 switch (m_binaryType) { |
| 601 case BinaryTypeBlob: { | 601 case BinaryTypeBlob: { |
| 602 size_t size = binaryData->size(); | 602 size_t size = binaryData->size(); |
| 603 RefPtr<RawData> rawData = RawData::create(); | 603 RefPtr<RawData> rawData = RawData::create(); |
| 604 binaryData->swap(*rawData->mutableData()); | 604 binaryData->swap(*rawData->mutableData()); |
| 605 OwnPtr<BlobData> blobData = BlobData::create(); | 605 OwnPtr<BlobData> blobData = BlobData::create(); |
| 606 blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); | 606 blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); |
| 607 Blob* blob = Blob::create(BlobDataHandle::create(blobData.release(), siz
e)); | 607 Blob* blob = Blob::create(BlobDataHandle::create(blobData.release(), siz
e)); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 void DOMWebSocket::trace(Visitor* visitor) | 658 void DOMWebSocket::trace(Visitor* visitor) |
| 659 { | 659 { |
| 660 visitor->trace(m_channel); | 660 visitor->trace(m_channel); |
| 661 visitor->trace(m_eventQueue); | 661 visitor->trace(m_eventQueue); |
| 662 WebSocketChannelClient::trace(visitor); | 662 WebSocketChannelClient::trace(visitor); |
| 663 RefCountedGarbageCollectedEventTargetWithInlineData<DOMWebSocket>::trace(vis
itor); | 663 RefCountedGarbageCollectedEventTargetWithInlineData<DOMWebSocket>::trace(vis
itor); |
| 664 ActiveDOMObject::trace(visitor); | 664 ActiveDOMObject::trace(visitor); |
| 665 } | 665 } |
| 666 | 666 |
| 667 } // namespace blink | 667 } // namespace blink |
| OLD | NEW |