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..c103ed3ae9b2db52577865d6f02bc3f877b55802 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,35 @@ 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 (!args[3]->IsNull() && args[3]->IsNumber()) { |
| + int pos = args[3]->IntegerValue(); |
| + if (histogram_name == "NewTabPage.NumberOfMouseOvers") { |
| + SearchBox::Get(render_view)->LogIframeHover(pos); |
|
beaudoin
2013/06/22 01:14:53
Again, not sure you need the pos here.
annark1
2013/06/25 16:01:38
Done.
|
| + return; |
| + } |
| + } |
| + |
| + if (!args[2]->IsNull() && args[2]->IsNumber()) { |
| + int boundary = args[2]->IntegerValue(); |
| + UMA_HISTOGRAM_ENUMERATION(histogram_name, value, boundary); |
| + } |
| +} |
| + |
| +// static |
| void SearchBoxExtensionWrapper::IsFocused( |
| const v8::FunctionCallbackInfo<v8::Value>& args) { |
| content::RenderView* render_view = GetRenderView(); |