RESOLVED FIXED 125565
Frame's composited content is visible when the frame has visibility: hidden.
https://bugs.webkit.org/show_bug.cgi?id=125565
Summary Frame's composited content is visible when the frame has visibility: hidden.
j5726
Reported 2013-12-11 04:47:25 PST
If a page contains an iframe, and there're some elements in the iframe been set as -webkit-transform: translate3d(0px, 0px, 0) . When set the iframe as visibility: hidden , It can't be hidden normally. visibility:hidden is invalid on an iframe with elements been set as -webkit-transform: translate3d
Attachments
the iframe visibility:hidden test case (900 bytes, application/zip)
2013-12-11 04:53 PST, j5726
no flags
Patch (1.74 KB, patch)
2014-02-28 02:35 PST, Manish Gurnaney
no flags
Patch (1.78 KB, patch)
2014-03-04 18:58 PST, Manish Gurnaney
no flags
Patch (28.65 KB, patch)
2014-03-17 20:39 PDT, Manish Gurnaney
no flags
Archive of layout-test-results from webkit-ews-13 for mac-mountainlion-wk2 (530.58 KB, application/zip)
2014-03-17 21:39 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion (536.63 KB, application/zip)
2014-03-17 22:06 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion (535.95 KB, application/zip)
2014-03-17 23:10 PDT, Build Bot
no flags
Patch (52.69 KB, patch)
2014-03-18 04:12 PDT, Manish Gurnaney
no flags
Archive of layout-test-results from webkit-ews-05 for mac-mountainlion (563.01 KB, application/zip)
2014-03-18 04:43 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2 (527.80 KB, application/zip)
2014-03-18 05:21 PDT, Build Bot
no flags
Patch (52.44 KB, patch)
2014-03-18 05:59 PDT, Manish Gurnaney
simon.fraser: review-
simon.fraser: commit-queue-
Patch (52.36 KB, patch)
2014-03-18 23:03 PDT, Manish Gurnaney
buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-16 for mac-mountainlion-wk2 (552.82 KB, application/zip)
2014-03-19 00:15 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-08 for mac-mountainlion (547.41 KB, application/zip)
2014-03-19 00:35 PDT, Build Bot
no flags
Patch (65.89 KB, patch)
2014-03-21 02:19 PDT, Manish Gurnaney
no flags
Patch (8.59 KB, patch)
2014-04-04 08:35 PDT, Manish Gurnaney
no flags
Archive of layout-test-results from webkit-ews-08 for mac-mountainlion (556.59 KB, application/zip)
2014-04-04 10:57 PDT, Build Bot
no flags
Patch (8.59 KB, patch)
2014-07-11 00:24 PDT, Manish Gurnaney
darin: review+
buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-08 for mac-mountainlion (567.79 KB, application/zip)
2014-07-11 01:49 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion (567.33 KB, application/zip)
2014-07-11 02:49 PDT, Build Bot
no flags
Test reduction (203 bytes, text/html)
2017-05-25 10:21 PDT, zalan
no flags
Patch (9.79 KB, patch)
2017-05-25 16:31 PDT, zalan
no flags
Archive of layout-test-results from ews126 for ios-simulator-wk2 (11.66 MB, application/zip)
2017-05-25 17:57 PDT, Build Bot
no flags
Patch (10.11 KB, patch)
2017-05-25 19:09 PDT, zalan
no flags
Patch (10.10 KB, patch)
2017-05-25 20:15 PDT, zalan
no flags
j5726
Comment 1 2013-12-11 04:53:16 PST
Created attachment 218950 [details] the iframe visibility:hidden test case If a page contains an iframe, and there're some elements in the iframe been set as -webkit-transform: translate3d(0px, 0px, 0) . When set the iframe as visibility: hidden , It can't be hidden normally.
Manish Gurnaney
Comment 2 2014-02-28 02:35:11 PST
Simon Fraser (smfr)
Comment 3 2014-02-28 11:08:31 PST
Comment on attachment 225450 [details] Patch Very bizarre patch. Why non-debug only? Not painting isn't the correct solution either; the actual bug here is that the WinCairo compositing code doesn't respect visibility:hidden for iframes (although maybe that's an issue with other platforms). Does this work on Mac, or iOS?
Manish Gurnaney
Comment 4 2014-03-03 00:49:28 PST
Hi Simon, I have checked the issue on Mac, Linux and Windows. Issues is getting reproducible in Mac(Safari and Chrome), Linux(Efl Port), Windows (WinCG, Safari and Chrome). So the issues is not specific to WinCG. Also I have observed that issue is happening in case of Webkit transform property that too when only 3d properties are given or when RenderLayerBacking is getting created. When we paint any element we do check for the Visibility of the element. Hence I am checking here in RenderLayerBacking itself. --Please Suggest
Manish Gurnaney
Comment 5 2014-03-04 18:58:08 PST
Manish Gurnaney
Comment 6 2014-03-10 09:17:06 PDT
Hi Simon, Can you please review the updated patch. Regards, Manish R Gurnaney
zalan
Comment 7 2014-03-16 12:21:18 PDT
Comment on attachment 225841 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=225841&action=review > Source/WebCore/rendering/RenderLayerBacking.cpp:2204 > + return; It doesnt make much sense to create compositing for something that we never display. I think we should make a decision earlier so that an iframe with visibility: hidden would not be creating a compositing layer. If we manage to not create this compositing layer, existing code will probably take care of the not-painting part.
Manish Gurnaney
Comment 8 2014-03-17 20:39:52 PDT
Build Bot
Comment 9 2014-03-17 21:39:56 PDT
Comment on attachment 227005 [details] Patch Attachment 227005 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6589632393248768 New failing tests: fast/events/mouseover-mouseout2.html compositing/iframes/iframe-visibility-hidden.html compositing/visibility/hidden-iframe.html
Build Bot
Comment 10 2014-03-17 21:39:59 PDT
Created attachment 227009 [details] Archive of layout-test-results from webkit-ews-13 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-13 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 11 2014-03-17 22:06:45 PDT
Comment on attachment 227005 [details] Patch Attachment 227005 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6597531911847936 New failing tests: fast/events/mouseover-mouseout2.html compositing/iframes/iframe-visibility-hidden.html compositing/visibility/hidden-iframe.html
Build Bot
Comment 12 2014-03-17 22:06:49 PDT
Created attachment 227012 [details] Archive of layout-test-results from webkit-ews-04 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-04 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 13 2014-03-17 23:10:52 PDT
Comment on attachment 227005 [details] Patch Attachment 227005 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/5141360831102976 New failing tests: fast/events/mouseover-mouseout2.html compositing/iframes/iframe-visibility-hidden.html compositing/visibility/hidden-iframe.html
Build Bot
Comment 14 2014-03-17 23:10:58 PDT
Created attachment 227014 [details] Archive of layout-test-results from webkit-ews-01 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-01 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Manish Gurnaney
Comment 15 2014-03-18 04:12:50 PDT
Build Bot
Comment 16 2014-03-18 04:43:24 PDT
Comment on attachment 227030 [details] Patch Attachment 227030 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6495959156523008 New failing tests: compositing/iframes/iframe-visibility-hidden.html
Build Bot
Comment 17 2014-03-18 04:43:28 PDT
Created attachment 227035 [details] Archive of layout-test-results from webkit-ews-05 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-05 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 18 2014-03-18 05:21:24 PDT
Comment on attachment 227030 [details] Patch Attachment 227030 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5211600726261760 New failing tests: media/W3C/audio/canPlayType/canPlayType_application_octet_stream.html compositing/iframes/iframe-visibility-hidden.html
Build Bot
Comment 19 2014-03-18 05:21:28 PDT
Created attachment 227040 [details] Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-10 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Manish Gurnaney
Comment 20 2014-03-18 05:59:47 PDT
Simon Fraser (smfr)
Comment 21 2014-03-18 10:24:18 PDT
Comment on attachment 227042 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=227042&action=review > Source/WebCore/rendering/RenderIFrame.cpp:66 > bool RenderIFrame::requiresLayer() const > { > - return RenderFrameBase::requiresLayer() || style().resize() != RESIZE_NONE; > + return (style().visibility() == VISIBLE || style().hasOutOfFlowPosition()) > + && (RenderFrameBase::requiresLayer() || style().resize() != RESIZE_NONE); > } This is the wrong place. This is about RenderLayer creation, not compositing (GraphicsLayer) creation. RenderLayerCompositor::requiresCompositingForFrame() is the one you should change.
Manish Gurnaney
Comment 22 2014-03-18 23:03:50 PDT
Build Bot
Comment 23 2014-03-19 00:12:40 PDT
Comment on attachment 227156 [details] Patch Attachment 227156 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5917214460870656 New failing tests: compositing/iframes/iframe-visibility-hidden.html
Build Bot
Comment 24 2014-03-19 00:15:54 PDT
Created attachment 227164 [details] Archive of layout-test-results from webkit-ews-16 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-16 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 25 2014-03-19 00:34:32 PDT
Comment on attachment 227156 [details] Patch Attachment 227156 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/5733958943768576 New failing tests: compositing/iframes/iframe-visibility-hidden.html
Build Bot
Comment 26 2014-03-19 00:35:19 PDT
Created attachment 227166 [details] Archive of layout-test-results from webkit-ews-08 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-08 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Manish Gurnaney
Comment 27 2014-03-21 02:19:57 PDT
zalan
Comment 28 2014-03-25 08:41:48 PDT
Comment on attachment 227403 [details] Patch The code change looks good, however I'd create a ref test instead testing maybe even against a non-layer case. I'd also add a test case to check if dynamically removing the hidden property will bring the compositing content back.
Simon Fraser (smfr)
Comment 29 2014-03-29 14:15:08 PDT
Comment on attachment 227403 [details] Patch r- to add the tests that Zalan suggets.
Manish Gurnaney
Comment 30 2014-04-04 08:35:15 PDT
Build Bot
Comment 31 2014-04-04 10:57:22 PDT
Comment on attachment 228594 [details] Patch Attachment 228594 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/5326209713963008 New failing tests: compositing/iframes/iframe-visibility-change-dynamically.html
Build Bot
Comment 32 2014-04-04 10:57:26 PDT
Created attachment 228606 [details] Archive of layout-test-results from webkit-ews-08 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-08 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Manish Gurnaney
Comment 33 2014-07-11 00:24:33 PDT
Build Bot
Comment 34 2014-07-11 01:49:16 PDT
Comment on attachment 234746 [details] Patch Attachment 234746 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6095123725156352 New failing tests: compositing/iframes/iframe-visibility-change-dynamically.html
Build Bot
Comment 35 2014-07-11 01:49:20 PDT
Created attachment 234749 [details] Archive of layout-test-results from webkit-ews-08 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-08 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 36 2014-07-11 02:49:30 PDT
Comment on attachment 234746 [details] Patch Attachment 234746 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6329632160743424 New failing tests: compositing/iframes/iframe-visibility-change-dynamically.html
Build Bot
Comment 37 2014-07-11 02:49:34 PDT
Created attachment 234752 [details] Archive of layout-test-results from webkit-ews-04 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-04 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Darin Adler
Comment 38 2014-07-12 19:08:37 PDT
Comment on attachment 234746 [details] Patch Change looks OK, but the test did not pass on the EWS bot, so I am concerned.
Manish Gurnaney
Comment 39 2014-07-13 21:51:28 PDT
I have added two test cases in support of my Patch, where one test Cases is getting failed (iframe-visibility-change-dynamically.html). In this test cases Iframe is visibility is hidden initially, and dynamically we are changing visibility to visible. But this case is getting failed in mac as when visibility is changed, all the elements are rendered except the element having property (-webkit-transform: translate3d(0px, 0px, 0);) due to which test case is getting failed. I tried to run this test case on Webkit Gtk and efl port in both the cases it is getting passed. It is failing only in mac. I am not having mac machine with me, hence struggling to get the route cause of this issue. Can you please suggest what can be done in this case?
Tim Horton
Comment 40 2014-07-13 23:20:34 PDT
*** Bug 134774 has been marked as a duplicate of this bug. ***
Manish Gurnaney
Comment 41 2014-07-23 23:12:33 PDT
Hi Darin/Zalan, Can you please suggest what can be done in this case ? Manish
zalan
Comment 42 2017-05-25 10:21:15 PDT
Created attachment 311239 [details] Test reduction
zalan
Comment 43 2017-05-25 10:23:17 PDT
zalan
Comment 44 2017-05-25 14:24:00 PDT
anything that's a RenderWidget.
zalan
Comment 45 2017-05-25 16:31:56 PDT
Build Bot
Comment 46 2017-05-25 17:57:10 PDT
Comment on attachment 311313 [details] Patch Attachment 311313 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/3818142 New failing tests: compositing/visibility/iframe-visibility-hidden.html
Build Bot
Comment 47 2017-05-25 17:57:12 PDT
Created attachment 311321 [details] Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.12.5
zalan
Comment 48 2017-05-25 19:09:58 PDT
Simon Fraser (smfr)
Comment 49 2017-05-25 19:20:37 PDT
Comment on attachment 311325 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=311325&action=review > LayoutTests/compositing/visibility/iframe-visibility-hidden.html:14 > + document.getElementById("divToVisible").style.visibility = "visible"; But divToVisible (which is actually an iframe) is already visible? > LayoutTests/compositing/visibility/iframe-visibility-hidden.html:44 > +<iframe frameborder=no id=divToVisible onload="makeDivVisible()" width="80" height="80" style="visibility: visible" Should this start hidden?
zalan
Comment 50 2017-05-25 20:15:39 PDT
WebKit Commit Bot
Comment 51 2017-05-25 20:53:27 PDT
Comment on attachment 311328 [details] Patch Clearing flags on attachment: 311328 Committed r217472: <http://trac.webkit.org/changeset/217472>
WebKit Commit Bot
Comment 52 2017-05-25 20:53:30 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.