Title: [97303] trunk/Source/WebCore
- Revision
- 97303
- Author
- [email protected]
- Date
- 2011-10-12 14:25:34 -0700 (Wed, 12 Oct 2011)
Log Message
AX: CrashTracer: [USER] 296 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityScrollbar::document const + 29
https://bugs.webkit.org/show_bug.cgi?id=69936
AX Scrollbars have a weak pointer to their parent. They need to become AccessibilityMockObjects, so that they can
participate in the detachFromParent() methods that happens when those parents go away.
Could not reproduce the crash, but the backtrace is unequivocal.
Reviewed by Darin Adler.
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::removeChildScrollbar):
* accessibility/AccessibilityScrollbar.cpp:
(WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
* accessibility/AccessibilityScrollbar.h:
(WebCore::AccessibilityScrollbar::scrollbar):
(WebCore::AccessibilityScrollbar::isAccessibilityScrollbar):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (97302 => 97303)
--- trunk/Source/WebCore/ChangeLog 2011-10-12 21:21:51 UTC (rev 97302)
+++ trunk/Source/WebCore/ChangeLog 2011-10-12 21:25:34 UTC (rev 97303)
@@ -1,3 +1,22 @@
+2011-10-12 Chris Fleizach <[email protected]>
+
+ AX: CrashTracer: [USER] 296 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityScrollbar::document const + 29
+ https://bugs.webkit.org/show_bug.cgi?id=69936
+
+ AX Scrollbars have a weak pointer to their parent. They need to become AccessibilityMockObjects, so that they can
+ participate in the detachFromParent() methods that happens when those parents go away.
+ Could not reproduce the crash, but the backtrace is unequivocal.
+
+ Reviewed by Darin Adler.
+
+ * accessibility/AccessibilityScrollView.cpp:
+ (WebCore::AccessibilityScrollView::removeChildScrollbar):
+ * accessibility/AccessibilityScrollbar.cpp:
+ (WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
+ * accessibility/AccessibilityScrollbar.h:
+ (WebCore::AccessibilityScrollbar::scrollbar):
+ (WebCore::AccessibilityScrollbar::isAccessibilityScrollbar):
+
2011-10-12 David Hyatt <[email protected]>
https://bugs.webkit.org/show_bug.cgi?id=69950
Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp (97302 => 97303)
--- trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp 2011-10-12 21:21:51 UTC (rev 97302)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp 2011-10-12 21:25:34 UTC (rev 97303)
@@ -99,8 +99,10 @@
void AccessibilityScrollView::removeChildScrollbar(AccessibilityObject* scrollbar)
{
size_t pos = m_children.find(scrollbar);
- if (pos != WTF::notFound)
+ if (pos != WTF::notFound) {
+ m_children[pos]->detachFromParent();
m_children.remove(pos);
+ }
}
AccessibilityScrollbar* AccessibilityScrollView::addChildScrollbar(Scrollbar* scrollbar)
Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp (97302 => 97303)
--- trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp 2011-10-12 21:21:51 UTC (rev 97302)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp 2011-10-12 21:25:34 UTC (rev 97303)
@@ -38,7 +38,6 @@
AccessibilityScrollbar::AccessibilityScrollbar(Scrollbar* scrollbar)
: m_scrollbar(scrollbar)
- , m_parent(0)
{
ASSERT(scrollbar);
}
Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollbar.h (97302 => 97303)
--- trunk/Source/WebCore/accessibility/AccessibilityScrollbar.h 2011-10-12 21:21:51 UTC (rev 97302)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollbar.h 2011-10-12 21:25:34 UTC (rev 97303)
@@ -29,18 +29,17 @@
#ifndef AccessibilityScrollbar_h
#define AccessibilityScrollbar_h
-#include "AccessibilityObject.h"
+#include "AccessibilityMockObject.h"
namespace WebCore {
class Scrollbar;
-class AccessibilityScrollbar : public AccessibilityObject {
+class AccessibilityScrollbar : public AccessibilityMockObject {
public:
static PassRefPtr<AccessibilityScrollbar> create(Scrollbar*);
Scrollbar* scrollbar() const { return m_scrollbar.get(); }
- void setParent(AccessibilityObject* parent) { m_parent = parent; }
private:
AccessibilityScrollbar(Scrollbar*);
@@ -50,7 +49,6 @@
virtual bool canSetNumericValue() const { return true; }
virtual bool isAccessibilityScrollbar() const { return true; }
- virtual AccessibilityObject* parentObject() const { return m_parent; }
virtual LayoutRect elementRect() const;
virtual AccessibilityRole roleValue() const { return ScrollBarRole; }
@@ -64,7 +62,6 @@
RefPtr<Scrollbar> m_scrollbar;
AccessibilityOrientation m_orientation;
- AccessibilityObject* m_parent;
};
} // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes