RESOLVED FIXED 138122
Transform-style should not kill position:fixed
https://bugs.webkit.org/show_bug.cgi?id=138122
Summary Transform-style should not kill position:fixed
Simon Fraser (smfr)
Reported 2014-10-27 21:25:22 PDT
Created attachment 240523 [details] Testcase Attached testase scrolls incorrectly.
Attachments
Testcase (711 bytes, text/html)
2014-10-27 21:25 PDT, Simon Fraser (smfr)
no flags
Standalone testcase (1.04 KB, text/html)
2014-12-09 22:35 PST, Simon Fraser (smfr)
no flags
Patch (50.16 KB, patch)
2014-12-11 14:34 PST, Simon Fraser (smfr)
buildbot: commit-queue-
Patch (50.16 KB, patch)
2014-12-11 14:54 PST, Simon Fraser (smfr)
dino: review+
buildbot: commit-queue-
Archive of layout-test-results from ews106 for mac-mountainlion-wk2 (509.89 KB, application/zip)
2014-12-11 15:46 PST, Build Bot
no flags
Archive of layout-test-results from ews104 for mac-mountainlion-wk2 (512.00 KB, application/zip)
2014-12-11 15:49 PST, Build Bot
no flags
Simon Fraser (smfr)
Comment 1 2014-12-09 22:35:16 PST
Created attachment 242989 [details] Standalone testcase
Simon Fraser (smfr)
Comment 2 2014-12-11 10:49:20 PST
We're generally confused about what hasTransform means. See https://www.w3.org/Bugs/Public/show_bug.cgi?id=27566
Simon Fraser (smfr)
Comment 3 2014-12-11 14:34:22 PST
Simon Fraser (smfr)
Comment 4 2014-12-11 14:54:36 PST
Dean Jackson
Comment 5 2014-12-11 14:59:50 PST
Comment on attachment 243147 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=243147&action=review > Source/WebCore/ChangeLog:9 > + Various bits of rendering code checked RenderObject::hasTransform() for various > + reasons. Confusingly, this meant "has transform, or preserve-3d, or perspective". First sentence sense make no. > Source/WebCore/rendering/RenderBox.cpp:-1921 > - bool hasTransform = hasLayer() && layer()->transform(); You're now calling hasTransform() three times in this method. I'm not sure removing the local variable is worth it. > Source/WebCore/rendering/RenderObject.cpp:1651 > - return (hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->transform()) || (containerObject && containerObject->style().hasPerspective()); > + return hasTransform() || (containerObject && containerObject->style().hasPerspective()); Why did we do it this way originally? ie. why were we going to the layer rather than looking at the style (the new way)?
Dean Jackson
Comment 6 2014-12-11 15:00:30 PST
Comment on attachment 243150 [details] Patch Already reviewed the first one. Although my first comment was wrong.
Dean Jackson
Comment 7 2014-12-11 15:01:02 PST
(In reply to comment #5) > Comment on attachment 243147 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=243147&action=review > > > Source/WebCore/ChangeLog:9 > > + Various bits of rendering code checked RenderObject::hasTransform() for various > > + reasons. Confusingly, this meant "has transform, or preserve-3d, or perspective". > > First sentence sense make no. Ignore this comment. I read it again and it makes sense now :|
Simon Fraser (smfr)
Comment 8 2014-12-11 15:04:14 PST
(In reply to comment #5) > Comment on attachment 243147 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=243147&action=review > > > Source/WebCore/ChangeLog:9 > > + Various bits of rendering code checked RenderObject::hasTransform() for various > > + reasons. Confusingly, this meant "has transform, or preserve-3d, or perspective". > > First sentence sense make no. > > > Source/WebCore/rendering/RenderBox.cpp:-1921 > > - bool hasTransform = hasLayer() && layer()->transform(); > > You're now calling hasTransform() three times in this method. I'm not sure > removing the local variable is worth it. Actually only once. It's called twice in another function, but only once in each code path. > > Source/WebCore/rendering/RenderObject.cpp:1651 > > - return (hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->transform()) || (containerObject && containerObject->style().hasPerspective()); > > + return hasTransform() || (containerObject && containerObject->style().hasPerspective()); > > Why did we do it this way originally? ie. why were we going to the layer > rather than looking at the style (the new way)? I think we could have done style().hasTransform(), but the hasLayer() check is a bit check, so cheaper.
Simon Fraser (smfr)
Comment 9 2014-12-11 15:25:51 PST
*** Bug 138123 has been marked as a duplicate of this bug. ***
Build Bot
Comment 10 2014-12-11 15:46:06 PST
Comment on attachment 243147 [details] Patch Attachment 243147 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6226423039655936 New failing tests: compositing/tiling/rotated-tiled-preserve3d-clamped.html
Build Bot
Comment 11 2014-12-11 15:46:08 PST
Created attachment 243159 [details] Archive of layout-test-results from ews106 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews106 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 12 2014-12-11 15:49:55 PST
Comment on attachment 243150 [details] Patch Attachment 243150 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5174337514504192 New failing tests: compositing/tiling/rotated-tiled-preserve3d-clamped.html
Build Bot
Comment 13 2014-12-11 15:49:58 PST
Created attachment 243160 [details] Archive of layout-test-results from ews104 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Simon Fraser (smfr)
Comment 14 2014-12-11 17:59:10 PST
Note You need to log in before you can comment on or make changes to this bug.