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

Side by Side Diff: third_party/WebKit/Source/modules/websockets/DOMWebSocket.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: 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "core/dom/SecurityContext.h" 42 #include "core/dom/SecurityContext.h"
43 #include "core/events/MessageEvent.h" 43 #include "core/events/MessageEvent.h"
44 #include "core/fileapi/Blob.h" 44 #include "core/fileapi/Blob.h"
45 #include "core/frame/LocalDOMWindow.h" 45 #include "core/frame/LocalDOMWindow.h"
46 #include "core/frame/LocalFrame.h" 46 #include "core/frame/LocalFrame.h"
47 #include "core/frame/UseCounter.h" 47 #include "core/frame/UseCounter.h"
48 #include "core/frame/csp/ContentSecurityPolicy.h" 48 #include "core/frame/csp/ContentSecurityPolicy.h"
49 #include "core/inspector/ConsoleMessage.h" 49 #include "core/inspector/ConsoleMessage.h"
50 #include "modules/websockets/CloseEvent.h" 50 #include "modules/websockets/CloseEvent.h"
51 #include "platform/Histogram.h" 51 #include "platform/Histogram.h"
52 #include "platform/Logging.h"
53 #include "platform/blob/BlobData.h" 52 #include "platform/blob/BlobData.h"
53 #include "platform/network/NetworkLog.h"
54 #include "platform/weborigin/KnownPorts.h" 54 #include "platform/weborigin/KnownPorts.h"
55 #include "platform/weborigin/SecurityOrigin.h" 55 #include "platform/weborigin/SecurityOrigin.h"
56 #include "public/platform/Platform.h" 56 #include "public/platform/Platform.h"
57 #include "public/platform/WebInsecureRequestPolicy.h" 57 #include "public/platform/WebInsecureRequestPolicy.h"
58 #include "wtf/Assertions.h" 58 #include "wtf/Assertions.h"
59 #include "wtf/HashSet.h" 59 #include "wtf/HashSet.h"
60 #include "wtf/MathExtras.h" 60 #include "wtf/MathExtras.h"
61 #include "wtf/StdLibExtras.h" 61 #include "wtf/StdLibExtras.h"
62 #include "wtf/text/CString.h" 62 #include "wtf/text/CString.h"
63 #include "wtf/text/StringBuilder.h" 63 #include "wtf/text/StringBuilder.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 if (exceptionState.hadException()) 277 if (exceptionState.hadException())
278 return nullptr; 278 return nullptr;
279 279
280 return webSocket; 280 return webSocket;
281 } 281 }
282 282
283 void DOMWebSocket::connect(const String& url, const Vector<String>& protocols, E xceptionState& exceptionState) 283 void DOMWebSocket::connect(const String& url, const Vector<String>& protocols, E xceptionState& exceptionState)
284 { 284 {
285 UseCounter::count(getExecutionContext(), UseCounter::WebSocket); 285 UseCounter::count(getExecutionContext(), UseCounter::WebSocket);
286 286
287 WTF_LOG(Network, "WebSocket %p connect() url='%s'", this, url.utf8().data()) ; 287 NETWORK_DVLOG(1) << "WebSocket " << this << " connect() url=" << url;
tkent 2016/08/12 04:05:46 Patch Set 1 doesn't introduce a stream printer for
tyoshino (SeeGerritForStatus) 2016/08/12 05:57:38 I see. I agree it's redundant. But it's good to ha
288 m_url = KURL(KURL(), url); 288 m_url = KURL(KURL(), url);
289 289
290 if (getExecutionContext()->securityContext().getInsecureRequestPolicy() & kU pgradeInsecureRequests && m_url.protocol() == "ws") { 290 if (getExecutionContext()->securityContext().getInsecureRequestPolicy() & kU pgradeInsecureRequests && m_url.protocol() == "ws") {
291 UseCounter::count(getExecutionContext(), UseCounter::UpgradeInsecureRequ estsUpgradedRequest); 291 UseCounter::count(getExecutionContext(), UseCounter::UpgradeInsecureRequ estsUpgradedRequest);
292 m_url.setProtocol("wss"); 292 m_url.setProtocol("wss");
293 if (m_url.port() == 80) 293 if (m_url.port() == 80)
294 m_url.setPort(443); 294 m_url.setPort(443);
295 } 295 }
296 296
297 if (!m_url.isValid()) { 297 if (!m_url.isValid()) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 m_bufferedAmountAfterClose += payloadSize; 363 m_bufferedAmountAfterClose += payloadSize;
364 364
365 logError("WebSocket is already in CLOSING or CLOSED state."); 365 logError("WebSocket is already in CLOSING or CLOSED state.");
366 } 366 }
367 367
368 void DOMWebSocket::reflectBufferedAmountConsumption(TimerBase*) 368 void DOMWebSocket::reflectBufferedAmountConsumption(TimerBase*)
369 { 369 {
370 ASSERT(m_bufferedAmount >= m_consumedBufferedAmount); 370 ASSERT(m_bufferedAmount >= m_consumedBufferedAmount);
371 // Cast to unsigned long long is required since clang doesn't accept 371 // Cast to unsigned long long is required since clang doesn't accept
372 // combination of %llu and uint64_t (known as unsigned long). 372 // combination of %llu and uint64_t (known as unsigned long).
373 WTF_LOG(Network, "WebSocket %p reflectBufferedAmountConsumption() %llu => %l lu", this, static_cast<unsigned long long>(m_bufferedAmount), static_cast<unsign ed long long>(m_bufferedAmount - m_consumedBufferedAmount)); 373 NETWORK_DVLOG(1) << "WebSocket " << this << " reflectBufferedAmountConsumpti on() " << m_bufferedAmount << " => " << (m_bufferedAmount - m_consumedBufferedAm ount);
374 374
375 m_bufferedAmount -= m_consumedBufferedAmount; 375 m_bufferedAmount -= m_consumedBufferedAmount;
376 m_consumedBufferedAmount = 0; 376 m_consumedBufferedAmount = 0;
377 } 377 }
378 378
379 void DOMWebSocket::releaseChannel() 379 void DOMWebSocket::releaseChannel()
380 { 380 {
381 ASSERT(m_channel); 381 ASSERT(m_channel);
382 m_channel->disconnect(); 382 m_channel->disconnect();
383 m_channel = nullptr; 383 m_channel = nullptr;
384 } 384 }
385 385
386 void DOMWebSocket::logBinaryTypeChangesAfterOpen() 386 void DOMWebSocket::logBinaryTypeChangesAfterOpen()
387 { 387 {
388 DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram, binaryTypeChangesHisto gram, new CustomCountHistogram("WebCore.WebSocket.BinaryTypeChangesAfterOpen", 1 , 1024, 10)); 388 DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram, binaryTypeChangesHisto gram, new CustomCountHistogram("WebCore.WebSocket.BinaryTypeChangesAfterOpen", 1 , 1024, 10));
389 DVLOG(3) << "WebSocket " << static_cast<void*>(this) << " logBinaryTypeChang esAfterOpen() logging " << m_binaryTypeChangesAfterOpen; 389 DVLOG(3) << "WebSocket " << static_cast<void*>(this) << " logBinaryTypeChang esAfterOpen() logging " << m_binaryTypeChangesAfterOpen;
390 binaryTypeChangesHistogram.count(m_binaryTypeChangesAfterOpen); 390 binaryTypeChangesHistogram.count(m_binaryTypeChangesAfterOpen);
391 } 391 }
392 392
393 void DOMWebSocket::send(const String& message, ExceptionState& exceptionState) 393 void DOMWebSocket::send(const String& message, ExceptionState& exceptionState)
394 { 394 {
395 CString encodedMessage = message.utf8(); 395 CString encodedMessage = message.utf8();
396 396
397 WTF_LOG(Network, "WebSocket %p send() Sending String '%s'", this, encodedMes sage.data()); 397 NETWORK_DVLOG(1) << "WebSocket " << this << " send() Sending String '" << en codedMessage.data() << "'";
398 if (m_state == kConnecting) { 398 if (m_state == kConnecting) {
399 setInvalidStateErrorForSendMethod(exceptionState); 399 setInvalidStateErrorForSendMethod(exceptionState);
400 return; 400 return;
401 } 401 }
402 // No exception is raised if the connection was once established but has sub sequently been closed. 402 // No exception is raised if the connection was once established but has sub sequently been closed.
403 if (m_state == kClosing || m_state == kClosed) { 403 if (m_state == kClosing || m_state == kClosed) {
404 updateBufferedAmountAfterClose(encodedMessage.length()); 404 updateBufferedAmountAfterClose(encodedMessage.length());
405 return; 405 return;
406 } 406 }
407 407
408 recordSendTypeHistogram(WebSocketSendTypeString); 408 recordSendTypeHistogram(WebSocketSendTypeString);
409 409
410 ASSERT(m_channel); 410 ASSERT(m_channel);
411 m_bufferedAmount += encodedMessage.length(); 411 m_bufferedAmount += encodedMessage.length();
412 m_channel->send(encodedMessage); 412 m_channel->send(encodedMessage);
413 } 413 }
414 414
415 void DOMWebSocket::send(DOMArrayBuffer* binaryData, ExceptionState& exceptionSta te) 415 void DOMWebSocket::send(DOMArrayBuffer* binaryData, ExceptionState& exceptionSta te)
416 { 416 {
417 WTF_LOG(Network, "WebSocket %p send() Sending ArrayBuffer %p", this, binaryD ata); 417 NETWORK_DVLOG(1) << "WebSocket " << this << " send() Sending ArrayBuffer " < < binaryData;
418 ASSERT(binaryData && binaryData->buffer()); 418 ASSERT(binaryData && binaryData->buffer());
419 if (m_state == kConnecting) { 419 if (m_state == kConnecting) {
420 setInvalidStateErrorForSendMethod(exceptionState); 420 setInvalidStateErrorForSendMethod(exceptionState);
421 return; 421 return;
422 } 422 }
423 if (m_state == kClosing || m_state == kClosed) { 423 if (m_state == kClosing || m_state == kClosed) {
424 updateBufferedAmountAfterClose(binaryData->byteLength()); 424 updateBufferedAmountAfterClose(binaryData->byteLength());
425 return; 425 return;
426 } 426 }
427 recordSendTypeHistogram(WebSocketSendTypeArrayBuffer); 427 recordSendTypeHistogram(WebSocketSendTypeArrayBuffer);
428 recordSendMessageSizeHistogram(WebSocketSendTypeArrayBuffer, binaryData->byt eLength()); 428 recordSendMessageSizeHistogram(WebSocketSendTypeArrayBuffer, binaryData->byt eLength());
429 ASSERT(m_channel); 429 ASSERT(m_channel);
430 m_bufferedAmount += binaryData->byteLength(); 430 m_bufferedAmount += binaryData->byteLength();
431 m_channel->send(*binaryData, 0, binaryData->byteLength()); 431 m_channel->send(*binaryData, 0, binaryData->byteLength());
432 } 432 }
433 433
434 void DOMWebSocket::send(DOMArrayBufferView* arrayBufferView, ExceptionState& exc eptionState) 434 void DOMWebSocket::send(DOMArrayBufferView* arrayBufferView, ExceptionState& exc eptionState)
435 { 435 {
436 WTF_LOG(Network, "WebSocket %p send() Sending ArrayBufferView %p", this, arr ayBufferView); 436 NETWORK_DVLOG(1) << "WebSocket " << this << " send() Sending ArrayBufferView " << arrayBufferView;
437 ASSERT(arrayBufferView); 437 ASSERT(arrayBufferView);
438 if (m_state == kConnecting) { 438 if (m_state == kConnecting) {
439 setInvalidStateErrorForSendMethod(exceptionState); 439 setInvalidStateErrorForSendMethod(exceptionState);
440 return; 440 return;
441 } 441 }
442 if (m_state == kClosing || m_state == kClosed) { 442 if (m_state == kClosing || m_state == kClosed) {
443 updateBufferedAmountAfterClose(arrayBufferView->byteLength()); 443 updateBufferedAmountAfterClose(arrayBufferView->byteLength());
444 return; 444 return;
445 } 445 }
446 recordSendTypeHistogram(WebSocketSendTypeArrayBufferView); 446 recordSendTypeHistogram(WebSocketSendTypeArrayBufferView);
447 recordSendMessageSizeHistogram(WebSocketSendTypeArrayBufferView, arrayBuffer View->byteLength()); 447 recordSendMessageSizeHistogram(WebSocketSendTypeArrayBufferView, arrayBuffer View->byteLength());
448 ASSERT(m_channel); 448 ASSERT(m_channel);
449 m_bufferedAmount += arrayBufferView->byteLength(); 449 m_bufferedAmount += arrayBufferView->byteLength();
450 m_channel->send(*arrayBufferView->buffer(), arrayBufferView->byteOffset(), a rrayBufferView->byteLength()); 450 m_channel->send(*arrayBufferView->buffer(), arrayBufferView->byteOffset(), a rrayBufferView->byteLength());
451 } 451 }
452 452
453 void DOMWebSocket::send(Blob* binaryData, ExceptionState& exceptionState) 453 void DOMWebSocket::send(Blob* binaryData, ExceptionState& exceptionState)
454 { 454 {
455 WTF_LOG(Network, "WebSocket %p send() Sending Blob '%s'", this, binaryData-> uuid().utf8().data()); 455 NETWORK_DVLOG(1) << "WebSocket " << this << " send() Sending Blob " << binar yData->uuid();
456 ASSERT(binaryData); 456 ASSERT(binaryData);
457 if (m_state == kConnecting) { 457 if (m_state == kConnecting) {
458 setInvalidStateErrorForSendMethod(exceptionState); 458 setInvalidStateErrorForSendMethod(exceptionState);
459 return; 459 return;
460 } 460 }
461 if (m_state == kClosing || m_state == kClosed) { 461 if (m_state == kClosing || m_state == kClosed) {
462 updateBufferedAmountAfterClose(binaryData->size()); 462 updateBufferedAmountAfterClose(binaryData->size());
463 return; 463 return;
464 } 464 }
465 unsigned long long size = binaryData->size(); 465 unsigned long long size = binaryData->size();
(...skipping 23 matching lines...) Expand all
489 489
490 void DOMWebSocket::close(unsigned short code, ExceptionState& exceptionState) 490 void DOMWebSocket::close(unsigned short code, ExceptionState& exceptionState)
491 { 491 {
492 closeInternal(code, String(), exceptionState); 492 closeInternal(code, String(), exceptionState);
493 } 493 }
494 494
495 void DOMWebSocket::closeInternal(int code, const String& reason, ExceptionState& exceptionState) 495 void DOMWebSocket::closeInternal(int code, const String& reason, ExceptionState& exceptionState)
496 { 496 {
497 String cleansedReason = reason; 497 String cleansedReason = reason;
498 if (code == WebSocketChannel::CloseEventCodeNotSpecified) { 498 if (code == WebSocketChannel::CloseEventCodeNotSpecified) {
499 WTF_LOG(Network, "WebSocket %p close() without code and reason", this); 499 NETWORK_DVLOG(1) << "WebSocket " << this << " close() without code and r eason";
500 } else { 500 } else {
501 WTF_LOG(Network, "WebSocket %p close() code=%d reason='%s'", this, code, reason.utf8().data()); 501 NETWORK_DVLOG(1) << "WebSocket " << this << " close() code=" << code << " reason=" << reason;
502 if (!(code == WebSocketChannel::CloseEventCodeNormalClosure || (WebSocke tChannel::CloseEventCodeMinimumUserDefined <= code && code <= WebSocketChannel:: CloseEventCodeMaximumUserDefined))) { 502 if (!(code == WebSocketChannel::CloseEventCodeNormalClosure || (WebSocke tChannel::CloseEventCodeMinimumUserDefined <= code && code <= WebSocketChannel:: CloseEventCodeMaximumUserDefined))) {
503 exceptionState.throwDOMException(InvalidAccessError, "The code must be either 1000, or between 3000 and 4999. " + String::number(code) + " is neithe r."); 503 exceptionState.throwDOMException(InvalidAccessError, "The code must be either 1000, or between 3000 and 4999. " + String::number(code) + " is neithe r.");
504 return; 504 return;
505 } 505 }
506 // Bindings specify USVString, so unpaired surrogates are already replac ed with U+FFFD. 506 // Bindings specify USVString, so unpaired surrogates are already replac ed with U+FFFD.
507 CString utf8 = reason.utf8(); 507 CString utf8 = reason.utf8();
508 if (utf8.length() > maxReasonSizeInBytes) { 508 if (utf8.length() > maxReasonSizeInBytes) {
509 exceptionState.throwDOMException(SyntaxError, "The message must not be greater than " + String::number(maxReasonSizeInBytes) + " bytes."); 509 exceptionState.throwDOMException(SyntaxError, "The message must not be greater than " + String::number(maxReasonSizeInBytes) + " bytes.");
510 return; 510 return;
511 } 511 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 return EventTargetNames::DOMWebSocket; 597 return EventTargetNames::DOMWebSocket;
598 } 598 }
599 599
600 ExecutionContext* DOMWebSocket::getExecutionContext() const 600 ExecutionContext* DOMWebSocket::getExecutionContext() const
601 { 601 {
602 return ActiveDOMObject::getExecutionContext(); 602 return ActiveDOMObject::getExecutionContext();
603 } 603 }
604 604
605 void DOMWebSocket::contextDestroyed() 605 void DOMWebSocket::contextDestroyed()
606 { 606 {
607 WTF_LOG(Network, "WebSocket %p contextDestroyed()", this); 607 NETWORK_DVLOG(1) << "WebSocket " << this << " contextDestroyed()";
608 DCHECK(!m_channel); 608 DCHECK(!m_channel);
609 DCHECK_EQ(kClosed, m_state); 609 DCHECK_EQ(kClosed, m_state);
610 ActiveDOMObject::contextDestroyed(); 610 ActiveDOMObject::contextDestroyed();
611 } 611 }
612 612
613 bool DOMWebSocket::hasPendingActivity() const 613 bool DOMWebSocket::hasPendingActivity() const
614 { 614 {
615 return m_channel || !m_eventQueue->isEmpty(); 615 return m_channel || !m_eventQueue->isEmpty();
616 } 616 }
617 617
(...skipping 15 matching lines...) Expand all
633 releaseChannel(); 633 releaseChannel();
634 } 634 }
635 if (m_state != kClosed) { 635 if (m_state != kClosed) {
636 m_state = kClosed; 636 m_state = kClosed;
637 logBinaryTypeChangesAfterOpen(); 637 logBinaryTypeChangesAfterOpen();
638 } 638 }
639 } 639 }
640 640
641 void DOMWebSocket::didConnect(const String& subprotocol, const String& extension s) 641 void DOMWebSocket::didConnect(const String& subprotocol, const String& extension s)
642 { 642 {
643 WTF_LOG(Network, "WebSocket %p didConnect()", this); 643 NETWORK_DVLOG(1) << "WebSocket " << this << " didConnect()";
644 if (m_state != kConnecting) 644 if (m_state != kConnecting)
645 return; 645 return;
646 m_state = kOpen; 646 m_state = kOpen;
647 m_subprotocol = subprotocol; 647 m_subprotocol = subprotocol;
648 m_extensions = extensions; 648 m_extensions = extensions;
649 m_eventQueue->dispatch(Event::create(EventTypeNames::open)); 649 m_eventQueue->dispatch(Event::create(EventTypeNames::open));
650 } 650 }
651 651
652 void DOMWebSocket::didReceiveTextMessage(const String& msg) 652 void DOMWebSocket::didReceiveTextMessage(const String& msg)
653 { 653 {
654 WTF_LOG(Network, "WebSocket %p didReceiveTextMessage() Text message '%s'", t his, msg.utf8().data()); 654 NETWORK_DVLOG(1) << "WebSocket " << this << " didReceiveTextMessage() Text m essage " << msg;
655 if (m_state != kOpen) 655 if (m_state != kOpen)
656 return; 656 return;
657 recordReceiveTypeHistogram(WebSocketReceiveTypeString); 657 recordReceiveTypeHistogram(WebSocketReceiveTypeString);
658 658
659 m_eventQueue->dispatch(MessageEvent::create(msg, SecurityOrigin::create(m_ur l)->toString())); 659 m_eventQueue->dispatch(MessageEvent::create(msg, SecurityOrigin::create(m_ur l)->toString()));
660 } 660 }
661 661
662 void DOMWebSocket::didReceiveBinaryMessage(std::unique_ptr<Vector<char>> binaryD ata) 662 void DOMWebSocket::didReceiveBinaryMessage(std::unique_ptr<Vector<char>> binaryD ata)
663 { 663 {
664 WTF_LOG(Network, "WebSocket %p didReceiveBinaryMessage() %lu byte binary mes sage", this, static_cast<unsigned long>(binaryData->size())); 664 NETWORK_DVLOG(1) << "WebSocket " << this << " didReceiveBinaryMessage() " << binaryData->size() << " byte binary message";
665 switch (m_binaryType) { 665 switch (m_binaryType) {
666 case BinaryTypeBlob: { 666 case BinaryTypeBlob: {
667 size_t size = binaryData->size(); 667 size_t size = binaryData->size();
668 RefPtr<RawData> rawData = RawData::create(); 668 RefPtr<RawData> rawData = RawData::create();
669 binaryData->swap(*rawData->mutableData()); 669 binaryData->swap(*rawData->mutableData());
670 std::unique_ptr<BlobData> blobData = BlobData::create(); 670 std::unique_ptr<BlobData> blobData = BlobData::create();
671 blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile); 671 blobData->appendData(rawData.release(), 0, BlobDataItem::toEndOfFile);
672 Blob* blob = Blob::create(BlobDataHandle::create(std::move(blobData), si ze)); 672 Blob* blob = Blob::create(BlobDataHandle::create(std::move(blobData), si ze));
673 recordReceiveTypeHistogram(WebSocketReceiveTypeBlob); 673 recordReceiveTypeHistogram(WebSocketReceiveTypeBlob);
674 recordReceiveMessageSizeHistogram(WebSocketReceiveTypeBlob, size); 674 recordReceiveMessageSizeHistogram(WebSocketReceiveTypeBlob, size);
675 m_eventQueue->dispatch(MessageEvent::create(blob, SecurityOrigin::create (m_url)->toString())); 675 m_eventQueue->dispatch(MessageEvent::create(blob, SecurityOrigin::create (m_url)->toString()));
676 break; 676 break;
677 } 677 }
678 678
679 case BinaryTypeArrayBuffer: 679 case BinaryTypeArrayBuffer:
680 DOMArrayBuffer* arrayBuffer = DOMArrayBuffer::create(binaryData->data(), binaryData->size()); 680 DOMArrayBuffer* arrayBuffer = DOMArrayBuffer::create(binaryData->data(), binaryData->size());
681 recordReceiveTypeHistogram(WebSocketReceiveTypeArrayBuffer); 681 recordReceiveTypeHistogram(WebSocketReceiveTypeArrayBuffer);
682 recordReceiveMessageSizeHistogram(WebSocketReceiveTypeArrayBuffer, binar yData->size()); 682 recordReceiveMessageSizeHistogram(WebSocketReceiveTypeArrayBuffer, binar yData->size());
683 m_eventQueue->dispatch(MessageEvent::create(arrayBuffer, SecurityOrigin: :create(m_url)->toString())); 683 m_eventQueue->dispatch(MessageEvent::create(arrayBuffer, SecurityOrigin: :create(m_url)->toString()));
684 break; 684 break;
685 } 685 }
686 } 686 }
687 687
688 void DOMWebSocket::didError() 688 void DOMWebSocket::didError()
689 { 689 {
690 WTF_LOG(Network, "WebSocket %p didError()", this); 690 NETWORK_DVLOG(1) << "WebSocket " << this << " didError()";
691 m_state = kClosed; 691 m_state = kClosed;
692 logBinaryTypeChangesAfterOpen(); 692 logBinaryTypeChangesAfterOpen();
693 m_eventQueue->dispatch(Event::create(EventTypeNames::error)); 693 m_eventQueue->dispatch(Event::create(EventTypeNames::error));
694 } 694 }
695 695
696 void DOMWebSocket::didConsumeBufferedAmount(uint64_t consumed) 696 void DOMWebSocket::didConsumeBufferedAmount(uint64_t consumed)
697 { 697 {
698 ASSERT(m_bufferedAmount >= consumed + m_consumedBufferedAmount); 698 ASSERT(m_bufferedAmount >= consumed + m_consumedBufferedAmount);
699 // Cast to unsigned long long is required since clang doesn't accept 699 NETWORK_DVLOG(1) << "WebSocket " << this << " didConsumeBufferedAmount(" << consumed << ")";
700 // combination of %llu and uint64_t (known as unsigned long).
701 WTF_LOG(Network, "WebSocket %p didConsumeBufferedAmount(%llu)", this, static _cast<unsigned long long>(consumed));
702 if (m_state == kClosed) 700 if (m_state == kClosed)
703 return; 701 return;
704 m_consumedBufferedAmount += consumed; 702 m_consumedBufferedAmount += consumed;
705 if (!m_bufferedAmountConsumeTimer.isActive()) 703 if (!m_bufferedAmountConsumeTimer.isActive())
706 m_bufferedAmountConsumeTimer.startOneShot(0, BLINK_FROM_HERE); 704 m_bufferedAmountConsumeTimer.startOneShot(0, BLINK_FROM_HERE);
707 } 705 }
708 706
709 void DOMWebSocket::didStartClosingHandshake() 707 void DOMWebSocket::didStartClosingHandshake()
710 { 708 {
711 WTF_LOG(Network, "WebSocket %p didStartClosingHandshake()", this); 709 NETWORK_DVLOG(1) << "WebSocket " << this << " didStartClosingHandshake()";
712 m_state = kClosing; 710 m_state = kClosing;
713 } 711 }
714 712
715 void DOMWebSocket::didClose(ClosingHandshakeCompletionStatus closingHandshakeCom pletion, unsigned short code, const String& reason) 713 void DOMWebSocket::didClose(ClosingHandshakeCompletionStatus closingHandshakeCom pletion, unsigned short code, const String& reason)
716 { 714 {
717 WTF_LOG(Network, "WebSocket %p didClose()", this); 715 NETWORK_DVLOG(1) << "WebSocket " << this << " didClose()";
718 if (!m_channel) 716 if (!m_channel)
719 return; 717 return;
720 bool allDataHasBeenConsumed = m_bufferedAmount == m_consumedBufferedAmount; 718 bool allDataHasBeenConsumed = m_bufferedAmount == m_consumedBufferedAmount;
721 bool wasClean = m_state == kClosing && allDataHasBeenConsumed && closingHand shakeCompletion == ClosingHandshakeComplete && code != WebSocketChannel::CloseEv entCodeAbnormalClosure; 719 bool wasClean = m_state == kClosing && allDataHasBeenConsumed && closingHand shakeCompletion == ClosingHandshakeComplete && code != WebSocketChannel::CloseEv entCodeAbnormalClosure;
722 m_state = kClosed; 720 m_state = kClosed;
723 721
724 m_eventQueue->dispatch(CloseEvent::create(wasClean, code, reason)); 722 m_eventQueue->dispatch(CloseEvent::create(wasClean, code, reason));
725 releaseChannel(); 723 releaseChannel();
726 } 724 }
727 725
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 DEFINE_TRACE(DOMWebSocket) 788 DEFINE_TRACE(DOMWebSocket)
791 { 789 {
792 visitor->trace(m_channel); 790 visitor->trace(m_channel);
793 visitor->trace(m_eventQueue); 791 visitor->trace(m_eventQueue);
794 WebSocketChannelClient::trace(visitor); 792 WebSocketChannelClient::trace(visitor);
795 EventTargetWithInlineData::trace(visitor); 793 EventTargetWithInlineData::trace(visitor);
796 ActiveDOMObject::trace(visitor); 794 ActiveDOMObject::trace(visitor);
797 } 795 }
798 796
799 } // namespace blink 797 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698