New issue
Advanced search Search tips

Issue 735368 link

Starred by 4 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocking:
issue 675631



Sign in to add a comment

net::URLRequestContext/Builder and net::ProxyService should use SequencedTaskRunner

Project Member Reported by eseckler@chromium.org, Jun 21 2017

Issue description

For blocking (file) tasks, net::URLRequestContext/Builder should accept a SequencedTaskRunner rather than a SingleThreadedTaskRunner, to facilitate TaskScheduler usage.
 
Blocking: 675631

Comment 2 by mmenke@chromium.org, Jun 21 2017

Components: -Internals>Network Internals>Network>Cache
ProxyService can't use a SequencedTaskRunner - that argument is only used on Linux, and it has to live on the GTK thread.

URLRequestContextBuilder is blocked on the blockfile cache using a SingleThreadedTaskRunner, which is currently needed because it uses overlapped IO on Windows, so marking this as a cache bug.

Comment 3 by mmenke@chromium.org, Jun 21 2017

Erm, sorry, that should be "ProxyConfigService can't use a SequencedTaskRunner".  I don't think ProxyService uses a SingleThreadedTaskRunner.
Regarding ProxyConfigService: Yeah, I was thinking of the file_task_runner argument to net::ProxyService::CreateSystemProxyConfigService, which - you're right - is only used in ProxyConfigServiceLinux. Why can't it be a sequenced one? At first glance, it looked like the file_task_runner executes on the FILE thread at the moment and is only used in KDE.

Comment 5 by mmenke@chromium.org, Jun 21 2017

Cc: eroman@chromium.org
Components: Internals>Network>Proxy
[+eroman]  Looks like I was wrong...It's actually the SingleThreadTaskRunner grabbed in ProxyService::CreateSystemProxyConfigService on Linux that has to be a SingleThreadTaskRunner.  So I'm not familiar with why the second argument to CreateSystemProxyConfigService is a SingleThreadTaskRunner and not a SequencedTaskRunner.

Comment 6 by eroman@chromium.org, Jun 21 2017

tl;dr:
  * The first argument to CreateSystemProxyConfigService() can be a SequencedTaskRunner no problem.

  * The file_task_runner argument I am in the process of trying to remove (https://codereview.chromium.org/2944313003/), so doesn't really matter
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 23 2017

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

commit 98e76eb9375e2db29291163aeec9f0bdf9ff85cb
Author: eroman <eroman@chromium.org>
Date: Fri Jun 23 18:07:02 2017

Use SequencedTaskRunner rather than SingledThreadedTaskRunner for passing io_task_runner to ProxyConfigService.

In practice the io_task_runner will be a SingleThreadedTaskRunner, but this thread affinity doesn't need to be a contractual guarantee for ProxyConfigService implementations.

BUG=735368

Review-Url: https://codereview.chromium.org/2957433002
Cr-Commit-Position: refs/heads/master@{#481955}

[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_config_service_linux.cc
[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_config_service_linux.h
[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_config_service_mac.cc
[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_config_service_mac.h
[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_service.cc
[modify] https://crrev.com/98e76eb9375e2db29291163aeec9f0bdf9ff85cb/net/proxy/proxy_service.h

Comment 8 by eroman@chromium.org, Jun 23 2017

Description: Show this description

Sign in to add a comment