Skip to content
  • mitz@apple.com's avatar
    Source/WebCore: WebCore part of <rdar://problem/8441312> Crash in -[NSView... · 660edfe5
    mitz@apple.com authored
    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
    660edfe5