Changeset 268830 in webkit
- Timestamp:
- Oct 21, 2020, 3:15:45 PM (6 years ago)
- Location:
- branches/safari-610-branch/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
accessibility/AccessibilityMenuList.cpp (modified) (2 diffs)
-
accessibility/AccessibilityMenuListPopup.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-610-branch/Source/WebCore/ChangeLog
r268540 r268830 1 2020-10-21 Russell Epstein <repstein@apple.com> 2 3 Cherry-pick r266787. rdar://problem/70541715 4 5 AccessibilityMenuList and MenuListPopup notifications need to be posted asynchronously. 6 https://bugs.webkit.org/show_bug.cgi?id=216309 7 <rdar://problem/68108824> 8 9 Reviewed by Chris Fleizach. 10 11 MenuList notifications were posted synchronously which triggers a DOM 12 layout and style update in the middle of an ongoing DOM mutation update. 13 This is unnecessary and, furthermore, causes crashes since the DOM 14 layout update cannot be re-entrant. This change makes these 15 notifications asynchronous. 16 17 * accessibility/AccessibilityMenuList.cpp: 18 (WebCore::AccessibilityMenuList::didUpdateActiveOption): 19 * accessibility/AccessibilityMenuListPopup.cpp: 20 (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption): 21 22 23 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266787 268f45cc-cd09-0410-ab3c-d52691b4dbfc 24 25 2020-09-09 Andres Gonzalez <andresg_22@apple.com> 26 27 AccessibilityMenuList and MenuListPopup notifications need to be posted asynchronously. 28 https://bugs.webkit.org/show_bug.cgi?id=216309 29 <rdar://problem/68108824> 30 31 Reviewed by Chris Fleizach. 32 33 MenuList notifications were posted synchronously which triggers a DOM 34 layout and style update in the middle of an ongoing DOM mutation update. 35 This is unnecessary and, furthermore, causes crashes since the DOM 36 layout update cannot be re-entrant. This change makes these 37 notifications asynchronous. 38 39 * accessibility/AccessibilityMenuList.cpp: 40 (WebCore::AccessibilityMenuList::didUpdateActiveOption): 41 * accessibility/AccessibilityMenuListPopup.cpp: 42 (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption): 43 1 44 2020-10-15 Russell Epstein <repstein@apple.com> 2 45 -
branches/safari-610-branch/Source/WebCore/accessibility/AccessibilityMenuList.cpp
r265514 r268830 118 118 { 119 119 Ref<Document> document(m_renderer->document()); 120 AXObjectCache* cache = document->axObjectCache();121 120 122 121 const auto& childObjects = children(); … … 137 136 } 138 137 139 cache->postNotification(this, document.ptr(), AXObjectCache::AXMenuListValueChanged, TargetElement, PostSynchronously); 138 if (auto* cache = document->axObjectCache()) 139 cache->postNotification(this, document.ptr(), AXObjectCache::AXMenuListValueChanged, TargetElement, PostAsynchronously); 140 140 } 141 141 -
branches/safari-610-branch/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
r265514 r268830 125 125 ASSERT_ARG(optionIndex, optionIndex < static_cast<int>(m_children.size())); 126 126 127 AXObjectCache* cache = axObjectCache();128 127 RefPtr<AXCoreObject> child = m_children[optionIndex].get(); 129 128 130 cache->postNotification(child.get(), document(), AXObjectCache::AXFocusedUIElementChanged, TargetElement, PostSynchronously); 131 cache->postNotification(child.get(), document(), AXObjectCache::AXMenuListItemSelected, TargetElement, PostSynchronously); 129 if (auto* cache = axObjectCache()) { 130 cache->postNotification(child.get(), document(), AXObjectCache::AXFocusedUIElementChanged, TargetElement, PostAsynchronously); 131 cache->postNotification(child.get(), document(), AXObjectCache::AXMenuListItemSelected, TargetElement, PostAsynchronously); 132 } 132 133 } 133 134
Note:
See TracChangeset
for help on using the changeset viewer.