| Index: chrome/browser/policy/test/policy_testserver.py
|
| diff --git a/chrome/browser/policy/test/policy_testserver.py b/chrome/browser/policy/test/policy_testserver.py
|
| index 81b6bd5357f9920a1736213730b8c8f99520a005..a0bd33dce2d977e000908919b6463a91c4ae6e09 100644
|
| --- a/chrome/browser/policy/test/policy_testserver.py
|
| +++ b/chrome/browser/policy/test/policy_testserver.py
|
| @@ -443,10 +443,12 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
| self.server.UpdateStateKeys(token_info['device_token'],
|
| key_update_request.server_backed_state_key)
|
|
|
| - # If this is a publicaccount request then get the username now and use it
|
| - # in every PolicyFetchResponse produced. This is required to validate
|
| - # policy for extensions in public accounts.
|
| - username = self.server.GetPolicies().get('policy_user', None)
|
| + # If this is a |publicaccount| request, get the |username| now and use
|
| + # it in every PolicyFetchResponse produced. This is required to validate
|
| + # policy for extensions in device-local accounts.
|
| + # Unfortunately, the |username| can't be obtained from |msg| because that
|
| + # requires interacting with GAIA.
|
| + username = None
|
| for request in msg.policy_request.request:
|
| if request.policy_type == 'google/chromeos/publicaccount':
|
| username = request.settings_entity_id
|
| @@ -461,7 +463,7 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
| 'google/chrome/user',
|
| 'google/ios/user')):
|
| fetch_response = response.policy_response.response.add()
|
| - self.ProcessCloudPolicy(request, token_info, fetch_response)
|
| + self.ProcessCloudPolicy(request, token_info, fetch_response, username)
|
| elif request.policy_type == 'google/chrome/extension':
|
| self.ProcessCloudPolicyForExtensions(
|
| request, response.policy_response, token_info, username)
|
| @@ -637,7 +639,7 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
| settings.__getattribute__(field.name).CopyFrom(policy_message)
|
|
|
| def ProcessCloudPolicyForExtensions(self, request, response, token_info,
|
| - username):
|
| + username=None):
|
| """Handles a request for policy for extensions.
|
|
|
| A request for policy for extensions is slightly different from the other
|
| @@ -649,7 +651,7 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
| response: The DevicePolicyResponse message for the response. Multiple
|
| PolicyFetchResponses will be appended to this message.
|
| token_info: The token extracted from the request.
|
| - username: The username for the response.
|
| + username: The username for the response. May be None.
|
| """
|
| # Send one PolicyFetchResponse for each extension that has
|
| # configuration data at the server.
|
| @@ -760,8 +762,6 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
|
|
| if username:
|
| policy_data.username = username
|
| - elif msg.policy_type == 'google/chromeos/publicaccount':
|
| - policy_data.username = msg.settings_entity_id
|
| else:
|
| # For regular user/device policy, there is no way for the testserver to
|
| # know the user name belonging to the GAIA auth token we received (short
|
|
|