| Index: content/browser/streams/stream_handle_impl.cc
|
| diff --git a/content/browser/streams/stream_handle_impl.cc b/content/browser/streams/stream_handle_impl.cc
|
| index d13bdc6a710ec28d85d7ca2cfbc2e38ad2288e06..6ff49621b57f10744cc10fe875906da362bc97ca 100644
|
| --- a/content/browser/streams/stream_handle_impl.cc
|
| +++ b/content/browser/streams/stream_handle_impl.cc
|
| @@ -12,6 +12,15 @@
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +
|
| +void RunCloseListeners(const std::vector<base::Closure>& close_listeners) {
|
| + for (size_t i = 0; i < close_listeners.size(); ++i)
|
| + close_listeners[i].Run();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| StreamHandleImpl::StreamHandleImpl(
|
| const base::WeakPtr<Stream>& stream,
|
| const GURL& original_url,
|
| @@ -25,8 +34,9 @@ StreamHandleImpl::StreamHandleImpl(
|
| stream_message_loop_(base::MessageLoopProxy::current().get()) {}
|
|
|
| StreamHandleImpl::~StreamHandleImpl() {
|
| - stream_message_loop_->PostTask(FROM_HERE,
|
| - base::Bind(&Stream::CloseHandle, stream_));
|
| + stream_message_loop_->PostTaskAndReply(FROM_HERE,
|
| + base::Bind(&Stream::CloseHandle, stream_),
|
| + base::Bind(&RunCloseListeners, close_listeners_));
|
| }
|
|
|
| const GURL& StreamHandleImpl::GetURL() {
|
| @@ -45,4 +55,8 @@ scoped_refptr<net::HttpResponseHeaders> StreamHandleImpl::GetResponseHeaders() {
|
| return response_headers_;
|
| }
|
|
|
| +void StreamHandleImpl::AddCloseListener(const base::Closure& callback) {
|
| + close_listeners_.push_back(callback);
|
| +}
|
| +
|
| } // namespace content
|
|
|