Commit 46903fcd authored by Askar Aitzhan's avatar Askar Aitzhan Committed by Commit Bot

Clean up code path for "Cloud Policy over Tango"

Since Tango is being shut down & feature "Cloud Policy over FCM" is
being enabled:
* Enabled on ToT (M81)
* Enabled 100% on Finch experiment starting from M78

Bug: 1048214
Change-Id: Ie69bf1b89d2b9c4496479374b310eae9394be1fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2035880
Commit-Queue: Askar Aitzhan <askaraitzhan@google.com>
Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738696}
parent 017a832f
...@@ -10,12 +10,10 @@ ...@@ -10,12 +10,10 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/chromeos/policy/device_policy_builder.h" #include "chrome/browser/chromeos/policy/device_policy_builder.h"
#include "chrome/browser/chromeos/policy/fake_affiliated_invalidation_service_provider.h" #include "chrome/browser/chromeos/policy/fake_affiliated_invalidation_service_provider.h"
#include "chrome/browser/policy/cloud/cloud_policy_invalidator.h" #include "chrome/browser/policy/cloud/cloud_policy_invalidator.h"
#include "chrome/common/chrome_features.h"
#include "components/invalidation/impl/fake_invalidation_service.h" #include "components/invalidation/impl/fake_invalidation_service.h"
#include "components/invalidation/public/invalidation.h" #include "components/invalidation/public/invalidation.h"
#include "components/invalidation/public/invalidation_util.h" #include "components/invalidation/public/invalidation_util.h"
...@@ -41,8 +39,6 @@ namespace policy { ...@@ -41,8 +39,6 @@ namespace policy {
namespace { namespace {
const int kInvalidationSource = 123;
const char kInvalidationName[] = "invalidation";
const char kPolicyInvalidationTopic[] = "policy_invalidation_topic"; const char kPolicyInvalidationTopic[] = "policy_invalidation_topic";
class FakeCloudPolicyStore : public CloudPolicyStore { class FakeCloudPolicyStore : public CloudPolicyStore {
...@@ -72,28 +68,11 @@ void FakeCloudPolicyStore::Load() { ...@@ -72,28 +68,11 @@ void FakeCloudPolicyStore::Load() {
} // namespace } // namespace
// Accepts boolean param is_fcm_enabled.
// true if FCM (Firebase Cloud Messaging) is enabled,
// and false otherwise.
class AffiliatedCloudPolicyInvalidatorTest
: public testing::TestWithParam<bool> {
public:
AffiliatedCloudPolicyInvalidatorTest();
private:
base::test::ScopedFeatureList feature_list_;
};
AffiliatedCloudPolicyInvalidatorTest::AffiliatedCloudPolicyInvalidatorTest() {
feature_list_.InitWithFeatureState(features::kPolicyFcmInvalidations,
GetParam() /* is_fcm_enabled */);
}
// Verifies that an invalidator is created/destroyed as an invalidation service // Verifies that an invalidator is created/destroyed as an invalidation service
// becomes available/unavailable. Also verifies that invalidations are handled // becomes available/unavailable. Also verifies that invalidations are handled
// correctly and the highest handled invalidation version is preserved when // correctly and the highest handled invalidation version is preserved when
// switching invalidation services. // switching invalidation services.
TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) { TEST(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) {
content::BrowserTaskEnvironment task_environment; content::BrowserTaskEnvironment task_environment;
// Set up a CloudPolicyCore backed by a simple CloudPolicyStore that does no // Set up a CloudPolicyCore backed by a simple CloudPolicyStore that does no
...@@ -120,19 +99,8 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) { ...@@ -120,19 +99,8 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) {
DevicePolicyBuilder policy; DevicePolicyBuilder policy;
const bool is_fcm_enabled = GetParam(); policy.policy_data().set_policy_invalidation_topic(kPolicyInvalidationTopic);
if (is_fcm_enabled) {
// Pass deprecated source if FCM (Firebase Cloud Messaging) is enabled,
// because server does not support source field with FCM and
// InvalidationService fills the source field with kDeprecatedSourceForFCM.
policy.policy_data().set_invalidation_source(
syncer::kDeprecatedSourceForFCM);
policy.policy_data().set_policy_invalidation_topic(
kPolicyInvalidationTopic);
} else {
policy.policy_data().set_invalidation_source(kInvalidationSource);
policy.policy_data().set_invalidation_name(kInvalidationName);
}
policy.Build(); policy.Build();
store.Store(policy.policy()); store.Store(policy.policy());
...@@ -161,15 +129,11 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) { ...@@ -161,15 +129,11 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) {
// timestamp in microseconds. The policy blob contains a timestamp in // timestamp in microseconds. The policy blob contains a timestamp in
// milliseconds. Convert from one to the other by multiplying by 1000. // milliseconds. Convert from one to the other by multiplying by 1000.
const int64_t invalidation_version = policy.policy_data().timestamp() * 1000; const int64_t invalidation_version = policy.policy_data().timestamp() * 1000;
syncer::Invalidation invalidation = syncer::Invalidation invalidation = syncer::Invalidation::Init(
is_fcm_enabled invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
? syncer::Invalidation::Init( kPolicyInvalidationTopic),
invalidation::ObjectId(syncer::kDeprecatedSourceForFCM, invalidation_version, "dummy payload");
kPolicyInvalidationTopic),
invalidation_version, "dummy payload")
: syncer::Invalidation::Init(
invalidation::ObjectId(kInvalidationSource, kInvalidationName),
invalidation_version, "dummy payload");
syncer::ObjectIdInvalidationMap invalidation_map; syncer::ObjectIdInvalidationMap invalidation_map;
invalidation_map.Insert(invalidation); invalidation_map.Insert(invalidation);
invalidator->OnIncomingInvalidation(invalidation_map); invalidator->OnIncomingInvalidation(invalidation_map);
...@@ -233,8 +197,4 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) { ...@@ -233,8 +197,4 @@ TEST_P(AffiliatedCloudPolicyInvalidatorTest, CreateUseDestroy) {
affiliated_invalidator.OnInvalidationServiceSet(nullptr); affiliated_invalidator.OnInvalidationServiceSet(nullptr);
} }
INSTANTIATE_TEST_SUITE_P(FCMEnabledAndFCMDisabled,
AffiliatedCloudPolicyInvalidatorTest,
testing::Bool() /* is_fcm_enabled */);
} // namespace policy } // namespace policy
...@@ -7,47 +7,36 @@ ...@@ -7,47 +7,36 @@
#include <vector> #include <vector>
#include "base/bind.h" #include "base/bind.h"
#include "base/feature_list.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/task/post_task.h" #include "base/task/post_task.h"
#include "base/timer/timer.h" #include "base/timer/timer.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part_chromeos.h" #include "chrome/browser/browser_process_platform_part_chromeos.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/device_identity_provider.h" #include "chrome/browser/chromeos/settings/device_identity_provider.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" #include "chrome/browser/chromeos/settings/device_oauth2_token_service_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/net/system_network_context_manager.h" #include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_features.h"
#include "components/gcm_driver/instance_id/instance_id_driver.h" #include "components/gcm_driver/instance_id/instance_id_driver.h"
#include "components/invalidation/impl/fcm_invalidation_service.h" #include "components/invalidation/impl/fcm_invalidation_service.h"
#include "components/invalidation/impl/fcm_network_handler.h" #include "components/invalidation/impl/fcm_network_handler.h"
#include "components/invalidation/impl/invalidation_state_tracker.h" #include "components/invalidation/impl/invalidation_state_tracker.h"
#include "components/invalidation/impl/invalidator_storage.h"
#include "components/invalidation/impl/per_user_topic_subscription_manager.h" #include "components/invalidation/impl/per_user_topic_subscription_manager.h"
#include "components/invalidation/impl/profile_invalidation_provider.h" #include "components/invalidation/impl/profile_invalidation_provider.h"
#include "components/invalidation/impl/ticl_invalidation_service.h"
#include "components/invalidation/public/identity_provider.h" #include "components/invalidation/public/identity_provider.h"
#include "components/invalidation/public/invalidation_handler.h" #include "components/invalidation/public/invalidation_handler.h"
#include "components/invalidation/public/invalidation_service.h" #include "components/invalidation/public/invalidation_service.h"
#include "components/invalidation/public/invalidator_state.h" #include "components/invalidation/public/invalidator_state.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/user_manager/user.h" #include "components/user_manager/user.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/browser/notification_details.h" #include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h" #include "content/public/browser/notification_service.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/network_context.mojom.h"
namespace policy { namespace policy {
...@@ -77,36 +66,8 @@ constexpr int kTransientErrorDisconnectLimit = 3; ...@@ -77,36 +66,8 @@ constexpr int kTransientErrorDisconnectLimit = 3;
invalidation::ProfileInvalidationProvider* GetInvalidationProvider( invalidation::ProfileInvalidationProvider* GetInvalidationProvider(
Profile* profile) { Profile* profile) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { return invalidation::ProfileInvalidationProviderFactory::GetForProfile(
return invalidation::ProfileInvalidationProviderFactory::GetForProfile( profile);
profile);
}
return invalidation::DeprecatedProfileInvalidationProviderFactory::
GetForProfile(profile);
}
// Runs on UI thread.
void RequestProxyResolvingSocketFactoryOnUIThread(
base::WeakPtr<invalidation::TiclInvalidationService> owner,
mojo::PendingReceiver<network::mojom::ProxyResolvingSocketFactory>
receiver) {
if (!owner)
return;
if (g_browser_process->system_network_context_manager()) {
g_browser_process->system_network_context_manager()
->GetContext()
->CreateProxyResolvingSocketFactory(std::move(receiver));
}
}
// Runs on IO thread.
void RequestProxyResolvingSocketFactory(
base::WeakPtr<invalidation::TiclInvalidationService> owner,
mojo::PendingReceiver<network::mojom::ProxyResolvingSocketFactory>
receiver) {
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread,
owner, std::move(receiver)));
} }
} // namespace } // namespace
...@@ -294,13 +255,9 @@ void AffiliatedInvalidationServiceProviderImpl::Observe( ...@@ -294,13 +255,9 @@ void AffiliatedInvalidationServiceProviderImpl::Observe(
// Create a state observer for the user's invalidation service. // Create a state observer for the user's invalidation service.
invalidation::InvalidationService* invalidation_service; invalidation::InvalidationService* invalidation_service;
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { invalidation_service =
invalidation_service = invalidation_provider->GetInvalidationServiceForCustomSender(
invalidation_provider->GetInvalidationServiceForCustomSender( policy::kPolicyFCMInvalidationSenderID);
policy::kPolicyFCMInvalidationSenderID);
} else {
invalidation_service = invalidation_provider->GetInvalidationService();
}
profile_invalidation_service_observers_.push_back( profile_invalidation_service_observers_.push_back(
std::make_unique<InvalidationServiceObserver>(this, std::make_unique<InvalidationServiceObserver>(this,
invalidation_service)); invalidation_service));
...@@ -483,39 +440,23 @@ AffiliatedInvalidationServiceProviderImpl:: ...@@ -483,39 +440,23 @@ AffiliatedInvalidationServiceProviderImpl::
std::make_unique<chromeos::DeviceIdentityProvider>( std::make_unique<chromeos::DeviceIdentityProvider>(
chromeos::DeviceOAuth2TokenServiceFactory::Get()); chromeos::DeviceOAuth2TokenServiceFactory::Get());
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { device_instance_id_driver_ = std::make_unique<instance_id::InstanceIDDriver>(
device_instance_id_driver_ = g_browser_process->gcm_driver());
std::make_unique<instance_id::InstanceIDDriver>(
g_browser_process->gcm_driver()); DCHECK(device_instance_id_driver_);
DCHECK(device_instance_id_driver_);
auto device_invalidation_service =
std::make_unique<invalidation::FCMInvalidationService>(
device_identity_provider_.get(),
base::BindRepeating(&syncer::FCMNetworkHandler::Create,
g_browser_process->gcm_driver(),
device_instance_id_driver_.get()),
base::BindRepeating(
&syncer::PerUserTopicSubscriptionManager::Create,
device_identity_provider_.get(),
g_browser_process->local_state(),
base::RetainedRef(url_loader_factory)),
device_instance_id_driver_.get(), g_browser_process->local_state(),
policy::kPolicyFCMInvalidationSenderID);
device_invalidation_service->Init();
return device_invalidation_service;
}
auto device_invalidation_service = auto device_invalidation_service =
std::make_unique<invalidation::TiclInvalidationService>( std::make_unique<invalidation::FCMInvalidationService>(
GetUserAgent(), device_identity_provider_.get(), device_identity_provider_.get(),
g_browser_process->gcm_driver(), base::BindRepeating(&syncer::FCMNetworkHandler::Create,
base::BindRepeating(&RequestProxyResolvingSocketFactory), g_browser_process->gcm_driver(),
base::CreateSingleThreadTaskRunner({content::BrowserThread::IO}), device_instance_id_driver_.get()),
std::move(url_loader_factory), base::BindRepeating(&syncer::PerUserTopicSubscriptionManager::Create,
content::GetNetworkConnectionTracker()); device_identity_provider_.get(),
g_browser_process->local_state(),
device_invalidation_service->Init( base::RetainedRef(url_loader_factory)),
std::make_unique<invalidation::InvalidatorStorage>( device_instance_id_driver_.get(), g_browser_process->local_state(),
g_browser_process->local_state())); policy::kPolicyFCMInvalidationSenderID);
device_invalidation_service->Init();
return device_invalidation_service; return device_invalidation_service;
} }
......
...@@ -122,13 +122,7 @@ class UserCloudPolicyManagerChromeOSNotifierFactory ...@@ -122,13 +122,7 @@ class UserCloudPolicyManagerChromeOSNotifierFactory
UserCloudPolicyManagerChromeOSNotifierFactory() UserCloudPolicyManagerChromeOSNotifierFactory()
: BrowserContextKeyedServiceShutdownNotifierFactory( : BrowserContextKeyedServiceShutdownNotifierFactory(
"UserRemoteCommandsInvalidator") { "UserRemoteCommandsInvalidator") {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
DependsOn(
invalidation::ProfileInvalidationProviderFactory::GetInstance());
return;
}
DependsOn(invalidation::DeprecatedProfileInvalidationProviderFactory::
GetInstance());
} }
~UserCloudPolicyManagerChromeOSNotifierFactory() override = default; ~UserCloudPolicyManagerChromeOSNotifierFactory() override = default;
...@@ -793,17 +787,8 @@ void UserCloudPolicyManagerChromeOS::OnProfileAdded(Profile* profile) { ...@@ -793,17 +787,8 @@ void UserCloudPolicyManagerChromeOS::OnProfileAdded(Profile* profile) {
observed_profile_manager_.RemoveAll(); observed_profile_manager_.RemoveAll();
// If true FCMInvalidationService will be used as invalidation service and
// TiclInvalidationService otherwise.
const bool is_fcm_enabled =
base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations);
invalidation::ProfileInvalidationProvider* const invalidation_provider = invalidation::ProfileInvalidationProvider* const invalidation_provider =
is_fcm_enabled invalidation::ProfileInvalidationProviderFactory::GetForProfile(profile_);
? invalidation::ProfileInvalidationProviderFactory::GetForProfile(
profile_)
: invalidation::DeprecatedProfileInvalidationProviderFactory::
GetForProfile(profile_);
if (!invalidation_provider) if (!invalidation_provider)
return; return;
...@@ -813,10 +798,8 @@ void UserCloudPolicyManagerChromeOS::OnProfileAdded(Profile* profile) { ...@@ -813,10 +798,8 @@ void UserCloudPolicyManagerChromeOS::OnProfileAdded(Profile* profile) {
invalidator_ = std::make_unique<RemoteCommandsInvalidatorImpl>(core()); invalidator_ = std::make_unique<RemoteCommandsInvalidatorImpl>(core());
invalidator_->Initialize( invalidator_->Initialize(
is_fcm_enabled invalidation_provider->GetInvalidationServiceForCustomSender(
? invalidation_provider->GetInvalidationServiceForCustomSender( policy::kPolicyFCMInvalidationSenderID));
policy::kPolicyFCMInvalidationSenderID)
: invalidation_provider->GetInvalidationService());
shutdown_notifier_ = shutdown_notifier_ =
UserCloudPolicyManagerChromeOSNotifierFactory::GetInstance() UserCloudPolicyManagerChromeOSNotifierFactory::GetInstance()
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#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,7 +19,6 @@ ...@@ -20,7 +19,6 @@
#include "build/build_config.h" #include "build/build_config.h"
#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/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"
...@@ -28,7 +26,6 @@ ...@@ -28,7 +26,6 @@
#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"
...@@ -93,34 +90,21 @@ namespace policy { ...@@ -93,34 +90,21 @@ namespace policy {
namespace { namespace {
constexpr int invalidation_source = 16;
constexpr char invalidation_name[] = "test_policy";
constexpr char policy_invalidation_topic[] = "test_policy_topic"; constexpr char policy_invalidation_topic[] = "test_policy_topic";
bool IsFcmEnabled() {
return base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations);
}
std::unique_ptr<invalidation::InvalidationService> std::unique_ptr<invalidation::InvalidationService>
CreateInvalidationServiceForSenderId(const std::string& fcm_sender_id) { CreateInvalidationServiceForSenderId(const std::string& fcm_sender_id) {
return std::make_unique<invalidation::FakeInvalidationService>(); 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>(
IdentityManagerFactory::GetForProfile(profile))); IdentityManagerFactory::GetForProfile(profile)),
base::BindRepeating(&CreateInvalidationServiceForSenderId));
} }
const char* GetTestUser() { const char* GetTestUser() {
...@@ -164,14 +148,11 @@ std::string GetTestPolicy(const char* homepage, int key_version) { ...@@ -164,14 +148,11 @@ 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\": %d,"
" \"invalidation_name\": \"%s\","
" \"policy_invalidation_topic\": \"%s\"" " \"policy_invalidation_topic\": \"%s\""
"}"; "}";
return base::StringPrintf(kTestPolicy, dm_protocol::kChromeUserPolicyType, return base::StringPrintf(kTestPolicy, dm_protocol::kChromeUserPolicyType,
homepage, GetTestUser(), key_version, homepage, GetTestUser(), key_version,
invalidation_source, invalidation_name,
policy_invalidation_topic); policy_invalidation_topic);
} }
...@@ -221,15 +202,9 @@ class CloudPolicyTest : public InProcessBrowserTest, ...@@ -221,15 +202,9 @@ class CloudPolicyTest : public InProcessBrowserTest,
void CreatedBrowserMainParts( void CreatedBrowserMainParts(
content::BrowserMainParts* browser_main_parts) override { content::BrowserMainParts* browser_main_parts) override {
if (IsFcmEnabled()) { invalidation::ProfileInvalidationProviderFactory::GetInstance()
invalidation::ProfileInvalidationProviderFactory::GetInstance() ->RegisterTestingFactory(
->RegisterTestingFactory(base::BindRepeating( base::BindRepeating(&BuildFakeProfileInvalidationProvider));
&BuildFakeProfileInvalidationProvider, IsFcmEnabled()));
} else {
invalidation::DeprecatedProfileInvalidationProviderFactory::GetInstance()
->RegisterTestingFactory(base::BindRepeating(
&BuildFakeProfileInvalidationProvider, IsFcmEnabled()));
}
} }
void SetUpOnMainThread() override { void SetUpOnMainThread() override {
...@@ -325,22 +300,6 @@ class CloudPolicyTest : public InProcessBrowserTest, ...@@ -325,22 +300,6 @@ class CloudPolicyTest : public InProcessBrowserTest,
return profile_connector->policy_service(); return profile_connector->policy_service();
} }
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*>(
static_cast<invalidation::ProfileInvalidationProvider*>(
invalidation::DeprecatedProfileInvalidationProviderFactory::
GetInstance()
->GetForProfile(browser()->profile()))
->GetInvalidationService());
}
invalidation::FakeInvalidationService* GetInvalidationServiceForSenderId( invalidation::FakeInvalidationService* GetInvalidationServiceForSenderId(
std::string sender_id) { std::string sender_id) {
return static_cast<invalidation::FakeInvalidationService*>( return static_cast<invalidation::FakeInvalidationService*>(
...@@ -445,18 +404,11 @@ IN_PROC_BROWSER_TEST_F(CloudPolicyTest, InvalidatePolicy) { ...@@ -445,18 +404,11 @@ IN_PROC_BROWSER_TEST_F(CloudPolicyTest, InvalidatePolicy) {
base::TimeDelta now = base::TimeDelta now =
base::Time::NowFromSystemTime() - base::Time::UnixEpoch(); base::Time::NowFromSystemTime() - base::Time::UnixEpoch();
if (IsFcmEnabled()) { GetInvalidationServiceForSenderId(kPolicyFCMInvalidationSenderID)
GetInvalidationServiceForSenderId(kPolicyFCMInvalidationSenderID) ->EmitInvalidationForTest(syncer::Invalidation::Init(
->EmitInvalidationForTest(syncer::Invalidation::Init( invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
invalidation::ObjectId(syncer::kDeprecatedSourceForFCM, policy_invalidation_topic),
policy_invalidation_topic), now.InMicroseconds() /* version */, "payload"));
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();
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <utility> #include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "base/feature_list.h"
#include "base/hash/hash.h" #include "base/hash/hash.h"
#include "base/location.h" #include "base/location.h"
#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_functions.h"
...@@ -17,7 +16,6 @@ ...@@ -17,7 +16,6 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "base/values.h" #include "base/values.h"
#include "chrome/browser/policy/cloud/policy_invalidation_util.h" #include "chrome/browser/policy/cloud/policy_invalidation_util.h"
#include "chrome/common/chrome_features.h"
#include "components/invalidation/public/invalidation_service.h" #include "components/invalidation/public/invalidation_service.h"
#include "components/invalidation/public/invalidation_util.h" #include "components/invalidation/public/invalidation_util.h"
#include "components/invalidation/public/object_id_invalidation_map.h" #include "components/invalidation/public/object_id_invalidation_map.h"
...@@ -30,10 +28,6 @@ namespace policy { ...@@ -30,10 +28,6 @@ namespace policy {
namespace { namespace {
bool IsFcmEnabled() {
return base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations);
}
// Get the kMetricPolicyInvalidations histogram metric which should be // Get the kMetricPolicyInvalidations histogram metric which should be
// incremented when an invalidation is received. // incremented when an invalidation is received.
MetricPolicyRefresh GetPolicyRefreshMetric(bool invalidations_enabled, MetricPolicyRefresh GetPolicyRefreshMetric(bool invalidations_enabled,
...@@ -62,16 +56,14 @@ void RecordPolicyRefreshMetric( ...@@ -62,16 +56,14 @@ void RecordPolicyRefreshMetric(
base::UmaHistogramEnumeration(kMetricDevicePolicyRefresh, base::UmaHistogramEnumeration(kMetricDevicePolicyRefresh,
metric_policy_refresh, metric_policy_refresh,
METRIC_POLICY_REFRESH_SIZE); METRIC_POLICY_REFRESH_SIZE);
base::UmaHistogramEnumeration( base::UmaHistogramEnumeration(kMetricDevicePolicyRefreshFcm,
IsFcmEnabled() ? kMetricDevicePolicyRefreshFcm metric_policy_refresh,
: kMetricDevicePolicyRefreshTicl, METRIC_POLICY_REFRESH_SIZE);
metric_policy_refresh, METRIC_POLICY_REFRESH_SIZE);
} else { } else {
base::UmaHistogramEnumeration(kMetricUserPolicyRefresh, base::UmaHistogramEnumeration(kMetricUserPolicyRefresh,
metric_policy_refresh, metric_policy_refresh,
METRIC_POLICY_REFRESH_SIZE); METRIC_POLICY_REFRESH_SIZE);
base::UmaHistogramEnumeration(IsFcmEnabled() ? kMetricUserPolicyRefreshFcm base::UmaHistogramEnumeration(kMetricUserPolicyRefreshFcm,
: kMetricUserPolicyRefreshTicl,
metric_policy_refresh, metric_policy_refresh,
METRIC_POLICY_REFRESH_SIZE); METRIC_POLICY_REFRESH_SIZE);
} }
...@@ -285,18 +277,16 @@ void CloudPolicyInvalidator::HandleInvalidation( ...@@ -285,18 +277,16 @@ void CloudPolicyInvalidator::HandleInvalidation(
base::UmaHistogramEnumeration(kMetricDevicePolicyInvalidations, base::UmaHistogramEnumeration(kMetricDevicePolicyInvalidations,
policy_invalidation_type, policy_invalidation_type,
POLICY_INVALIDATION_TYPE_SIZE); POLICY_INVALIDATION_TYPE_SIZE);
base::UmaHistogramEnumeration( base::UmaHistogramEnumeration(kMetricDevicePolicyInvalidationsFcm,
IsFcmEnabled() ? kMetricDevicePolicyInvalidationsFcm policy_invalidation_type,
: kMetricDevicePolicyInvalidationsTicl, POLICY_INVALIDATION_TYPE_SIZE);
policy_invalidation_type, POLICY_INVALIDATION_TYPE_SIZE);
} else { } else {
base::UmaHistogramEnumeration(kMetricUserPolicyInvalidations, base::UmaHistogramEnumeration(kMetricUserPolicyInvalidations,
policy_invalidation_type, policy_invalidation_type,
POLICY_INVALIDATION_TYPE_SIZE); POLICY_INVALIDATION_TYPE_SIZE);
base::UmaHistogramEnumeration( base::UmaHistogramEnumeration(kMetricUserPolicyInvalidationsFcm,
IsFcmEnabled() ? kMetricUserPolicyInvalidationsFcm policy_invalidation_type,
: kMetricUserPolicyInvalidationsTicl, POLICY_INVALIDATION_TYPE_SIZE);
policy_invalidation_type, POLICY_INVALIDATION_TYPE_SIZE);
} }
if (is_expired) { if (is_expired) {
invalidation.Acknowledge(); invalidation.Acknowledge();
...@@ -375,10 +365,7 @@ void CloudPolicyInvalidator::Register(const invalidation::ObjectId& object_id) { ...@@ -375,10 +365,7 @@ void CloudPolicyInvalidator::Register(const invalidation::ObjectId& object_id) {
<< " for policy invalidations"; << " for policy invalidations";
} }
base::UmaHistogramBoolean(kMetricPolicyInvalidationRegistration, success); base::UmaHistogramBoolean(kMetricPolicyInvalidationRegistration, success);
base::UmaHistogramBoolean(IsFcmEnabled() base::UmaHistogramBoolean(kMetricPolicyInvalidationRegistrationFcm, success);
? kMetricPolicyInvalidationRegistrationFcm
: kMetricPolicyInvalidationRegistrationTicl,
success);
} }
void CloudPolicyInvalidator::Unregister() { void CloudPolicyInvalidator::Unregister() {
......
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
#include "chrome/browser/policy/cloud/policy_invalidation_util.h" #include "chrome/browser/policy/cloud/policy_invalidation_util.h"
#include "base/feature_list.h"
#include "base/strings/string_piece.h" #include "base/strings/string_piece.h"
#include "chrome/common/chrome_features.h"
#include "components/invalidation/public/invalidation.h" #include "components/invalidation/public/invalidation.h"
#include "components/policy/proto/device_management_backend.pb.h" #include "components/policy/proto/device_management_backend.pb.h"
#include "google/cacheinvalidation/include/types.h" #include "google/cacheinvalidation/include/types.h"
...@@ -26,43 +24,24 @@ bool IsPublicInvalidationTopic(const syncer::Topic& topic) { ...@@ -26,43 +24,24 @@ bool IsPublicInvalidationTopic(const syncer::Topic& topic) {
bool GetCloudPolicyObjectIdFromPolicy( bool GetCloudPolicyObjectIdFromPolicy(
const enterprise_management::PolicyData& policy, const enterprise_management::PolicyData& policy,
invalidation::ObjectId* object_id) { invalidation::ObjectId* object_id) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { if (!policy.has_policy_invalidation_topic() ||
if (!policy.has_policy_invalidation_topic() || policy.policy_invalidation_topic().empty()) {
policy.policy_invalidation_topic().empty()) { return false;
return false;
}
*object_id = invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
policy.policy_invalidation_topic());
} else {
if (!policy.has_invalidation_source() || !policy.has_invalidation_name() ||
policy.invalidation_name().empty()) {
return false;
}
*object_id = invalidation::ObjectId(policy.invalidation_source(),
policy.invalidation_name());
} }
*object_id = invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
policy.policy_invalidation_topic());
return true; return true;
} }
bool GetRemoteCommandObjectIdFromPolicy( bool GetRemoteCommandObjectIdFromPolicy(
const enterprise_management::PolicyData& policy, const enterprise_management::PolicyData& policy,
invalidation::ObjectId* object_id) { invalidation::ObjectId* object_id) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { if (!policy.has_command_invalidation_topic() ||
if (!policy.has_command_invalidation_topic() || policy.command_invalidation_topic().empty()) {
policy.command_invalidation_topic().empty()) { return false;
return false;
}
*object_id = invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
policy.command_invalidation_topic());
} else {
if (!policy.has_command_invalidation_source() ||
!policy.has_command_invalidation_name() ||
policy.command_invalidation_name().empty()) {
return false;
}
*object_id = invalidation::ObjectId(policy.command_invalidation_source(),
policy.command_invalidation_name());
} }
*object_id = invalidation::ObjectId(syncer::kDeprecatedSourceForFCM,
policy.command_invalidation_topic());
return true; return true;
} }
......
...@@ -6,10 +6,8 @@ ...@@ -6,10 +6,8 @@
#include <string> #include <string>
#include "base/feature_list.h"
#include "base/logging.h" #include "base/logging.h"
#include "chrome/browser/policy/cloud/policy_invalidation_util.h" #include "chrome/browser/policy/cloud/policy_invalidation_util.h"
#include "chrome/common/chrome_features.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/invalidation/public/invalidation_util.h"
......
...@@ -6,9 +6,7 @@ ...@@ -6,9 +6,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "chrome/common/chrome_features.h"
#include "components/invalidation/impl/deprecated_invalidator_registrar.h" #include "components/invalidation/impl/deprecated_invalidator_registrar.h"
#include "components/invalidation/impl/fake_invalidation_service.h" #include "components/invalidation/impl/fake_invalidation_service.h"
#include "components/invalidation/impl/mock_ack_handler.h" #include "components/invalidation/impl/mock_ack_handler.h"
...@@ -35,15 +33,9 @@ class MockRemoteCommandInvalidator : public RemoteCommandsInvalidator { ...@@ -35,15 +33,9 @@ class MockRemoteCommandInvalidator : public RemoteCommandsInvalidator {
MOCK_METHOD0(OnStop, void()); MOCK_METHOD0(OnStop, void());
MOCK_METHOD0(DoRemoteCommandsFetch, void()); MOCK_METHOD0(DoRemoteCommandsFetch, void());
void SetInvalidationObjectID(const invalidation::ObjectId& object_id, void SetInvalidationObjectID(const invalidation::ObjectId& object_id) {
bool is_fcm_enabled) {
em::PolicyData policy_data; em::PolicyData policy_data;
if (is_fcm_enabled) { policy_data.set_command_invalidation_topic(object_id.name());
policy_data.set_command_invalidation_topic(object_id.name());
} else {
policy_data.set_command_invalidation_source(object_id.source());
policy_data.set_command_invalidation_name(object_id.name());
}
ReloadPolicyData(&policy_data); ReloadPolicyData(&policy_data);
} }
...@@ -56,22 +48,11 @@ class MockRemoteCommandInvalidator : public RemoteCommandsInvalidator { ...@@ -56,22 +48,11 @@ class MockRemoteCommandInvalidator : public RemoteCommandsInvalidator {
DISALLOW_COPY_AND_ASSIGN(MockRemoteCommandInvalidator); DISALLOW_COPY_AND_ASSIGN(MockRemoteCommandInvalidator);
}; };
class RemoteCommandsInvalidatorTest : public testing::TestWithParam<bool> { class RemoteCommandsInvalidatorTest : public testing::Test {
public: public:
RemoteCommandsInvalidatorTest() : is_fcm_enabled_(GetParam()) { RemoteCommandsInvalidatorTest()
feature_list_.InitWithFeatureState(features::kPolicyFcmInvalidations, : kTestingObjectId1(syncer::kDeprecatedSourceForFCM, "abcdef"),
is_fcm_enabled_); kTestingObjectId2(syncer::kDeprecatedSourceForFCM, "defabc") {}
if (is_fcm_enabled_) {
kTestingObjectId1 =
invalidation::ObjectId(syncer::kDeprecatedSourceForFCM, "abcdef");
kTestingObjectId2 =
invalidation::ObjectId(syncer::kDeprecatedSourceForFCM, "defabc");
return;
}
kTestingObjectId1 = invalidation::ObjectId(123456, "abcdef");
kTestingObjectId2 = invalidation::ObjectId(654321, "defabc");
}
void EnableInvalidationService() { void EnableInvalidationService() {
invalidation_service_.SetInvalidatorState(syncer::INVALIDATIONS_ENABLED); invalidation_service_.SetInvalidatorState(syncer::INVALIDATIONS_ENABLED);
...@@ -155,12 +136,8 @@ class RemoteCommandsInvalidatorTest : public testing::TestWithParam<bool> { ...@@ -155,12 +136,8 @@ class RemoteCommandsInvalidatorTest : public testing::TestWithParam<bool> {
invalidation::ObjectId kTestingObjectId1; invalidation::ObjectId kTestingObjectId1;
invalidation::ObjectId kTestingObjectId2; invalidation::ObjectId kTestingObjectId2;
const bool is_fcm_enabled_;
base::test::SingleThreadTaskEnvironment task_environment_; base::test::SingleThreadTaskEnvironment task_environment_;
base::test::ScopedFeatureList feature_list_;
invalidation::FakeInvalidationService invalidation_service_; invalidation::FakeInvalidationService invalidation_service_;
StrictMock<MockRemoteCommandInvalidator> invalidator_; StrictMock<MockRemoteCommandInvalidator> invalidator_;
...@@ -169,14 +146,14 @@ class RemoteCommandsInvalidatorTest : public testing::TestWithParam<bool> { ...@@ -169,14 +146,14 @@ class RemoteCommandsInvalidatorTest : public testing::TestWithParam<bool> {
}; };
// Verifies that only the fired invalidations will be received. // Verifies that only the fired invalidations will be received.
TEST_P(RemoteCommandsInvalidatorTest, FiredInvalidation) { TEST_F(RemoteCommandsInvalidatorTest, FiredInvalidation) {
InitializeAndStart(); InitializeAndStart();
// Invalidator won't work at this point. // Invalidator won't work at this point.
EXPECT_FALSE(invalidator_.invalidations_enabled()); EXPECT_FALSE(invalidator_.invalidations_enabled());
// Load the policy data, it should work now. // Load the policy data, it should work now.
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
EXPECT_TRUE(invalidator_.invalidations_enabled()); EXPECT_TRUE(invalidator_.invalidations_enabled());
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
...@@ -207,7 +184,7 @@ TEST_P(RemoteCommandsInvalidatorTest, FiredInvalidation) { ...@@ -207,7 +184,7 @@ TEST_P(RemoteCommandsInvalidatorTest, FiredInvalidation) {
} }
// Verifies that no invalidation will be received when invalidator is shutdown. // Verifies that no invalidation will be received when invalidator is shutdown.
TEST_P(RemoteCommandsInvalidatorTest, ShutDown) { TEST_F(RemoteCommandsInvalidatorTest, ShutDown) {
EXPECT_FALSE(invalidator_.invalidations_enabled()); EXPECT_FALSE(invalidator_.invalidations_enabled());
FireInvalidation(kTestingObjectId1); FireInvalidation(kTestingObjectId1);
...@@ -216,7 +193,7 @@ TEST_P(RemoteCommandsInvalidatorTest, ShutDown) { ...@@ -216,7 +193,7 @@ TEST_P(RemoteCommandsInvalidatorTest, ShutDown) {
} }
// Verifies that no invalidation will be received when invalidator is stopped. // Verifies that no invalidation will be received when invalidator is stopped.
TEST_P(RemoteCommandsInvalidatorTest, Stopped) { TEST_F(RemoteCommandsInvalidatorTest, Stopped) {
EXPECT_CALL(invalidator_, OnInitialize()).Times(1); EXPECT_CALL(invalidator_, OnInitialize()).Times(1);
invalidator_.Initialize(&invalidation_service_); invalidator_.Initialize(&invalidation_service_);
VerifyExpectations(); VerifyExpectations();
...@@ -232,13 +209,13 @@ TEST_P(RemoteCommandsInvalidatorTest, Stopped) { ...@@ -232,13 +209,13 @@ TEST_P(RemoteCommandsInvalidatorTest, Stopped) {
} }
// Verifies that stated/stopped state changes work as expected. // Verifies that stated/stopped state changes work as expected.
TEST_P(RemoteCommandsInvalidatorTest, StartedStateChange) { TEST_F(RemoteCommandsInvalidatorTest, StartedStateChange) {
InitializeAndStart(); InitializeAndStart();
// Invalidator requires object id to work. // Invalidator requires object id to work.
VerifyInvalidationDisabled(kTestingObjectId1); VerifyInvalidationDisabled(kTestingObjectId1);
EXPECT_FALSE(invalidator_.invalidations_enabled()); EXPECT_FALSE(invalidator_.invalidations_enabled());
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
VerifyInvalidationEnabled(kTestingObjectId1); VerifyInvalidationEnabled(kTestingObjectId1);
// Stop and restart invalidator. // Stop and restart invalidator.
...@@ -254,24 +231,24 @@ TEST_P(RemoteCommandsInvalidatorTest, StartedStateChange) { ...@@ -254,24 +231,24 @@ TEST_P(RemoteCommandsInvalidatorTest, StartedStateChange) {
VerifyExpectations(); VerifyExpectations();
// Invalidator requires object id to work. // Invalidator requires object id to work.
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
VerifyInvalidationEnabled(kTestingObjectId1); VerifyInvalidationEnabled(kTestingObjectId1);
StopAndShutdown(); StopAndShutdown();
} }
// Verifies that registered state changes work as expected. // Verifies that registered state changes work as expected.
TEST_P(RemoteCommandsInvalidatorTest, RegistedStateChange) { TEST_F(RemoteCommandsInvalidatorTest, RegistedStateChange) {
InitializeAndStart(); InitializeAndStart();
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
VerifyInvalidationEnabled(kTestingObjectId1); VerifyInvalidationEnabled(kTestingObjectId1);
invalidator_.SetInvalidationObjectID(kTestingObjectId2, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId2);
VerifyInvalidationEnabled(kTestingObjectId2); VerifyInvalidationEnabled(kTestingObjectId2);
VerifyInvalidationDisabled(kTestingObjectId1); VerifyInvalidationDisabled(kTestingObjectId1);
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
VerifyInvalidationEnabled(kTestingObjectId1); VerifyInvalidationEnabled(kTestingObjectId1);
VerifyInvalidationDisabled(kTestingObjectId2); VerifyInvalidationDisabled(kTestingObjectId2);
...@@ -280,7 +257,7 @@ TEST_P(RemoteCommandsInvalidatorTest, RegistedStateChange) { ...@@ -280,7 +257,7 @@ TEST_P(RemoteCommandsInvalidatorTest, RegistedStateChange) {
VerifyInvalidationDisabled(kTestingObjectId2); VerifyInvalidationDisabled(kTestingObjectId2);
EXPECT_FALSE(invalidator_.invalidations_enabled()); EXPECT_FALSE(invalidator_.invalidations_enabled());
invalidator_.SetInvalidationObjectID(kTestingObjectId2, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId2);
VerifyInvalidationEnabled(kTestingObjectId2); VerifyInvalidationEnabled(kTestingObjectId2);
VerifyInvalidationDisabled(kTestingObjectId1); VerifyInvalidationDisabled(kTestingObjectId1);
...@@ -288,10 +265,10 @@ TEST_P(RemoteCommandsInvalidatorTest, RegistedStateChange) { ...@@ -288,10 +265,10 @@ TEST_P(RemoteCommandsInvalidatorTest, RegistedStateChange) {
} }
// Verifies that invalidation service enabled state changes work as expected. // Verifies that invalidation service enabled state changes work as expected.
TEST_P(RemoteCommandsInvalidatorTest, InvalidationServiceEnabledStateChanged) { TEST_F(RemoteCommandsInvalidatorTest, InvalidationServiceEnabledStateChanged) {
InitializeAndStart(); InitializeAndStart();
invalidator_.SetInvalidationObjectID(kTestingObjectId1, is_fcm_enabled_); invalidator_.SetInvalidationObjectID(kTestingObjectId1);
VerifyInvalidationEnabled(kTestingObjectId1); VerifyInvalidationEnabled(kTestingObjectId1);
DisableInvalidationService(); DisableInvalidationService();
...@@ -312,8 +289,4 @@ TEST_P(RemoteCommandsInvalidatorTest, InvalidationServiceEnabledStateChanged) { ...@@ -312,8 +289,4 @@ TEST_P(RemoteCommandsInvalidatorTest, InvalidationServiceEnabledStateChanged) {
StopAndShutdown(); StopAndShutdown();
} }
INSTANTIATE_TEST_SUITE_P(ToggleIsFcmEnabled,
RemoteCommandsInvalidatorTest,
testing::Bool() /* is_fcm_enabled */);
} // namespace policy } // namespace policy
...@@ -7,14 +7,12 @@ ...@@ -7,14 +7,12 @@
#include <memory> #include <memory>
#include "base/bind.h" #include "base/bind.h"
#include "base/feature_list.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/time/default_clock.h" #include "base/time/default_clock.h"
#include "build/build_config.h" #include "build/build_config.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/invalidation/profile_invalidation_provider_factory.h"
#include "chrome/common/chrome_features.h"
#include "components/invalidation/impl/profile_invalidation_provider.h" #include "components/invalidation/impl/profile_invalidation_provider.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/policy/core/common/cloud/cloud_policy_manager.h" #include "components/policy/core/common/cloud/cloud_policy_manager.h"
...@@ -24,12 +22,8 @@ namespace { ...@@ -24,12 +22,8 @@ namespace {
invalidation::ProfileInvalidationProvider* GetInvalidationProvider( invalidation::ProfileInvalidationProvider* GetInvalidationProvider(
Profile* profile) { Profile* profile) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { return invalidation::ProfileInvalidationProviderFactory::GetForProfile(
return invalidation::ProfileInvalidationProviderFactory::GetForProfile( profile);
profile);
}
return invalidation::DeprecatedProfileInvalidationProviderFactory::
GetForProfile(profile);
} }
} // namespace } // namespace
...@@ -86,12 +80,8 @@ void UserCloudPolicyInvalidator::Observe( ...@@ -86,12 +80,8 @@ void UserCloudPolicyInvalidator::Observe(
GetInvalidationProvider(profile_); GetInvalidationProvider(profile_);
if (!invalidation_provider) if (!invalidation_provider)
return; return;
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { Initialize(invalidation_provider->GetInvalidationServiceForCustomSender(
Initialize(invalidation_provider->GetInvalidationServiceForCustomSender( policy::kPolicyFCMInvalidationSenderID));
policy::kPolicyFCMInvalidationSenderID));
} else {
Initialize(invalidation_provider->GetInvalidationService());
}
} }
} // namespace policy } // namespace policy
...@@ -4,13 +4,10 @@ ...@@ -4,13 +4,10 @@
#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/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"
...@@ -30,12 +27,7 @@ UserCloudPolicyInvalidatorFactory::UserCloudPolicyInvalidatorFactory() ...@@ -30,12 +27,7 @@ UserCloudPolicyInvalidatorFactory::UserCloudPolicyInvalidatorFactory()
: BrowserContextKeyedServiceFactory( : BrowserContextKeyedServiceFactory(
"UserCloudPolicyInvalidator", "UserCloudPolicyInvalidator",
BrowserContextDependencyManager::GetInstance()) { BrowserContextDependencyManager::GetInstance()) {
if (base::FeatureList::IsEnabled(features::kPolicyFcmInvalidations)) { DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
DependsOn(invalidation::ProfileInvalidationProviderFactory::GetInstance());
return;
}
DependsOn(invalidation::DeprecatedProfileInvalidationProviderFactory::
GetInstance());
} }
UserCloudPolicyInvalidatorFactory::~UserCloudPolicyInvalidatorFactory() {} UserCloudPolicyInvalidatorFactory::~UserCloudPolicyInvalidatorFactory() {}
......
...@@ -317,11 +317,6 @@ const base::Feature kDownloadsLocationChange{"DownloadsLocationChange", ...@@ -317,11 +317,6 @@ const base::Feature kDownloadsLocationChange{"DownloadsLocationChange",
base::FEATURE_ENABLED_BY_DEFAULT}; base::FEATURE_ENABLED_BY_DEFAULT};
#endif #endif
// If enabled, policies will use FCM (Firebase Cloud Messaging) for its
// invalidations.
const base::Feature kPolicyFcmInvalidations{"PolicyFCMInvalidations",
base::FEATURE_ENABLED_BY_DEFAULT};
// Disables ambient authentication in incognito mode. // Disables ambient authentication in incognito mode.
const base::Feature kEnableAmbientAuthenticationInIncognito{ const base::Feature kEnableAmbientAuthenticationInIncognito{
"EnableAmbientAuthenticationInIncognito", "EnableAmbientAuthenticationInIncognito",
......
...@@ -180,9 +180,6 @@ COMPONENT_EXPORT(CHROME_FEATURES) ...@@ -180,9 +180,6 @@ COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kDownloadsLocationChange; extern const base::Feature kDownloadsLocationChange;
#endif #endif
COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kPolicyFcmInvalidations;
COMPONENT_EXPORT(CHROME_FEATURES) COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kEnableAmbientAuthenticationInGuestSession; extern const base::Feature kEnableAmbientAuthenticationInGuestSession;
......
...@@ -9,14 +9,10 @@ namespace policy { ...@@ -9,14 +9,10 @@ namespace policy {
const char kMetricUserPolicyRefresh[] = "Enterprise.PolicyRefresh2"; const char kMetricUserPolicyRefresh[] = "Enterprise.PolicyRefresh2";
const char kMetricUserPolicyRefreshFcm[] = const char kMetricUserPolicyRefreshFcm[] =
"Enterprise.FCMInvalidationService.PolicyRefresh2"; "Enterprise.FCMInvalidationService.PolicyRefresh2";
const char kMetricUserPolicyRefreshTicl[] =
"Enterprise.TiclInvalidationService.PolicyRefresh2";
const char kMetricUserPolicyInvalidations[] = "Enterprise.PolicyInvalidations"; const char kMetricUserPolicyInvalidations[] = "Enterprise.PolicyInvalidations";
const char kMetricUserPolicyInvalidationsFcm[] = const char kMetricUserPolicyInvalidationsFcm[] =
"Enterprise.FCMInvalidationService.PolicyInvalidations"; "Enterprise.FCMInvalidationService.PolicyInvalidations";
const char kMetricUserPolicyInvalidationsTicl[] =
"Enterprise.TiclInvalidationService.PolicyInvalidations";
const char kMetricUserPolicyChromeOSSessionAbort[] = const char kMetricUserPolicyChromeOSSessionAbort[] =
"Enterprise.UserPolicyChromeOS.SessionAbort"; "Enterprise.UserPolicyChromeOS.SessionAbort";
...@@ -24,21 +20,15 @@ const char kMetricUserPolicyChromeOSSessionAbort[] = ...@@ -24,21 +20,15 @@ const char kMetricUserPolicyChromeOSSessionAbort[] =
const char kMetricDevicePolicyRefresh[] = "Enterprise.DevicePolicyRefresh2"; const char kMetricDevicePolicyRefresh[] = "Enterprise.DevicePolicyRefresh2";
const char kMetricDevicePolicyRefreshFcm[] = const char kMetricDevicePolicyRefreshFcm[] =
"Enterprise.FCMInvalidationService.DevicePolicyRefresh2"; "Enterprise.FCMInvalidationService.DevicePolicyRefresh2";
const char kMetricDevicePolicyRefreshTicl[] =
"Enterprise.TiclInvalidationService.DevicePolicyRefresh2";
const char kMetricDevicePolicyInvalidations[] = const char kMetricDevicePolicyInvalidations[] =
"Enterprise.DevicePolicyInvalidations"; "Enterprise.DevicePolicyInvalidations";
const char kMetricDevicePolicyInvalidationsFcm[] = const char kMetricDevicePolicyInvalidationsFcm[] =
"Enterprise.FCMInvalidationService.DevicePolicyInvalidations"; "Enterprise.FCMInvalidationService.DevicePolicyInvalidations";
const char kMetricDevicePolicyInvalidationsTicl[] =
"Enterprise.TiclInvalidationService.DevicePolicyInvalidations";
const char kMetricPolicyInvalidationRegistration[] = const char kMetricPolicyInvalidationRegistration[] =
"Enterprise.PolicyInvalidationsRegistrationResult"; "Enterprise.PolicyInvalidationsRegistrationResult";
const char kMetricPolicyInvalidationRegistrationFcm[] = const char kMetricPolicyInvalidationRegistrationFcm[] =
"Enterprise.FCMInvalidationService.PolicyInvalidationsRegistrationResult"; "Enterprise.FCMInvalidationService.PolicyInvalidationsRegistrationResult";
const char kMetricPolicyInvalidationRegistrationTicl[] =
"Enterprise.TiclInvalidationService.PolicyInvalidationsRegistrationResult";
} // namespace policy } // namespace policy
...@@ -213,20 +213,15 @@ enum class MetricUserPolicyChromeOSSessionAbortType { ...@@ -213,20 +213,15 @@ enum class MetricUserPolicyChromeOSSessionAbortType {
// the same UMA histogram name. // the same UMA histogram name.
POLICY_EXPORT extern const char kMetricUserPolicyRefresh[]; POLICY_EXPORT extern const char kMetricUserPolicyRefresh[];
POLICY_EXPORT extern const char kMetricUserPolicyRefreshFcm[]; POLICY_EXPORT extern const char kMetricUserPolicyRefreshFcm[];
POLICY_EXPORT extern const char kMetricUserPolicyRefreshTicl[];
POLICY_EXPORT extern const char kMetricUserPolicyInvalidations[]; POLICY_EXPORT extern const char kMetricUserPolicyInvalidations[];
POLICY_EXPORT extern const char kMetricUserPolicyInvalidationsFcm[]; POLICY_EXPORT extern const char kMetricUserPolicyInvalidationsFcm[];
POLICY_EXPORT extern const char kMetricUserPolicyInvalidationsTicl[];
POLICY_EXPORT extern const char kMetricUserPolicyChromeOSSessionAbort[]; POLICY_EXPORT extern const char kMetricUserPolicyChromeOSSessionAbort[];
POLICY_EXPORT extern const char kMetricDevicePolicyRefresh[]; POLICY_EXPORT extern const char kMetricDevicePolicyRefresh[];
POLICY_EXPORT extern const char kMetricDevicePolicyRefreshFcm[]; POLICY_EXPORT extern const char kMetricDevicePolicyRefreshFcm[];
POLICY_EXPORT extern const char kMetricDevicePolicyRefreshTicl[];
POLICY_EXPORT extern const char kMetricDevicePolicyInvalidations[]; POLICY_EXPORT extern const char kMetricDevicePolicyInvalidations[];
POLICY_EXPORT extern const char kMetricDevicePolicyInvalidationsFcm[]; POLICY_EXPORT extern const char kMetricDevicePolicyInvalidationsFcm[];
POLICY_EXPORT extern const char kMetricDevicePolicyInvalidationsTicl[];
POLICY_EXPORT extern const char kMetricPolicyInvalidationRegistration[]; POLICY_EXPORT extern const char kMetricPolicyInvalidationRegistration[];
POLICY_EXPORT extern const char kMetricPolicyInvalidationRegistrationFcm[]; POLICY_EXPORT extern const char kMetricPolicyInvalidationRegistrationFcm[];
POLICY_EXPORT extern const char kMetricPolicyInvalidationRegistrationTicl[];
} // namespace policy } // namespace policy
......
...@@ -413,7 +413,7 @@ message CustomerLogo { ...@@ -413,7 +413,7 @@ message CustomerLogo {
// This message is included in serialized form in PolicyFetchResponse below. It // This message is included in serialized form in PolicyFetchResponse below. It
// may also be signed, with the signature being created for the serialized form. // may also be signed, with the signature being created for the serialized form.
message PolicyData { message PolicyData {
reserved 10; reserved 10, 13, 14, 18, 19;
// See PolicyFetchRequest.policy_type. // See PolicyFetchRequest.policy_type.
optional string policy_type = 1; optional string policy_type = 1;
...@@ -484,16 +484,6 @@ message PolicyData { ...@@ -484,16 +484,6 @@ message PolicyData {
// This is only sent as part of device policy fetch. // This is only sent as part of device policy fetch.
optional string service_account_identity = 12; optional string service_account_identity = 12;
// The object source which hosts policy objects within the invalidation
// service. This value is combined with invalidation_name to form the object
// id used to register for invalidations to this policy.
optional int32 invalidation_source = 13;
// The name which uniquely identifies this policy within the invalidation
// service object source. This value is combined with invalidation_source to
// form the object id used to register for invalidations to this policy.
optional bytes invalidation_name = 14;
// Server-provided identifier of the fetched policy. This is to be used // Server-provided identifier of the fetched policy. This is to be used
// by the client when requesting Policy Posture assertion through an API // by the client when requesting Policy Posture assertion through an API
// call or SAML flow. For details, see http://go/chrome-nac-server-design. // call or SAML flow. For details, see http://go/chrome-nac-server-design.
...@@ -518,18 +508,6 @@ message PolicyData { ...@@ -518,18 +508,6 @@ message PolicyData {
// Indicates the state that the device should be in. // Indicates the state that the device should be in.
optional DeviceState device_state = 17; optional DeviceState device_state = 17;
// The object source which hosts command queue objects within the
// invalidation service. This value is combined with
// command_invalidation_name to form the object ID used to
// register for invalidations to the command queue.
optional int32 command_invalidation_source = 18;
// The name which uniquely identifies this device’s queue within
// the invalidation service object source. This value is combined
// with command_invalidation_source to form the object ID used to
// register for invalidations to the command queue.
optional bytes command_invalidation_name = 19;
// The free-text location info the admin enters to associate the device // The free-text location info the admin enters to associate the device
// with a location. // with a location.
optional string annotated_location = 20; optional string annotated_location = 20;
......
...@@ -48,8 +48,6 @@ Example: ...@@ -48,8 +48,6 @@ Example:
], ],
"current_key_index": 0, "current_key_index": 0,
"robot_api_auth_code": "", "robot_api_auth_code": "",
"invalidation_source": 1025,
"invalidation_name": "UENUPOL",
"token_enrollment": { "token_enrollment": {
"token": "abcd-ef01-123123123", "token": "abcd-ef01-123123123",
"username": "admin@example.com" "username": "admin@example.com"
...@@ -1159,14 +1157,6 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): ...@@ -1159,14 +1157,6 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
policy_data.service_account_identity = policy.get( policy_data.service_account_identity = policy.get(
'service_account_identity', 'service_account_identity',
'policy_testserver.py-service_account_identity@gmail.com') 'policy_testserver.py-service_account_identity@gmail.com')
invalidation_source = policy.get('invalidation_source')
if invalidation_source is not None:
policy_data.invalidation_source = invalidation_source
# Since invalidation_name is type bytes in the proto, the Unicode name
# provided needs to be encoded as ASCII to set the correct byte pattern.
invalidation_name = policy.get('invalidation_name')
if invalidation_name is not None:
policy_data.invalidation_name = invalidation_name.encode('ascii')
policy_invalidation_topic = policy.get('policy_invalidation_topic') policy_invalidation_topic = policy.get('policy_invalidation_topic')
if policy_invalidation_topic is not None: if policy_invalidation_topic is not None:
......
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