Timeline



Jul 20, 2021:

10:55 PM Changeset in webkit [280126] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.1.24.0.3

Tag Safari-612.1.24.0.3.

10:37 PM Changeset in webkit [280125] by bshafiei@apple.com
  • 8 edits in branches/safari-612.1.24.0-branch/Source

Versioning.

WebKit-7612.1.24.0.3

9:23 PM Changeset in webkit [280124] by mmaxfield@apple.com
  • 4 edits in trunk/Source

r280103 is not necessary on all operating systems
https://bugs.webkit.org/show_bug.cgi?id=228136

Reviewed by Alan Bujtas.

Source/WebCore:

r280103 is not necessary on all operating systems.

No new tests because there is no behavior change.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):

Source/WTF:

  • wtf/PlatformUse.h:
8:33 PM Changeset in webkit [280123] by Said Abou-Hallawa
  • 24 edits in trunk/Source/WebCore

Make the 'targetElement' argument of the SVG animators to be a reference
https://bugs.webkit.org/show_bug.cgi?id=228132

Reviewed by Simon Fraser.

It is clear that many SVG animators functions assume the argument
'targetElement' is not nullptr. Also the caller SVGAnimateElementBase
makes sure its targetElement() is not nullptr before calling any of its
animator's functions.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::setTargetElement):
(WebCore::SVGAnimateElementBase::calculateFromAndToValues):
(WebCore::SVGAnimateElementBase::calculateFromAndByValues):
(WebCore::SVGAnimateElementBase::startAnimation):
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):
(WebCore::SVGAnimateElementBase::applyResultsToTarget):
(WebCore::SVGAnimateElementBase::stopAnimation):
(WebCore::SVGAnimateElementBase::calculateDistance):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):

  • svg/properties/SVGAnimatedPropertyAnimator.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAnimator.h:
  • svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
  • svg/properties/SVGAnimationAdditiveFunction.h:
  • svg/properties/SVGAnimationAdditiveListFunctionImpl.h:

(WebCore::SVGAnimationLengthListFunction::animate):
(WebCore::SVGAnimationNumberListFunction::animate):
(WebCore::SVGAnimationPointListFunction::animate):
(WebCore::SVGAnimationTransformListFunction::animate):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.cpp:

(WebCore::SVGAnimationColorFunction::colorFromString):
(WebCore::SVGAnimationIntegerFunction::calculateDistance const):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationAngleFunction::animate):
(WebCore::SVGAnimationColorFunction::animate):
(WebCore::SVGAnimationLengthFunction::animate):
(WebCore::SVGAnimationNumberFunction::animate):
(WebCore::SVGAnimationPathSegListFunction::animate):
(WebCore::SVGAnimationRectFunction::animate):

  • svg/properties/SVGAnimationDiscreteFunction.h:

(WebCore::SVGAnimationDiscreteFunction::animate):

  • svg/properties/SVGAnimationDiscreteFunctionImpl.h:
  • svg/properties/SVGAnimationFunction.h:

(WebCore::SVGAnimationFunction::calculateDistance const):
(WebCore::SVGAnimationFunction::addFromAndToValues):

  • svg/properties/SVGAttributeAnimator.cpp:

(WebCore::SVGAttributeAnimator::isAnimatedStylePropertyAniamtor const):
(WebCore::SVGAttributeAnimator::invalidateStyle):
(WebCore::SVGAttributeAnimator::applyAnimatedStylePropertyChange):
(WebCore::SVGAttributeAnimator::removeAnimatedStyleProperty):
(WebCore::SVGAttributeAnimator::applyAnimatedPropertyChange):

  • svg/properties/SVGAttributeAnimator.h:

(WebCore::SVGAttributeAnimator::setFromAndToValues):
(WebCore::SVGAttributeAnimator::setFromAndByValues):
(WebCore::SVGAttributeAnimator::calculateDistance const):

  • svg/properties/SVGPrimitivePropertyAnimator.h:
  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::adjustForInheritance const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):

  • svg/properties/SVGPropertyOwnerRegistry.h:
  • svg/properties/SVGPropertyRegistry.h:

Fix a typo in the name of setAnimatedPropertyDirty().

  • svg/properties/SVGValuePropertyAnimator.h:
  • svg/properties/SVGValuePropertyAnimatorImpl.h:
  • svg/properties/SVGValuePropertyListAnimator.h:
  • svg/properties/SVGValuePropertyListAnimatorImpl.h:
7:47 PM Changeset in webkit [280122] by Wenson Hsieh
  • 8 edits in trunk/Source/WebKit

[iOS] Add SPI for internal clients to consult whether or not viewport quirks should be enabled
https://bugs.webkit.org/show_bug.cgi?id=228123
rdar://80397679

Reviewed by Dan Bernstein.

Rename the SPI added in r280119 from -_needsSiteSpecificQuirks to -_needsSiteSpecificViewportQuirks, to
clarify its intent (and importantly, to differentiate it from the existing WKPreferences SPI of the same name).

This distinction is important because this readonly property acts as a hint for WebKit clients to augment
certain viewport behaviors, whereas the readwrite WKPreferences property is a way for clients to indicate that
WebKit should opt in or out of site-specific quirks (unless overridden by Web Inspector).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _needsSiteSpecificViewportQuirks]):
(-[WKWebView _needsSiteSpecificQuirks]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessTermination):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/WebPage.h:
6:02 PM Changeset in webkit [280121] by Alan Coon
  • 1 copy in tags/Safari-612.1.24.1.3

Tag Safari-612.1.24.1.3.

5:56 PM Changeset in webkit [280120] by Alan Coon
  • 8 edits in branches/safari-612.1.24.1-branch/Source

Versioning.

WebKit-7612.1.24.1.3

5:51 PM Changeset in webkit [280119] by Wenson Hsieh
  • 8 edits in trunk/Source/WebKit

[iOS] Add SPI for internal clients to consult whether or not viewport quirks should be enabled
https://bugs.webkit.org/show_bug.cgi?id=228123
rdar://80397679

Reviewed by Tim Horton.

Add support for an SPI property on WKWebView that indicates whether site-specific quirks should be enabled.
For now, this flag is only updated whenever we commit a mainframe load, which is sufficient for the purposes of
Safari to determine whether or not to use quirked viewport behaviors for tab pill behavior.

If needed in the future, this property should probably:

  1. Support KVO, and...
  2. Change eagerly when the option is toggled via Web Inspector.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _needsSiteSpecificQuirks]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessTermination):

Maintain a corresponding flag on the WebPageProxy in the UI process, which starts out as true and is reset
if the web process terminates.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

Add plumbing to propagate changes in the boolean flag to the UI process.

(WebKit::WebPage::didCommitLoad):

Update the flag on WebPage.

  • WebProcess/WebPage/WebPage.h:
5:37 PM Changeset in webkit [280118] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Updated test expectations from [Pass Timeouts] to [ DumpJSConsoleLogInStdErr Slow ].

Unreviewed test gardening.

5:29 PM Changeset in webkit [280117] by Alan Coon
  • 1 copy in tags/Safari-612.1.24.2.1

Tag Safari-612.1.24.2.1.

5:26 PM Changeset in webkit [280116] by Alan Coon
  • 1 copy in tags/Safari-612.1.24.1.2

Tag Safari-612.1.24.1.2.

5:26 PM Changeset in webkit [280115] by Alan Coon
  • 1 copy in tags/Safari-612.1.24.0.2

Tag Safari-612.1.24.0.2.

4:37 PM Changeset in webkit [280114] by Kyle Piddington
  • 2 edits in trunk/Source/WebKit

REGRESSION(ANGLE+METAL): WebGL2 content low frame rate
https://bugs.webkit.org/show_bug.cgi?id=228012

Reviewed by Dean Jackson.

Add Additional rules, allowing shared events to work in Webkit

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
4:34 PM Changeset in webkit [280113] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ]inspector/canvas/recording-bitmaprenderer-full.html is a flaky failure and timeout.
https://bugs.webkit.org/show_bug.cgi?id=228131.

Unreviewed test gardening.

4:27 PM Changeset in webkit [280112] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Revert r272370: It delays first paint
https://bugs.webkit.org/show_bug.cgi?id=228121
<rdar://75362363>

Reviewed by Antti Koivisto.

r272370 breaks the cases when the rendering update is initiated when the layer tree is still frozen (circular dependency: visually empty check vs. rendering update)

  • dom/Document.cpp:

(WebCore::Document::didInsertInDocumentShadowRoot):

  • dom/Element.cpp:

(WebCore::Element::isVisibleWithoutResolvingFullStyle const):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::Scope):
(WebCore::Style::Scope::flushPendingSelfUpdate):
(WebCore::Style::Scope::clearPendingUpdate):
(WebCore::Style::Scope::scheduleUpdate):
(WebCore::Style::Scope::pendingUpdateTimerFired):
(WebCore::Style::Scope::insertedInDocument): Deleted.

  • style/StyleScope.h:
4:20 PM Changeset in webkit [280111] by Yijia Huang
  • 7 edits in trunk/Source/JavaScriptCore

Add ARM64 EON opcode and select it in AIR
https://bugs.webkit.org/show_bug.cgi?id=228057

Reviewed by Saam Barati.

EON Rd Rn Rm <shift> #amount

Bitwise Exclusive OR NOT (shifted register) performs a bitwise Exclusive OR NOT
of a register value Rn and an optionally-shifted register value Rm, and writes the
result to the destination register. The instruction selector can utilize this to
lowering certain patterns in B3 IR before further Air optimization.

The equivalent pattern of EON Rd Rn Rm is d = n (m -1)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = -1
Int @3 = BitXor(@1, @2)
Int @4 = BitXor(@0, b@3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Not %x1, %x1, @3
Xor %x0, %x1, %x0, @4
Ret %x0, @5

New optimized AIR
XorNot %x0, %x1, %x0, @4
Ret %x0, @5

The equivalent pattern of EON-with-shift is d = n ((m ShiftType amount) -1)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = amount
Int @3 = -1
Int @4 = Shl(@1, @2)
Int @5 = BitXor(@4, @3)
Int @6 = BitXor(@0, @5)
Void b@7 = Return(b@6, Terminal)

Old optimized AIR
Lshift %x1, amount, %x1, @4
Not %x1, %x1, @5
Xor %x0, %x1, %x0, @6
Ret %x0, @7

New optimized AIR
XorNotLeftShift %x0, %x1, $63, %x0, @6
Ret %x0, @7

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::xorNot32):
(JSC::MacroAssemblerARM64::xorNot64):
(JSC::MacroAssemblerARM64::xorNotLeftShift32):
(JSC::MacroAssemblerARM64::xorNotRightShift32):
(JSC::MacroAssemblerARM64::xorNotUnsignedRightShift32):
(JSC::MacroAssemblerARM64::xorNotLeftShift64):
(JSC::MacroAssemblerARM64::xorNotRightShift64):
(JSC::MacroAssemblerARM64::xorNotUnsignedRightShift64):

  • assembler/testmasm.cpp:

(JSC::testXorNot32):
(JSC::testXorNot64):
(JSC::testXorNotWithLeftShift32):
(JSC::testXorNotWithRightShift32):
(JSC::testXorNotWithUnsignedRightShift32):
(JSC::testXorNotWithLeftShift64):
(JSC::testXorNotWithRightShift64):
(JSC::testXorNotWithUnsignedRightShift64):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testXorNot32):
(testXorNot64):
(testXorNotWithLeftShift32):
(testXorNotWithRightShift32):
(testXorNotWithUnsignedRightShift32):
(testXorNotWithLeftShift64):
(testXorNotWithRightShift64):
(testXorNotWithUnsignedRightShift64):
(addBitTests):

4:08 PM Changeset in webkit [280110] by sihui_liu@apple.com
  • 7 edits in trunk/Source/WebKit

Completion handler of NetworkProcess::prepareToSuspend may not be invoked promptly
https://bugs.webkit.org/show_bug.cgi?id=228119

Reviewed by Chris Dumez.

WebResourceLoadStatisticsStore and StorageManagerSet dispatch task to suspend background thread on suspension.
When the task is finished on background thread, it dispatches a reply task to main thread. When all replies are
received, network process replies prepareToSuspend message. With our current implementation, if network process
receives messages in order { PrepareToSuspend, ProcessDidResume, PrepareToSuspend },
WebResourceLoadStatisticsStore and StorageManagerSet may dispatch two suspend tasks to background thread and
get suspended in the first task. In this case, the second PrepareToSuspend message will not be replied, and
UI process will be waiting on reply for the latest PrepareToSuspend message to release assertion. To solve this,
background thread should only execute latest suspend task by checking task identifier.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WTF_GUARDED_BY_LOCK):
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::resume):
(): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::suspendIDBServers):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::resume):

  • NetworkProcess/WebStorage/StorageManagerSet.h:

(WebKit::StorageManagerSet::WTF_GUARDED_BY_LOCK):
(): Deleted.

3:55 PM Changeset in webkit [280109] by sbarati@apple.com
  • 2 edits in trunk/Tools

Don't run ftl-eager-no-cjit on debug builds
https://bugs.webkit.org/show_bug.cgi?id=228118

Reviewed by Mark Lam.

Many debug JSC stress tests time out intermittently. All I see are under
the ftl-eager-no-cjit mode.

  • Scripts/run-jsc-stress-tests:
3:07 PM Changeset in webkit [280108] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[ Mac , iOS Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228127.

Unreviewed test gardening.

2:20 PM Changeset in webkit [280107] by Ayumi Kojima
  • 2 edits in trunk/Tools

Adding myself to Contributors.json

Unreviewed.

2:10 PM Changeset in webkit [280106] by Eric Hutchison
  • 2 edits in trunk/Tools

Adding myself to Contributors.json.

Unreviewed.

2:01 PM Changeset in webkit [280105] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[Cocoa] Silence telemetry on MSC_mach_wait_until
https://bugs.webkit.org/show_bug.cgi?id=228112
<rdar://problem/78965631>

Reviewed by Per Arne Vollan.

We are processing a lot of telemetry for MSC_mach_wait_until in cases where a block with failure is the correct behavior.
Silencing the warning to reduce CPU and network traffic related to generating and de-duping telemetry on this call.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
1:56 PM Changeset in webkit [280104] by Truitt Savell
  • 4 edits in trunk/LayoutTests

Update test expectations for svg/animations/smil-leak-list-property-instances.svg.
https://bugs.webkit.org/show_bug.cgi?id=214574.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-20

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:47 PM Changeset in webkit [280103] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r272379): Characters with no fonts that support them are drawn as two .notdef glyphs in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=228097
<rdar://problem/80798113>

Reviewed by Alan Bujtas.

Source/WebCore:

If a character is not in BMP, and we don't have a glyph for it,
we'll end up with two 0 glyphs in a row for the two surrogates of the character.
We need to make sure that, after shaping, these double-0-glyphs aren't preserved.

