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

Side by Side Diff: third_party/WebKit/Source/modules/websockets/DocumentWebSocketChannel.cpp

Issue 2240053002: Replace WTF_LOG() with NETWORK_DVLOG() or RESOURCE_LOADING_DVLOG(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add files Created 4 years, 4 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 27 matching lines...) Expand all
38 #include "core/fileapi/FileReaderLoaderClient.h" 38 #include "core/fileapi/FileReaderLoaderClient.h"
39 #include "core/frame/LocalFrame.h" 39 #include "core/frame/LocalFrame.h"
40 #include "core/inspector/ConsoleMessage.h" 40 #include "core/inspector/ConsoleMessage.h"
41 #include "core/inspector/InspectorInstrumentation.h" 41 #include "core/inspector/InspectorInstrumentation.h"
42 #include "core/loader/FrameLoader.h" 42 #include "core/loader/FrameLoader.h"
43 #include "core/loader/FrameLoaderClient.h" 43 #include "core/loader/FrameLoaderClient.h"
44 #include "core/loader/MixedContentChecker.h" 44 #include "core/loader/MixedContentChecker.h"
45 #include "modules/websockets/InspectorWebSocketEvents.h" 45 #include "modules/websockets/InspectorWebSocketEvents.h"
46 #include "modules/websockets/WebSocketChannelClient.h" 46 #include "modules/websockets/WebSocketChannelClient.h"
47 #include "modules/websockets/WebSocketFrame.h" 47 #include "modules/websockets/WebSocketFrame.h"
48 #include "platform/Logging.h" 48 #include "platform/network/NetworkLog.h"
49 #include "platform/network/WebSocketHandshakeRequest.h" 49 #include "platform/network/WebSocketHandshakeRequest.h"
50 #include "platform/weborigin/SecurityOrigin.h" 50 #include "platform/weborigin/SecurityOrigin.h"
51 #include "public/platform/Platform.h" 51 #include "public/platform/Platform.h"
52 #include "public/platform/WebSecurityOrigin.h" 52 #include "public/platform/WebSecurityOrigin.h"
53 #include "public/platform/WebString.h" 53 #include "public/platform/WebString.h"
54 #include "public/platform/WebURL.h" 54 #include "public/platform/WebURL.h"
55 #include "public/platform/WebVector.h" 55 #include "public/platform/WebVector.h"
56 #include "public/platform/modules/websockets/WebSocketHandshakeRequestInfo.h" 56 #include "public/platform/modules/websockets/WebSocketHandshakeRequestInfo.h"
57 #include "public/platform/modules/websockets/WebSocketHandshakeResponseInfo.h" 57 #include "public/platform/modules/websockets/WebSocketHandshakeResponseInfo.h"
58 #include "wtf/PtrUtil.h" 58 #include "wtf/PtrUtil.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 { 146 {
147 } 147 }
148 148
149 DocumentWebSocketChannel::~DocumentWebSocketChannel() 149 DocumentWebSocketChannel::~DocumentWebSocketChannel()
150 { 150 {
151 ASSERT(!m_blobLoader); 151 ASSERT(!m_blobLoader);
152 } 152 }
153 153
154 bool DocumentWebSocketChannel::connect(const KURL& url, const String& protocol) 154 bool DocumentWebSocketChannel::connect(const KURL& url, const String& protocol)
155 { 155 {
156 WTF_LOG(Network, "DocumentWebSocketChannel %p connect()", this); 156 NETWORK_DVLOG(1) << this << " connect()";
157 if (!m_handle) 157 if (!m_handle)
158 return false; 158 return false;
159 159
160 if (document()->frame()) { 160 if (document()->frame()) {
161 if (MixedContentChecker::shouldBlockWebSocket(document()->frame(), url)) 161 if (MixedContentChecker::shouldBlockWebSocket(document()->frame(), url))
162 return false; 162 return false;
163 } 163 }
164 if (MixedContentChecker::isMixedContent(document()->getSecurityOrigin(), url )) { 164 if (MixedContentChecker::isMixedContent(document()->getSecurityOrigin(), url )) {
165 String message = "Connecting to a non-secure WebSocket server from a sec ure origin is deprecated."; 165 String message = "Connecting to a non-secure WebSocket server from a sec ure origin is deprecated.";
166 document()->addConsoleMessage(ConsoleMessage::create(JSMessageSource, Wa rningMessageLevel, message)); 166 document()->addConsoleMessage(ConsoleMessage::create(JSMessageSource, Wa rningMessageLevel, message));
(...skipping 18 matching lines...) Expand all
185 m_handle->connect(url, webProtocols, WebSecurityOrigin(getExecutionContext() ->getSecurityOrigin()), document()->firstPartyForCookies(), document()->userAgen t(), this); 185 m_handle->connect(url, webProtocols, WebSecurityOrigin(getExecutionContext() ->getSecurityOrigin()), document()->firstPartyForCookies(), document()->userAgen t(), this);
186 186
187 flowControlIfNecessary(); 187 flowControlIfNecessary();
188 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketCreate", TRACE_EVENT_SCO PE_THREAD, "data", InspectorWebSocketCreateEvent::data(document(), m_identifier, url, protocol)); 188 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketCreate", TRACE_EVENT_SCO PE_THREAD, "data", InspectorWebSocketCreateEvent::data(document(), m_identifier, url, protocol));
189 InspectorInstrumentation::didCreateWebSocket(document(), m_identifier, url, protocol); 189 InspectorInstrumentation::didCreateWebSocket(document(), m_identifier, url, protocol);
190 return true; 190 return true;
191 } 191 }
192 192
193 void DocumentWebSocketChannel::send(const CString& message) 193 void DocumentWebSocketChannel::send(const CString& message)
194 { 194 {
195 WTF_LOG(Network, "DocumentWebSocketChannel %p sendText(%s)", this, message.d ata()); 195 NETWORK_DVLOG(1) << this << " sendText(" << message.data() << ")";
tyoshino (SeeGerritForStatus) 2016/08/12 04:50:49 add double quotations for consistency?
tkent 2016/08/12 05:37:18 I added CString stream printer. Please see wtf/te
196 // FIXME: Change the inspector API to show the entire message instead 196 // FIXME: Change the inspector API to show the entire message instead
197 // of individual frames. 197 // of individual frames.
198 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeText, true, message.data(), message.length()); 198 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeText, true, message.data(), message.length());
199 m_messages.append(new Message(message)); 199 m_messages.append(new Message(message));
200 processSendQueue(); 200 processSendQueue();
201 } 201 }
202 202
203 void DocumentWebSocketChannel::send(PassRefPtr<BlobDataHandle> blobDataHandle) 203 void DocumentWebSocketChannel::send(PassRefPtr<BlobDataHandle> blobDataHandle)
204 { 204 {
205 WTF_LOG(Network, "DocumentWebSocketChannel %p sendBlob(%s, %s, %llu)", this, blobDataHandle->uuid().utf8().data(), blobDataHandle->type().utf8().data(), blo bDataHandle->size()); 205 NETWORK_DVLOG(1) << this << " sendBlob(" << blobDataHandle->uuid() << ", " < < blobDataHandle->type() << ", " << blobDataHandle->size() << ")";
206 // FIXME: Change the inspector API to show the entire message instead 206 // FIXME: Change the inspector API to show the entire message instead
207 // of individual frames. 207 // of individual frames.
208 // FIXME: We can't access the data here. 208 // FIXME: We can't access the data here.
209 // Since Binary data are not displayed in Inspector, this does not 209 // Since Binary data are not displayed in Inspector, this does not
210 // affect actual behavior. 210 // affect actual behavior.
211 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, "", 0); 211 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, "", 0);
212 m_messages.append(new Message(blobDataHandle)); 212 m_messages.append(new Message(blobDataHandle));
213 processSendQueue(); 213 processSendQueue();
214 } 214 }
215 215
216 void DocumentWebSocketChannel::send(const DOMArrayBuffer& buffer, unsigned byteO ffset, unsigned byteLength) 216 void DocumentWebSocketChannel::send(const DOMArrayBuffer& buffer, unsigned byteO ffset, unsigned byteLength)
217 { 217 {
218 WTF_LOG(Network, "DocumentWebSocketChannel %p sendArrayBuffer(%p, %u, %u)", this, buffer.data(), byteOffset, byteLength); 218 NETWORK_DVLOG(1) << this << " sendArrayBuffer(" << buffer.data() << ", " << byteOffset << ", " << byteLength << ")";
219 // FIXME: Change the inspector API to show the entire message instead 219 // FIXME: Change the inspector API to show the entire message instead
220 // of individual frames. 220 // of individual frames.
221 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, static_cast<const char*>(buffer.data()) + byte Offset, byteLength); 221 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, static_cast<const char*>(buffer.data()) + byte Offset, byteLength);
222 // buffer.slice copies its contents. 222 // buffer.slice copies its contents.
223 // FIXME: Reduce copy by sending the data immediately when we don't need to 223 // FIXME: Reduce copy by sending the data immediately when we don't need to
224 // queue the data. 224 // queue the data.
225 m_messages.append(new Message(buffer.slice(byteOffset, byteOffset + byteLeng th))); 225 m_messages.append(new Message(buffer.slice(byteOffset, byteOffset + byteLeng th)));
226 processSendQueue(); 226 processSendQueue();
227 } 227 }
228 228
229 void DocumentWebSocketChannel::sendTextAsCharVector(std::unique_ptr<Vector<char> > data) 229 void DocumentWebSocketChannel::sendTextAsCharVector(std::unique_ptr<Vector<char> > data)
230 { 230 {
231 WTF_LOG(Network, "DocumentWebSocketChannel %p sendTextAsCharVector(%p, %llu) ", this, data.get(), static_cast<unsigned long long>(data->size())); 231 NETWORK_DVLOG(1) << this << " sendTextAsCharVector(" << static_cast<void*>(d ata.get()) << ", " << data->size() << ")";
232 // FIXME: Change the inspector API to show the entire message instead 232 // FIXME: Change the inspector API to show the entire message instead
233 // of individual frames. 233 // of individual frames.
234 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeText, true, data->data(), data->size()); 234 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeText, true, data->data(), data->size());
235 m_messages.append(new Message(std::move(data), MessageTypeTextAsCharVector)) ; 235 m_messages.append(new Message(std::move(data), MessageTypeTextAsCharVector)) ;
236 processSendQueue(); 236 processSendQueue();
237 } 237 }
238 238
239 void DocumentWebSocketChannel::sendBinaryAsCharVector(std::unique_ptr<Vector<cha r>> data) 239 void DocumentWebSocketChannel::sendBinaryAsCharVector(std::unique_ptr<Vector<cha r>> data)
240 { 240 {
241 WTF_LOG(Network, "DocumentWebSocketChannel %p sendBinaryAsCharVector(%p, %ll u)", this, data.get(), static_cast<unsigned long long>(data->size())); 241 NETWORK_DVLOG(1) << this << " sendBinaryAsCharVector(" << static_cast<void*> (data.get()) << ", " << data->size() << ")";
242 // FIXME: Change the inspector API to show the entire message instead 242 // FIXME: Change the inspector API to show the entire message instead
243 // of individual frames. 243 // of individual frames.
244 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, data->data(), data->size()); 244 InspectorInstrumentation::didSendWebSocketFrame(document(), m_identifier, We bSocketFrame::OpCodeBinary, true, data->data(), data->size());
245 m_messages.append(new Message(std::move(data), MessageTypeBinaryAsCharVector )); 245 m_messages.append(new Message(std::move(data), MessageTypeBinaryAsCharVector ));
246 processSendQueue(); 246 processSendQueue();
247 } 247 }
248 248
249 void DocumentWebSocketChannel::close(int code, const String& reason) 249 void DocumentWebSocketChannel::close(int code, const String& reason)
250 { 250 {
251 WTF_LOG(Network, "DocumentWebSocketChannel %p close(%d, %s)", this, code, re ason.utf8().data()); 251 NETWORK_DVLOG(1) << this << " close(" << code << ", " << reason << ")";
252 ASSERT(m_handle); 252 ASSERT(m_handle);
253 unsigned short codeToSend = static_cast<unsigned short>(code == CloseEventCo deNotSpecified ? CloseEventCodeNoStatusRcvd : code); 253 unsigned short codeToSend = static_cast<unsigned short>(code == CloseEventCo deNotSpecified ? CloseEventCodeNoStatusRcvd : code);
254 m_messages.append(new Message(codeToSend, reason)); 254 m_messages.append(new Message(codeToSend, reason));
255 processSendQueue(); 255 processSendQueue();
256 } 256 }
257 257
258 void DocumentWebSocketChannel::fail(const String& reason, MessageLevel level, st d::unique_ptr<SourceLocation> location) 258 void DocumentWebSocketChannel::fail(const String& reason, MessageLevel level, st d::unique_ptr<SourceLocation> location)
259 { 259 {
260 WTF_LOG(Network, "DocumentWebSocketChannel %p fail(%s)", this, reason.utf8() .data()); 260 NETWORK_DVLOG(1) << this << " fail(" << reason << ")";
261 // m_handle and m_client can be null here. 261 // m_handle and m_client can be null here.
262 262
263 InspectorInstrumentation::didReceiveWebSocketFrameError(document(), m_identi fier, reason); 263 InspectorInstrumentation::didReceiveWebSocketFrameError(document(), m_identi fier, reason);
264 const String message = "WebSocket connection to '" + m_url.elidedString() + "' failed: " + reason; 264 const String message = "WebSocket connection to '" + m_url.elidedString() + "' failed: " + reason;
265 getExecutionContext()->addConsoleMessage(ConsoleMessage::create(JSMessageSou rce, level, message, std::move(location))); 265 getExecutionContext()->addConsoleMessage(ConsoleMessage::create(JSMessageSou rce, level, message, std::move(location)));
266 266
267 if (m_client) 267 if (m_client)
268 m_client->didError(); 268 m_client->didError();
269 // |reason| is only for logging and should not be provided for scripts, 269 // |reason| is only for logging and should not be provided for scripts,
270 // hence close reason must be empty. 270 // hence close reason must be empty.
271 handleDidClose(false, CloseEventCodeAbnormalClosure, String()); 271 handleDidClose(false, CloseEventCodeAbnormalClosure, String());
272 // handleDidClose may delete this object. 272 // handleDidClose may delete this object.
273 } 273 }
274 274
275 void DocumentWebSocketChannel::disconnect() 275 void DocumentWebSocketChannel::disconnect()
276 { 276 {
277 WTF_LOG(Network, "DocumentWebSocketChannel %p disconnect()", this); 277 NETWORK_DVLOG(1) << this << " disconnect()";
278 if (m_identifier) { 278 if (m_identifier) {
279 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketDestroy", TRACE_EVEN T_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_identifier)) ; 279 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketDestroy", TRACE_EVEN T_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_identifier)) ;
280 InspectorInstrumentation::didCloseWebSocket(document(), m_identifier); 280 InspectorInstrumentation::didCloseWebSocket(document(), m_identifier);
281 } 281 }
282 abortAsyncOperations(); 282 abortAsyncOperations();
283 m_handle.reset(); 283 m_handle.reset();
284 m_client = nullptr; 284 m_client = nullptr;
285 m_identifier = 0; 285 m_identifier = 0;
286 } 286 }
287 287
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 Document* DocumentWebSocketChannel::document() 406 Document* DocumentWebSocketChannel::document()
407 { 407 {
408 // This context is always a Document. See the constructor. 408 // This context is always a Document. See the constructor.
409 ExecutionContext* context = getExecutionContext(); 409 ExecutionContext* context = getExecutionContext();
410 ASSERT(context->isDocument()); 410 ASSERT(context->isDocument());
411 return toDocument(context); 411 return toDocument(context);
412 } 412 }
413 413
414 void DocumentWebSocketChannel::didConnect(WebSocketHandle* handle, const WebStri ng& selectedProtocol, const WebString& extensions) 414 void DocumentWebSocketChannel::didConnect(WebSocketHandle* handle, const WebStri ng& selectedProtocol, const WebString& extensions)
415 { 415 {
416 WTF_LOG(Network, "DocumentWebSocketChannel %p didConnect(%p, %s, %s)", this, handle, selectedProtocol.utf8().c_str(), extensions.utf8().c_str()); 416 NETWORK_DVLOG(1) << this << " didConnect(" << handle << ", " << String(selec tedProtocol) << ", " << String(extensions) << ")";
417 417
418 ASSERT(m_handle); 418 ASSERT(m_handle);
419 ASSERT(handle == m_handle.get()); 419 ASSERT(handle == m_handle.get());
420 ASSERT(m_client); 420 ASSERT(m_client);
421 421
422 m_client->didConnect(selectedProtocol, extensions); 422 m_client->didConnect(selectedProtocol, extensions);
423 } 423 }
424 424
425 void DocumentWebSocketChannel::didStartOpeningHandshake(WebSocketHandle* handle, const WebSocketHandshakeRequestInfo& request) 425 void DocumentWebSocketChannel::didStartOpeningHandshake(WebSocketHandle* handle, const WebSocketHandshakeRequestInfo& request)
426 { 426 {
427 WTF_LOG(Network, "DocumentWebSocketChannel %p didStartOpeningHandshake(%p)", this, handle); 427 NETWORK_DVLOG(1) << this << " didStartOpeningHandshake(" << handle << ")";
428 428
429 ASSERT(m_handle); 429 ASSERT(m_handle);
430 ASSERT(handle == m_handle.get()); 430 ASSERT(handle == m_handle.get());
431 431
432 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketSendHandshakeRequest", T RACE_EVENT_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_ide ntifier)); 432 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketSendHandshakeRequest", T RACE_EVENT_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_ide ntifier));
433 InspectorInstrumentation::willSendWebSocketHandshakeRequest(document(), m_id entifier, &request.toCoreRequest()); 433 InspectorInstrumentation::willSendWebSocketHandshakeRequest(document(), m_id entifier, &request.toCoreRequest());
434 m_handshakeRequest = WebSocketHandshakeRequest::create(request.toCoreRequest ()); 434 m_handshakeRequest = WebSocketHandshakeRequest::create(request.toCoreRequest ());
435 } 435 }
436 436
437 void DocumentWebSocketChannel::didFinishOpeningHandshake(WebSocketHandle* handle , const WebSocketHandshakeResponseInfo& response) 437 void DocumentWebSocketChannel::didFinishOpeningHandshake(WebSocketHandle* handle , const WebSocketHandshakeResponseInfo& response)
438 { 438 {
439 WTF_LOG(Network, "DocumentWebSocketChannel %p didFinishOpeningHandshake(%p)" , this, handle); 439 NETWORK_DVLOG(1) << this << " didFinishOpeningHandshake(" << handle << ")";
440 440
441 ASSERT(m_handle); 441 ASSERT(m_handle);
442 ASSERT(handle == m_handle.get()); 442 ASSERT(handle == m_handle.get());
443 443
444 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketReceiveHandshakeResponse ", TRACE_EVENT_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m _identifier)); 444 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketReceiveHandshakeResponse ", TRACE_EVENT_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m _identifier));
445 InspectorInstrumentation::didReceiveWebSocketHandshakeResponse(document(), m _identifier, m_handshakeRequest.get(), &response.toCoreResponse()); 445 InspectorInstrumentation::didReceiveWebSocketHandshakeResponse(document(), m _identifier, m_handshakeRequest.get(), &response.toCoreResponse());
446 m_handshakeRequest.clear(); 446 m_handshakeRequest.clear();
447 } 447 }
448 448
449 void DocumentWebSocketChannel::didFail(WebSocketHandle* handle, const WebString& message) 449 void DocumentWebSocketChannel::didFail(WebSocketHandle* handle, const WebString& message)
450 { 450 {
451 WTF_LOG(Network, "DocumentWebSocketChannel %p didFail(%p, %s)", this, handle , message.utf8().data()); 451 NETWORK_DVLOG(1) << this << " didFail(" << handle << ", " << String(message) << ")";
452 452
453 ASSERT(m_handle); 453 ASSERT(m_handle);
454 ASSERT(handle == m_handle.get()); 454 ASSERT(handle == m_handle.get());
455 455
456 // This function is called when the browser is required to fail the 456 // This function is called when the browser is required to fail the
457 // WebSocketConnection. Hence we fail this channel by calling 457 // WebSocketConnection. Hence we fail this channel by calling
458 // |this->failAsError| function. 458 // |this->failAsError| function.
459 failAsError(message); 459 failAsError(message);
460 // |this| may be deleted. 460 // |this| may be deleted.
461 } 461 }
462 462
463 void DocumentWebSocketChannel::didReceiveData(WebSocketHandle* handle, bool fin, WebSocketHandle::MessageType type, const char* data, size_t size) 463 void DocumentWebSocketChannel::didReceiveData(WebSocketHandle* handle, bool fin, WebSocketHandle::MessageType type, const char* data, size_t size)
464 { 464 {
465 WTF_LOG(Network, "DocumentWebSocketChannel %p didReceiveData(%p, %d, %d, (%p , %zu))", this, handle, fin, type, data, size); 465 NETWORK_DVLOG(1) << this << " didReceiveData(" << handle << ", " << fin << " , " << type << ", (" << static_cast<const void*>(data) << ", " << size << "))";
466 466
467 ASSERT(m_handle); 467 ASSERT(m_handle);
468 ASSERT(handle == m_handle.get()); 468 ASSERT(handle == m_handle.get());
469 ASSERT(m_client); 469 ASSERT(m_client);
470 // Non-final frames cannot be empty. 470 // Non-final frames cannot be empty.
471 ASSERT(fin || size); 471 ASSERT(fin || size);
472 472
473 switch (type) { 473 switch (type) {
474 case WebSocketHandle::MessageTypeText: 474 case WebSocketHandle::MessageTypeText:
475 ASSERT(m_receivingMessageData.isEmpty()); 475 ASSERT(m_receivingMessageData.isEmpty());
(...skipping 30 matching lines...) Expand all
506 } 506 }
507 } else { 507 } else {
508 std::unique_ptr<Vector<char>> binaryData = wrapUnique(new Vector<char>); 508 std::unique_ptr<Vector<char>> binaryData = wrapUnique(new Vector<char>);
509 binaryData->swap(m_receivingMessageData); 509 binaryData->swap(m_receivingMessageData);
510 m_client->didReceiveBinaryMessage(std::move(binaryData)); 510 m_client->didReceiveBinaryMessage(std::move(binaryData));
511 } 511 }
512 } 512 }
513 513
514 void DocumentWebSocketChannel::didClose(WebSocketHandle* handle, bool wasClean, unsigned short code, const WebString& reason) 514 void DocumentWebSocketChannel::didClose(WebSocketHandle* handle, bool wasClean, unsigned short code, const WebString& reason)
515 { 515 {
516 WTF_LOG(Network, "DocumentWebSocketChannel %p didClose(%p, %d, %u, %s)", thi s, handle, wasClean, code, String(reason).utf8().data()); 516 NETWORK_DVLOG(1) << this << " didClose(" << handle << ", " << wasClean << ", " << code << ", " << String(reason) << ")";
517 517
518 ASSERT(m_handle); 518 ASSERT(m_handle);
519 ASSERT(handle == m_handle.get()); 519 ASSERT(handle == m_handle.get());
520 520
521 m_handle.reset(); 521 m_handle.reset();
522 522
523 if (m_identifier) { 523 if (m_identifier) {
524 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketDestroy", TRACE_EVEN T_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_identifier)) ; 524 TRACE_EVENT_INSTANT1("devtools.timeline", "WebSocketDestroy", TRACE_EVEN T_SCOPE_THREAD, "data", InspectorWebSocketEvent::data(document(), m_identifier)) ;
525 InspectorInstrumentation::didCloseWebSocket(document(), m_identifier); 525 InspectorInstrumentation::didCloseWebSocket(document(), m_identifier);
526 m_identifier = 0; 526 m_identifier = 0;
527 } 527 }
528 528
529 handleDidClose(wasClean, code, reason); 529 handleDidClose(wasClean, code, reason);
530 // handleDidClose may delete this object. 530 // handleDidClose may delete this object.
531 } 531 }
532 532
533 void DocumentWebSocketChannel::didReceiveFlowControl(WebSocketHandle* handle, in t64_t quota) 533 void DocumentWebSocketChannel::didReceiveFlowControl(WebSocketHandle* handle, in t64_t quota)
534 { 534 {
535 WTF_LOG(Network, "DocumentWebSocketChannel %p didReceiveFlowControl(%p, %ld) ", this, handle, static_cast<long>(quota)); 535 NETWORK_DVLOG(1) << this << " didReceiveFlowControl(" << handle << ", " << q uota << ")";
536 536
537 ASSERT(m_handle); 537 ASSERT(m_handle);
538 ASSERT(handle == m_handle.get()); 538 ASSERT(handle == m_handle.get());
539 ASSERT(quota >= 0); 539 ASSERT(quota >= 0);
540 540
541 m_sendingQuota += quota; 541 m_sendingQuota += quota;
542 processSendQueue(); 542 processSendQueue();
543 } 543 }
544 544
545 void DocumentWebSocketChannel::didStartClosingHandshake(WebSocketHandle* handle) 545 void DocumentWebSocketChannel::didStartClosingHandshake(WebSocketHandle* handle)
546 { 546 {
547 WTF_LOG(Network, "DocumentWebSocketChannel %p didStartClosingHandshake(%p)", this, handle); 547 NETWORK_DVLOG(1) << this << " didStartClosingHandshake(" << handle << ")";
548 548
549 ASSERT(m_handle); 549 ASSERT(m_handle);
550 ASSERT(handle == m_handle.get()); 550 ASSERT(handle == m_handle.get());
551 551
552 if (m_client) 552 if (m_client)
553 m_client->didStartClosingHandshake(); 553 m_client->didStartClosingHandshake();
554 } 554 }
555 555
556 void DocumentWebSocketChannel::didFinishLoadingBlob(DOMArrayBuffer* buffer) 556 void DocumentWebSocketChannel::didFinishLoadingBlob(DOMArrayBuffer* buffer)
557 { 557 {
(...skipping 20 matching lines...) Expand all
578 578
579 DEFINE_TRACE(DocumentWebSocketChannel) 579 DEFINE_TRACE(DocumentWebSocketChannel)
580 { 580 {
581 visitor->trace(m_blobLoader); 581 visitor->trace(m_blobLoader);
582 visitor->trace(m_messages); 582 visitor->trace(m_messages);
583 visitor->trace(m_client); 583 visitor->trace(m_client);
584 WebSocketChannel::trace(visitor); 584 WebSocketChannel::trace(visitor);
585 ContextLifecycleObserver::trace(visitor); 585 ContextLifecycleObserver::trace(visitor);
586 } 586 }
587 587
588 std::ostream& operator<<(std::ostream& ostream, const DocumentWebSocketChannel* channel)
589 {
590 return ostream << "DocumentWebSocketChannel " << static_cast<const void*>(ch annel);
591 }
592
588 } // namespace blink 593 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698