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

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

Issue 759823003: Introduce StreamRegistry::NotifyReaderAbortedBeforeRegistration() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: AbortPendingStream Created 6 years 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
« no previous file with comments | « content/browser/streams/stream_registry.h ('k') | content/browser/streams/stream_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_registry.h" 5 #include "content/browser/streams/stream_registry.h"
6 6
7 #include "content/browser/streams/stream.h" 7 #include "content/browser/streams/stream.h"
8 8
9 namespace content { 9 namespace content {
10 10
11 namespace { 11 namespace {
12 // The maximum size of memory each StreamRegistry instance is allowed to use 12 // The maximum size of memory each StreamRegistry instance is allowed to use
13 // for its Stream instances. 13 // for its Stream instances.
14 const size_t kDefaultMaxMemoryUsage = 1024 * 1024 * 1024U; // 1GiB 14 const size_t kDefaultMaxMemoryUsage = 1024 * 1024 * 1024U; // 1GiB
15 } 15 }
16 16
17 StreamRegistry::StreamRegistry() 17 StreamRegistry::StreamRegistry()
18 : total_memory_usage_(0), 18 : total_memory_usage_(0),
19 max_memory_usage_(kDefaultMaxMemoryUsage) { 19 max_memory_usage_(kDefaultMaxMemoryUsage) {
20 } 20 }
21 21
22 StreamRegistry::~StreamRegistry() { 22 StreamRegistry::~StreamRegistry() {
23 DCHECK(register_observers_.empty()); 23 DCHECK(register_observers_.empty());
24 } 24 }
25 25
26 void StreamRegistry::RegisterStream(scoped_refptr<Stream> stream) { 26 void StreamRegistry::RegisterStream(Stream* stream) {
27 DCHECK(CalledOnValidThread()); 27 DCHECK(CalledOnValidThread());
28 DCHECK(stream.get()); 28 DCHECK(stream);
29 DCHECK(!stream->url().is_empty()); 29 DCHECK(!stream->url().is_empty());
30
31 auto aborted_url_itr = reader_aborted_urls_.find(stream->url());
32 if (aborted_url_itr != reader_aborted_urls_.end()) {
33 reader_aborted_urls_.erase(aborted_url_itr);
34 return;
35 }
30 streams_[stream->url()] = stream; 36 streams_[stream->url()] = stream;
31 37
32 auto itr = register_observers_.find(stream->url()); 38 auto itr = register_observers_.find(stream->url());
33 if (itr != register_observers_.end()) 39 if (itr != register_observers_.end())
34 itr->second->OnStreamRegistered(stream.get()); 40 itr->second->OnStreamRegistered(stream);
35 } 41 }
36 42
37 scoped_refptr<Stream> StreamRegistry::GetStream(const GURL& url) { 43 scoped_refptr<Stream> StreamRegistry::GetStream(const GURL& url) {
38 DCHECK(CalledOnValidThread()); 44 DCHECK(CalledOnValidThread());
39 StreamMap::const_iterator stream = streams_.find(url); 45 StreamMap::const_iterator stream = streams_.find(url);
40 if (stream != streams_.end()) 46 if (stream != streams_.end())
41 return stream->second; 47 return stream->second;
42 48
43 return NULL; 49 return NULL;
44 } 50 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 DCHECK(CalledOnValidThread()); 106 DCHECK(CalledOnValidThread());
101 DCHECK(register_observers_.find(url) == register_observers_.end()); 107 DCHECK(register_observers_.find(url) == register_observers_.end());
102 register_observers_[url] = observer; 108 register_observers_[url] = observer;
103 } 109 }
104 110
105 void StreamRegistry::RemoveRegisterObserver(const GURL& url) { 111 void StreamRegistry::RemoveRegisterObserver(const GURL& url) {
106 DCHECK(CalledOnValidThread()); 112 DCHECK(CalledOnValidThread());
107 register_observers_.erase(url); 113 register_observers_.erase(url);
108 } 114 }
109 115
116 void StreamRegistry::AbortPendingStream(const GURL& url) {
117 DCHECK(CalledOnValidThread());
118 reader_aborted_urls_.insert(url);
119 }
110 120
111 } // namespace content 121 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/streams/stream_registry.h ('k') | content/browser/streams/stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698