Background download resumption doesn't work without InProcessNetworkService turn on. |
|||
Issue descriptionWhen network service runs in its own process, download resumption stops working. There are two things we observed and need to fix: 1) The DCHECK was hit in ServiceManagerContext::GetConnectorForIOThread(), while IO thread hasn't initialized. 2) Download task is hanging.
,
Dec 7
Hi Min, could you help to investigate why the download task is hanging after resume? Thanks!
,
Dec 12
An update: Min noticed when QueryAndStartServiceInUtilityProcess is called for NetworkService, the callback StartServiceInUtilityProcess never be called. I think it is caused by the browsesr_connection (https://cs.chromium.org/chromium/src/content/browser/service_manager/service_manager_context.cc?rcl=de20dd4652d26cb6608e1c70fa02ccb0f79aae3c&l=703) which the connector (GetConnectorForIOThread()) comes from hasn't started yet. Due to the dependencies in ConnectionFilterImpl, we can't start the browser_connection early. I tried to cache another connector and let it clone the |packaged_service_connection_| which has started when the ServiceManagerContext is created, but I hit lots of DCHECK of incorrect threads. Particularly, UtilityProcessHost and BrowserChildProcessHostImpl shouldn't check BrowserThread::IO. But I won't surprise there are more threading issue. +Ken: am I on the right track? Do you have any better idea?
,
Dec 12
I don't understand what you mean by caching another connector and cloning packaged_service_connection_. I think the right thing to do here is find a way to start the browser connection earlier by getting rid of its dependency on BrowserMainLoop state. As far as I can tell the only dependency there is for the DiscardableSharedMemoryManager. We could just have the ConnectionFilterImpl defer binding any requests for that interface until some later time, without blocking the rest of the filter's interfaces from being bound.
,
Jan 11
Available, but no owner or component? Please find a component, as no one will ever find this without one. |
|||
►
Sign in to add a comment |
|||
Comment 1 by qin...@chromium.org
, Dec 7