[GTK] REGRESSION(183368): It made editing tests assert
authorjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 May 2015 19:37:55 +0000 (19:37 +0000)
committerjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 May 2015 19:37:55 +0000 (19:37 +0000)
commitdd490dd140fa024dd2636082e6174f73b87c16ba
treec32e310c02b013d98816de5f41da13ca26f29293
parentd6cd77c80285598789d2ea5d42a08106caa195fe
[GTK] REGRESSION(183368): It made editing tests assert
https://bugs.webkit.org/show_bug.cgi?id=144447

Reviewed by Chris Fleizach.

Don't notify platforms of editing actions of type EditActionUnspecified.
If we don't know what the action is, platform accessibility APIs certainly
won't.

Add AXTextEditTypeAttributesChange and AXTextAttributesChanged as catch-alls
for formatting changes. ATK lacks finely-grained signals through which to
specify which text attributes have changed. If other platforms have such
signals, new types can always be added.

Don't post an accessible replacement notification for AXTextEditTypeCut.
The notification is handled by DeleteSelectionCommand. It is possible for
white space to be inserted in preparation for a cut which was triggering
a not-reached assert, but insertion of whitespace in preparation for a
cut does not seem notification-worthy.

Treat AXTextEditTypeDictation the same as other insertion types (insert,
paste, typing) with respect to replacement notifications.

No new tests. The hundreds of editing tests that had been crashing seem sufficient.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::textChangeForEditType):
* accessibility/AXObjectCache.h:
* accessibility/AXTextStateChangeIntent.h:
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):
* editing/EditCommand.cpp:
(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/ReplaceInsertIntoTextNodeCommand.cpp:
(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AXObjectCache.cpp
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/accessibility/AXTextStateChangeIntent.h
Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
Source/WebCore/editing/AppendNodeCommand.cpp
Source/WebCore/editing/DeleteFromTextNodeCommand.cpp
Source/WebCore/editing/EditCommand.cpp
Source/WebCore/editing/EditCommand.h
Source/WebCore/editing/InsertIntoTextNodeCommand.cpp
Source/WebCore/editing/InsertNodeBeforeCommand.cpp
Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.cpp