Title: [288619] trunk/Source/WebCore
- Revision
- 288619
- Author
- [email protected]
- Date
- 2022-01-26 07:54:23 -0800 (Wed, 26 Jan 2022)
Log Message
AX: Do less work under m_changeLogLock in AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
https://bugs.webkit.org/show_bug.cgi?id=235624
Reviewed by Chris Fleizach.
AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
do work while holding m_changeLogLock that does not require this lock. This
patch moves this work before the lock acquisition so we hold the lock for as short
a time as possible.
* accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::setFocusedNodeID):
Move work that doesn't require m_changeLogLock before we acquire the lock.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (288618 => 288619)
--- trunk/Source/WebCore/ChangeLog 2022-01-26 14:45:01 UTC (rev 288618)
+++ trunk/Source/WebCore/ChangeLog 2022-01-26 15:54:23 UTC (rev 288619)
@@ -1,3 +1,20 @@
+2022-01-26 Tyler Wilcock <[email protected]>
+
+ AX: Do less work under m_changeLogLock in AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
+ https://bugs.webkit.org/show_bug.cgi?id=235624
+
+ Reviewed by Chris Fleizach.
+
+ AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
+ do work while holding m_changeLogLock that does not require this lock. This
+ patch moves this work before the lock acquisition so we hold the lock for as short
+ a time as possible.
+
+ * accessibility/isolatedtree/AXIsolatedTree.cpp:
+ (WebCore::AXIsolatedTree::clear):
+ (WebCore::AXIsolatedTree::setFocusedNodeID):
+ Move work that doesn't require m_changeLogLock before we acquire the lock.
+
2022-01-26 Antti Koivisto <[email protected]>
ASSERTION FAILED: !hasPendingSheets() under WebCore::Style::Scope::~Scope()
Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp (288618 => 288619)
--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp 2022-01-26 14:45:01 UTC (rev 288618)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp 2022-01-26 15:54:23 UTC (rev 288619)
@@ -76,11 +76,11 @@
AXTRACE("AXIsolatedTree::clear");
ASSERT(isMainThread());
m_axObjectCache = nullptr;
+ m_nodeMap.clear();
Locker locker { m_changeLogLock };
m_pendingSubtreeRemovals.append(m_rootNode->objectID());
m_rootNode = nullptr;
- m_nodeMap.clear();
}
RefPtr<AXIsolatedTree> AXIsolatedTree::treeForID(AXIsolatedTreeID treeID)
@@ -431,11 +431,11 @@
AXLOG(makeString("axID ", axID.loggingString()));
ASSERT(isMainThread());
+ AXPropertyMap propertyMap;
+ propertyMap.set(AXPropertyName::IsFocused, true);
+
Locker locker { m_changeLogLock };
m_pendingFocusedNodeID = axID;
-
- AXPropertyMap propertyMap;
- propertyMap.set(AXPropertyName::IsFocused, true);
m_pendingPropertyChanges.append({ axID, propertyMap });
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes