Index: chrome/browser/search_engines/ui_thread_search_terms_data.cc |
diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chrome/browser/search_engines/ui_thread_search_terms_data.cc |
index 9a31685b52640c5fe56e2d0085624b76c859eb37..95f42aa042232813db0afd76830693a0d7e1425b 100644 |
--- a/chrome/browser/search_engines/ui_thread_search_terms_data.cc |
+++ b/chrome/browser/search_engines/ui_thread_search_terms_data.cc |
@@ -76,11 +76,15 @@ base::string16 UIThreadSearchTermsData::GetRlzParameterValue( |
BrowserThread::CurrentlyOn(BrowserThread::UI)); |
base::string16 rlz_string; |
#if BUILDFLAG(ENABLE_RLZ) |
+ static std::string* brand = []() { |
+ auto* extracted = new std::string(); |
+ if (!google_brand::GetBrand(extracted)) |
+ extracted->clear(); |
+ return extracted; |
+ }(); |
// For organic brandcodes do not use rlz at all. Empty brandcode usually |
// means a chromium install. This is ok. |
- std::string brand; |
- if (google_brand::GetBrand(&brand) && !brand.empty() && |
- !google_brand::IsOrganic(brand)) { |
+ if (!brand->empty() && !google_brand::IsOrganic(*brand)) { |
// This call will return false the first time(s) it is called until the |
// value has been cached. This normally would mean that at most one omnibox |
// search might not send the RLZ data but this is not really a problem. |