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

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: Update comment 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 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 virtual const AtomicString& accessKey() const { return nullAtom; } 418 virtual const AtomicString& accessKey() const { return nullAtom; }
419 virtual int blockquoteLevel() const; 419 virtual int blockquoteLevel() const;
420 virtual bool canvasHasFallbackContent() const { return false; } 420 virtual bool canvasHasFallbackContent() const { return false; }
421 virtual AccessibilityObject* correspondingControlForLabelElement() const { r eturn 0; } 421 virtual AccessibilityObject* correspondingControlForLabelElement() const { r eturn 0; }
422 virtual AccessibilityObject* correspondingLabelForControlElement() const { r eturn 0; } 422 virtual AccessibilityObject* correspondingLabelForControlElement() const { r eturn 0; }
423 virtual bool exposesTitleUIElement() const { return true; } 423 virtual bool exposesTitleUIElement() const { return true; }
424 virtual int headingLevel() const { return 0; } 424 virtual int headingLevel() const { return 0; }
425 // 1-based, to match the aria-level spec. 425 // 1-based, to match the aria-level spec.
426 virtual unsigned hierarchicalLevel() const { return 0; } 426 virtual unsigned hierarchicalLevel() const { return 0; }
427 virtual void linkedUIElements(AccessibilityChildrenVector&) const { } 427 virtual void linkedUIElements(AccessibilityChildrenVector&) const { }
428 virtual AccessibilityOrientation orientation() const; 428 virtual AccessibilityOrientation orientation();
429 virtual void tabChildren(AccessibilityChildrenVector&) { } 429 virtual void tabChildren(AccessibilityChildrenVector&) { }
430 virtual int tableLevel() const { return 0; } 430 virtual int tableLevel() const { return 0; }
431 virtual String text() const { return String(); } 431 virtual String text() const { return String(); }
432 virtual int textLength() const { return 0; } 432 virtual int textLength() const { return 0; }
433 virtual AccessibilityObject* titleUIElement() const { return 0; } 433 virtual AccessibilityObject* titleUIElement() const { return 0; }
434 virtual KURL url() const { return KURL(); } 434 virtual KURL url() const { return KURL(); }
435 virtual void visibleChildren(AccessibilityChildrenVector&) { } 435 virtual void visibleChildren(AccessibilityChildrenVector&) { }
436 436
437 // Properties of interactive elements. 437 // Properties of interactive elements.
438 virtual const String& actionVerb() const; 438 virtual const String& actionVerb() const;
(...skipping 57 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() { return LayoutRect(); }
508 IntRect pixelSnappedBoundingBoxRect() const { return pixelSnappedIntRect(bou ndingBoxRect()); } 508 virtual void updateCachedElementRect() { }
509 virtual LayoutRect elementRect() const = 0; 509 virtual void markCachedElementRectDirty();
510 IntRect pixelSnappedElementRect() const { return pixelSnappedIntRect(element Rect()); }
511 LayoutSize size() const { return elementRect().size(); }
512 IntSize pixelSnappedSize() const { return elementRect().pixelSnappedSize(); }
513 virtual IntPoint clickPoint(); 510 virtual IntPoint clickPoint();
514 static IntRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
515 511
516 // Hit testing. 512 // Hit testing.
517 // Called on the root AX object to return the deepest available element. 513 // Called on the root AX object to return the deepest available element.
518 virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const { r eturn 0; } 514 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. 515 // Called on the AX object after the render tree determines which is the rig ht AccessibilityRenderObject.
520 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) co nst; 516 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&);
521 517
522 // High-level accessibility tree access. Other modules should only use these functions. 518 // High-level accessibility tree access. Other modules should only use these functions.
523 const AccessibilityChildrenVector& children(); 519 const AccessibilityChildrenVector& children();
524 virtual AccessibilityObject* parentObject() const = 0; 520 virtual AccessibilityObject* parentObject() const = 0;
525 virtual AccessibilityObject* parentObjectUnignored() const; 521 virtual AccessibilityObject* parentObjectUnignored() const;
526 virtual AccessibilityObject* parentObjectIfExists() const { return 0; } 522 virtual AccessibilityObject* parentObjectIfExists() const { return 0; }
527 523
528 // Low-level accessibility tree exploration, only for use within the accessi bility module. 524 // Low-level accessibility tree exploration, only for use within the accessi bility module.
529 virtual AccessibilityObject* firstChild() const { return 0; } 525 virtual AccessibilityObject* firstChild() const { return 0; }
530 virtual AccessibilityObject* lastChild() const { return 0; } 526 virtual AccessibilityObject* lastChild() const { return 0; }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 virtual VisibleSelection selection() const { return VisibleSelection(); } 566 virtual VisibleSelection selection() const { return VisibleSelection(); }
571 virtual String selectedText() const { return String(); } 567 virtual String selectedText() const { return String(); }
572 568
573 // Modify or take an action on an object. 569 // Modify or take an action on an object.
574 virtual void increment() { } 570 virtual void increment() { }
575 virtual void decrement() { } 571 virtual void decrement() { }
576 virtual void makeRangeVisible(const PlainTextRange&) { } 572 virtual void makeRangeVisible(const PlainTextRange&) { }
577 virtual bool performDefaultAction() const { return press(); } 573 virtual bool performDefaultAction() const { return press(); }
578 virtual bool press() const; 574 virtual bool press() const;
579 // Make this object visible by scrolling as many nested scrollable views as needed. 575 // Make this object visible by scrolling as many nested scrollable views as needed.
580 virtual void scrollToMakeVisible() const; 576 virtual void scrollToMakeVisible();
581 // Same, but if the whole object can't be made visible, try for this subrect , in local coordinates. 577 // Same, but if the whole object can't be made visible, try for this subrect , in local coordinates.
582 virtual void scrollToMakeVisibleWithSubFocus(const IntRect&) const; 578 virtual void scrollToMakeVisibleWithSubFocus(const IntRect&);
583 // Scroll this object to a given point in global coordinates of the top-leve l window. 579 // Scroll this object to a given point in global coordinates of the top-leve l window.
584 virtual void scrollToGlobalPoint(const IntPoint&) const; 580 virtual void scrollToGlobalPoint(const IntPoint&);
585 virtual void setAccessibleName(const AtomicString&) { } 581 virtual void setAccessibleName(const AtomicString&) { }
586 virtual void setFocused(bool) { } 582 virtual void setFocused(bool) { }
587 virtual void setSelected(bool) { } 583 virtual void setSelected(bool) { }
588 virtual void setSelectedRows(AccessibilityChildrenVector&) { } 584 virtual void setSelectedRows(AccessibilityChildrenVector&) { }
589 virtual void setSelectedText(const String&) { } 585 virtual void setSelectedText(const String&) { }
590 virtual void setSelectedTextRange(const PlainTextRange&) { } 586 virtual void setSelectedTextRange(const PlainTextRange&) { }
591 virtual void setValue(const String&) { } 587 virtual void setValue(const String&) { }
592 virtual void setValue(float) { } 588 virtual void setValue(float) { }
593 589
594 // Notifications that this object may have changed. 590 // Notifications that this object may have changed.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 // Fenced components. 663 // Fenced components.
668 virtual String mathFencedOpenString() const { return String(); } 664 virtual String mathFencedOpenString() const { return String(); }
669 virtual String mathFencedCloseString() const { return String(); } 665 virtual String mathFencedCloseString() const { return String(); }
670 virtual int mathLineThickness() const { return 0; } 666 virtual int mathLineThickness() const { return 0; }
671 667
672 // Static helper functions. 668 // Static helper functions.
673 static bool isARIAControl(AccessibilityRole); 669 static bool isARIAControl(AccessibilityRole);
674 static bool isARIAInput(AccessibilityRole); 670 static bool isARIAInput(AccessibilityRole);
675 static AccessibilityObject* anchorElementForNode(Node*); 671 static AccessibilityObject* anchorElementForNode(Node*);
676 static AccessibilityRole ariaRoleToWebCoreRole(const String&); 672 static AccessibilityRole ariaRoleToWebCoreRole(const String&);
673 static IntRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
677 674
678 protected: 675 protected:
679 AXID m_id; 676 AXID m_id;
680 AccessibilityChildrenVector m_children; 677 AccessibilityChildrenVector m_children;
681 mutable bool m_haveChildren; 678 mutable bool m_haveChildren;
682 AccessibilityRole m_role; 679 AccessibilityRole m_role;
683 AccessibilityObjectInclusion m_lastKnownIsIgnoredValue; 680 AccessibilityObjectInclusion m_lastKnownIsIgnoredValue;
684 681
685 virtual bool computeAccessibilityIsIgnored() const { return true; } 682 virtual bool computeAccessibilityIsIgnored() const { return true; }
686 683
(...skipping 13 matching lines...) Expand all
700 #if !HAVE(ACCESSIBILITY) 697 #if !HAVE(ACCESSIBILITY)
701 inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObje ct::children() { return m_children; } 698 inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObje ct::children() { return m_children; }
702 inline const String& AccessibilityObject::actionVerb() const { return emptyStrin g(); } 699 inline const String& AccessibilityObject::actionVerb() const { return emptyStrin g(); }
703 inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; } 700 inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; }
704 inline void AccessibilityObject::updateBackingStore() { } 701 inline void AccessibilityObject::updateBackingStore() { }
705 #endif 702 #endif
706 703
707 } // namespace WebCore 704 } // namespace WebCore
708 705
709 #endif // AccessibilityObject_h 706 #endif // AccessibilityObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698