Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1361)

Unified Diff: Source/modules/accessibility/AXNodeObject.cpp

Issue 1072273006: Oilpan: Prepare moving AXObject to heap (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/accessibility/AXNodeObject.cpp
diff --git a/Source/modules/accessibility/AXNodeObject.cpp b/Source/modules/accessibility/AXNodeObject.cpp
index 0e9006421a62a66dab2a5319865286f5690276ce..9322408bf77b43528e697a3e95d2e1b0248f524b 100644
--- a/Source/modules/accessibility/AXNodeObject.cpp
+++ b/Source/modules/accessibility/AXNodeObject.cpp
@@ -70,9 +70,9 @@ AXNodeObject::AXNodeObject(Node* node, AXObjectCacheImpl* axObjectCache)
{
}
-PassRefPtr<AXNodeObject> AXNodeObject::create(Node* node, AXObjectCacheImpl* axObjectCache)
+PassRefPtrWillBeRawPtr<AXNodeObject> AXNodeObject::create(Node* node, AXObjectCacheImpl* axObjectCache)
{
- return adoptRef(new AXNodeObject(node, axObjectCache));
+ return adoptRefWillBeNoop(new AXNodeObject(node, axObjectCache));
}
AXNodeObject::~AXNodeObject()
@@ -736,7 +736,7 @@ void AXNodeObject::detach()
{
clearChildren();
AXObject::detach();
- m_node = 0;
+ m_node = nullptr;
}
bool AXNodeObject::isAnchor() const
@@ -1570,10 +1570,10 @@ String AXNodeObject::deprecatedTextUnderElement(TextUnderElementMode mode) const
continue;
if (child->isAXNodeObject()) {
- Vector<AccessibilityText> textOrder;
+ WillBeHeapVector<OwnPtrWillBeMember<AccessibilityText>> textOrder;
toAXNodeObject(child)->alternativeText(textOrder);
if (textOrder.size() > 0) {
- builder.append(textOrder[0].text);
+ builder.append(textOrder[0]->text());
if (mode == TextUnderElementAny)
break;
continue;
@@ -1785,7 +1785,7 @@ String AXNodeObject::computedName() const
// New AX name calculation.
//
-String AXNodeObject::textAlternative(bool recursive, bool inAriaLabelledByTraversal, HashSet<AXObject*>& visited, AXNameFrom* nameFrom, Vector<AXObject*>* nameObjects)
+String AXNodeObject::textAlternative(bool recursive, bool inAriaLabelledByTraversal, WillBeHeapHashSet<RawPtrWillBeMember<AXObject>>& visited, AXNameFrom* nameFrom, WillBeHeapVector<RawPtrWillBeMember<AXObject>>* nameObjects)
{
bool alreadyVisited = visited.contains(this);
visited.add(this);
@@ -1808,7 +1808,7 @@ String AXNodeObject::textAlternative(bool recursive, bool inAriaLabelledByTraver
ariaLabeledByElements(elements);
StringBuilder accumulatedText;
for (const auto& element : elements) {
- RefPtr<AXObject> axElement = axObjectCache()->getOrCreate(element);
+ RefPtrWillBeRawPtr<AXObject> axElement = axObjectCache()->getOrCreate(element);
if (axElement) {
if (nameObjects)
nameObjects->append(axElement.get());
@@ -2302,12 +2302,12 @@ String AXNodeObject::alternativeTextForWebArea() const
return String();
}
-void AXNodeObject::alternativeText(Vector<AccessibilityText>& textOrder) const
+void AXNodeObject::alternativeText(WillBeHeapVector<OwnPtrWillBeMember<AccessibilityText>>& textOrder) const
{
if (isWebArea()) {
String webAreaText = alternativeTextForWebArea();
if (!webAreaText.isEmpty())
- textOrder.append(AccessibilityText(webAreaText, AlternativeText));
+ textOrder.append(AccessibilityText::create(webAreaText, AlternativeText));
return;
}
@@ -2315,18 +2315,18 @@ void AXNodeObject::alternativeText(Vector<AccessibilityText>& textOrder) const
const AtomicString& ariaLabel = getAttribute(aria_labelAttr);
if (!ariaLabel.isEmpty())
- textOrder.append(AccessibilityText(ariaLabel, AlternativeText));
+ textOrder.append(AccessibilityText::create(ariaLabel, AlternativeText));
if (isImage() || isInputImage() || isNativeImage() || isCanvas()) {
// Images should use alt as long as the attribute is present, even if empty.
// Otherwise, it should fallback to other methods, like the title attribute.
const AtomicString& alt = getAttribute(altAttr);
if (!alt.isNull())
- textOrder.append(AccessibilityText(alt, AlternativeText));
+ textOrder.append(AccessibilityText::create(alt, AlternativeText));
}
}
-void AXNodeObject::ariaLabeledByText(Vector<AccessibilityText>& textOrder) const
+void AXNodeObject::ariaLabeledByText(WillBeHeapVector<OwnPtrWillBeMember<AccessibilityText>>& textOrder) const
{
String ariaLabeledBy = ariaLabeledByAttribute();
if (!ariaLabeledBy.isEmpty()) {
@@ -2334,10 +2334,16 @@ void AXNodeObject::ariaLabeledByText(Vector<AccessibilityText>& textOrder) const
ariaLabeledByElements(elements);
for (const auto& element : elements) {
- RefPtr<AXObject> axElement = axObjectCache()->getOrCreate(element);
- textOrder.append(AccessibilityText(ariaLabeledBy, AlternativeText, axElement));
+ RefPtrWillBeRawPtr<AXObject> axElement = axObjectCache()->getOrCreate(element);
+ textOrder.append(AccessibilityText::create(ariaLabeledBy, AlternativeText, axElement));
}
}
}
+DEFINE_TRACE(AXNodeObject)
+{
+ AXObject::trace(visitor);
+ visitor->trace(m_node);
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698