1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// This namespace provides various helpers and state relating to Google Chrome 6// distributions (such as RLZ), and specifically relating to the brand of the 7// current install. Brands are codes that are assigned to partners for tracking 8// distribution information. 9 10#ifndef CHROME_BROWSER_GOOGLE_GOOGLE_BRAND_H__ 11#define CHROME_BROWSER_GOOGLE_GOOGLE_BRAND_H__ 12 13#include <string> 14 15#include "base/basictypes.h" 16 17class GURL; 18 19namespace google_brand { 20 21// Returns in |brand| the brand code or distribution tag that has been 22// assigned to a partner. Returns false if the information is not available. 23bool GetBrand(std::string* brand); 24 25// Returns in |brand| the reactivation brand code or distribution tag 26// that has been assigned to a partner for reactivating a dormant chrome 27// install. Returns false if the information is not available. 28bool GetReactivationBrand(std::string* brand); 29 30// True if a build is strictly organic, according to its brand code. 31bool IsOrganic(const std::string& brand); 32 33// True if a build should run as organic during first run. This uses 34// a slightly different set of brand codes from the standard IsOrganic 35// method. 36bool IsOrganicFirstRun(const std::string& brand); 37 38// True if |brand| is an internet cafe brand code. 39bool IsInternetCafeBrandCode(const std::string& brand); 40 41// This class is meant to be used only from test code, and sets the brand 42// code returned by the function GetBrand() above while the object exists. 43class BrandForTesting { 44 public: 45 explicit BrandForTesting(const std::string& brand); 46 ~BrandForTesting(); 47 48 private: 49 std::string brand_; 50 DISALLOW_COPY_AND_ASSIGN(BrandForTesting); 51}; 52 53} // namespace google_brand 54 55#endif // CHROME_BROWSER_GOOGLE_GOOGLE_BRAND_H__ 56