On https://chromium-review.googlesource.com/1103451, there was an observation that variations headers appending does not seem to work with network service (i.e. there are no headers added).
I don't know the details of the network service, but I can offer some discussion.
First, these headers represent the field trial state known to the browser process. So if the code is now running in a different process, that state won't be available. The code may still *run* but because no variations ids have gotten registered with the singleton, nothing is appended.
So in such a case, we need some kind of cross-process solution. For example, a mojo call to update the singleton from the browser process when variations ids are registered. Or vice versa - for the service to query the browser for the ids when it needs them.
AFAIU, this is not implemented without the NetworkService. With the NetworkService, it is partially implemented, I mean, |to_be_removed_header| will be ignored when URLLoader::FollowRedirect is called from the NavigationRequest and target the NavigationURLLoaderImpl.
I have a project requiring remove a header on a navigation. How hard do you think it is to implement it?
Making it work with the NetworkService when FollowRedirect is called from the NavigationRequest looks straightforward. For the non-Network service case, I may encounter surprise. juncai@ Do you have idea how hard it would be for me to implement it?
I see thanks!
To make it working from NavigationURLLoaderImpl::FollowRedirect(removed_header, modifed_header), I need to do more plumbing.
I started something here:
https://chromium-review.googlesource.com/c/chromium/src/+/1344053
It is just enough to make it work in my tests, but there are still holes in a few places I need to fill.
Comment 1 by morlovich@chromium.org
, May 9 2018