⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Aug 23, 2021:

11:51 PM Changeset in webkit [281489] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] Show TLS protocol version and ciphersuite name in the inspector
https://bugs.webkit.org/show_bug.cgi?id=229400

Reviewed by Michael Catanzaro.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::tlsProtocolVersionToString):
(WebKit::NetworkDataTaskSoup::didGetHeaders):

10:37 PM Changeset in webkit [281488] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Avoid unnecessary CGColor creation in Gradient::createCGGradient for common sRGB-only cases
https://bugs.webkit.org/show_bug.cgi?id=229422
<rdar://problem/82261384>

Reviewed by Sam Weinig.

  • platform/graphics/Gradient.h:
  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::hasOnlyBoundedSRGBColorStops const):
(WebCore::Gradient::createCGGradient):

10:07 PM Changeset in webkit [281487] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check scriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=229272

Patch by Rob Buis <rbuis@igalia.com> on 2021-08-23
Reviewed by Ryosuke Niwa.

Source/WebCore:

Null check scriptExecutionContext in ensureLocalFontFacesForFamilyRegistered.

Tests: fast/text/font-face-set-add-crash.html

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):

LayoutTests:

  • fast/text/font-face-set-add-crash-expected.txt: Added.
  • fast/text/font-face-set-add-crash.html: Added.
8:38 PM Changeset in webkit [281486] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: data race of WTF::StringImpl in WebCoreNSURLSessionDataTask._metrics instance variable
https://bugs.webkit.org/show_bug.cgi?id=229435

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-23
Reviewed by David Kilzer.

Move the isolated copy to the WebCoreNSURLSessionTaskMetrics instead of keeping a copy on the delegate thread
and a copy on whatever thread our media stack wants to use the WebCoreNSURLSessionTaskMetrics on.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionTaskTransactionMetrics _initWithMetrics:]):
(-[WebCoreNSURLSessionTaskMetrics _initWithMetrics:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):

7:59 PM Changeset in webkit [281485] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
https://bugs.webkit.org/show_bug.cgi?id=229420
<rdar://82020528>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added.

(foo):

Source/JavaScriptCore:

The final instruction in a for-in loop might be the get by val that
we're rewriting because there was an escape. We won't ever actually
do peephole optimizations on this get_by_val today, but it breaks
some bookkeeping that the bytecode generator does. This patch makes
sure the bookkeeping is up to date.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::ForInContext::finalize):

6:28 PM Changeset in webkit [281484] by Russell Epstein
  • 1 copy in tags/Safari-612.2.2

Tag Safari-612.2.2.

6:23 PM Changeset in webkit [281483] by Russell Epstein
  • 1 delete in tags/Safari-612.2.2

Delete tag.

6:02 PM Changeset in webkit [281482] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.1

Tag Safari-612.1.29.1.

6:00 PM Changeset in webkit [281481] by Russell Epstein
  • 1 copy in tags/Safari-612.2.2

Tag Safari-612.2.2.

5:33 PM Changeset in webkit [281480] by wilander@apple.com
  • 25 edits
    2 adds in trunk

PCM: Support ephemeral measurement with non-persistent WebCore::PrivateClickMeasurement
https://bugs.webkit.org/show_bug.cgi?id=228984
<rdar://problem/81778213>

Reviewed by Kate Cheney.

This patch adds support for ephemeral measurement with non-persistent
WebCore::PrivateClickMeasurement for direct response advertising.
Such advertising means there is only one pending click, held in memory,
and only stored right before the triggering event causes attribution
reports to be scheduled.

Source/WebCore:

Test: http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::SourceSite::operator!= const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::operator!= const):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):

Now takes an optional PrivateClickMeasurementAttributionEphemeral
parameter, set to PrivateClickMeasurementAttributionEphemeral::No
by default.

(WebCore::PrivateClickMeasurement::isEphemeral const):
(WebCore::PrivateClickMeasurement::setEphemeral):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):

Source/WebKit:

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):

Now takes an optional ephemeral PrivateClickMeasurement parameter
and stores it right before moving on with attribution.

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

(WebKit::NetworkProcess::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::insertPrivateClickMeasurement):

New convenience function. Only stores in memory if the
PrivateClickMeasurement parameter is marked as ephemeral.

(WebKit::PrivateClickMeasurementManager::attribute):

Checks that the triggering event matches the ephemeral measurement if
it exists, and if so, forwards it.

(WebKit::PrivateClickMeasurementManager::clear):

Now clears the ephemeral state too.

  • NetworkProcess/PrivateClickMeasurementManager.h:

(WebKit::PrivateClickMeasurementManager::setEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPrivateClickMeasurementEphemeralMeasurementForTesting):

Test infrastructure.

  • UIProcess/WebPageProxy.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementEphemeralMeasurementForTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPrivateClickMeasurementEphemeralMeasurementForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html: Added.
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

Resets the new testRunner.setPrivateClickMeasurementEphemeralMeasurementForTesting().

5:20 PM Changeset in webkit [281479] by Alan Bujtas
  • 6 edits
    2 adds in trunk/Source/WebCore

[LFC][IFC] Decouple line box building and vertical aligning
https://bugs.webkit.org/show_bug.cgi?id=229162
<rdar://problem/82260272>

Reviewed by Antti Koivisto.

This is in preparation for supporting incremental inline layout.
We should be able to vertically align the inline level boxes on any line without rebuilding the LineBox.

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

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::lineBoxHeight const): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::setEnabled): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::isEnabled const): Deleted.
(): Deleted.
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::canUseSimplifiedAlignment): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::align): Deleted.
(WebCore::Layout::LineBoxBuilder::SimplifiedVerticalAlignment::adjust): Deleted.

  • layout/formattingContexts/inline/InlineLevelBox.h:
  • layout/formattingContexts/inline/InlineLineBox.h:
4:52 PM Changeset in webkit [281478] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] http/tests/media/hls/range-request.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229424

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:52 PM Changeset in webkit [281477] by Wenson Hsieh
  • 5 edits in trunk/LayoutTests

fast/events/ios/key-events-comprehensive/key-events-meta-shift.html is failing in iOS 15
https://bugs.webkit.org/show_bug.cgi?id=229417
rdar://80385777

Reviewed by Tim Horton.

This test is failing in iOS 15 because "command + shift + /" now triggers a system-wide key command that shows
a help menu; this key command is handled very early on in UIKit, before keyboard code gets a chance to handle
the event as a WebEvent and dispatch it to the page.

rdar://82257764 tracks making this key command preventable by marking it as a key command that should be handled
after dispatching key events. For the time being, add this to the list of system key commands that we should
avoid in key-tester.js, and rebaseline the test.

  • fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt:
  • fast/events/ios/resources/key-tester.js:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
3:40 PM Changeset in webkit [281476] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] http/tests/inspector/network/fetch-network-data.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229429.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [281475] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac wk1] fast/canvas/webgl/texImage2D-video-flipY-false.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229425.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:00 PM Changeset in webkit [281474] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r281473. rdar://problem/82262986

compileEnumeratorHasProperty uses flushRegisters incorrectly
https://bugs.webkit.org/show_bug.cgi?id=229412
<rdar://82020767>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-has-own-property-shouldnt-flush-registers.js: Added. (foo):
  • stress/for-in-in-by-val-shouldnt-flush-registers.js: Added. (a.toString):

Source/JavaScriptCore:

We were calling flushRegisters() inside code that isn't always runs inside the
EnumeratorInByVal/EnumeratorHasOwnProperty nodes. That is a violation of how
flushRegisters() must be used, since flushRegisters() updates global register
allocation state, and therefore must run each time a node is run. To fix, we
move flushRegisters() before the code starts emitting branches.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

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

2:44 PM Changeset in webkit [281473] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

compileEnumeratorHasProperty uses flushRegisters incorrectly
https://bugs.webkit.org/show_bug.cgi?id=229412
<rdar://82020767>

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-has-own-property-shouldnt-flush-registers.js: Added.

(foo):

  • stress/for-in-in-by-val-shouldnt-flush-registers.js: Added.

(a.toString):

Source/JavaScriptCore:

We were calling flushRegisters() inside code that isn't always runs inside the
EnumeratorInByVal/EnumeratorHasOwnProperty nodes. That is a violation of how
flushRegisters() must be used, since flushRegisters() updates global register
allocation state, and therefore must run each time a node is run. To fix, we
move flushRegisters() before the code starts emitting branches.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty):

2:39 PM Changeset in webkit [281472] by commit-queue@webkit.org
  • 12 edits
    2 deletes in trunk

Setting window.location.href to an invalid URL should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=229303

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

LayoutTests/imported/w3c:

  • web-platform-tests/url/failure-expected.txt:

Source/WebCore:

This matches Firefox and the specification, and Chrome also throws an exception in this case.

  • page/Location.cpp:

(WebCore::Location::setLocation):

LayoutTests:

  • fast/dom/location-new-window-no-crash-expected.txt:
  • fast/dom/location-new-window-no-crash.html:
  • fast/loader/file-URL-with-port-number.html:
  • fast/loader/location-port.html:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
  • fast/url/navigate-non-ascii.html:
  • platform/ios-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Removed.
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Removed.
2:38 PM Changeset in webkit [281471] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur EWS ] http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html is flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=229423

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:36 PM Changeset in webkit [281470] by Cameron McCormack
  • 28 edits
    6 adds in trunk

LayoutTests/imported/w3c:
Preserve color space when getting current color in DisplayListDrawGlyphsRecorder.
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Add tests for calling fillText() and strokeText() with a display-p3
color for fillStyle, strokeStyle, and shadowColor, on a display-p3 canvas.

  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText-expected.txt: Added.
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html: Added.
  • web-platform-tests/html/canvas/tools/yaml/element/color_space.yaml:

Source/WebCore:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

When GPU canvas is enabled, DrawGlyphsRecorder records the text fill,
stroke, and shadow colors by getting them from the context using
CGGStateGetFillColor etc. This is done so that color glyphs have each
part painted in the right color. But the current conversion from
CGColor to WebCore::Color lossily converts to sRGB. So we need to get
the color space and color components from the CGColor and preserve them.

The existing Color(CGColorRef) constructor is replaced by two
constructor functions, createAndPreserveColorSpace and
roundAndClampToSRGBALossy, so the conversion behavior is clear at call
sites. createAndPreserveColorSpace will match the CGColor's color
space to one of the predefined spaces that WebCore::Color can
represent. If it's some other color space, we convert to XYZ (on
platforms where that's available), since that will result in the least
loss, or to sRGB (on platforms where XYZ is not available).

CGColorSpaceEqualToColorSpace, which is used when determining the
CGColor's color space, is not very expensive, but it will do more than a
pointer comparison in case we pass in two CGColorSpaceRefs that are
equivalent but not the same pointer value. Since our new
colorSpaceForCGColorSpace function will be used with CGColors that have
been set WebCore during canvas drawing, we will get back the same
pointers that we have cached in sRGBColorSpaceRef(),
displayP3ColorSpaceRef(), etc. If calling CGColorSpaceEqualToColorSpace
on all our supported color spaces turns out to be too expensive, we
could start by doing a pointer comparison on each before calling
CGColorSpaceEqualToColorSpace.

The way colorSpaceForCGColorSpace is written we could end up
instantiating all of our supported color spaces, if an author used an
XYZ color when drawing text (the last color profile we check). We
could try harder to avoid doing this if it's important.

Tests: imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html

imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html
imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColor const):

  • platform/graphics/Color.h:

(WebCore::Color::createAndPreserveColorSpace):
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::backgroundColor const):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer setBorderColor:]):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::backgroundColor const):
(printColor):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::drawRepaintCounters):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::roundAndClampToSRGBALossy):
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
(WebCore::Color::createAndPreserveColorSpace):
(WebCore::platformConvertColorComponents):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::colorSpaceForCGColorSpace):

  • platform/graphics/cg/ColorSpaceCG.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::updateShadow):
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs):

  • platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:

(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::color):

  • rendering/RenderThemeIOS.mm:

(WebCore::systemColorFromCSSValueSystemColorInformation):

Source/WebKit:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Change existing CGColor -> WebCore::Color conversions to be explicit
about lossily converting to sRGB.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setUnderPageBackgroundColor:]):

  • UIProcess/API/Cocoa/_WKApplicationManifest.mm:

(-[_WKApplicationManifest initWithCoder:]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformUnderPageBackgroundColor const):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

Tools:
Preserve color space when getting current color in DisplayList::DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=229024
<rdar://problem/81828477>

Reviewed by Sam Weinig.

Change existing CGColor -> WebCore::Color conversions to be explicit
about lossily converting to sRGB.

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(TEST):

2:05 PM Changeset in webkit [281469] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[iOS 14] imported/w3c/web-platform-tests/webstorage/event_case_sensitive.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=226789

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:52 PM Changeset in webkit [281468] by Wenson Hsieh
  • 11 edits
    1 add
    2 deletes in trunk

editing/selection/ios/select-text-in-existing-selection.html fails on iOS 15
https://bugs.webkit.org/show_bug.cgi?id=229411
rdar://80385434

Reviewed by Tim Horton.

Tools:

After the changes in rdar://70851909, UIKit's text selection interaction (which encompasses the loupe text
interaction gesture) is no longer allowed to transition to Began state when long pressing inside an existing
text selection. This causes us to no longer enter floating caret mode (via loupe gesture) and change the
selection when triggering a long press in selected text, which causes this layout test to fail.

This layout test was originally intended to test a fix for text selection via trackpad on iPadOS failing to
begin when clicking and dragging inside text that has already been selected. At that time, I intentionally wrote
this test in a way that didn't involve the trackpad at all, and instead simply exercised the codechange in
-[WKContentView textInteractionGesture:shouldBeginAtPoint:] by synthesizing touches.

Since UIKit no longer supports this behavior, we can rewrite this test to be more robust by calling and checking
the value of -textInteractionGesture:shouldBeginAtPoint: in an API test. This patch deletes the existing
layout test, and replaces it with an API test that directly exercises the SPI on UIWKInteractionViewProtocol.

