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

Unified Diff: chrome/renderer/extensions/api_activity_logger.cc

Issue 18769009: [Activity Log] fix logging of blocked API calls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/extensions/api_activity_logger.h ('k') | chrome/renderer/extensions/dispatcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/extensions/api_activity_logger.cc
diff --git a/chrome/renderer/extensions/api_activity_logger.cc b/chrome/renderer/extensions/api_activity_logger.cc
index d9980aed1a5d1b6562859ae5b02bc6a0957c7d10..28a4367ff15f71d4732f49d8f6997e162e8ca8b3 100644
--- a/chrome/renderer/extensions/api_activity_logger.cc
+++ b/chrome/renderer/extensions/api_activity_logger.cc
@@ -19,6 +19,8 @@ APIActivityLogger::APIActivityLogger(
: ChromeV8Extension(dispatcher, context) {
RouteFunction("LogEvent", base::Bind(&APIActivityLogger::LogEvent));
RouteFunction("LogAPICall", base::Bind(&APIActivityLogger::LogAPICall));
+ RouteFunction("LogBlockedCall",
+ base::Bind(&APIActivityLogger::LogBlockedCallWrapper));
}
// static
@@ -42,11 +44,11 @@ void APIActivityLogger::LogInternal(
DCHECK(args[1]->IsString());
DCHECK(args[2]->IsArray());
- std::string ext_id = *v8::String::AsciiValue(args[0]->ToString());
+ std::string ext_id = *v8::String::AsciiValue(args[0]);
ExtensionHostMsg_APIActionOrEvent_Params params;
- params.api_call = *v8::String::AsciiValue(args[1]->ToString());
+ params.api_call = *v8::String::AsciiValue(args[1]);
if (args.Length() == 4) // Extras are optional.
- params.extra = *v8::String::AsciiValue(args[3]->ToString());
+ params.extra = *v8::String::AsciiValue(args[3]);
else
params.extra = "";
@@ -73,8 +75,30 @@ void APIActivityLogger::LogInternal(
}
// static
+void APIActivityLogger::LogBlockedCallWrapper(
+ const v8::FunctionCallbackInfo<v8::Value>& args) {
+ DCHECK_EQ(args.Length(), 3);
+ DCHECK(args[0]->IsString());
+ DCHECK(args[1]->IsString());
+ DCHECK(args[2]->IsNumber());
+ int result;
+ scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
+ converter->FromV8Value(args[2],
+ v8::Context::GetCurrent())->GetAsInteger(&result);
+ LogBlockedCall(*v8::String::AsciiValue(args[0]),
+ *v8::String::AsciiValue(args[1]),
+ static_cast<Feature::AvailabilityResult>(result));
+}
+
+// static
void APIActivityLogger::LogBlockedCall(const std::string& extension_id,
- const std::string& function_name) {
+ const std::string& function_name,
+ Feature::AvailabilityResult result) {
+ // We don't really want to bother logging if it isn't permission related.
+ if (result == Feature::INVALID_MIN_MANIFEST_VERSION ||
+ result == Feature::INVALID_MAX_MANIFEST_VERSION ||
+ result == Feature::UNSUPPORTED_CHANNEL)
+ return;
content::RenderThread::Get()->Send(
new ExtensionHostMsg_AddBlockedCallToActivityLog(extension_id,
function_name));
« no previous file with comments | « chrome/renderer/extensions/api_activity_logger.h ('k') | chrome/renderer/extensions/dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698