Source/WebCore: WebCore part of <rdar://problem/8441312> Crash in -[NSView _invalidateGStatesForTree]
Reviewed by Simon Fraser.
* WebCore.exp.in: Export RenderWidget::suspendWidgetHierarchyUpdates() and
RenderWidget::resumeWidgetHierarchyUpdates().
* manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html: Added.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry): Removed the assertion that widget hierarchy updates
are disabled. When this assertion was added, this condition was a subset of the “calling out to
plug-in code is forbidden” condition, hence the assertion was valid. The WebKit part of this
change now suspends widget hierarchy updates even at times where plug-in code is expected to be
called, which invalidates the assertion.
WebKit/mac: WebKit/mac part of <rdar://problem/8441312> Crash in -[NSView _invalidateGStatesForTree]
Reviewed by Simon Fraser.
* WebView/WebHTMLView.mm:
(-[WebHTMLView _invalidateGStatesForTree]): Override this NSView method, and bracket the call
to the superclass implementation with suspending WebCore Widget hierarchy updates. This ensures
that the NSView tree doesn’t change from under AppKit as it traverses it.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
6 files changed