OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/proxy/websocket_resource.h" | 5 #include "ppapi/proxy/websocket_resource.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 const PP_Var& reason, | 130 const PP_Var& reason, |
131 scoped_refptr<TrackedCallback> callback) { | 131 scoped_refptr<TrackedCallback> callback) { |
132 if (TrackedCallback::IsPending(close_callback_)) | 132 if (TrackedCallback::IsPending(close_callback_)) |
133 return PP_ERROR_INPROGRESS; | 133 return PP_ERROR_INPROGRESS; |
134 if (state_ == PP_WEBSOCKETREADYSTATE_INVALID) | 134 if (state_ == PP_WEBSOCKETREADYSTATE_INVALID) |
135 return PP_ERROR_FAILED; | 135 return PP_ERROR_FAILED; |
136 | 136 |
137 // Validate |code| and |reason|. | 137 // Validate |code| and |reason|. |
138 scoped_refptr<StringVar> reason_string_var; | 138 scoped_refptr<StringVar> reason_string_var; |
139 std::string reason_string; | 139 std::string reason_string; |
140 WebKit::WebSocket::CloseEventCode event_code = | 140 blink::WebSocket::CloseEventCode event_code = |
141 static_cast<WebKit::WebSocket::CloseEventCode>(code); | 141 static_cast<blink::WebSocket::CloseEventCode>(code); |
142 if (code == PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED) { | 142 if (code == PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED) { |
143 // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED and CloseEventCodeNotSpecified are | 143 // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED and CloseEventCodeNotSpecified are |
144 // assigned to different values. A conversion is needed if | 144 // assigned to different values. A conversion is needed if |
145 // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED is specified. | 145 // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED is specified. |
146 event_code = WebKit::WebSocket::CloseEventCodeNotSpecified; | 146 event_code = blink::WebSocket::CloseEventCodeNotSpecified; |
147 } else { | 147 } else { |
148 if (!(code == PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE || | 148 if (!(code == PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE || |
149 (PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN <= code && | 149 (PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN <= code && |
150 code <= PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX))) | 150 code <= PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX))) |
151 // RFC 6455 limits applications to use reserved connection close code in | 151 // RFC 6455 limits applications to use reserved connection close code in |
152 // section 7.4.2.. The WebSocket API (http://www.w3.org/TR/websockets/) | 152 // section 7.4.2.. The WebSocket API (http://www.w3.org/TR/websockets/) |
153 // defines this out of range error as InvalidAccessError in JavaScript. | 153 // defines this out of range error as InvalidAccessError in JavaScript. |
154 return PP_ERROR_NOACCESS; | 154 return PP_ERROR_NOACCESS; |
155 | 155 |
156 // |reason| must be ignored if it is PP_VARTYPE_UNDEFINED or |code| is | 156 // |reason| must be ignored if it is PP_VARTYPE_UNDEFINED or |code| is |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 return PP_OK; | 485 return PP_OK; |
486 | 486 |
487 *receive_callback_var_ = received_messages_.front()->GetPPVar(); | 487 *receive_callback_var_ = received_messages_.front()->GetPPVar(); |
488 received_messages_.pop(); | 488 received_messages_.pop(); |
489 receive_callback_var_ = NULL; | 489 receive_callback_var_ = NULL; |
490 return PP_OK; | 490 return PP_OK; |
491 } | 491 } |
492 | 492 |
493 } // namespace proxy | 493 } // namespace proxy |
494 } // namespace ppapi | 494 } // namespace ppapi |
OLD | NEW |