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

Side by Side Diff: chrome/browser/background/background_contents.cc

Issue 2426223002: Reduce FOR_EACH_OBSERVER macro usage in chrome/browser (Closed)
Patch Set: Created 4 years, 2 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) 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/browser/background/background_contents.h" 5 #include "chrome/browser/background/background_contents.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/profiler/scoped_tracker.h" 9 #include "base/profiler/scoped_tracker.h"
10 #include "chrome/browser/background/background_contents_service.h" 10 #include "chrome/browser/background/background_contents_service.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 92
93 // Unregister for any notifications before notifying observers that we are 93 // Unregister for any notifications before notifying observers that we are
94 // going away - this prevents any re-entrancy due to chained notifications 94 // going away - this prevents any re-entrancy due to chained notifications
95 // (http://crbug.com/237781). 95 // (http://crbug.com/237781).
96 registrar_.RemoveAll(); 96 registrar_.RemoveAll();
97 97
98 content::NotificationService::current()->Notify( 98 content::NotificationService::current()->Notify(
99 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED, 99 chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED,
100 content::Source<Profile>(profile_), 100 content::Source<Profile>(profile_),
101 content::Details<BackgroundContents>(this)); 101 content::Details<BackgroundContents>(this));
102 FOR_EACH_OBSERVER(extensions::DeferredStartRenderHostObserver, 102 for (auto& observer : deferred_start_render_host_observer_list_)
103 deferred_start_render_host_observer_list_, 103 observer.OnDeferredStartRenderHostDestroyed(this);
104 OnDeferredStartRenderHostDestroyed(this));
105 104
106 extension_host_delegate_->GetExtensionHostQueue()->Remove(this); 105 extension_host_delegate_->GetExtensionHostQueue()->Remove(this);
107 } 106 }
108 107
109 const GURL& BackgroundContents::GetURL() const { 108 const GURL& BackgroundContents::GetURL() const {
110 return web_contents_.get() ? web_contents_->GetURL() : GURL::EmptyGURL(); 109 return web_contents_.get() ? web_contents_->GetURL() : GURL::EmptyGURL();
111 } 110 }
112 111
113 void BackgroundContents::CreateRenderViewSoon(const GURL& url) { 112 void BackgroundContents::CreateRenderViewSoon(const GURL& url) {
114 initial_url_ = url; 113 initial_url_ = url;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 // Our RenderView went away, so we should go away also, so killing the process 166 // Our RenderView went away, so we should go away also, so killing the process
168 // via the TaskManager doesn't permanently leave a BackgroundContents hanging 167 // via the TaskManager doesn't permanently leave a BackgroundContents hanging
169 // around the system, blocking future instances from being created 168 // around the system, blocking future instances from being created
170 // <http://crbug.com/65189>. 169 // <http://crbug.com/65189>.
171 delete this; 170 delete this;
172 } 171 }
173 172
174 void BackgroundContents::DidStartLoading() { 173 void BackgroundContents::DidStartLoading() {
175 // BackgroundContents only loads once, so this can only be the first time it 174 // BackgroundContents only loads once, so this can only be the first time it
176 // has started loading. 175 // has started loading.
177 FOR_EACH_OBSERVER(extensions::DeferredStartRenderHostObserver, 176 for (auto& observer : deferred_start_render_host_observer_list_)
178 deferred_start_render_host_observer_list_, 177 observer.OnDeferredStartRenderHostDidStartFirstLoad(this);
179 OnDeferredStartRenderHostDidStartFirstLoad(this));
180 } 178 }
181 179
182 void BackgroundContents::DidStopLoading() { 180 void BackgroundContents::DidStopLoading() {
183 // BackgroundContents only loads once, so this can only be the first time 181 // BackgroundContents only loads once, so this can only be the first time
184 // it has stopped loading. 182 // it has stopped loading.
185 FOR_EACH_OBSERVER(extensions::DeferredStartRenderHostObserver, 183 for (auto& observer : deferred_start_render_host_observer_list_)
186 deferred_start_render_host_observer_list_, 184 observer.OnDeferredStartRenderHostDidStopFirstLoad(this);
187 OnDeferredStartRenderHostDidStopFirstLoad(this));
188 } 185 }
189 186
190 void BackgroundContents::Observe(int type, 187 void BackgroundContents::Observe(int type,
191 const content::NotificationSource& source, 188 const content::NotificationSource& source,
192 const content::NotificationDetails& details) { 189 const content::NotificationDetails& details) {
193 // TODO(rafaelw): Implement pagegroup ref-counting so that non-persistent 190 // TODO(rafaelw): Implement pagegroup ref-counting so that non-persistent
194 // background pages are closed when the last referencing frame is closed. 191 // background pages are closed when the last referencing frame is closed.
195 switch (type) { 192 switch (type) {
196 case chrome::NOTIFICATION_PROFILE_DESTROYED: 193 case chrome::NOTIFICATION_PROFILE_DESTROYED:
197 case chrome::NOTIFICATION_APP_TERMINATING: { 194 case chrome::NOTIFICATION_APP_TERMINATING: {
(...skipping 18 matching lines...) Expand all
216 213
217 void BackgroundContents::AddDeferredStartRenderHostObserver( 214 void BackgroundContents::AddDeferredStartRenderHostObserver(
218 extensions::DeferredStartRenderHostObserver* observer) { 215 extensions::DeferredStartRenderHostObserver* observer) {
219 deferred_start_render_host_observer_list_.AddObserver(observer); 216 deferred_start_render_host_observer_list_.AddObserver(observer);
220 } 217 }
221 218
222 void BackgroundContents::RemoveDeferredStartRenderHostObserver( 219 void BackgroundContents::RemoveDeferredStartRenderHostObserver(
223 extensions::DeferredStartRenderHostObserver* observer) { 220 extensions::DeferredStartRenderHostObserver* observer) {
224 deferred_start_render_host_observer_list_.RemoveObserver(observer); 221 deferred_start_render_host_observer_list_.RemoveObserver(observer);
225 } 222 }
OLDNEW
« no previous file with comments | « chrome/browser/background/background_application_list_model.cc ('k') | chrome/browser/command_updater.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698