Changeset 186486 in webkit
- Timestamp:
- Jul 7, 2015, 6:53:42 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r186483 r186486 1 2015-07-07 Zalan Bujtas <zalan@apple.com> 2 3 Crash when parent iframe is set to display none and the child frame is mutated the same time. 4 https://bugs.webkit.org/show_bug.cgi?id=146699 5 rdar://problem/16207881 6 7 Reviewed by Andreas Kling. 8 9 When the parent iframe is set to display: none, we destroy the associated renderer (RenderIFrame). 10 However if the child frame is mutated the same time, during layout we try to access this RenderIFrame 11 to check whether it needs frame flattening. 12 This patch checks whether the parent render widget is still valid. 13 14 * fast/frames/crash-display-none-iframe-during-onbeforeload-expected.txt: Added. 15 * fast/frames/crash-display-none-iframe-during-onbeforeload.html: Added. 16 * fast/frames/resources/displaynone-this-during-object-beforeload.html: Added. 17 1 18 2015-07-07 Brent Fulgham <bfulgham@apple.com> 2 19 -
trunk/Source/WebCore/ChangeLog
r186482 r186486 1 2015-07-07 Zalan Bujtas <zalan@apple.com> 2 3 Crash when parent iframe is set to display none and the child frame is mutated the same time. 4 https://bugs.webkit.org/show_bug.cgi?id=146699 5 rdar://problem/16207881 6 7 Reviewed by Andreas Kling. 8 9 When the parent iframe is set to display: none, we destroy the associated renderer (RenderIFrame). 10 However if the child frame is mutated the same time, during layout we try to access this RenderIFrame 11 to check whether it needs frame flattening. 12 This patch checks whether the parent render widget is still valid. 13 14 Test: fast/frames/crash-display-none-iframe-during-onbeforeload.html 15 16 * page/FrameView.cpp: 17 (WebCore::FrameView::isInChildFrameWithFrameFlattening): rearrange early returns. 18 1 19 2015-07-06 Matt Rajca <mrajca@apple.com> 2 20 -
trunk/Source/WebCore/page/FrameView.cpp
r186392 r186486 3725 3725 bool FrameView::isInChildFrameWithFrameFlattening() const 3726 3726 { 3727 if (!parent() || !frame().ownerElement()) 3727 if (!frameFlatteningEnabled()) 3728 return false; 3729 3730 if (!parent()) 3731 return false; 3732 3733 HTMLFrameOwnerElement* ownerElement = frame().ownerElement(); 3734 if (!ownerElement) 3735 return false; 3736 3737 if (!ownerElement->renderWidget()) 3728 3738 return false; 3729 3739 3730 3740 // Frame flattening applies when the owner element is either in a frameset or 3731 3741 // an iframe with flattening parameters. 3732 if (is<HTMLIFrameElement>(*frame().ownerElement())) { 3733 RenderIFrame& iframeRenderer = downcast<RenderIFrame>(*frame().ownerElement()->renderWidget()); 3734 if (iframeRenderer.flattenFrame()) 3735 return true; 3736 } 3737 3738 if (!frameFlatteningEnabled()) 3739 return false; 3740 3741 if (is<HTMLFrameElement>(*frame().ownerElement())) 3742 if (is<HTMLIFrameElement>(*ownerElement)) 3743 return downcast<RenderIFrame>(*ownerElement->renderWidget()).flattenFrame(); 3744 3745 if (is<HTMLFrameElement>(*ownerElement)) 3742 3746 return true; 3743 3747
Note:
See TracChangeset
for help on using the changeset viewer.