haikuwebkit/Source/WebCore/accessibility/AXTextStateChangeIntent.h

95 lines
3.4 KiB
C
Raw Permalink Normal View History

AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Patch by Doug Russell <d_russell@apple.com> on 2015-04-26 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. Source/WebCore: Tests: platform/mac/accessibility/input-replacevalue-userinfo.html platform/mac/accessibility/selection-change-userinfo.html platform/mac/accessibility/value-change-userinfo.html * CMakeLists.txt: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::showIntent): (WebCore::AXObjectCache::setTextSelectionIntent): (WebCore::isPasswordFieldOrContainedByPasswordField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::rootWebArea): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::selectedChildrenChanged): Deleted. (WebCore::AXObjectCache::frameLoadingEventNotification): Deleted. * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::nodeTextChangePlatformNotification): (WebCore::AXObjectCache::computedObjectAttributeCache): Deleted. (WebCore::AXObjectCache::getOrCreate): Deleted. (WebCore::AXObjectCache::attachWrapper): Deleted. * accessibility/AXTextStateChangeIntent.h: Added. (WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isContainedByPasswordField): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): (WebCore::AccessibilityObject::isPasswordField): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * accessibility/AccessibilityScrollView.h: * accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::nodeTextChangePlatformNotification): * accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::setShouldRepostNotificationsForTests): (WebCore::AXPostNotificationWithUserInfo): (WebCore::AXObjectCache::postPlatformNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::textReplacementChangeDictionary): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]): (arrayRemovingNonJSONTypes): (dictionaryRemovingNonJSONTypes): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (textMarkerRangeFromVisiblePositions): (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): (WebCore::sendAXTextChangedIgnoringLineBreaks): (WebCore::AppendNodeCommand::doApply): (WebCore::AppendNodeCommand::doUnapply): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::ApplyStyleCommand): (WebCore::ApplyStyleCommand::applyBlockStyle): Deleted. * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::EditCommandComposition::unapplyEditType): (WebCore::CompositeEditCommand::CompositeEditCommand): (WebCore::CompositeEditCommand::apply): (WebCore::CompositeEditCommand::insertParagraphSeparator): (WebCore::CompositeEditCommand::insertNodeBefore): (WebCore::CompositeEditCommand::appendNode): (WebCore::CompositeEditCommand::removeNodePreservingChildren): (WebCore::CompositeEditCommand::insertTextIntoNode): (WebCore::CompositeEditCommand::deleteTextFromNode): (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): (WebCore::EditCommandComposition::getNodesInCommand): Deleted. (WebCore::CompositeEditCommand::applyStyle): Deleted. (WebCore::CompositeEditCommand::insertLineBreak): Deleted. (WebCore::CompositeEditCommand::insertNodeAt): Deleted. (WebCore::CompositeEditCommand::removeChildrenInRange): Deleted. (WebCore::CompositeEditCommand::inputText): Deleted. * editing/CompositeEditCommand.h: * editing/DeleteFromTextNodeCommand.cpp: (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): (WebCore::DeleteFromTextNodeCommand::doApply): (WebCore::DeleteFromTextNodeCommand::doUnapply): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): (WebCore::DeleteFromTextNodeCommand::deletedText): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted. * editing/DeleteSelectionCommand.h: (WebCore::DeleteSelectionCommand::create): * editing/DictationCommand.cpp: (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): * editing/EditAction.h: * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): (WebCore::EditCommand::editingAction): (WebCore::EditCommand::applyEditType): (WebCore::EditCommand::unapplyEditType): (WebCore::SimpleEditCommand::SimpleEditCommand): (WebCore::SimpleEditCommand::notifyAccessibilityForTextChange): (WebCore::EditCommand::setParent): Deleted. * editing/EditCommand.h: * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::deleteSelectionWithSmartDelete): (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::replaceSelectionWithText): (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::performCutOrCopy): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::changeBackToReplacedString): (WebCore::Editor::transpose): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeInsertFragment): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::isBoundary): (WebCore::FrameSelection::textSelectionIntent): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::wordSelectionContainingCaretSelection): (WebCore::FrameSelection::modifyMovingBackward): Deleted. (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted. (WebCore::FrameSelection::selectionAtWordStart): Deleted. * editing/FrameSelection.h: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): (WebCore::FrameSelection::selection): Deleted. * editing/InsertIntoTextNodeCommand.cpp: (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): (WebCore::InsertIntoTextNodeCommand::doApply): (WebCore::InsertIntoTextNodeCommand::doUnapply): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): (WebCore::InsertIntoTextNodeCommand::insertedText): * editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): (WebCore::InsertNodeBeforeCommand::doApply): (WebCore::InsertNodeBeforeCommand::doUnapply): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): * editing/InsertParagraphSeparatorCommand.h: (WebCore::InsertParagraphSeparatorCommand::create): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): * editing/InsertTextCommand.h: (WebCore::InsertTextCommand::create): (WebCore::InsertTextCommand::createWithMarkerSupplier): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/RemoveNodePreservingChildrenCommand.h: (WebCore::RemoveNodePreservingChildrenCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h. (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): (WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h. * editing/ReplaceInsertIntoTextNodeCommand.cpp: Added. (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted. (WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted. * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertTextRunWithoutNewlines): (WebCore::TypingCommand::insertParagraphSeparator): * editing/atk/FrameSelectionAtk.cpp: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: * editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setInnerTextValue): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): Source/WebKit/mac: * WebCoreSupport/WebEditorClient.mm: (undoNameForEditAction): Source/WebKit2: * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Tools: * DumpRenderTree/mac/AccessibilityNotificationHandler.h: * DumpRenderTree/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler stopObserving]): (-[AccessibilityNotificationHandler _notificationReceived:]): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::removeNotificationListener): * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler _notificationReceived:]): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::removeNotificationListener): LayoutTests: * platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added. * platform/mac/accessibility/input-replacevalue-userinfo.html: Added. * platform/mac/accessibility/selection-change-userinfo-expected.txt: Added. * platform/mac/accessibility/selection-change-userinfo.html: Added. * platform/mac/accessibility/value-change-userinfo-expected.txt: Added. * platform/mac/accessibility/value-change-userinfo.html: Added. Canonical link: https://commits.webkit.org/162232@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 22:17:11 +00:00
/*
* Copyright (C) 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Patch by Doug Russell <d_russell@apple.com> on 2015-04-26 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. Source/WebCore: Tests: platform/mac/accessibility/input-replacevalue-userinfo.html platform/mac/accessibility/selection-change-userinfo.html platform/mac/accessibility/value-change-userinfo.html * CMakeLists.txt: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::showIntent): (WebCore::AXObjectCache::setTextSelectionIntent): (WebCore::isPasswordFieldOrContainedByPasswordField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::rootWebArea): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::selectedChildrenChanged): Deleted. (WebCore::AXObjectCache::frameLoadingEventNotification): Deleted. * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::nodeTextChangePlatformNotification): (WebCore::AXObjectCache::computedObjectAttributeCache): Deleted. (WebCore::AXObjectCache::getOrCreate): Deleted. (WebCore::AXObjectCache::attachWrapper): Deleted. * accessibility/AXTextStateChangeIntent.h: Added. (WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isContainedByPasswordField): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): (WebCore::AccessibilityObject::isPasswordField): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * accessibility/AccessibilityScrollView.h: * accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::nodeTextChangePlatformNotification): * accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::setShouldRepostNotificationsForTests): (WebCore::AXPostNotificationWithUserInfo): (WebCore::AXObjectCache::postPlatformNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::textReplacementChangeDictionary): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]): (arrayRemovingNonJSONTypes): (dictionaryRemovingNonJSONTypes): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (textMarkerRangeFromVisiblePositions): (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): (WebCore::sendAXTextChangedIgnoringLineBreaks): (WebCore::AppendNodeCommand::doApply): (WebCore::AppendNodeCommand::doUnapply): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::ApplyStyleCommand): (WebCore::ApplyStyleCommand::applyBlockStyle): Deleted. * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::EditCommandComposition::unapplyEditType): (WebCore::CompositeEditCommand::CompositeEditCommand): (WebCore::CompositeEditCommand::apply): (WebCore::CompositeEditCommand::insertParagraphSeparator): (WebCore::CompositeEditCommand::insertNodeBefore): (WebCore::CompositeEditCommand::appendNode): (WebCore::CompositeEditCommand::removeNodePreservingChildren): (WebCore::CompositeEditCommand::insertTextIntoNode): (WebCore::CompositeEditCommand::deleteTextFromNode): (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): (WebCore::EditCommandComposition::getNodesInCommand): Deleted. (WebCore::CompositeEditCommand::applyStyle): Deleted. (WebCore::CompositeEditCommand::insertLineBreak): Deleted. (WebCore::CompositeEditCommand::insertNodeAt): Deleted. (WebCore::CompositeEditCommand::removeChildrenInRange): Deleted. (WebCore::CompositeEditCommand::inputText): Deleted. * editing/CompositeEditCommand.h: * editing/DeleteFromTextNodeCommand.cpp: (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): (WebCore::DeleteFromTextNodeCommand::doApply): (WebCore::DeleteFromTextNodeCommand::doUnapply): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): (WebCore::DeleteFromTextNodeCommand::deletedText): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted. * editing/DeleteSelectionCommand.h: (WebCore::DeleteSelectionCommand::create): * editing/DictationCommand.cpp: (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): * editing/EditAction.h: * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): (WebCore::EditCommand::editingAction): (WebCore::EditCommand::applyEditType): (WebCore::EditCommand::unapplyEditType): (WebCore::SimpleEditCommand::SimpleEditCommand): (WebCore::SimpleEditCommand::notifyAccessibilityForTextChange): (WebCore::EditCommand::setParent): Deleted. * editing/EditCommand.h: * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::deleteSelectionWithSmartDelete): (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::replaceSelectionWithText): (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::performCutOrCopy): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::changeBackToReplacedString): (WebCore::Editor::transpose): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeInsertFragment): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::isBoundary): (WebCore::FrameSelection::textSelectionIntent): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::wordSelectionContainingCaretSelection): (WebCore::FrameSelection::modifyMovingBackward): Deleted. (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted. (WebCore::FrameSelection::selectionAtWordStart): Deleted. * editing/FrameSelection.h: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): (WebCore::FrameSelection::selection): Deleted. * editing/InsertIntoTextNodeCommand.cpp: (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): (WebCore::InsertIntoTextNodeCommand::doApply): (WebCore::InsertIntoTextNodeCommand::doUnapply): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): (WebCore::InsertIntoTextNodeCommand::insertedText): * editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): (WebCore::InsertNodeBeforeCommand::doApply): (WebCore::InsertNodeBeforeCommand::doUnapply): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): * editing/InsertParagraphSeparatorCommand.h: (WebCore::InsertParagraphSeparatorCommand::create): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): * editing/InsertTextCommand.h: (WebCore::InsertTextCommand::create): (WebCore::InsertTextCommand::createWithMarkerSupplier): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/RemoveNodePreservingChildrenCommand.h: (WebCore::RemoveNodePreservingChildrenCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h. (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): (WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h. * editing/ReplaceInsertIntoTextNodeCommand.cpp: Added. (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted. (WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted. * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertTextRunWithoutNewlines): (WebCore::TypingCommand::insertParagraphSeparator): * editing/atk/FrameSelectionAtk.cpp: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: * editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setInnerTextValue): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): Source/WebKit/mac: * WebCoreSupport/WebEditorClient.mm: (undoNameForEditAction): Source/WebKit2: * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Tools: * DumpRenderTree/mac/AccessibilityNotificationHandler.h: * DumpRenderTree/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler stopObserving]): (-[AccessibilityNotificationHandler _notificationReceived:]): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::removeNotificationListener): * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler _notificationReceived:]): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::removeNotificationListener): LayoutTests: * platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added. * platform/mac/accessibility/input-replacevalue-userinfo.html: Added. * platform/mac/accessibility/selection-change-userinfo-expected.txt: Added. * platform/mac/accessibility/selection-change-userinfo.html: Added. * platform/mac/accessibility/value-change-userinfo-expected.txt: Added. * platform/mac/accessibility/value-change-userinfo.html: Added. Canonical link: https://commits.webkit.org/162232@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 22:17:11 +00:00
namespace WebCore {
enum AXTextStateChangeType {
AXTextStateChangeTypeUnknown,
AXTextStateChangeTypeEdit,
AXTextStateChangeTypeSelectionMove,
AX: Add a boundary value to AXTextStateChangeType https://bugs.webkit.org/show_bug.cgi?id=153085 Patch by Doug Russell <d_russell@apple.com> on 2016-01-31 Reviewed by Darin Adler. Post an AT notification when navigation is attempted past an editable element's boundaries. Source/WebCore: Test: accessibility/mac/selection-boundary-userinfo.html * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::showIntent): * accessibility/AXTextStateChangeIntent.h: * accessibility/mac/AXObjectCacheMac.mm: (platformChangeTypeForWebCoreChangeType): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): * editing/FrameSelection.cpp: (WebCore::FrameSelection::modifyMovingRight): (WebCore::FrameSelection::modifyMovingForward): (WebCore::FrameSelection::modifyMovingLeft): (WebCore::FrameSelection::modifyMovingBackward): (WebCore::textSelectionWithDirectionAndGranularity): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::modifyExtendingBackward): Deleted. (WebCore::FrameSelection::textSelectionIntent): Deleted. * editing/FrameSelection.h: * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::next): (WebCore::VisiblePosition::previous): (WebCore::VisiblePosition::left): (WebCore::VisiblePosition::right): (WebCore::VisiblePosition::honorEditingBoundaryAtOrBefore): (WebCore::VisiblePosition::honorEditingBoundaryAtOrAfter): (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): Deleted. (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Deleted. * editing/VisiblePosition.h: * editing/VisibleUnits.cpp: (WebCore::startOfLine): (WebCore::logicalStartOfLine): (WebCore::endOfLine): (WebCore::logicalEndOfLine): (WebCore::leftBoundaryOfLine): (WebCore::rightBoundaryOfLine): (WebCore::inSameLogicalLine): Deleted. (WebCore::endOfEditableContent): Deleted. (WebCore::isEndOfEditableOrNonEditableContent): Deleted. * editing/VisibleUnits.h: LayoutTests: * accessibility/mac/selection-boundary-userinfo-expected.txt: Added. * accessibility/mac/selection-boundary-userinfo.html: Added. Canonical link: https://commits.webkit.org/171816@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@195949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-02-01 04:09:02 +00:00
AXTextStateChangeTypeSelectionExtend,
AXTextStateChangeTypeSelectionBoundary
AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Patch by Doug Russell <d_russell@apple.com> on 2015-04-26 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. Source/WebCore: Tests: platform/mac/accessibility/input-replacevalue-userinfo.html platform/mac/accessibility/selection-change-userinfo.html platform/mac/accessibility/value-change-userinfo.html * CMakeLists.txt: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::showIntent): (WebCore::AXObjectCache::setTextSelectionIntent): (WebCore::isPasswordFieldOrContainedByPasswordField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::rootWebArea): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::selectedChildrenChanged): Deleted. (WebCore::AXObjectCache::frameLoadingEventNotification): Deleted. * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::nodeTextChangePlatformNotification): (WebCore::AXObjectCache::computedObjectAttributeCache): Deleted. (WebCore::AXObjectCache::getOrCreate): Deleted. (WebCore::AXObjectCache::attachWrapper): Deleted. * accessibility/AXTextStateChangeIntent.h: Added. (WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isContainedByPasswordField): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): (WebCore::AccessibilityObject::isPasswordField): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * accessibility/AccessibilityScrollView.h: * accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::nodeTextChangePlatformNotification): * accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::setShouldRepostNotificationsForTests): (WebCore::AXPostNotificationWithUserInfo): (WebCore::AXObjectCache::postPlatformNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::textReplacementChangeDictionary): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]): (arrayRemovingNonJSONTypes): (dictionaryRemovingNonJSONTypes): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (textMarkerRangeFromVisiblePositions): (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): (WebCore::sendAXTextChangedIgnoringLineBreaks): (WebCore::AppendNodeCommand::doApply): (WebCore::AppendNodeCommand::doUnapply): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::ApplyStyleCommand): (WebCore::ApplyStyleCommand::applyBlockStyle): Deleted. * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::EditCommandComposition::unapplyEditType): (WebCore::CompositeEditCommand::CompositeEditCommand): (WebCore::CompositeEditCommand::apply): (WebCore::CompositeEditCommand::insertParagraphSeparator): (WebCore::CompositeEditCommand::insertNodeBefore): (WebCore::CompositeEditCommand::appendNode): (WebCore::CompositeEditCommand::removeNodePreservingChildren): (WebCore::CompositeEditCommand::insertTextIntoNode): (WebCore::CompositeEditCommand::deleteTextFromNode): (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): (WebCore::EditCommandComposition::getNodesInCommand): Deleted. (WebCore::CompositeEditCommand::applyStyle): Deleted. (WebCore::CompositeEditCommand::insertLineBreak): Deleted. (WebCore::CompositeEditCommand::insertNodeAt): Deleted. (WebCore::CompositeEditCommand::removeChildrenInRange): Deleted. (WebCore::CompositeEditCommand::inputText): Deleted. * editing/CompositeEditCommand.h: * editing/DeleteFromTextNodeCommand.cpp: (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): (WebCore::DeleteFromTextNodeCommand::doApply): (WebCore::DeleteFromTextNodeCommand::doUnapply): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): (WebCore::DeleteFromTextNodeCommand::deletedText): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted. * editing/DeleteSelectionCommand.h: (WebCore::DeleteSelectionCommand::create): * editing/DictationCommand.cpp: (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): * editing/EditAction.h: * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): (WebCore::EditCommand::editingAction): (WebCore::EditCommand::applyEditType): (WebCore::EditCommand::unapplyEditType): (WebCore::SimpleEditCommand::SimpleEditCommand): (WebCore::SimpleEditCommand::notifyAccessibilityForTextChange): (WebCore::EditCommand::setParent): Deleted. * editing/EditCommand.h: * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::deleteSelectionWithSmartDelete): (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::replaceSelectionWithText): (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::performCutOrCopy): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::changeBackToReplacedString): (WebCore::Editor::transpose): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeInsertFragment): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::isBoundary): (WebCore::FrameSelection::textSelectionIntent): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::wordSelectionContainingCaretSelection): (WebCore::FrameSelection::modifyMovingBackward): Deleted. (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted. (WebCore::FrameSelection::selectionAtWordStart): Deleted. * editing/FrameSelection.h: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): (WebCore::FrameSelection::selection): Deleted. * editing/InsertIntoTextNodeCommand.cpp: (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): (WebCore::InsertIntoTextNodeCommand::doApply): (WebCore::InsertIntoTextNodeCommand::doUnapply): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): (WebCore::InsertIntoTextNodeCommand::insertedText): * editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): (WebCore::InsertNodeBeforeCommand::doApply): (WebCore::InsertNodeBeforeCommand::doUnapply): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): * editing/InsertParagraphSeparatorCommand.h: (WebCore::InsertParagraphSeparatorCommand::create): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): * editing/InsertTextCommand.h: (WebCore::InsertTextCommand::create): (WebCore::InsertTextCommand::createWithMarkerSupplier): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/RemoveNodePreservingChildrenCommand.h: (WebCore::RemoveNodePreservingChildrenCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h. (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): (WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h. * editing/ReplaceInsertIntoTextNodeCommand.cpp: Added. (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted. (WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted. * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertTextRunWithoutNewlines): (WebCore::TypingCommand::insertParagraphSeparator): * editing/atk/FrameSelectionAtk.cpp: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: * editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setInnerTextValue): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): Source/WebKit/mac: * WebCoreSupport/WebEditorClient.mm: (undoNameForEditAction): Source/WebKit2: * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Tools: * DumpRenderTree/mac/AccessibilityNotificationHandler.h: * DumpRenderTree/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler stopObserving]): (-[AccessibilityNotificationHandler _notificationReceived:]): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::removeNotificationListener): * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler _notificationReceived:]): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::removeNotificationListener): LayoutTests: * platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added. * platform/mac/accessibility/input-replacevalue-userinfo.html: Added. * platform/mac/accessibility/selection-change-userinfo-expected.txt: Added. * platform/mac/accessibility/selection-change-userinfo.html: Added. * platform/mac/accessibility/value-change-userinfo-expected.txt: Added. * platform/mac/accessibility/value-change-userinfo.html: Added. Canonical link: https://commits.webkit.org/162232@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 22:17:11 +00:00
};
enum AXTextEditType {
AXTextEditTypeUnknown,
AXTextEditTypeDelete, // Generic text delete
AXTextEditTypeInsert, // Generic text insert
AXTextEditTypeTyping, // Insert via typing
AXTextEditTypeDictation, // Insert via dictation
AXTextEditTypeCut, // Delete via Cut
[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): Canonical link: https://commits.webkit.org/162520@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-05-01 19:37:55 +00:00
AXTextEditTypePaste, // Insert via Paste
AXTextEditTypeAttributesChange // Change font, style, alignment, color, etc.
AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Patch by Doug Russell <d_russell@apple.com> on 2015-04-26 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. Source/WebCore: Tests: platform/mac/accessibility/input-replacevalue-userinfo.html platform/mac/accessibility/selection-change-userinfo.html platform/mac/accessibility/value-change-userinfo.html * CMakeLists.txt: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::showIntent): (WebCore::AXObjectCache::setTextSelectionIntent): (WebCore::isPasswordFieldOrContainedByPasswordField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::rootWebArea): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::selectedChildrenChanged): Deleted. (WebCore::AXObjectCache::frameLoadingEventNotification): Deleted. * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::nodeTextChangePlatformNotification): (WebCore::AXObjectCache::computedObjectAttributeCache): Deleted. (WebCore::AXObjectCache::getOrCreate): Deleted. (WebCore::AXObjectCache::attachWrapper): Deleted. * accessibility/AXTextStateChangeIntent.h: Added. (WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isContainedByPasswordField): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): (WebCore::AccessibilityObject::isPasswordField): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * accessibility/AccessibilityScrollView.h: * accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::nodeTextChangePlatformNotification): * accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::setShouldRepostNotificationsForTests): (WebCore::AXPostNotificationWithUserInfo): (WebCore::AXObjectCache::postPlatformNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::textReplacementChangeDictionary): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]): (arrayRemovingNonJSONTypes): (dictionaryRemovingNonJSONTypes): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (textMarkerRangeFromVisiblePositions): (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): (WebCore::sendAXTextChangedIgnoringLineBreaks): (WebCore::AppendNodeCommand::doApply): (WebCore::AppendNodeCommand::doUnapply): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::ApplyStyleCommand): (WebCore::ApplyStyleCommand::applyBlockStyle): Deleted. * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::EditCommandComposition::unapplyEditType): (WebCore::CompositeEditCommand::CompositeEditCommand): (WebCore::CompositeEditCommand::apply): (WebCore::CompositeEditCommand::insertParagraphSeparator): (WebCore::CompositeEditCommand::insertNodeBefore): (WebCore::CompositeEditCommand::appendNode): (WebCore::CompositeEditCommand::removeNodePreservingChildren): (WebCore::CompositeEditCommand::insertTextIntoNode): (WebCore::CompositeEditCommand::deleteTextFromNode): (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): (WebCore::EditCommandComposition::getNodesInCommand): Deleted. (WebCore::CompositeEditCommand::applyStyle): Deleted. (WebCore::CompositeEditCommand::insertLineBreak): Deleted. (WebCore::CompositeEditCommand::insertNodeAt): Deleted. (WebCore::CompositeEditCommand::removeChildrenInRange): Deleted. (WebCore::CompositeEditCommand::inputText): Deleted. * editing/CompositeEditCommand.h: * editing/DeleteFromTextNodeCommand.cpp: (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): (WebCore::DeleteFromTextNodeCommand::doApply): (WebCore::DeleteFromTextNodeCommand::doUnapply): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): (WebCore::DeleteFromTextNodeCommand::deletedText): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted. * editing/DeleteSelectionCommand.h: (WebCore::DeleteSelectionCommand::create): * editing/DictationCommand.cpp: (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): * editing/EditAction.h: * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): (WebCore::EditCommand::editingAction): (WebCore::EditCommand::applyEditType): (WebCore::EditCommand::unapplyEditType): (WebCore::SimpleEditCommand::SimpleEditCommand): (WebCore::SimpleEditCommand::notifyAccessibilityForTextChange): (WebCore::EditCommand::setParent): Deleted. * editing/EditCommand.h: * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::deleteSelectionWithSmartDelete): (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::replaceSelectionWithText): (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::performCutOrCopy): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::changeBackToReplacedString): (WebCore::Editor::transpose): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeInsertFragment): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::isBoundary): (WebCore::FrameSelection::textSelectionIntent): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::wordSelectionContainingCaretSelection): (WebCore::FrameSelection::modifyMovingBackward): Deleted. (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted. (WebCore::FrameSelection::selectionAtWordStart): Deleted. * editing/FrameSelection.h: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): (WebCore::FrameSelection::selection): Deleted. * editing/InsertIntoTextNodeCommand.cpp: (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): (WebCore::InsertIntoTextNodeCommand::doApply): (WebCore::InsertIntoTextNodeCommand::doUnapply): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): (WebCore::InsertIntoTextNodeCommand::insertedText): * editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): (WebCore::InsertNodeBeforeCommand::doApply): (WebCore::InsertNodeBeforeCommand::doUnapply): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): * editing/InsertParagraphSeparatorCommand.h: (WebCore::InsertParagraphSeparatorCommand::create): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): * editing/InsertTextCommand.h: (WebCore::InsertTextCommand::create): (WebCore::InsertTextCommand::createWithMarkerSupplier): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/RemoveNodePreservingChildrenCommand.h: (WebCore::RemoveNodePreservingChildrenCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h. (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): (WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h. * editing/ReplaceInsertIntoTextNodeCommand.cpp: Added. (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted. (WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted. * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertTextRunWithoutNewlines): (WebCore::TypingCommand::insertParagraphSeparator): * editing/atk/FrameSelectionAtk.cpp: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: * editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setInnerTextValue): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): Source/WebKit/mac: * WebCoreSupport/WebEditorClient.mm: (undoNameForEditAction): Source/WebKit2: * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Tools: * DumpRenderTree/mac/AccessibilityNotificationHandler.h: * DumpRenderTree/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler stopObserving]): (-[AccessibilityNotificationHandler _notificationReceived:]): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::removeNotificationListener): * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler _notificationReceived:]): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::removeNotificationListener): LayoutTests: * platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added. * platform/mac/accessibility/input-replacevalue-userinfo.html: Added. * platform/mac/accessibility/selection-change-userinfo-expected.txt: Added. * platform/mac/accessibility/selection-change-userinfo.html: Added. * platform/mac/accessibility/value-change-userinfo-expected.txt: Added. * platform/mac/accessibility/value-change-userinfo.html: Added. Canonical link: https://commits.webkit.org/162232@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 22:17:11 +00:00
};
enum AXTextSelectionDirection {
AXTextSelectionDirectionUnknown,
AXTextSelectionDirectionBeginning,
AXTextSelectionDirectionEnd,
AXTextSelectionDirectionPrevious,
AXTextSelectionDirectionNext,
AXTextSelectionDirectionDiscontiguous
};
enum AXTextSelectionGranularity {
AXTextSelectionGranularityUnknown,
AXTextSelectionGranularityCharacter,
AXTextSelectionGranularityWord,
AXTextSelectionGranularityLine,
AXTextSelectionGranularitySentence,
AXTextSelectionGranularityParagraph,
AXTextSelectionGranularityPage,
AXTextSelectionGranularityDocument,
AXTextSelectionGranularityAll // All granularity represents the action of selecting the whole document as a single action. Extending selection by some other granularity until it encompasses the whole document will not result in a all granularity notification.
};
struct AXTextSelection {
AXTextSelectionDirection direction;
AXTextSelectionGranularity granularity;
AX: Selection change as a result of focusing an element should include that information in the intent https://bugs.webkit.org/show_bug.cgi?id=146533 Patch by Doug Russell <d_russell@apple.com> on 2015-07-02 Reviewed by Chris Fleizach. Added focusChange flag to AXTextStateChangeIntent. Added intent support to selection logic called by Element::updateFocusAppearance(). Added NSAccessibilityTextSelectionChangedFocus to mac notifications. Source/WebCore: Test: platform/mac/accessibility/selection-notification-focus-change.html * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::postTextStateChangeNotification): * accessibility/AXTextStateChangeIntent.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::setTextSelectionIntent): (WebCore::AccessibilityRenderObject::setFocused): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): * dom/Element.cpp: (WebCore::Element::updateFocusAppearance): * dom/Element.h: (WebCore::Element::defaultFocusTextStateChangeIntent): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::selectAll): * editing/FrameSelection.h: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::select): (WebCore::HTMLTextFormControlElement::setSelectionRange): (WebCore::HTMLTextFormControlElement::restoreCachedSelection): * html/HTMLTextFormControlElement.h: * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): LayoutTests: * platform/mac/accessibility/selection-notification-focus-change-expected.txt: Added. * platform/mac/accessibility/selection-notification-focus-change.html: Added. Canonical link: https://commits.webkit.org/164668@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-03 03:34:36 +00:00
bool focusChange;
AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Patch by Doug Russell <d_russell@apple.com> on 2015-04-26 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. Source/WebCore: Tests: platform/mac/accessibility/input-replacevalue-userinfo.html platform/mac/accessibility/selection-change-userinfo.html platform/mac/accessibility/value-change-userinfo.html * CMakeLists.txt: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::showIntent): (WebCore::AXObjectCache::setTextSelectionIntent): (WebCore::isPasswordFieldOrContainedByPasswordField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::rootWebArea): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::selectedChildrenChanged): Deleted. (WebCore::AXObjectCache::frameLoadingEventNotification): Deleted. * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): (WebCore::AXObjectCache::textChangeForEditType): (WebCore::AXObjectCache::nodeTextChangePlatformNotification): (WebCore::AXObjectCache::computedObjectAttributeCache): Deleted. (WebCore::AXObjectCache::getOrCreate): Deleted. (WebCore::AXObjectCache::attachWrapper): Deleted. * accessibility/AXTextStateChangeIntent.h: Added. (WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isContainedByPasswordField): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField): (WebCore::AccessibilityObject::isPasswordField): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * accessibility/AccessibilityScrollView.h: * accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::nodeTextChangePlatformNotification): * accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::setShouldRepostNotificationsForTests): (WebCore::AXPostNotificationWithUserInfo): (WebCore::AXObjectCache::postPlatformNotification): (WebCore::AXObjectCache::postTextStateChangePlatformNotification): (WebCore::textReplacementChangeDictionary): (WebCore::AXObjectCache::postTextReplacementPlatformNotification): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]): (arrayRemovingNonJSONTypes): (dictionaryRemovingNonJSONTypes): (-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.h: * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (textMarkerRangeFromVisiblePositions): (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): (WebCore::sendAXTextChangedIgnoringLineBreaks): (WebCore::AppendNodeCommand::doApply): (WebCore::AppendNodeCommand::doUnapply): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::ApplyStyleCommand): (WebCore::ApplyStyleCommand::applyBlockStyle): Deleted. * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::EditCommandComposition::unapplyEditType): (WebCore::CompositeEditCommand::CompositeEditCommand): (WebCore::CompositeEditCommand::apply): (WebCore::CompositeEditCommand::insertParagraphSeparator): (WebCore::CompositeEditCommand::insertNodeBefore): (WebCore::CompositeEditCommand::appendNode): (WebCore::CompositeEditCommand::removeNodePreservingChildren): (WebCore::CompositeEditCommand::insertTextIntoNode): (WebCore::CompositeEditCommand::deleteTextFromNode): (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): (WebCore::EditCommandComposition::getNodesInCommand): Deleted. (WebCore::CompositeEditCommand::applyStyle): Deleted. (WebCore::CompositeEditCommand::insertLineBreak): Deleted. (WebCore::CompositeEditCommand::insertNodeAt): Deleted. (WebCore::CompositeEditCommand::removeChildrenInRange): Deleted. (WebCore::CompositeEditCommand::inputText): Deleted. * editing/CompositeEditCommand.h: * editing/DeleteFromTextNodeCommand.cpp: (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): (WebCore::DeleteFromTextNodeCommand::doApply): (WebCore::DeleteFromTextNodeCommand::doUnapply): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): (WebCore::DeleteFromTextNodeCommand::deletedText): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted. * editing/DeleteSelectionCommand.h: (WebCore::DeleteSelectionCommand::create): * editing/DictationCommand.cpp: (WebCore::DictationCommand::insertTextRunWithoutNewlines): (WebCore::DictationCommand::insertParagraphSeparator): * editing/EditAction.h: * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): (WebCore::EditCommand::editingAction): (WebCore::EditCommand::applyEditType): (WebCore::EditCommand::unapplyEditType): (WebCore::SimpleEditCommand::SimpleEditCommand): (WebCore::SimpleEditCommand::notifyAccessibilityForTextChange): (WebCore::EditCommand::setParent): Deleted. * editing/EditCommand.h: * editing/EditingAllInOne.cpp: * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::deleteSelectionWithSmartDelete): (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::replaceSelectionWithText): (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::performCutOrCopy): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::changeBackToReplacedString): (WebCore::Editor::transpose): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeInsertFragment): * editing/FrameSelection.cpp: (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::moveWithoutValidationTo): (WebCore::FrameSelection::setSelectionByMouseIfDifferent): (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::updateAndRevealSelection): (WebCore::isBoundary): (WebCore::FrameSelection::textSelectionIntent): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::wordSelectionContainingCaretSelection): (WebCore::FrameSelection::modifyMovingBackward): Deleted. (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted. (WebCore::FrameSelection::selectionAtWordStart): Deleted. * editing/FrameSelection.h: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): (WebCore::FrameSelection::selection): Deleted. * editing/InsertIntoTextNodeCommand.cpp: (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): (WebCore::InsertIntoTextNodeCommand::doApply): (WebCore::InsertIntoTextNodeCommand::doUnapply): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): (WebCore::InsertIntoTextNodeCommand::insertedText): * editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): (WebCore::InsertNodeBeforeCommand::doApply): (WebCore::InsertNodeBeforeCommand::doUnapply): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): * editing/InsertParagraphSeparatorCommand.h: (WebCore::InsertParagraphSeparatorCommand::create): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::InsertTextCommand): * editing/InsertTextCommand.h: (WebCore::InsertTextCommand::create): (WebCore::InsertTextCommand::createWithMarkerSupplier): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/RemoveNodePreservingChildrenCommand.h: (WebCore::RemoveNodePreservingChildrenCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h. (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): (WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h. * editing/ReplaceInsertIntoTextNodeCommand.cpp: Added. (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange): * editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted. (WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted. * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertTextRunWithoutNewlines): (WebCore::TypingCommand::insertParagraphSeparator): * editing/atk/FrameSelectionAtk.cpp: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: * editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setInnerTextValue): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * page/EventHandler.cpp: (WebCore::setInitialKeyboardSelection): * page/FocusController.cpp: (WebCore::FocusController::advanceFocusInDocumentOrder): Source/WebKit/mac: * WebCoreSupport/WebEditorClient.mm: (undoNameForEditAction): Source/WebKit2: * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Tools: * DumpRenderTree/mac/AccessibilityNotificationHandler.h: * DumpRenderTree/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler stopObserving]): (-[AccessibilityNotificationHandler _notificationReceived:]): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::removeNotificationListener): * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm: (-[AccessibilityNotificationHandler _notificationReceived:]): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::removeNotificationListener): LayoutTests: * platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added. * platform/mac/accessibility/input-replacevalue-userinfo.html: Added. * platform/mac/accessibility/selection-change-userinfo-expected.txt: Added. * platform/mac/accessibility/selection-change-userinfo.html: Added. * platform/mac/accessibility/value-change-userinfo-expected.txt: Added. * platform/mac/accessibility/value-change-userinfo.html: Added. Canonical link: https://commits.webkit.org/162232@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@183368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-04-26 22:17:11 +00:00
};
struct AXTextStateChangeIntent {
AXTextStateChangeType type;
union {
AXTextSelection selection;
AXTextEditType change;
};
AXTextStateChangeIntent(AXTextStateChangeType type = AXTextStateChangeTypeUnknown, AXTextSelection selection = AXTextSelection())
: type(type)
, selection(selection)
{ }
AXTextStateChangeIntent(AXTextEditType change)
: type(AXTextStateChangeTypeEdit)
, change(change)
{ }
};
} // namespace WebCore