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

Side by Side Diff: Source/modules/websockets/WebSocket.cpp

Issue 216523002: Oilpan: Replace most of RefPtrs for Event objects with oilpan's transition types (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 namespace WebCore { 65 namespace WebCore {
66 66
67 WebSocket::EventQueue::EventQueue(EventTarget* target) 67 WebSocket::EventQueue::EventQueue(EventTarget* target)
68 : m_state(Active) 68 : m_state(Active)
69 , m_target(target) 69 , m_target(target)
70 , m_resumeTimer(this, &EventQueue::resumeTimerFired) { } 70 , m_resumeTimer(this, &EventQueue::resumeTimerFired) { }
71 71
72 WebSocket::EventQueue::~EventQueue() { stop(); } 72 WebSocket::EventQueue::~EventQueue() { stop(); }
73 73
74 void WebSocket::EventQueue::dispatch(PassRefPtr<Event> event) 74 void WebSocket::EventQueue::dispatch(PassRefPtrWillBeRawPtr<Event> event)
75 { 75 {
76 switch (m_state) { 76 switch (m_state) {
77 case Active: 77 case Active:
78 ASSERT(m_events.isEmpty()); 78 ASSERT(m_events.isEmpty());
79 ASSERT(m_target->executionContext()); 79 ASSERT(m_target->executionContext());
80 m_target->dispatchEvent(event); 80 m_target->dispatchEvent(event);
81 break; 81 break;
82 case Suspended: 82 case Suspended:
83 m_events.append(event); 83 m_events.append(event);
84 break; 84 break;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 m_events.clear(); 120 m_events.clear();
121 } 121 }
122 122
123 void WebSocket::EventQueue::dispatchQueuedEvents() 123 void WebSocket::EventQueue::dispatchQueuedEvents()
124 { 124 {
125 if (m_state != Active) 125 if (m_state != Active)
126 return; 126 return;
127 127
128 RefPtr<EventQueue> protect(this); 128 RefPtr<EventQueue> protect(this);
129 129
130 Deque<RefPtr<Event> > events; 130 Deque<RefPtrWillBePersistent<Event> > events;
131 events.swap(m_events); 131 events.swap(m_events);
132 while (!events.isEmpty()) { 132 while (!events.isEmpty()) {
133 if (m_state == Stopped || m_state == Suspended) 133 if (m_state == Stopped || m_state == Suspended)
134 break; 134 break;
135 ASSERT(m_state == Active); 135 ASSERT(m_state == Active);
136 ASSERT(m_target->executionContext()); 136 ASSERT(m_target->executionContext());
137 m_target->dispatchEvent(events.takeFirst()); 137 m_target->dispatchEvent(events.takeFirst());
138 // |this| can be stopped here. 138 // |this| can be stopped here.
139 } 139 }
140 if (m_state == Suspended) { 140 if (m_state == Suspended) {
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 static const size_t minimumPayloadSizeWithEightByteExtendedPayloadLength = 0 x10000; 681 static const size_t minimumPayloadSizeWithEightByteExtendedPayloadLength = 0 x10000;
682 size_t overhead = hybiBaseFramingOverhead + hybiMaskingKeyLength; 682 size_t overhead = hybiBaseFramingOverhead + hybiMaskingKeyLength;
683 if (payloadSize >= minimumPayloadSizeWithEightByteExtendedPayloadLength) 683 if (payloadSize >= minimumPayloadSizeWithEightByteExtendedPayloadLength)
684 overhead += 8; 684 overhead += 8;
685 else if (payloadSize >= minimumPayloadSizeWithTwoByteExtendedPayloadLength) 685 else if (payloadSize >= minimumPayloadSizeWithTwoByteExtendedPayloadLength)
686 overhead += 2; 686 overhead += 2;
687 return overhead; 687 return overhead;
688 } 688 }
689 689
690 } // namespace WebCore 690 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698