| Index: trunk/src/chrome/browser/extensions/api/web_request/web_request_api.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/extensions/api/web_request/web_request_api.cc (revision 203966)
|
| +++ trunk/src/chrome/browser/extensions/api/web_request/web_request_api.cc (working copy)
|
| @@ -1602,12 +1602,28 @@
|
| api_call,
|
| details.release()));
|
| } else {
|
| - extensions::ActivityLog::GetInstance(profile)->LogWebRequestAction(
|
| - extension_id,
|
| - url,
|
| - api_call,
|
| - details.Pass(),
|
| - "");
|
| + // An ExtensionService might not be running during unit tests, or an
|
| + // extension might have been unloadd by the time we get to logging it. In
|
| + // those cases log a warning.
|
| + ExtensionService* extension_service =
|
| + extensions::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 {
|
| + extensions::ActivityLog::GetInstance(profile)->LogWebRequestAction(
|
| + extension,
|
| + url,
|
| + api_call,
|
| + details.Pass(),
|
| + "");
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|