[webkit-changes] [286536] trunk/Tools
Title: [286536] trunk/Tools Revision 286536 Author andresg...@apple.com Date 2021-12-04 20:14:50 -0800 (Sat, 04 Dec 2021) Log Message Change WTR::AccessibilityUIElement::descriptionOfValue(id) to return a RetainPtr. https://bugs.webkit.org/show_bug.cgi?id=233815 Reviewed by Chris Fleizach. This fixes several tests in isolated tree mode, in particular: accessibility/mac/focus-crash.html accessibility/mac/search-predicate.html * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::descriptionOfValue const): (WTR::AccessibilityUIElement::allAttributes): (WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue): (WTR::AccessibilityUIElement::role): (WTR::AccessibilityUIElement::subrole): (WTR::AccessibilityUIElement::roleDescription): (WTR::AccessibilityUIElement::computedRoleString): (WTR::AccessibilityUIElement::title): (WTR::AccessibilityUIElement::description): (WTR::AccessibilityUIElement::orientation const): (WTR::AccessibilityUIElement::stringValue): (WTR::AccessibilityUIElement::language): (WTR::AccessibilityUIElement::helpText const): (WTR::AccessibilityUIElement::embeddedImageDescription const): Modified Paths trunk/Tools/ChangeLog trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm Diff Modified: trunk/Tools/ChangeLog (286535 => 286536) --- trunk/Tools/ChangeLog 2021-12-05 03:51:54 UTC (rev 286535) +++ trunk/Tools/ChangeLog 2021-12-05 04:14:50 UTC (rev 286536) @@ -1,3 +1,32 @@ +2021-12-04 Andres Gonzalez + +Change WTR::AccessibilityUIElement::descriptionOfValue(id) to return a RetainPtr. +https://bugs.webkit.org/show_bug.cgi?id=233815 + + +Reviewed by Chris Fleizach. + +This fixes several tests in isolated tree mode, in particular: +accessibility/mac/focus-crash.html +accessibility/mac/search-predicate.html + +* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: +* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: +(WTR::AccessibilityUIElement::descriptionOfValue const): +(WTR::AccessibilityUIElement::allAttributes): +(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue): +(WTR::AccessibilityUIElement::role): +(WTR::AccessibilityUIElement::subrole): +(WTR::AccessibilityUIElement::roleDescription): +(WTR::AccessibilityUIElement::computedRoleString): +(WTR::AccessibilityUIElement::title): +(WTR::AccessibilityUIElement::description): +(WTR::AccessibilityUIElement::orientation const): +(WTR::AccessibilityUIElement::stringValue): +(WTR::AccessibilityUIElement::language): +(WTR::AccessibilityUIElement::helpText const): +(WTR::AccessibilityUIElement::embeddedImageDescription const): + 2021-12-03 Wenson Hsieh [iOS] Web content process sometimes crashes under WebPage::positionInformation() Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (286535 => 286536) --- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2021-12-05 03:51:54 UTC (rev 286535) +++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2021-12-05 04:14:50 UTC (rev 286536) @@ -405,7 +405,7 @@ #if PLATFORM(MAC) RetainPtr attributeValueForParameter(NSString *, id) const; -NSString *descriptionOfValue(id valueObject) const; +RetainPtr descriptionOfValue(id valueObject) const; #endif #if !PLATFORM(COCOA) && !USE(ATSPI) Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm (286535 => 286536) --- trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm 2021-12-05 03:51:54 UTC (rev 286535) +++ trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm 2021-12-05 04:14:50 UTC (rev 286536) @@ -169,7 +169,7 @@ END_AX_OBJC_EXCEPTIONS } -NSString *AccessibilityUIElement::descriptionOfValue(id valueObject) const +RetainPtr AccessibilityUIElement::descriptionOfValue(id valueObject) const { if (!valueObject) return nil; @@ -588,7 +588,7 @@ || [attribute isEqualToString:@"AXRelativeFrame"]) continue; -RetainPtr value = descriptionOfValue(attributeValue(attribute).get()); +auto value = descriptionOfValue(attributeValue(attribute).get()); [values appendFormat:@"%@: %@\n", attribute, value.get()]; } @@ -598,7 +598,7 @@ JSRetainPtr AccessibilityUIElement::stringDescriptionOfAttributeValue(JSStringRef attribute) { auto value = attributeValue([NSString stringWithJSStringRef:attribute]); -NSString *valueDescription = descriptionOfValue(value.get()); +auto valueDescription = descriptionOfValue(value.get()); return [valueDescription createJSStringRef];
[webkit-changes] [286534] trunk/Source/WebCore
Title: [286534] trunk/Source/WebCore Revision 286534 Author za...@apple.com Date 2021-12-04 08:51:39 -0800 (Sat, 04 Dec 2021) Log Message [LFC][IFC] Compute isFirstBox/isLastBox for text content https://bugs.webkit.org/show_bug.cgi?id=233850 Reviewed by Antti Koivisto. This is in preparation for helping the iterator interface to compute renderer (layout box) boundaries for text content. * layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp: (WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox): (WebCore::Layout::InlineDisplayContentBuilder::computeIsFirstIsLastBoxForInlineContent): * layout/formattingContexts/inline/InlineDisplayContentBuilder.h: * layout/formattingContexts/inline/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::layoutInFlowContent): (WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration): * layout/formattingContexts/inline/display/InlineDisplayBox.h: (WebCore::InlineDisplay::Box::setIsFirstBox): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.h trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp trunk/Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h Diff Modified: trunk/Source/WebCore/ChangeLog (286533 => 286534) --- trunk/Source/WebCore/ChangeLog 2021-12-04 16:08:56 UTC (rev 286533) +++ trunk/Source/WebCore/ChangeLog 2021-12-04 16:51:39 UTC (rev 286534) @@ -1,3 +1,22 @@ +2021-12-04 Alan Bujtas + +[LFC][IFC] Compute isFirstBox/isLastBox for text content +https://bugs.webkit.org/show_bug.cgi?id=233850 + +Reviewed by Antti Koivisto. + +This is in preparation for helping the iterator interface to compute renderer (layout box) boundaries for text content. + +* layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp: +(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox): +(WebCore::Layout::InlineDisplayContentBuilder::computeIsFirstIsLastBoxForInlineContent): +* layout/formattingContexts/inline/InlineDisplayContentBuilder.h: +* layout/formattingContexts/inline/InlineFormattingContext.cpp: +(WebCore::Layout::InlineFormattingContext::layoutInFlowContent): +(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration): +* layout/formattingContexts/inline/display/InlineDisplayBox.h: +(WebCore::InlineDisplay::Box::setIsFirstBox): + 2021-12-04 Antoine Quint CSS animation sorting may crash due to AnimationList copy upon CSS Animation removal Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp (286533 => 286534) --- trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp 2021-12-04 16:08:56 UTC (rev 286533) +++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp 2021-12-04 16:51:39 UTC (rev 286534) @@ -123,7 +123,9 @@ , textRunRect , inkOverflow() , lineRun.expansion() -, InlineDisplay::Box::Text { text->start, text->length, content, adjustedContentToRender(), text->needsHyphen } }); +, InlineDisplay::Box::Text { text->start, text->length, content, adjustedContentToRender(), text->needsHyphen } +, true +, { } }); } void InlineDisplayContentBuilder::appendSoftLineBreakDisplayBox(const Line::Run& lineRun, const InlineRect& softLineBreakRunRect, DisplayBoxes& boxes) @@ -649,7 +651,25 @@ } } +void InlineDisplayContentBuilder::computeIsFirstIsLastBoxForInlineContent(DisplayBoxes& boxes) +{ +HashMap lastDisplayBoxForInlineTextBoxIndexes; +ASSERT(boxes[0].isRootInlineBox()); +for (size_t index = 1; index < boxes.size(); ++index) { +auto& displayBox = boxes[index]; +// FIXME: Transition the inline box isFirst/isLast computation here as well. +if (!displayBox.isText()) +continue; +auto& layoutBox = displayBox.layoutBox(); +if (!lastDisplayBoxForInlineTextBoxIndexes.contains()) +displayBox.setIsFirstBox(true); +lastDisplayBoxForInlineTextBoxIndexes.set(, index); +} +for (auto lastDisplayBoxForInlineTextBoxIndex : lastDisplayBoxForInlineTextBoxIndexes) +boxes[lastDisplayBoxForInlineTextBoxIndex.value].setIsLastBox(true); } + } +} #endif Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.h (286533 => 286534) --- trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.h 2021-12-04 16:08:56 UTC (rev 286533) +++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.h 2021-12-04 16:51:39 UTC (rev 286534) @@ -43,6 +43,8 @@ DisplayBoxes build(const LineBuilder::LineContent&,
[webkit-changes] [286533] trunk/Source/WebKit
Title: [286533] trunk/Source/WebKit Revision 286533 Author beid...@apple.com Date 2021-12-04 08:08:56 -0800 (Sat, 04 Dec 2021) Log Message Add command line `webpushtool` for daemon development and debugging. https://bugs.webkit.org/show_bug.cgi?id=233845 Reviewed by Tim Horton. No behavior change. This utility will eventually be quite fleshed out. For now, it can act as a terminal that prints debug messages from webpushd. * Configurations/webpushtool.xcconfig: Added. * Resources/webpushtool.entitlements: Added. * WebKit.xcodeproj/project.pbxproj: * WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme: Added. * webpushd/webpushtool/WebPushToolConnection.h: Added. * webpushd/webpushtool/WebPushToolConnection.mm: Added. (WebPushTool::Connection::create): (WebPushTool::maybeConnectToService): (WebPushTool::Connection::Connection): (WebPushTool::Connection::connectToService): (WebPushTool::Connection::startAction): (WebPushTool::Connection::startDebugStreamAction): (WebPushTool::Connection::sendAuditToken): (WebPushTool::Connection::connectionDropped): (WebPushTool::Connection::messageReceived): * webpushd/webpushtool/WebPushToolMain.mm: Added. (printUsageAndTerminate): (main): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj Added Paths trunk/Source/WebKit/Configurations/webpushtool.xcconfig trunk/Source/WebKit/Resources/webpushtool.entitlements trunk/Source/WebKit/WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme trunk/Source/WebKit/webpushd/webpushtool/ trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h trunk/Source/WebKit/webpushd/webpushtool/WebPushToolConnection.mm trunk/Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm Diff Modified: trunk/Source/WebKit/ChangeLog (286532 => 286533) --- trunk/Source/WebKit/ChangeLog 2021-12-04 15:28:47 UTC (rev 286532) +++ trunk/Source/WebKit/ChangeLog 2021-12-04 16:08:56 UTC (rev 286533) @@ -1,3 +1,36 @@ +2021-12-04 Brady Eidson + +Add command line `webpushtool` for daemon development and debugging. +https://bugs.webkit.org/show_bug.cgi?id=233845 + +Reviewed by Tim Horton. + +No behavior change. + +This utility will eventually be quite fleshed out. + +For now, it can act as a terminal that prints debug messages from webpushd. + +* Configurations/webpushtool.xcconfig: Added. +* Resources/webpushtool.entitlements: Added. +* WebKit.xcodeproj/project.pbxproj: +* WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme: Added. + +* webpushd/webpushtool/WebPushToolConnection.h: Added. +* webpushd/webpushtool/WebPushToolConnection.mm: Added. +(WebPushTool::Connection::create): +(WebPushTool::maybeConnectToService): +(WebPushTool::Connection::Connection): +(WebPushTool::Connection::connectToService): +(WebPushTool::Connection::startAction): +(WebPushTool::Connection::startDebugStreamAction): +(WebPushTool::Connection::sendAuditToken): +(WebPushTool::Connection::connectionDropped): +(WebPushTool::Connection::messageReceived): +* webpushd/webpushtool/WebPushToolMain.mm: Added. +(printUsageAndTerminate): +(main): + 2021-12-04 Brent Fulgham [Cocoa] Launch Captive Portal WebContent process when requested Added: trunk/Source/WebKit/Configurations/webpushtool.xcconfig (0 => 286533) --- trunk/Source/WebKit/Configurations/webpushtool.xcconfig (rev 0) +++ trunk/Source/WebKit/Configurations/webpushtool.xcconfig 2021-12-04 16:08:56 UTC (rev 286533) @@ -0,0 +1,35 @@ +// Copyright (C) 2021 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
[webkit-changes] [286532] trunk
Title: [286532] trunk Revision 286532 Author grao...@webkit.org Date 2021-12-04 07:28:47 -0800 (Sat, 04 Dec 2021) Log Message CSS animation sorting may crash due to AnimationList copy upon CSS Animation removal https://bugs.webkit.org/show_bug.cgi?id=233819 rdar://85596065 Reviewed by Dean Jackson and Darin Adler. Source/WebCore: Test: webanimations/css-animation-sorting-crash-2.html When resolving animations during style resolution, we sort them to ensure they're in the right composite order as defined by the Web Animations and related specifications, in this case the CSS Animations specification defining how CSS Animations set on a given element are sorted. Indeed, a given element may have multiple animations specified on it, and in fact it may have multiple instances of the same animation. For instance, setting `animation-name: anim, anim, anim` would create three separate CSS Animations all with the same keyframes and timing properties. The CSS machinery within WebKit creates an AnimationList to reference the animations parsed from CSS. Each animation is an Animation object. These Animation objects are ref-counted. When we update animations, using Styleable::updateCSSAnimations(), we compare the current AnimationList for this style resolution, with the previous AnimationList specified when this method was last called for this element. The outcome of this comparison will yield new CSSAnimation objects, the removal of such objects or the update of existing objects by setting the Animation object as its "backing animation". When we're done we keep a reference to the current AnimationList on the element's KeyframeEffectStack. Later, when we resolve animations during style resolution and we get to sort the animations, we will use the AnimationList which contains the Animation objects in the order they were specified in the `animation-list` property to establish the order in which the CSSAnimation objects should be ordered relative to one another, based on their "backing animation" which must be an Animation object found in the AnimationList. If we fail to find matching Animation objects, we crash due to a call to RELEASE_ASSERT_NOT_REACHED() in compareCSSAnimations(const CSSAnimation&, const CSSAnimation&). So, why would we ever get in a situation where we reach this RELEASE_ASSERT_NOT_REACHED? Well, there is a situation where we manipulate the AnimationList set on the KeyframeEffectStack in Styleable::updateCSSAnimations(). That case is when Styleable::cancelDeclarativeAnimations() is called, and we call the static function removeCSSAnimationCreatedByMarkup(). In this function, we actually make a copy of the previously recorded AnimationList because that list is `const` so we can't manipulate it directly. To make this copy we call AnimationList::copy() which creates a new AnimationList object, which itself is not the issue, but also makes copies of each Animation object within. Now, that's the problem, because at this point our pointer comparisons in compareCSSAnimations() will fail since the Animation objects we recorded in Styleable::updateCSSAnimations() will no longer be the same instances as those in the manipulated AnimationList. To fix this, we add a new AnimationList::shallowCopy() method to specify whether we want clones or references of the Animation members, and when calling removeCSSAnimationCreatedByMarkup(), we use this new method such that we get references and not clones. This ensures that removing an animation from the list will indeed create a new AnimationList, but the two lists will have references to the same Animation objects. * platform/animation/AnimationList.cpp: (WebCore::AnimationList::AnimationList): * platform/animation/AnimationList.h: (WebCore::AnimationList::copy const): (WebCore::AnimationList::shallowCopy const): * style/Styleable.cpp: (WebCore::removeCSSAnimationCreatedByMarkup): LayoutTests: Add a test that used to crash before this patch. * webanimations/css-animation-sorting-crash-2-expected.txt: Added. * webanimations/css-animation-sorting-crash-2.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/animation/AnimationList.cpp trunk/Source/WebCore/platform/animation/AnimationList.h trunk/Source/WebCore/style/Styleable.cpp Added Paths trunk/LayoutTests/webanimations/css-animation-sorting-crash-2-expected.txt trunk/LayoutTests/webanimations/css-animation-sorting-crash-2.html Diff Modified: trunk/LayoutTests/ChangeLog (286531 => 286532) --- trunk/LayoutTests/ChangeLog 2021-12-04 15:24:46 UTC (rev 286531) +++ trunk/LayoutTests/ChangeLog 2021-12-04 15:28:47 UTC (rev 286532) @@ -1,3 +1,16 @@ +2021-12-04 Antoine Quint + +CSS animation sorting may crash due to AnimationList copy upon CSS Animation removal +https://bugs.webkit.org/show_bug.cgi?id=233819 +rdar://85596065 + +Reviewed by Dean Jackson and Darin Adler. + +Add a test that
[webkit-changes] [286531] trunk
Title: [286531] trunk Revision 286531 Author commit-qu...@webkit.org Date 2021-12-04 07:24:46 -0800 (Sat, 04 Dec 2021) Log Message Fix parentNode in CompositeEditCommand::splitTreeToNode https://bugs.webkit.org/show_bug.cgi?id=230710 Patch by Rob Buis on 2021-12-04 Reviewed by Ryosuke Niwa. Source/WebCore: Fix parentNode handling in CompositeEditCommand::splitTreeToNode and also a few more IndentOutdentCommand methods to support the test case. Test: editing/execCommand/outdent-cut-crash.html * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs): * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentIntoBlockquote): do not call positionInParentAfterNode if insertNodeBefore failed. (WebCore::IndentOutdentCommand::outdentParagraph): need to check for null positions before calling moveParagraphs. LayoutTests: * editing/execCommand/outdent-cut-crash-expected.txt: Added. * editing/execCommand/outdent-cut-crash.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/editing/CompositeEditCommand.cpp trunk/Source/WebCore/editing/IndentOutdentCommand.cpp Added Paths trunk/LayoutTests/editing/execCommand/outdent-cut-crash-expected.txt trunk/LayoutTests/editing/execCommand/outdent-cut-crash.html Diff Modified: trunk/LayoutTests/ChangeLog (286530 => 286531) --- trunk/LayoutTests/ChangeLog 2021-12-04 15:22:57 UTC (rev 286530) +++ trunk/LayoutTests/ChangeLog 2021-12-04 15:24:46 UTC (rev 286531) @@ -1,3 +1,13 @@ +2021-12-04 Rob Buis + +Fix parentNode in CompositeEditCommand::splitTreeToNode +https://bugs.webkit.org/show_bug.cgi?id=230710 + +Reviewed by Ryosuke Niwa. + +* editing/execCommand/outdent-cut-crash-expected.txt: Added. +* editing/execCommand/outdent-cut-crash.html: Added. + 2021-12-04 Tyler Wilcock AX: Make ellipsis-text.html, aria-roledescription.html, and aria-switch-checked.html pass in isolated tree mode Added: trunk/LayoutTests/editing/execCommand/outdent-cut-crash-expected.txt (0 => 286531) --- trunk/LayoutTests/editing/execCommand/outdent-cut-crash-expected.txt (rev 0) +++ trunk/LayoutTests/editing/execCommand/outdent-cut-crash-expected.txt 2021-12-04 15:24:46 UTC (rev 286531) @@ -0,0 +1 @@ +Test passes if it does not crash. Added: trunk/LayoutTests/editing/execCommand/outdent-cut-crash.html (0 => 286531) --- trunk/LayoutTests/editing/execCommand/outdent-cut-crash.html (rev 0) +++ trunk/LayoutTests/editing/execCommand/outdent-cut-crash.html 2021-12-04 15:24:46 UTC (rev 286531) @@ -0,0 +1,25 @@ + +if (window.testRunner) +window.testRunner.dumpAsText(); +_onload_ = () => { +document.designMode = 'on'; +getSelection().selectAllChildren(input); +getSelection().extend(div); +queueMicrotask(() => { +document.execCommand('Cut'); +}); +document.execCommand('Outdent'); +document.write("Test passes if it does not crash."); +}; + + + + + + + + + + + + Modified: trunk/Source/WebCore/ChangeLog (286530 => 286531) --- trunk/Source/WebCore/ChangeLog 2021-12-04 15:22:57 UTC (rev 286530) +++ trunk/Source/WebCore/ChangeLog 2021-12-04 15:24:46 UTC (rev 286531) @@ -1,3 +1,23 @@ +2021-12-04 Rob Buis + +Fix parentNode in CompositeEditCommand::splitTreeToNode +https://bugs.webkit.org/show_bug.cgi?id=230710 + +Reviewed by Ryosuke Niwa. + +Fix parentNode handling in CompositeEditCommand::splitTreeToNode and +also a few more IndentOutdentCommand methods to support the test case. + +Test: editing/execCommand/outdent-cut-crash.html + +* editing/CompositeEditCommand.cpp: +(WebCore::CompositeEditCommand::moveParagraphs): +* editing/IndentOutdentCommand.cpp: +(WebCore::IndentOutdentCommand::indentIntoBlockquote): do not call positionInParentAfterNode +if insertNodeBefore failed. +(WebCore::IndentOutdentCommand::outdentParagraph): need to check for null positions +before calling moveParagraphs. + 2021-12-04 Alan Bujtas [LFC][IFC] Set BoxGeometry for bidi inline boxes Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (286530 => 286531) --- trunk/Source/WebCore/editing/CompositeEditCommand.cpp 2021-12-04 15:22:57 UTC (rev 286530) +++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp 2021-12-04 15:24:46 UTC (rev 286531) @@ -1750,7 +1750,7 @@ ASSERT(adjustedEnd); RefPtr node; -for (node = node && node->parentNode() != adjustedEnd; node = node->parentNode()) { +for (node = node && node->parentNode() != adjustedEnd;) { RefPtr parentNode = node->parentNode(); if (!parentNode || !is(*parentNode) || editingIgnoresContent(*parentNode)) break; @@ -1759,6 +1759,7 @@ VisiblePosition positionInNode =
[webkit-changes] [286530] trunk/LayoutTests
Title: [286530] trunk/LayoutTests Revision 286530 Author tyle...@apple.com Date 2021-12-04 07:22:57 -0800 (Sat, 04 Dec 2021) Log Message AX: Make ellipsis-text.html, aria-roledescription.html, and aria-switch-checked.html pass in isolated tree mode https://bugs.webkit.org/show_bug.cgi?id=233790 Reviewed by Chris Fleizach. * accessibility/aria-roledescription-expected.txt: * accessibility/aria-roledescription.html: * accessibility/aria-switch-checked-expected.txt: * accessibility/aria-switch-checked.html: Make these tests async. They must be made async to pass in isolated tree mode as they dynamically change page content using JS. * accessibility/ellipsis-text.html: Make this test isolated-tree-friendly by selecting elements with accessibleElementById instead `document.getElementById("id").focus()` and `accessibilityController.focusedElement` * platform/glib/accessibility/aria-roledescription-expected.txt: Update platform-specfic expectation for the new version of this test. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/accessibility/aria-roledescription-expected.txt trunk/LayoutTests/accessibility/aria-roledescription.html trunk/LayoutTests/accessibility/aria-switch-checked-expected.txt trunk/LayoutTests/accessibility/aria-switch-checked.html trunk/LayoutTests/accessibility/ellipsis-text.html trunk/LayoutTests/platform/glib/accessibility/aria-roledescription-expected.txt Diff Modified: trunk/LayoutTests/ChangeLog (286529 => 286530) --- trunk/LayoutTests/ChangeLog 2021-12-04 13:52:55 UTC (rev 286529) +++ trunk/LayoutTests/ChangeLog 2021-12-04 15:22:57 UTC (rev 286530) @@ -1,3 +1,24 @@ +2021-12-04 Tyler Wilcock + +AX: Make ellipsis-text.html, aria-roledescription.html, and aria-switch-checked.html pass in isolated tree mode +https://bugs.webkit.org/show_bug.cgi?id=233790 + +Reviewed by Chris Fleizach. + +* accessibility/aria-roledescription-expected.txt: +* accessibility/aria-roledescription.html: +* accessibility/aria-switch-checked-expected.txt: +* accessibility/aria-switch-checked.html: +Make these tests async. They must be made async to pass in +isolated tree mode as they dynamically change page content using JS. + +* accessibility/ellipsis-text.html: +Make this test isolated-tree-friendly by selecting elements with accessibleElementById instead +`document.getElementById("id").focus()` and `accessibilityController.focusedElement` + +* platform/glib/accessibility/aria-roledescription-expected.txt: +Update platform-specfic expectation for the new version of this test. + 2021-12-03 Said Abou-Hallawa [GPU Process] (REGRESSION r285597): Fix SVGFilter clamping calculation Modified: trunk/LayoutTests/accessibility/aria-roledescription-expected.txt (286529 => 286530) --- trunk/LayoutTests/accessibility/aria-roledescription-expected.txt 2021-12-04 13:52:55 UTC (rev 286529) +++ trunk/LayoutTests/accessibility/aria-roledescription-expected.txt 2021-12-04 15:22:57 UTC (rev 286530) @@ -1,15 +1,15 @@ -text This tests that aria-roledescription works. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -Role description: AXRoleDescription: Super Button. -Role description: AXRoleDescription: button. -Role description: AXRoleDescription: button. -Role description: AXRoleDescription: Super Button. -Role description: AXRoleDescription: button. +PASS axButton.roleDescription is 'AXRoleDescription: Super Button' +PASS Got default role description: AXRoleDescription: button +PASS axButton.roleDescription === 'AXRoleDescription: Super Button' +PASS Got default role description: AXRoleDescription: button +PASS axButton.roleDescription === 'AXRoleDescription: Super Button' +PASS Got default role description: AXRoleDescription: button PASS successfullyParsed is true TEST COMPLETE - +text Modified: trunk/LayoutTests/accessibility/aria-roledescription.html (286529 => 286530) --- trunk/LayoutTests/accessibility/aria-roledescription.html 2021-12-04 13:52:55 UTC (rev 286529) +++ trunk/LayoutTests/accessibility/aria-roledescription.html 2021-12-04 15:22:57 UTC (rev 286530) @@ -1,45 +1,62 @@ + -+