Test: fast/text/double-notdef-simple-text-codepath.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):

LayoutTests:

  • fast/text/double-notdef-simple-text-codepath-expected.html: Added.
  • fast/text/double-notdef-simple-text-codepath.html: Added.
1:40 PM Changeset in webkit [280102] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Use references instead of pointers in WidthIterator::advanceInternal()
https://bugs.webkit.org/show_bug.cgi?id=228099

Reviewed by Fujii Hironori.

We assert that font is non-null, so we should be able to use a reference for it instead of a pointer.

No new tests because there is no behavior change.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

1:39 PM Changeset in webkit [280101] by commit-queue@webkit.org
  • 169 edits
    2 adds in trunk/LayoutTests

[GLIB] Test gardening, update baselines after r279987
https://bugs.webkit.org/show_bug.cgi?id=228109

That change enabled dark mode support, which added dark backgrounds
in many cases.

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-07-20

  • platform/glib/compositing/backing/form-controls-backing-expected.txt:
  • platform/glib/fast/box-sizing/percentage-height-expected.txt:
  • platform/glib/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/glib/svg/custom/foreign-object-skew-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/gtk/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/gtk/css3/flexbox/button-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4397952-expected.txt:
  • platform/gtk/editing/selection/5240265-expected.txt:
  • platform/gtk/editing/selection/selection-button-text-expected.txt:
  • platform/gtk/fast/block/float/float-avoidance-expected.txt:
  • platform/gtk/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/gtk/fast/css/continuationCrash-expected.txt:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/gtk/fast/css/input-search-padding-expected.txt:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/gtk/fast/css/rtl-ordering-expected.txt:
  • platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/blankbuttons-expected.txt:
  • platform/gtk/fast/forms/box-shadow-override-expected.txt:
  • platform/gtk/fast/forms/button-align-expected.txt:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/gtk/fast/forms/button-default-title-expected.txt:
  • platform/gtk/fast/forms/button-generated-content-expected.txt:
  • platform/gtk/fast/forms/button-inner-block-reuse-expected.txt:
  • platform/gtk/fast/forms/button-positioned-expected.txt:
  • platform/gtk/fast/forms/button-sizes-expected.txt:
  • platform/gtk/fast/forms/button-style-color-expected.txt:
  • platform/gtk/fast/forms/button-table-styles-expected.txt:
  • platform/gtk/fast/forms/button-text-transform-expected.txt:
  • platform/gtk/fast/forms/button-white-space-expected.txt:
  • platform/gtk/fast/forms/control-clip-expected.txt:
  • platform/gtk/fast/forms/control-clip-overflow-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
  • platform/gtk/fast/forms/file/file-input-direction-expected.txt:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/formmove3-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-button-sizes-expected.txt:
  • platform/gtk/fast/forms/input-first-letter-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/placeholder-position-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/gtk/fast/forms/search-input-rtl-expected.txt:
  • platform/gtk/fast/forms/search-rtl-expected.txt:
  • platform/gtk/fast/forms/search-styled-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/searchfield-heights-expected.txt:
  • platform/gtk/fast/forms/select-baseline-expected.txt:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
  • platform/gtk/fast/html/details-replace-summary-child-expected.txt:
  • platform/gtk/fast/html/details-replace-text-expected.txt:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.txt:
  • platform/gtk/fast/repaint/search-field-cancel-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/width100percent-button-expected.txt:
  • platform/gtk/fast/table/append-cells2-expected.txt:
  • platform/gtk/fast/table/remove-td-display-none-expected.txt:
  • platform/gtk/fast/text/international/hindi-spacing-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-color-property-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
  • platform/gtk/inspector/css/shadow-scoped-style-expected.txt:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/wpe/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/wpe/css3/flexbox/button-expected.txt:
  • platform/wpe/fast/block/float/float-avoidance-expected.txt:
  • platform/wpe/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/wpe/fast/css/continuationCrash-expected.txt:
  • platform/wpe/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wpe/fast/css/input-search-padding-expected.txt:
  • platform/wpe/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/wpe/fast/overflow/scrollRevealButton-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/table/append-cells2-expected.txt:
  • platform/wpe/fast/table/remove-td-display-none-expected.txt:
  • platform/wpe/fast/text/international/hindi-spacing-expected.txt:
  • platform/wpe/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/wpe/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-color-property-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
  • platform/wpe/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/wpe/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
  • platform/wpe/tables/mozilla/other/move_row-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
1:10 PM Changeset in webkit [280100] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed Windows test gardening.

  • platform/win/TestExpectations:
12:54 PM Changeset in webkit [280099] by Fujii Hironori
  • 4 edits in trunk/Source/WebCore

Use WeakHashSet for Page::m_activityStateChangeObservers
https://bugs.webkit.org/show_bug.cgi?id=228065

Reviewed by Chris Dumez.

  • page/ActivityStateChangeObserver.h: Inherit CanMakeWeakPtr.
  • page/Page.cpp:

(WebCore::Page::addActivityStateChangeObserver):
(WebCore::Page::removeActivityStateChangeObserver):
(WebCore::Page::setActivityState):

  • page/Page.h:
12:44 PM Changeset in webkit [280098] by Kate Cheney
  • 5 edits in trunk/Source/WebKit

IBeam cursor is horizontal in Mail compose window
https://bugs.webkit.org/show_bug.cgi?id=228107
<rdar://problem/80636912>

Reviewed by Wenson Hsieh.

Recently we added support for vertical writing mode for the IBeam
cursor in WebKit. This added a new parameter isHorizontalWritingMode
which defaults to false. This causes the IBeam to appear horizontal in
cases where WebPage::populateCaretContext is not called, regressing expected
behavior.

This patch changes isHorizontalWritingMode to isVerticalWritingMode
to fix this, while still allowing support for vertical writing mode.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pointerInteraction:styleForRegion:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::populateCaretContext):

12:35 PM Changeset in webkit [280097] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] invalidParameterInstanceofSourceAppender should care direct call of Symbol.hasInstance
https://bugs.webkit.org/show_bug.cgi?id=228075
rdar://80762879

Reviewed by Frédéric Wang.

JSTests:

  • stress/symbol-hasinstance-error.js: Added.

(shouldThrow):
(let.a):

Source/JavaScriptCore:

invalidParameterInstanceofSourceAppender can be invoked without instanceof expression since we can call
[Symbol.hasInstance] function directly, but the implementation did not assume that. This patch fixes
it to handle this direct call.

  • runtime/ExceptionHelpers.cpp:

(JSC::invalidParameterInstanceofSourceAppender):

12:34 PM Changeset in webkit [280096] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[iOS Release wk2] imported/w3c/web-platform-tests/fetch/content-type/script.window.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228114

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-20

  • platform/ios-wk2/TestExpectations:
12:30 PM Changeset in webkit [280095] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk

REGRESSION (r278062): Misplaced text in Wikipedia search field
https://bugs.webkit.org/show_bug.cgi?id=228098
<rdar://problem/80495165>

Reviewed by Simon Fraser.

Source/WebCore:

New test: GraphicsContextTests.DrawNativeImageDoesNotLeakCompositeOperator

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::setCGCompositeOperator):
(WebCore::GraphicsContextCG::drawNativeImage):
drawNativeImage uses CGContextStateSaver (not GraphicsContextStateSaver),
so any state changes it made must only be made to the CGContext, not
the WebCore::GraphicsContext.

However, r278062 mistakenly swapped setPlatformCompositeOperation out for
GraphicsContext::setCompositeOperation(), which mutates the state of
*both* contexts, and then (only sometimes!) depends on the state saver
to reset the state (but, of course, as mentioned, it only resets
the CGContext's state).

(WebCore::GraphicsContextCG::updateState):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/cg/GraphicsContextTestsCG.cpp: Added.

(TestWebKitAPI::greenImage):
(TestWebKitAPI::TEST):
Add a test for the issue described in the WebCore ChangeLog.

12:29 PM Changeset in webkit [280094] by Russell Epstein
  • 7 edits in branches/safari-612.1.24.0-branch/Source/JavaScriptCore

Cherry-pick r280066. rdar://problem/80851532

[JSC] StructureStubInfo's m_identifier should follow to the same protocol of inlineAccessBaseStructure
https://bugs.webkit.org/show_bug.cgi?id=228092

Reviewed by Saam Barati.

In r279813, we fixed a race condition related to inlineAccessBaseStructure: while we clear inlineAccessBaseStructure,
we still run code relying on this field's value until stub version of the code is generated. As a result,
we run the code which relies on the cells that are already collected. And we have the same problem with
m_identifier field too. This patch makes m_identifier follow to the same protocol of inlineAccessBaseStructure
so that we fix this race issue too: both fields will be alive until we switch to the code that are not relying on these
fields.

We also make inlineAccessBaseStructure to m_inlineAccessBaseStructure to easily find that this is member field.
And we also use setWithoutWriteBarrier for m_inlineAccessBaseStructure since we emit codeBlock->vm().heap.writeBarrier(codeBlock)
immediately after that.

  • bytecode/AccessCase.cpp: (JSC::AccessCase::fromStructureStubInfo):
  • bytecode/GetByStatus.cpp: (JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
  • bytecode/InByStatus.cpp: (JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
  • bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeForStubInfo):
  • bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::initGetByIdSelf): (JSC::StructureStubInfo::initArrayLength): (JSC::StructureStubInfo::initStringLength): (JSC::StructureStubInfo::initPutByIdReplace): (JSC::StructureStubInfo::initInByIdSelf): (JSC::StructureStubInfo::addAccessCase): (JSC::StructureStubInfo::reset): (JSC::StructureStubInfo::visitAggregateImpl): (JSC::StructureStubInfo::visitWeakReferences): (JSC::StructureStubInfo::propagateTransitions): (JSC::StructureStubInfo::setCacheType): Deleted.
  • bytecode/StructureStubInfo.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:29 PM Changeset in webkit [280093] by Russell Epstein
  • 7 edits
    1 add in branches/safari-612.1.24.0-branch

Cherry-pick r280050. rdar://problem/80851589

[JSC] InByStatus / InByVariant should visit CacheableIdentifier
https://bugs.webkit.org/show_bug.cgi?id=228088
rdar://80794604

Reviewed by Mark Lam.

JSTests:

  • stress/in-by-variant-should-mark-cacheable-identifier.js: Added. (foo): (let.handler.has):

Source/JavaScriptCore:

After r278445, InByVariant holds CacheableIdentifier. And this can have
String/Symbol cells if this variant is generated by in_by_val. In that
case, we must visit this cell as GetByStatus / GetByVariant are doing.

  • bytecode/InByStatus.cpp: (JSC::InByStatus::visitAggregateImpl):
  • bytecode/InByStatus.h:
  • bytecode/InByVariant.cpp: (JSC::InByVariant::visitAggregateImpl):
  • bytecode/InByVariant.h:
  • bytecode/RecordedStatuses.cpp: (JSC::RecordedStatuses::visitAggregateImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280050 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:29 PM Changeset in webkit [280092] by Russell Epstein
  • 7 edits in branches/safari-612.1.24.1-branch/Source/JavaScriptCore

Cherry-pick r280066. rdar://problem/80851562

[JSC] StructureStubInfo's m_identifier should follow to the same protocol of inlineAccessBaseStructure
https://bugs.webkit.org/show_bug.cgi?id=228092

Reviewed by Saam Barati.

In r279813, we fixed a race condition related to inlineAccessBaseStructure: while we clear inlineAccessBaseStructure,
we still run code relying on this field's value until stub version of the code is generated. As a result,
we run the code which relies on the cells that are already collected. And we have the same problem with
m_identifier field too. This patch makes m_identifier follow to the same protocol of inlineAccessBaseStructure
so that we fix this race issue too: both fields will be alive until we switch to the code that are not relying on these
fields.

We also make inlineAccessBaseStructure to m_inlineAccessBaseStructure to easily find that this is member field.
And we also use setWithoutWriteBarrier for m_inlineAccessBaseStructure since we emit codeBlock->vm().heap.writeBarrier(codeBlock)
immediately after that.

  • bytecode/AccessCase.cpp: (JSC::AccessCase::fromStructureStubInfo):
  • bytecode/GetByStatus.cpp: (JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
  • bytecode/InByStatus.cpp: (JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
  • bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeForStubInfo):
  • bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::initGetByIdSelf): (JSC::StructureStubInfo::initArrayLength): (JSC::StructureStubInfo::initStringLength): (JSC::StructureStubInfo::initPutByIdReplace): (JSC::StructureStubInfo::initInByIdSelf): (JSC::StructureStubInfo::addAccessCase): (JSC::StructureStubInfo::reset): (JSC::StructureStubInfo::visitAggregateImpl): (JSC::StructureStubInfo::visitWeakReferences): (JSC::StructureStubInfo::propagateTransitions): (JSC::StructureStubInfo::setCacheType): Deleted.
  • bytecode/StructureStubInfo.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:29 PM Changeset in webkit [280091] by Russell Epstein
  • 7 edits
    1 add in branches/safari-612.1.24.1-branch

Cherry-pick r280050. rdar://problem/80851606

[JSC] InByStatus / InByVariant should visit CacheableIdentifier
https://bugs.webkit.org/show_bug.cgi?id=228088
rdar://80794604

Reviewed by Mark Lam.

JSTests:

  • stress/in-by-variant-should-mark-cacheable-identifier.js: Added. (foo): (let.handler.has):

Source/JavaScriptCore:

After r278445, InByVariant holds CacheableIdentifier. And this can have
String/Symbol cells if this variant is generated by in_by_val. In that
case, we must visit this cell as GetByStatus / GetByVariant are doing.

  • bytecode/InByStatus.cpp: (JSC::InByStatus::visitAggregateImpl):
  • bytecode/InByStatus.h:
  • bytecode/InByVariant.cpp: (JSC::InByVariant::visitAggregateImpl):
  • bytecode/InByVariant.h:
  • bytecode/RecordedStatuses.cpp: (JSC::RecordedStatuses::visitAggregateImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280050 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:27 PM Changeset in webkit [280090] by Russell Epstein
  • 8 edits in branches/safari-612.1.24.1-branch/Source

Versioning.

WebKit-7612.1.24.1.2

11:21 AM Changeset in webkit [280089] by Said Abou-Hallawa
  • 7 edits in trunk/Source/WebCore

Make SVGPropertyAnimator::computeCSSPropertyValue() take a reference to SVGElement
https://bugs.webkit.org/show_bug.cgi?id=228093
<rdar://80789262>

Reviewed by Simon Fraser.

The assumption is the pointer 'targetElement' can't be nullptr. So make
it a reference instead.

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::computeCSSPropertyValue): Deleted.
(WebCore::inheritsFromProperty): Deleted.
(WebCore::SVGAnimationElement::determinePropertyValueTypes): Deleted.

  • svg/SVGAnimationElement.h:

Delete unused methods from SVGAnimationElement.

  • svg/properties/SVGPrimitivePropertyAnimator.h:
  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::computeCSSPropertyValue const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):

  • svg/properties/SVGValuePropertyAnimatorImpl.h:
  • svg/properties/SVGValuePropertyListAnimatorImpl.h:
10:53 AM Changeset in webkit [280088] by Alan Coon
  • 1 copy in branches/safari-612.1.24.3-branch

New branch.

10:45 AM Changeset in webkit [280087] by Alan Coon
  • 8 edits in branches/safari-612.1.24.0-branch/Source

Versioning.

WebKit-7612.1.24.0.2

10:41 AM Changeset in webkit [280086] by Alan Coon
  • 8 edits in branches/safari-612.1.24.2-branch/Source

Versioning.

WebKit-7612.1.24.2.1

10:32 AM Changeset in webkit [280085] by Chris Dumez
  • 4 edits
    2 adds in trunk

REGRESSION (r278702): Cannot login to appaloosa-store.com/users/sign_in
https://bugs.webkit.org/show_bug.cgi?id=228096
<rdar://80596391>

Reviewed by Alex Christensen.

Source/WebCore:

r278702 added an optimization to FetchBodyConsumer::takeAsBlob() to avoid a copy of the data.
What I didn't realized when I wrote this optimization is that FetchBodyConsumer is copy-constructible
and its copy constructor gets called when calling FetchResponse.clone(). The copy constructor only
does a shallow-copy of its internal buffer so several FetchResponse objects can end up with their
FetchBodyConsumer using the same underlying SharedBuffer object. When that SharedBuffer is shared,
calling takeData() on it is unacceptable as it will disturb the body of other Fetch responses.

To address the issue, we now only call SharedBuffer::takeData() and avoid the copy when the
SharedBuffer has a RefCount of 1, meaning that is it not actually shared. In the cases where it
is shared, we copy the data, like we used to do before r278702.

Test: http/tests/fetch/response-clone-blob.html

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::takeAsBlob):

