[Webkit-unassigned] [Bug 123153] [ATK] Avoid explicit traversal of text controls and the render tree in AtkText implementation

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 30 04:04:39 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=123153





--- Comment #5 from Mario Sanchez Prada <mario at webkit.org>  2013-10-30 04:03:24 PST ---
(From update of attachment 214850)
View in context: https://bugs.webkit.org/attachment.cgi?id=214850&action=review

>> Source/WebCore/ChangeLog:8
>> +        Remove functions from the AtkText implementation that manually walk the
> 
> can you add why you want to do this. its not clear what the purpose is

Sure. I will expand the description in the ChangeLog with more detail, more in the line of this bug's description.

>> Source/WebCore/accessibility/AccessibilityObject.cpp:1976
>> +        | TextIteratorIgnoresChildrenForReplacedObjects);
> 
> is there ever a case where you don't want to do these two things together?

Not for ATK. However, I added this extra option because I assume other port might be using the TextIteratorEmitsObjectReplacementCharacters value, since it was there already before I added this bit some time ago.

In any case, that does not seem to keep being the case, since a quick grep tells me nobody other than this function is actually requiring that behaviour:

  $ git grep TextIteratorEmitsObjectReplacementCharacters
  WebCore/ChangeLog-2011-06-04:        enumeration (TextIteratorEmitsObjectReplacementCharacters) and new
  WebCore/accessibility/AccessibilityObject.cpp:    behavior = static_cast<TextIteratorBehavior>(behavior | TextIteratorEmitsObjectReplacementCharacters);
  WebCore/editing/TextIterator.cpp:    , m_emitsObjectReplacementCharacters(behavior & TextIteratorEmitsObjectReplacementCharacters)
  WebCore/editing/TextIterator.h:    TextIteratorEmitsObjectReplacementCharacters = 1 << 4,


Thus, I think it makes sense to merge them in two, probably by keeping the old name and just expanding its effect so it ignores the children when enabled.

I don't know... maybe this was used in the past by ports such as chromium or Qt?

>> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:659
>> +        if (!m_renderer->isAnonymous()) {
> 
> can this check be done by just checking if this->node() == 0?

Probably, actually node() includes the isAnonymous() check anyway:

  Node* RenderObject::node() const { return isAnonymous() ? 0 : &m_node; }

I'll change that, if you think it's better.

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:671
> +                ASSERT(!firstChildRenderer->isAnonymous());
> +                ASSERT(!lastChildRenderer->isAnonymous());

I'll change this asserts too to check that ASSERT({first|last}ChildRenderer->node())

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list