Note that the original bug that was fixed by the change that came along with this failing test remains fixed,
because trackpad-based text selection on iPadOS uses UITextLoupeCursorBehavior rather than
UITextLoupeTouchBehavior, which (unlike the former) contains logic to explicitly avoid starting the loupe
text interaction when long pressing inside of selected text.

Test: UIWKInteractionViewProtocol.TextInteractionCanBeginInExistingSelection

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

(-[TestWKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[TestWKWebView synchronouslyRequestTextInputContextsInRect:]): Deleted.

Drive-by fix: also fix a build warning by pulling duplicate implementations of this testing helper method into
a common location in WKWebView (TestWebKitAPI), inside of TestWKWebView.h.

  • TestWebKitAPI/Tests/WebKitCocoa/editable-responsive-body.html: Added.
  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyRequestTextInputContextsInRect:]):

  • TestWebKitAPI/ios/UIKitSPI.h:

LayoutTests:

Remove this failing layout test, along with its test expectations. See API test in Tools/ChangeLog for more
details.

  • editing/selection/ios/select-text-in-existing-selection-expected.txt: Removed.
  • editing/selection/ios/select-text-in-existing-selection.html: Removed.
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
1:38 PM Changeset in webkit [281467] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Set test expectations for fast/events/ios/rotation/basic-rotation.html.
<rdar://82259067>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:38 PM Changeset in webkit [281466] by Eric Hutchison
  • 1 edit in trunk/LayoutTests/ChangeLog

Add a new option '--show-window' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229253

Reviewed by Simon Fraser.

Add the new option so that we can let WKTR show a window with webview.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionShowWindow):
(WTR::OptionsHandler::OptionsHandler):
(WTR::handleOptionShowWebView): Deleted.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::shouldShowWindow const):
(WTR::TestOptions::shouldShowWebView const): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::finishCreatingPlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::setWindowFrame):

1:29 PM Changeset in webkit [281465] by Alan Bujtas
  • 10 edits in trunk

Simplified text measuring only works with the primary font
https://bugs.webkit.org/show_bug.cgi?id=228617
<rdar://problem/81588175>

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/font-display/font-display-failure-fallback-expected.txt:

Source/WebCore:

This is in preparation for adding fallback font support (IFC).

The reason why this works on trunk is because computeCanUseSimplifiedTextMeasuring() is only used by
the modern line layout codepath which does not support fallback font support yet.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

LayoutTests:

While running DumpRenderTree:

  • DOMContentLoaded event is dispatched (parsing is done, DOM is built)
  • window load event is dispatched (JS, CSS are finished loading)
  • dispatchDidFinishLoad is called (this is when all the loads are complete, including web fonts)

dispatchDidFinishLoad is when DumpRenderTree declares the test complete and takes the snapshot.

Without the early font access (i.e. requesting the font during paint), the window load event and
dispatchDidFinishLoad happen the same time.
As dispatchDidFinishLoad triggers the snapshot, we initiate the font load,
but at this point the test is already declared complete so we are not going to wait for these pending loads.
We simply paint the content with whatever is available.

Now the early font access (at render tree building) triggers the font load which in turn delays the dispatchDidFinishLoad callback.
It also means the snapshot is taken at a later time when the font load is complete.

Let's adjust these test cases to make sure the test framework is not going to wait for the font loads.

  • TestExpectations: Fails both with FF and Chrome (tested locally).
  • fast/text/font-promises-gc-expected.txt:
  • http/tests/webfont/font-loading-system-fallback-visibility-FontRanges.html:
  • http/tests/webfont/font-loading-system-fallback-visibility.html:
1:00 PM Changeset in webkit [281464] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-* fail
https://bugs.webkit.org/show_bug.cgi?id=229389

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-23

  • platform/glib/TestExpectations:
12:38 PM Changeset in webkit [281463] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Pre-formatted content gets distorted when attempting to select content
https://bugs.webkit.org/show_bug.cgi?id=228655
<rdar://81288187>

Reviewed by Simon Fraser.

Source/WebCore:

https://drafts.csswg.org/css-text/#overflow-wrap-property

"This property specifies whether the UA may break at otherwise disallowed points within
a line to prevent overflow, when an otherwise-unbreakable string is too long to fit within the line box.
It only has an effect when white-space allows wrapping."

(also see https://trac.webkit.org/changeset/10095/webkit where the wrapping behavior was introduced)

Test: fast/text/no-wrap-in-pre-with-word-wrap.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/no-wrap-in-pre-with-word-wrap-expected.html: Added.
  • fast/text/no-wrap-in-pre-with-word-wrap.html: Added.
12:17 PM Changeset in webkit [281462] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Monterey] fast/animation/request-animation-frame-throttling-detached-iframe.html is failing.
<rdar://80333935>.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:04 PM Changeset in webkit [281461] by Peng Liu
  • 9 edits in trunk/Tools

Add a new option '--show-window' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229253

Reviewed by Simon Fraser.

Add the new option so that we can let WKTR show a window with webview.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionShowWindow):
(WTR::OptionsHandler::OptionsHandler):
(WTR::handleOptionShowWebView): Deleted.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::shouldShowWindow const):
(WTR::TestOptions::shouldShowWebView const): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::finishCreatingPlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::setWindowFrame):

11:59 AM Changeset in webkit [281460] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/events/ios/key-events-comprehensive/key-events-meta-shift.html.
<rdar://80385777>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:38 AM Changeset in webkit [281459] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7613.1.1

11:27 AM Changeset in webkit [281458] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Updated test expectations for fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html and fast/events/touch/ios/long-press-then-drag-to-select-text.html.
<rdar://80386523>, <rdar://80386061>.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
11:00 AM Changeset in webkit [281457] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source

Cherry-pick r281384. rdar://problem/82218757

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:58 AM Changeset in webkit [281456] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.2

10:57 AM Changeset in webkit [281455] by Russell Epstein
  • 4 edits in branches/safari-612.1.29-branch/Source

Cherry-pick r281384. rdar://problem/82218757

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:36 AM Changeset in webkit [281454] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] emitArrayProfilingSiteWithCell should not load indexingType unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=229396

Reviewed by Saam Barati.

emitArrayProfilingSiteWithCell is always loading indexingType after profiling a cell.
But (possibly) this is old code, and there is no reason to do that. This patch removes it.

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitArrayProfilingSiteWithCell):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emit_op_enumerator_get_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_in_by_val):

10:16 AM Changeset in webkit [281453] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/events/touch/page-scaled-touch-gesture-click.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:02 AM Changeset in webkit [281452] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Update test expectations for fast/events/wheelevent-in-frame.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:45 AM Changeset in webkit [281451] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/forms/ios/ipad/open-picker-using-keyboard.html and fast/forms/ios/accessory-bar-navigation.html.
<rdar://80391927>, <rdar://80390931>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:41 AM Changeset in webkit [281450] by Wenson Hsieh
  • 5 edits in trunk

REGRESSION (r271146): editing/selection/ios/scrolling-to-focused-element-inside-iframe.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229376
rdar://80384683

Reviewed by Megan Gardner.

Source/WebKit:

