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

Side by Side Diff: chrome/browser/extensions/extension_test_notification_observer.cc

Issue 425303002: Move extension notifications to extensions/browser/notification_types.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (extension-notifications) rebase Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/extensions/extension_test_notification_observer.h" 5 #include "chrome/browser/extensions/extension_test_notification_observer.h"
6 6
7 #include "base/callback_list.h" 7 #include "base/callback_list.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/profiles/profile_manager.h"
10 #include "chrome/browser/ui/browser.h" 10 #include "chrome/browser/ui/browser.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 notification_type, content::NotificationService::AllSources()).Wait(); 149 notification_type, content::NotificationService::AllSources()).Wait();
150 } 150 }
151 151
152 bool ExtensionTestNotificationObserver::WaitForPageActionCountChangeTo( 152 bool ExtensionTestNotificationObserver::WaitForPageActionCountChangeTo(
153 int count) { 153 int count) {
154 LocationBarTesting* location_bar = 154 LocationBarTesting* location_bar =
155 browser_->window()->GetLocationBar()->GetLocationBarForTesting(); 155 browser_->window()->GetLocationBar()->GetLocationBarForTesting();
156 WaitForCondition( 156 WaitForCondition(
157 base::Bind( 157 base::Bind(
158 &HasExtensionPageActionCountReachedTarget, location_bar, count), 158 &HasExtensionPageActionCountReachedTarget, location_bar, count),
159 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED); 159 extensions::NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED);
160 return true; 160 return true;
161 } 161 }
162 162
163 bool ExtensionTestNotificationObserver::WaitForPageActionVisibilityChangeTo( 163 bool ExtensionTestNotificationObserver::WaitForPageActionVisibilityChangeTo(
164 int count) { 164 int count) {
165 LocationBarTesting* location_bar = 165 LocationBarTesting* location_bar =
166 browser_->window()->GetLocationBar()->GetLocationBarForTesting(); 166 browser_->window()->GetLocationBar()->GetLocationBarForTesting();
167 WaitForCondition( 167 WaitForCondition(
168 base::Bind( 168 base::Bind(
169 &HasExtensionPageActionVisibilityReachedTarget, location_bar, count), 169 &HasExtensionPageActionVisibilityReachedTarget, location_bar, count),
170 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED); 170 extensions::NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED);
171 return true; 171 return true;
172 } 172 }
173 173
174 bool ExtensionTestNotificationObserver::WaitForExtensionViewsToLoad() { 174 bool ExtensionTestNotificationObserver::WaitForExtensionViewsToLoad() {
175 extensions::ProcessManager* manager = 175 extensions::ProcessManager* manager =
176 extensions::ExtensionSystem::Get(GetProfile())->process_manager(); 176 extensions::ExtensionSystem::Get(GetProfile())->process_manager();
177 NotificationSet notification_set; 177 NotificationSet notification_set;
178 notification_set.Add(content::NOTIFICATION_WEB_CONTENTS_DESTROYED); 178 notification_set.Add(content::NOTIFICATION_WEB_CONTENTS_DESTROYED);
179 notification_set.Add(content::NOTIFICATION_LOAD_STOP); 179 notification_set.Add(content::NOTIFICATION_LOAD_STOP);
180 WaitForCondition( 180 WaitForCondition(
181 base::Bind(&HaveAllExtensionRenderViewHostsFinishedLoading, manager), 181 base::Bind(&HaveAllExtensionRenderViewHostsFinishedLoading, manager),
182 &notification_set); 182 &notification_set);
183 return true; 183 return true;
184 } 184 }
185 185
186 bool ExtensionTestNotificationObserver::WaitForExtensionInstall() { 186 bool ExtensionTestNotificationObserver::WaitForExtensionInstall() {
187 int before = extension_installs_observed_; 187 int before = extension_installs_observed_;
188 WaitForNotification( 188 WaitForNotification(
189 chrome::NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED); 189 extensions::NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED);
190 return extension_installs_observed_ == (before + 1); 190 return extension_installs_observed_ == (before + 1);
191 } 191 }
192 192
193 bool ExtensionTestNotificationObserver::WaitForExtensionInstallError() { 193 bool ExtensionTestNotificationObserver::WaitForExtensionInstallError() {
194 int before = extension_installs_observed_; 194 int before = extension_installs_observed_;
195 content::WindowedNotificationObserver( 195 content::WindowedNotificationObserver(
196 chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR, 196 extensions::NOTIFICATION_EXTENSION_INSTALL_ERROR,
197 content::NotificationService::AllSources()).Wait(); 197 content::NotificationService::AllSources()).Wait();
198 return extension_installs_observed_ == before; 198 return extension_installs_observed_ == before;
199 } 199 }
200 200
201 void ExtensionTestNotificationObserver::WaitForExtensionLoad() { 201 void ExtensionTestNotificationObserver::WaitForExtensionLoad() {
202 WaitForNotification(chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED); 202 WaitForNotification(extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED);
203 } 203 }
204 204
205 void ExtensionTestNotificationObserver::WaitForExtensionAndViewLoad() { 205 void ExtensionTestNotificationObserver::WaitForExtensionAndViewLoad() {
206 this->WaitForExtensionLoad(); 206 this->WaitForExtensionLoad();
207 WaitForExtensionViewsToLoad(); 207 WaitForExtensionViewsToLoad();
208 } 208 }
209 209
210 bool ExtensionTestNotificationObserver::WaitForExtensionLoadError() { 210 bool ExtensionTestNotificationObserver::WaitForExtensionLoadError() {
211 int before = extension_load_errors_observed_; 211 int before = extension_load_errors_observed_;
212 WaitForNotification(chrome::NOTIFICATION_EXTENSION_LOAD_ERROR); 212 WaitForNotification(extensions::NOTIFICATION_EXTENSION_LOAD_ERROR);
213 return extension_load_errors_observed_ != before; 213 return extension_load_errors_observed_ != before;
214 } 214 }
215 215
216 bool ExtensionTestNotificationObserver::WaitForExtensionCrash( 216 bool ExtensionTestNotificationObserver::WaitForExtensionCrash(
217 const std::string& extension_id) { 217 const std::string& extension_id) {
218 ExtensionService* service = extensions::ExtensionSystem::Get( 218 ExtensionService* service = extensions::ExtensionSystem::Get(
219 GetProfile())->extension_service(); 219 GetProfile())->extension_service();
220 220
221 if (!service->GetExtensionById(extension_id, true)) { 221 if (!service->GetExtensionById(extension_id, true)) {
222 // The extension is already unloaded, presumably due to a crash. 222 // The extension is already unloaded, presumably due to a crash.
223 return true; 223 return true;
224 } 224 }
225 content::WindowedNotificationObserver( 225 content::WindowedNotificationObserver(
226 chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED, 226 extensions::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
227 content::NotificationService::AllSources()).Wait(); 227 content::NotificationService::AllSources()).Wait();
228 return (service->GetExtensionById(extension_id, true) == NULL); 228 return (service->GetExtensionById(extension_id, true) == NULL);
229 } 229 }
230 230
231 bool ExtensionTestNotificationObserver::WaitForCrxInstallerDone() { 231 bool ExtensionTestNotificationObserver::WaitForCrxInstallerDone() {
232 int before = crx_installers_done_observed_; 232 int before = crx_installers_done_observed_;
233 WaitForNotification(chrome::NOTIFICATION_CRX_INSTALLER_DONE); 233 WaitForNotification(extensions::NOTIFICATION_CRX_INSTALLER_DONE);
234 return crx_installers_done_observed_ == (before + 1); 234 return crx_installers_done_observed_ == (before + 1);
235 } 235 }
236 236
237 void ExtensionTestNotificationObserver::Watch( 237 void ExtensionTestNotificationObserver::Watch(
238 int type, 238 int type,
239 const content::NotificationSource& source) { 239 const content::NotificationSource& source) {
240 CHECK(!observer_); 240 CHECK(!observer_);
241 observer_.reset(new content::WindowedNotificationObserver(type, source)); 241 observer_.reset(new content::WindowedNotificationObserver(type, source));
242 registrar_.Add(this, type, source); 242 registrar_.Add(this, type, source);
243 } 243 }
244 244
245 void ExtensionTestNotificationObserver::Wait() { 245 void ExtensionTestNotificationObserver::Wait() {
246 observer_->Wait(); 246 observer_->Wait();
247 247
248 registrar_.RemoveAll(); 248 registrar_.RemoveAll();
249 observer_.reset(); 249 observer_.reset();
250 } 250 }
251 251
252 void ExtensionTestNotificationObserver::Observe( 252 void ExtensionTestNotificationObserver::Observe(
253 int type, 253 int type,
254 const content::NotificationSource& source, 254 const content::NotificationSource& source,
255 const content::NotificationDetails& details) { 255 const content::NotificationDetails& details) {
256 switch (type) { 256 switch (type) {
257 case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: 257 case extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED:
258 last_loaded_extension_id_ = 258 last_loaded_extension_id_ =
259 content::Details<const Extension>(details).ptr()->id(); 259 content::Details<const Extension>(details).ptr()->id();
260 VLOG(1) << "Got EXTENSION_LOADED notification."; 260 VLOG(1) << "Got EXTENSION_LOADED notification.";
261 break; 261 break;
262 262
263 case chrome::NOTIFICATION_CRX_INSTALLER_DONE: 263 case extensions::NOTIFICATION_CRX_INSTALLER_DONE:
264 VLOG(1) << "Got CRX_INSTALLER_DONE notification."; 264 VLOG(1) << "Got CRX_INSTALLER_DONE notification.";
265 { 265 {
266 const Extension* extension = 266 const Extension* extension =
267 content::Details<const Extension>(details).ptr(); 267 content::Details<const Extension>(details).ptr();
268 if (extension) 268 if (extension)
269 last_loaded_extension_id_ = extension->id(); 269 last_loaded_extension_id_ = extension->id();
270 else 270 else
271 last_loaded_extension_id_.clear(); 271 last_loaded_extension_id_.clear();
272 } 272 }
273 ++crx_installers_done_observed_; 273 ++crx_installers_done_observed_;
274 break; 274 break;
275 275
276 case chrome::NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED: 276 case extensions::NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED:
277 VLOG(1) << "Got EXTENSION_INSTALLED notification."; 277 VLOG(1) << "Got EXTENSION_INSTALLED notification.";
278 ++extension_installs_observed_; 278 ++extension_installs_observed_;
279 break; 279 break;
280 280
281 case chrome::NOTIFICATION_EXTENSION_LOAD_ERROR: 281 case extensions::NOTIFICATION_EXTENSION_LOAD_ERROR:
282 VLOG(1) << "Got EXTENSION_LOAD_ERROR notification."; 282 VLOG(1) << "Got EXTENSION_LOAD_ERROR notification.";
283 ++extension_load_errors_observed_; 283 ++extension_load_errors_observed_;
284 break; 284 break;
285 285
286 default: 286 default:
287 NOTREACHED(); 287 NOTREACHED();
288 break; 288 break;
289 } 289 }
290 } 290 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_test_message_listener.cc ('k') | chrome/browser/extensions/extension_toolbar_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698