Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Issue 1972893002: Make sure newly created frames become throttled (Closed)

Created:
4 years, 7 months ago by Sami
Modified:
4 years ago
Reviewers:
Xianzhu
CC:
chromium-reviews, blink-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make sure newly created frames become throttled If an iframe is created inside a throttled frame, there is a window in time before it realizes it should also become throttled. If the following sequence of events happens in this window, FramePainter fails with a release assert due to stale layout information: 1. The newly created frame requires GraphicsLayers (i.e., it has a CSS 3D transform). 2. Something causes a full lifecycle update (including painting) without allowing throttling. As a side effect GraphicsLayers are created for the frame. 3. The contents of the frame are invalidated, marking it as needing layout. 4. One or more GraphicsLayers for the frame are also marked as needing repaint. 5. We do a BeginMainFrame. This allows throttling, so we do not update the lifecycle for the newly created frame. However in the synchronized painting stage we descend through the full GraphicsLayer tree. When we reaches a GraphicsLayer the newly created frame, a release assert fails because the respective FrameView needs layout. This patch fixes the bug by updating the throttling status of a frame as soon as it is assigned a parent. BUG=609758

Patch Set 1 #

Patch Set 2 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+55 lines, -0 lines) Patch
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/tests/FrameThrottlingTest.cpp View 1 chunk +54 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (2 generated)
Sami
I was finally able to reproduce the FrameView release assertion failure. It required a pretty ...
4 years, 7 months ago (2016-05-12 10:33:43 UTC) #3
Sami
4 years, 7 months ago (2016-05-12 15:12:02 UTC) #4
Looks like this is causing some general unhappiness in the layout tests. I'll
investigate and report back.

Powered by Google App Engine
This is Rietveld 408576698