Title: [266167] trunk/Source/WebCore
Revision
266167
Author
[email protected]
Date
2020-08-26 05:08:22 -0700 (Wed, 26 Aug 2020)

Log Message

When caching the AccessibilityText property in AXIsolatedObject, the Strings need to be isolatedCopied.
https://bugs.webkit.org/show_bug.cgi?id=215834

Reviewed by Chris Fleizach.

The initialization of the AccessibilityText property in AXIsolatedObject::initializeAttributeData
wasn't isolatedCopying the Strings contained in the AccessibilityText structure.
Instead it was copying the String into a different structure. This patch
straightlines the caching of the AccessibilityText property by isolatedCopying
the original Strings. This simplifies the retrieval of this property
since there is no conversion to make in the AXIsolatedObject::accessibilityText
method.

* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): isolatedCopies the
String in AccessibilityText.
(WebCore::AXIsolatedObject::accessibilityText const): No conversion
needed to retrieve the property.
* accessibility/isolatedtree/AXIsolatedTree.h:
Removed the AccessibilityIsolatedTreeText structure since it is not needed.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (266166 => 266167)


--- trunk/Source/WebCore/ChangeLog	2020-08-26 11:16:03 UTC (rev 266166)
+++ trunk/Source/WebCore/ChangeLog	2020-08-26 12:08:22 UTC (rev 266167)
@@ -1,3 +1,26 @@
+2020-08-26  Andres Gonzalez  <[email protected]>
+
+        When caching the AccessibilityText property in AXIsolatedObject, the Strings need to be isolatedCopied.
+        https://bugs.webkit.org/show_bug.cgi?id=215834
+
+        Reviewed by Chris Fleizach.
+
+        The initialization of the AccessibilityText property in AXIsolatedObject::initializeAttributeData
+        wasn't isolatedCopying the Strings contained in the AccessibilityText structure.
+        Instead it was copying the String into a different structure. This patch
+        straightlines the caching of the AccessibilityText property by isolatedCopying
+        the original Strings. This simplifies the retrieval of this property
+        since there is no conversion to make in the AXIsolatedObject::accessibilityText
+        method.
+
+        * accessibility/isolatedtree/AXIsolatedObject.cpp:
+        (WebCore::AXIsolatedObject::initializeAttributeData): isolatedCopies the
+        String in AccessibilityText.
+        (WebCore::AXIsolatedObject::accessibilityText const): No conversion
+        needed to retrieve the property.
+        * accessibility/isolatedtree/AXIsolatedTree.h:
+        Removed the AccessibilityIsolatedTreeText structure since it is not needed.
+
 2020-08-26  Youenn Fablet  <[email protected]>
 
         enumerateDevices should expose audiooutput devices that are tied to an audio input device

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (266166 => 266167)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2020-08-26 11:16:03 UTC (rev 266166)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2020-08-26 12:08:22 UTC (rev 266167)
@@ -328,12 +328,10 @@
 
     Vector<AccessibilityText> texts;
     object.accessibilityText(texts);
-    Vector<AccessibilityIsolatedTreeText> isolatedTexts;
+    Vector<AccessibilityText> isolatedTexts;
     isolatedTexts.reserveCapacity(texts.size());
-    for (auto text : texts) {
-        AccessibilityIsolatedTreeText isolatedText;
-        isolatedText.text = text.text;
-        isolatedText.textSource = text.textSource;
+    for (const auto& text : texts) {
+        AccessibilityText isolatedText(text.text.isolatedCopy(), text.textSource);
         isolatedTexts.uncheckedAppend(isolatedText);
     }
     setProperty(AXPropertyName::AccessibilityText, isolatedTexts);
@@ -524,11 +522,7 @@
 
 void AXIsolatedObject::accessibilityText(Vector<AccessibilityText>& texts) const
 {
-    auto isolatedTexts = vectorAttributeValue<AccessibilityIsolatedTreeText>(AXPropertyName::AccessibilityText);
-    for (const auto& isolatedText : isolatedTexts) {
-        AccessibilityText text(isolatedText.text, isolatedText.textSource);
-        texts.append(text);
-    }
+    texts = vectorAttributeValue<AccessibilityText>(AXPropertyName::AccessibilityText);
 }
 
 void AXIsolatedObject::classList(Vector<String>& list) const

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h (266166 => 266167)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h	2020-08-26 11:16:03 UTC (rev 266166)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h	2020-08-26 12:08:22 UTC (rev 266167)
@@ -309,12 +309,7 @@
 
 typedef std::pair<AXID, AXID> AccessibilityIsolatedTreeMathMultiscriptPair;
 
-struct AccessibilityIsolatedTreeText {
-    String text;
-    AccessibilityTextSource textSource;
-};
-
-using AXPropertyValueVariant = Variant<std::nullptr_t, String, bool, int, unsigned, double, float, uint64_t, Color, URL, LayoutRect, FloatRect, AXID, IntPoint, OptionSet<SpeakAs>, std::pair<unsigned, unsigned>, Vector<AccessibilityIsolatedTreeText>, Vector<AXID>, Vector<AccessibilityIsolatedTreeMathMultiscriptPair>, Vector<String>, Path>;
+using AXPropertyValueVariant = Variant<std::nullptr_t, String, bool, int, unsigned, double, float, uint64_t, Color, URL, LayoutRect, FloatRect, AXID, IntPoint, OptionSet<SpeakAs>, std::pair<unsigned, unsigned>, Vector<AccessibilityText>, Vector<AXID>, Vector<std::pair<AXID, AXID>>, Vector<String>, Path>;
 typedef HashMap<AXPropertyName, AXPropertyValueVariant, WTF::IntHash<AXPropertyName>, WTF::StrongEnumHashTraits<AXPropertyName>> AXPropertyMap;
 
 struct AXPropertyChange {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to