summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/autocomplete_edit.cc
diff options
context:
space:
mode:
authormpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-01 23:54:49 +0000
committermpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-01 23:54:49 +0000
commitee902534b0eda754b4ba9389fe479864b9373c7f (patch)
tree585b1e29b7ee42f4c386b0a1200b3449ea4e1d86 /chrome/browser/autocomplete/autocomplete_edit.cc
parent796f1cf612950929dc39fecd823947f68155fffe (diff)
downloadchromium_src-ee902534b0eda754b4ba9389fe479864b9373c7f.zip
chromium_src-ee902534b0eda754b4ba9389fe479864b9373c7f.tar.gz
chromium_src-ee902534b0eda754b4ba9389fe479864b9373c7f.tar.bz2
Omnibox: Add logging of what type of page was displayed when it's used
For UMA opted-in users, this adds a new field to the omnibox event record that's uploaded when the user uses the omnibox. In particular, it records a simple enum of what type of page the user was looking at, such as a generic web page or the new tab page. This change only adds the field to the protocol buffer upload format, not the XML format. If I decide later I want to add it to the XML format, I'll do it in another changelist. BUG= TEST=using VLOG(1) of what would be uploaded Review URL: http://codereview.chromium.org/10273019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134824 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete/autocomplete_edit.cc')
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc
index 58ea563..e5524be 100644
--- a/chrome/browser/autocomplete/autocomplete_edit.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit.cc
@@ -27,6 +27,7 @@
#include "chrome/browser/instant/instant_controller.h"
#include "chrome/browser/net/predictor.h"
#include "chrome/browser/net/url_fixer_upper.h"
+#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prerender/prerender_field_trial.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
@@ -41,6 +42,8 @@
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/metrics/proto/omnibox_event.pb.h"
+#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_view_host.h"
@@ -518,6 +521,8 @@ void AutocompleteEditModel::OpenMatch(const AutocompleteMatch& match,
autocomplete_controller_->input().type(),
popup_->selected_line(),
-1, // don't yet know tab ID; set later if appropriate
+ ClassifyPage(controller_->GetTabContentsWrapper()->
+ web_contents()->GetURL()),
base::TimeTicks::Now() - time_user_first_modified_omnibox_,
0, // inline autocomplete length; possibly set later
result());
@@ -1138,3 +1143,17 @@ bool AutocompleteEditModel::IsSpaceCharForAcceptingKeyword(wchar_t c) {
return false;
}
}
+
+metrics::OmniboxEventProto::PageClassification
+ AutocompleteEditModel::ClassifyPage(const GURL& gurl) const {
+ if (!gurl.is_valid())
+ return metrics::OmniboxEventProto_PageClassification_INVALID_SPEC;
+ const std::string& url = gurl.spec();
+ if (url == chrome::kChromeUINewTabURL)
+ return metrics::OmniboxEventProto_PageClassification_NEW_TAB_PAGE;
+ if (url == chrome::kAboutBlankURL)
+ return metrics::OmniboxEventProto_PageClassification_BLANK;
+ if (url == profile()->GetPrefs()->GetString(prefs::kHomePage))
+ return metrics::OmniboxEventProto_PageClassification_HOMEPAGE;
+ return metrics::OmniboxEventProto_PageClassification_OTHER;
+}