New issue
Advanced search Search tips

Issue 838942 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug
Proj-Servicification

Blocking:
issue 827532
issue 837333



Sign in to add a comment

Support updating Http Auth cache with contents from a different Http Auth cache

Project Member Reported by xunji...@chromium.org, May 2 2018

Issue description

ChromeOS currently uses HttpAuthCache::UpdateAllFrom(const HttpAuthCache& other) for their login code.

see:
https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/existing_user_controller.cc?rcl=456eb6a9673d3c3d1240f4f090a3c87772bb461b&l=164

We need to figure out how to support populating HttpAuthCache in NetworkContext.

 
Labels: OS-Chrome
This feature is used only on ChromeOS, so it shouldn't block us from launching network service on other platforms.

Comment 2 by dxie@chromium.org, May 15 2018

this is for chrome-os and should not block the initial network services launch.

Comment 3 by dxie@chromium.org, May 29 2018

Labels: Hotlist-KnownIssue
Labels: -Hotlist-KnownIssue
Labels: Proj-Servicification-Canary Hotlist-KnownIssue
Blocking: 827532
Owner: rmcelrath@chromium.org
Status: Started (was: Available)
Cc: pmarko@chromium.org xiy...@chromium.org dxie@chromium.org rmcelrath@chromium.org
 Issue 896941  has been merged into this issue.
Project Member

Comment 9 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc

commit bb0389f4b627caf2b0edf58d5b92e5e58a495fdc
Author: Robbie McElrath <rmcelrath@chromium.org>
Date: Wed Dec 12 01:41:48 2018

Support copying HttpAuthCache contents with network service enabled.

This adds functions to NetworkContext to facilitate copying
HttpAuthCache contents from one NetworkContext to another. This copying
is needed during ChromeOS sign in to copy any proxy authentication that
happened in the login screen into the user's session. We'll need to
somehow reference one NetworkContext from another in order to do the
copying, which isn't curently possible. We considered 3 approaches to
address this:

1. Add an ID to all NetworkContexts, and use the source NetworkContext's
   ID in the copy call. The network service can then look up the
   HttpAuthCache for that NetworkContext and copy from it.
2. Create a Mojo struct containing the relevant portions of the
   HttpAuthCache entries, and add a GetHttpAuthCacheEntries method
   to NetworkContext that will return a list of all entries. We can
   then pass that list back to the destination NetworkContext via a
   SetHttpAuthCacheEntries method.
3. Add a NetworkContext method to save the current HttpAuthCache
   contents somewhere not associated with that NetworkContext, and
   return some token/key/id that can be used to reference the saved
   data in a subsequent call on the destination NetworkContext.

Here are my thoughts on each approach:

1. I don't think this features is enough of a justification for adding
   a NetworkContext ID. NetworkContexts are logically tied to a
   StoragePartition, and currently access to them is mostly tied to
   their StoragePartition as well. I think that's the way it should be,
   and adding a unique ID to them makes it easier to reference them from
   other places.
2. In order to convert the existing HttpAuthCache entries into a mojo
   struct, we'd need to add accessors to the vector of entries, as well
   as path list and nonce of each individual entry. While this is
   doable, I felt like this was too big of a change to the HttpAuthCache
   API, and was exposing too much of its implementation.
3. I'm not a huge fan of this API, but it's very simple, doesn't require
   any changes to net/'s API, and doesn't require serializing the
   HttpAuthCache and transmitting it twice across processes.

This CL implements approach 3, but I'm happy to change it. This also
refactors ProfileAuthData to use the new API. ExistingUserController and
SigninPartitionManager will also need to be migrated to this new API,
but those will be done in followup CLs.

Bug:  838942 
Change-Id: I47367dcff41f73e86535f487035e20dde5cbb86c
Reviewed-on: https://chromium-review.googlesource.com/c/1366877
Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615761}
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/chrome/browser/chromeos/login/profile_auth_data.cc
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/chrome/browser/chromeos/login/profile_auth_data.h
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/BUILD.gn
[add] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/http_auth_cache_copier.cc
[add] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/http_auth_cache_copier.h
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/network_context.cc
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/network_context.h
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/network_service.cc
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/network_service.h
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/public/mojom/network_context.mojom
[modify] https://crrev.com/bb0389f4b627caf2b0edf58d5b92e5e58a495fdc/services/network/test/test_network_context.h

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ec81befc4a48721366f052d1bef14d8f8fe03bbe

commit ec81befc4a48721366f052d1bef14d8f8fe03bbe
Author: Robbie McElrath <rmcelrath@chromium.org>
Date: Wed Dec 12 01:46:00 2018

Make SigninPartitionManager work with the network service enabled.

This makes the HttpAuthCache copying in SigninPartitionManager work
when the network service is enabled.

Bug:  838942 
Change-Id: I679885ad0b9f8ca3fada00b777f5a955ba7b4d0f
Reviewed-on: https://chromium-review.googlesource.com/c/1368949
Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615768}
[modify] https://crrev.com/ec81befc4a48721366f052d1bef14d8f8fe03bbe/chrome/browser/chromeos/login/signin_partition_manager.cc
[modify] https://crrev.com/ec81befc4a48721366f052d1bef14d8f8fe03bbe/chrome/browser/chromeos/login/signin_partition_manager.h
[modify] https://crrev.com/ec81befc4a48721366f052d1bef14d8f8fe03bbe/chrome/browser/chromeos/login/signin_partition_manager_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac5e3628232f3c798aad68bf80f183898c1eef82

commit ac5e3628232f3c798aad68bf80f183898c1eef82
Author: Robbie McElrath <rmcelrath@chromium.org>
Date: Wed Dec 12 01:58:50 2018

Make ExistingUserController work with the network service enabled.

Bug:  838942 
Change-Id: Ibb116e15580dace63bb271af04e983d37db56167
Reviewed-on: https://chromium-review.googlesource.com/c/1371208
Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615779}
[modify] https://crrev.com/ac5e3628232f3c798aad68bf80f183898c1eef82/chrome/browser/chromeos/login/existing_user_controller.cc
[modify] https://crrev.com/ac5e3628232f3c798aad68bf80f183898c1eef82/testing/buildbot/filters/mojo.fyi.chromeos.network_interactive_ui_tests.filter

Status: Fixed (was: Started)

Sign in to add a comment