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

Side by Side Diff: chrome/browser/search_engines/template_url.cc

Issue 6465020: Add metrics for omnibox Google searches that has no RLZ token for windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/tools/chromeactions.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/search_engines/template_url.h" 5 #include "chrome/browser/search_engines/template_url.h"
6 6
7 #include "base/i18n/icu_string_conversions.h" 7 #include "base/i18n/icu_string_conversions.h"
8 #include "base/i18n/rtl.h" 8 #include "base/i18n/rtl.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/metrics/user_metrics.h"
12 #include "chrome/browser/search_engines/search_engine_type.h" 13 #include "chrome/browser/search_engines/search_engine_type.h"
13 #include "chrome/browser/search_engines/search_terms_data.h" 14 #include "chrome/browser/search_engines/search_terms_data.h"
14 #include "chrome/browser/search_engines/template_url_model.h" 15 #include "chrome/browser/search_engines/template_url_model.h"
15 #include "chrome/common/url_constants.h" 16 #include "chrome/common/url_constants.h"
17 #include "chrome/installer/util/google_update_settings.h"
16 #include "net/base/escape.h" 18 #include "net/base/escape.h"
17 #include "ui/base/l10n/l10n_util.h" 19 #include "ui/base/l10n/l10n_util.h"
18 #include "ui/gfx/favicon_size.h" 20 #include "ui/gfx/favicon_size.h"
21 // TODO(pastarmovj): Remove google_update_settings and user_metrics when the
22 // CollectRLZMetrics function is not needed anymore.
19 23
20 // The TemplateURLRef has any number of terms that need to be replaced. Each of 24 // The TemplateURLRef has any number of terms that need to be replaced. Each of
21 // the terms is enclosed in braces. If the character preceeding the final 25 // the terms is enclosed in braces. If the character preceeding the final
22 // brace is a ?, it indicates the term is optional and can be replaced with 26 // brace is a ?, it indicates the term is optional and can be replaced with
23 // an empty string. 27 // an empty string.
24 static const char kStartParameter = '{'; 28 static const char kStartParameter = '{';
25 static const char kEndParameter = '}'; 29 static const char kEndParameter = '}';
26 static const char kOptional = '?'; 30 static const char kOptional = '?';
27 31
28 // Known parameters found in the URL. 32 // Known parameters found in the URL.
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 515 }
512 return false; 516 return false;
513 } 517 }
514 518
515 // static 519 // static
516 bool TemplateURLRef::SameUrlRefs(const TemplateURLRef* ref1, 520 bool TemplateURLRef::SameUrlRefs(const TemplateURLRef* ref1,
517 const TemplateURLRef* ref2) { 521 const TemplateURLRef* ref2) {
518 return ref1 == ref2 || (ref1 && ref2 && ref1->url() == ref2->url()); 522 return ref1 == ref2 || (ref1 && ref2 && ref1->url() == ref2->url());
519 } 523 }
520 524
525 void TemplateURLRef::CollectRLZMetrics() const {
526 #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
527 ParseIfNecessary();
528 for (size_t i = 0; i < replacements_.size(); ++i) {
529 // We are interesed in searches that were supposed to send the RLZ token.
530 if (replacements_[i].type == GOOGLE_RLZ) {
531 string16 brand;
532 // We only have RLZ tocken on a branded browser version.
533 if (GoogleUpdateSettings::GetBrand(&brand) && !brand.empty() &&
534 !GoogleUpdateSettings::IsOrganic(brand)) {
535 // Now we know we should have had RLZ token check if there was one.
536 if (url().find("rlz=") != std::string::npos)
537 UserMetrics::RecordAction(UserMetricsAction("SearchWithRLZ"));
538 else
539 UserMetrics::RecordAction(UserMetricsAction("SearchWithoutRLZ"));
540 }
541 return;
542 }
543 }
544 #endif
545 }
546
521 void TemplateURLRef::InvalidateCachedValues() const { 547 void TemplateURLRef::InvalidateCachedValues() const {
522 supports_replacements_ = valid_ = parsed_ = false; 548 supports_replacements_ = valid_ = parsed_ = false;
523 host_.clear(); 549 host_.clear();
524 path_.clear(); 550 path_.clear();
525 search_term_key_.clear(); 551 search_term_key_.clear();
526 replacements_.clear(); 552 replacements_.clear();
527 } 553 }
528 554
529 // TemplateURL ---------------------------------------------------------------- 555 // TemplateURL ----------------------------------------------------------------
530 556
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 } 691 }
666 692
667 std::string TemplateURL::GetExtensionId() const { 693 std::string TemplateURL::GetExtensionId() const {
668 DCHECK(IsExtensionKeyword()); 694 DCHECK(IsExtensionKeyword());
669 return GURL(url_.url()).host(); 695 return GURL(url_.url()).host();
670 } 696 }
671 697
672 bool TemplateURL::IsExtensionKeyword() const { 698 bool TemplateURL::IsExtensionKeyword() const {
673 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme); 699 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme);
674 } 700 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/tools/chromeactions.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698