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

Issue 610906 link

Starred by 7 users

iframes that are floating may not be re-painted if their self-painting layer status changes

Project Member Reported by gerryg@google.com, May 11 2016

Issue description

Chrome Version       : Version 51.0.2704.29 beta (64-bit) on Mac
URLs (if applicable) :

Iframe that works in Mac Chrome
http://jsbin.com/sodugelasu/1/edit?html,css,output
Iframe that doesn't work in Mac Chrome
http://jsbin.com/wupahubazu/1/edit?html,css,output

The only difference between the two is the initial height assigned to the <iframe> element in the "style" attribute.

Other browsers tested:
  Add OK or FAIL, along with the version, after other browsers where you
have tested this issue:
     Safari: OK Version 9.1 (11601.5.17.1)
    Firefox: OK 46.0
         IE: Not tested

What steps will reproduce the problem?
(1) Access http://jsbin.com/wupahubazu/1/edit?html,css,output

What is the expected result?
The www.example.com content should be rendered and visible in the iframe on right hand side.

What happens instead?
The www.example.com is loaded into the iframe, but somehow it's not visible.


Please provide any additional information below. Attach a screenshot if
possible.

We found this issue in another project, where the iframe's content is bigger than it's size so that there are also scrollbars. When the iframe doesn't work, i.e. content invisible case, the scrollbar is still visible, but not scrollable with mouse scroll wheel. It could only be scrolled by clicking and dragging the scrollbar thumb.
 
Cc: rnimmagadda@chromium.org
Labels: Needs-Feedback
@gerryg: Observing the same behavior across all browsers (Chrome, Firefox & Safari)

Screen-recording is attached.

The same behavior is observed since Chrome Beginning Versions (M30 - 30.0.1549.0) to Latest Canary (52.0.2730.0)

Could you please provide us the screen-shot of the issue, which would help us in triaging it further.

Thank you.
Screen Shot 2016-05-11 at 10.12.53 AM.png
219 KB View Download

Comment 2 by gerryg@google.com, May 11 2016

@rnimmagadda, not sure if I made it clear enough or not.

The issue could only be reproduced in Chrome on Mac. Chrome on Linux works as expected.

Screen shots attached for the actual and expected case. (Both are produced via Chrome on Mac.)
Screen shot actual.png
373 KB View Download
Screen shot expected.png
422 KB View Download
Project Member

Comment 3 by sheriffbot@chromium.org, May 11 2016

Labels: -Needs-Feedback Needs-Review
Owner: rnimmagadda@chromium.org
Thank you for providing more feedback. Adding requester "rnimmagadda@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: kavvaru@chromium.org
Labels: -Needs-Review Needs-Feedback OS-Mac Pri-2 Type-Bug
Owner: ----
Unable to reproduce the issue on windows 7, Linux Ubuntu 14.04 and Mac 10.11.4 using chrome version stable 50.0.2661.102 and beta 51.0.2704.47.
Able to see the www.example.com content without any issues.
Please find the attached screen cast for the same.

Request you please try the issue by upgrading chrome to latest beta and update the thread if the issue still persists.

Thanks,

610906.mp4
452 KB Download
Unable to repro this issue on MAC (10.11.4) for Google Chrome Beta Version - 51.0.2704.47

Screen-recording is attached.

@gerryg: Could you please perform the steps mentioned beneath and let us know your observations.

