New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 672006 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 560446
Owner: ----
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Newly spawned renderers briefly throttle timers before becoming visible

Project Member Reported by skyos...@chromium.org, Dec 7 2016

Issue description

When a new renderer is spawned, its render widget is made hidden until some time after the navigation is committed (?). The means timer tasks can be briefly throttled, which could have harm page load time.

Debug log from navigating to a new site from the omnibox:

RendererSchedulerImpl 0x141af17d9000
WebFrameScheduler 0x141af1963a80
WebFrameScheduler 0x141af1963a80 page visible: 1
WebFrameScheduler 0x141af1963a80 page visible: 0
WebFrameScheduler 0x141af1963a80 throttling timers
RendererSchedulerImpl 0x141af17d9000 is hidden
RendererSchedulerImpl 0x141af17d9000 is hidden
WebFrameScheduler 0x141af1963a80 page visible: 1

Here page hiding is triggered by ViewMsg_WasHidden.
 
Cc: haraken@chromium.org
For some background, see  bug 560446 . The tl;dr is that we currently don't set the process priority of fresh renderers because we they might not have any render widgets at that point and would end up getting background priority. Initial visibility is broken for similar reasons AFAIU.

I wonder if the Global Tab Coordinator will be in a better position to fix this, since in theory it can keep track of the fact that the new renderer was spawned in response to a navigation.
Re #1: Sounds reasonable.

We also talked about a more near term workaround where we have a ~10 second grace period before we apply throttling based on a visibility change (which will be useful for other reasons too).
The challenge is to solve this in a way that doesn't harm the browser restore case. In that case we have, let's say, twenty tabs all trying to be restored simultaneously and we want the visible one to run at full priority while all of the others run at lower priority with throttled timers.

It seems like the correct solution is to count a newly spawned renderer as visible if the tab that it will show up in is visible. I don't know what is involved in making this work.

Agreed. I think we need the global tab coordinator in place before we can do prioritization like that.
Project Member

Comment 6 by sheriffbot@chromium.org, Dec 11 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Mergedinto: 560446
Status: Duplicate (was: Untriaged)
This is effectively a duplicate of  bug 560446 . I'm going to close it as such and annotate that bug to remind those working on it of this aspect of the issue.

Sign in to add a comment