ASSERT(LayoutDisallowedScope::isLayoutAllowed()) whenever hitting Enter in Web Inspec...
authorzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Dec 2017 18:43:05 +0000 (18:43 +0000)
committerzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Dec 2017 18:43:05 +0000 (18:43 +0000)
commit993bca72b333e7de3e922cffa4cda6d9bd504e61
treee3143542133698f43a2b37946214a3598260bab1
parentb5cbefbdd39d5d98b08c3a5a067e0b9446d04478
ASSERT(LayoutDisallowedScope::isLayoutAllowed()) whenever hitting Enter in Web Inspector console
https://bugs.webkit.org/show_bug.cgi?id=180690

Reviewed by Simon Fraser.

Defer text replacement notification until after layout is done to avoid unexpected forced layouts.

Covered by existing tests.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::disableAccessibility):
(WebCore::AXObjectCache::remove):
(WebCore::filterMapForRemoval):
(WebCore::filterListForRemoval):
(WebCore::AXObjectCache::prepareForDocumentDestruction):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::deferTextReplacementNotificationForTextControl):
(WebCore::filterForRemoval): Deleted.
* accessibility/AXObjectCache.h: Need to use the base (Element) class since
we can't call is<HTMLTextFormControlElement> in Node d'tor.
(WebCore::AXObjectCache::deferTextReplacementNotificationForTextControl):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AXObjectCache.cpp
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/html/HTMLTextFormControlElement.cpp