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

Issue 647393 link

Starred by 7 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression

Blocking:
issue 616519
issue 673975



Sign in to add a comment

gmail "float over a name" popup isn't working any more

Project Member Reported by wfh@chromium.org, Sep 15 2016

Issue description

Version: 55.0.2859.0 canary (64-bit)
OS: Windows 10

What steps will reproduce the problem?
(1) Load gmail
(2) Open email
(3) Float over the name, a popup should appear with their info.

What is the expected output?

Popup appears

What do you see instead?

No popup

Please use labels and text to provide additional information.

Works on Chrome stable: 53.0.2785.101 (Official Build) m (64-bit)
Does not work on Chrome Canary: 55.0.2859.0 (Official Build) canary (64-bit)
 

Comment 1 by wfh@chromium.org, Sep 15 2016

You are probably looking for a change made after 414731 (known good), but no later than 415292 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/252dbee..19cd306?pretty=fuller&n=1000

I'm not sure why the regression range is so wide, makes it really painful.

Comment 2 by wfh@chromium.org, Sep 15 2016

wow this range actually spans four Chrome releases - 55.0.2841.0..55.0.2845.0 so maybe I'll try an official bisect to get a better range.

Comment 3 by wfh@chromium.org, Sep 15 2016

Labels: M-55 Needs-Bisect OS-Windows
hmm the option to do official bisects seems to have vanished from bisect-builds.py - so I think that revision range is all we have. Perhaps TE can do a better bisect.

To repro:
 - load gmail
 - open an email
 - float mouse over the name or icon of the sender.
  - Good revision is: a popup appears with the info for the person.
  - Bad revision is: nothing happens.

Comment 4 by wfh@chromium.org, Sep 15 2016

bisect on linux64 had more revisions:

You are probably looking for a change made after 415274 (known good), but no later than 415276 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/f9fac4f..9da1146?pretty=fuller

but that makes no sense, so running it again.

Comment 5 by wfh@chromium.org, Sep 15 2016

Cc: wjmaclean@chromium.org
Labels: -OS-Windows OS-All
Owner: skyos...@chromium.org
Status: Assigned (was: Untriaged)
You are probably looking for a change made after 415276 (known good), but no later than 415280 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/9da1146..83ae78a?pretty=fuller

possibly https://codereview.chromium.org/2023033003?

Initially in 55.0.2845.0

Comment 6 by wfh@chromium.org, Sep 15 2016

Labels: -Needs-Bisect

Comment 7 by kbr@chromium.org, Sep 15 2016

Cc: kbr@chromium.org
Components: -Blink Blink>Scheduling
Labels: -Pri-2 ReleaseBlock-Stable Pri-1
Have noticed this too and it's *really* annoying. Now have to view the "original message" in Gmail in order to see the email addresses of recipients. Please investigate.

Cc: kenjibaheux@chromium.org ojan@chromium.org
Looks like --disable-blink-features=TimerThrottlingForHiddenFrames makes things work again.

Curiously https://codereview.chromium.org/2333653002 did not fix this. Not sure what is going on yet.
Any idea if this is working with Safari (I assume it does, but is it
something they do or because the gmail code behaves differently?)

Comment 10 by wfh@chromium.org, Sep 16 2016

Can we revert while this investigation is going on, and then add tests to make sure this doesn't regress when it's re-landed?

Comment 11 by kbr@chromium.org, Sep 17 2016

I'd really appreciate it if this could be reverted -- Gmail is broken in several subtle ways, including that hovering over peoples' Hangouts chat names doesn't bring up the popup with their email address, making it impossible to confirm who you're chatting with.

Comment 12 by kbr@chromium.org, Sep 17 2016

Blocking: 616519

Comment 13 by wfh@chromium.org, Sep 17 2016

FWIW floaties in gmail started working again for me on my home PC - 55.0.2863.0 (Official Build) canary (64-bit) on Windows 10.

Comment 14 by wfh@chromium.org, Sep 19 2016

re: comment #13 this must have been just something different on my home machine because they are still not working in the office. Version 55.0.2865.0 canary (64-bit)

Comment 15 by kbr@chromium.org, Sep 21 2016

Cc: alexclarke@chromium.org
Confirmed that --disable-blink-features=TimerThrottlingForHiddenFrames makes Gmail's floating pop-ups work again in 55.0.2867.0 (Official Build) canary (64-bit) on macOS.

