WebKit Bugzilla
Attachment 358373 Details for
Bug 189608
: [iOS] ERROR: post-layout: dirty renderer(s) in WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189608-20190104143649.patch (text/plain), 2.88 KB, created by
zalan
on 2019-01-04 14:36:49 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2019-01-04 14:36:49 PST
Size:
2.88 KB
patch
obsolete
>Subversion Revision: 239568 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 97a0991c7a404612ffb4f3e467652ca7a3fff60b..423cb69187a6e72ef0ca46a915563400ef810de6 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2019-01-04 Zalan Bujtas <zalan@apple.com> >+ >+ [iOS] ERROR: post-layout: dirty renderer(s) in WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker() >+ https://bugs.webkit.org/show_bug.cgi?id=189608 >+ <rdar://problem/44473299> >+ >+ Reviewed by Simon Fraser. >+ >+ When a frameset/iframe is hidden and we skip layout, clear the dirty flag on its subtree as well. >+ >+ Covered by fast/frames/invalid-frameset.html. >+ >+ * rendering/RenderFrameSet.cpp: >+ (WebCore::clearSiblingSubtrees): >+ (WebCore::RenderFrameSet::positionFrames): >+ (WebCore::RenderFrameSet::positionFramesWithFlattening): >+ > 2019-01-01 Jeff Miller <jeffm@apple.com> > > Update user-visible copyright strings to include 2019 >diff --git a/Source/WebCore/rendering/RenderFrameSet.cpp b/Source/WebCore/rendering/RenderFrameSet.cpp >index 2d413b6104d39593d7fe08b06e87fab1a67f3987..4c3167701870919bfd911d3aff8cc541764126a9 100644 >--- a/Source/WebCore/rendering/RenderFrameSet.cpp >+++ b/Source/WebCore/rendering/RenderFrameSet.cpp >@@ -494,6 +494,18 @@ void RenderFrameSet::layout() > clearNeedsLayout(); > } > >+static void resetFrameRendererAndDescendents(RenderBox* frameSetChild, RenderFrameSet& parentFrameSet) >+{ >+ if (!frameSetChild) >+ return; >+ >+ for (auto* descendant = frameSetChild; descendant; descendant = downcast<RenderBox>(RenderObjectTraversal::next(*descendant, &parentFrameSet))) { >+ descendant->setWidth(0); >+ descendant->setHeight(0); >+ descendant->clearNeedsLayout(); >+ } >+} >+ > void RenderFrameSet::positionFrames() > { > RenderBox* child = firstChildBox(); >@@ -534,12 +546,7 @@ void RenderFrameSet::positionFrames() > yPos += height + borderThickness; > } > >- // all the remaining frames are hidden to avoid ugly spurious unflowed frames >- for (auto* descendant = child; descendant; descendant = downcast<RenderBox>(RenderObjectTraversal::next(*descendant, this))) { >- descendant->setWidth(0); >- descendant->setHeight(0); >- descendant->clearNeedsLayout(); >- } >+ resetFrameRendererAndDescendents(child, *this); > } > > void RenderFrameSet::positionFramesWithFlattening() >@@ -642,12 +649,7 @@ void RenderFrameSet::positionFramesWithFlattening() > if (repaintNeeded) > repaint(); > >- // all the remaining frames are hidden to avoid ugly spurious unflowed frames >- for (; child; child = child->nextSiblingBox()) { >- child->setWidth(0); >- child->setHeight(0); >- child->clearNeedsLayout(); >- } >+ resetFrameRendererAndDescendents(child, *this); > } > > bool RenderFrameSet::flattenFrameSet() const
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 189608
:
358369
| 358373