summaryrefslogtreecommitdiffstats
path: root/chrome/browser/web_resource
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/web_resource')
-rw-r--r--chrome/browser/web_resource/promo_resource_service.cc34
-rw-r--r--chrome/browser/web_resource/promo_resource_service.h10
-rw-r--r--chrome/browser/web_resource/promo_resource_service_unittest.cc56
3 files changed, 55 insertions, 45 deletions
diff --git a/chrome/browser/web_resource/promo_resource_service.cc b/chrome/browser/web_resource/promo_resource_service.cc
index fb8749e..d9f526f 100644
--- a/chrome/browser/web_resource/promo_resource_service.cc
+++ b/chrome/browser/web_resource/promo_resource_service.cc
@@ -75,20 +75,21 @@ void PromoResourceService::RegisterUserPrefs(PrefService* prefs) {
}
// static
-bool PromoResourceService::IsBuildTargeted(const std::string& channel,
+bool PromoResourceService::IsBuildTargeted(platform_util::Channel channel,
int builds_allowed) {
if (builds_allowed == NO_BUILD)
return false;
- if (channel == "canary" || channel == "canary-m") {
- return (CANARY_BUILD & builds_allowed) != 0;
- } else if (channel == "dev" || channel == "dev-m") {
- return (DEV_BUILD & builds_allowed) != 0;
- } else if (channel == "beta" || channel == "beta-m") {
- return (BETA_BUILD & builds_allowed) != 0;
- } else if (channel == "" || channel == "m") {
- return (STABLE_BUILD & builds_allowed) != 0;
- } else {
- return false;
+ switch (channel) {
+ case platform_util::CHANNEL_CANARY:
+ return (CANARY_BUILD & builds_allowed) != 0;
+ case platform_util::CHANNEL_DEV:
+ return (DEV_BUILD & builds_allowed) != 0;
+ case platform_util::CHANNEL_BETA:
+ return (BETA_BUILD & builds_allowed) != 0;
+ case platform_util::CHANNEL_STABLE:
+ return (STABLE_BUILD & builds_allowed) != 0;
+ default:
+ return false;
}
}
@@ -102,7 +103,7 @@ PromoResourceService::PromoResourceService(Profile* profile)
kStartResourceFetchDelay,
kCacheUpdateDelay),
web_resource_cache_(NULL),
- channel_(NULL) {
+ channel_(platform_util::CHANNEL_UNKNOWN) {
Init();
}
@@ -113,9 +114,10 @@ void PromoResourceService::Init() {
}
bool PromoResourceService::IsThisBuildTargeted(int builds_targeted) {
- if (channel_ == NULL) {
+ if (channel_ == platform_util::CHANNEL_UNKNOWN) {
+ // GetChannel hits the registry on Windows. See http://crbug.com/70898.
base::ThreadRestrictions::ScopedAllowIO allow_io;
- channel_ = platform_util::GetVersionStringModifier().c_str();
+ channel_ = platform_util::GetChannel();
}
return IsBuildTargeted(channel_, builds_targeted);
@@ -428,9 +430,9 @@ bool CanShowPromo(Profile* profile) {
bool is_promo_build = false;
if (prefs->HasPrefPath(prefs::kNTPPromoBuild)) {
- // GetVersionStringModifier hits the registry. See http://crbug.com/70898.
+ // GetChannel hits the registry on Windows. See http://crbug.com/70898.
base::ThreadRestrictions::ScopedAllowIO allow_io;
- const std::string channel = platform_util::GetVersionStringModifier();
+ platform_util::Channel channel = platform_util::GetChannel();
is_promo_build = PromoResourceService::IsBuildTargeted(
channel, prefs->GetInteger(prefs::kNTPPromoBuild));
}
diff --git a/chrome/browser/web_resource/promo_resource_service.h b/chrome/browser/web_resource/promo_resource_service.h
index 2149890a..bc9b791 100644
--- a/chrome/browser/web_resource/promo_resource_service.h
+++ b/chrome/browser/web_resource/promo_resource_service.h
@@ -6,6 +6,9 @@
#define CHROME_BROWSER_WEB_RESOURCE_PROMO_RESOURCE_SERVICE_H_
#pragma once
+#include <string>
+
+#include "chrome/browser/platform_util.h"
#include "chrome/browser/web_resource/web_resource_service.h"
namespace PromoResourceServiceUtil {
@@ -29,7 +32,8 @@ class PrefService;
class PromoResourceService
: public WebResourceService {
public:
- static bool IsBuildTargeted(const std::string& channel, int builds_targeted);
+ static bool IsBuildTargeted(platform_util::Channel channel,
+ int builds_targeted);
static void RegisterPrefs(PrefService* local_state);
@@ -80,7 +84,7 @@ class PromoResourceService
void ScheduleNotificationOnInit();
// Overrides the current Chrome release channel for testing purposes.
- void set_channel(const char* channel) { channel_ = channel; }
+ void set_channel(platform_util::Channel channel) { channel_ = channel; }
virtual void Unpack(const DictionaryValue& parsed_json);
@@ -187,7 +191,7 @@ class PromoResourceService
DictionaryValue* web_resource_cache_;
// Overrides the current Chrome release channel for testing purposes.
- const char* channel_;
+ platform_util::Channel channel_;
DISALLOW_COPY_AND_ASSIGN(PromoResourceService);
};
diff --git a/chrome/browser/web_resource/promo_resource_service_unittest.cc b/chrome/browser/web_resource/promo_resource_service_unittest.cc
index a9c0e22..d149b36 100644
--- a/chrome/browser/web_resource/promo_resource_service_unittest.cc
+++ b/chrome/browser/web_resource/promo_resource_service_unittest.cc
@@ -167,7 +167,7 @@ TEST_F(PromoResourceServiceTest, UnpackPromoSignal) {
}
TEST_F(PromoResourceServiceTest, UnpackWebStoreSignal) {
- web_resource_service_->set_channel("dev");
+ web_resource_service_->set_channel(platform_util::CHANNEL_DEV);
// Set up start and end dates and promo line in a Dictionary as if parsed
// from the service.
@@ -205,35 +205,39 @@ TEST_F(PromoResourceServiceTest, UnpackWebStoreSignal) {
TEST_F(PromoResourceServiceTest, IsBuildTargeted) {
// canary
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("canary", 1));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("canary", 3));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("canary", 7));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("canary", 15));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("canary", 8));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("canary", 11));
+ const platform_util::Channel canary = platform_util::CHANNEL_CANARY;
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(canary, 1));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(canary, 3));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(canary, 7));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(canary, 15));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(canary, 8));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(canary, 11));
// dev
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("dev", 1));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("dev", 3));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("dev", 7));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("dev", 15));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("dev", 8));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("dev", 11));
+ const platform_util::Channel dev = platform_util::CHANNEL_DEV;
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(dev, 1));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(dev, 3));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(dev, 7));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(dev, 15));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(dev, 8));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(dev, 11));
// beta
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("beta", 1));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("beta", 3));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("beta", 7));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("beta", 15));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("beta", 8));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("beta", 11));
+ const platform_util::Channel beta = platform_util::CHANNEL_BETA;
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(beta, 1));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(beta, 3));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(beta, 7));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(beta, 15));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(beta, 8));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(beta, 11));
// stable
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("", 1));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("", 3));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("", 7));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("", 15));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("", 8));
- EXPECT_FALSE(PromoResourceService::IsBuildTargeted("", 11));
- EXPECT_TRUE(PromoResourceService::IsBuildTargeted("", 12));
+ const platform_util::Channel stable = platform_util::CHANNEL_STABLE;
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 1));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 3));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 7));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 15));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 8));
+ EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 11));
+ EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 12));
}