Commit 1c7db824 authored by Pavol Marko's avatar Pavol Marko Committed by Commit Bot

Create UserNetworkConfigurationUpdater even for guest sessions

ManagedNetworkConfigurationHandler expects that network policy will be
set for a primary user session, even if the policy is empty because the
session is unmanaged. This is done through
UserNetworkConfigurationUpdater. This should also happen for
guest sessions, see also https://crbug.com/1001490.

Note 1: This regressed with CL:1689190 - the reason to stop creating a
UserNetworkConfigurationUpdater for guest sessions there was that
without it's clear that guest sessions don't get policy-provided trusted
certificates. However, that's still guaranteed after this change,
because PolicyCertService explicitly disallows those for guest sessions.
This is a theoretical discussion because guest sessions never have a
user policy blob anyway.

Note 2: As this is blocking M-78 beta, an apitest will be added as
follow-up in https://crbug.com/1001494 .

Bug: 998010, 999685, 1001490
Test: Manual verification on Chrome OS device. Steps:
 (1) Enter Guest session.
 (2) Joining a Wifi network from the system tray in a guest session
     works.
 (3) Forgetting a Wifi network in a guest session works.

Change-Id: I075ccacd271508769bf910215b9f60e5433d3b6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1789522
Commit-Queue: Pavol Marko <pmarko@chromium.org>
Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#694361}
parent 10f4b509
......@@ -73,16 +73,15 @@ KeyedService* UserNetworkConfigurationUpdaterFactory::BuildServiceInstanceFor(
if (user != user_manager::UserManager::Get()->GetPrimaryUser())
return nullptr;
// Guest sessions don't get user policy, so there's no reason for them to have
// a UserNetworkConfigurationUpdater.
if (user->GetType() == user_manager::USER_TYPE_GUEST)
return nullptr;
ProfilePolicyConnector* profile_connector =
profile->GetProfilePolicyConnector();
// Note that sessions which don't have policy (e.g. guest sessions) still
// expect to have UserNetworkConfigurationUpdater, because
// ManagedNetworkConfigurationHandler requires a (possibly empty) policy to be
// set for all user sessions.
// TODO(https://crbug.com/1001490): Evaluate if this is can be solved in a
// more elegant way.
return UserNetworkConfigurationUpdater::CreateForUserPolicy(
profile, *user, profile_connector->policy_service(),
profile, *user,
profile->GetProfilePolicyConnector()->policy_service(),
chromeos::NetworkHandler::Get()
->managed_network_configuration_handler())
.release();
......
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