Index: Source/WebCore/platform/Scrollbar.cpp |
=================================================================== |
--- Source/WebCore/platform/Scrollbar.cpp (revision 146890) |
+++ Source/WebCore/platform/Scrollbar.cpp (working copy) |
@@ -110,8 +110,8 @@ |
Scrollbar::~Scrollbar() |
{ |
- if (AXObjectCache* cache = existingAXObjectCache()) |
- cache->remove(this); |
+ if (AXObjectCache::accessibilityEnabled() && axObjectCache()) |
+ axObjectCache()->remove(this); |
stopTimerIfNeeded(); |
@@ -566,13 +566,16 @@ |
{ |
return m_scrollableArea && m_scrollableArea->isActive(); |
} |
- |
-AXObjectCache* Scrollbar::existingAXObjectCache() const |
+ |
+AXObjectCache* Scrollbar::axObjectCache() const |
{ |
- if (!parent()) |
+ if (!parent() || !parent()->isFrameView()) |
return 0; |
- return parent()->axObjectCache(); |
+ // FIXME: Accessing the FrameView and Document here is a layering violation |
+ // and should be removed. |
+ Document* document = toFrameView(parent())->frame()->document(); |
+ return document->axObjectCache(); |
} |
void Scrollbar::invalidateRect(const IntRect& rect) |