[webkit-changes] [286536] trunk/Tools

2021-12-04 Thread andresg_22
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

2021-12-04 Thread zalan
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

2021-12-04 Thread beidson
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

2021-12-04 Thread graouts
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

2021-12-04 Thread commit-queue
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

2021-12-04 Thread tyler_w
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 @@
+
 
 
-+