diff options
author | mpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-01 23:54:49 +0000 |
---|---|---|
committer | mpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-01 23:54:49 +0000 |
commit | ee902534b0eda754b4ba9389fe479864b9373c7f (patch) | |
tree | 585b1e29b7ee42f4c386b0a1200b3449ea4e1d86 /chrome/browser/autocomplete/autocomplete_edit.cc | |
parent | 796f1cf612950929dc39fecd823947f68155fffe (diff) | |
download | chromium_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.cc | 19 |
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; +} |