Chromium Code Reviews| Index: chrome/renderer/searchbox/searchbox_extension.cc |
| diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc |
| index 4b3043a185357058b25049ec770f7fffc355339d..1066f8d010106c97bb616101d40d7bf82ef15f74 100644 |
| --- a/chrome/renderer/searchbox/searchbox_extension.cc |
| +++ b/chrome/renderer/searchbox/searchbox_extension.cc |
| @@ -5,6 +5,7 @@ |
| #include "chrome/renderer/searchbox/searchbox_extension.h" |
| #include "base/i18n/rtl.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/string_util.h" |
| #include "base/strings/stringprintf.h" |
| @@ -647,6 +648,9 @@ class SearchBoxExtensionWrapper : public v8::Extension { |
| static void GetMostVisitedItemData( |
| const v8::FunctionCallbackInfo<v8::Value>& args); |
| + // Logs information from the iframes on the NTP. |
| + static void LogEvent(const v8::FunctionCallbackInfo<v8::Value>& args); |
| + |
| // Gets whether the omnibox has focus or not. |
| static void IsFocused(const v8::FunctionCallbackInfo<v8::Value>& args); |
| @@ -739,6 +743,8 @@ v8::Handle<v8::FunctionTemplate> SearchBoxExtensionWrapper::GetNativeFunction( |
| return v8::FunctionTemplate::New(GetSuggestionData); |
| if (name->Equals(v8::String::New("GetMostVisitedItemData"))) |
| return v8::FunctionTemplate::New(GetMostVisitedItemData); |
| + if (name->Equals(v8::String::New("LogEvent"))) |
| + return v8::FunctionTemplate::New(LogEvent); |
| if (name->Equals(v8::String::New("IsFocused"))) |
| return v8::FunctionTemplate::New(IsFocused); |
| if (name->Equals(v8::String::New("IsInputInProgress"))) |
| @@ -1458,6 +1464,32 @@ void SearchBoxExtensionWrapper::GetMostVisitedItemData( |
| } |
| // static |
| +void SearchBoxExtensionWrapper::LogEvent( |
| + const v8::FunctionCallbackInfo<v8::Value>& args) { |
| + content::RenderView* render_view = GetRenderViewWithCheckedOrigin( |
| + GURL(chrome::kChromeSearchMostVisitedUrl)); |
| + if (!render_view) return; |
| + |
| + if (args.Length() < 2 || !args[0]->IsString() || !args[1]->IsNumber()) |
| + return; |
| + |
| + DVLOG(1) << render_view << " LogEvent"; |
| + |
| + std::string histogram_name = *v8::String::Utf8Value(args[0]->ToString()); |
| + int value = args[1]->IntegerValue(); |
| + |
| + if (histogram_name == "NewTabPage.NumberOfMouseOvers") { |
| + SearchBox::Get(render_view)->LogIframeHover(); |
| + return; |
| + } |
| + |
| + if (!args[2]->IsNull() && args[2]->IsNumber()) { |
| + int boundary = args[2]->IntegerValue(); |
| + UMA_HISTOGRAM_ENUMERATION(histogram_name, value, boundary); |
|
Alexei Svitkine (slow)
2013/06/25 17:21:20
Don't use the macro if histogram_name can be diffe
annark1
2013/06/25 21:04:11
Done.
|
| + } |
| +} |
| + |
| +// static |
| void SearchBoxExtensionWrapper::IsFocused( |
| const v8::FunctionCallbackInfo<v8::Value>& args) { |
| content::RenderView* render_view = GetRenderView(); |