WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 33643
Window size changes are not propagated down the render tree
https://bugs.webkit.org/show_bug.cgi?id=33643
Summary
Window size changes are not propagated down the render tree
Nikolas Zimmermann
Reported
2010-01-13 17:29:05 PST
Amazing that we have a bug like this, anyhow, we don't react on window size changes at the moment -- if you use any percentual values in a svg document, the RenderSVGRoot object does not propagate these children correctly. For example: <svg xmlns="..."><rect width="50%" height="50%"/></svg> Resize Safari -> no reaction. As layout tests use a fixed window size, we can only create a testcase which puts svg content in a <div> within a compound document and resize that box - it suffers from the same bug.
Attachments
Initial patch
(46.18 KB, patch)
2010-01-13 18:33 PST
,
Nikolas Zimmermann
oliver
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Nikolas Zimmermann
Comment 1
2010-01-13 18:33:15 PST
Created
attachment 46533
[details]
Initial patch <use> content still won't react to size changes, due its design - will be fixed in a follow up patch. It's already done, just submitting in chunks, to avoid a monster patch :-)
Eric Seidel (no email)
Comment 2
2010-01-13 18:51:52 PST
Comment on
attachment 46533
[details]
Initial patch I seem to remember Darin saying that marking things for layout during layout was bad? 258 if (needsLayout) 259 child->setNeedsLayout(true, false);
WebKit Review Bot
Comment 3
2010-01-13 18:58:31 PST
Attachment 46533
[details]
did not build on chromium: Build output:
http://webkit-commit-queue.appspot.com/results/185957
Nikolas Zimmermann
Comment 4
2010-01-13 19:00:24 PST
(In reply to
comment #2
)
> (From update of
attachment 46533
[details]
) > I seem to remember Darin saying that marking things for layout during layout > was bad?
Huh? Please reread the patch, it's the regular flow of a renderer containing children to layout them - this patch mimics RenderBlock behaviour for SVG (see layoutBlockChildren + relayoutChildren). Furthermore it's just refactoring existing code while cleaning up some things, that lead to unneeded relayout and/or missing layouts for relative-sized kids. If you trace the code starting from RenderSVGRoot, you'll see that window size changes (induced by WebKit -> FrameView::layout(), only cause a setChildNeedsLayout(true) call on the RenderSVGRoot object, at least for standalone svg documents) - so comparing to RenderBlock behaviour we have to take care of relayouting relative sized kids ourselves. Hope that clarifies it a bit.
Oliver Hunt
Comment 5
2010-01-13 19:01:54 PST
Comment on
attachment 46533
[details]
Initial patch r=me
Nikolas Zimmermann
Comment 6
2010-01-13 19:06:28 PST
Landed in
r53229
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug