Summary: | Child elements aren't fully repainted when setting opacity from script | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mihai Tica <mitica> | ||||||||||||
Component: | CSS | Assignee: | Nobody <webkit-unassigned> | ||||||||||||
Status: | NEW --- | ||||||||||||||
Severity: | Normal | CC: | allan.jensen, bfulgham, buildbot, clopez, commit-queue, dbates, eocanha, esprehn+autocc, glenn, gyuyoung.kim, kondapallykalyan, macpherson, menard, mihnea, rniwa, simon.fraser, webkit-bug-importer, WebkitBugTracker | ||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Attachments: |
|
Description
Mihai Tica
2014-02-28 05:35:42 PST
Created attachment 225454 [details]
Sample reproducing the issue
Created attachment 228046 [details]
Patch
Comment on attachment 228046 [details] Patch Attachment 228046 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5131992635015168 New failing tests: fast/repaint/blend-mode-isolate-stacking-context.html Created attachment 228052 [details]
Archive of layout-test-results from webkit-ews-14 for mac-mountainlion-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-14 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Comment on attachment 228046 [details] Patch Attachment 228046 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/5405030148472832 New failing tests: fast/repaint/blend-mode-isolate-stacking-context.html Created attachment 228059 [details]
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Comment on attachment 228046 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=228046&action=review > Source/WebCore/css/StyleResolver.cpp:1143 > + style.setEffectiveOpacity(style.opacity() * parentStyle.opacity()); Is "parentStyle" the correct one to be getting opacity from in all cases? Comment on attachment 228046 [details] Patch Attachment 228046 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/4701668587339776 New failing tests: fast/repaint/blend-mode-isolate-stacking-context.html Created attachment 228069 [details]
Archive of layout-test-results from webkit-ews-07 for mac-mountainlion
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-07 Port: mac-mountainlion Platform: Mac OS X 10.8.5
(In reply to comment #7) > (From update of attachment 228046 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=228046&action=review > > > Source/WebCore/css/StyleResolver.cpp:1143 > > + style.setEffectiveOpacity(style.opacity() * parentStyle.opacity()); > > Is "parentStyle" the correct one to be getting opacity from in all cases? Thanks for pointing this out, Simon. It shouldn't be parentStyle.opacity(), but parentStyle.effectiveOpacity(), which is the field that "accumulates" opacity and represents the combined opacity() of all the ancestors. (In reply to comment #10) > (In reply to comment #7) > > > (From update of attachment 228046 [details] [details]) > > View in context: https://bugs.webkit.org/attachment.cgi?id=228046&action=review > > > > > Source/WebCore/css/StyleResolver.cpp:1143 > > > + style.setEffectiveOpacity(style.opacity() * parentStyle.opacity()); > > > > Is "parentStyle" the correct one to be getting opacity from in all cases? > > Thanks for pointing this out, Simon. It shouldn't be parentStyle.opacity(), but parentStyle.effectiveOpacity(), which is the field that "accumulates" opacity and represents the combined opacity() of all the ancestors. Not just that, but I'm not convinced that the parent element is always the one you multiply style from (assuming that parentStyle is really the parent element's style). E.g. in some configurations of positioning and opacity. Comment on attachment 228046 [details]
Patch
Seems from the comments that Simon has found a bug in this patch, so I'm removing this from request queue.
Chrome and Firefox agree on the behavior here, but Safari seems to miss the final element. |