| Index: chrome/browser/web_resource/promo_resource_service.h
|
| diff --git a/chrome/browser/web_resource/promo_resource_service.h b/chrome/browser/web_resource/promo_resource_service.h
|
| index 23504187e7b43da8373bb7e1ab643afe901f1d30..a68e2aaed5914417057fcdedc0b93012ea9ff1d8 100644
|
| --- a/chrome/browser/web_resource/promo_resource_service.h
|
| +++ b/chrome/browser/web_resource/promo_resource_service.h
|
| @@ -11,6 +11,8 @@
|
| #include "chrome/browser/web_resource/web_resource_service.h"
|
| #include "chrome/common/chrome_version_info.h"
|
|
|
| +class AppsPromoLogoFetcher;
|
| +class PrefService;
|
| class Profile;
|
|
|
| namespace PromoResourceServiceUtil {
|
| @@ -21,8 +23,6 @@ bool CanShowPromo(Profile* profile);
|
|
|
| } // namespace PromoResourceServiceUtil
|
|
|
| -class PrefService;
|
| -
|
| // A PromoResourceService fetches data from a web resource server to be used to
|
| // dynamically change the appearance of the New Tab Page. For example, it has
|
| // been used to fetch "tips" to be displayed on the NTP, or to display
|
| @@ -52,6 +52,13 @@ class PromoResourceService
|
| FRIEND_TEST_ALL_PREFIXES(PromoResourceServiceTest, UnpackWebStoreSignal);
|
| FRIEND_TEST_ALL_PREFIXES(
|
| PromoResourceServiceTest, UnpackPartialWebStoreSignal);
|
| + FRIEND_TEST_ALL_PREFIXES(
|
| + PromoResourceServiceTest, UnpackWebStoreSignalHttpsLogo);
|
| + FRIEND_TEST_ALL_PREFIXES(
|
| + PromoResourceServiceTest, UnpackWebStoreSignalHttpsLogoError);
|
| + FRIEND_TEST_ALL_PREFIXES(
|
| + PromoResourceServiceTest, UnpackWebStoreSignalHttpLogo);
|
| +
|
|
|
| // Identifies types of Chrome builds for promo targeting.
|
| enum BuildType {
|
| @@ -168,7 +175,7 @@ class PromoResourceService
|
| // "answers": [
|
| // {
|
| // "answer_id": "1143011",
|
| - // "name": "webstore_promo:15:",
|
| + // "name": "webstore_promo:15:1:https://www.google.com/logo.png",
|
| // "question": "Browse thousands of apps and games for Chrome.",
|
| // "inproduct_target": "Visit the Chrome Web Store",
|
| // "inproduct": "https://chrome.google.com/webstore?hl=en",
|
| @@ -184,11 +191,13 @@ class PromoResourceService
|
| // inproduct_target: the promo button text
|
| // inproduct: the promo button link
|
| // tooltip: the text for the "hide this" link on the promo
|
| - // name: starts with "webstore_promo" to identify the signal. the second
|
| + // name: starts with "webstore_promo" to identify the signal. The second
|
| // part contains the release channels targeted (bitwise or of
|
| - // BuildTypes). The third part is optional and specifies the URL of
|
| - // the logo image. In the example above, the URL is empty so the
|
| - // default webstore logo will be used.
|
| + // BuildTypes). The third part specifies what users should maximize
|
| + // the apps section of the NTP when first loading the promo (bitwise
|
| + // or of AppsPromo::UserGroup). The forth part is optional and
|
| + // specifies the URL of the logo image. If left out, the default
|
| + // webstore logo will be used. The logo can be an HTTPS or DATA URL.
|
| // answer_id: the promo's id
|
| void UnpackWebStoreSignal(const base::DictionaryValue& parsed_json);
|
|
|
| @@ -202,6 +211,9 @@ class PromoResourceService
|
| // Overrides the current Chrome release channel for testing purposes.
|
| chrome::VersionInfo::Channel channel_;
|
|
|
| + // A helper that downloads the promo logo.
|
| + scoped_ptr<AppsPromoLogoFetcher> apps_promo_logo_fetcher_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PromoResourceService);
|
| };
|
|
|
|
|