| Index: third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
|
| diff --git a/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp b/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
|
| index 69ff4d44f4029dbd0ce02b4b6b2c13c6ba6569e5..6769f8e98816e4086dc6da2c0561e682c0fe952c 100644
|
| --- a/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
|
| +++ b/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
|
| @@ -73,7 +73,7 @@ DOMWebSocket::EventQueue::EventQueue(EventTarget* target)
|
| m_resumeTimer(this, &EventQueue::resumeTimerFired) {}
|
|
|
| DOMWebSocket::EventQueue::~EventQueue() {
|
| - stop();
|
| + contextDestroyed();
|
| }
|
|
|
| void DOMWebSocket::EventQueue::dispatch(Event* event) {
|
| @@ -112,7 +112,7 @@ void DOMWebSocket::EventQueue::resume() {
|
| m_resumeTimer.startOneShot(0, BLINK_FROM_HERE);
|
| }
|
|
|
| -void DOMWebSocket::EventQueue::stop() {
|
| +void DOMWebSocket::EventQueue::contextDestroyed() {
|
| if (m_state == Stopped)
|
| return;
|
|
|
| @@ -651,9 +651,15 @@ ExecutionContext* DOMWebSocket::getExecutionContext() const {
|
|
|
| void DOMWebSocket::contextDestroyed() {
|
| NETWORK_DVLOG(1) << "WebSocket " << this << " contextDestroyed()";
|
| - DCHECK(!m_channel);
|
| - DCHECK_EQ(kClosed, m_state);
|
| - ActiveDOMObject::contextDestroyed();
|
| + m_eventQueue->contextDestroyed();
|
| + if (m_channel) {
|
| + m_channel->close(WebSocketChannel::CloseEventCodeGoingAway, String());
|
| + releaseChannel();
|
| + }
|
| + if (m_state != kClosed) {
|
| + m_state = kClosed;
|
| + logBinaryTypeChangesAfterOpen();
|
| + }
|
| }
|
|
|
| bool DOMWebSocket::hasPendingActivity() const {
|
| @@ -668,18 +674,6 @@ void DOMWebSocket::resume() {
|
| m_eventQueue->resume();
|
| }
|
|
|
| -void DOMWebSocket::stop() {
|
| - m_eventQueue->stop();
|
| - if (m_channel) {
|
| - m_channel->close(WebSocketChannel::CloseEventCodeGoingAway, String());
|
| - releaseChannel();
|
| - }
|
| - if (m_state != kClosed) {
|
| - m_state = kClosed;
|
| - logBinaryTypeChangesAfterOpen();
|
| - }
|
| -}
|
| -
|
| void DOMWebSocket::didConnect(const String& subprotocol,
|
| const String& extensions) {
|
| NETWORK_DVLOG(1) << "WebSocket " << this << " didConnect()";
|
|
|