Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: content/child/websocket_bridge.cc

Issue 897563002: Unify the three places that patch font loading for PDFium on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/child/websocket_bridge.h" 5 #include "content/child/websocket_bridge.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
14 #include "content/child/child_thread.h" 14 #include "content/child/child_thread_impl.h"
15 #include "content/child/websocket_dispatcher.h" 15 #include "content/child/websocket_dispatcher.h"
16 #include "content/common/websocket.h" 16 #include "content/common/websocket.h"
17 #include "content/common/websocket_messages.h" 17 #include "content/common/websocket_messages.h"
18 #include "ipc/ipc_message.h" 18 #include "ipc/ipc_message.h"
19 #include "ipc/ipc_message_macros.h" 19 #include "ipc/ipc_message_macros.h"
20 #include "third_party/WebKit/public/platform/WebSerializedOrigin.h" 20 #include "third_party/WebKit/public/platform/WebSerializedOrigin.h"
21 #include "third_party/WebKit/public/platform/WebSocketHandle.h" 21 #include "third_party/WebKit/public/platform/WebSocketHandle.h"
22 #include "third_party/WebKit/public/platform/WebSocketHandleClient.h" 22 #include "third_party/WebKit/public/platform/WebSocketHandleClient.h"
23 #include "third_party/WebKit/public/platform/WebSocketHandshakeRequestInfo.h" 23 #include "third_party/WebKit/public/platform/WebSocketHandshakeRequestInfo.h"
24 #include "third_party/WebKit/public/platform/WebSocketHandshakeResponseInfo.h" 24 #include "third_party/WebKit/public/platform/WebSocketHandshakeResponseInfo.h"
(...skipping 20 matching lines...) Expand all
45 45
46 WebSocketBridge::WebSocketBridge() 46 WebSocketBridge::WebSocketBridge()
47 : channel_id_(kInvalidChannelId), 47 : channel_id_(kInvalidChannelId),
48 render_frame_id_(MSG_ROUTING_NONE), 48 render_frame_id_(MSG_ROUTING_NONE),
49 client_(NULL) {} 49 client_(NULL) {}
50 50
51 WebSocketBridge::~WebSocketBridge() { 51 WebSocketBridge::~WebSocketBridge() {
52 if (channel_id_ != kInvalidChannelId) { 52 if (channel_id_ != kInvalidChannelId) {
53 // The connection is abruptly disconnected by the renderer without 53 // The connection is abruptly disconnected by the renderer without
54 // closing handshake. 54 // closing handshake.
55 ChildThread::current()->Send( 55 ChildThreadImpl::current()->Send(
56 new WebSocketMsg_DropChannel(channel_id_, 56 new WebSocketMsg_DropChannel(channel_id_,
57 false, 57 false,
58 kAbnormalShutdownOpCode, 58 kAbnormalShutdownOpCode,
59 std::string())); 59 std::string()));
60 } 60 }
61 Disconnect(); 61 Disconnect();
62 } 62 }
63 63
64 bool WebSocketBridge::OnMessageReceived(const IPC::Message& msg) { 64 bool WebSocketBridge::OnMessageReceived(const IPC::Message& msg) {
65 bool handled = true; 65 bool handled = true;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 // |this| can be deleted here. 207 // |this| can be deleted here.
208 } 208 }
209 209
210 void WebSocketBridge::connect( 210 void WebSocketBridge::connect(
211 const WebURL& url, 211 const WebURL& url,
212 const WebVector<WebString>& protocols, 212 const WebVector<WebString>& protocols,
213 const WebSerializedOrigin& origin, 213 const WebSerializedOrigin& origin,
214 WebSocketHandleClient* client) { 214 WebSocketHandleClient* client) {
215 DCHECK_EQ(kInvalidChannelId, channel_id_); 215 DCHECK_EQ(kInvalidChannelId, channel_id_);
216 WebSocketDispatcher* dispatcher = 216 WebSocketDispatcher* dispatcher =
217 ChildThread::current()->websocket_dispatcher(); 217 ChildThreadImpl::current()->websocket_dispatcher();
218 channel_id_ = dispatcher->AddBridge(this); 218 channel_id_ = dispatcher->AddBridge(this);
219 client_ = client; 219 client_ = client;
220 220
221 std::vector<std::string> protocols_to_pass; 221 std::vector<std::string> protocols_to_pass;
222 for (size_t i = 0; i < protocols.size(); ++i) 222 for (size_t i = 0; i < protocols.size(); ++i)
223 protocols_to_pass.push_back(protocols[i].utf8()); 223 protocols_to_pass.push_back(protocols[i].utf8());
224 url::Origin origin_to_pass(origin); 224 url::Origin origin_to_pass(origin);
225 225
226 DVLOG(1) << "Bridge#" << channel_id_ << " Connect(" << url << ", (" 226 DVLOG(1) << "Bridge#" << channel_id_ << " Connect(" << url << ", ("
227 << JoinString(protocols_to_pass, ", ") << "), " 227 << JoinString(protocols_to_pass, ", ") << "), "
228 << origin_to_pass.string() << ")"; 228 << origin_to_pass.string() << ")";
229 229
230 ChildThread::current()->Send(new WebSocketHostMsg_AddChannelRequest( 230 ChildThreadImpl::current()->Send(new WebSocketHostMsg_AddChannelRequest(
231 channel_id_, url, protocols_to_pass, origin_to_pass, render_frame_id_)); 231 channel_id_, url, protocols_to_pass, origin_to_pass, render_frame_id_));
232 } 232 }
233 233
234 void WebSocketBridge::send(bool fin, 234 void WebSocketBridge::send(bool fin,
235 WebSocketHandle::MessageType type, 235 WebSocketHandle::MessageType type,
236 const char* data, 236 const char* data,
237 size_t size) { 237 size_t size) {
238 if (channel_id_ == kInvalidChannelId) 238 if (channel_id_ == kInvalidChannelId)
239 return; 239 return;
240 240
241 WebSocketMessageType type_to_pass = WEB_SOCKET_MESSAGE_TYPE_CONTINUATION; 241 WebSocketMessageType type_to_pass = WEB_SOCKET_MESSAGE_TYPE_CONTINUATION;
242 switch (type) { 242 switch (type) {
243 case WebSocketHandle::MessageTypeContinuation: 243 case WebSocketHandle::MessageTypeContinuation:
244 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_CONTINUATION; 244 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_CONTINUATION;
245 break; 245 break;
246 case WebSocketHandle::MessageTypeText: 246 case WebSocketHandle::MessageTypeText:
247 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_TEXT; 247 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_TEXT;
248 break; 248 break;
249 case WebSocketHandle::MessageTypeBinary: 249 case WebSocketHandle::MessageTypeBinary:
250 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_BINARY; 250 type_to_pass = WEB_SOCKET_MESSAGE_TYPE_BINARY;
251 break; 251 break;
252 } 252 }
253 253
254 DVLOG(1) << "Bridge #" << channel_id_ << " Send(" 254 DVLOG(1) << "Bridge #" << channel_id_ << " Send("
255 << fin << ", " << type_to_pass << ", " 255 << fin << ", " << type_to_pass << ", "
256 << "(data size = " << size << "))"; 256 << "(data size = " << size << "))";
257 257
258 ChildThread::current()->Send( 258 ChildThreadImpl::current()->Send(
259 new WebSocketMsg_SendFrame(channel_id_, 259 new WebSocketMsg_SendFrame(channel_id_,
260 fin, 260 fin,
261 type_to_pass, 261 type_to_pass,
262 std::vector<char>(data, data + size))); 262 std::vector<char>(data, data + size)));
263 } 263 }
264 264
265 void WebSocketBridge::flowControl(int64_t quota) { 265 void WebSocketBridge::flowControl(int64_t quota) {
266 if (channel_id_ == kInvalidChannelId) 266 if (channel_id_ == kInvalidChannelId)
267 return; 267 return;
268 268
269 DVLOG(1) << "Bridge #" << channel_id_ << " FlowControl(" << quota << ")"; 269 DVLOG(1) << "Bridge #" << channel_id_ << " FlowControl(" << quota << ")";
270 270
271 ChildThread::current()->Send( 271 ChildThreadImpl::current()->Send(
272 new WebSocketMsg_FlowControl(channel_id_, quota)); 272 new WebSocketMsg_FlowControl(channel_id_, quota));
273 } 273 }
274 274
275 void WebSocketBridge::close(unsigned short code, 275 void WebSocketBridge::close(unsigned short code,
276 const WebString& reason) { 276 const WebString& reason) {
277 if (channel_id_ == kInvalidChannelId) 277 if (channel_id_ == kInvalidChannelId)
278 return; 278 return;
279 279
280 std::string reason_to_pass = reason.utf8(); 280 std::string reason_to_pass = reason.utf8();
281 DVLOG(1) << "Bridge #" << channel_id_ << " Close(" 281 DVLOG(1) << "Bridge #" << channel_id_ << " Close("
282 << code << ", " << reason_to_pass << ")"; 282 << code << ", " << reason_to_pass << ")";
283 // This method is for closing handshake and hence |was_clean| shall be true. 283 // This method is for closing handshake and hence |was_clean| shall be true.
284 ChildThread::current()->Send( 284 ChildThreadImpl::current()->Send(
285 new WebSocketMsg_DropChannel(channel_id_, true, code, reason_to_pass)); 285 new WebSocketMsg_DropChannel(channel_id_, true, code, reason_to_pass));
286 } 286 }
287 287
288 void WebSocketBridge::Disconnect() { 288 void WebSocketBridge::Disconnect() {
289 if (channel_id_ == kInvalidChannelId) 289 if (channel_id_ == kInvalidChannelId)
290 return; 290 return;
291 WebSocketDispatcher* dispatcher = 291 WebSocketDispatcher* dispatcher =
292 ChildThread::current()->websocket_dispatcher(); 292 ChildThreadImpl::current()->websocket_dispatcher();
293 dispatcher->RemoveBridge(channel_id_); 293 dispatcher->RemoveBridge(channel_id_);
294 294
295 channel_id_ = kInvalidChannelId; 295 channel_id_ = kInvalidChannelId;
296 client_ = NULL; 296 client_ = NULL;
297 } 297 }
298 298
299 } // namespace content 299 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698