LayoutTests:

Add layout test coverage.

  • http/tests/fetch/response-clone-blob-expected.txt: Added.
  • http/tests/fetch/response-clone-blob.html: Added.
10:07 AM Changeset in webkit [280084] by Chris Lord
  • 8 edits
    1 move
    20 adds
    4 deletes in trunk

Canvas and OffscreenCanvas getContext should check if argument is an object before trying to convert it to a dictionary
https://bugs.webkit.org/show_bug.cgi?id=227792

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Synchronise with upstream WPT 2d canvas getContext tests.

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.js: Added.

(test.const.options.get alpha):
(test.const.options.get willReadFrequently):
(test.const.options.get desynchronized):
(test.const.options.get colorSpace):
(test):

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.js: Added.

(t_fail.t.step_func):
(t.step):

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.js: Added.

(t_fail.t.step_func):
(t.step):

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.worker.js: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d-getcontext-options-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d-getcontext-options.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.html.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:

Source/WebCore:

Check if options argument is an object before converting to a dictionary.

Tests: imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.html

imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d-getcontext-options.any.worker.html
imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html
imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.html
imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html
imported/w3c/web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d-getcontext-options.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::getContext):

LayoutTests:

Canvas 2d getContext extraargs tests now pass.

  • platform/glib/TestExpectations:
9:54 AM Changeset in webkit [280083] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Protect m_data when iterating in CachedRawResource::didAddClient
https://bugs.webkit.org/show_bug.cgi?id=228108
<rdar://80716674>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-20
Reviewed by Chris Dumez.

I think something is destroying m_data when its segments are being iterated.
Protect it so it doesn't get destroyed.
Also, to be on the safe side, check that the client is still a client before using it.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

9:43 AM Changeset in webkit [280082] by Alan Coon
  • 1 copy in branches/safari-612.1.24.2-branch

New branch.

9:42 AM Changeset in webkit [280081] by Sam Sneddon
  • 61 edits
    2 adds in trunk

Change referrer-policy default to strict-origin-when-cross-origin
https://bugs.webkit.org/show_bug.cgi?id=218909

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

This matches the behavior of other browsers. Update all our tests to deal with the origin now being shorter.

  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.any.worker-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-src-about-blank-expected.txt:
  • web-platform-tests/html/browsers/windows/browsing-context-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:

Source/WebCore:

This matches the behavior of other browsers.
Covered by existing tests and web platform tests we haven't imported yet.

  • dom/Document.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::effectiveReferrerPolicy const):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • platform/ReferrerPolicy.cpp:

(WebCore::parseReferrerPolicyToken):

  • platform/ReferrerPolicy.h:

Tools:

This matches the behavior of other browsers.
Covered by existing tests and web platform tests we haven't imported yet.

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

LayoutTests:

This matches the behavior of other browsers.
Covered by existing tests and web platform tests we haven't imported yet.

  • http/tests/media/media-stream/enumerate-devices-source-id.html:
  • http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html:
  • http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.py:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.py:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.py:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.py:
  • http/tests/security/referrer-policy-header-expected.txt:
  • http/tests/security/referrer-policy-header-multipart-expected.txt:
  • http/tests/security/referrer-policy-header-test.js:
  • http/wpt/beacon/cors/cors-preflight-blob-failure.html:
  • http/wpt/beacon/cors/cors-preflight-blob-success.html:
  • http/wpt/beacon/cors/cors-preflight-redirect-from-crossorigin-to-sameorigin.html:
  • http/wpt/html/browsers/windows/browsing-context.html:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-referrer.any-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-referrer.any.worker-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt:
8:29 AM Changeset in webkit [280080] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] Switch raw GstStructure pointers to GUniquePtr
https://bugs.webkit.org/show_bug.cgi?id=228106

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
(WebCore::MediaPlayerPrivateGStreamer::mediaLocationChanged):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
5:48 AM Changeset in webkit [280079] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should send email notification when a bot goes out of disk space
https://bugs.webkit.org/show_bug.cgi?id=216489

Reviewed by Ryan Haddad.

  • CISupport/ews-build/steps.py:

(CleanUpGitIndexLock.start):
(CleanUpGitIndexLock.send_email_for_git_issue):

4:26 AM Changeset in webkit [280078] by Ziran Sun
  • 11 edits in trunk

Images as grid items should use the overridingLogicalWidth when defined to compute the logical Height
https://bugs.webkit.org/show_bug.cgi?id=228022

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Update test expectations as the sub-tests are now passing.

  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:

Source/WebCore:

When computing the logical height using an intrinsic aspect ratio, RenderReplaced should use the
overridingLogicalWidth whenever defined just as how it does for flex items. This change is to
replace the use of intrinsic (non-stretched) logical width in current code with the overridingLogicalWidth.

The current code doesn't set overringLogicalWidth while the width changes while stretches along Row Axis.
This change adds the logic in.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

Update TestExpectations as 3 failed grid WPT tests are now passing.

4:08 AM Changeset in webkit [280077] by commit-queue@webkit.org
  • 17 edits
    7 adds in trunk/Source/WebKit

[GTK] Propagate GtkSettings to web process
https://bugs.webkit.org/show_bug.cgi?id=227854

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-20
Reviewed by Carlos Garcia Campos.

There's a number of properties in GtkSettings that web process uses:

  • gtk-cursor-blink
  • gtk-cursor-blink-time
  • gtk-font-name
  • gtk-primary-button-warps-slider
  • gtk-theme-name
  • gtk-xft-antialias
  • gtk-xft-dpi
  • gtk-xft-hinting
  • gtk-xft-hintstyle
  • gtk-xft-rgba

While we do propagate gtk-theme-name, we don't do it for any of the other settings.
This means that they can only be fetched from XSettings/GSettings/settings portal
by GTK itself, but if the app changes them or if they are changed from inspector,
web processes won't see that.

Introduce GtkSettingsManager as a specific place that listens to preferences
changes and notifies the web process, where GtkSettingsManagerProxy updates
GtkSettings on that side. Keep the dark mode preference separate since there's
existing cross-platform infrastructure for it.

Apply settings after reinitializing as well, it was only done after initialization
so failed with PSON.

  • PlatformGTK.cmake:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/gtk/GtkSettingsState.cpp: Added.

(WebKit::GtkSettingsState::encode const):
(WebKit::GtkSettingsState::decode):

  • Shared/gtk/GtkSettingsState.h: Added.
  • Shared/gtk/NativeWebTouchEventGtk.cpp:
  • SourcesGTK.txt:
  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseRoot):
(webkitWebViewBaseUnroot):
(webkitWebViewBaseConstructed):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/GtkSettingsManager.cpp: Added.

(WebKit::GtkSettingsManager::singleton):
(WebKit::GtkSettingsManager::themeName const):
(WebKit::GtkSettingsManager::fontName const):
(WebKit::GtkSettingsManager::xftAntialias const):
(WebKit::GtkSettingsManager::xftHinting const):
(WebKit::GtkSettingsManager::xftHintStyle const):
(WebKit::GtkSettingsManager::xftRGBA const):
(WebKit::GtkSettingsManager::xftDPI const):
(WebKit::GtkSettingsManager::cursorBlink const):
(WebKit::GtkSettingsManager::cursorBlinkTime const):
(WebKit::GtkSettingsManager::primaryButtonWarpsSlider const):
(WebKit::GtkSettingsManager::settingsDidChange):
(WebKit::GtkSettingsManager::GtkSettingsManager):

  • UIProcess/gtk/GtkSettingsManager.h: Added.

(WebKit::GtkSettingsManager::settingsState const):

  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::reinitializeWebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:
  • WebProcess/gtk/GtkSettingsManagerProxy.cpp: Added.

(WebKit::GtkSettingsManagerProxy::singleton):
(WebKit::GtkSettingsManagerProxy::GtkSettingsManagerProxy):
(WebKit::GtkSettingsManagerProxy::settingsDidChange):
(WebKit::GtkSettingsManagerProxy::applySettings):

  • WebProcess/gtk/GtkSettingsManagerProxy.h: Added.
  • WebProcess/gtk/GtkSettingsManagerProxy.messages.in: Added.
4:04 AM Changeset in webkit [280076] by vjaquez@igalia.com
  • 2 edits in trunk/Tools

Update myself (vjaquez) as committer in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=228103

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
3:39 AM Changeset in webkit [280075] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk

Fix grid aspect-ratio tests
https://bugs.webkit.org/show_bug.cgi?id=225860

Patch by Rob Buis <rbuis@igalia.com> on 2021-07-20
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Import aspect-ratio tests based on 56bf98c5c0.

  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013-expected.xht: Removed.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013.html: Removed.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-018.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-019.html:

Source/WebCore:

Fix various combinations of implicit/explicit stretching in inline and
block directions as tested by grid-aspect-ratio-028.html until
grid-aspect-ratio-038.html and as specified [1, 2].
Also treat explicit stretching through justify-items/align-items: stretch
like justify-self/align-self: stretch.

[1] https://drafts.csswg.org/css-grid/#grid-item-sizing
[2] drafts.csswg.org/css-sizing-4/#aspect-ratio

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasStretchedLogicalWidth const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):

  • rendering/RenderBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::selfAlignmentForChild const):
(WebCore::RenderGrid::alignSelfForChild const):
(WebCore::RenderGrid::justifySelfForChild const):
(WebCore::RenderGrid::aspectRatioPrefersInline):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::hasAutoSizeInColumnAxis const):
(WebCore::RenderGrid::hasAutoSizeInRowAxis const):

  • rendering/RenderGrid.h:

LayoutTests:

Unskip tests that now pass.

3:32 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
3:25 AM Changeset in webkit [280074] by vjaquez@igalia.com
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] Fix compilation when ATK is not used
https://bugs.webkit.org/show_bug.cgi?id=228077

Reviewed by Carlos Garcia Campos.

Guard ATK only inside implementations, so the code is more readable.

Also changed guard from ATK to GTK platform showEmojiPicker().

No new tests needed.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

Jul 19, 2021:

7:19 PM Changeset in webkit [280073] by Russell Epstein
  • 1 copy in tags/Safari-612.1.24.0.1

Tag Safari-612.1.24.0.1.

7:19 PM Changeset in webkit [280072] by Russell Epstein
  • 1 delete in tags/Safari-612.1.24.0.1

Delete tag.

7:18 PM Changeset in webkit [280071] by Russell Epstein
  • 12 edits in branches/safari-612.1.24.0-branch/Source

Cherry-pick r280019. rdar://problem/80788628

[iOS] [AX] Keyboard text candidates don't update when changing selection using Switch Control
https://bugs.webkit.org/show_bug.cgi?id=228051
rdar://79944295

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

Call the new EditorClient methods added below. Additionally, drive-by fix setSelectedVisiblePositionRange so
that it also performs a user-triggered selection change in the case where the range is not collapsed; this
matches the behavior of setSelectedTextRange as well.

  • page/EditorClient.h: (WebCore::EditorClient::willChangeSelectionForAccessibility): (WebCore::EditorClient::didChangeSelectionForAccessibility):

Add new EditorClient hooks, (will|did)ChangeSelectionForAccessibility, that accessibility code can call before
and after it triggers a selection change; we use these two codepaths above when using the "Previous/Next
Character", "Previous/Next Word", and "Previous/Next Line" Switch Control menu actions.

Source/WebKit:

Add support for updating text candidates by calling into UIKeyboardImpl when changing the selection via
accessibility UI (e.g. when using Switch Control). To achieve this, we add a new EditorState flag that indicates
whether or not the EditorState change was triggered by accessibility; in WKContentView, we then consult this
flag and call -beginSelectionChange/-endSelectionChange in the case where the updated editor state change was
triggered by accessibility and we're also not already in the scope of another selection change or gesture-based
selection change.

Note that the latter part of the check is critical in order to avoid deadlocks in UIKeyboardTaskQueue; see
r246013, r246425 and r246665, which introduced and later reverted a similar mechanism for updating
UIKeyboardImpl, but after every selection change.

  • Shared/EditorState.cpp: (WebKit::EditorState::encode const): (WebKit::EditorState::decode): (WebKit::operator<<):
  • Shared/EditorState.h:

Add the new boolean flag, triggeredByAccessibilitySelectionChange.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView beginSelectionChange]): (-[WKContentView endSelectionChange]):

Add a new unsigned flag, _selectionChangeNestingLevel, that lets us know if we're expecting an eventual call
to -endSelectionChange. See -_selectionChanged below for more details. Note that we don't need to reset
_selectionChangeNestingLevel to 0 when cleaning up the interaction after web process termination, because
the completion handlers that contain all the balanced calls to -endSelectionChange should be invoked after
such an event anyways.

(-[WKContentView _selectionChanged]):

