| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 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 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 : m_id(0) | 229 : m_id(0) |
| 230 , m_haveChildren(false) | 230 , m_haveChildren(false) |
| 231 , m_role(UnknownRole) | 231 , m_role(UnknownRole) |
| 232 , m_lastKnownIsIgnoredValue(DefaultBehavior) | 232 , m_lastKnownIsIgnoredValue(DefaultBehavior) |
| 233 , m_detached(false) | 233 , m_detached(false) |
| 234 , m_parent(0) | 234 , m_parent(0) |
| 235 , m_lastModificationCount(-1) | 235 , m_lastModificationCount(-1) |
| 236 , m_cachedIsIgnored(false) | 236 , m_cachedIsIgnored(false) |
| 237 , m_cachedIsInertOrAriaHidden(false) | 237 , m_cachedIsInertOrAriaHidden(false) |
| 238 , m_cachedIsDescendantOfBarrenParent(false) | 238 , m_cachedIsDescendantOfBarrenParent(false) |
| 239 , m_cachedIsDescendantOfDisabledNode(false) |
| 239 , m_cachedLiveRegionRoot(0) | 240 , m_cachedLiveRegionRoot(0) |
| 240 , m_axObjectCache(axObjectCache) | 241 , m_axObjectCache(axObjectCache) |
| 241 { | 242 { |
| 242 } | 243 } |
| 243 | 244 |
| 244 AXObject::~AXObject() | 245 AXObject::~AXObject() |
| 245 { | 246 { |
| 246 ASSERT(isDetached()); | 247 ASSERT(isDetached()); |
| 247 } | 248 } |
| 248 | 249 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 AXObjectCacheImpl* cache = axObjectCache(); | 365 AXObjectCacheImpl* cache = axObjectCache(); |
| 365 if (!cache) | 366 if (!cache) |
| 366 return; | 367 return; |
| 367 | 368 |
| 368 if (cache->modificationCount() == m_lastModificationCount) | 369 if (cache->modificationCount() == m_lastModificationCount) |
| 369 return; | 370 return; |
| 370 | 371 |
| 371 m_lastModificationCount = cache->modificationCount(); | 372 m_lastModificationCount = cache->modificationCount(); |
| 372 m_cachedIsInertOrAriaHidden = computeIsInertOrAriaHidden(); | 373 m_cachedIsInertOrAriaHidden = computeIsInertOrAriaHidden(); |
| 373 m_cachedIsDescendantOfBarrenParent = computeIsDescendantOfBarrenParent(); | 374 m_cachedIsDescendantOfBarrenParent = computeIsDescendantOfBarrenParent(); |
| 375 m_cachedIsDescendantOfDisabledNode = computeIsDescendantOfDisabledNode(); |
| 374 m_cachedIsIgnored = computeAccessibilityIsIgnored(); | 376 m_cachedIsIgnored = computeAccessibilityIsIgnored(); |
| 375 m_cachedLiveRegionRoot = isLiveRegion() ? | 377 m_cachedLiveRegionRoot = isLiveRegion() ? |
| 376 this : | 378 this : |
| 377 (parentObjectIfExists() ? parentObjectIfExists()->liveRegionRoot() : 0); | 379 (parentObjectIfExists() ? parentObjectIfExists()->liveRegionRoot() : 0); |
| 378 } | 380 } |
| 379 | 381 |
| 380 bool AXObject::accessibilityIsIgnoredByDefault() const | 382 bool AXObject::accessibilityIsIgnoredByDefault() const |
| 381 { | 383 { |
| 382 return defaultObjectInclusion() == IgnoreObject; | 384 return defaultObjectInclusion() == IgnoreObject; |
| 383 } | 385 } |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 const AXObject* AXObject::ariaHiddenRoot() const | 442 const AXObject* AXObject::ariaHiddenRoot() const |
| 441 { | 443 { |
| 442 for (const AXObject* object = this; object; object = object->parentObject())
{ | 444 for (const AXObject* object = this; object; object = object->parentObject())
{ |
| 443 if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true")) | 445 if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true")) |
| 444 return object; | 446 return object; |
| 445 } | 447 } |
| 446 | 448 |
| 447 return 0; | 449 return 0; |
| 448 } | 450 } |
| 449 | 451 |
| 452 bool AXObject::isDescendantOfDisabledNode() const |
| 453 { |
| 454 updateCachedAttributeValuesIfNeeded(); |
| 455 return m_cachedIsDescendantOfDisabledNode; |
| 456 } |
| 457 |
| 458 bool AXObject::computeIsDescendantOfDisabledNode() const |
| 459 { |
| 460 const AtomicString& disabled = getAttribute(aria_disabledAttr); |
| 461 if (equalIgnoringCase(disabled, "true")) |
| 462 return true; |
| 463 if (equalIgnoringCase(disabled, "false")) |
| 464 return false; |
| 465 |
| 466 if (AXObject* parent = parentObject()) |
| 467 return parent->isDescendantOfDisabledNode(); |
| 468 |
| 469 return false; |
| 470 } |
| 471 |
| 450 bool AXObject::lastKnownIsIgnoredValue() | 472 bool AXObject::lastKnownIsIgnoredValue() |
| 451 { | 473 { |
| 452 if (m_lastKnownIsIgnoredValue == DefaultBehavior) | 474 if (m_lastKnownIsIgnoredValue == DefaultBehavior) |
| 453 m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : In
cludeObject; | 475 m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : In
cludeObject; |
| 454 | 476 |
| 455 return m_lastKnownIsIgnoredValue == IgnoreObject; | 477 return m_lastKnownIsIgnoredValue == IgnoreObject; |
| 456 } | 478 } |
| 457 | 479 |
| 458 void AXObject::setLastKnownIsIgnoredValue(bool isIgnored) | 480 void AXObject::setLastKnownIsIgnoredValue(bool isIgnored) |
| 459 { | 481 { |
| (...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1121 } | 1143 } |
| 1122 | 1144 |
| 1123 const AtomicString& AXObject::roleName(AccessibilityRole role) | 1145 const AtomicString& AXObject::roleName(AccessibilityRole role) |
| 1124 { | 1146 { |
| 1125 static const Vector<AtomicString>* roleNameVector = createRoleNameVector(); | 1147 static const Vector<AtomicString>* roleNameVector = createRoleNameVector(); |
| 1126 | 1148 |
| 1127 return roleNameVector->at(role); | 1149 return roleNameVector->at(role); |
| 1128 } | 1150 } |
| 1129 | 1151 |
| 1130 } // namespace blink | 1152 } // namespace blink |
| OLD | NEW |