Log Message
AX: Crash due to object getting deleted inside updateBackingStore https://bugs.webkit.org/show_bug.cgi?id=94619
Reviewed by Chris Fleizach. Source/WebKit/chromium: Chromium now calls updateBackingStoreAndCheckValidity explicitly, so we can now get rid of calls to updateBackingStore in the method implementations, and just make sure we're checking isDetached. * public/WebAccessibilityObject.h: (WebAccessibilityObject): * src/WebAccessibilityObject.cpp: (WebKit::WebAccessibilityObject::axID): (WebKit::WebAccessibilityObject::accessibilityDescription): (WebKit::WebAccessibilityObject::actionVerb): (WebKit::WebAccessibilityObject::canSetFocusAttribute): (WebKit::WebAccessibilityObject::canSetValueAttribute): (WebKit::WebAccessibilityObject::childCount): (WebKit::WebAccessibilityObject::childAt): (WebKit::WebAccessibilityObject::firstChild): (WebKit::WebAccessibilityObject::focusedChild): (WebKit::WebAccessibilityObject::lastChild): (WebKit::WebAccessibilityObject::nextSibling): (WebKit::WebAccessibilityObject::parentObject): (WebKit::WebAccessibilityObject::previousSibling): (WebKit::WebAccessibilityObject::canSetSelectedAttribute): (WebKit::WebAccessibilityObject::isAnchor): (WebKit::WebAccessibilityObject::isAriaReadOnly): (WebKit::WebAccessibilityObject::isButtonStateMixed): (WebKit::WebAccessibilityObject::isChecked): (WebKit::WebAccessibilityObject::isCollapsed): (WebKit::WebAccessibilityObject::isControl): (WebKit::WebAccessibilityObject::isEnabled): (WebKit::WebAccessibilityObject::isFocused): (WebKit::WebAccessibilityObject::isHovered): (WebKit::WebAccessibilityObject::isIndeterminate): (WebKit::WebAccessibilityObject::isLinked): (WebKit::WebAccessibilityObject::isLoaded): (WebKit::WebAccessibilityObject::isMultiSelectable): (WebKit::WebAccessibilityObject::isOffScreen): (WebKit::WebAccessibilityObject::isPasswordField): (WebKit::WebAccessibilityObject::isPressed): (WebKit::WebAccessibilityObject::isReadOnly): (WebKit::WebAccessibilityObject::isRequired): (WebKit::WebAccessibilityObject::isSelected): (WebKit::WebAccessibilityObject::isSelectedOptionActive): (WebKit::WebAccessibilityObject::isVertical): (WebKit::WebAccessibilityObject::isVisible): (WebKit::WebAccessibilityObject::isVisited): (WebKit::WebAccessibilityObject::accessKey): (WebKit::WebAccessibilityObject::ariaHasPopup): (WebKit::WebAccessibilityObject::ariaLiveRegionAtomic): (WebKit::WebAccessibilityObject::ariaLiveRegionBusy): (WebKit::WebAccessibilityObject::ariaLiveRegionRelevant): (WebKit::WebAccessibilityObject::ariaLiveRegionStatus): (WebKit::WebAccessibilityObject::boundingBoxRect): (WebKit::WebAccessibilityObject::estimatedLoadingProgress): (WebKit::WebAccessibilityObject::helpText): (WebKit::WebAccessibilityObject::headingLevel): (WebKit::WebAccessibilityObject::hierarchicalLevel): (WebKit::WebAccessibilityObject::hitTest): (WebKit::WebAccessibilityObject::keyboardShortcut): (WebKit::WebAccessibilityObject::performDefaultAction): (WebKit::WebAccessibilityObject::roleValue): (WebKit::WebAccessibilityObject::selectionEnd): (WebKit::WebAccessibilityObject::selectionStart): (WebKit::WebAccessibilityObject::stringValue): (WebKit::WebAccessibilityObject::title): (WebKit::WebAccessibilityObject::titleUIElement): (WebKit::WebAccessibilityObject::url): (WebKit::WebAccessibilityObject::valueDescription): (WebKit::WebAccessibilityObject::valueForRange): (WebKit::WebAccessibilityObject::maxValueForRange): (WebKit::WebAccessibilityObject::minValueForRange): (WebKit::WebAccessibilityObject::node): (WebKit::WebAccessibilityObject::document): (WebKit::WebAccessibilityObject::accessibilityIsIgnored): (WebKit::WebAccessibilityObject::lineBreaks): (WebKit::WebAccessibilityObject::columnCount): (WebKit::WebAccessibilityObject::rowCount): (WebKit::WebAccessibilityObject::cellForColumnAndRow): (WebKit::WebAccessibilityObject::cellColumnIndex): (WebKit::WebAccessibilityObject::cellColumnSpan): (WebKit::WebAccessibilityObject::cellRowIndex): (WebKit::WebAccessibilityObject::cellRowSpan): (WebKit::WebAccessibilityObject::scrollToMakeVisible): (WebKit::WebAccessibilityObject::scrollToMakeVisibleWithSubFocus): (WebKit::WebAccessibilityObject::scrollToGlobalPoint): Tools: Change isValid to !isDetached after deleting isValid from chromium WebAccessibilityObject as being redundant. * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: (AccessibilityUIElement::isValidGetterCallback):
Modified Paths
Diff
Modified: trunk/Source/WebKit/chromium/ChangeLog (126931 => 126932)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-08-28 21:56:23 UTC (rev 126931)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-08-28 21:58:35 UTC (rev 126932)
@@ -1,3 +1,94 @@
+2012-08-28 Dominic Mazzoni <[email protected]>
+
+ AX: Crash due to object getting deleted inside updateBackingStore
+ https://bugs.webkit.org/show_bug.cgi?id=94619
+
+ Reviewed by Chris Fleizach.
+
+ Chromium now calls updateBackingStoreAndCheckValidity explicitly,
+ so we can now get rid of calls to updateBackingStore in the
+ method implementations, and just make sure we're checking isDetached.
+
+ * public/WebAccessibilityObject.h:
+ (WebAccessibilityObject):
+ * src/WebAccessibilityObject.cpp:
+ (WebKit::WebAccessibilityObject::axID):
+ (WebKit::WebAccessibilityObject::accessibilityDescription):
+ (WebKit::WebAccessibilityObject::actionVerb):
+ (WebKit::WebAccessibilityObject::canSetFocusAttribute):
+ (WebKit::WebAccessibilityObject::canSetValueAttribute):
+ (WebKit::WebAccessibilityObject::childCount):
+ (WebKit::WebAccessibilityObject::childAt):
+ (WebKit::WebAccessibilityObject::firstChild):
+ (WebKit::WebAccessibilityObject::focusedChild):
+ (WebKit::WebAccessibilityObject::lastChild):
+ (WebKit::WebAccessibilityObject::nextSibling):
+ (WebKit::WebAccessibilityObject::parentObject):
+ (WebKit::WebAccessibilityObject::previousSibling):
+ (WebKit::WebAccessibilityObject::canSetSelectedAttribute):
+ (WebKit::WebAccessibilityObject::isAnchor):
+ (WebKit::WebAccessibilityObject::isAriaReadOnly):
+ (WebKit::WebAccessibilityObject::isButtonStateMixed):
+ (WebKit::WebAccessibilityObject::isChecked):
+ (WebKit::WebAccessibilityObject::isCollapsed):
+ (WebKit::WebAccessibilityObject::isControl):
+ (WebKit::WebAccessibilityObject::isEnabled):
+ (WebKit::WebAccessibilityObject::isFocused):
+ (WebKit::WebAccessibilityObject::isHovered):
+ (WebKit::WebAccessibilityObject::isIndeterminate):
+ (WebKit::WebAccessibilityObject::isLinked):
+ (WebKit::WebAccessibilityObject::isLoaded):
+ (WebKit::WebAccessibilityObject::isMultiSelectable):
+ (WebKit::WebAccessibilityObject::isOffScreen):
+ (WebKit::WebAccessibilityObject::isPasswordField):
+ (WebKit::WebAccessibilityObject::isPressed):
+ (WebKit::WebAccessibilityObject::isReadOnly):
+ (WebKit::WebAccessibilityObject::isRequired):
+ (WebKit::WebAccessibilityObject::isSelected):
+ (WebKit::WebAccessibilityObject::isSelectedOptionActive):
+ (WebKit::WebAccessibilityObject::isVertical):
+ (WebKit::WebAccessibilityObject::isVisible):
+ (WebKit::WebAccessibilityObject::isVisited):
+ (WebKit::WebAccessibilityObject::accessKey):
+ (WebKit::WebAccessibilityObject::ariaHasPopup):
+ (WebKit::WebAccessibilityObject::ariaLiveRegionAtomic):
+ (WebKit::WebAccessibilityObject::ariaLiveRegionBusy):
+ (WebKit::WebAccessibilityObject::ariaLiveRegionRelevant):
+ (WebKit::WebAccessibilityObject::ariaLiveRegionStatus):
+ (WebKit::WebAccessibilityObject::boundingBoxRect):
+ (WebKit::WebAccessibilityObject::estimatedLoadingProgress):
+ (WebKit::WebAccessibilityObject::helpText):
+ (WebKit::WebAccessibilityObject::headingLevel):
+ (WebKit::WebAccessibilityObject::hierarchicalLevel):
+ (WebKit::WebAccessibilityObject::hitTest):
+ (WebKit::WebAccessibilityObject::keyboardShortcut):
+ (WebKit::WebAccessibilityObject::performDefaultAction):
+ (WebKit::WebAccessibilityObject::roleValue):
+ (WebKit::WebAccessibilityObject::selectionEnd):
+ (WebKit::WebAccessibilityObject::selectionStart):
+ (WebKit::WebAccessibilityObject::stringValue):
+ (WebKit::WebAccessibilityObject::title):
+ (WebKit::WebAccessibilityObject::titleUIElement):
+ (WebKit::WebAccessibilityObject::url):
+ (WebKit::WebAccessibilityObject::valueDescription):
+ (WebKit::WebAccessibilityObject::valueForRange):
+ (WebKit::WebAccessibilityObject::maxValueForRange):
+ (WebKit::WebAccessibilityObject::minValueForRange):
+ (WebKit::WebAccessibilityObject::node):
+ (WebKit::WebAccessibilityObject::document):
+ (WebKit::WebAccessibilityObject::accessibilityIsIgnored):
+ (WebKit::WebAccessibilityObject::lineBreaks):
+ (WebKit::WebAccessibilityObject::columnCount):
+ (WebKit::WebAccessibilityObject::rowCount):
+ (WebKit::WebAccessibilityObject::cellForColumnAndRow):
+ (WebKit::WebAccessibilityObject::cellColumnIndex):
+ (WebKit::WebAccessibilityObject::cellColumnSpan):
+ (WebKit::WebAccessibilityObject::cellRowIndex):
+ (WebKit::WebAccessibilityObject::cellRowSpan):
+ (WebKit::WebAccessibilityObject::scrollToMakeVisible):
+ (WebKit::WebAccessibilityObject::scrollToMakeVisibleWithSubFocus):
+ (WebKit::WebAccessibilityObject::scrollToGlobalPoint):
+
2012-08-28 Sheriff Bot <[email protected]>
Unreviewed, rolling out r126914.
Modified: trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h (126931 => 126932)
--- trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h 2012-08-28 21:56:23 UTC (rev 126931)
+++ trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h 2012-08-28 21:58:35 UTC (rev 126932)
@@ -89,7 +89,6 @@
WEBKIT_EXPORT WebString actionVerb() const;
WEBKIT_EXPORT bool canSetFocusAttribute() const;
WEBKIT_EXPORT bool canSetValueAttribute() const;
- WEBKIT_EXPORT bool isValid() const;
WEBKIT_EXPORT unsigned childCount() const;
Modified: trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp (126931 => 126932)
--- trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp 2012-08-28 21:56:23 UTC (rev 126931)
+++ trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp 2012-08-28 21:58:35 UTC (rev 126932)
@@ -95,7 +95,6 @@
if (isDetached())
return -1;
- m_private->updateBackingStore();
return m_private->axObjectID();
}
@@ -111,7 +110,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->accessibilityDescription();
}
@@ -120,7 +118,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->actionVerb();
}
@@ -129,7 +126,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
return m_private->canSetFocusAttribute();
}
@@ -138,25 +134,14 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
return m_private->canSetValueAttribute();
}
-bool WebAccessibilityObject::isValid() const
-{
- if (isDetached())
- return false;
-
- m_private->updateBackingStore();
- return m_private->axObjectID();
-}
-
unsigned WebAccessibilityObject::childCount() const
{
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->children().size();
}
@@ -165,7 +150,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
if (m_private->children().size() <= index)
return WebAccessibilityObject();
@@ -177,7 +161,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->firstChild());
}
@@ -186,7 +169,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
RefPtr<AccessibilityObject> focused = m_private->focusedUIElement();
if (m_private.get() == focused.get() || m_private.get() == focused->parentObject())
return WebAccessibilityObject(focused);
@@ -199,7 +181,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->lastChild());
}
@@ -209,7 +190,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->nextSibling());
}
@@ -218,7 +198,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->parentObject());
}
@@ -228,7 +207,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->previousSibling());
}
@@ -237,7 +215,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->canSetSelectedAttribute();
}
@@ -246,7 +223,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isAnchor();
}
@@ -255,7 +231,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return equalIgnoringCase(m_private->getAttribute(HTMLNames::aria_readonlyAttr), "true");
}
@@ -264,7 +239,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->checkboxOrRadioValue() == ButtonStateMixed;
}
@@ -273,7 +247,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isChecked();
}
@@ -282,7 +255,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isCollapsed();
}
@@ -291,7 +263,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isControl();
}
@@ -300,7 +271,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isEnabled();
}
@@ -309,7 +279,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isFocused();
}
@@ -318,7 +287,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isHovered();
}
@@ -327,7 +295,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isIndeterminate();
}
@@ -336,7 +303,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isLinked();
}
@@ -345,7 +311,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isLoaded();
}
@@ -354,7 +319,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isMultiSelectable();
}
@@ -363,7 +327,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isOffScreen();
}
@@ -372,7 +335,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isPasswordField();
}
@@ -381,7 +343,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isPressed();
}
@@ -390,7 +351,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isReadOnly();
}
@@ -399,7 +359,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isRequired();
}
@@ -408,7 +367,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isSelected();
}
@@ -417,7 +375,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
return m_private->isSelectedOptionActive();
}
@@ -426,7 +383,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->orientation() == AccessibilityOrientationVertical;
}
@@ -435,7 +391,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isVisible();
}
@@ -444,7 +399,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->isVisited();
}
@@ -453,7 +407,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return WebString(m_private->accessKey());
}
@@ -462,7 +415,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->ariaHasPopup();
}
@@ -471,7 +423,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->ariaLiveRegionAtomic();
}
@@ -480,7 +431,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->ariaLiveRegionBusy();
}
@@ -489,7 +439,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->ariaLiveRegionRelevant();
}
@@ -498,7 +447,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->ariaLiveRegionStatus();
}
@@ -507,7 +455,6 @@
if (isDetached())
return WebRect();
- m_private->updateBackingStore();
return m_private->pixelSnappedBoundingBoxRect();
}
@@ -516,7 +463,6 @@
if (isDetached())
return 0.0;
- m_private->updateBackingStore();
return m_private->estimatedLoadingProgress();
}
@@ -525,7 +471,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->helpText();
}
@@ -534,7 +479,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->headingLevel();
}
@@ -543,7 +487,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->hierarchicalLevel();
}
@@ -552,7 +495,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
IntPoint contentsPoint = m_private->documentFrameView()->windowToContents(point);
RefPtr<AccessibilityObject> hit = m_private->accessibilityHitTest(contentsPoint);
@@ -570,7 +512,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
String accessKey = m_private->accessKey();
if (accessKey.isNull())
return WebString();
@@ -601,7 +542,6 @@
UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
- m_private->updateBackingStore();
return m_private->performDefaultAction();
}
@@ -610,7 +550,6 @@
if (isDetached())
return WebKit::WebAccessibilityRoleUnknown;
- m_private->updateBackingStore();
return static_cast<WebAccessibilityRole>(m_private->roleValue());
}
@@ -619,7 +558,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->selectedTextRange().start + m_private->selectedTextRange().length;
}
@@ -628,7 +566,6 @@
if (isDetached())
return 0;
- m_private->updateBackingStore();
return m_private->selectedTextRange().start;
}
@@ -643,7 +580,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->stringValue();
}
@@ -652,7 +588,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->title();
}
@@ -661,7 +596,6 @@
if (isDetached())
return WebAccessibilityObject();
- m_private->updateBackingStore();
return WebAccessibilityObject(m_private->titleUIElement());
}
@@ -670,7 +604,6 @@
if (isDetached())
return WebURL();
- m_private->updateBackingStore();
return m_private->url();
}
@@ -679,7 +612,6 @@
if (isDetached())
return WebString();
- m_private->updateBackingStore();
return m_private->valueDescription();
}
@@ -688,7 +620,6 @@
if (isDetached())
return 0.0;
- m_private->updateBackingStore();
return m_private->valueForRange();
}
@@ -697,7 +628,6 @@
if (isDetached())
return 0.0;
- m_private->updateBackingStore();
return m_private->maxValueForRange();
}
@@ -706,7 +636,6 @@
if (isDetached())
return 0.0;
- m_private->updateBackingStore();
return m_private->minValueForRange();
}
@@ -715,8 +644,6 @@
if (isDetached())
return WebNode();
- m_private->updateBackingStore();
-
Node* node = m_private->node();
if (!node)
return WebNode();
@@ -729,8 +656,6 @@
if (isDetached())
return WebDocument();
- m_private->updateBackingStore();
-
Document* document = m_private->document();
if (!document)
return WebDocument();
@@ -779,7 +704,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
return m_private->accessibilityIsIgnored();
}
@@ -788,7 +712,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
int textLength = m_private->textLength();
if (!textLength)
return false;
@@ -812,7 +735,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
if (!m_private->isAccessibilityTable())
return 0;
@@ -824,7 +746,6 @@
if (isDetached())
return false;
- m_private->updateBackingStore();
if (!m_private->isAccessibilityTable())
return 0;
@@ -833,7 +754,9 @@
WebAccessibilityObject WebAccessibilityObject::cellForColumnAndRow(unsigned column, unsigned row) const
{
- m_private->updateBackingStore();
+ if (isDetached())
+ return WebAccessibilityObject();
+
if (!m_private->isAccessibilityTable())
return WebAccessibilityObject();
@@ -843,7 +766,9 @@
unsigned WebAccessibilityObject::cellColumnIndex() const
{
- m_private->updateBackingStore();
+ if (isDetached())
+ return 0;
+
if (!m_private->isTableCell())
return 0;
@@ -854,7 +779,9 @@
unsigned WebAccessibilityObject::cellColumnSpan() const
{
- m_private->updateBackingStore();
+ if (isDetached())
+ return 0;
+
if (!m_private->isTableCell())
return 0;
@@ -865,7 +792,9 @@
unsigned WebAccessibilityObject::cellRowIndex() const
{
- m_private->updateBackingStore();
+ if (isDetached())
+ return 0;
+
if (!m_private->isTableCell())
return 0;
@@ -876,7 +805,9 @@
unsigned WebAccessibilityObject::cellRowSpan() const
{
- m_private->updateBackingStore();
+ if (isDetached())
+ return 0;
+
if (!m_private->isTableCell())
return 0;
@@ -887,20 +818,20 @@
void WebAccessibilityObject::scrollToMakeVisible() const
{
- m_private->updateBackingStore();
- m_private->scrollToMakeVisible();
+ if (!isDetached())
+ m_private->scrollToMakeVisible();
}
void WebAccessibilityObject::scrollToMakeVisibleWithSubFocus(const WebRect& subfocus) const
{
- m_private->updateBackingStore();
- m_private->scrollToMakeVisibleWithSubFocus(subfocus);
+ if (!isDetached())
+ m_private->scrollToMakeVisibleWithSubFocus(subfocus);
}
void WebAccessibilityObject::scrollToGlobalPoint(const WebPoint& point) const
{
- m_private->updateBackingStore();
- m_private->scrollToGlobalPoint(point);
+ if (!isDetached())
+ m_private->scrollToGlobalPoint(point);
}
WebAccessibilityObject::WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>& object)
Modified: trunk/Tools/ChangeLog (126931 => 126932)
--- trunk/Tools/ChangeLog 2012-08-28 21:56:23 UTC (rev 126931)
+++ trunk/Tools/ChangeLog 2012-08-28 21:58:35 UTC (rev 126932)
@@ -1,3 +1,16 @@
+2012-08-28 Dominic Mazzoni <[email protected]>
+
+ AX: Crash due to object getting deleted inside updateBackingStore
+ https://bugs.webkit.org/show_bug.cgi?id=94619
+
+ Reviewed by Chris Fleizach.
+
+ Change isValid to !isDetached after deleting isValid from
+ chromium WebAccessibilityObject as being redundant.
+
+ * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
+ (AccessibilityUIElement::isValidGetterCallback):
+
2012-08-28 Sheriff Bot <[email protected]>
Unreviewed, rolling out r126914.
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp (126931 => 126932)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp 2012-08-28 21:56:23 UTC (rev 126931)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp 2012-08-28 21:58:35 UTC (rev 126932)
@@ -547,7 +547,7 @@
void AccessibilityUIElement::isValidGetterCallback(CppVariant* result)
{
- result->set(accessibilityObject().isValid());
+ result->set(!accessibilityObject().isDetached());
}
void AccessibilityUIElement::orientationGetterCallback(CppVariant* result)
_______________________________________________ webkit-changes mailing list [email protected] http://lists.webkit.org/mailman/listinfo/webkit-changes