If the triggeredByAccessibilitySelectionChange bit is set on the incoming (post layout data) EditorState and:
(1) UIKit isn't in the middle of handling a gesture that modifies the selection, and...
(2) We aren't expecting a call to -endSelectionChange.

...then we force UIKeyboardImpl to reload its UI (text suggestions, B/I/U state, etc.) using the incoming
EditorState. This allows accessibility-driven selection changes using Switch Control to behave like gesture-
based selection changes.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::willChangeSelectionForAccessibility): (WebKit::WebEditorClient::didChangeSelectionForAccessibility):

Implement a couple of client hooks in WebKit2 so that we set a boolean flag on WebPage,
m_isChangingSelectionForAccessibility, to true over the scope of an AX-driven selection change. See related
AX changes in WebCore for more details.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::hasPendingEditorStateUpdate const):

Add a helper method so that we can conveniently check whether we have a pending editor state update to flush,
since the previous boolean flag is now a tri-state enum (m_pendingEditorStateUpdateStatus).

(WebKit::WebPage::editorState const):
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::scheduleFullEditorStateUpdate):

If we're in the scope of an accessibility selection change, transition m_pendingEditorStateUpdateStatus to
ScheduledDuringAccessibilitySelectionChange; otherwise, just use Scheduled.

(WebKit::WebPage::flushPendingEditorStateUpdate):

Refactor m_hasPendingEditorStateUpdate so that it now captures three states:
(1) We haven't scheduled an editor state update yet.
(2) We've scheduled an editor state update that was not triggered by accessibility.
(3) We've scheduled an editor state update that was triggered by accessibility.

The distinction between (2) and (3) allows us to populate EditorState's new
triggeredByAccessibilitySelectionChange flag.

  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::willChangeSelectionForAccessibility): (WebKit::WebPage::didChangeSelectionForAccessibility):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280019 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:18 PM Changeset in webkit [280070] by Russell Epstein
  • 2 edits in branches/safari-612.1.24.0-branch/Source/WebKit

Cherry-pick r279975. rdar://problem/80788597

[iOS] WKMouseGestureRecognizer should not have failure requirements on WKDeferringGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=228013
rdar://80342462

Reviewed by Tim Horton.

Avoid adding a gesture failure requirement between any WKDeferringGestureRecognizers and
WKMouseGestureRecognizer; It doesn't make sense to claim that WKMouseGestureRecognizer should only recognize
once active touch events have been handled by the web page. Under normal circumstances, this gesture failure
requirement is actually completely benign, since touch events should never be received by
WKMouseGestureRecognizer in the first place, and when using a trackpad, deferring gesture recognizers are not
triggered.

However, if an app were to (hypothetically) swizzle out -gestureRecognizer:shouldReceiveTouch: to force
WKMouseGestureRecognizer to receive normal (non-trackpad) touch events, this could cause nearly all gesture
recognizers in the window to become unresponsive, since WKMouseGestureRecognizer would be stuck in Changed state
long after other gestures in the same subgraph have transitioned to Ended or Failed state, thereby preventing
all of these gestures from being reset to Possible state.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279975 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:07 PM Changeset in webkit [280069] by Russell Epstein
  • 8 edits in branches/safari-612.1.24.0-branch/Source

Versioning.

WebKit-7612.1.24.0.1

6:51 PM Changeset in webkit [280068] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[BigSur Release Wk2 Arm64] inspector/css/node-styles-refreshed.html is a flaky failure (224788)
https://bugs.webkit.org/show_bug.cgi?id=224788

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
6:40 PM Changeset in webkit [280067] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[BigSur Wk1 Release] imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-017.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=225420

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
6:29 PM Changeset in webkit [280066] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] StructureStubInfo's m_identifier should follow to the same protocol of inlineAccessBaseStructure
https://bugs.webkit.org/show_bug.cgi?id=228092

Reviewed by Saam Barati.

In r279813, we fixed a race condition related to inlineAccessBaseStructure: while we clear inlineAccessBaseStructure,
we still run code relying on this field's value until stub version of the code is generated. As a result,
we run the code which relies on the cells that are already collected. And we have the same problem with
m_identifier field too. This patch makes m_identifier follow to the same protocol of inlineAccessBaseStructure
so that we fix this race issue too: both fields will be alive until we switch to the code that are not relying on these
fields.

We also make inlineAccessBaseStructure to m_inlineAccessBaseStructure to easily find that this is member field.
And we also use setWithoutWriteBarrier for m_inlineAccessBaseStructure since we emit codeBlock->vm().heap.writeBarrier(codeBlock)
immediately after that.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::fromStructureStubInfo):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initArrayLength):
(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::setCacheType): Deleted.

  • bytecode/StructureStubInfo.h:
6:27 PM Changeset in webkit [280065] by Russell Epstein
  • 1 copy in tags/Safari-612.1.24.0.1

Tag Safari-612.1.24.0.1.

6:19 PM Changeset in webkit [280064] by Russell Epstein
  • 1 copy in branches/safari-612.1.24.0-branch

New branch.

6:13 PM Changeset in webkit [280063] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Update test expectations for imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html.
https://bugs.webkit.org/show_bug.cgi?id=227501.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/ios-wk2/TestExpectations:
6:11 PM Changeset in webkit [280062] by Russell Epstein
  • 1 delete in branches/safari-612.1.24.0-branch

Delete branch.

5:58 PM Changeset in webkit [280061] by Russell Epstein
  • 1 copy in tags/Safari-612.1.24.1.1

Tag Safari-612.1.24.1.1.

5:48 PM Changeset in webkit [280060] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

DFG's parseIntResult() should check for negative zero.
https://bugs.webkit.org/show_bug.cgi?id=228068
rdar://80788603

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dfg-parseIntResult-should-check-for-negative-zero.js: Added.

Source/JavaScriptCore:

We have to check for negative zero explicitly because C++ evaluates 0.0 == -0.0
as true.

  • dfg/DFGOperations.cpp:

(JSC::DFG::parseIntResult):

5:44 PM Changeset in webkit [280059] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Update expectations for imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001.html.
https://bugs.webkit.org/show_bug.cgi?id=228094.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/mac/TestExpectations:
5:27 PM Changeset in webkit [280058] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] svg/filters/feDiffuseLighting-bottomRightPixel.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=225470

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:00 PM Changeset in webkit [280057] by Wenson Hsieh
  • 2 edits
    2 adds in trunk

[iOS] Tapping images on twitter.com should not toggle tab bar visibility
https://bugs.webkit.org/show_bug.cgi?id=228086
rdar://79667219

Reviewed by Geoffrey Garen.

Treat taps over elements that are explicitly marked draggable and also respond to click events as "meaningful"
with respect to the private UIDelegate method -_webView:didTapAtPoint:withResult:. In doing this, we use the
combination of responding to drags and clicks as a proxy for content that probably results in some meaningful
interaction when tapped.

Test: fast/events/ios/meaningful-click-when-tapping-draggable-content.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isProbablyMeaningfulClick):

5:00 PM Changeset in webkit [280056] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[BigSur Wk1 Release] imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=225490

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:50 PM Changeset in webkit [280055] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[BigSur Wk1 Release] imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-023.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=225495

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:35 PM Changeset in webkit [280054] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS iOS ] crypto/crypto-random-values-oom.html is a flakey timeout.
https://bugs.webkit.org/show_bug.cgi?id=223949

Unreviewed test gardening.

Updated test expectations due to test still appearing flaky.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-19

  • platform/ios-simulator/TestExpectations:
4:09 PM Changeset in webkit [280053] by sihui_liu@apple.com
  • 33 edits in trunk

Implement IDBTransaction.commit()
https://bugs.webkit.org/show_bug.cgi?id=227815
<rdar://problem/80651270>

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idb-explicit-commit-throw.any-expected.txt:
  • web-platform-tests/IndexedDB/idb-explicit-commit-throw.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idb-explicit-commit.any-expected.txt: Some test is timed out as our backend does

not support running multiple transactions simultaneously now.

  • web-platform-tests/IndexedDB/idb-explicit-commit.any.worker-expected.txt: Ditto.
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Spec: https://www.w3.org/TR/IndexedDB/#dom-idbtransaction-commit

Commit request for IDBTransaction is created automatically after all its requests are completed and success
events of those requests are fired. IDBTransaction.commit() lets client create commit request, without waiting
for the result of requests, so the commit can happen sooner.

In our implementation, if pending requests before the commit request are completed successfully, commit request
will be executed directly in the backend and dose not affect by things happening in request event handler. If
some pending request before the commit request has error, the commit request will be treated as abort request,
as commit() means no client operation, including error handling, should happen after it.

Rebaselined existing tests.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::didStartTransaction):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::willAbortTransactionAfterDispatchingEvent const):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::abortInternal):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer):
(WebCore::IDBTransaction::commit): If commit() is called in event handler for error event, and the error is
handled before the call, we will create a commit requet. Otherwise, it is ignored as transaction will abort
due to the error.
(WebCore::IDBTransaction::commitInternal):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::didCommit): didCommit used to be called after all requests are done and events are
fired. As commit request can now be handled and replied before other requests, we need to make sure complete
event of transaction is fired after success event of requests, by tracking completion of the last request before
commit request.
(WebCore::IDBTransaction::operationCompletedOnClient):
(WebCore::IDBTransaction::autoCommit):
(WebCore::IDBTransaction::internalAbort): Deleted.

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::commitTransaction):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::commitTransaction):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::commitTransaction):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • loader/EmptyClients.cpp:

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::commitTransaction):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::commitTransaction):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::commitTransaction):

  • Storage/InProcessIDBServer.h:
3:59 PM Changeset in webkit [280052] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS wk1 Release] media/modern-media-controls/scrubber-support/scrubber-support-drag.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=228091

Unreviewed test gardening.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-19

  • platform/mac-wk1/TestExpectations:
3:35 PM Changeset in webkit [280051] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html as flaky on WK1.
https://bugs.webkit.org/show_bug.cgi?id=228089

  • platform/mac-wk1/TestExpectations:
3:17 PM Changeset in webkit [280050] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] InByStatus / InByVariant should visit CacheableIdentifier
https://bugs.webkit.org/show_bug.cgi?id=228088
rdar://80794604

Reviewed by Mark Lam.

JSTests:

  • stress/in-by-variant-should-mark-cacheable-identifier.js: Added.

(foo):
(let.handler.has):

Source/JavaScriptCore:

After r278445, InByVariant holds CacheableIdentifier. And this can have
String/Symbol cells if this variant is generated by in_by_val. In that
case, we must visit this cell as GetByStatus / GetByVariant are doing.

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::visitAggregateImpl):

  • bytecode/InByStatus.h:
  • bytecode/InByVariant.cpp:

(JSC::InByVariant::visitAggregateImpl):

  • bytecode/InByVariant.h:
  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::visitAggregateImpl):

3:01 PM Changeset in webkit [280049] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Port <dialog> close event to modern event handling code
https://bugs.webkit.org/show_bug.cgi?id=227915

Reviewed by Chris Dumez.

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::close):
(WebCore::dialogCloseEventSender): Deleted.
(WebCore::HTMLDialogElement::~HTMLDialogElement): Deleted.
(WebCore::HTMLDialogElement::dispatchPendingEvent): Deleted.

  • html/HTMLDialogElement.h:
2:54 PM Changeset in webkit [280048] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[ Mac wk2 ]Updated test expectations for media/video-seek-with-negative-playback.html and removed obsolete expectations in platforms/mac.
https://bugs.webkit.org/show_bug.cgi?id=228087.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:35 PM Changeset in webkit [280047] by Chris Dumez
  • 7 edits in trunk

HTMLImageElement.decoding should reflect the decoding content attribute, limited to only known values
https://bugs.webkit.org/show_bug.cgi?id=228081

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

HTMLImageElement.decoding should reflect the decoding content attribute, limited to only known values.
We were missing the *limited to only known values* logic:

This aligns our behavior with Firefox and Chrome.

No new tests, rebaselined existing test.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setDecoding):
(WebCore::HTMLImageElement::decoding const):

  • html/HTMLImageElement.h:
  • html/HTMLImageElement.idl:
2:33 PM Changeset in webkit [280046] by Chris Dumez
  • 9 edits in trunk

FetchResponse.formData() should not reject promise if the body is null and the MIME Type is "application/x-www-form-urlencoded"
https://bugs.webkit.org/show_bug.cgi?id=228085

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/fetch/api/request/request-consume-empty.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume-empty.any.worker-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty.any-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty.any.worker-expected.txt:

Source/WebCore:

FetchResponse.formData() should not reject promise if the body is null and the MIME Type is "application/x-www-form-urlencoded":

As per the specification, we should package an empty byte sequence in this case and resolve the promise with that.

No new tests, rebaselined existing tests.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::packageFormData):
(WebCore::resolveWithTypeAndData):
(WebCore::packageFormData): Deleted.

  • Modules/fetch/FetchBodyConsumer.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::formData):

1:49 PM Changeset in webkit [280045] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(?): alpha slider doesn't match alpha input for transparent in color picker
https://bugs.webkit.org/show_bug.cgi?id=227941
<rdar://problem/80557438>

Reviewed by Devin Rousso.

  • UserInterface/Views/Slider.js:

(WI.Slider.prototype.set value):
When the initial value was set to 0, set value was exiting early when the passed value was 0.

1:45 PM Changeset in webkit [280044] by Chris Dumez
  • 11 edits
    91 adds in trunk/LayoutTests

Unreviewed, land test baselines for cross-origin-opener-policy tests
https://bugs.webkit.org/show_bug.cgi?id=228080

LayoutTests/imported/w3c:

  • web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-same-origin-allow-popups-document-write-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-meta-http-equiv.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-opener_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-opener_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro_cross-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-focus.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-frames.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-indexed-getter.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-length.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-location-set.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-named-getter.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-set.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/property-window.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/report-to-both_coop-ro.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/access-reporting/reporting-observer-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-four-reports.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-from-unsafe-none.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-report-to.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-with-coep-report-only.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin-with-coep.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/report-only-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-opener.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-coop-navigated-popup.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-allow-popups-report-to.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-coep-report-to.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin-report-to.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-same-origin.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-popup-unsafe-none-report-to.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt: Added.

LayoutTests:

1:14 PM Changeset in webkit [280043] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[MacOS wk2 & iOS] 2 fast/canvas tests are flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=228082

Unreviewed test gardening.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-19

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:38 PM Changeset in webkit [280042] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Release wk1 ] media/video-restricted-no-preload-auto.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228084.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/mac-wk1/TestExpectations:
12:29 PM Changeset in webkit [280041] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Revert a debug assertion that was added in r280019
https://bugs.webkit.org/show_bug.cgi?id=228051

Reviewed by Tim Horton.

Several existing (non-accessibility-related) editing tests appear to hit this debug assertion that was added in
r280019, which indicates that it's currently possible to call -selectionDidChange: without a balanced call to
-selectionWillChange:, even before the changes in r280019.

For the time being, replace this assertion with a FIXME referencing a followup bug to investigate why this is
the case: https://webkit.org/b/228083. Thankfully, since the decrementing of _selectionChangeNestingLevel is
idempotent once the level reaches 0, no other changes are needed to ensure that we don't end up with underflow
in _selectionChangeNestingLevel.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView endSelectionChange]):

11:53 AM Changeset in webkit [280040] by Ryan Haddad
  • 2 edits in trunk/Tools

[build.webkit.org] lldb-webkit-test is failing on Catalina queues
https://bugs.webkit.org/show_bug.cgi?id=227946

Reviewed by Aakash Jain.

The changes to lldb-webkit-test to support the Python 3 version of lldb present in the
Big Sur-aligned Xcode have made it incompatible with Catalin's Python 2 version.

Rather than creating and defending the results for two different versions of the lldb-webkit-test
script, disable this test step for Catalina.

  • CISupport/build-webkit-org/factories.py:

(TestFactory.init):

11:14 AM Changeset in webkit [280039] by Patrick Angle
  • 2 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: Service workers can't be inspected in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=228001

Reviewed by Per Arne Vollan.

For inspecting targets in the WebProcess, like Service Workers, we read the ShowDevelopMenu default on Cocoa
platforms to determine if remote inspection should be allowed, but the sandbox broker bundle identifier used to
read that preference is different for Safari Technology Preview. We need to read the preference with the
appropriate sandbox broker bundle identifier when the host application is Safari Technology Preview.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::shouldEnableRemoteInspector):

11:13 AM Changeset in webkit [280038] by Patrick Angle
  • 3 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: REGRESSION(r271294) Service workers on iOS can't be inspected
https://bugs.webkit.org/show_bug.cgi?id=227971

Reviewed by Per Arne Vollan.

r271294 fixed inspecting Service Workers on macOS, but in the process broke inspecting Service Workers on iOS.
For iOS, previously a flag was set to mark RemoteInspector as needing to wait for a Sandbox Extension handle,
but after r271294 this flag will no longer be cleared properly, as the handle is acquired and consumed prior to
the point in initialization that iOS was special cased to wait for the handle. To resolve this, we now set the
flag once based on whether we were able to acquire a handle, which due to the changes in r270326 will already
have been done by the time we are initializing a WebProcess.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:06 AM Changeset in webkit [280037] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: selecting a sibling node in the breadcrumb navigation doesn't do anything
https://bugs.webkit.org/show_bug.cgi?id=227893

Reviewed by Devin Rousso.

The WI.HierarchicalPathComponent.Event.Clicked event is only fired when there are no sibling path components
to select, therefor we must also listen for the WI.HierarchicalPathComponent.Event.SiblingWasSelected event to
be able to then reveal and highlight the correct DOM node in the tree.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.get selectionPathComponents):
(WI.DOMTreeContentView.prototype._handlePathComponentSelected):
Drive-by to match our style of _handle* event handler naming.

11:06 AM Changeset in webkit [280036] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build.

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::nameForBackingStoreType):

11:00 AM Changeset in webkit [280035] by Patrick Angle
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 15.0)
https://bugs.webkit.org/show_bug.cgi?id=228079

Reviewed by Devin Rousso.

  • UserInterface/Protocol/Legacy/15.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-15.0.json: Added.
10:51 AM Changeset in webkit [280034] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS Wk1] media/video-pause-immediately.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227136.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/mac-wk1/TestExpectations:
10:40 AM Changeset in webkit [280033] by Russell Epstein
  • 12 edits in branches/safari-612.1.24.0-branch/Source

Cherry-pick r280019. rdar://problem/80788628

[iOS] [AX] Keyboard text candidates don't update when changing selection using Switch Control
https://bugs.webkit.org/show_bug.cgi?id=228051
rdar://79944295

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setSelectedTextRange): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

Call the new EditorClient methods added below. Additionally, drive-by fix setSelectedVisiblePositionRange so
that it also performs a user-triggered selection change in the case where the range is not collapsed; this
matches the behavior of setSelectedTextRange as well.

  • page/EditorClient.h: (WebCore::EditorClient::willChangeSelectionForAccessibility): (WebCore::EditorClient::didChangeSelectionForAccessibility):

Add new EditorClient hooks, (will|did)ChangeSelectionForAccessibility, that accessibility code can call before
and after it triggers a selection change; we use these two codepaths above when using the "Previous/Next
Character", "Previous/Next Word", and "Previous/Next Line" Switch Control menu actions.

Source/WebKit:

Add support for updating text candidates by calling into UIKeyboardImpl when changing the selection via
accessibility UI (e.g. when using Switch Control). To achieve this, we add a new EditorState flag that indicates
whether or not the EditorState change was triggered by accessibility; in WKContentView, we then consult this
flag and call -beginSelectionChange/-endSelectionChange in the case where the updated editor state change was
triggered by accessibility and we're also not already in the scope of another selection change or gesture-based
selection change.

Note that the latter part of the check is critical in order to avoid deadlocks in UIKeyboardTaskQueue; see
r246013, r246425 and r246665, which introduced and later reverted a similar mechanism for updating
UIKeyboardImpl, but after every selection change.

  • Shared/EditorState.cpp: (WebKit::EditorState::encode const): (WebKit::EditorState::decode): (WebKit::operator<<):
  • Shared/EditorState.h:

Add the new boolean flag, triggeredByAccessibilitySelectionChange.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView beginSelectionChange]): (-[WKContentView endSelectionChange]):

Add a new unsigned flag, _selectionChangeNestingLevel, that lets us know if we're expecting an eventual call
to -endSelectionChange. See -_selectionChanged below for more details. Note that we don't need to reset
_selectionChangeNestingLevel to 0 when cleaning up the interaction after web process termination, because
the completion handlers that contain all the balanced calls to -endSelectionChange should be invoked after
such an event anyways.

(-[WKContentView _selectionChanged]):

If the triggeredByAccessibilitySelectionChange bit is set on the incoming (post layout data) EditorState and:
(1) UIKit isn't in the middle of handling a gesture that modifies the selection, and...
(2) We aren't expecting a call to -endSelectionChange.

...then we force UIKeyboardImpl to reload its UI (text suggestions, B/I/U state, etc.) using the incoming
EditorState. This allows accessibility-driven selection changes using Switch Control to behave like gesture-
based selection changes.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::willChangeSelectionForAccessibility): (WebKit::WebEditorClient::didChangeSelectionForAccessibility):

Implement a couple of client hooks in WebKit2 so that we set a boolean flag on WebPage,
m_isChangingSelectionForAccessibility, to true over the scope of an AX-driven selection change. See related
AX changes in WebCore for more details.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::hasPendingEditorStateUpdate const):

Add a helper method so that we can conveniently check whether we have a pending editor state update to flush,
since the previous boolean flag is now a tri-state enum (m_pendingEditorStateUpdateStatus).

(WebKit::WebPage::editorState const):
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::scheduleFullEditorStateUpdate):

If we're in the scope of an accessibility selection change, transition m_pendingEditorStateUpdateStatus to
ScheduledDuringAccessibilitySelectionChange; otherwise, just use Scheduled.

(WebKit::WebPage::flushPendingEditorStateUpdate):

Refactor m_hasPendingEditorStateUpdate so that it now captures three states:
(1) We haven't scheduled an editor state update yet.
(2) We've scheduled an editor state update that was not triggered by accessibility.
(3) We've scheduled an editor state update that was triggered by accessibility.

The distinction between (2) and (3) allows us to populate EditorState's new
triggeredByAccessibilitySelectionChange flag.

  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::willChangeSelectionForAccessibility): (WebKit::WebPage::didChangeSelectionForAccessibility):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280019 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:40 AM Changeset in webkit [280032] by Russell Epstein
  • 2 edits in branches/safari-612.1.24.0-branch/Source/WebKit

Cherry-pick r279975. rdar://problem/80788597

[iOS] WKMouseGestureRecognizer should not have failure requirements on WKDeferringGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=228013
rdar://80342462

Reviewed by Tim Horton.

Avoid adding a gesture failure requirement between any WKDeferringGestureRecognizers and
WKMouseGestureRecognizer; It doesn't make sense to claim that WKMouseGestureRecognizer should only recognize
once active touch events have been handled by the web page. Under normal circumstances, this gesture failure
requirement is actually completely benign, since touch events should never be received by
WKMouseGestureRecognizer in the first place, and when using a trackpad, deferring gesture recognizers are not
triggered.

However, if an app were to (hypothetically) swizzle out -gestureRecognizer:shouldReceiveTouch: to force
WKMouseGestureRecognizer to receive normal (non-trackpad) touch events, this could cause nearly all gesture
recognizers in the window to become unresponsive, since WKMouseGestureRecognizer would be stuck in Changed state
long after other gestures in the same subgraph have transitioned to Ended or Failed state, thereby preventing
all of these gestures from being reset to Possible state.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279975 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:21 AM Changeset in webkit [280031] by Russell Epstein
  • 2 edits in branches/safari-612.1.24.1-branch/Source/WebKit

Cherry-pick r280001. rdar://problem/80788656

macOS Safari network sessions not being marked as being from a browser
https://bugs.webkit.org/show_bug.cgi?id=228028
<rdar://problem/80648664>

Reviewed by Brent Fulgham.

Move WebKitAdditions to open source to communicate full web browser
status to the networking stack. In the macOS case, we don't have
a full browser entitlement, so we should check for Safari.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::SessionWrapper::initialize): The name com.apple.WebKit.InAppBrowser is not the most accurate name, but changing it would require syncing with other parts of the network stack. We should do this in a separate bug.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280001 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:12 AM Changeset in webkit [280030] by Russell Epstein
  • 8 edits in branches/safari-612.1.24.0-branch/Source

Versioning.

WebKit-7612.1.24.0.1

10:12 AM Changeset in webkit [280029] by Russell Epstein
  • 8 edits in branches/safari-612.1.24.1-branch/Source

Versioning.

WebKit-7612.1.24.1.1

9:49 AM Changeset in webkit [280028] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[Mac wk1 Debug] webaudio/audioworket-out-of-memory.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227845.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-19

  • platform/mac-wk1/TestExpectations:
9:34 AM Changeset in webkit [280027] by Russell Epstein
  • 1 copy in branches/safari-612.1.24.1-branch

New branch.

9:33 AM Changeset in webkit [280026] by Russell Epstein
  • 1 copy in branches/safari-612.1.24.0-branch

New branch.

9:15 AM Changeset in webkit [280025] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed infrastructure fix, remove bot that is out for hardware repair.

  • CISupport/ews-build/config.json:
7:25 AM Changeset in webkit [280024] by Ziran Sun
  • 11 edits in trunk

[css-grid] Images as grid items should use the overridingLogicalHeight when defined to compute the logical width
https://bugs.webkit.org/show_bug.cgi?id=227984

Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018-expected.txt:

Source/WebCore:

As discussed in https://github.com/w3c/csswg-drafts/issues/5713, for images as grid items, when
stretch alignment is only applied in one axis we should respect aspect-ratio on the other.

When computing the logical width using an intrinsic aspect ratio, RenderReplaced should use the
overridingLogicalHeight whenever defined just as how it does for flex items. This change is to
replace the use of intrinsic (non-stretched) logical height in current code with the overridingLogicalHeight.

This allows us to pass an additional of 9 grid WPT tests.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalWidth const):

LayoutTests:

9 grid WPT tests are now passing.

6:55 AM Changeset in webkit [280023] by Ziran Sun
  • 5 edits in trunk

[css-grid] Use correct block-size to resolve min-content
https://bugs.webkit.org/show_bug.cgi?id=227167

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

The following test is passing -

  • web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001.html:

Source/WebCore:

When the min/max depends on block-size, We need to make sure that min/max widths are set dirty for
replaced element when block-size changes so that the correct block-size is used to get min/max widths.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-item-inline-contribution-001.html

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::layout):

1:39 AM Changeset in webkit [280022] by Ziran Sun
  • 5 edits in trunk

[CSS-grid] Ignore the aspect-ratio of a replaced element if stretch alignments are applied to both axes
https://bugs.webkit.org/show_bug.cgi?id=227573

Reviewed by Javier Fernandez.

Source/WebCore:

As discussed in https://github.com/w3c/csswg-drafts/issues/5713, for the replaced element as a grid item,
when both axes have stretch alignments applied and there is no auto margin(s) presented, the aspect ratio
should be ignored if there is any.

Part of this patch is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/2651651

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasStretchedLogicalHeight const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):

  • rendering/RenderBox.h:

LayoutTests:

Two grid WPT tests are now passing.

Jul 18, 2021:

3:59 PM Changeset in webkit [280021] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

Ignore weak external symbols in clang coverage builds using check-for-weak-vtables-and-externals
<https://webkit.org/b/228063>
<rdar://problem/80477138>

Reviewed by Alexey Proskuryakov.

  • Scripts/check-for-weak-vtables-and-externals:
  • Ignore weak symbols from llvm when building with coverage enabled. This fixes the build.
  • coverage/coverage.xcconfig:

(UNEXPORTED_SYMBOL_LDFLAGS_FOR_COVERAGE): Remove.

  • Can't use -unexported_symbol and -exported_symbol together, so remove this.
12:18 PM Changeset in webkit [280020] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Fix canvas overflow checking to use CheckedArithmatic rather than adhoc floating point mechanism
https://bugs.webkit.org/show_bug.cgi?id=228058

Reviewed by Dean Jackson.

We have CheckedArithmatic just for this case. Use it.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::shouldAccelerate const):
(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLCanvasElement.h:
8:41 AM Changeset in webkit [280019] by Wenson Hsieh
  • 12 edits in trunk/Source

[iOS] [AX] Keyboard text candidates don't update when changing selection using Switch Control
https://bugs.webkit.org/show_bug.cgi?id=228051
rdar://79944295

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

Call the new EditorClient methods added below. Additionally, drive-by fix setSelectedVisiblePositionRange so
that it also performs a user-triggered selection change in the case where the range is not collapsed; this
matches the behavior of setSelectedTextRange as well.

  • page/EditorClient.h:

(WebCore::EditorClient::willChangeSelectionForAccessibility):
(WebCore::EditorClient::didChangeSelectionForAccessibility):

Add new EditorClient hooks, (will|did)ChangeSelectionForAccessibility, that accessibility code can call before
and after it triggers a selection change; we use these two codepaths above when using the "Previous/Next
Character", "Previous/Next Word", and "Previous/Next Line" Switch Control menu actions.

Source/WebKit:

Add support for updating text candidates by calling into UIKeyboardImpl when changing the selection via
accessibility UI (e.g. when using Switch Control). To achieve this, we add a new EditorState flag that indicates
whether or not the EditorState change was triggered by accessibility; in WKContentView, we then consult this
flag and call -beginSelectionChange/-endSelectionChange in the case where the updated editor state change was
triggered by accessibility and we're also not already in the scope of another selection change or gesture-based
selection change.

Note that the latter part of the check is critical in order to avoid deadlocks in UIKeyboardTaskQueue; see
r246013, r246425 and r246665, which introduced and later reverted a similar mechanism for updating
UIKeyboardImpl, but after every selection change.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::operator<<):

  • Shared/EditorState.h:

