| 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)
|
|
|