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

Unified Diff: chrome/renderer/searchbox/searchbox_extension.cc

Issue 17526008: Log NTP hovers in 1993 clients (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Spacing fix Created 7 years, 6 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
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..87b280590b30c6b6aafa94c05db4cdeb89e5a402 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"
@@ -51,6 +52,10 @@ const char kThemeAttributionFormat[] =
const char kLTRHtmlTextDirection[] = "ltr";
const char kRTLHtmlTextDirection[] = "rtl";
+const int kDefaultUmaMin = 1;
+const int kDefaultUmaMax = 1000000;
+const int kDefaultUmaBucketCount = 50;
+
// Converts a V8 value to a string16.
string16 V8ValueToUTF16(v8::Handle<v8::Value> v) {
v8::String::Value s(v);
@@ -647,6 +652,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 +747,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 +1468,52 @@ 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()) {
Jered 2013/06/26 16:37:57 What is up with this code? I don't see where it's
annark1 2013/06/28 15:30:49 This was intended to make the LogEvent function mo
+ int boundary = args[2]->IntegerValue();
+ int bucket_count = boundary;
+ while (bucket_count >= 100) {
+ bucket_count /= 10;
+ }
+ // As |histogram_name| may change between calls, the
+ // UMA_HISTOGRAM_ENUMERATION macro cannot be used here.
+ base::HistogramBase* counter =
+ base::LinearHistogram::FactoryGet(
+ histogram_name, 1, boundary, bucket_count + 1,
+ base::HistogramBase::kUmaTargetedHistogramFlag);
+ counter->Add(value);
+ } else {
+ // See above comment regarding UMA macros.
+ base::HistogramBase* counter =
+ base::Histogram::FactoryGet(
+ histogram_name,
+ kDefaultUmaMin,
+ kDefaultUmaMax,
+ kDefaultUmaBucketCount,
+ base::HistogramBase::kUmaTargetedHistogramFlag);
+ counter->Add(value);
+ }
+}
+
+// static
void SearchBoxExtensionWrapper::IsFocused(
const v8::FunctionCallbackInfo<v8::Value>& args) {
content::RenderView* render_view = GetRenderView();

Powered by Google App Engine
This is Rietveld 408576698