Add the new boolean flag, triggeredByAccessibilitySelectionChange.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView beginSelectionChange]):
(-[WKContentView endSelectionChange]):

Add a new unsigned flag, _selectionChangeNestingLevel, that lets us know if we're expecting an eventual call
to -endSelectionChange. See -_selectionChanged below for more details. Note that we don't need to reset
_selectionChangeNestingLevel to 0 when cleaning up the interaction after web process termination, because
the completion handlers that contain all the balanced calls to -endSelectionChange should be invoked after
such an event anyways.

(-[WKContentView _selectionChanged]):

If the triggeredByAccessibilitySelectionChange bit is set on the incoming (post layout data) EditorState and:
(1) UIKit isn't in the middle of handling a gesture that modifies the selection, and...
(2) We aren't expecting a call to -endSelectionChange.

...then we force UIKeyboardImpl to reload its UI (text suggestions, B/I/U state, etc.) using the incoming
EditorState. This allows accessibility-driven selection changes using Switch Control to behave like gesture-
based selection changes.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::willChangeSelectionForAccessibility):
(WebKit::WebEditorClient::didChangeSelectionForAccessibility):

Implement a couple of client hooks in WebKit2 so that we set a boolean flag on WebPage,
m_isChangingSelectionForAccessibility, to true over the scope of an AX-driven selection change. See related
AX changes in WebCore for more details.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::hasPendingEditorStateUpdate const):

Add a helper method so that we can conveniently check whether we have a pending editor state update to flush,
since the previous boolean flag is now a tri-state enum (m_pendingEditorStateUpdateStatus).

(WebKit::WebPage::editorState const):
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::scheduleFullEditorStateUpdate):

If we're in the scope of an accessibility selection change, transition m_pendingEditorStateUpdateStatus to
ScheduledDuringAccessibilitySelectionChange; otherwise, just use Scheduled.

(WebKit::WebPage::flushPendingEditorStateUpdate):

Refactor m_hasPendingEditorStateUpdate so that it now captures three states:
(1) We haven't scheduled an editor state update yet.
(2) We've scheduled an editor state update that was not triggered by accessibility.
(3) We've scheduled an editor state update that was triggered by accessibility.

The distinction between (2) and (3) allows us to populate EditorState's new
triggeredByAccessibilitySelectionChange flag.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::willChangeSelectionForAccessibility):
(WebKit::WebPage::didChangeSelectionForAccessibility):

Jul 17, 2021:

10:27 AM Changeset in webkit [280018] by Alan Bujtas
  • 8 edits
    1 add in trunk/Source/WebCore

[LFC][IFC] Move InlineLevelBox class to its own file
https://bugs.webkit.org/show_bug.cgi?id=228045

Reviewed by Sam Weinig.

LineBox class has grown a lot since the subclass of InlineLevelBox has been introduced.
It is also in preparation for merging LineBox and LineBoxGeometry classes.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingQuirks.h:
  • layout/formattingContexts/inline/InlineLevelBox.h: Added.

(WebCore::Layout::InlineLevelBox::baseline const):
(WebCore::Layout::InlineLevelBox::descent const):
(WebCore::Layout::InlineLevelBox::LayoutBounds::height const):
(WebCore::Layout::InlineLevelBox::LayoutBounds::operator== const):
(WebCore::Layout::InlineLevelBox::layoutBounds const):
(WebCore::Layout::InlineLevelBox::hasContent const):
(WebCore::Layout::InlineLevelBox::verticalAlign const):
(WebCore::Layout::InlineLevelBox::layoutBox const):
(WebCore::Layout::InlineLevelBox::style const):
(WebCore::Layout::InlineLevelBox::isInlineBox const):
(WebCore::Layout::InlineLevelBox::isRootInlineBox const):
(WebCore::Layout::InlineLevelBox::isAtomicInlineLevelBox const):
(WebCore::Layout::InlineLevelBox::isLineBreakBox const):
(WebCore::Layout::InlineLevelBox::type const):
(WebCore::Layout::InlineLevelBox::logicalRect const):
(WebCore::Layout::InlineLevelBox::logicalTop const):
(WebCore::Layout::InlineLevelBox::logicalBottom const):
(WebCore::Layout::InlineLevelBox::logicalLeft const):
(WebCore::Layout::InlineLevelBox::logicalWidth const):
(WebCore::Layout::InlineLevelBox::logicalHeight const):
(WebCore::Layout::InlineLevelBox::setLogicalWidth):
(WebCore::Layout::InlineLevelBox::setLogicalHeight):
(WebCore::Layout::InlineLevelBox::setLogicalTop):
(WebCore::Layout::InlineLevelBox::setBaseline):
(WebCore::Layout::InlineLevelBox::setDescent):
(WebCore::Layout::InlineLevelBox::setLayoutBounds):
(WebCore::Layout::InlineLevelBox::InlineLevelBox):
(WebCore::Layout::m_type):
(WebCore::Layout::InlineLevelBox::setHasContent):
(WebCore::Layout::InlineLevelBox::hasLineBoxRelativeAlignment const):
(WebCore::Layout::InlineLevelBox::createAtomicInlineLevelBox):
(WebCore::Layout::InlineLevelBox::createInlineBox):
(WebCore::Layout::InlineLevelBox::createLineBreakBox):
(WebCore::Layout::InlineLevelBox::createGenericInlineLevelBox):

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::InlineLevelBox::InlineLevelBox): Deleted.
(WebCore::Layout::m_type): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setBaseline): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setDescent): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLayoutBounds): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalTop): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalHeight): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setHasContent): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::hasLineBoxRelativeAlignment const): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::baseline const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::descent const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::height const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::LayoutBounds::operator== const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::layoutBounds const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::hasContent const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::verticalAlign const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::layoutBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::style const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isInlineBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isRootInlineBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isAtomicInlineLevelBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::isLineBreakBox const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::type const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalTop const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalBottom const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalLeft const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalWidth const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::logicalHeight const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setLogicalWidth): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createAtomicInlineLevelBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createInlineBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createLineBreakBox): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::createGenericInlineLevelBox): Deleted.

Jul 16, 2021:

10:42 PM Changeset in webkit [280017] by Simon Fraser
  • 26 edits in trunk

getBoundingClientRect() returns the incorrect rectangle on elements whose parent element is set -webkit-column-count
https://bugs.webkit.org/show_bug.cgi?id=99959
rdar://80106111

Reviewed by Alan Bujtas.
Source/WebCore:

getBoundingClientRect() and getClientRects() for elements inside multicol had a quick
and dirty implementation that just mapped the element center point into a column. This
resulted in odd, negative top/left in some cases.

Fix by correctly generating multiple rects for elements that span columns, following
the repaint code path that already knew how to do this correctly.

The entry point is RenderFragmentContainer::absoluteQuadsForBox() which now has a
real implementation. For each fragment that the box covers, it calls fragmentRectsForFlowContentRect()
which generates one or more rects; RenderMultiColumnSet overrides this to
compute rects for multicol.

We have to take care not to eliminate empty rects, since the API does return these.

Tested by existing tests.

  • dom/Element.cpp:

(WebCore::Element::absoluteEventBounds):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::absoluteQuadsIgnoringContinuation const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteQuads const):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::fragmentedFlowContentRectangle):
(WebCore::RenderFragmentContainer::fragmentRectsForFlowContentRect):

  • rendering/RenderFragmentContainer.h:

(WebCore::RenderFragmentContainer::absoluteQuadsForBoxInFragment): Deleted.

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::absoluteQuadsForBox const):

  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::firstAndLastColumnsFromOffsets const):
(WebCore::RenderMultiColumnSet::repaintFragmentedFlowContent):
(WebCore::RenderMultiColumnSet::fragmentRectsForFlowContentRect):
(WebCore::RenderMultiColumnSet::collectLayerFragments):

  • rendering/RenderMultiColumnSet.h:

LayoutTests:

These tests have all progressed.

  • fast/multicol/client-rects-spanners-complex.html:
  • fast/multicol/client-rects-spanners.html:
  • fast/multicol/client-rects.html:
  • fast/multicol/newmulticol/client-rects.html:
  • imported/blink/fast/multicol/client-rects-rtl-expected.html:
  • imported/blink/fast/multicol/client-rects-rtl.html: This test appeared to be hand-coded to the incorrect old behavior.
  • platform/ios/fast/multicol/client-rects-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-expected.txt:
  • platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-expected.txt:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
8:24 PM Changeset in webkit [280016] by Kate Cheney
  • 8 edits in trunk

WKWebView javascript injection doesn't work if app includes WKAppBoundDomains
https://bugs.webkit.org/show_bug.cgi?id=227589
<rdar://problem/80327452>

Reviewed by Brent Fulgham.

Source/WebCore:

Update service worker code to always allow workers on localhost to be
registered. Also add logic so localhost registrations aren't added
to the total count of 3 registrations.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistration):
We only want to increment the count if this registration is not
already in the mapping, otherwise it gets double counted.

(WebCore::SWServer::removeRegistration):
Ditto for removing a registration, we should only decrement the count
if we find a matching key.

(WebCore::SWServer::validateRegistrationDomain):
(WebCore::SWServer::removeFromScopeToRegistrationMap):
Ditto.

  • workers/service/server/SWServer.h:

Source/WebKit:

Apps should not have to specify localhost in their Info.plist in order
to load local content in app-bound mode. This patch adds a check for
localhost or a loopback IP address and forces an app into app-bound
mode in this case.

Since all layout tests use localhost and 127.0.0.1 as test domains,
this patch also adds a check for enableInAppBrowserPrivacyForTesting()
which determines if we are running layout tests and does not trigger
this check in that case so we can test other behavior.

  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldTreatURLProtocolAsAppBound):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

Added new tests. Removed localhost and 127.0.0.1 from the Info.plist
to avoid false positive tests. Replace them with other domains so we
still test the max count.

  • TestWebKitAPI/Info.plist:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

6:02 PM Changeset in webkit [280015] by achristensen@apple.com
  • 14 edits
    1 add in trunk

Prevent HSTS tracking mitigation for top level navigation requests
https://bugs.webkit.org/show_bug.cgi?id=227936

Reviewed by Brady Eidson.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Use NSURLRequest.URL as the first party for cookies for HSTS purposes during redirects instead of NSURLRequest.mainDocumentURL,
which hasn't been updated because CFNetwork doesn't know that this is the main document request and when redirected, the main document URL also changes.

Covered by API tests, which will start covering this case once rdar://80550123 is integrated.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration allowsHSTSWithUntrustedRootCertificate]):
(-[_WKWebsiteDataStoreConfiguration setAllowsHSTSWithUntrustedRootCertificate:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::allowsHSTSWithUntrustedRootCertificate const):
(WebKit::WebsiteDataStoreConfiguration::setAllowsHSTSWithUntrustedRootCertificate):

Tools:

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm: Added.

(TestWebKitAPI::hasRadar80550123):
(TestWebKitAPI::hstsWebViewAndDelegate):
(TestWebKitAPI::hstsServer):
(TestWebKitAPI::TEST):

6:00 PM Changeset in webkit [280014] by achristensen@apple.com
  • 9 edits
    1 add in trunk

Network access prevention SPI should prevent preconnecting, and it should first allow injected bundle to change request
https://bugs.webkit.org/show_bug.cgi?id=228044
<rdar://72995136>

Reviewed by Tim Horton.

Source/WebCore:

WKWebViewConfiguration._loadsFromNetwork and its successor _allowedNetworkHosts have two issues:

  1. They allow link rel=preconnect to still preconnect to a host. While this doesn't reveal much information, it does reveal some.
  2. It blocks loads before giving the injected bundle a chance to change the scheme of the request. This SPI is relatively new and intended to replace the injected bundle, but the user from this radar needs to have an injected bundle make changes first.

Both problems are fixed and covered by API tests.

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • page/Page.h:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SchemeChangingPlugIn.mm: Added.

(-[SchemeChangingPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[SchemeChangingPlugIn webProcessPlugInBrowserContextController:frame:willSendRequest:redirectResponse:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
5:53 PM Changeset in webkit [280013] by Yijia Huang
  • 7 edits in trunk/Source/JavaScriptCore

Add ExtendType to Air::Arg Index to fully utilize address computation in memory instruction for ARM64
https://bugs.webkit.org/show_bug.cgi?id=227970

Reviewed by Saam Barati.

The pattern recognition of address computation in the instructions, e.g., Load
Resistor (LDR), Store Register (STR), etc., can benefit the instruction selector.
Then, the Air operand BaseIndex containing base, index, and scale is introduced
to Air opcode. However, the <extend> option of index address is not fully leveraged
in the previous implementation.

To fill that gap, this patch adds a new member, MacroAssembler::Extend, to the current
design of BaseIndex to trigger zero/sign extension on the Index address. And this is
enabled for Store/Load with valid index address and shift amount.

Maybe, the ideal approach is to introduce a decorator (Index@EXT) to the Air operand
to provide an extension opportunity for the specific form of the Air opcode.

Load Register (LDR) calculates an address from a base register value and an
offset register value, loads a word from memory, and writes it to a register.
The offset register value can optionally be shifted and extended.

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = Z/SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = scale
Int @3 = Shl(@1, @2)
Int @4 = Add(@0, @3)
Int @5 = Load(@4, ControlDependent|Reads:Top)
Void@6 = Return(@5, Terminal)

Old optimized AIR
Move %x1, %x1, @1
Move (%x0,%x1,2scale), %x0, @5
Ret %x0, @6

New optimized AIR
Move (%x0,%x1,2scale), %x0, @5
Ret %x0, @6

Store Register (STR) calculates an address from a base register value and an
offset register value, and stores a 32-bit word or a 64-bit doubleword to the
calculated address, from a register.

Given B3 IR:
Int @0 = value
Int @1 = ArgumentReg(%x0)
Int @2 = Z/SExt32(Trunc(ArgumentReg(%x1))
Int @3 = scale
Int @4 = Shl(@2, @3)
Int @5 = Add(@1, @4)
Void@6 = Store(@0, @5, ControlDependent|Writes:Top)
Void@7 = Return(@0, Terminal)

Old optimized AIR
Move32 %x1, %x1, @2
Store32 %xzr, (%x0,%x1,2scale), @6
Move $0, %x0, @7
Ret32 %x0, @7

New optimized AIR
Store32 %xzr, (%x0,%x1,2scale), @6
Move $0, %x0, @7
Ret32 %x0, @7

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::BaseIndex::BaseIndex):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::indexExtendType):
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::index):
(JSC::B3::Air::Arg::asBaseIndex const):

  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testLoadZeroExtendIndexAddress):
(testLoadSignExtendIndexAddress):
(testStoreZeroExtendIndexAddress):
(testStoreSignExtendIndexAddress):
(addBitTests):

5:47 PM Changeset in webkit [280012] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS Release wk1] media/modern-media-controls/volume-support/volume-support-drag-to-mute.html is a flaky fail and timeout.
https://bugs.webkit.org/show_bug.cgi?id=228042.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac-wk1/TestExpectations:
5:15 PM Changeset in webkit [280011] by ysuzuki@apple.com
  • 3 edits in trunk/JSTests

