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

Side by Side Diff: content/browser/streams/stream.cc

Issue 1170623003: Revert "content: Remove use of MessageLoopProxy and deprecated MessageLoop APIs" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/browser/streams/stream.h" 5 #include "content/browser/streams/stream.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/thread_task_runner_handle.h"
11 #include "base/values.h" 10 #include "base/values.h"
12 #include "content/browser/streams/stream_handle_impl.h" 11 #include "content/browser/streams/stream_handle_impl.h"
13 #include "content/browser/streams/stream_read_observer.h" 12 #include "content/browser/streams/stream_read_observer.h"
14 #include "content/browser/streams/stream_registry.h" 13 #include "content/browser/streams/stream_registry.h"
15 #include "content/browser/streams/stream_write_observer.h" 14 #include "content/browser/streams/stream_write_observer.h"
16 #include "net/base/io_buffer.h" 15 #include "net/base/io_buffer.h"
17 #include "net/http/http_response_headers.h" 16 #include "net/http/http_response_headers.h"
18 17
19 namespace { 18 namespace {
20 // Start throttling the connection at about 1MB. 19 // Start throttling the connection at about 1MB.
21 const size_t kDeferSizeThreshold = 40 * 32768; 20 const size_t kDeferSizeThreshold = 40 * 32768;
22 } 21 }
23 22
24 namespace content { 23 namespace content {
25 24
26 Stream::Stream(StreamRegistry* registry, 25 Stream::Stream(StreamRegistry* registry,
27 StreamWriteObserver* write_observer, 26 StreamWriteObserver* write_observer,
28 const GURL& url) 27 const GURL& url)
29 : can_add_data_(true), 28 : can_add_data_(true),
30 url_(url), 29 url_(url),
31 data_length_(0), 30 data_length_(0),
32 data_bytes_read_(0), 31 data_bytes_read_(0),
33 last_total_buffered_bytes_(0), 32 last_total_buffered_bytes_(0),
34 registry_(registry), 33 registry_(registry),
35 read_observer_(NULL), 34 read_observer_(NULL),
36 write_observer_(write_observer), 35 write_observer_(write_observer),
37 stream_handle_(NULL), 36 stream_handle_(NULL),
38 weak_ptr_factory_(this) { 37 weak_ptr_factory_(this) {
39 CreateByteStream(base::ThreadTaskRunnerHandle::Get(), 38 CreateByteStream(base::MessageLoopProxy::current(),
40 base::ThreadTaskRunnerHandle::Get(), kDeferSizeThreshold, 39 base::MessageLoopProxy::current(),
41 &writer_, &reader_); 40 kDeferSizeThreshold,
41 &writer_,
42 &reader_);
42 43
43 // Setup callback for writing. 44 // Setup callback for writing.
44 writer_->RegisterCallback(base::Bind(&Stream::OnSpaceAvailable, 45 writer_->RegisterCallback(base::Bind(&Stream::OnSpaceAvailable,
45 weak_ptr_factory_.GetWeakPtr())); 46 weak_ptr_factory_.GetWeakPtr()));
46 reader_->RegisterCallback(base::Bind(&Stream::OnDataAvailable, 47 reader_->RegisterCallback(base::Bind(&Stream::OnDataAvailable,
47 weak_ptr_factory_.GetWeakPtr())); 48 weak_ptr_factory_.GetWeakPtr()));
48 49
49 registry_->RegisterStream(this); 50 registry_->RegisterStream(this);
50 } 51 }
51 52
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 115 }
115 116
116 void Stream::Finalize() { 117 void Stream::Finalize() {
117 if (!writer_.get()) 118 if (!writer_.get())
118 return; 119 return;
119 120
120 writer_->Close(0); 121 writer_->Close(0);
121 writer_.reset(); 122 writer_.reset();
122 123
123 // Continue asynchronously. 124 // Continue asynchronously.
124 base::ThreadTaskRunnerHandle::Get()->PostTask( 125 base::MessageLoopProxy::current()->PostTask(
125 FROM_HERE, 126 FROM_HERE,
126 base::Bind(&Stream::OnDataAvailable, weak_ptr_factory_.GetWeakPtr())); 127 base::Bind(&Stream::OnDataAvailable, weak_ptr_factory_.GetWeakPtr()));
127 } 128 }
128 129
129 Stream::StreamState Stream::ReadRawData(net::IOBuffer* buf, 130 Stream::StreamState Stream::ReadRawData(net::IOBuffer* buf,
130 int buf_size, 131 int buf_size,
131 int* bytes_read) { 132 int* bytes_read) {
132 DCHECK(buf); 133 DCHECK(buf);
133 DCHECK(bytes_read); 134 DCHECK(bytes_read);
134 135
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 read_observer_->OnDataAvailable(this); 194 read_observer_->OnDataAvailable(this);
194 } 195 }
195 196
196 void Stream::ClearBuffer() { 197 void Stream::ClearBuffer() {
197 data_ = NULL; 198 data_ = NULL;
198 data_length_ = 0; 199 data_length_ = 0;
199 data_bytes_read_ = 0; 200 data_bytes_read_ = 0;
200 } 201 }
201 202
202 } // namespace content 203 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/storage_partition_impl_unittest.cc ('k') | content/browser/streams/stream_handle_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698