| Index: chrome/browser/extensions/extension_function_dispatcher.cc
|
| diff --git a/chrome/browser/extensions/extension_function_dispatcher.cc b/chrome/browser/extensions/extension_function_dispatcher.cc
|
| index a7b352430bfccc2f18722bf044d2061e29f8076e..33f63bb515f6f1abbc1486f7c06057a851db97bd 100644
|
| --- a/chrome/browser/extensions/extension_function_dispatcher.cc
|
| +++ b/chrome/browser/extensions/extension_function_dispatcher.cc
|
| @@ -46,7 +46,7 @@ using WebKit::WebSecurityOrigin;
|
|
|
| namespace {
|
|
|
| -void LogSuccess(const Extension* extension,
|
| +void LogSuccess(const std::string& extension_id,
|
| const std::string& api_name,
|
| scoped_ptr<ListValue> args,
|
| Profile* profile) {
|
| @@ -56,18 +56,19 @@ void LogSuccess(const Extension* extension,
|
| BrowserThread::PostTask(BrowserThread::UI,
|
| FROM_HERE,
|
| base::Bind(&LogSuccess,
|
| - extension,
|
| + extension_id,
|
| api_name,
|
| base::Passed(&args),
|
| profile));
|
| } else {
|
| extensions::ActivityLog* activity_log =
|
| extensions::ActivityLog::GetInstance(profile);
|
| - activity_log->LogAPIAction(extension, api_name, args.get(), std::string());
|
| + activity_log->LogAPIAction(
|
| + extension_id, api_name, args.get(), std::string());
|
| }
|
| }
|
|
|
| -void LogFailure(const Extension* extension,
|
| +void LogFailure(const std::string& extension_id,
|
| const std::string& api_name,
|
| scoped_ptr<ListValue> args,
|
| extensions::BlockedAction::Reason reason,
|
| @@ -78,7 +79,7 @@ void LogFailure(const Extension* extension,
|
| BrowserThread::PostTask(BrowserThread::UI,
|
| FROM_HERE,
|
| base::Bind(&LogFailure,
|
| - extension,
|
| + extension_id,
|
| api_name,
|
| base::Passed(&args),
|
| reason,
|
| @@ -87,7 +88,7 @@ void LogFailure(const Extension* extension,
|
| extensions::ActivityLog* activity_log =
|
| extensions::ActivityLog::GetInstance(profile);
|
| activity_log->LogBlockedAction(
|
| - extension, api_name, args.get(), reason, std::string());
|
| + extension_id, api_name, args.get(), reason, std::string());
|
| }
|
| }
|
|
|
| @@ -259,7 +260,7 @@ void ExtensionFunctionDispatcher::DispatchOnIOThread(
|
| scoped_ptr<ListValue> args(params.arguments.DeepCopy());
|
|
|
| if (!function.get()) {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::ACCESS_DENIED,
|
| @@ -279,7 +280,7 @@ void ExtensionFunctionDispatcher::DispatchOnIOThread(
|
| extension_info_map->IsIncognitoEnabled(extension->id()));
|
|
|
| if (!CheckPermissions(function.get(), extension, params, callback)) {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::ACCESS_DENIED,
|
| @@ -293,13 +294,13 @@ void ExtensionFunctionDispatcher::DispatchOnIOThread(
|
| ¶ms.arguments,
|
| base::TimeTicks::Now());
|
| if (violation_error.empty()) {
|
| - LogSuccess(extension,
|
| + LogSuccess(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| profile_cast);
|
| function->Run();
|
| } else {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::QUOTA_EXCEEDED,
|
| @@ -364,7 +365,7 @@ void ExtensionFunctionDispatcher::DispatchWithCallback(
|
| scoped_ptr<ListValue> args(params.arguments.DeepCopy());
|
|
|
| if (!function.get()) {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::ACCESS_DENIED,
|
| @@ -384,7 +385,7 @@ void ExtensionFunctionDispatcher::DispatchWithCallback(
|
| function->set_include_incognito(service->CanCrossIncognito(extension));
|
|
|
| if (!CheckPermissions(function.get(), extension, params, callback)) {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::ACCESS_DENIED,
|
| @@ -400,10 +401,10 @@ void ExtensionFunctionDispatcher::DispatchWithCallback(
|
| if (violation_error.empty()) {
|
| // See crbug.com/39178.
|
| ExternalProtocolHandler::PermitLaunchUrl();
|
| - LogSuccess(extension, params.name, args.Pass(), profile());
|
| + LogSuccess(extension->id(), params.name, args.Pass(), profile());
|
| function->Run();
|
| } else {
|
| - LogFailure(extension,
|
| + LogFailure(extension->id(),
|
| params.name,
|
| args.Pass(),
|
| extensions::BlockedAction::QUOTA_EXCEEDED,
|
|
|