Bug 84251

Summary: [shadow] needs style recalculation by changing applyAuthorStyles dynamically
Product: WebKit Reporter: Takashi Sakamoto <tasak>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: morrita, tasak, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 63601    
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Takashi Sakamoto
Reported 2012-04-18 10:05:12 PDT
Currently applyAuthorStyles API doesn't cause style recalculation. Only when attaching elements (i.e. when creating renderer), applyAuthorStyles works. It should cause style recalculation.
Attachments
Patch (6.01 KB, patch)
2012-05-13 23:34 PDT, Takashi Sakamoto
no flags
Patch (5.99 KB, patch)
2012-05-15 23:27 PDT, Takashi Sakamoto
no flags
Patch (7.08 KB, patch)
2012-05-18 04:13 PDT, Takashi Sakamoto
no flags
Takashi Sakamoto
Comment 1 2012-05-13 23:34:29 PDT
Hajime Morrita
Comment 2 2012-05-15 22:22:28 PDT
Comment on attachment 141647 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=141647&action=review In addition to reftests, It would be desired to check style value using widow.getComputedStyle() before and after the second change. That allows you to ensure that the value is actually changed dynamically. > Source/WebCore/dom/ShadowRoot.cpp:201 > + owner()->needsStyleRecalc(); needsStyleRecalc() doesn't have any side effect. It looks what you want is setNeedsReattachHostChildrenAndShadow(). > LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:94 > + shadowRoot.applyAuthorStyles = true; You need to force layout here (using offsetLeft or getComputedStyle like thing) > LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:108 > + shadowRoot.applyAuthorStyles = false; Ditto.
Takashi Sakamoto
Comment 3 2012-05-15 23:27:57 PDT
Takashi Sakamoto
Comment 4 2012-05-18 01:35:09 PDT
(In reply to comment #2) > (From update of attachment 141647 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=141647&action=review > > In addition to reftests, It would be desired to check style value using widow.getComputedStyle() > before and after the second change. That allows you to ensure that the value is actually changed dynamically. > > > Source/WebCore/dom/ShadowRoot.cpp:201 > > + owner()->needsStyleRecalc(); > > needsStyleRecalc() doesn't have any side effect. > It looks what you want is setNeedsReattachHostChildrenAndShadow(). Done. > > LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:94 > > + shadowRoot.applyAuthorStyles = true; > > You need to force layout here (using offsetLeft or getComputedStyle like thing) > > > LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html:108 > > + shadowRoot.applyAuthorStyles = false; > > Ditto. I see. I added "div.offsetLeft".
Takashi Sakamoto
Comment 5 2012-05-18 04:13:06 PDT
Takashi Sakamoto
Comment 6 2012-05-18 05:36:05 PDT
(In reply to comment #2) > (From update of attachment 141647 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=141647&action=review > > In addition to reftests, It would be desired to check style value using widow.getComputedStyle() > before and after the second change. That allows you to ensure that the value is actually changed dynamically. Done.
Hajime Morrita
Comment 7 2012-05-20 17:39:32 PDT
Comment on attachment 142682 [details] Patch Looks good.Thanks for the fix!
WebKit Review Bot
Comment 8 2012-05-20 17:49:17 PDT
Comment on attachment 142682 [details] Patch Clearing flags on attachment: 142682 Committed r117716: <http://trac.webkit.org/changeset/117716>
WebKit Review Bot
Comment 9 2012-05-20 17:49:22 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.