Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: Source/core/accessibility/AccessibilityObject.h

Issue 14740025: Simplify and add caching for accessible bounding box calculation. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Re-landing with null check fix Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 * Copyright (C) 2008 Nuanti Ltd. 3 * Copyright (C) 2008 Nuanti Ltd.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 496
497 // Accessibility Text. 497 // Accessibility Text.
498 virtual void accessibilityText(Vector<AccessibilityText>&) { }; 498 virtual void accessibilityText(Vector<AccessibilityText>&) { };
499 virtual String textUnderElement() const { return String(); } 499 virtual String textUnderElement() const { return String(); }
500 500
501 // Accessibility Text - (To be deprecated). 501 // Accessibility Text - (To be deprecated).
502 virtual String accessibilityDescription() const { return String(); } 502 virtual String accessibilityDescription() const { return String(); }
503 virtual String title() const { return String(); } 503 virtual String title() const { return String(); }
504 virtual String helpText() const { return String(); } 504 virtual String helpText() const { return String(); }
505 505
506 // Position and size. 506 // Location and click point in frame-relative coordinates.
507 virtual LayoutRect boundingBoxRect() const { return LayoutRect(); } 507 virtual LayoutRect elementRect() const { return LayoutRect(); }
508 IntRect pixelSnappedBoundingBoxRect() const { return pixelSnappedIntRect(bou ndingBoxRect()); } 508 virtual void checkCachedElementRect() const { }
509 virtual LayoutRect elementRect() const = 0; 509 virtual void updateCachedElementRect() const { }
510 IntRect pixelSnappedElementRect() const { return pixelSnappedIntRect(element Rect()); } 510 virtual void markCachedElementRectDirty() const;
511 LayoutSize size() const { return elementRect().size(); }
512 IntSize pixelSnappedSize() const { return elementRect().pixelSnappedSize(); }
513 virtual IntPoint clickPoint(); 511 virtual IntPoint clickPoint();
514 static IntRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
515 512
516 // Hit testing. 513 // Hit testing.
517 // Called on the root AX object to return the deepest available element. 514 // Called on the root AX object to return the deepest available element.
518 virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const { r eturn 0; } 515 virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const { r eturn 0; }
519 // Called on the AX object after the render tree determines which is the rig ht AccessibilityRenderObject. 516 // Called on the AX object after the render tree determines which is the rig ht AccessibilityRenderObject.
520 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) co nst; 517 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) co nst;
521 518
522 // High-level accessibility tree access. Other modules should only use these functions. 519 // High-level accessibility tree access. Other modules should only use these functions.
523 const AccessibilityChildrenVector& children(); 520 const AccessibilityChildrenVector& children();
524 virtual AccessibilityObject* parentObject() const = 0; 521 virtual AccessibilityObject* parentObject() const = 0;
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 // Fenced components. 664 // Fenced components.
668 virtual String mathFencedOpenString() const { return String(); } 665 virtual String mathFencedOpenString() const { return String(); }
669 virtual String mathFencedCloseString() const { return String(); } 666 virtual String mathFencedCloseString() const { return String(); }
670 virtual int mathLineThickness() const { return 0; } 667 virtual int mathLineThickness() const { return 0; }
671 668
672 // Static helper functions. 669 // Static helper functions.
673 static bool isARIAControl(AccessibilityRole); 670 static bool isARIAControl(AccessibilityRole);
674 static bool isARIAInput(AccessibilityRole); 671 static bool isARIAInput(AccessibilityRole);
675 static AccessibilityObject* anchorElementForNode(Node*); 672 static AccessibilityObject* anchorElementForNode(Node*);
676 static AccessibilityRole ariaRoleToWebCoreRole(const String&); 673 static AccessibilityRole ariaRoleToWebCoreRole(const String&);
674 static IntRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
677 675
678 protected: 676 protected:
679 AXID m_id; 677 AXID m_id;
680 AccessibilityChildrenVector m_children; 678 AccessibilityChildrenVector m_children;
681 mutable bool m_haveChildren; 679 mutable bool m_haveChildren;
682 AccessibilityRole m_role; 680 AccessibilityRole m_role;
683 AccessibilityObjectInclusion m_lastKnownIsIgnoredValue; 681 AccessibilityObjectInclusion m_lastKnownIsIgnoredValue;
684 682
685 virtual bool computeAccessibilityIsIgnored() const { return true; } 683 virtual bool computeAccessibilityIsIgnored() const { return true; }
686 684
(...skipping 13 matching lines...) Expand all
700 #if !HAVE(ACCESSIBILITY) 698 #if !HAVE(ACCESSIBILITY)
701 inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObje ct::children() { return m_children; } 699 inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObje ct::children() { return m_children; }
702 inline const String& AccessibilityObject::actionVerb() const { return emptyStrin g(); } 700 inline const String& AccessibilityObject::actionVerb() const { return emptyStrin g(); }
703 inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; } 701 inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; }
704 inline void AccessibilityObject::updateBackingStore() { } 702 inline void AccessibilityObject::updateBackingStore() { }
705 #endif 703 #endif
706 704
707 } // namespace WebCore 705 } // namespace WebCore
708 706
709 #endif // AccessibilityObject_h 707 #endif // AccessibilityObject_h
OLDNEW
« no previous file with comments | « Source/core/accessibility/AccessibilityNodeObject.cpp ('k') | Source/core/accessibility/AccessibilityObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698