This iOS-specific test verifies that tapping on an element that makes itself contenteditable inside of a click
event handler both (1) brings up the software keyboard, and (2) scrolls to reveal the focused, newly editable
element such that it is not obscured by the software keyboard. This test began failing after the changes in
r271146 -- specifically, the fact that the call to Element::setFocus() moved to before the focus event is
dispatched, rather than afterwards.

The following timeline of events (annotated with web and UI processes) illustrates why this happens:

(WEB) 1. The click event on the element inside the subframe is handled; the element is made contentEditable,

and we make it focused, by first calling Element::setFocus and then Element::dispatchFocusEvent.
Right before dispatching the "focus" event, we call out to the client layer, via
WebPage::elementDidFocus, and compute a FocusedElementInformation struct to encode and send to the
UI process in the WebPageProxy::ElementDidFocus IPC message.

  1. In the process of populating this struct in WebPage::focusedElementInformation, we observe that

layout is dirty, and immediately compute and send an EditorState underneath
WebPage::sendEditorStateUpdate().

  1. We then proceed to construct and send FocusedElementInformation to the UI process via

Messages::WebPageProxy::ElementDidFocus.

(UI) 4. We receive the EditorState that was computed and sent in step (2), which contains the up-to-date

state corresponding to the newly focused contentEditable div.

  1. We then receive the FocusedElementInformation computed and sent in step (3), which makes us begin

waiting for the next post-layout EditorState update before zooming to reveal the focused element, by
setting WebPageProxy's m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement flag. However,
this post-layout EditorState after focusing the div never arrives, since we've already computed it
and sent it in step (2).

  1. The software keyboard finishes animating in, causing us to resolve the UIScriptController promise

that we began to await after calling UIHelper.activateAndWaitForInputSessionAt in the test.

(WEB) 7. The test finishes, calls testRunner.notifyDone(), and we destroy the focused subframe and clear

the editable selection as well. This selection change causes us to compute another post-layout
editor state and send it to the UI process.

(UI) 8. The UI process *finally* receives the post-layout EditorState computed in (7). However, it's too

late, since (a) the test has already finished, and (b) the post-layout EditorState is computed after
the editable selection has already been cleared, so it's missing selection rect information anyways.

Prior to r271146, the call to Element::setFocus came *after* step (3), and caused us to compute and send
another EditorState to the UI process, which ensured that an up-to-date post layout EditorState would arrive in
the UI process shortly after step (5).

To fix this, we should avoid immediately computing and sending an EditorState to the UI process in the middle of
WebPage::focusedElementInformation, and instead simply schedule an EditorState during the next rendering
update. This ensures that the editor state triggered during element focus will always arrive after
WebPageProxy::ElementDidFocus in the UI process, rather than before, which allows us to scroll to the correct
selection rect in the UI process when focusing an editable element.

This also has the additional benefit of avoiding redundant EditorState computation and updates in the case where
focus is programmatically thrashed between elements during the same rendering update, since all of the editor
state updates are effectively batched together and dispatched at the end of the current rendering update.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusedElementInformation):

LayoutTests:

Adjust test expectations for the layout test, which should now pass.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
9:38 AM Changeset in webkit [281449] by Russell Epstein
  • 8 edits in branches/safari-612.1.29-branch/Source

Versioning.

WebKit-7612.1.29.1

9:33 AM Changeset in webkit [281448] by Jonathan Bedard
  • 7 edits in trunk/Tools

[Cygwin] Support Python 3 in run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=229360
<rdar://problem/82192362>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:

(TaskPoolUnittest): Skip some tests on cygwin.

  • Scripts/webkitpy/common/system/abstractexecutive.py:

(AbstractExecutive.command_for_printing): Strings might be bytes on some platforms.

  • Scripts/webkitpy/common/system/path.py:

(_CygPath.convert): Cygwin path process is not unicode.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo._win_version_str): Return Windows version string as unicode string.

9:01 AM Changeset in webkit [281447] by sihui_liu@apple.com
  • 3 edits
    21 adds in trunk/LayoutTests/imported/w3c

Import permissions tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229349

Reviewed by Chris Dumez.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/permissions/META.yml: Added.
  • web-platform-tests/permissions/feature-policy-permissions-query.html: Added.
  • web-platform-tests/permissions/idlharness.any-expected.txt: Added.
  • web-platform-tests/permissions/idlharness.any.html: Added.
  • web-platform-tests/permissions/idlharness.any.js: Added.

(async idl_array):

  • web-platform-tests/permissions/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/permissions/idlharness.any.worker.html: Added.
  • web-platform-tests/permissions/nfc-permission-expected.txt: Added.
  • web-platform-tests/permissions/nfc-permission.html: Added.
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt: Added.
  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub.html: Added.
  • web-platform-tests/permissions/permissionsstatus-name-expected.txt: Added.
  • web-platform-tests/permissions/permissionsstatus-name.html: Added.
  • web-platform-tests/permissions/screen-wake-lock-permission-expected.txt: Added.
  • web-platform-tests/permissions/screen-wake-lock-permission.html: Added.
  • web-platform-tests/permissions/test-background-fetch-permission-expected.txt: Added.
  • web-platform-tests/permissions/test-background-fetch-permission.html: Added.
  • web-platform-tests/permissions/test-periodic-background-sync-permission-expected.txt: Added.
  • web-platform-tests/permissions/test-periodic-background-sync-permission.html: Added.
  • web-platform-tests/permissions/w3c-import.log: Added.
8:11 AM Changeset in webkit [281446] by Martin Robinson
  • 4 edits in trunk

Sticky position should not use transformed position to compute sticky offset.
https://bugs.webkit.org/show_bug.cgi?id=164292
<rdar://problem/29054773>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate-expected.txt: Update results

of test to show pass.

Source/WebCore:

No new tests. This change is tested by the following WPT test:

web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): When calling localToContainerQuad,
pass 0 for the mode which means that the transformation between coordinate systems does not include
transforms.

8:02 AM Changeset in webkit [281445] by Chris Dumez
  • 8 edits
    2 deletes in trunk

WebKit2 can only have one active navigation policy check for a given frame
https://bugs.webkit.org/show_bug.cgi?id=229012

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test that is now passing one more check.

  • web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:

Source/WebKit:

WebKit2 could only have one active navigation policy check for a given frame
and there was a FIXME comment about this in the code. This was causing some
WPT tests to timeout in WebKit2 only because those tests would trigger
several navigations (e.g. in new windows) and only the last one would proceed
(earlier ones would get cancelled).

This patch updates the policy checking logic in WebFrame so that we can support
several concurrent policy checks.

No new tests, unskipped / rebaselined existing tests.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::cancelPolicyCheck):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpPolicyListener):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):
(WebKit::WebFrame::invalidatePolicyListeners):
(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebFrame.h:

LayoutTests:

Unskip a couple of tests that are no longer timing out in WebKit2.

  • platform/ios-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
  • platform/wk2/TestExpectations:
7:53 AM Changeset in webkit [281444] by commit-queue@webkit.org
  • 6 edits in trunk

Create a RenderLineBreak when BR element has unsupported content data style
https://bugs.webkit.org/show_bug.cgi?id=224849

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-23
Reviewed by Antti Koivisto.

Source/WebCore:

Instead of falling back to RenderElement::createFor(), create a RenderLineBreak just ignoring the unsupported
content data.

  • html/HTMLBRElement.cpp:

(WebCore::HTMLBRElement::createElementRenderer):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::isContentDataSupported):
(WebCore::RenderElement::createFor):

  • rendering/RenderElement.h:

LayoutTests:

  • editing/execCommand/insert-image-in-composed-list-expected.txt: Rebaseline.
7:50 AM Changeset in webkit [281443] by Chris Dumez
  • 7 edits in trunk

HTMLStyleElement should be able to fire the load event more than once
https://bugs.webkit.org/show_bug.cgi?id=228975

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing. This test was already passing in both Firefox and Chrome.

  • web-platform-tests/html/semantics/document-metadata/the-style-element/style_load_event-expected.txt:

Source/WebCore:

HTMLStyleElement should be able to fire the load event more than once. WebKit has a flag
preventing the load event to fire more than once but this behavior is not present in the
HTML specification and doesn't match other browsers.

No new tests, rebaselined existing test.

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):

  • html/HTMLStyleElement.h:

LayoutTests:

Unskip test that is no longer timing out.

7:32 AM Changeset in webkit [281442] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Skip failing test on 32bit (ARMv7/MIPS)
https://bugs.webkit.org/show_bug.cgi?id=229407

Unreviewed test gardening.

Patch by Xan Lopez <Xan Lopez> on 2021-08-23

  • js/script-tests/reserved-words.js:
7:20 AM Changeset in webkit [281441] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Changes: changes are not updated live
https://bugs.webkit.org/show_bug.cgi?id=229153
<rdar://problem/81989328>

Reviewed by Devin Rousso.

Dispatch an event whenever the list of modified styles changes.
Re-layout the Changes details sidebar panel in response to this event
to reflect the latest state of the modified styles.

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype.addModifiedStyle):
(WI.CSSManager.prototype.removeModifiedStyle):

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.attached):
(WI.ChangesDetailsSidebarPanel.prototype.detached):

6:22 AM Changeset in webkit [281440] by aboya@igalia.com
  • 9 edits in trunk

[MSE][GStreamer] Implement multi-track support
https://bugs.webkit.org/show_bug.cgi?id=229072

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch adds support for SourceBuffer having more than one track in
the GStreamer port.

This fixes the following LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html
media/media-source/media-source-has-audio-video.html
media/media-source/only-bcp47-language-tags-accepted-as-valid.html

  • platform/graphics/gstreamer/GStreamerCommon.h:

(GstIteratorAdaptor::GstIteratorAdaptor):
(GstIteratorAdaptor::iterator::iterator):
(GstIteratorAdaptor::iterator::operator*):
(GstIteratorAdaptor::iterator::operator++):
(GstIteratorAdaptor::iterator::operator==):
(GstIteratorAdaptor::iterator::operator!=):
(GstIteratorAdaptor::begin):
(GstIteratorAdaptor::end):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::consumeAppsinksAvailableSamples):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::generateTrackId):
(WebCore::AppendPipeline::tryCreateTrackFromPad):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::makeWebKitTrack):
(WebCore::AppendPipeline::Track::initializeElements):
(WebCore::AppendPipeline::hookTrackEvents):
(WebCore::AppendPipeline::streamTypeToString):
(WebCore::AppendPipeline::id): Deleted.
(WebCore::AppendPipeline::trackId): Deleted.
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): Deleted.
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::Track::Track):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsinkCaps): Deleted.
(WebCore::AppendPipeline::track): Deleted.
(WebCore::AppendPipeline::appsink): Deleted.
(WebCore::AppendPipeline::demuxerSrcPadCaps): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::setInitialVideoSize):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

LayoutTests:

Update expectations and rebaseline one test is which the buffered
ranges have changed slightly due to the audio track previously
discarded now being parsed.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
12:11 AM Changeset in webkit [281439] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Freetype] Set maximum allowed font size for Freetype
https://bugs.webkit.org/show_bug.cgi?id=228893

Reviewed by Michael Catanzaro.

Maximum allowed font size in Freetype2 is 65535 because x_ppem and y_ppem fields in FreeType structs are of type
'unsigned short'.

  • rendering/style/RenderStyleConstants.h:

Aug 22, 2021:

11:28 PM Changeset in webkit [281438] by ysuzuki@apple.com
  • 38 edits in trunk

[JSC] Remove already-shipped wasm option flags
https://bugs.webkit.org/show_bug.cgi?id=229386

Reviewed by Ross Kirsling.

JSTests:

  • wasm/references/element_active_mod.js:
  • wasm/references/element_parsing.js:
  • wasm/references/externref_globals.js:
  • wasm/references/externref_modules.js:
  • wasm/references/externref_table.js:
  • wasm/references/externref_table_import.js:
  • wasm/references/func_ref.js:
  • wasm/references/globals.js:
  • wasm/references/is_null.js:
  • wasm/references/memory_copy.js:
  • wasm/references/memory_copy_shared.js:
  • wasm/references/memory_fill_shared.js:
  • wasm/references/multitable.js:
  • wasm/references/parse_unreachable.js:
  • wasm/references/table_js_api.js:
  • wasm/references/table_misc.js:
  • wasm/references/validation.js:
  • wasm/stress/immutable-globals.js:
  • wasm/stress/local-ref.js:
  • wasm/stress/mutable-globals.js:
  • wasm/stress/table-grow-table-size.js:

Source/JavaScriptCore:

This patch removes some wasm option flags which are already shipped.

  • runtime/OptionsList.h:
  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseData):
(JSC::Wasm::SectionParser::parseDataCount):

  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • workers/wasm-references.html:
11:22 PM Changeset in webkit [281437] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.1.27.3.7

Tag Safari-612.1.27.3.7.

11:17 PM Changeset in webkit [281436] by bshafiei@apple.com
  • 2 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Apply patch. rdar://problem/82196634

10:46 PM Changeset in webkit [281435] by bshafiei@apple.com
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.7

10:12 PM Changeset in webkit [281434] by mark.lam@apple.com
  • 2 edits in tags/Safari-612.1.27.3.5/Source/JavaScriptCore

Build fix for bad cherry-pick of r281178.
rdar://problem/82083485

Not reviewed.

  • b3/testb3_3.cpp:
9:25 PM Changeset in webkit [281433] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed test gardening.

  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
8:55 PM Changeset in webkit [281432] by Alan Bujtas
  • 6 edits in trunk

[LFC][IFC] Add support for vertical-align: super
https://bugs.webkit.org/show_bug.cgi?id=228235

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

  • platform/mac/css1/text_properties/vertical_align-expected.txt:
7:24 PM Changeset in webkit [281431] by Kate Cheney
  • 9 edits
    8 adds in trunk

Report correct blocked URI in CSP violation report
https://bugs.webkit.org/show_bug.cgi?id=226316
<rdar://problem/78552912>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html

http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/DocumentThreadableLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

  • NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.

WebKitLegacy and Win have different console logging.

6:41 PM Changeset in webkit [281430] by Lauro Moura
  • 5 edits in trunk

[WPE][WebDriver] Basic fullscreen support for the headless backend
https://bugs.webkit.org/show_bug.cgi?id=229380