1. Update your Google Chrome to Latest Beta Version - 51.0.2704.47
2. Re-test the same on a clean profile [chrome://settings -> Add Person]

Thank you.
610906.mov
21.8 MB Download
gerryg@, are you also using the Mac OSX version 10.11.4 ?

Comment 7 by gerryg@google.com, May 17 2016

I've upgraded my Chrome to Version 51.0.2704.47 beta (64-bit). Yes, I'm using Mac OSX Version 10.11.4 (15E65).

I can still reproduce the issue in a clean Profile. I've also attached the screencast for the issue.

Is it possible for me to show it to someone from Chrome team in person in MTV?

Chrome iframe issue.mov
27.6 MB Download
Cc: pucchakayala@chromium.org
@gerryg: Yes, could you please show it to someone in MTV.

Updated the same here as well - https://buganizer.corp.google.com/u/0/issues/28678040

Thank you.
Labels: -Needs-Feedback TE-NeedsTriageFromMTV
Owner: rnimmagadda@chromium.org
Status: Assigned (was: Unconfirmed)
Assigning this to rnimmagadda@ - can you take care of follow up or further investigation?
Components: UI>HighDPI
Labels: -TE-NeedsTriageFromMTV Needs-Bisect
Owner: pucchakayala@chromium.org
Able to reproduce this issue on Mac OSX 10.11.5 [Retina] on the following builds:
50.0.2661.102
51.0.2704.54	
52.0.2741.0	

Seems like a Retina specific issue as this is not seen on other mac books.

I will check the regression information and update the bug soon.
Cc: erikc...@chromium.org pinkerton@chromium.org groby@chromium.org
Labels: -Needs-Bisect
Owner: ----
Status: Untriaged (was: Assigned)
Not a regression issue as this is seen on old chrome versions as well like below:
49.0.2623.87
46.0.2490.86

Looping in few Mac OSX developers so that this bug can be assigned correctly.

Marking it with the latest Milestone label as this is not a regression issue. Please feel free to change it if needed.

Comment 13 by gerryg@google.com, May 20 2016

Thanks for confirming this.

Besides figuring the root cause and fixing it inside Chrome, please also let us know if there is an easy workaround we could do in our web page so that we could solve this issue faster for our impacted users.

Waiting for most of the impacted Chrome users to upgrade to the future fixed Chrome version would take a longer time I guess.
Owner: ccameron@chromium.org
Status: Assigned (was: Untriaged)
Hm, retina-specific. ccameron@, can you help investigate or route?
Has anyone tried this on a Chromebook Pixel -- it may not be Mac specific.
Components: Blink>Compositing
Labels: -OS-Mac OS-All
Owner: ----
The buganizer report says this happens on a Nexus device. This means it is almost certainly high-dpi, and not related to Mac.

Un-assign me. Adding Blink>Compositing as a guess as to where to start.
Status: Untriaged (was: Assigned)
Cc: candr...@chromium.org rsgav...@chromium.org
As per #12 , In Desktop the bug is reproducible in Mac retina and is a non regression.
Requesting Geetha to try and repro in Chrome Pixel. Also looping to few clank folks yo try in Nexus devices. 
 

Comment 19 by k...@google.com, May 24 2016

Cc: sshruthi@chromium.org chrishtr@chromium.org
Labels: -Pri-2 ReleaseBlock-Stable OS-Android OS-Mac Pri-0
Owner: dglazkov@chromium.org
Status: Assigned (was: Untriaged)
Adding some folks for visibility, and sending to Dimitri since this is urgent.
Android :
Can reproduce the issue on Nexus7 / LRX22L, Nexus 5 / MOB30M on M50, M51 and M52 Builds. Cannot provide the exact bisect since the issue can be seen on old builds like 38.0.2125.509

1.Issue is also obserevd with Opera Browser on Android platform.
2.Works as per expected behavior with firefox ,UC Browser and Dolphin on Android platform.

Comment 21 by gerryg@google.com, May 24 2016

I'm not sure how this "Restrict-View-Google" type works. We have a Google internal bug for this, can I put the Google internal bug ID to this chromium bug? The internal bug has some useful information as well.
Android :
Screenshots attached of both chrome and Firefox browsers.
Iframe not visible on Chrome.png
210 KB View Download
Iframe visible on firefox .png
234 KB View Download
Labels: -Pri-0 -ReleaseBlock-Stable Pri-1
Dropping down the priority, since this isn't a recent regression.  Also removing the ReleaseBlock-Stable since this issue has been present since M46.  
Cc: dglazkov@chromium.org
Owner: vollick@chromium.org
Reproduces on all platforms with --enable-prefer-compositing-to-lcd-text
Labels: -Restrict-View-Google
Before resizing, the iframe scrolls overflow. After resizing, it no longer
scrolls overflow. I think there is a missing paint invalidation when that
happens.
I think the bug is that forceRecomputePaintInvalidationRectsIncludingNonCompositingDescendants does not
recurse into subframes.
Removing 'float: left;' from the iframe's style seems to avoid the bug.

gerryg@google.com, can this be a feasible workaround for you?
Cc: sunilk@google.com parags@google.com prakhar@google.com manish@google.com sugeeti@google.com
ccing bunch of Adwords folks so they can track the progress of this bug.
Owner: chrishtr@chromium.org
Ian, stealing this bug because it is paint invalidation.

Comment 32 Deleted

Another workaround is to force-composite the iframe with will-change: transform
on it.

Comment 34 by gerryg@google.com, May 24 2016

Hi Chromium folks,

Please note that the reproducing example I provided for this bug doesn't have the exact same configuration as the Buganizer bug http://b/28678040. For the original internal bug, we do have an iframe inside another iframe, but we don't do "float: left" and dynamic side changing actually.

I assume the internal bug is also caused by the potential root cause you have identified. But it would be great to make sure the final fix could fix everything.
Thanks for the note. I do not think float:left is required for the bug, as
you mentioned.
Labels: Restrict-View-Google

Comment 37 by parags@google.com, May 24 2016

Hello Chromium folks,

Please tell us what all Browser versions were impacted and for what time duration. This will help our team figure out which users were impacted.

Thank you
I think this bug has been live in Chrome for about 1 year.

Comment 39 by gerryg@google.com, May 24 2016

chrishtr@, comment 20 also mentioned the issue could be reproduced in Opera.

Do you have any idea if it's caused by the same rendering engine issue or what? We need this knowledge to know the exact scope for our workaround and impacted users.

BTW, as mentioned in the internal bug, we have developed a workaround for this. We set "display: none" to the second level nested iframe, wait for 1 seconds, then set display to ''. It seems working.

If you have a better workaround we could apply, please let us know. Thanks.
Removing RVG, making this issue public and access easier.

[For those curious] There isn't anything in this issue that's particularly sensitive/ confidential (i.e. internal bug references aren't harmful).  The reason that it was there in the first place is that we have auto-rules to restrict Googler filed issues when attachments are present in the comments, as a gross means to prevent leaks.
Labels: -Restrict-View-Google allpublic

Comment 42 by gerryg@google.com, May 24 2016

Sorry, correction on our workaround:
After DOMContentLoaded event, we wait for 1 second, set display to 'none', then wait for 10 milliseconds, then set display to ''. The code is like this:

var iframe = document.querySelector('#iframeId');
setTimeout(function() {
  iframe.style.display = 'none';
  setTimeout(function() {
      iframe.style.display = '';
      iframe.style.width = '99%';
  }, 10);
}, 1000);

The "iframe.style.width = '99%';" is for fixing another sizing issue. I don't think it does anything for workarounding this bug. I just keep mentioning it there in case it indeed does something for the bug.
gerryg@ does the workaround in #33 ('will-change: transform') work for you?
Cc: -erikc...@chromium.org
Re: comment #33, indeed. will-change: transform seems much simpler, please try that :)
Able to reproduce this issue on Win 10 [53.0.2747.0 & 50.0.2661.102] HiDPI machine, CrOS Pixel [50.0.2661.104] & CrOS Samus [53.0.2746.0]
Re question about Opera: Opera uses Blink, so it makes sense it would have the
same bug. I don't expect WebKit-based browsers like Safari to be affected.
FYI I did not actually test the will-change: transform workaround.

Further testing leads me to conclude there is something deeper about floats in
the example in this bug, but I do think that the cause in comment 28 is still
likely correct if no floats are present.
#47, this is working fine on Safari Version 9.1.1 - Mac OS X 10.11.5 [Retina]
Screen Shot 2016-05-24 at 1.46.44 PM.png
422 KB View Download
The problem with floats is due to a chicken-egg problem in compositing/layout: whether a PaintLayer is
self-painting may depend on whether it is composited (and this is true for LayoutPart), yet shouldPaint for
a floating object is updated in layout, before compositing has a chance to decide it's not compositing after
all.

Therefore we decide to set shouldPaint on a FloatingObject to false because the iframe is "self-painting",
but then compositing decides the opposite. Subsequent painting obeys the shouldPaint bit.

Looking into how to fix this.
Retried the test in comment #32 and didn't reproduce. Perhaps #32 was because I tested with a wrong version of the test. Please ignore it.
I think the bug was perhaps introduced in this CL:

https://codereview.chromium.org/302083002
It looks very difficult to fix the chicken-egg issue cleanly (without what amounts to SPv2). I'm attempting what amounts to a revert of https://codereview.chromium.org/302083002 as I'm not sure it is really needed.

(https://codereview.chromium.org/2013633002 for those who want to follow along)

Also, Xianzhu and I concluded that there appears to be no paint invalidation bug after
all (though some code cleanup would be nice; we're pursuing that). Therefore, I don't know why this bug would have happened without float:left as the bug reporters mentioned
here and in b/28678040. Going to follow up on that question.
Summary: iframes that are floating may not be re-painted if their self-painting layer status changes (was: Chrome on Mac sometimes doesn't make iframe content visible.)

Comment 55 by gerryg@google.com, May 25 2016

Could we try to dig deeper on every clue we have on hand?

I provided two links in my very original post, one works and one doesn't work. The only difference between the two is the initial width. Both of them have "float: left;". That means we should focus on why a different initial width could cause different behavior. I didn't get it why "float: left;" becomes the focus.

chrishtr@, could you please explain more?
The difference between your examples is that the larger width leads to the iframe
not being composited in the first frame, thus avoiding the change of self-painting
status due to losing a composited backing when it changes size. I am quite sure I know the
root cause.

This is why adding will-change:transform will avoid the issue for you BTW, since
that forces a composited layer. Note that it may change paint order in some corner cases since
will-change: transform induces a stacking context for the element, so you need to be a bit careful about blindly rolling that out.

(Aside: my explanations of the root causes are very technical and not meant to be
understood by anyone except those who know a lot about how Blink works.)
Project Member

Comment 58 by bugdroid1@chromium.org, May 26 2016

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

commit 3e010d5a156f8420a7deaae243b9c9323517aef1
Author: chrishtr <chrishtr@chromium.org>
Date: Thu May 26 21:33:25 2016

Add a hack to set shouldPaint to true for force-composited iframes.

This works around a FCB chicken-egg problem in which we are unable to properly
start painting floating iframes once they stop being composited.

BUG= 610906 

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

[add] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame-expected.html
[add] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame.html
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/layout/FloatingObjects.h
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/paint/BlockFlowPainter.cpp
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/3e010d5a156f8420a7deaae243b9c9323517aef1/third_party/WebKit/Source/core/paint/PaintLayer.h

Labels: Merge-Request-52
Labels: M-52

Comment 61 by tin...@google.com, May 28 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Please have a the CL merged by EOD today(05/31), so it gets picked up for Beta Promotion scheduled on 06/02.
Project Member

Comment 63 by bugdroid1@chromium.org, May 31 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0bb7b4a298d2e8128dea9d35f70c90860d4406f5

commit 0bb7b4a298d2e8128dea9d35f70c90860d4406f5
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Tue May 31 19:56:49 2016

Refactor to simplify how layerType is stored on PaintLayers.

Instead of caching it on the PaintLayer, delegate to the LayoutBoxModelObject
to compute it on demand. Also remove a useless setter for it.

BUG= 610906 

Review-Url: https://codereview.chromium.org/2002153007
Cr-Commit-Position: refs/heads/master@{#396096}
(cherry picked from commit 4a1368f4a8cbc725bd4be8e216fc9f717f7b9f8d)

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

Cr-Commit-Position: refs/branch-heads/2743@{#142}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/0bb7b4a298d2e8128dea9d35f70c90860d4406f5/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/0bb7b4a298d2e8128dea9d35f70c90860d4406f5/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h
[modify] https://crrev.com/0bb7b4a298d2e8128dea9d35f70c90860d4406f5/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/0bb7b4a298d2e8128dea9d35f70c90860d4406f5/third_party/WebKit/Source/core/paint/PaintLayer.h

Project Member

Comment 64 by bugdroid1@chromium.org, May 31 2016

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

commit 4ceaf2bd78a36291788f4291988611825ebbb84c
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Tue May 31 21:25:13 2016

Add a hack to set shouldPaint to true for force-composited iframes.

This works around a FCB chicken-egg problem in which we are unable to properly
start painting floating iframes once they stop being composited.

BUG= 610906 

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

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

Cr-Commit-Position: refs/branch-heads/2743@{#151}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[add] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame-expected.html
[add] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame.html
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/layout/FloatingObjects.h
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/paint/BlockFlowPainter.cpp
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/4ceaf2bd78a36291788f4291988611825ebbb84c/third_party/WebKit/Source/core/paint/PaintLayer.h

Status: Fixed (was: Assigned)
Merged into the Chrome 51 beta branch. The change is also part of Chrome 52 canary. I verified the fix on Chrome 52 canary on Mac just now.
Labels: TE-Verified-M53 TE-Verified-53.0.2754.0
Tested the issue on Mac Retina 10.11.5 using chrome version 53.0.2754.0.The www.example.com content is rendered fine.Please find the attached screen shot for the same.

Adding TE-Verified label.

Thanks,
610906.png
451 KB View Download
Correction to comment 65: I merged it into Chrome 52 (which is about to be beta), and it's also in Chrome 53.
This is working fine on Mac OS X 10.11.5 Retina - 53.0.2754.0 [Canary] & 52.0.2743.21 [Dev]
Screen Shot 2016-06-01 at 11.40.39 AM.png
448 KB View Download

Comment 69 by gerryg@google.com, Jun 1 2016

Hi, chrishtr@, I'm trying to use the "will-change: tranform" workaround.

Just to confirm, you want it to be applied to the second level nested <iframe> element, right?

I tried that. I use a Javascript to set iframe.style.willChange = 'transform' in the DOMContentLoaded event handler. It doesn't work, i.e. iframe is still invisible.

Do we have to use style attribute like 'style="will-change: transform"' on the <iframe> element?

Will it also work if we add this to a CSS file which is loaded in the <head> of the page? Like this:
iframe {
  /* other css properties */
  will-change: transform;
}
Adding a CSS style sheet with 

iframe {
  /* other css properties */
  will-change: transform;
}

should work, does it?

The other approaches should also work, but maybe there is a bug in your implementation?
Cc: sigbjo...@opera.com haraken@chromium.org wangxianzhu@chromium.org
 Issue 627152  has been merged into this issue.
Project Member

Comment 72 by bugdroid1@chromium.org, Jul 20 2016

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

commit e080ea95241ea911fa5b97e27b18308ed4d8c1ae
Author: wkorman <wkorman@chromium.org>
Date: Wed Jul 20 04:25:02 2016

Revert "Add a hack to set shouldPaint to true for force-composited iframes."

Reason: Exploring as possible cause of compositing/paint time performance
regression.

Original change description:

This works around a FCB chicken-egg problem in which we are unable to properly
start painting floating iframes once they stop being composited.

https://codereview.chromium.org/2009353003

BUG= 610906 ,619710

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

[delete] https://crrev.com/0444c447e813e8fb5931bb0cd141f8f2168ed392/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame-expected.html
[delete] https://crrev.com/0444c447e813e8fb5931bb0cd141f8f2168ed392/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame.html
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/layout/FloatingObjects.h
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/paint/BlockFlowPainter.cpp
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/e080ea95241ea911fa5b97e27b18308ed4d8c1ae/third_party/WebKit/Source/core/paint/PaintLayer.h

Project Member

Comment 73 by bugdroid1@chromium.org, Aug 23 2016

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

commit 77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36
Author: wkorman <wkorman@chromium.org>
Date: Tue Aug 23 02:53:01 2016

Add a hack to set shouldPaint to true for force-composited iframes.

This works around a FCB chicken-egg problem in which we are unable to
properly start painting floating iframes once they stop being composited.

Reland of original change http://crrev.com/2009353003 now that
we've reviewed performance without the patch.

BUG= 610906 ,619710
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
TBR=chrishtr

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

[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[add] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame-expected.html
[add] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/LayoutTests/compositing/iframes/floating-self-painting-frame.html
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/layout/FloatingObjects.h
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/paint/BlockFlowPainter.cpp
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/77f8e3dd7c2c7feb739b9918a2ecca94e7ad3e36/third_party/WebKit/Source/core/paint/PaintLayer.h

Sign in to add a comment