Index: chrome/renderer/extensions/runtime_custom_bindings.cc |
diff --git a/chrome/renderer/extensions/runtime_custom_bindings.cc b/chrome/renderer/extensions/runtime_custom_bindings.cc |
index 8cdc10383562f1b35dce9036bdbc2eebfe2f2bbf..dc43a8ac07a16525c1acbc80962e34faeeb4e009 100644 |
--- a/chrome/renderer/extensions/runtime_custom_bindings.cc |
+++ b/chrome/renderer/extensions/runtime_custom_bindings.cc |
@@ -11,6 +11,7 @@ |
#include "chrome/common/extensions/extension_messages.h" |
#include "chrome/common/extensions/features/base_feature_provider.h" |
#include "chrome/common/extensions/manifest.h" |
+#include "chrome/renderer/extensions/api_activity_logger.h" |
#include "chrome/renderer/extensions/chrome_v8_context.h" |
#include "chrome/renderer/extensions/dispatcher.h" |
#include "content/public/renderer/render_view.h" |
@@ -65,11 +66,16 @@ void RuntimeCustomBindings::OpenChannelToExtension( |
void RuntimeCustomBindings::OpenChannelToNativeApp( |
const v8::FunctionCallbackInfo<v8::Value>& args) { |
// Verify that the extension has permission to use native messaging. |
- if (!BaseFeatureProvider::GetByName("permission")->GetFeature( |
- "nativeMessaging")->IsAvailableToContext( |
- GetExtensionForRenderView(), |
- context()->context_type(), |
- context()->GetURL()).is_available()) { |
+ Feature::Availability availability = |
+ BaseFeatureProvider::GetByName("permission")-> |
+ GetFeature("nativeMessaging")->IsAvailableToContext( |
+ GetExtensionForRenderView(), |
+ context()->context_type(), |
+ context()->GetURL()); |
+ if (!availability.is_available()) { |
+ APIActivityLogger::LogBlockedCall(context()->extension()->id(), |
+ "nativeMessaging", |
+ availability.result()); |
return; |
} |