[JSC] Simplify sampling-profiler-regexp.js test
https://bugs.webkit.org/show_bug.cgi?id=228040

Reviewed by Saam Barati.

In this new test case, only thing we care is regexp appears on sampling-profiler regardless of whether the other functions are inlined / tail-called or not.
We change the sampling-profiler/samplingProfiler.js runTest to add a mode which searches specific signature in the call tree.

  • stress/sampling-profiler-regexp.js:

(platformSupportsSamplingProfiler):

  • stress/sampling-profiler/samplingProfiler.js:

(doesTreeHaveStackTrace):
(runTest):

4:59 PM Changeset in webkit [280010] by Kyle Piddington
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Build Default Metal library offline
https://bugs.webkit.org/show_bug.cgi?id=227333

<rdar://79923371>

This patch compiles and creates a Metal library at build time, storing
the library as a compiled binary file. This library is baked into the dylib,
and is loaded at context creation time.

Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather
bakes it into a binary.

Fixed internal build breaks by skipping Metallib bake script.

Reviewed by Kenneth Russell.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeShaderLibrary):

  • src/libANGLE/renderer/metal/mtl_utils.h:
4:53 PM Changeset in webkit [280009] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

PCM: Add early return when unlinkable token is used and add more happy path Web Inspector logging
https://bugs.webkit.org/show_bug.cgi?id=228039
<rdar://problem/80705989>

Reviewed by Kate Cheney.

There's a missing return after an accepted unlinkable token transaction. The
attribution object is therefore moved and stored twice.

This patch also adds more Web Inspector logging to the happy path for better
developer feedback.

No new tests.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):

Add the missing return.

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):

Add Web Inspector logging.

(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):

Add Web Inspector logging.

(WebKit::PrivateClickMeasurementManager::handleAttribution):

Add Web Inspector logging.

4:40 PM Changeset in webkit [280008] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Grab the lock in FTL::Thunks::keyForSlowPathCallThunk
https://bugs.webkit.org/show_bug.cgi?id=227988
<rdar://problem/80627901>

Reviewed by Mark Lam.

JSTests:

  • stress/thunks-hash-map-should-grab-lock.js: Added.

Source/JavaScriptCore:

Both FTL::Thunks::keyForSlowPathCallThunk and FTL::Thunks::getSlowPathCallThunk
both touch the thunks hash map. In r278030, when I added the lock, I grabbed it
in getSlowPathCallThunk, but forgot to also grab it in keyForSlowPathCallThunk.

  • ftl/FTLThunks.h:

(JSC::FTL::Thunks::keyForSlowPathCallThunk):

4:23 PM Changeset in webkit [280007] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Apple internal build

Unreviewed.

No new tests because there is no behavior change.

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):

4:22 PM Changeset in webkit [280006] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

REGRESSION (r277820): Can't scroll up and down using trackpad in Mail message viewer when in Slide Over
https://bugs.webkit.org/show_bug.cgi?id=228033
rdar://80663917

Reviewed by Tim Horton.

This started happening after the changes in r277820, since UIHoverGestureRecognizer contained several internal
facilities in UIKit for avoiding failure dependencies to other (non-hover) gestures. After removing the
subclass, various UIKit gestures now attempt to add failure requirements to WKMouseGestureRecognizer, thereby
linking WKMouseGestureRecognizer to other gestures in the gesture dependency graph.

This means that all gestures connected to the same subgraph as WKMouseGestureRecognizer are unable to be reset
until WKMouseGestureRecognizer transitions to either Ended or Failed state; however, since this only happens
once the trackpad goes into idle state, these subgraph-connected gestures can effectively only recognize once
per trackpad interaction (resetting only after the trackpad goes idle). Since scroll view pan gesture
recognizers are indirectly connected to WKMouseGestureRecognizer in Slide Over mode, this manifests in scrolling
being unresponsive after an initial scroll gesture has ended.

To address this, we subclass UIHoverGestureRecognizer once again, and (unfortunately) also restore the IPI
override for -_shouldReceiveTouch:forEvent:recognizerView:, to ensure that we're still able to detect and
dispatch mousedown and mousemove events.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):

Remove a couple of delegate overridees here, which are now unnecessary since WKMouseGestureRecognizer is a
UIHoverGestureRecognizer once again.

  • UIProcess/ios/WKMouseGestureRecognizer.h:
  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):

3:59 PM Changeset in webkit [280005] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

FetchBodySource/FetchBodyOwner cleanup
<rdar://80318044> and https://bugs.webkit.org/show_bug.cgi?id=228035

Reviewed by Geoffrey Garen.

FetchBodyOwner should have a WeakPtr factory, and FetchBodySource should use it.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchBodySource.cpp:

(WebCore::FetchBodySource::FetchBodySource):
(WebCore::FetchBodySource::doCancel):
(WebCore::FetchBodySource::close):

  • Modules/fetch/FetchBodySource.h:
  • Modules/fetch/FetchResponse.h:
3:18 PM Changeset in webkit [280004] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r279916.
https://bugs.webkit.org/show_bug.cgi?id=228037

some of tests are timing out

Reverted changeset:

"Convert small JIT pool tests into executable fuzzing"
https://bugs.webkit.org/show_bug.cgi?id=226279
https://commits.webkit.org/r279916

3:07 PM Changeset in webkit [280003] by Truitt Savell
  • 2 edits in trunk/LayoutTests

accessibility/loading-iframe-sends-notification.html is a flaky timeout
rdar://80331434

Unreviewed test gardening.

2:42 PM Changeset in webkit [280002] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Multiple Canvas tests flaky crash, flaky fail.
https://bugs.webkit.org/show_bug.cgi?id=227881.

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:26 PM Changeset in webkit [280001] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

macOS Safari network sessions not being marked as being from a browser
https://bugs.webkit.org/show_bug.cgi?id=228028
<rdar://problem/80648664>

Reviewed by Brent Fulgham.

Move WebKitAdditions to open source to communicate full web browser
status to the networking stack. In the macOS case, we don't have
a full browser entitlement, so we should check for Safari.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::SessionWrapper::initialize):
The name com.apple.WebKit.InAppBrowser is not the most accurate name,
but changing it would require syncing with other parts of the network
stack. We should do this in a separate bug.

2:22 PM Changeset in webkit [280000] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.24

Tag Safari-612.1.24.

2:11 PM Changeset in webkit [279999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[MacOS wk2] inspector/canvas/recording-bitmaprenderer-frameCount.html is flaky failing and timing out.
https://bugs.webkit.org/show_bug.cgi?id=228034

Unreviewed test gardeing.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [279998] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS wk2] inspector/canvas/setShaderProgramHighlighted.html is flaky failing and timing out.
https://bugs.webkit.org/show_bug.cgi?id=228030

Unreviewed test gardeing.

Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-16

  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [279997] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] RegExp::dumpToStream must not ref Strings since it is called concurrently
https://bugs.webkit.org/show_bug.cgi?id=228031
rdar://80686425

Reviewed by Mark Lam.

JSTests:

  • stress/regexp-dump-concurrently.js: Added.

(let.code):

Source/JavaScriptCore:

RegExp::dumpToStream's escapedPattern can return m_pattern. In that case, it is refed in the concurrent thread.
This is wrong since StringImpl must not be ref-ed concurrently. This patch just revert this function to the old behavior.

  • runtime/RegExp.cpp:

(JSC::RegExp::dumpToStream):

1:34 PM Changeset in webkit [279996] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[RenderTreeBuilder] Update the fragmented status of the renderer when it becomes in-flow
https://bugs.webkit.org/show_bug.cgi?id=228025
<rdar://80458138>

Reviewed by Antti Koivisto.

This patch ensures that we update fragmented status of the renderer when it becomes in-flow and not just when the containing block's childrenInline status needs updating.
(e.g. the block renderer goes from out-of-flow to in-flow, and the containing block already has block level children, we don't call childFlowStateChangesAndAffectsParentBlock)

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): Move the update logic out from childFlowStateChangesAndAffectsParentBlock to here and run it unconditionally.
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):

1:25 PM Changeset in webkit [279995] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Modify expectations for media/modern-media-controls/overflow-support/chapters.html
https://bugs.webkit.org/show_bug.cgi?id=227055

Unreviewed test gardening.

1:22 PM Changeset in webkit [279994] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Modify expectations for media/modern-media-controls/overflow-support/chapters.html
https://bugs.webkit.org/show_bug.cgi?id=227055

Unreviewed test gardening.

1:19 PM Changeset in webkit [279993] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

[curl] Use curl_multi_poll and curl_multi_wakeup instead of select
https://bugs.webkit.org/show_bug.cgi?id=227966

Reviewed by Don Olmstead.

libcurl 7.68.0 added curl_multi_poll and curl_multi_wakeup.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlMultiHandle::poll): Added.
(WebCore::CurlMultiHandle::wakeUp): Added.

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::add):
(WebCore::CurlRequestScheduler::callOnWorkerThread):
(WebCore::CurlRequestScheduler::startOrWakeUpThread):
(WebCore::CurlRequestScheduler::wakeUpThreadIfPossible): Added.
(WebCore::CurlRequestScheduler::stopThread):
(WebCore::CurlRequestScheduler::workerThread):
(WebCore::CurlRequestScheduler::startThreadIfNeeded): Deleted.

  • platform/network/curl/CurlRequestScheduler.h:
11:24 AM Changeset in webkit [279992] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit

Adopt BifurcatedGraphicsContext for backing store + display list RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=226425
<rdar://77929299>

Reviewed by Sam Weinig.

Instead of "display list backed RemoteLayerBackingStore" being its own
backing store type, we make "includes a display list" a separate bit.
This way, we can paint both a bitmap (IOSurface or CG bitmap, all
exactly as it normally is), and also carry a sidecar display list.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint):
We can't partially repaint the display list, and require its rendering
to match the painted backing store, so disable partial repaint entirely
if display lists are being used.

(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):
Adopt BifurcatedGraphicsContext in order to paint into the aforementioned
bitmap and display list simultaneously.
A future patch may abstract this into a new ImageBuffer type
instead of polluting RemoteLayerBackingStore with it.

Leave a temporary workaround for a CoreAnimation bug, which can be
disabled via defaults write, but is enabled by default.

(WebKit::layerContentsForBufferHandle):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::Buffer::discard):

  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.h:
  • UIProcess/RemoteLayerTree/cocoa/RemoteLayerTreeLayers.mm:

(-[WKCompositingLayer _setWKContents:withDisplayList:]):
(-[WKCompositingLayer _setWKContentsDisplayList:]): Deleted.
(-[WKCompositingLayer _wkContentsDisplayList]): Deleted.
Pass the display list data to CoreAnimation alongside the bitmap.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::updateBackingStore):

11:18 AM Changeset in webkit [279991] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Provide API to access SVN cache
https://bugs.webkit.org/show_bug.cgi?id=228000
<rdar://problem/80646471>

Reviewed by Dewei Zhu.

Create a Svn cache with the same API as the Git cache. This allows
git and svn to share logic when inserting identifiers in log and blame.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.Cache.path): Path to cahce file.
(Svn.Cache.populate): Fill cache from svn log operation.
(Svn.Cache.to_hash): Svn is unaware of hashes, and can never map them.
(Svn.Cache.to_revision): Map identifiers to revisions.
(Svn.Cache.to_identifier): Map revisions to identifiers.
(Svn.init): Use cache object instead of _metadata_cache.
(Svn._commit_count): Access cache object.
(Svn._branch_for): Ditto.
(Svn.commit): Ditto.
(Svn._cache_path): Deleted.
(Svn._cache_revisions): Deleted.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestLocalSvn.test_revision_cache):

11:02 AM Changeset in webkit [279990] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Make the lack of an ANGLE dylib unconditionally log
https://bugs.webkit.org/show_bug.cgi?id=228010

Reviewed by Dean Jackson.

WebCore should complain louder when all of WebGL is disabled because of a packaging misconfiguration.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::create):

10:59 AM Changeset in webkit [279989] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Updated test expectations for inspector/canvas/css-canvas-clients.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=174272.

Unreviewed test gardeing.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-16

  • platform/mac/TestExpectations:
10:17 AM Changeset in webkit [279988] by Megan Gardner
  • 38 edits in trunk/Source

Pipe App Highlight scrolling through UI Process in preparation for Note Overlay avoidance.
https://bugs.webkit.org/show_bug.cgi?id=227914

Reviewed by Tim Horton.

Source/WebCore:

In order to correctly avoid the note overlay that can potentially obscure the web view,
we need to pipe the scrolling through the UI process. This patch does that work
and will be followed up shortly by one that does the actual work of overlay avoidance.
For iOS, this just uses the main frame UI Scrolling that we already use, but for
mac, we need to do the last scroll in the web process after adjusting it with the overlay
information.

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):

  • dom/Element.cpp:

(WebCore::Element::scrollIntoView):

  • editing/Editor.cpp:

(WebCore::TemporarySelectionChange::setSelection):

  • editing/Editor.h:
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:
  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::scrollMainFrameToRevealRect const):
(WebCore::Chrome::scrollRectIntoView const): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::scrollMainFrameToRevealRect const):
(WebCore::ChromeClient::scrollRectIntoView const): Deleted.

  • page/ScrollBehavior.cpp:

(WebCore::useSmoothScrolling):

  • page/ScrollBehavior.h:
  • platform/ScrollTypes.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

  • rendering/RenderLayer.h:

Source/WebKit:

In order to correctly avoid the note overlay that can potentially obscure the web view,
we need to pipe the scrolling through the UI process. This patch does that work
and will be followed up shortly by one that does the actual work of overlay avoidance.
For iOS, this just uses the main frame UI Scrolling that we already use, but for
mac, we need to do the last scroll in the web process after adjusting it with the overlay
information.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestScrollToRect):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::requestScrollToRect):
(WebKit::WebPageProxy::scrollToRect):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::scrollToRect):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestScrollToRect):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::requestScrollToRect):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::scrollMainFrameToRevealRect const):
(WebKit::WebChromeClient::scrollRectIntoView const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::scrollToRect):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::scrollMainFrameToRevealRect const):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.h:
9:39 AM Changeset in webkit [279987] by commit-queue@webkit.org
  • 18 edits
    1 delete in trunk

