Title: [105216] branches/safari-534.54-branch/Source/WebCore

Diff

Modified: branches/safari-534.54-branch/Source/WebCore/ChangeLog (105215 => 105216)


--- branches/safari-534.54-branch/Source/WebCore/ChangeLog	2012-01-18 00:54:18 UTC (rev 105215)
+++ branches/safari-534.54-branch/Source/WebCore/ChangeLog	2012-01-18 00:59:02 UTC (rev 105216)
@@ -1,5 +1,28 @@
 2011-1-17  Lucas Forschler  <lforsch...@apple.com>
 
+    Merge 97303
+
+    2011-10-12  Chris Fleizach  <cfleiz...@apple.com>
+
+            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-1-17  Lucas Forschler  <lforsch...@apple.com>
+
     Merge 96973
 
     2011-10-07  Chris Fleizach  <cfleiz...@apple.com>

Modified: branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollView.cpp (105215 => 105216)


--- branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollView.cpp	2012-01-18 00:54:18 UTC (rev 105215)
+++ branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollView.cpp	2012-01-18 00:59:02 UTC (rev 105216)
@@ -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: branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.cpp (105215 => 105216)


--- branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.cpp	2012-01-18 00:54:18 UTC (rev 105215)
+++ branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.cpp	2012-01-18 00:59:02 UTC (rev 105216)
@@ -38,7 +38,6 @@
 
 AccessibilityScrollbar::AccessibilityScrollbar(Scrollbar* scrollbar)
     : m_scrollbar(scrollbar)
-    , m_parent(0)
 {
     ASSERT(scrollbar);
 }

Modified: branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.h (105215 => 105216)


--- branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.h	2012-01-18 00:54:18 UTC (rev 105215)
+++ branches/safari-534.54-branch/Source/WebCore/accessibility/AccessibilityScrollbar.h	2012-01-18 00:59:02 UTC (rev 105216)
@@ -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 IntRect 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
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to