| Index: third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
|
| diff --git a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
|
| index ed9a91229fdef6bd8cdf9a98812c1568f0a0e749..afc203027997d53222709b80b1e59e023f0766a0 100644
|
| --- a/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
|
| +++ b/third_party/WebKit/Source/modules/presentation/PresentationConnection.cpp
|
| @@ -314,6 +314,17 @@ void PresentationConnection::didReceiveBinaryMessage(const uint8_t* data, size_t
|
| ASSERT_NOT_REACHED();
|
| }
|
|
|
| +void PresentationConnection::close()
|
| +{
|
| + if (m_state != WebPresentationConnectionState::Connected)
|
| + return;
|
| + WebPresentationClient* client = presentationClient(executionContext());
|
| + if (client)
|
| + client->closeSession(m_url, m_id);
|
| +
|
| + tearDown();
|
| +}
|
| +
|
| void PresentationConnection::terminate()
|
| {
|
| if (m_state != WebPresentationConnectionState::Connected)
|
| @@ -322,15 +333,7 @@ void PresentationConnection::terminate()
|
| if (client)
|
| client->terminateSession(m_url, m_id);
|
|
|
| - // Cancel current Blob loading if any.
|
| - if (m_blobLoader) {
|
| - m_blobLoader->cancel();
|
| - m_blobLoader.clear();
|
| - }
|
| -
|
| - // Clear message queue.
|
| - Deque<OwnPtr<Message>> empty;
|
| - m_messages.swap(empty);
|
| + tearDown();
|
| }
|
|
|
| bool PresentationConnection::matches(WebPresentationConnectionClient* client) const
|
| @@ -371,9 +374,17 @@ void PresentationConnection::didFailLoadingBlob(FileError::ErrorCode errorCode)
|
| handleMessageQueue();
|
| }
|
|
|
| -bool PresentationConnection::isDisconnected() const
|
| +void PresentationConnection::tearDown()
|
| {
|
| - return m_state == WebPresentationConnectionState::Closed || m_state == WebPresentationConnectionState::Terminated;
|
| + // Cancel current Blob loading if any.
|
| + if (m_blobLoader) {
|
| + m_blobLoader->cancel();
|
| + m_blobLoader.clear();
|
| + }
|
| +
|
| + // Clear message queue.
|
| + Deque<OwnPtr<Message>> empty;
|
| + m_messages.swap(empty);
|
| }
|
|
|
| } // namespace blink
|
|
|