Reviewed by Adrian Perez de Castro.

Tools:

r280774 added support for fullscreen in the WindowViewBackend, but
many webdriver tests started failing as they run in the headless
backend.

This commits adds basic support in HeadlessBackend to make some
tests pass. Currently, just storing the fullscreen state and
forwarding the events to the WPE backend functions.

A number of tests are still failing due to the missing multiple window
support (required through the session fixtures), but also there are
still some failing that expect the view to be started in
non-fullscreen mode, which does not happen in the headless backend.

  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::onDOMFullScreenRequest):
(WPEToolingBackends::HeadlessViewBackend::dispatchFullscreenEvent):

  • wpe/backends/HeadlessViewBackend.h:

WebDriverTests:

  • TestExpectations.json: Skip some tests still failing, mainly due to multiple window support missing.
6:06 PM Changeset in webkit [281429] by ysuzuki@apple.com
  • 147 edits in trunk

[JSC] Remove already-shipped JS feature flags
https://bugs.webkit.org/show_bug.cgi?id=229387

Reviewed by Ross Kirsling.

JSTests:

  • microbenchmarks/class-fields-private/get-private-name.js:
  • microbenchmarks/class-fields-private/monomorphic-get-private-field.js:
  • microbenchmarks/class-fields-private/polymorphic-get-private-field.js:
  • microbenchmarks/class-fields-private/polymorphic-put-private-field.js:
  • microbenchmarks/class-fields-private/put-private-field.js:
  • stress/class-fields-private-as-function.js:
  • stress/class-fields-private-cached-bytecode.js:
  • stress/class-fields-private-freeze-out-of-line.js:
  • stress/class-fields-private-freeze.js:
  • stress/class-fields-private-harmony.js:
  • stress/class-fields-private-on-proxy.js:
  • stress/class-fields-private-out-of-line.js:
  • stress/class-fields-private-prevent-extensions-out-of-line.js:
  • stress/class-fields-private-prevent-extensions.js:
  • stress/class-fields-private-seal-out-of-line.js:
  • stress/class-fields-private-seal.js:
  • stress/class-fields-private-use-eval.js:
  • stress/class-fields-static-harmony.js:
  • stress/class-fields-static-private-harmony.js:
  • stress/class-fields-stress-instance.js:
  • stress/class-private-method-access.js:
  • stress/dfg-get-private-name-by-id-generic.js:
  • stress/dfg-get-private-name-by-id-osr-bad-identifier.js:
  • stress/dfg-get-private-name-by-id.js:
  • stress/dfg-get-private-name-by-offset-osr-bad-identifier.js:
  • stress/dfg-get-private-name-by-offset-osr-bad-structure.js:
  • stress/dfg-get-private-name-by-offset.js:
  • stress/dfg-get-private-name-by-val-generic.js:
  • stress/dfg-put-private-name-check-barrier-insertion.js:
  • stress/dfg-put-private-name-compiled-as-put-by-id-direct.js:
  • stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js:
  • stress/ftl-get-private-name-by-id.js:
  • stress/ftl-get-private-name-by-offset-multi.js:
  • stress/get-private-name-cache-failure.js:
  • stress/get-private-name-with-constant-ident.js:
  • stress/get-private-name-with-constant-symbol.js:
  • stress/get-private-name-with-different-symbol.js:
  • stress/get-private-name-with-primitive.js:
  • stress/get-private-name.js:
  • stress/optional-chaining-and-private-fields.js:
  • stress/private-accesor-duplicate-name-early-errors.js:
  • stress/private-accessor-static-non-static.js:
  • stress/private-brand-installed-after-super-call-from-arrow-function.js:
  • stress/private-brand-installed-after-super-call-from-eval.js:
  • stress/private-getter-brand-check.js:
  • stress/private-getter-inner-class.js:
  • stress/private-in-error.js:
  • stress/private-in.js:
  • stress/private-members-get-and-set.js:
  • stress/private-method-and-field-named-constructor.js:
  • stress/private-method-brand-check.js:
  • stress/private-method-change-attribute-from-branded-structure.js:
  • stress/private-method-change-prototype-from-branded-structure.js:
  • stress/private-method-check-private-brand-ic.js:
  • stress/private-method-check-structure-miss.js:
  • stress/private-method-comparison.js:
  • stress/private-method-delete-property-from-branded-structure.js:
  • stress/private-method-extends-brand-check.js:
  • stress/private-method-get-and-call.js:
  • stress/private-method-invalid-multiple-brand-installation.js:
  • stress/private-method-invalidate-compiled-with-constant-symbol.js:
  • stress/private-method-nested-class.js:
  • stress/private-method-on-sealed-objects.js:
  • stress/private-method-on-uncacheable-dictionary.js:
  • stress/private-method-polymorphic-with-constant-symbol.js:
  • stress/private-method-set-brand-should-have-write-barrier.js:
  • stress/private-method-untyped-use.js:
  • stress/private-method-with-uncacheable-dictionary-transition.js:
  • stress/private-methods-and-accessors-postfix-node.js:
  • stress/private-methods-and-accessors-prefix-node.js:
  • stress/private-methods-inline-cache.js:
  • stress/private-methods-megamorphic-ic.js:
  • stress/private-methods-on-proxy.js:
  • stress/private-methods-poly-ic-multiple-classes.js:
  • stress/private-methods-poly-ic-single-class.js:
  • stress/private-name-access-in-computed-property.js:
  • stress/private-names-available-on-direct-eval.js:
  • stress/private-names-available-on-eval-during-field-initialization.js:
  • stress/private-setter-brand-check.js:
  • stress/private-setter-inner-class.js:
  • stress/put-by-val-direct-addprivate.js:
  • stress/put-by-val-direct-putprivate.js:
  • stress/put-private-name-by-id-set-do-not-add-structure-trasition.js:
  • stress/put-private-name-check-structure-miss.js:
  • stress/put-private-name-constant-folding-to-mult-put-by-offset.js:
  • stress/put-private-name-constant-folding-to-put-by-offset.js:
  • stress/put-private-name-generic.js:
  • stress/put-private-name-invalid-define.js:
  • stress/put-private-name-invalid-store.js:
  • stress/put-private-name-invalidate-compiled-with-constant-symbol.js:
  • stress/put-private-name-polymorphic-with-constant-symbol.js:
  • stress/put-private-name-untyped-use.js:
  • stress/put-private-name-with-constant-symbol.js:
  • stress/put-private-name-with-different-identifier.js:
  • stress/put-private-name-with-primitive.js:
  • stress/static-private-methods-and-accessor-inner-class.js:
  • stress/static-private-methods-and-accessor-multiple-evaluation.js:
  • stress/static-private-methods-and-accessors-postfix-node.js:
  • stress/static-private-methods-and-accessors-prefix-node.js:
  • stress/v8-cleanup-from-different-realm.js:
  • stress/v8-cleanup-proxy-from-different-realm.js:
  • stress/v8-finalization-registry-basics.js:
  • stress/v8-finalizationregistry-and-weakref.js:
  • stress/v8-finalizationregistry-keeps-holdings-alive.js:
  • stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js:
  • stress/v8-multiple-dirty-finalization-registries.js:
  • stress/v8-reentrant-gc-from-cleanup.js:
  • stress/v8-stress-finalizationregistry-dirty-enqueue.js:
  • stress/v8-undefined-holdings.js:
  • stress/v8-unregister-after-cleanup.js:
  • stress/v8-unregister-before-cleanup.js:
  • stress/v8-unregister-called-twice.js:
  • stress/v8-unregister-inside-cleanup2.js:
  • stress/v8-unregister-inside-cleanup3.js:
  • stress/v8-unregister-many.js:
  • stress/v8-weak-unregistertoken.js:
  • test262/config.yaml:

Source/JavaScriptCore:

These features are already shipped. So removing these runtime flags to clean up source code and
remove untested path.

  • API/JSObjectRef.cpp:

(JSObjectMakeError):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.h:
  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

  • Scripts/run-jsc-benchmarks:

LayoutTests:

  • js/script-tests/weakref-async-is-collected.js:
  • js/script-tests/weakref-eventually-collects-values.js:
  • js/script-tests/weakref-finalizationregistry.js:
  • js/script-tests/weakref-microtasks-dont-collect.js:
  • js/script-tests/weakref-weakset-consistency.js:
  • js/weakref-async-is-collected.html:
  • js/weakref-eventually-collects-values.html:
  • js/weakref-finalizationregistry.html:
  • js/weakref-microtasks-dont-collect.html:
  • js/weakref-weakset-consistency.html:
  • webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html:
6:02 PM Changeset in webkit [281428] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.28.5

Tag Safari-612.1.28.5.

5:59 PM Changeset in webkit [281427] by Kocsen Chung
  • 4 edits in branches/safari-612.1.28-branch/Source

Cherry-pick r281384. rdar://problem/82224622

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

5:52 PM Changeset in webkit [281426] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Tiny cleanups in CSS parsing code
https://bugs.webkit.org/show_bug.cgi?id=229369

Reviewed by Alan Bujtas.

Use references for non-nullable pointers, and pass nullptr instead of 0 to other pointer parameters.

No new tests because there is no behavior change.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseString):

  • css/StyleSheetContents.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSheet):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parseStyleSheet):

  • css/parser/CSSParserImpl.h:
5:46 PM Changeset in webkit [281425] by Kocsen Chung
  • 8 edits in branches/safari-612.1.28-branch/Source

Versioning.

WebKit-7612.1.28.5

5:03 PM Changeset in webkit [281424] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][IFC] Add support for out-of-flow box static positioning
https://bugs.webkit.org/show_bug.cgi?id=229103

Reviewed by Antti Koivisto.

Source/WebCore:

This patch is in preparation for enabling positioned content for IFC handling.

In this patch we compute the static position for out-of-flow content inside the inline formatting context.
As per spec, the static position of an out-of-flow box is computed as if the position was set to static.
However it does not mean that the out-of-flow box should be involved in the inline layout process.
Instead we figure out this static position after the inline layout by looking at
the previous sibling (or parent) box's geometry and place the out-of-flow box at the logical right position.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration):
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectContentIfNeeded):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:

LayoutTests:

  • fast/inline/out-of-flow-with-static-position-in-ifc-expected.html: Added.
  • fast/inline/out-of-flow-with-static-position-in-ifc.html: Added.
4:45 PM Changeset in webkit [281423] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

REGRESSION(r281389): canUseSimplifiedTextMeasuring() needs to match with WidthIterator::applyCSSVisibilityRules()
https://bugs.webkit.org/show_bug.cgi?id=229388

Reviewed by Alan Bujtas.

WidthIterator::applyCSSVisibilityRules() has some special handling for specific characters.
If those characters are present, we need to make sure we actually use WidthIterator::applyCSSVisibilityRules()
instead of taking the fast path in FontCascade::widthForSimpleText().

This is split out from https://bugs.webkit.org/show_bug.cgi?id=215643, and will be tested by that bug's test.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):
(WebCore::WidthIterator::applyCSSVisibilityRules):

  • platform/graphics/WidthIterator.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

3:18 PM Changeset in webkit [281422] by Alan Bujtas
  • 25 edits in trunk

[LFC][IFC] Add support for vertical-align: sub
https://bugs.webkit.org/show_bug.cgi?id=228217

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust legacy's integral alignment too.

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

  • platform/mac/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/fast/selectors/018b-expected.txt:
  • platform/mac/fast/text/whitespace/020-expected.txt:
3:09 PM Changeset in webkit [281421] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, speculative fix for old ICU
https://bugs.webkit.org/show_bug.cgi?id=229385

  • stress/intl-locale-info.js:

(shouldBe):

2:26 PM Changeset in webkit [281420] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

[iOS] Fix and reenable several layout tests to account for the changes in rdar://80384564
https://bugs.webkit.org/show_bug.cgi?id=229316

Reviewed by Tim Horton.

Source/WebKit:

After rdar://80384564, UIKit's non-editable text tap recognizer will no longer cause us to clear the active text
selection range when tapping outside of currently selected text in the page. Instead, WebKit's synthetic click
gesture recognizer should now manages clearing the selection (unless the page has prevented the "mousedown"
event).

With just the UIKit-side change, this already mostly works as expected since commitPotentialTapFailed() clears
out non-editable selections. However, there is one scenario in which we do want to clear out the selection when
tapping that isn't covered by the synthetic click gesture: when tapping on an element that does not handle or
prevent "mousedown"; this behavior is exercised by the existing layout test
editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html. To preserve this behavior, we
add a call to clearSelectionAfterTapIfNeeded() when completing a synthetic click, in the case where the
"mousedown" event was not swallowed.

These 3 tests should pass after the changes in rdar://80384564:

  • editing/selection/ios/change-selection-by-tapping-with-existing-selection.html
  • editing/selection/preserve-selection-when-clicking-button.html
  • editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html

And these WebKit-side changes are needed to keep these 2 tests passing:

  • editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html
  • fast/images/text-recognition/ios/reselect-word-in-image-overlay.html
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):

LayoutTests:

See WebKit/ChangeLog for more details.

  • fast/images/text-recognition/ios/reselect-word-in-image-overlay.html:

Add a short delay to avoid timing out, due to the second long press gesture to select text not triggering.

  • platform/ios-14/TestExpectations:

Remove iOS 14-specific PASS expectations, and remove the more generic FAIL expectation in the ios directory.
Instead, just mark these three layout tests as FAIL on iOS 15, and PASS elsewhere.

  • platform/ios-15/TestExpectations: Added.
  • platform/ios/TestExpectations:
2:04 PM Changeset in webkit [281419] by mmaxfield@apple.com
  • 10 edits
    61 moves in trunk

Control characters (Unicode category Cc) should be rendered visibly
https://bugs.webkit.org/show_bug.cgi?id=149128
<rdar://problem/79224941>

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

