| Index: third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp
|
| diff --git a/third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp b/third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp
|
| index 304b9e7f50b5479d98d559115708b264ecf3d726..d6b61db5f15a5e34dc0324eddbd042de05c92a0f 100644
|
| --- a/third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp
|
| +++ b/third_party/WebKit/Source/modules/websockets/WebSocketHandleImpl.cpp
|
| @@ -45,8 +45,8 @@ void WebSocketHandleImpl::initialize(InterfaceProvider* interfaceProvider)
|
| DCHECK(!m_websocket);
|
| interfaceProvider->getInterface(mojo::GetProxy(&m_websocket));
|
|
|
| - m_websocket.set_connection_error_handler(
|
| - convertToBaseCallback(bind(&WebSocketHandleImpl::onConnectionError, unretained(this))));
|
| + m_websocket.set_connection_error_with_reason_handler(
|
| + convertToBaseCallback(WTF::bind(&WebSocketHandleImpl::onConnectionError, unretained(this))));
|
| }
|
|
|
| void WebSocketHandleImpl::connect(const KURL& url, const Vector<String>& protocols, SecurityOrigin* origin, const KURL& firstPartyForCookies, const String& userAgentOverride, WebSocketHandleClient* client)
|
| @@ -122,7 +122,7 @@ void WebSocketHandleImpl::disconnect()
|
| m_client = nullptr;
|
| }
|
|
|
| -void WebSocketHandleImpl::onConnectionError()
|
| +void WebSocketHandleImpl::onConnectionError(uint32_t customReason, const std::string& description)
|
| {
|
| if (!blink::Platform::current()) {
|
| // In the renderrer shutdown sequence, mojo channels are destructed and this
|
| @@ -135,11 +135,14 @@ void WebSocketHandleImpl::onConnectionError()
|
|
|
| // Our connection to the WebSocket was dropped. This could be due to
|
| // exceeding the maximum number of concurrent websockets from this process.
|
| -
|
| - // TODO(darin): Communicate a more specific error here (see crbug/634502).
|
| - OnFailChannel(
|
| - "Error in connection establishment: net:"
|
| - ":ERR_INSUFFICIENT_RESOURCES");
|
| + String failureMessage;
|
| + if (customReason == mojom::blink::WebSocket::kInsufficientResources) {
|
| + failureMessage = description.empty() ? "Insufficient resources" : String::fromUTF8(description.c_str(), description.size());
|
| + } else {
|
| + DCHECK(description.empty());
|
| + failureMessage = "Unspecified reason";
|
| + }
|
| + OnFailChannel(failureMessage);
|
| }
|
|
|
| void WebSocketHandleImpl::OnFailChannel(const String& message)
|
|
|