|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "net/websockets/websocket_errors.h" | 
|  |  | 
|  | #include "base/logging.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | Error WebSocketErrorToNetError(WebSocketError error) { | 
|  | switch (error) { | 
|  | case kWebSocketNormalClosure: | 
|  | return OK; | 
|  |  | 
|  | case kWebSocketErrorGoingAway:  // TODO(ricea): More specific code? | 
|  | case kWebSocketErrorProtocolError: | 
|  | case kWebSocketErrorUnsupportedData: | 
|  | case kWebSocketErrorInvalidFramePayloadData: | 
|  | case kWebSocketErrorPolicyViolation: | 
|  | case kWebSocketErrorMandatoryExtension: | 
|  | case kWebSocketErrorInternalServerError: | 
|  | return ERR_WS_PROTOCOL_ERROR; | 
|  |  | 
|  | case kWebSocketErrorNoStatusReceived: | 
|  | case kWebSocketErrorAbnormalClosure: | 
|  | return ERR_CONNECTION_CLOSED; | 
|  |  | 
|  | case kWebSocketErrorTlsHandshake: | 
|  | // This error will probably be reported with more detail at a lower layer; | 
|  | // this is the best we can do at this layer. | 
|  | return ERR_SSL_PROTOCOL_ERROR; | 
|  |  | 
|  | case kWebSocketErrorMessageTooBig: | 
|  | return ERR_MSG_TOO_BIG; | 
|  |  | 
|  | default: | 
|  | return ERR_UNEXPECTED; | 
|  | } | 
|  | } | 
|  |  | 
|  | }  // namespace net |