These tests were erroneously marked as reference tests, when they should be reference-mismatch tests.

  • web-platform-tests/css/css-text/white-space/control-chars-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-001-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-002-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-003-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-003-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-004-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-004-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-005-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-006-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-006-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-007-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-007-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-008-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-008-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-00F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-010-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-010-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-011-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-011-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-012-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-012-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-013-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-013-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-014-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-014-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-015-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-015-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-016-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-016-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-017-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-017-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-018-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-018-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-019-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-019-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-01F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-07F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-07F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-080-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-080-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-081-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-081-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-082-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-082-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-083-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-083-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-084-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-084-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-085-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-085-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-086-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-086-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-087-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-087-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-088-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-088-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-089-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-089-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-08F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08F-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-090-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-090-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-091-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-091-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-092-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-092-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-093-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-093-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-094-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-094-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-095-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-095-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-096-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-096-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-097-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-097-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-098-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-098-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-099-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-099-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09A-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09B-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09C-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09D-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09E-expected.html.
  • web-platform-tests/css/css-text/white-space/control-chars-09F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09F-expected.html.

Source/WebCore:

We can map these glyphs to the .notdef glyph, which is (supposed to be) visible.

Tests: fast/dom/52776.html

fast/text/fixed-pitch-control-characters.html
fast/text/wide-zero-width-space.html
fast/text/zero-width-characters.html
imported/w3c/web-platform-tests/css/css-text/white-space*

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

LayoutTests:

Update existing tests.

  • fast/text/fixed-pitch-control-characters-expected.txt:
  • fast/text/wide-zero-width-space.html:
  • fast/text/zero-width-characters.html:
  • platform/ios/fast/dom/52776-expected.txt:
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/wide-zero-width-space-expected.txt: This actually shows that there's a difference between the fast text codepath and the complex text codepath, but that's okay for now because the complex text codepath is going away. Also, it's not practical to fix this in the complex text codepath, because that would require a CoreText change. So, for now, we can just encode the behavior difference in our test, and when the complex codepath finally goes away, this test will be updated to be working correctly again.
1:47 PM Changeset in webkit [281418] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.3.6

Tag Safari-612.1.27.3.6.

1:43 PM Changeset in webkit [281417] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.3-branch/Source

Cherry-pick r281384. rdar://problem/82218746

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

1:41 PM Changeset in webkit [281416] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.6

1:33 PM Changeset in webkit [281415] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.2.4

Tag Safari-612.1.27.2.4.

1:29 PM Changeset in webkit [281414] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.2-branch/Source

Cherry-pick r281384. rdar://problem/82218737

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

1:28 PM Changeset in webkit [281413] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.2-branch/Source

Versioning.

WebKit-7612.1.27.2.4

1:11 PM Changeset in webkit [281412] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Add pull-request command (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(Git.modified): Return a list of modified files in the current checkout.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add 'git diff' mock commands.

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

(TestGit.test_modified):
(TestGit.test_modified_no_staged):
(TestGit.test_modified_staged):

12:50 PM Changeset in webkit [281411] by Kocsen Chung
  • 1 copy in tags/Safari-607.3.15

Tag Safari-607.3.15.

12:50 PM Changeset in webkit [281410] by Kocsen Chung
  • 1 copy in tags/Safari-611.3.10.0.2

Tag Safari-611.3.10.0.2.

12:49 PM Changeset in webkit [281409] by Kocsen Chung
  • 1 copy in tags/Safari-611.3.10.1.7

Tag Safari-611.3.10.1.7.

12:49 PM Changeset in webkit [281408] by Kocsen Chung
  • 1 copy in tags/Safari-611.4.1.0.2

Tag Safari-611.4.1.0.2.

12:48 PM Changeset in webkit [281407] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.27.0.30

Tag Safari-612.1.27.0.30.

10:25 AM Changeset in webkit [281406] by Kocsen Chung
  • 4 edits in branches/safari-607-branch/Source

Cherry-pick r281384. rdar://problem/82218742

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:25 AM Changeset in webkit [281405] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WTF

Cherry-pick r242732. rdar://problem/82218742

Crash under WebCore::IDBDatabase::connectionToServerLost
https://bugs.webkit.org/show_bug.cgi?id=195563
<rdar://problem/37193655>

CrossThreadTask should protect callee if it is ThreadSafeRefCounted.

Reviewed by Geoffrey Garen.

  • wtf/CrossThreadTask.h: (WTF::createCrossThreadTask):

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

10:22 AM Changeset in webkit [281404] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.0-branch/Source

Cherry-pick r281384. rdar://problem/82218729

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:15 AM Changeset in webkit [281403] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.3.10.0.2

10:08 AM Changeset in webkit [281402] by Kocsen Chung
  • 33 edits
    2 deletes in branches/safari-611.3.10.0-branch

Revert to original content from 611.3.10.0.1

9:38 AM Changeset in webkit [281401] by Kocsen Chung
  • 4 edits in branches/safari-612.1.27.0-branch/Source

Cherry-pick r281384. rdar://problem/82218749

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

9:35 AM Changeset in webkit [281400] by Kocsen Chung
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.30

9:29 AM Changeset in webkit [281399] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Add pull-request command (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

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

(Git): Match BitBucket ssh urls when constructing remotes.

8:35 AM Changeset in webkit [281398] by Simon Fraser
  • 18 edits in trunk/Source/WebKit

Use the strongly typed PageGroupIdentifier in place of uint64_t
https://bugs.webkit.org/show_bug.cgi?id=229356

Reviewed by Alex Christensen.

Replace uses of uint64_t for page group identifiers with PageGroupIdentifier.

There are two places where we convert between StorageNamespaceIdentifier and
PageGroupIdentifier because, as the comments state, those are equivalent.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IdentifierTypes.h:
  • Shared/WebPageGroupData.cpp:

(WebKit::WebPageGroupData::decode):

  • Shared/WebPageGroupData.h:
  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::get):
(WebKit::pageGroupData):
(WebKit::generatePageGroupID): Deleted.

  • UIProcess/WebPageGroup.h:

(WebKit::WebPageGroup::pageGroupID const):

  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::getOrCreate):
(WebKit::WebDatabaseProvider::WebDatabaseProvider):

  • WebProcess/Databases/WebDatabaseProvider.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPageGroupProxy.h:

(WebKit::WebPageGroupProxy::pageGroupID const):
(WebKit::WebPageGroupProxy::localStorageNamespaceIdentifier const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::webPageGroup):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::pageGroupID const):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:
12:35 AM Changeset in webkit [281397] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r280984 and r280996.
https://bugs.webkit.org/show_bug.cgi?id=229384

Speedometer2 0.3-0.5% regression

Reverted changesets:

"Update ARM64EHash"
https://bugs.webkit.org/show_bug.cgi?id=228962
https://commits.webkit.org/r280984

"Refactor some ARM64EHash code."
https://bugs.webkit.org/show_bug.cgi?id=229054
https://commits.webkit.org/r280996

12:25 AM Changeset in webkit [281396] by Kocsen Chung
  • 8 edits in branches/safari-611.4.1.0-branch/Source

Versioning.

WebKit-7611.4.1.0.2

12:19 AM Changeset in webkit [281395] by Kocsen Chung
  • 1 copy in branches/safari-611.4.1.0-branch

New branch.

12:10 AM Changeset in webkit [281394] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.0-branch/Source

Cherry-pick r281384. rdar://problem/82195071

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

Note: See TracTimeline for information about the timeline view.