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

Side by Side Diff: mojo/services/network/url_loader_impl.cc

Issue 502573006: Remove implicit conversions from scoped_refptr to T* in mojo/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "mojo/services/network/url_loader_impl.h" 5 #include "mojo/services/network/url_loader_impl.h"
6 6
7 #include "base/memory/scoped_vector.h" 7 #include "base/memory/scoped_vector.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "mojo/common/common_type_converters.h" 9 #include "mojo/common/common_type_converters.h"
10 #include "mojo/services/network/network_context.h" 10 #include "mojo/services/network/network_context.h"
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 320
321 void URLLoaderImpl::WaitToReadMore() { 321 void URLLoaderImpl::WaitToReadMore() {
322 handle_watcher_.Start(response_body_stream_.get(), 322 handle_watcher_.Start(response_body_stream_.get(),
323 MOJO_HANDLE_SIGNAL_WRITABLE, 323 MOJO_HANDLE_SIGNAL_WRITABLE,
324 MOJO_DEADLINE_INDEFINITE, 324 MOJO_DEADLINE_INDEFINITE,
325 base::Bind(&URLLoaderImpl::OnResponseBodyStreamReady, 325 base::Bind(&URLLoaderImpl::OnResponseBodyStreamReady,
326 weak_ptr_factory_.GetWeakPtr())); 326 weak_ptr_factory_.GetWeakPtr()));
327 } 327 }
328 328
329 void URLLoaderImpl::ReadMore() { 329 void URLLoaderImpl::ReadMore() {
330 DCHECK(!pending_write_); 330 DCHECK(!pending_write_.get());
331 331
332 pending_write_ = new PendingWriteToDataPipe(response_body_stream_.Pass()); 332 pending_write_ = new PendingWriteToDataPipe(response_body_stream_.Pass());
333 333
334 uint32_t num_bytes; 334 uint32_t num_bytes;
335 MojoResult result = pending_write_->BeginWrite(&num_bytes); 335 MojoResult result = pending_write_->BeginWrite(&num_bytes);
336 if (result == MOJO_RESULT_SHOULD_WAIT) { 336 if (result == MOJO_RESULT_SHOULD_WAIT) {
337 // The pipe is full. We need to wait for it to have more space. 337 // The pipe is full. We need to wait for it to have more space.
338 response_body_stream_ = pending_write_->Complete(num_bytes); 338 response_body_stream_ = pending_write_->Complete(num_bytes);
339 pending_write_ = NULL; 339 pending_write_ = NULL;
340 WaitToReadMore(); 340 WaitToReadMore();
341 return; 341 return;
342 } 342 }
343 if (result != MOJO_RESULT_OK) { 343 if (result != MOJO_RESULT_OK) {
344 // The response body stream is in a bad state. Bail. 344 // The response body stream is in a bad state. Bail.
345 // TODO(darin): How should this be communicated to our client? 345 // TODO(darin): How should this be communicated to our client?
346 return; 346 return;
347 } 347 }
348 CHECK_GT(static_cast<uint32_t>(std::numeric_limits<int>::max()), num_bytes); 348 CHECK_GT(static_cast<uint32_t>(std::numeric_limits<int>::max()), num_bytes);
349 349
350 scoped_refptr<net::IOBuffer> buf = new DependentIOBuffer(pending_write_); 350 scoped_refptr<net::IOBuffer> buf =
351 new DependentIOBuffer(pending_write_.get());
351 352
352 int bytes_read; 353 int bytes_read;
353 url_request_->Read(buf, static_cast<int>(num_bytes), &bytes_read); 354 url_request_->Read(buf.get(), static_cast<int>(num_bytes), &bytes_read);
354 355
355 // Drop our reference to the buffer. 356 // Drop our reference to the buffer.
356 buf = NULL; 357 buf = NULL;
357 358
358 if (url_request_->status().is_io_pending()) { 359 if (url_request_->status().is_io_pending()) {
359 // Wait for OnReadCompleted. 360 // Wait for OnReadCompleted.
360 } else if (url_request_->status().is_success() && bytes_read > 0) { 361 } else if (url_request_->status().is_success() && bytes_read > 0) {
361 DidRead(static_cast<uint32_t>(bytes_read), true); 362 DidRead(static_cast<uint32_t>(bytes_read), true);
362 } else { 363 } else {
363 pending_write_->Complete(0); 364 pending_write_->Complete(0);
(...skipping 10 matching lines...) Expand all
374 if (completed_synchronously) { 375 if (completed_synchronously) {
375 base::MessageLoop::current()->PostTask( 376 base::MessageLoop::current()->PostTask(
376 FROM_HERE, 377 FROM_HERE,
377 base::Bind(&URLLoaderImpl::ReadMore, weak_ptr_factory_.GetWeakPtr())); 378 base::Bind(&URLLoaderImpl::ReadMore, weak_ptr_factory_.GetWeakPtr()));
378 } else { 379 } else {
379 ReadMore(); 380 ReadMore();
380 } 381 }
381 } 382 }
382 383
383 } // namespace mojo 384 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698