[GTK][WPE] Support color-schemes CSS property
https://bugs.webkit.org/show_bug.cgi?id=208204

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-16
Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsGTK.cmake:

Enable HAVE_OS_DARK_MODE_SUPPORT.

  • Source/cmake/OptionsWPE.cmake:

Enable ENABLE_DARK_MODE_CSS and HAVE_OS_DARK_MODE_SUPPORT.

Source/WebCore:

Last time we tried enabling dark mode, we broke many webpages since we couldn't have diferent
controls, and more importantly, different system colors and defaults for pages that do and
don't support dark mode.

Now that we don't use GTK for this, we can try again. This time, use hardcoded system colors
and return different colors depending on StyleColor::Options::UseDarkAppearance.

To avoid dark-on-dark text on entries, we also need to enable HAVE_OS_DARK_MODE_SUPPORT for GTK
and make sure it's passed to use agent CSS. And since Adwaita controls are also used in WPE, we
need to enable it for WPE as well, and since WPE didn't have ENABLE_DARK_MODE_CSS, flip that as
well, all in lockstep.

No new tests, reenabled the existing css-dark-mode tests.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Pass HAVE_OS_DARK_MODE_SUPPORT to user agent CSS.

  • css/CSSValueKeywords.in:

Expose -webkit-control-background for anything with HAVE_OS_DARK_MODE_SUPPORT.

  • css/themeAdwaita.css:

(input[type="search"]::-webkit-search-results-button,):
(input[type="search"]::-webkit-search-cancel-button):
(body[dir="rtl"] input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-results-button:hover,):
(input[type="search"]::-webkit-search-cancel-button:hover): Deleted.
Use mask images instead of content so we can recolor them. Change
color on hover as opacity and inherit entry's color otherwise to
make sure it's legible with dark appearance.

  • page/FrameView.cpp:

(WebCore::FrameView::updateBackgroundRecursively):
Use CSSValueWindow for background instead of CSSValueAppleSystemControlBackground
when the latter is not available.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::focusColor):
(WebCore::ThemeAdwaita::paintFocus):
(WebCore::ThemeAdwaita::paintArrow):
(WebCore::ThemeAdwaita::paint):
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::paintSpinButton):

  • platform/adwaita/ThemeAdwaita.h:
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::platformFocusRingColor const):
(WebCore::RenderThemeAdwaita::systemColor const):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::adjustTextFieldStyle const):
(WebCore::RenderThemeAdwaita::adjustTextAreaStyle const):
(WebCore::RenderThemeAdwaita::adjustSearchFieldStyle const):
Add a border radius to the default style, so the background doesn't bleed through
the corners.
(WebCore::RenderThemeAdwaita::paintMenuList):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::paintSliderThumb):

  • rendering/RenderThemeAdwaita.h:

Source/WTF:

  • wtf/PlatformHave.h:

Enable HAVE_OS_DARK_MODE_SUPPORT for GTK and WPE.

LayoutTests:

Reenable css-dark-mode tests for GTK as they pass now. Enable the same tests in WPE.
Keep css-dark-mode/older-syntax/supported-color-schemes-css.html as [ Pass Crash ] for now,
according to https://bugs.webkit.org/show_bug.cgi?id=202229#c2

  • platform/gtk/TestExpectations:
  • platform/gtk/css-dark-mode/color-scheme-css-expected.txt: Removed.
  • platform/gtk/css-dark-mode/color-scheme-meta-expected.txt: Removed.
  • platform/gtk/css-dark-mode/color-scheme-priority-expected.txt: Removed.
  • platform/gtk/css-dark-mode/default-colors-expected.txt: Removed.
  • platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Removed.
  • platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Removed.
  • platform/wpe/TestExpectations:
9:13 AM Changeset in webkit [279986] by Truitt Savell
  • 5 edits
    2 deletes in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r279980.

Broke Internal Builds

Reverted changeset:

"Build Default Metal library offline"
https://bugs.webkit.org/show_bug.cgi?id=227333
https://commits.webkit.org/r279980

8:32 AM Changeset in webkit [279985] by commit-queue@webkit.org
  • 4 edits
    3 moves in trunk

[GStreamer] RealtimeMediaSourceCenter and VideoEncoder are not libwebrtc-specific
https://bugs.webkit.org/show_bug.cgi?id=228020

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-16
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Those two are actually not using libwebrtc-related code, so a better place for them is
platform/mediastream/gstreamer.

  • platform/GStreamer.cmake:
  • platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.cpp.

(Encoders::singleton):
(Encoders::registerEncoder):
(Encoders::definition):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

  • platform/mediastream/gstreamer/GStreamerVideoEncoder.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.h.
  • platform/mediastream/gstreamer/RealtimeMediaSourceCenterGStreamer.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp.

(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultDisplayCaptureFactory):

Tools:

  • Scripts/webkitpy/style/checker.py:
7:25 AM Changeset in webkit [279984] by Angelos Oikonomopoulos
  • 4 edits
    5 adds in trunk/Tools

Bundle libraries for remote execution in run-jsc-benchmarks
https://bugs.webkit.org/show_bug.cgi?id=227579

Reviewed by Carlos Alberto Lopez Perez.

Similarly to run-jsc-stress-tests, introduce a bundling step that
ships all library dependencies to the remote system when using
run-jsc-benchmarks --remote.

This patch factors out the code to

  • lookup the ELF interpreter/libraries and to
  • strip the rpath and create a wrapper script

from generate-bundle and places it webkitpy/binary_bundling.

It also introduces a simpler script that only bundles a single
binary (bundle-binary) and switches run-jsc-benchmarks and
run-jsc-stress-tests to use it.

It also updates run-jsc-benchmark to propagate any environment
variables intended for consumption by the JSC binary.

  • Scripts/generate-bundle: Factor out reusable bundling code.
  • Scripts/run-jsc-benchmarks: Do bundling and variable propagation.
  • Scripts/run-jsc-stress-tests: Switch to bundle-binary.
  • Scripts/webkitpy/binary_bundling/init.py: Added.
  • Scripts/webkitpy/binary_bundling/bundle.py: Added.

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler.destination_dir):
(BinaryBundler.copy_and_remove_rpath):
(BinaryBundler.generate_wrapper_script):

  • Scripts/webkitpy/binary_bundling/ldd.py: Added.

(SharedObjectResolver):
(SharedObjectResolver.init):
(SharedObjectResolver._run_cmd_and_get_output):
(SharedObjectResolver._get_interpreter_objname):
(SharedObjectResolver._get_libs_and_interpreter):
(SharedObjectResolver._ldd_recursive_get_libs_and_interpreter):
(SharedObjectResolver.get_libs_and_interpreter):

  • Scripts/bundle-binary: Added.
  • Scripts/generate-bundle:
  • Scripts/run-jsc-benchmarks:
  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitpy/binary_bundling/init.py: Added.
  • Scripts/webkitpy/binary_bundling/bundle.py: Added.

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler.destination_dir):
(BinaryBundler.copy_and_remove_rpath):
(BinaryBundler.generate_wrapper_script):

  • Scripts/webkitpy/binary_bundling/ldd.py: Added.

(SharedObjectResolver):
(SharedObjectResolver.init):
(SharedObjectResolver._run_cmd_and_get_output):
(SharedObjectResolver._get_interpreter_objname):
(SharedObjectResolver._get_libs_and_interpreter):
(SharedObjectResolver._ldd_recursive_get_libs_and_interpreter):
(SharedObjectResolver.get_libs_and_interpreter):

5:04 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
4:16 AM Changeset in webkit [279983] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] PSON: accessibility doesn't work after a cross site navigation
https://bugs.webkit.org/show_bug.cgi?id=228021

Reviewed by Adrian Perez de Castro.

The provisional page is not handling the BindAccessibilityTree message and we never embed the new web process
plug into the UI process socket.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::bindAccessibilityTree): Save the a11y plug ID.
(WebKit::ProvisionalPageProxy::didReceiveMessage): Handle BindAccessibilityTree message.

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::accessibilityPlugID): Returns the a11y plug ID.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToProvisionalPage): If the provisional page has a plug ID, bind the a11y tree.

4:12 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
1:43 AM Changeset in webkit [279982] by commit-queue@webkit.org
  • 4 edits
    21 moves
    1 add in trunk

[GStreamer] LibWebRTC files should be in libwebrtc/gstreamer
https://bugs.webkit.org/show_bug.cgi?id=227991

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-16
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

For consistency purposes, the GStreamer backend modules used by LibWebRTC are now in
platform/mediastream/libwebrtc/gstreamer. platform/mediastream/ contains the pure GStreamer
modules related with media capture.

  • platform/GStreamer.cmake:
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoCommon.cpp.

(WebCore::createH264Format):
(WebCore::supportedH264Formats):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoCommon.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp.

(WebCore::GStreamerVideoDecoder::GStreamerVideoDecoder):
(WebCore::GStreamerVideoDecoder::decodebinPadAddedCb):
(WebCore::GStreamerVideoDecoder::pipeline):
(WebCore::GStreamerVideoDecoder::makeElement):
(WebCore::GStreamerVideoDecoder::handleError):
(WebCore::GStreamerVideoDecoder::CreateFilter):
(WebCore::GStreamerVideoDecoder::pullSample):
(WebCore::GStreamerVideoDecoder::GetCapsForFrame):
(WebCore::GStreamerVideoDecoder::AddDecoderIfSupported):
(WebCore::GStreamerVideoDecoder::ConfigureSupportedDecoder):
(WebCore::GStreamerVideoDecoder::GstDecoderFactory):
(WebCore::GStreamerVideoDecoder::HasGstDecoder):
(WebCore::H264Decoder::H264Decoder):
(WebCore::VP8Decoder::VP8Decoder):
(WebCore::VP8Decoder::Create):
(WebCore::VP9Decoder::VP9Decoder):
(WebCore::VP9Decoder::Create):
(WebCore::GStreamerVideoDecoderFactory::CreateVideoDecoder):
(WebCore::GStreamerVideoDecoderFactory::GStreamerVideoDecoderFactory):
(WebCore::GStreamerVideoDecoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp.

(Encoders::singleton):
(Encoders::registerEncoder):
(Encoders::definition):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoder.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp.

(WebCore::GStreamerEncodedImageBuffer::create):
(WebCore::GStreamerEncodedImageBuffer::getBuffer const):
(WebCore::GStreamerEncodedImageBuffer::getVideoResolution const):
(WebCore::GStreamerEncodedImageBuffer::GStreamerEncodedImageBuffer):
(WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder):
(WebCore::GStreamerVideoEncoder::pipeline):
(WebCore::GStreamerVideoEncoder::makeElement):
(WebCore::GStreamerVideoEncoder::returnFromFlowReturn):
(WebCore::GStreamerVideoEncoder::createEncoder):
(WebCore::GStreamerVideoEncoder::AddCodecIfSupported):
(WebCore::GStreamerVideoEncoder::Caps):
(WebCore::GStreamerVideoEncoder::ConfigureSupportedCodec):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):
(WebCore::GStreamerH264Encoder::GStreamerH264Encoder):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h.
  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoFrameLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp.

(WebCore::GStreamerSampleFromLibWebRTCVideoFrame):
(WebCore::GStreamerVideoFrameLibWebRTC::create):
(WebCore::LibWebRTCVideoFrameFromGStreamerSample):
(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoFrameLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h.

(WebCore::GStreamerVideoFrameLibWebRTC::GStreamerVideoFrameLibWebRTC):
(WebCore::GStreamerVideoFrameLibWebRTC::takeSample):

  • platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.cpp: Renamed from Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.cpp.

(WebCore::LibWebRTCProvider::create):
(WebCore::LibWebRTCProvider::webRTCAvailable):
(WebCore::LibWebRTCProviderGStreamer::createDecoderFactory):
(WebCore::LibWebRTCProviderGStreamer::createEncoderFactory):

  • platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp.

(WebCore::RealtimeIncomingAudioSource::create):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::create):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::RealtimeIncomingAudioSourceLibWebRTC):
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp.

(WebCore::RealtimeIncomingVideoSource::create):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::create):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::RealtimeIncomingVideoSourceLibWebRTC):
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp.

(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::defaultDisplayCaptureFactory):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp.

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::RealtimeOutgoingAudioSourceLibWebRTC):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::~RealtimeOutgoingAudioSourceLibWebRTC):
(WebCore::RealtimeOutgoingAudioSource::create):
(WebCore::libwebrtcAudioFormat):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::isReachingBufferedAudioDataHighLimit):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::isReachingBufferedAudioDataLowLimit):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::hasBufferedEnoughData):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h.
  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp.

(WebCore::RealtimeOutgoingVideoSource::create):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::create):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::RealtimeOutgoingVideoSourceLibWebRTC):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h.

Tools:

  • Scripts/webkitpy/style/checker.py:
1:32 AM Changeset in webkit [279981] by Manuel Rego Casasnovas
  • 1 edit
    13 deletes in trunk/PerformanceTests

Remove CSS Regions perf tests
https://bugs.webkit.org/show_bug.cgi?id=228016

Reviewed by Ryosuke Niwa.

The feature has been removed long time ago, so let's do the same with the associated perf tests.

  • Layout/RegionsAuto.html: Removed.
  • Layout/RegionsAutoMaxHeight.html: Removed.
  • Layout/RegionsExtendingSelectionMixedContent.html: Removed.
  • Layout/RegionsFixed.html: Removed.
  • Layout/RegionsFixedShort.html: Removed.
  • Layout/RegionsSelectAllMixedContent.html: Removed.
  • Layout/RegionsSelection.html: Removed.
  • Layout/RegionsShapes.html: Removed.
  • Layout/Shapes/RegionsShapesNoShapes.html: Removed.
  • Layout/Shapes/resources/RegionsShapesContent.html: Removed.
  • Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Removed.
  • Layout/resources/regions.css: Removed.
  • Layout/resources/regions.js: Removed.
12:19 AM Changeset in webkit [279980] by Kyle Piddington
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Build Default Metal library offline
https://bugs.webkit.org/show_bug.cgi?id=227333

<rdar://79923371>

This patch compiles and creates a Metal library at build time, storing
the library as a compiled binary file. This library is baked into the dylib,
and is loaded at context creation time.

Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather
bakes it into a binary.

Reviewed by Kenneth Russell.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeShaderLibrary):

  • src/libANGLE/renderer/metal/mtl_utils.h:
Note: See TracTimeline for information about the timeline view.