Status: Started (was: Assigned)
Sorry for the delay, I was out of office. I've got a patch to disable the the intervention for now: https://codereview.chromium.org/2358383003/
Project Member

Comment 17 by bugdroid1@chromium.org, Sep 22 2016

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

commit 3b3e90443440cecbc3d24a045819b3d14e0b17c6
Author: skyostil <skyostil@chromium.org>
Date: Thu Sep 22 11:18:28 2016

Disable hidden timer throttling

Disable the hidden timer throttling intervention while we investigate a
Gmail regression.

BUG= 647393 

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

[modify] https://crrev.com/3b3e90443440cecbc3d24a045819b3d14e0b17c6/content/public/common/content_features.cc

Labels: Merge-Request-54 M-54
Status: Fixed (was: Started)
Marking fixed so I can also disable the intervention on M54.

Comment 19 by dimu@chromium.org, Sep 23 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

Comment 20 by bugdroid1@chromium.org, Sep 23 2016

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/82ec1189a0053aa4c8891c4c973e5289a12f416d

commit 82ec1189a0053aa4c8891c4c973e5289a12f416d
Author: Sami Kyostila <skyostil@chromium.org>
Date: Fri Sep 23 15:05:48 2016

Disable hidden timer throttling

Disable the hidden timer throttling intervention while we investigate a
Gmail regression.

BUG= 647393 

