| Index: trunk/src/chrome/browser/extensions/event_router.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/extensions/event_router.cc (revision 203966)
|
| +++ trunk/src/chrome/browser/extensions/event_router.cc (working copy)
|
| @@ -111,8 +111,25 @@
|
| Profile* profile = reinterpret_cast<Profile*>(profile_id);
|
| if (!g_browser_process->profile_manager()->IsValidProfile(profile))
|
| return;
|
| - ActivityLog::GetInstance(profile)->LogEventAction(
|
| - extension_id, event_name, event_args.get(), std::string());
|
| +
|
| + // An ExtensionService might not be running during unit tests, or an
|
| + // extension might have been unloaded by the time we get to logging it. In
|
| + // those cases log a warning.
|
| + ExtensionService* extension_service =
|
| + ExtensionSystem::Get(profile)->extension_service();
|
| + if (!extension_service) {
|
| + LOG(WARNING) << "ExtensionService does not seem to be available "
|
| + << "(this may be normal for unit tests)";
|
| + } else {
|
| + const Extension* extension =
|
| + extension_service->extensions()->GetByID(extension_id);
|
| + if (!extension) {
|
| + LOG(WARNING) << "Extension " << extension_id << " not found!";
|
| + } else {
|
| + ActivityLog::GetInstance(profile)->LogEventAction(
|
| + extension, event_name, event_args.get(), std::string());
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|