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

Side by Side Diff: chrome/test/chromedriver/net/websocket.cc

Issue 15836003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 // 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 "chrome/test/chromedriver/net/websocket.h" 5 #include "chrome/test/chromedriver/net/websocket.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 121
122 void WebSocket::ContinueWritingIfNecessary() { 122 void WebSocket::ContinueWritingIfNecessary() {
123 if (!write_buffer_->BytesRemaining()) { 123 if (!write_buffer_->BytesRemaining()) {
124 if (pending_write_.empty()) 124 if (pending_write_.empty())
125 return; 125 return;
126 write_buffer_ = new net::DrainableIOBuffer( 126 write_buffer_ = new net::DrainableIOBuffer(
127 new net::StringIOBuffer(pending_write_), 127 new net::StringIOBuffer(pending_write_),
128 pending_write_.length()); 128 pending_write_.length());
129 pending_write_.clear(); 129 pending_write_.clear();
130 } 130 }
131 int code = socket_->Write( 131 int code =
132 write_buffer_, 132 socket_->Write(write_buffer_.get(),
133 write_buffer_->BytesRemaining(), 133 write_buffer_->BytesRemaining(),
134 base::Bind(&WebSocket::OnWrite, base::Unretained(this))); 134 base::Bind(&WebSocket::OnWrite, base::Unretained(this)));
135 if (code != net::ERR_IO_PENDING) 135 if (code != net::ERR_IO_PENDING)
136 OnWrite(code); 136 OnWrite(code);
137 } 137 }
138 138
139 void WebSocket::Read() { 139 void WebSocket::Read() {
140 int code = socket_->Read( 140 int code =
141 read_buffer_, 141 socket_->Read(read_buffer_.get(),
142 read_buffer_->size(), 142 read_buffer_->size(),
143 base::Bind(&WebSocket::OnRead, base::Unretained(this))); 143 base::Bind(&WebSocket::OnRead, base::Unretained(this)));
144 if (code != net::ERR_IO_PENDING) 144 if (code != net::ERR_IO_PENDING)
145 OnRead(code); 145 OnRead(code);
146 } 146 }
147 147
148 void WebSocket::OnRead(int code) { 148 void WebSocket::OnRead(int code) {
149 if (code <= 0) { 149 if (code <= 0) {
150 Close(code ? code : net::ERR_FAILED); 150 Close(code ? code : net::ERR_FAILED);
151 return; 151 return;
152 } 152 }
153 153
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 InvokeConnectCallback(net::OK); 189 InvokeConnectCallback(net::OK);
190 if (!leftover_message.empty()) 190 if (!leftover_message.empty())
191 OnReadDuringOpen(leftover_message.c_str(), leftover_message.length()); 191 OnReadDuringOpen(leftover_message.c_str(), leftover_message.length());
192 } 192 }
193 193
194 void WebSocket::OnReadDuringOpen(const char* data, int len) { 194 void WebSocket::OnReadDuringOpen(const char* data, int len) {
195 ScopedVector<net::WebSocketFrameChunk> frame_chunks; 195 ScopedVector<net::WebSocketFrameChunk> frame_chunks;
196 CHECK(parser_.Decode(data, len, &frame_chunks)); 196 CHECK(parser_.Decode(data, len, &frame_chunks));
197 for (size_t i = 0; i < frame_chunks.size(); ++i) { 197 for (size_t i = 0; i < frame_chunks.size(); ++i) {
198 scoped_refptr<net::IOBufferWithSize> buffer = frame_chunks[i]->data; 198 scoped_refptr<net::IOBufferWithSize> buffer = frame_chunks[i]->data;
199 if (buffer) 199 if (buffer.get())
200 next_message_ += std::string(buffer->data(), buffer->size()); 200 next_message_ += std::string(buffer->data(), buffer->size());
201 if (frame_chunks[i]->final_chunk) { 201 if (frame_chunks[i]->final_chunk) {
202 listener_->OnMessageReceived(next_message_); 202 listener_->OnMessageReceived(next_message_);
203 next_message_.clear(); 203 next_message_.clear();
204 } 204 }
205 } 205 }
206 } 206 }
207 207
208 void WebSocket::InvokeConnectCallback(int code) { 208 void WebSocket::InvokeConnectCallback(int code) {
209 net::CompletionCallback temp = connect_callback_; 209 net::CompletionCallback temp = connect_callback_;
210 connect_callback_.Reset(); 210 connect_callback_.Reset();
211 CHECK(!temp.is_null()); 211 CHECK(!temp.is_null());
212 temp.Run(code); 212 temp.Run(code);
213 } 213 }
214 214
215 void WebSocket::Close(int code) { 215 void WebSocket::Close(int code) {
216 socket_->Disconnect(); 216 socket_->Disconnect();
217 if (!connect_callback_.is_null()) 217 if (!connect_callback_.is_null())
218 InvokeConnectCallback(code); 218 InvokeConnectCallback(code);
219 if (state_ == OPEN) 219 if (state_ == OPEN)
220 listener_->OnClose(); 220 listener_->OnClose();
221 221
222 state_ = CLOSED; 222 state_ = CLOSED;
223 } 223 }
224 224
225 225
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/net/test_http_server.cc ('k') | chrome/test/perf/frame_rate/frame_rate_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698