Review-Url: https://codereview.chromium.org/2358383003
Cr-Commit-Position: refs/heads/master@{#420301}
(cherry picked from commit 3b3e90443440cecbc3d24a045819b3d14e0b17c6)

Review URL: https://codereview.chromium.org/2362283002 .

Cr-Commit-Position: refs/branch-heads/2840@{#511}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/82ec1189a0053aa4c8891c4c973e5289a12f416d/content/public/common/content_features.cc

Labels: TE-Verified-54.0.2840.41 TE-Verified-M54
Verified the issue on Win 10,Mac 10.11.6 and Ubuntu 14.04 using Beta # 54.0.2840.41 and its working fine.Attached the screen cast for the same.
647393_Sept_28.mp4
504 KB View Download
Here's what I think is going on with the Gmail contact cards. The card is first created at (0, -10000) and moved on-screen once it is ready, i.e., after the first rAF. Since we never rAF hidden frames, the contact card remains offscreen forever.

What I don't know is why offscreen timer throttling tickled this bug. It is also activated by the rewrite to use IntersectionObserver for frame throttling[1], because that code can throttle a frame sooner than before.

I believe (but haven't verified yet) this bug also affect Safari, but they get away with it because they tick rAF at 1 Hz instead of disabling it completely, so the card eventually shows up.

I'm thinking of a compromise where we always rAF a frame at least once before throttling. It seems to work on Gmail also in conjunction with hidden timer throttling. Thoughts?

[1] https://codereview.chromium.org/2272773002/
Devil's advocate: should we just copy what safari does initially?  And then try and get all the browsers to adopt a more aggressive approach like the one Sami suggests?
That's a fair question. I think I'd want to avoid going for 1 Hz for two reasons: 1) if we do that and more sites start relying on it, it'll be even harder to be more aggressive later and 2) our current architecture isn't really set up to do throttled updates rather than completely disabling them -- it'd be a big rewrite.

Comment 25 by ojan@chromium.org, Oct 13 2016

+1 to staying aggressive. Another option is that we could contact gmail and see if they can just fix this.
Digging into this a little more, looks like my theory about animation frames doesn't hold water. The actual problem seems to be that when the popup iframe moves from y=-10000px into the viewport, the IntersectionObservation for it still says that it's hidden:

Moved: FrameView 0x3438b0c6a938, parent (nil), 306, -10000, 350, 162
IntersectionObserver callback for FrameView 0x3438b0c6a938, wasHidden 0, isHidden 1, ratio 0.000000
Became throttled: FrameView 0x3438b0c6a938, 0, -10000, 1040, 150
Moved: FrameView 0x3438b0c6a938, parent 0x3438b0b621a8, 306, 158, 350, 162
IntersectionObserver callback for FrameView 0x3438b0c6a938, wasHidden 1, isHidden 1, ratio 0.000000

You can actually inspect the blank popup and see its contents in devtools, but because we still think its offscreen we don't paint anything inside it. (I checked that this isn't a dupe of  crbug.com/637373 .)

I'll try to find out what's going on once I get back after next week.

Comment 27 by ojan@chromium.org, Oct 14 2016

If you can turn this into a reduced test case, we can have the layout team fix this since it's a general IntersectionObserver bug.
Okay, found out what was going on. We were observing the document element instead of the frame owner element. If the document happened to be empty, we'd get an empty rect and concluded that the frame was invisible.

Fix is in the latest patch set here: https://codereview.chromium.org/2272773002
Project Member

Comment 29 by bugdroid1@chromium.org, Oct 27 2016

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

commit 82ec1189a0053aa4c8891c4c973e5289a12f416d
Author: Sami Kyostila <skyostil@chromium.org>
Date: Fri Sep 23 15:05:48 2016

Disable hidden timer throttling

Disable the hidden timer throttling intervention while we investigate a
Gmail regression.

BUG= 647393 

Review-Url: https://codereview.chromium.org/2358383003
Cr-Commit-Position: refs/heads/master@{#420301}
(cherry picked from commit 3b3e90443440cecbc3d24a045819b3d14e0b17c6)

Review URL: https://codereview.chromium.org/2362283002 .

Cr-Commit-Position: refs/branch-heads/2840@{#511}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/82ec1189a0053aa4c8891c4c973e5289a12f416d/content/public/common/content_features.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Nov 1 2016

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

commit 3c364c812da0312a104e976ca5838507efe3488e
Author: skyostil <skyostil@chromium.org>
Date: Tue Nov 01 17:56:08 2016

Use intersection observer to control frame throttling

This patch removes the FrameView-specific code for computing viewport
visibility in favor of registering an internal intersection observer.

BUG= 616519 , 647393 ,661182

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

[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/LayoutTests/LeakExpectations
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/LayoutTests/http/tests/activedomobject/media-expected.txt
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/LayoutTests/http/tests/activedomobject/media.html
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.h
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/frame/FrameView.h
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/layout/svg/LayoutSVGBlock.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.cpp
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.h
[modify] https://crrev.com/3c364c812da0312a104e976ca5838507efe3488e/third_party/WebKit/Source/web/tests/FrameThrottlingTest.cpp

Cc: skyos...@chromium.org
 Issue 644902  has been merged into this issue.
Project Member

Comment 32 by bugdroid1@chromium.org, Nov 16 2016

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

commit 1688130897aed95d32e3904a6aa10384414fbefe
Author: skyostil <skyostil@chromium.org>
Date: Wed Nov 16 22:14:29 2016

scheduler: Re-enable timer throttling for hidden frames

Turn hidden timer throttling back now that the issue with Gmail pop-ups
not working has been resolved by https://codereview.chromium.org/2272773002/.

This patch also fixes a timer throttling related rebase error in a
previous patch and adds new layout test that cover out-of-view timer
and requestAnimationFrame throttling.

Intent to ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_Lhz8THHk2Q

BUG= 616519 , 647393 

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

[modify] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/content/public/common/content_features.cc
[add] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/LayoutTests/fast/dom/raf-throttling-out-of-view-cross-origin-page.html
[add] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/LayoutTests/fast/dom/resources/raf-throttling-frame.html
[add] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/LayoutTests/fast/dom/resources/timer-throttling-frame.html
[add] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/LayoutTests/fast/dom/timer-throttling-out-of-view-cross-origin-page.html
[modify] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/test-helpers.js
[modify] https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe/third_party/WebKit/Source/core/frame/FrameView.cpp

Comment 33 by kbr@chromium.org, Nov 17 2016

Status: Started (was: Fixed)
This is broken again in 56.0.2923.0 (Official Build) canary (64-bit) on macOS. Hovering over any names in Gmail doesn't raise the popup any more.

Sami, I'm reopening this. Please investigate again.

This is currently showing up as M55 Stable blocker. 
Is there anything needed for M55? 
(Fix listed at #c17 landed before M55 branch But I do see few other changes landed after M55 branch on Oct 6th at Chromium revision #423768.)
Labels: -M-55 -M-54 M-56
Sorry, looks like the labels were out of date. This feature is not enabled in M55.

The revert for ToT is in the cq: https://codereview.chromium.org/2511283002/
Project Member

Comment 36 by bugdroid1@chromium.org, Nov 18 2016

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

commit 32461cca06891c91b22bb827c240333035d37289
Author: skyostil <skyostil@chromium.org>
Date: Fri Nov 18 03:27:23 2016

Revert of scheduler: Re-enable timer throttling for hidden frames (patchset #6 id:100001 of https://codereview.chromium.org/2468863002/ )

Reason for revert:
Regressed  crbug.com/647393 .

Original issue's description:
> scheduler: Re-enable timer throttling for hidden frames
>
> Turn hidden timer throttling back now that the issue with Gmail pop-ups
> not working has been resolved by https://codereview.chromium.org/2272773002/.
>
> This patch also fixes a timer throttling related rebase error in a
> previous patch and adds new layout test that cover out-of-view timer
> and requestAnimationFrame throttling.
>
> Intent to ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_Lhz8THHk2Q
>
> BUG= 616519 , 647393 
>
> Committed: https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe
> Cr-Commit-Position: refs/heads/master@{#432642}

TBR=kinuko@chromium.org,ojan@chromium.org,ojan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 616519 , 647393 

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

[modify] https://crrev.com/32461cca06891c91b22bb827c240333035d37289/content/public/common/content_features.cc
[delete] https://crrev.com/a713652fa5868b8d3d5dae03856f8e785b5fcff7/third_party/WebKit/LayoutTests/fast/dom/raf-throttling-out-of-view-cross-origin-page.html
[delete] https://crrev.com/a713652fa5868b8d3d5dae03856f8e785b5fcff7/third_party/WebKit/LayoutTests/fast/dom/resources/raf-throttling-frame.html
[delete] https://crrev.com/a713652fa5868b8d3d5dae03856f8e785b5fcff7/third_party/WebKit/LayoutTests/fast/dom/resources/timer-throttling-frame.html
[delete] https://crrev.com/a713652fa5868b8d3d5dae03856f8e785b5fcff7/third_party/WebKit/LayoutTests/fast/dom/timer-throttling-out-of-view-cross-origin-page.html
[modify] https://crrev.com/32461cca06891c91b22bb827c240333035d37289/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/test-helpers.js
[modify] https://crrev.com/32461cca06891c91b22bb827c240333035d37289/third_party/WebKit/Source/core/frame/FrameView.cpp

Comment 37 by wfh@chromium.org, Nov 18 2016

looks like you're aware already but 56.0.2924.2 (Official Build) canary (64-bit) the tooltip isn't working - looks like c36 will be in next canary though.
Labels: -Hotlist-Merge-Approved -TE-Verified-M54 -merge-merged-2840 -TE-Verified-54.0.2840.41 Merge-Request-56
#37, thanks, setting some labels to make sure the revert makes it to M56.

Comment 39 by dimu@chromium.org, Nov 21 2016

Labels: -Merge-Request-56 Merge-Approved-56 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M56 (branch: 2924)
Project Member

Comment 40 by bugdroid1@chromium.org, Nov 21 2016

Labels: -merge-approved-56 merge-merged-2924
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0cb7b0e7a4157377ffe4728a71fcecabcf7f7411

commit 0cb7b0e7a4157377ffe4728a71fcecabcf7f7411
Author: Sami Kyostila <skyostil@chromium.org>
Date: Mon Nov 21 13:31:58 2016

Revert of scheduler: Re-enable timer throttling for hidden frames (patchset #6 id:100001 of https://codereview.chromium.org/2468863002/ )

Reason for revert:
Regressed  crbug.com/647393 .

Original issue's description:
> scheduler: Re-enable timer throttling for hidden frames
>
> Turn hidden timer throttling back now that the issue with Gmail pop-ups
> not working has been resolved by https://codereview.chromium.org/2272773002/.
>
> This patch also fixes a timer throttling related rebase error in a
> previous patch and adds new layout test that cover out-of-view timer
> and requestAnimationFrame throttling.
>
> Intent to ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_Lhz8THHk2Q
>
> BUG= 616519 , 647393 
>
> Committed: https://crrev.com/1688130897aed95d32e3904a6aa10384414fbefe
> Cr-Commit-Position: refs/heads/master@{#432642}

TBR=kinuko@chromium.org,ojan@chromium.org,ojan@google.com
BUG= 616519 , 647393 

Review-Url: https://codereview.chromium.org/2511283002
Cr-Commit-Position: refs/heads/master@{#433061}
(cherry picked from commit 32461cca06891c91b22bb827c240333035d37289)

Review URL: https://codereview.chromium.org/2520953002 .

Cr-Commit-Position: refs/branch-heads/2924@{#27}
Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059}

[modify] https://crrev.com/0cb7b0e7a4157377ffe4728a71fcecabcf7f7411/content/public/common/content_features.cc
[delete] https://crrev.com/420142c2b9befd8d7163fdf3e66dd637e1452b97/third_party/WebKit/LayoutTests/fast/dom/raf-throttling-out-of-view-cross-origin-page.html
[delete] https://crrev.com/420142c2b9befd8d7163fdf3e66dd637e1452b97/third_party/WebKit/LayoutTests/fast/dom/resources/raf-throttling-frame.html
[delete] https://crrev.com/420142c2b9befd8d7163fdf3e66dd637e1452b97/third_party/WebKit/LayoutTests/fast/dom/resources/timer-throttling-frame.html
[delete] https://crrev.com/420142c2b9befd8d7163fdf3e66dd637e1452b97/third_party/WebKit/LayoutTests/fast/dom/timer-throttling-out-of-view-cross-origin-page.html
[modify] https://crrev.com/0cb7b0e7a4157377ffe4728a71fcecabcf7f7411/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/test-helpers.js
[modify] https://crrev.com/0cb7b0e7a4157377ffe4728a71fcecabcf7f7411/third_party/WebKit/Source/core/frame/FrameView.cpp

Cc: kavvaru@chromium.org
Labels: TE-Verified-56.0.2924.3 TE-Verified-M56
Tested the issue on windows 7, Linux Ubuntu 14.04 and Mac 10.11.6 using chrome version 56.0.2924.3.Able to see the pop up when hover on the name.
Please find the attached screen shot for the same.

Adding TE-Verified labels.

Thanks,
647393.png
153 KB View Download
Okay, I think I finally got to the bottom of why this is working in Safari and not in Chrome. Safari has this wonderful piece of code[1] which only applies timer throttling after 4 nesting levels. This happens to be enough to let the Gmail popup load correctly -- I tried doing the same in Chrome and the bug went away.

I think I'd like to avoid implementing this logic for a couple of reasons:

1) I think it causes reordering between timers depending on the nesting level.
2) It's pretty easy to get around the nesting level -- even accidentally -- which leads to work we can't throttle.
3) Having things like Gmail rely on this feels brittle.

WDYT? I'll try to find out if we could do things differently in Gmail instead.

[1] https://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.cpp#L2848
Wow :) +1 on your proposal, the 4 nesting levels feels arbitrary and would
lead to a lot of missed opportunities. Let me know if you need an intro to
someone in the gmail team.
For completeness here's the patch that made that tweak in WebKit: https://bugs.webkit.org/show_bug.cgi?id=146025.

Interestingly it was landed to fix a broken Gmail chat mole. I checked and didn't see that problem with my patch.
Can we have the latest update.Is this issue fixed?
A fix was landed in Gmail and I'm waiting for it to get rolled out before I enable timer throttling again.
Project Member

Comment 47 by bugdroid1@chromium.org, Dec 13 2016

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

commit 1667f2eb188cac8da8dcb2fc84a8357fd94b5f61
Author: skyostil <skyostil@chromium.org>
Date: Tue Dec 13 18:17:44 2016

scheduler: Re-enable timer throttling for hidden frames

Turn hidden timer throttling back now that the issue with Gmail pop-ups
not working has been resolved by https://codereview.chromium.org/2272773002/.

This patch also fixes a timer throttling related rebase error in a
previous patch and adds new layout test that cover out-of-view timer
and requestAnimationFrame throttling.

Intent to ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_Lhz8THHk2Q

BUG= 616519 , 647393 

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

[modify] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/content/public/common/content_features.cc
[add] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/LayoutTests/fast/dom/raf-throttling-out-of-view-cross-origin-page.html
[add] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/LayoutTests/fast/dom/resources/raf-throttling-frame.html
[add] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/LayoutTests/fast/dom/resources/timer-throttling-frame.html
[add] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/LayoutTests/fast/dom/timer-throttling-out-of-view-cross-origin-page.html
[modify] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/test-helpers.js
[modify] https://crrev.com/1667f2eb188cac8da8dcb2fc84a8357fd94b5f61/third_party/WebKit/Source/core/frame/FrameView.cpp

Status: Fixed (was: Started)

Comment 49 by kbr@chromium.org, Dec 14 2016

Blocking: 673975

Sign in to add a comment