Commit 4a15c894 authored by Askar Aitzhan's avatar Askar Aitzhan Committed by Commit Bot

Fix the feature and experiment name

Experiment: CloudPolicyOverFcm.gcl.
Bug: 939039
Change-Id: I709bb13a4002952f8f3a29bb1536434b63c0fe58
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1964074
Commit-Queue: Askar Aitzhan <askaraitzhan@google.com>
Reviewed-by: default avatarSergey Poromov <poromov@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726193}
parent f8fc4e56
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/callback.h" #include "base/callback.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/feature_list.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h" #include "base/files/scoped_temp_dir.h"
...@@ -20,18 +21,21 @@ ...@@ -20,18 +21,21 @@
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/invalidation/deprecated_profile_invalidation_provider_factory.h" #include "chrome/browser/invalidation/deprecated_profile_invalidation_provider_factory.h"
#include "chrome/browser/invalidation/profile_invalidation_provider_factory.h"
#include "chrome/browser/policy/chrome_browser_policy_connector.h" #include "chrome/browser/policy/chrome_browser_policy_connector.h"
#include "chrome/browser/policy/cloud/cloud_policy_test_utils.h" #include "chrome/browser/policy/cloud/cloud_policy_test_utils.h"
#include "chrome/browser/policy/profile_policy_connector.h" #include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/common/chrome_features.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "components/invalidation/impl/fake_invalidation_service.h" #include "components/invalidation/impl/fake_invalidation_service.h"
#include "components/invalidation/impl/profile_identity_provider.h" #include "components/invalidation/impl/profile_identity_provider.h"
#include "components/invalidation/impl/profile_invalidation_provider.h" #include "components/invalidation/impl/profile_invalidation_provider.h"
#include "components/invalidation/public/invalidation.h" #include "components/invalidation/public/invalidation.h"
#include "components/invalidation/public/invalidation_service.h" #include "components/invalidation/public/invalidation_service.h"
#include "components/invalidation/public/invalidation_util.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "components/policy/core/browser/browser_policy_connector.h" #include "components/policy/core/browser/browser_policy_connector.h"
#include "components/policy/core/common/cloud/cloud_policy_client.h" #include "components/policy/core/common/cloud/cloud_policy_client.h"
...@@ -89,9 +93,30 @@ namespace policy { ...@@ -89,9 +93,30 @@ namespace policy {
namespace { namespace {
constexpr int invalidation_source = 16;
constexpr char invalidation_name[] = "test_policy";
constexpr char policy_invalidation_topic[] = "test_policy_topic";
bool IsFcmEnabled() {
return base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations);
}
std::unique_ptr<invalidation::InvalidationService>
CreateInvalidationServiceForSenderId(const std::string& fcm_sender_id) {
return std::make_unique<invalidation::FakeInvalidationService>();
}
std::unique_ptr<KeyedService> BuildFakeProfileInvalidationProvider( std::unique_ptr<KeyedService> BuildFakeProfileInvalidationProvider(
bool is_fcm_enabled,
content::BrowserContext* context) { content::BrowserContext* context) {
Profile* profile = static_cast<Profile*>(context); Profile* profile = static_cast<Profile*>(context);
if (is_fcm_enabled) {
return std::make_unique<invalidation::ProfileInvalidationProvider>(
std::make_unique<invalidation::FakeInvalidationService>(),
std::make_unique<invalidation::ProfileIdentityProvider>(
IdentityManagerFactory::GetForProfile(profile)),
base::BindRepeating(&CreateInvalidationServiceForSenderId));
}
return std::make_unique<invalidation::ProfileInvalidationProvider>( return std::make_unique<invalidation::ProfileInvalidationProvider>(
std::make_unique<invalidation::FakeInvalidationService>(), std::make_unique<invalidation::FakeInvalidationService>(),
std::make_unique<invalidation::ProfileIdentityProvider>( std::make_unique<invalidation::ProfileIdentityProvider>(
...@@ -139,15 +164,15 @@ std::string GetTestPolicy(const char* homepage, int key_version) { ...@@ -139,15 +164,15 @@ std::string GetTestPolicy(const char* homepage, int key_version) {
" \"managed_users\": [ \"*\" ]," " \"managed_users\": [ \"*\" ],"
" \"policy_user\": \"%s\"," " \"policy_user\": \"%s\","
" \"current_key_index\": %d," " \"current_key_index\": %d,"
" \"invalidation_source\": 16," " \"invalidation_source\": %d,"
" \"invalidation_name\": \"test_policy\"" " \"invalidation_name\": \"%s\","
" \"policy_invalidation_topic\": \"%s\""
"}"; "}";
return base::StringPrintf(kTestPolicy, return base::StringPrintf(kTestPolicy, dm_protocol::kChromeUserPolicyType,
dm_protocol::kChromeUserPolicyType, homepage, GetTestUser(), key_version,
homepage, invalidation_source, invalidation_name,
GetTestUser(), policy_invalidation_topic);
key_version);
} }
void GetExpectedTestPolicy(PolicyMap* expected, const char* homepage) { void GetExpectedTestPolicy(PolicyMap* expected, const char* homepage) {
...@@ -192,10 +217,19 @@ class CloudPolicyTest : public InProcessBrowserTest, ...@@ -192,10 +217,19 @@ class CloudPolicyTest : public InProcessBrowserTest,
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
command_line->AppendSwitchASCII(switches::kDeviceManagementUrl, url); command_line->AppendSwitchASCII(switches::kDeviceManagementUrl, url);
}
invalidation::DeprecatedProfileInvalidationProviderFactory::GetInstance() void CreatedBrowserMainParts(
->RegisterTestingFactory( content::BrowserMainParts* browser_main_parts) override {
base::BindRepeating(&BuildFakeProfileInvalidationProvider)); if (IsFcmEnabled()) {
invalidation::ProfileInvalidationProviderFactory::GetInstance()
->RegisterTestingFactory(base::BindRepeating(
&BuildFakeProfileInvalidationProvider, IsFcmEnabled()));
} else {
invalidation::DeprecatedProfileInvalidationProviderFactory::GetInstance()
->RegisterTestingFactory(base::BindRepeating(
&BuildFakeProfileInvalidationProvider, IsFcmEnabled()));
}
} }
void SetUpOnMainThread() override { void SetUpOnMainThread() override {
...@@ -292,6 +326,13 @@ class CloudPolicyTest : public InProcessBrowserTest, ...@@ -292,6 +326,13 @@ class CloudPolicyTest : public InProcessBrowserTest,
} }
invalidation::FakeInvalidationService* GetInvalidationService() { invalidation::FakeInvalidationService* GetInvalidationService() {
if (IsFcmEnabled()) {
return static_cast<invalidation::FakeInvalidationService*>(
static_cast<invalidation::ProfileInvalidationProvider*>(
invalidation::ProfileInvalidationProviderFactory::GetInstance()
->GetForProfile(browser()->profile()))
->GetInvalidationService());
}
return static_cast<invalidation::FakeInvalidationService*>( return static_cast<invalidation::FakeInvalidationService*>(
static_cast<invalidation::ProfileInvalidationProvider*>( static_cast<invalidation::ProfileInvalidationProvider*>(
invalidation::DeprecatedProfileInvalidationProviderFactory:: invalidation::DeprecatedProfileInvalidationProviderFactory::
...@@ -300,6 +341,15 @@ class CloudPolicyTest : public InProcessBrowserTest, ...@@ -300,6 +341,15 @@ class CloudPolicyTest : public InProcessBrowserTest,
->GetInvalidationService()); ->GetInvalidationService());
} }
invalidation::FakeInvalidationService* GetInvalidationServiceForSenderId(
std::string sender_id) {
return static_cast<invalidation::FakeInvalidationService*>(
static_cast<invalidation::ProfileInvalidationProvider*>(
invalidation::ProfileInvalidationProviderFactory::GetInstance()
->GetForProfile(browser()->profile()))
->GetInvalidationServiceForCustomSender(sender_id));
}
void SetServerPolicy(const std::string& policy) { void SetServerPolicy(const std::string& policy) {
base::ScopedAllowBlockingForTesting allow_blocking; base::ScopedAllowBlockingForTesting allow_blocking;
int result = base::WriteFile(policy_file_path(), policy.data(), int result = base::WriteFile(policy_file_path(), policy.data(),
...@@ -394,11 +444,19 @@ IN_PROC_BROWSER_TEST_F(CloudPolicyTest, InvalidatePolicy) { ...@@ -394,11 +444,19 @@ IN_PROC_BROWSER_TEST_F(CloudPolicyTest, InvalidatePolicy) {
ASSERT_NO_FATAL_FAILURE(SetServerPolicy(GetTestPolicy("youtube.com", 0))); ASSERT_NO_FATAL_FAILURE(SetServerPolicy(GetTestPolicy("youtube.com", 0)));
base::TimeDelta now = base::TimeDelta now =
base::Time::NowFromSystemTime() - base::Time::UnixEpoch(); base::Time::NowFromSystemTime() - base::Time::UnixEpoch();
GetInvalidationService()->EmitInvalidationForTest(
syncer::Invalidation::Init( if (IsFcmEnabled()) {
invalidation::ObjectId(16, "test_policy"), GetInvalidationServiceForSenderId(kPolicyFCMInvalidationSenderID)
now.InMicroseconds() /* version */, ->EmitInvalidationForTest(syncer::Invalidation::Init(
"payload")); invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
policy_invalidation_topic),
now.InMicroseconds() /* version */, "payload"));
} else {
GetInvalidationService()->EmitInvalidationForTest(
syncer::Invalidation::Init(
invalidation::ObjectId(invalidation_source, invalidation_name),
now.InMicroseconds() /* version */, "payload"));
}
{ {
base::RunLoop run_loop; base::RunLoop run_loop;
on_policy_updated_ = run_loop.QuitClosure(); on_policy_updated_ = run_loop.QuitClosure();
......
...@@ -4,11 +4,13 @@ ...@@ -4,11 +4,13 @@
#include "chrome/browser/policy/cloud/user_cloud_policy_invalidator_factory.h" #include "chrome/browser/policy/cloud/user_cloud_policy_invalidator_factory.h"
#include "base/feature_list.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/invalidation/deprecated_profile_invalidation_provider_factory.h" #include "chrome/browser/invalidation/deprecated_profile_invalidation_provider_factory.h"
#include "chrome/browser/invalidation/profile_invalidation_provider_factory.h" #include "chrome/browser/invalidation/profile_invalidation_provider_factory.h"
#include "chrome/browser/policy/cloud/user_cloud_policy_invalidator.h" #include "chrome/browser/policy/cloud/user_cloud_policy_invalidator.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_features.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/content/browser_context_dependency_manager.h"
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
...@@ -28,9 +30,12 @@ UserCloudPolicyInvalidatorFactory::UserCloudPolicyInvalidatorFactory() ...@@ -28,9 +30,12 @@ UserCloudPolicyInvalidatorFactory::UserCloudPolicyInvalidatorFactory()
: BrowserContextKeyedServiceFactory( : BrowserContextKeyedServiceFactory(
"UserCloudPolicyInvalidator", "UserCloudPolicyInvalidator",
BrowserContextDependencyManager::GetInstance()) { BrowserContextDependencyManager::GetInstance()) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) {
DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
return;
}
DependsOn(invalidation::DeprecatedProfileInvalidationProviderFactory:: DependsOn(invalidation::DeprecatedProfileInvalidationProviderFactory::
GetInstance()); GetInstance());
DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
} }
UserCloudPolicyInvalidatorFactory::~UserCloudPolicyInvalidatorFactory() {} UserCloudPolicyInvalidatorFactory::~UserCloudPolicyInvalidatorFactory() {}
......
...@@ -1168,6 +1168,11 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): ...@@ -1168,6 +1168,11 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
if invalidation_name is not None: if invalidation_name is not None:
policy_data.invalidation_name = invalidation_name.encode('ascii') policy_data.invalidation_name = invalidation_name.encode('ascii')
policy_invalidation_topic = policy.get('policy_invalidation_topic')
if policy_invalidation_topic is not None:
policy_data.policy_invalidation_topic = \
policy_invalidation_topic.encode('ascii')
if msg.signature_type != dm.PolicyFetchRequest.NONE: if msg.signature_type != dm.PolicyFetchRequest.NONE:
policy_data.public_key_version = signing_key_version policy_data.public_key_version = signing_key_version
......
...@@ -1656,7 +1656,7 @@ ...@@ -1656,7 +1656,7 @@
] ]
} }
], ],
"CloudPolicyOverFcm": [ "CloudPolicyOverFCM": [
{ {
"platforms": [ "platforms": [
"chromeos", "chromeos",
...@@ -1666,7 +1666,10 @@ ...@@ -1666,7 +1666,10 @@
], ],
"experiments": [ "experiments": [
{ {
"name": "CloudPolicyOverFCM" "name": "Enabled",
"enable_features": [
"PolicyFCMInvalidations"
]
} }
] ]
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment