OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 3410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3421 // then notify the AT of changes. | 3421 // then notify the AT of changes. |
3422 AXObjectCache* cache = axObjectCache(); | 3422 AXObjectCache* cache = axObjectCache(); |
3423 for (RenderObject* renderParent = m_renderer; renderParent; renderParent = r
enderParent->parent()) { | 3423 for (RenderObject* renderParent = m_renderer; renderParent; renderParent = r
enderParent->parent()) { |
3424 AccessibilityObject* parent = cache->get(renderParent); | 3424 AccessibilityObject* parent = cache->get(renderParent); |
3425 if (!parent) | 3425 if (!parent) |
3426 continue; | 3426 continue; |
3427 | 3427 |
3428 if (parent->supportsARIALiveRegion()) | 3428 if (parent->supportsARIALiveRegion()) |
3429 cache->postNotification(renderParent, AXObjectCache::AXLiveRegionCha
nged, true); | 3429 cache->postNotification(renderParent, AXObjectCache::AXLiveRegionCha
nged, true); |
3430 | 3430 |
3431 if (parent->isARIATextControl() && !parent->isNativeTextControl() && !pa
rent->node()->isContentEditable()) | 3431 if (parent->isARIATextControl() && !parent->isNativeTextControl() && !pa
rent->node()->isContentEditable()) { |
| 3432 // isContentEditable() might trigger a layout update and invalidate
the parent. |
| 3433 ASSERT(!parent->renderer() || parent->renderer() == renderParent); |
| 3434 if (parent->isDetached()) |
| 3435 break; |
| 3436 |
3432 cache->postNotification(renderParent, AXObjectCache::AXValueChanged,
true); | 3437 cache->postNotification(renderParent, AXObjectCache::AXValueChanged,
true); |
| 3438 } |
3433 } | 3439 } |
3434 } | 3440 } |
3435 | 3441 |
3436 void AccessibilityRenderObject::childrenChanged() | 3442 void AccessibilityRenderObject::childrenChanged() |
3437 { | 3443 { |
3438 // This method is meant as a quick way of marking a portion of the accessibi
lity tree dirty. | 3444 // This method is meant as a quick way of marking a portion of the accessibi
lity tree dirty. |
3439 if (!m_renderer) | 3445 if (!m_renderer) |
3440 return; | 3446 return; |
3441 | 3447 |
3442 axObjectCache()->postNotification(this, document(), AXObjectCache::AXChildre
nChanged, true); | 3448 axObjectCache()->postNotification(this, document(), AXObjectCache::AXChildre
nChanged, true); |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4010 | 4016 |
4011 RenderBox* box = toRenderBox(m_renderer); | 4017 RenderBox* box = toRenderBox(m_renderer); |
4012 if (!box->canBeScrolledAndHasScrollableArea()) | 4018 if (!box->canBeScrolledAndHasScrollableArea()) |
4013 return; | 4019 return; |
4014 | 4020 |
4015 RenderLayer* layer = box->layer(); | 4021 RenderLayer* layer = box->layer(); |
4016 layer->scrollToOffset(point.x(), point.y(), RenderLayer::ScrollOffsetClamped
); | 4022 layer->scrollToOffset(point.x(), point.y(), RenderLayer::ScrollOffsetClamped
); |
4017 } | 4023 } |
4018 | 4024 |
4019 } // namespace WebCore | 4025 } // namespace WebCore |
OLD | NEW |