Title: [262403] trunk/Source/WebCore
- Revision
- 262403
- Author
- andresg...@apple.com
- Date
- 2020-06-01 18:09:08 -0700 (Mon, 01 Jun 2020)
Log Message
[WebAccessibilityObjectWrapper subrole] should check for the nullity of the underlying AXCoreObject before dereferencing.
https://bugs.webkit.org/show_bug.cgi?id=212607
Reviewed by Chris Fleizach.
Covered by existing tests.
- Check for nullity of the backingObject before dereferencing.
- self.axBackingObject is now called only once, instead of many times unnecessarily.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (262402 => 262403)
--- trunk/Source/WebCore/ChangeLog 2020-06-02 00:51:53 UTC (rev 262402)
+++ trunk/Source/WebCore/ChangeLog 2020-06-02 01:09:08 UTC (rev 262403)
@@ -1,3 +1,18 @@
+2020-06-01 Andres Gonzalez <andresg...@apple.com>
+
+ [WebAccessibilityObjectWrapper subrole] should check for the nullity of the underlying AXCoreObject before dereferencing.
+ https://bugs.webkit.org/show_bug.cgi?id=212607
+
+ Reviewed by Chris Fleizach.
+
+ Covered by existing tests.
+
+ - Check for nullity of the backingObject before dereferencing.
+ - self.axBackingObject is now called only once, instead of many times unnecessarily.
+
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper subrole]):
+
2020-06-01 Sihui Liu <sihui_...@apple.com>
TextManipulationController should put one Node in only one paragraph
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (262402 => 262403)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2020-06-02 00:51:53 UTC (rev 262402)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2020-06-02 01:09:08 UTC (rev 262403)
@@ -1996,21 +1996,25 @@
ALLOW_DEPRECATED_DECLARATIONS_BEGIN
- (NSString*)subrole
{
- if (self.axBackingObject->isPasswordField())
+ auto* backingObject = self.axBackingObject;
+ if (!backingObject)
+ return nil;
+
+ if (backingObject->isPasswordField())
return NSAccessibilitySecureTextFieldSubrole;
- if (self.axBackingObject->isSearchField())
+ if (backingObject->isSearchField())
return NSAccessibilitySearchFieldSubrole;
-
- if (self.axBackingObject->isAttachment()) {
+
+ if (backingObject->isAttachment()) {
NSView* attachView = [self attachmentView];
if ([[attachView accessibilityAttributeNames] containsObject:NSAccessibilitySubroleAttribute])
return [attachView accessibilityAttributeValue:NSAccessibilitySubroleAttribute];
}
-
- if (self.axBackingObject->isMeter())
+
+ if (backingObject->isMeter())
return @"AXMeter";
-
- AccessibilityRole role = self.axBackingObject->roleValue();
+
+ AccessibilityRole role = backingObject->roleValue();
if (role == AccessibilityRole::HorizontalRule)
return NSAccessibilityContentSeparatorSubrole;
if (role == AccessibilityRole::ToggleButton)
@@ -2017,26 +2021,25 @@
return NSAccessibilityToggleSubrole;
if (role == AccessibilityRole::Footer)
return @"AXFooter";
-
- if (self.axBackingObject->roleValue() == AccessibilityRole::SpinButtonPart) {
- if (self.axBackingObject->isIncrementor())
+ if (role == AccessibilityRole::SpinButtonPart) {
+ if (backingObject->isIncrementor())
return NSAccessibilityIncrementArrowSubrole;
return NSAccessibilityDecrementArrowSubrole;
}
-
- if (self.axBackingObject->isFileUploadButton())
+
+ if (backingObject->isFileUploadButton())
return @"AXFileUploadButton";
-
- if (self.axBackingObject->isTreeItem())
+
+ if (backingObject->isTreeItem())
return NSAccessibilityOutlineRowSubrole;
-
- if (self.axBackingObject->isFieldset())
+
+ if (backingObject->isFieldset())
return @"AXFieldset";
- if (self.axBackingObject->isList()) {
- if (self.axBackingObject->isUnorderedList() || self.axBackingObject->isOrderedList())
+ if (backingObject->isList()) {
+ if (backingObject->isUnorderedList() || backingObject->isOrderedList())
return NSAccessibilityContentListSubrole;
- if (self.axBackingObject->isDescriptionList()) {
+ if (backingObject->isDescriptionList()) {
return NSAccessibilityDescriptionListSubrole;
}
}
@@ -2103,44 +2106,44 @@
default:
break;
}
-
+
if (role == AccessibilityRole::MathElement) {
- if (self.axBackingObject->isMathFraction())
+ if (backingObject->isMathFraction())
return @"AXMathFraction";
- if (self.axBackingObject->isMathFenced())
+ if (backingObject->isMathFenced())
return @"AXMathFenced";
- if (self.axBackingObject->isMathSubscriptSuperscript())
+ if (backingObject->isMathSubscriptSuperscript())
return @"AXMathSubscriptSuperscript";
- if (self.axBackingObject->isMathRow())
+ if (backingObject->isMathRow())
return @"AXMathRow";
- if (self.axBackingObject->isMathUnderOver())
+ if (backingObject->isMathUnderOver())
return @"AXMathUnderOver";
- if (self.axBackingObject->isMathSquareRoot())
+ if (backingObject->isMathSquareRoot())
return @"AXMathSquareRoot";
- if (self.axBackingObject->isMathRoot())
+ if (backingObject->isMathRoot())
return @"AXMathRoot";
- if (self.axBackingObject->isMathText())
+ if (backingObject->isMathText())
return @"AXMathText";
- if (self.axBackingObject->isMathNumber())
+ if (backingObject->isMathNumber())
return @"AXMathNumber";
- if (self.axBackingObject->isMathIdentifier())
+ if (backingObject->isMathIdentifier())
return @"AXMathIdentifier";
- if (self.axBackingObject->isMathTable())
+ if (backingObject->isMathTable())
return @"AXMathTable";
- if (self.axBackingObject->isMathTableRow())
+ if (backingObject->isMathTableRow())
return @"AXMathTableRow";
- if (self.axBackingObject->isMathTableCell())
+ if (backingObject->isMathTableCell())
return @"AXMathTableCell";
- if (self.axBackingObject->isMathFenceOperator())
+ if (backingObject->isMathFenceOperator())
return @"AXMathFenceOperator";
- if (self.axBackingObject->isMathSeparatorOperator())
+ if (backingObject->isMathSeparatorOperator())
return @"AXMathSeparatorOperator";
- if (self.axBackingObject->isMathOperator())
+ if (backingObject->isMathOperator())
return @"AXMathOperator";
- if (self.axBackingObject->isMathMultiscript())
+ if (backingObject->isMathMultiscript())
return @"AXMathMultiscript";
}
-
+
if (role == AccessibilityRole::Video)
return @"AXVideo";
if (role == AccessibilityRole::Audio)
@@ -2152,10 +2155,10 @@
if (role == AccessibilityRole::Time)
return @"AXTimeGroup";
- if (self.axBackingObject->isMediaTimeline())
+ if (backingObject->isMediaTimeline())
return NSAccessibilityTimelineSubrole;
- if (self.axBackingObject->isSwitch())
+ if (backingObject->isSwitch())
return NSAccessibilitySwitchSubrole;
if (role == AccessibilityRole::Insertion)
@@ -2167,9 +2170,9 @@
if (role == AccessibilityRole::Subscript)
return @"AXSubscriptStyleGroup";
- if (self.axBackingObject->isStyleFormatGroup()) {
+ if (backingObject->isStyleFormatGroup()) {
using namespace HTMLNames;
- auto tagName = self.axBackingObject->tagName();
+ auto tagName = backingObject->tagName();
if (tagName == kbdTag)
return @"AXKeyboardInputStyleGroup";
if (tagName == codeTag)
@@ -2184,7 +2187,7 @@
return @"AXCiteStyleGroup";
ASSERT_NOT_REACHED();
}
-
+
// Ruby subroles
switch (role) {
case AccessibilityRole::RubyBase:
@@ -2200,7 +2203,7 @@
default:
break;
}
-
+
return nil;
}
ALLOW_DEPRECATED_DECLARATIONS_END
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes